mirror of
https://github.com/cc65/cc65.git
synced 2024-06-08 15:29:37 +00:00
add some conio functions
This commit is contained in:
parent
361da29e51
commit
889783bedb
|
@ -9,6 +9,12 @@
|
||||||
.import popa, _gotoxy, cputdirect, setcursor
|
.import popa, _gotoxy, cputdirect, setcursor
|
||||||
.importzp tmp1
|
.importzp tmp1
|
||||||
|
|
||||||
|
.ifndef __ATARI5200__
|
||||||
|
CHRCODE = $12+64
|
||||||
|
.else
|
||||||
|
CHRCODE = 14
|
||||||
|
.endif
|
||||||
|
|
||||||
_chlinexy:
|
_chlinexy:
|
||||||
pha ; Save the length
|
pha ; Save the length
|
||||||
jsr popa ; Get y
|
jsr popa ; Get y
|
||||||
|
@ -19,12 +25,8 @@ _chline:
|
||||||
cmp #0 ; Is the length zero?
|
cmp #0 ; Is the length zero?
|
||||||
beq L9 ; Jump if done
|
beq L9 ; Jump if done
|
||||||
sta tmp1
|
sta tmp1
|
||||||
L1: lda #$12+64 ; Horizontal line, screen code
|
L1: lda #CHRCODE ; Horizontal line, screen code
|
||||||
jsr cputdirect ; Direct output
|
jsr cputdirect ; Direct output
|
||||||
dec tmp1
|
dec tmp1
|
||||||
bne L1
|
bne L1
|
||||||
L9: jmp setcursor
|
L9: jmp setcursor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,12 @@
|
||||||
.import popa, _gotoxy, putchar, setcursor
|
.import popa, _gotoxy, putchar, setcursor
|
||||||
.importzp tmp1
|
.importzp tmp1
|
||||||
|
|
||||||
|
.ifndef __ATARI5200__
|
||||||
|
CHRCODE = $7C ; Vertical bar
|
||||||
|
.else
|
||||||
|
CHRCODE = 1 ; exclamation mark
|
||||||
|
.endif
|
||||||
|
|
||||||
_cvlinexy:
|
_cvlinexy:
|
||||||
pha ; Save the length
|
pha ; Save the length
|
||||||
jsr popa ; Get y
|
jsr popa ; Get y
|
||||||
|
@ -22,7 +28,7 @@ _cvline:
|
||||||
sta tmp1
|
sta tmp1
|
||||||
L1: lda COLCRS
|
L1: lda COLCRS
|
||||||
pha
|
pha
|
||||||
lda #$7C ; Vertical bar
|
lda #CHRCODE ; Vertical bar
|
||||||
jsr putchar ; Write, no cursor advance
|
jsr putchar ; Write, no cursor advance
|
||||||
pla
|
pla
|
||||||
sta COLCRS
|
sta COLCRS
|
||||||
|
@ -30,6 +36,3 @@ L1: lda COLCRS
|
||||||
dec tmp1
|
dec tmp1
|
||||||
bne L1
|
bne L1
|
||||||
L9: jmp setcursor
|
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