From 59e96ef74035fac5d42e82b98d7969101533c8c6 Mon Sep 17 00:00:00 2001
From: "ol.sc"
Date: Sun, 30 Sep 2012 18:20:15 +0000
Subject: [PATCH] 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
---
libsrc/c128/Makefile | 2 +-
libsrc/c128/crt0.s | 1 +
libsrc/c128/getdevice.s | 67 ---------------------------------
libsrc/c128/status.s | 5 +++
libsrc/c16/Makefile | 1 +
libsrc/c16/crt0.s | 1 +
libsrc/c16/status.s | 5 +++
libsrc/c64/Makefile | 2 +-
libsrc/c64/crt0.s | 1 +
libsrc/c64/status.s | 5 +++
libsrc/cbm/Makefile | 1 +
libsrc/{c64 => cbm}/getdevice.s | 3 +-
libsrc/pet/Makefile | 1 +
libsrc/pet/checkst.s | 5 +--
libsrc/pet/crt0.s | 1 +
libsrc/pet/kreadst.s | 3 +-
libsrc/pet/status.s | 5 +++
libsrc/plus4/Makefile | 1 +
libsrc/plus4/crt0.s | 1 +
libsrc/plus4/status.s | 5 +++
libsrc/vic20/Makefile | 1 +
libsrc/vic20/crt0.s | 1 +
libsrc/vic20/status.s | 5 +++
23 files changed, 46 insertions(+), 77 deletions(-)
delete mode 100644 libsrc/c128/getdevice.s
create mode 100644 libsrc/c128/status.s
create mode 100644 libsrc/c16/status.s
create mode 100644 libsrc/c64/status.s
rename libsrc/{c64 => cbm}/getdevice.s (97%)
create mode 100644 libsrc/pet/status.s
create mode 100644 libsrc/plus4/status.s
create mode 100644 libsrc/vic20/status.s
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/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/c64/getdevice.s b/libsrc/cbm/getdevice.s
similarity index 97%
rename from libsrc/c64/getdevice.s
rename to libsrc/cbm/getdevice.s
index 90bf6ba47..87f990bf1 100644
--- a/libsrc/c64/getdevice.s
+++ b/libsrc/cbm/getdevice.s
@@ -11,10 +11,9 @@
.import isdisk
.import opencmdchannel
.import closecmdchannel
+ .importzp ST
.importzp tmp2
- .include "c64.inc"
-
;------------------------------------------------------------------------------
; _getfirstdevice
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
--
2.39.5