]> git.sur5r.net Git - cc65/commitdiff
add some conio functions
authorChristian Groessler <chris@groessler.org>
Tue, 11 Mar 2014 00:17:59 +0000 (01:17 +0100)
committerChristian Groessler <chris@groessler.org>
Tue, 11 Mar 2014 00:17:59 +0000 (01:17 +0100)
libsrc/atari/chline.s
libsrc/atari/cvline.s
libsrc/atari5200/cclear.s [new file with mode: 0644]
libsrc/atari5200/chline.s [new file with mode: 0644]
libsrc/atari5200/clock.s [new file with mode: 0644]
libsrc/atari5200/cvline.s [new file with mode: 0644]
libsrc/atari5200/sysuname.s [new file with mode: 0644]

index 46eb0f35d94e90d7ac12d13a9f0a595fa2b5fd6f..b6ebba936aa170827902d898aa7784e8e6f95e1c 100644 (file)
@@ -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
-
-
-
-
index 608da23deafb68adbdd8cbe481b86cd1b2e838c3..5b1c3fd094cf05b79a7fa6283448713575d869a6 100644 (file)
         .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
-
-
-
diff --git a/libsrc/atari5200/cclear.s b/libsrc/atari5200/cclear.s
new file mode 100644 (file)
index 0000000..4bdc8dd
--- /dev/null
@@ -0,0 +1 @@
+.include "../atari/cclear.s"
diff --git a/libsrc/atari5200/chline.s b/libsrc/atari5200/chline.s
new file mode 100644 (file)
index 0000000..d5872f1
--- /dev/null
@@ -0,0 +1 @@
+.include "../atari/chline.s"
diff --git a/libsrc/atari5200/clock.s b/libsrc/atari5200/clock.s
new file mode 100644 (file)
index 0000000..d70794b
--- /dev/null
@@ -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
diff --git a/libsrc/atari5200/cvline.s b/libsrc/atari5200/cvline.s
new file mode 100644 (file)
index 0000000..d987bcb
--- /dev/null
@@ -0,0 +1 @@
+.include "../atari/cvline.s"
diff --git a/libsrc/atari5200/sysuname.s b/libsrc/atari5200/sysuname.s
new file mode 100644 (file)
index 0000000..7fd9281
--- /dev/null
@@ -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"
+
+
+