From: ol.sc
Date: Sun, 30 Sep 2012 18:20:15 +0000 (+0000)
Subject: Turned the 'ST' status byte into a symbol resolved by the linker in order to allow...
X-Git-Tag: V2.14~240
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=59e96ef74035fac5d42e82b98d7969101533c8c6;p=cc65
Turned the 'ST' status byte into a symbol resolved by the linker in order to allow to use it from code living in the 'cbm' directory.
Moved getdevice.s from 'c64'/'c128' to 'cbm' making use of the new 'ST' setup.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5834 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
diff --git a/libsrc/c128/Makefile b/libsrc/c128/Makefile
index a6dc0f2b1..b5b2a8a2a 100644
--- a/libsrc/c128/Makefile
+++ b/libsrc/c128/Makefile
@@ -56,7 +56,6 @@ OBJS = _scrsize.o \
devnum.o \
fast.o \
get_tv.o \
- getdevice.o \
joy_stddrv.o \
kbhit.o \
kernal.o \
@@ -66,6 +65,7 @@ OBJS = _scrsize.o \
randomize.o \
revers.o \
slow.o \
+ status.o \
systime.o \
sysuname.o \
tgi_colors.o \
diff --git a/libsrc/c128/crt0.s b/libsrc/c128/crt0.s
index 5185e2c83..64fec19a0 100644
--- a/libsrc/c128/crt0.s
+++ b/libsrc/c128/crt0.s
@@ -10,6 +10,7 @@
.import RESTOR, BSOUT, CLRCH
.import __INTERRUPTOR_COUNT__
.import __RAM_START__, __RAM_SIZE__, __STACKSIZE__
+ .importzp ST
.include "zeropage.inc"
.include "c128.inc"
diff --git a/libsrc/c128/getdevice.s b/libsrc/c128/getdevice.s
deleted file mode 100644
index 9ec2abe69..000000000
--- a/libsrc/c128/getdevice.s
+++ /dev/null
@@ -1,67 +0,0 @@
-;
-; Oliver Schmidt, 2012-09-04
-;
-; unsigned char getfirstdevice (void);
-; unsigned char __fastcall__ getnextdevice (unsigned char device);
-;
-
- .export _getfirstdevice
- .export _getnextdevice
-
- .import isdisk
- .import opencmdchannel
- .import closecmdchannel
- .importzp tmp2
-
- .include "c128.inc"
-
-;------------------------------------------------------------------------------
-; _getfirstdevice
-
-_getfirstdevice:
- lda #$FF
- ; Fall through
-
-;------------------------------------------------------------------------------
-; _getnextdevice
-
-_getnextdevice:
- tax
-next: inx
- cpx #$FF
- beq done
-
-; [open|close]cmdchannel already call isdisk internally but they
-; interpret a non-disk as a no-op while we need to interpret it
-; as an error here
-
- jsr isdisk
- bcs next
-
-; [open|close]cmdchannel don't call into the Kernal at all if they
-; only [in|de]crement the reference count of the shared cmdchannel
-; so we need to explicitly initialize ST here
-
- lda #$00
- sta ST
-
- stx tmp2
- jsr opencmdchannel
- ldx tmp2
- jsr closecmdchannel
- ldx tmp2
-
-; As we had to reference ST above anyway we can as well do so
-; here too (instead of calling READST)
-
- lda ST
-
-; Either the Kernal calls above were successfull or there was
-; already a cmdchannel to the device open - which is a pretty
-; good indication of its existence ;-)
-
- bmi next
-
-done: txa
- ldx #$00
- rts
diff --git a/libsrc/c128/status.s b/libsrc/c128/status.s
new file mode 100644
index 000000000..3620c9107
--- /dev/null
+++ b/libsrc/c128/status.s
@@ -0,0 +1,5 @@
+;
+; Oliver Schmidt, 2012-09-30
+;
+
+ .exportzp ST := $90 ; IEC status byte
diff --git a/libsrc/c16/Makefile b/libsrc/c16/Makefile
index eca4991c4..4019154a6 100644
--- a/libsrc/c16/Makefile
+++ b/libsrc/c16/Makefile
@@ -61,6 +61,7 @@ OBJS = _scrsize.o \
mainargs.o \
randomize.o \
revers.o \
+ status.o \
systime.o \
sysuname.o
diff --git a/libsrc/c16/crt0.s b/libsrc/c16/crt0.s
index 71e7b0cf8..88b328afd 100644
--- a/libsrc/c16/crt0.s
+++ b/libsrc/c16/crt0.s
@@ -11,6 +11,7 @@
.import callmain, zerobss
.import MEMTOP, RESTOR, BSOUT, CLRCH
.import __INTERRUPTOR_COUNT__
+ .importzp ST
.include "zeropage.inc"
.include "plus4.inc"
diff --git a/libsrc/c16/status.s b/libsrc/c16/status.s
new file mode 100644
index 000000000..3620c9107
--- /dev/null
+++ b/libsrc/c16/status.s
@@ -0,0 +1,5 @@
+;
+; Oliver Schmidt, 2012-09-30
+;
+
+ .exportzp ST := $90 ; IEC status byte
diff --git a/libsrc/c64/Makefile b/libsrc/c64/Makefile
index 2c952b7c0..5d4b16aed 100644
--- a/libsrc/c64/Makefile
+++ b/libsrc/c64/Makefile
@@ -55,7 +55,6 @@ OBJS = _scrsize.o \
devnum.o \
get_ostype.o \
get_tv.o \
- getdevice.o \
joy_stddrv.o \
kbhit.o \
kernal.o \
@@ -65,6 +64,7 @@ OBJS = _scrsize.o \
mouse_stddrv.o \
randomize.o \
revers.o \
+ status.o \
systime.o \
sysuname.o \
tgi_colors.o \
diff --git a/libsrc/c64/crt0.s b/libsrc/c64/crt0.s
index c9fee2031..16d2fb367 100644
--- a/libsrc/c64/crt0.s
+++ b/libsrc/c64/crt0.s
@@ -11,6 +11,7 @@
.import __INTERRUPTOR_COUNT__
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
.import __STACKSIZE__ ; Linker generated
+ .importzp ST
.include "zeropage.inc"
.include "c64.inc"
diff --git a/libsrc/c64/getdevice.s b/libsrc/c64/getdevice.s
deleted file mode 100644
index 90bf6ba47..000000000
--- a/libsrc/c64/getdevice.s
+++ /dev/null
@@ -1,67 +0,0 @@
-;
-; Oliver Schmidt, 2012-09-04
-;
-; unsigned char getfirstdevice (void);
-; unsigned char __fastcall__ getnextdevice (unsigned char device);
-;
-
- .export _getfirstdevice
- .export _getnextdevice
-
- .import isdisk
- .import opencmdchannel
- .import closecmdchannel
- .importzp tmp2
-
- .include "c64.inc"
-
-;------------------------------------------------------------------------------
-; _getfirstdevice
-
-_getfirstdevice:
- lda #$FF
- ; Fall through
-
-;------------------------------------------------------------------------------
-; _getnextdevice
-
-_getnextdevice:
- tax
-next: inx
- cpx #$FF
- beq done
-
-; [open|close]cmdchannel already call isdisk internally but they
-; interpret a non-disk as a no-op while we need to interpret it
-; as an error here
-
- jsr isdisk
- bcs next
-
-; [open|close]cmdchannel don't call into the Kernal at all if they
-; only [in|de]crement the reference count of the shared cmdchannel
-; so we need to explicitly initialize ST here
-
- lda #$00
- sta ST
-
- stx tmp2
- jsr opencmdchannel
- ldx tmp2
- jsr closecmdchannel
- ldx tmp2
-
-; As we had to reference ST above anyway we can as well do so
-; here too (instead of calling READST)
-
- lda ST
-
-; Either the Kernal calls above were successfull or there was
-; already a cmdchannel to the device open - which is a pretty
-; good indication of its existence ;-)
-
- bmi next
-
-done: txa
- ldx #$00
- rts
diff --git a/libsrc/c64/status.s b/libsrc/c64/status.s
new file mode 100644
index 000000000..3620c9107
--- /dev/null
+++ b/libsrc/c64/status.s
@@ -0,0 +1,5 @@
+;
+; Oliver Schmidt, 2012-09-30
+;
+
+ .exportzp ST := $90 ; IEC status byte
diff --git a/libsrc/cbm/Makefile b/libsrc/cbm/Makefile
index 639d69424..1b1a6a4cb 100644
--- a/libsrc/cbm/Makefile
+++ b/libsrc/cbm/Makefile
@@ -76,6 +76,7 @@ S_OBJS = c_acptr.o \
filename.o \
filetype.o \
filevars.o \
+ getdevice.o \
gotox.o \
gotoxy.o \
gotoy.o \
diff --git a/libsrc/cbm/getdevice.s b/libsrc/cbm/getdevice.s
new file mode 100644
index 000000000..87f990bf1
--- /dev/null
+++ b/libsrc/cbm/getdevice.s
@@ -0,0 +1,66 @@
+;
+; Oliver Schmidt, 2012-09-04
+;
+; unsigned char getfirstdevice (void);
+; unsigned char __fastcall__ getnextdevice (unsigned char device);
+;
+
+ .export _getfirstdevice
+ .export _getnextdevice
+
+ .import isdisk
+ .import opencmdchannel
+ .import closecmdchannel
+ .importzp ST
+ .importzp tmp2
+
+;------------------------------------------------------------------------------
+; _getfirstdevice
+
+_getfirstdevice:
+ lda #$FF
+ ; Fall through
+
+;------------------------------------------------------------------------------
+; _getnextdevice
+
+_getnextdevice:
+ tax
+next: inx
+ cpx #$FF
+ beq done
+
+; [open|close]cmdchannel already call isdisk internally but they
+; interpret a non-disk as a no-op while we need to interpret it
+; as an error here
+
+ jsr isdisk
+ bcs next
+
+; [open|close]cmdchannel don't call into the Kernal at all if they
+; only [in|de]crement the reference count of the shared cmdchannel
+; so we need to explicitly initialize ST here
+
+ lda #$00
+ sta ST
+
+ stx tmp2
+ jsr opencmdchannel
+ ldx tmp2
+ jsr closecmdchannel
+ ldx tmp2
+
+; As we had to reference ST above anyway we can as well do so
+; here too (instead of calling READST)
+
+ lda ST
+
+; Either the Kernal calls above were successfull or there was
+; already a cmdchannel to the device open - which is a pretty
+; good indication of its existence ;-)
+
+ bmi next
+
+done: txa
+ ldx #$00
+ rts
diff --git a/libsrc/pet/Makefile b/libsrc/pet/Makefile
index 041643d40..8ecf018c1 100644
--- a/libsrc/pet/Makefile
+++ b/libsrc/pet/Makefile
@@ -70,6 +70,7 @@ OBJS = _scrsize.o \
mainargs.o \
randomize.o \
revers.o \
+ status.o \
sysuname.o
#--------------------------------------------------------------------------
diff --git a/libsrc/pet/checkst.s b/libsrc/pet/checkst.s
index 9996d0ed4..8d9d9a4f3 100644
--- a/libsrc/pet/checkst.s
+++ b/libsrc/pet/checkst.s
@@ -6,8 +6,7 @@
;
.export checkst
-
- .include "pet.inc"
+ .importzp ST
.proc checkst
@@ -22,5 +21,3 @@
rts
.endproc
-
-
diff --git a/libsrc/pet/crt0.s b/libsrc/pet/crt0.s
index 564e9ce77..121f4c492 100644
--- a/libsrc/pet/crt0.s
+++ b/libsrc/pet/crt0.s
@@ -9,6 +9,7 @@
.import callmain
.import CLRCH, BSOUT
.import __INTERRUPTOR_COUNT__
+ .importzp ST
.include "zeropage.inc"
.include "pet.inc"
diff --git a/libsrc/pet/kreadst.s b/libsrc/pet/kreadst.s
index 56a491e5d..38f6bfb19 100644
--- a/libsrc/pet/kreadst.s
+++ b/libsrc/pet/kreadst.s
@@ -5,8 +5,7 @@
;
.export READST
-
- .include "pet.inc"
+ .importzp ST
.proc READST
diff --git a/libsrc/pet/status.s b/libsrc/pet/status.s
new file mode 100644
index 000000000..bb72817ce
--- /dev/null
+++ b/libsrc/pet/status.s
@@ -0,0 +1,5 @@
+;
+; Oliver Schmidt, 2012-09-30
+;
+
+ .exportzp ST := $96 ; IEC status byte
diff --git a/libsrc/plus4/Makefile b/libsrc/plus4/Makefile
index d6a852e21..4dc01c96b 100644
--- a/libsrc/plus4/Makefile
+++ b/libsrc/plus4/Makefile
@@ -82,6 +82,7 @@ OBJS = _scrsize.o \
mainargs.o \
randomize.o \
revers.o \
+ status.o \
systime.o \
sysuname.o
diff --git a/libsrc/plus4/crt0.s b/libsrc/plus4/crt0.s
index 0592cca7e..73460d82b 100644
--- a/libsrc/plus4/crt0.s
+++ b/libsrc/plus4/crt0.s
@@ -11,6 +11,7 @@
.import __INTERRUPTOR_COUNT__
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
.import __STACKSIZE__ ; Linker generated
+ .importzp ST
.include "zeropage.inc"
.include "plus4.inc"
diff --git a/libsrc/plus4/status.s b/libsrc/plus4/status.s
new file mode 100644
index 000000000..3620c9107
--- /dev/null
+++ b/libsrc/plus4/status.s
@@ -0,0 +1,5 @@
+;
+; Oliver Schmidt, 2012-09-30
+;
+
+ .exportzp ST := $90 ; IEC status byte
diff --git a/libsrc/vic20/Makefile b/libsrc/vic20/Makefile
index 929a19aad..023f27a8f 100644
--- a/libsrc/vic20/Makefile
+++ b/libsrc/vic20/Makefile
@@ -61,6 +61,7 @@ OBJS = _scrsize.o \
mainargs.o \
randomize.o \
revers.o \
+ status.o \
sysuname.o
#--------------------------------------------------------------------------
diff --git a/libsrc/vic20/crt0.s b/libsrc/vic20/crt0.s
index 944fabe48..170ac3a39 100644
--- a/libsrc/vic20/crt0.s
+++ b/libsrc/vic20/crt0.s
@@ -11,6 +11,7 @@
.import __INTERRUPTOR_COUNT__
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
.import __STACKSIZE__ ; Linker generated
+ .importzp ST
.include "zeropage.inc"
.include "vic20.inc"
diff --git a/libsrc/vic20/status.s b/libsrc/vic20/status.s
new file mode 100644
index 000000000..3620c9107
--- /dev/null
+++ b/libsrc/vic20/status.s
@@ -0,0 +1,5 @@
+;
+; Oliver Schmidt, 2012-09-30
+;
+
+ .exportzp ST := $90 ; IEC status byte