mirror of
https://github.com/cc65/cc65.git
synced 2024-12-23 04:30:10 +00:00
add some conio functions
This commit is contained in:
parent
361da29e51
commit
889783bedb
@ -9,6 +9,12 @@
|
||||
.import popa, _gotoxy, cputdirect, setcursor
|
||||
.importzp tmp1
|
||||
|
||||
.ifndef __ATARI5200__
|
||||
CHRCODE = $12+64
|
||||
.else
|
||||
CHRCODE = 14
|
||||
.endif
|
||||
|
||||
_chlinexy:
|
||||
pha ; Save the length
|
||||
jsr popa ; Get y
|
||||
@ -19,12 +25,8 @@ _chline:
|
||||
cmp #0 ; Is the length zero?
|
||||
beq L9 ; Jump if done
|
||||
sta tmp1
|
||||
L1: lda #$12+64 ; Horizontal line, screen code
|
||||
L1: lda #CHRCODE ; Horizontal line, screen code
|
||||
jsr cputdirect ; Direct output
|
||||
dec tmp1
|
||||
bne L1
|
||||
L9: jmp setcursor
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -10,6 +10,12 @@
|
||||
.import popa, _gotoxy, putchar, setcursor
|
||||
.importzp tmp1
|
||||
|
||||
.ifndef __ATARI5200__
|
||||
CHRCODE = $7C ; Vertical bar
|
||||
.else
|
||||
CHRCODE = 1 ; exclamation mark
|
||||
.endif
|
||||
|
||||
_cvlinexy:
|
||||
pha ; Save the length
|
||||
jsr popa ; Get y
|
||||
@ -22,7 +28,7 @@ _cvline:
|
||||
sta tmp1
|
||||
L1: lda COLCRS
|
||||
pha
|
||||
lda #$7C ; Vertical bar
|
||||
lda #CHRCODE ; Vertical bar
|
||||
jsr putchar ; Write, no cursor advance
|
||||
pla
|
||||
sta COLCRS
|
||||
@ -30,6 +36,3 @@ L1: lda COLCRS
|
||||
dec tmp1
|
||||
bne L1
|
||||
L9: jmp setcursor
|
||||
|
||||
|
||||
|
||||
|
1
libsrc/atari5200/cclear.s
Normal file
1
libsrc/atari5200/cclear.s
Normal file
@ -0,0 +1 @@
|
||||
.include "../atari/cclear.s"
|
1
libsrc/atari5200/chline.s
Normal file
1
libsrc/atari5200/chline.s
Normal file
@ -0,0 +1 @@
|
||||
.include "../atari/chline.s"
|
35
libsrc/atari5200/clock.s
Normal file
35
libsrc/atari5200/clock.s
Normal file
@ -0,0 +1,35 @@
|
||||
;
|
||||
; from Atari computer version by Christian Groessler, 2014
|
||||
;
|
||||
; clock_t clock (void);
|
||||
; unsigned _clocks_per_sec (void);
|
||||
;
|
||||
|
||||
.export _clock, __clocks_per_sec
|
||||
.importzp sreg
|
||||
|
||||
.include "atari5200.inc"
|
||||
|
||||
|
||||
.proc _clock
|
||||
|
||||
ldx #5 ; Synchronize with Antic, so the interrupt won't change RTCLOK
|
||||
stx WSYNC ; while we're reading it. The synchronization is done same as
|
||||
@L1: dex ; in SETVBLV function in Atari OS.
|
||||
bne @L1
|
||||
stx sreg+1 ; Byte 3 is always zero
|
||||
stx sreg ; Byte 2 is always zero, too
|
||||
lda RTCLOK+1
|
||||
ldx RTCLOK
|
||||
rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
||||
.proc __clocks_per_sec
|
||||
|
||||
ldx #$00 ; Clear high byte of return value
|
||||
lda #60
|
||||
rts
|
||||
|
||||
.endproc
|
1
libsrc/atari5200/cvline.s
Normal file
1
libsrc/atari5200/cvline.s
Normal file
@ -0,0 +1 @@
|
||||
.include "../atari/cvline.s"
|
39
libsrc/atari5200/sysuname.s
Normal file
39
libsrc/atari5200/sysuname.s
Normal file
@ -0,0 +1,39 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 2003-08-12
|
||||
;
|
||||
; unsigned char __fastcall__ _sysuname (struct utsname* buf);
|
||||
;
|
||||
|
||||
.export __sysuname, utsdata
|
||||
|
||||
.import utscopy
|
||||
|
||||
__sysuname = utscopy
|
||||
|
||||
;--------------------------------------------------------------------------
|
||||
; Data. We define a fixed utsname struct here and just copy it.
|
||||
|
||||
.rodata
|
||||
|
||||
utsdata:
|
||||
; sysname
|
||||
.asciiz "cc65"
|
||||
|
||||
; nodename
|
||||
.asciiz ""
|
||||
|
||||
; release
|
||||
.byte ((.VERSION >> 8) & $0F) + '0'
|
||||
.byte '.'
|
||||
.byte ((.VERSION >> 4) & $0F) + '0'
|
||||
.byte $00
|
||||
|
||||
; version
|
||||
.byte (.VERSION & $0F) + '0'
|
||||
.byte $00
|
||||
|
||||
; machine
|
||||
.asciiz "Atari5200"
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user