mirror of
https://github.com/irmen/prog8.git
synced 2025-08-18 19:33:18 +00:00
added cbm.CLEARST() to reset ST to 0
This commit is contained in:
@@ -78,7 +78,7 @@ romsub $FFAB = UNTLK() clobbers(A) ; command serial
|
|||||||
romsub $FFAE = UNLSN() clobbers(A) ; command serial bus device to UNLISTEN
|
romsub $FFAE = UNLSN() clobbers(A) ; command serial bus device to UNLISTEN
|
||||||
romsub $FFB1 = LISTEN(ubyte device @ A) clobbers(A) ; command serial bus device to LISTEN
|
romsub $FFB1 = LISTEN(ubyte device @ A) clobbers(A) ; command serial bus device to LISTEN
|
||||||
romsub $FFB4 = TALK(ubyte device @ A) clobbers(A) ; command serial bus device to TALK
|
romsub $FFB4 = TALK(ubyte device @ A) clobbers(A) ; command serial bus device to TALK
|
||||||
romsub $FFB7 = READST() -> ubyte @ A ; read I/O status word
|
romsub $FFB7 = READST() -> ubyte @ A ; read I/O status word (use CLEARST to reset it to 0)
|
||||||
romsub $FFBA = SETLFS(ubyte logical @ A, ubyte device @ X, ubyte secondary @ Y) ; set logical file parameters
|
romsub $FFBA = SETLFS(ubyte logical @ A, ubyte device @ X, ubyte secondary @ Y) ; set logical file parameters
|
||||||
romsub $FFBD = SETNAM(ubyte namelen @ A, str filename @ XY) ; set filename parameters
|
romsub $FFBD = SETNAM(ubyte namelen @ A, str filename @ XY) ; set filename parameters
|
||||||
romsub $FFC0 = OPEN() clobbers(X,Y) -> bool @Pc, ubyte @A ; (via 794 ($31A)) open a logical file
|
romsub $FFC0 = OPEN() clobbers(X,Y) -> bool @Pc, ubyte @A ; (via 794 ($31A)) open a logical file
|
||||||
@@ -128,6 +128,14 @@ asmsub RDTIM16() clobbers(X) -> uword @AY {
|
|||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub CLEARST() {
|
||||||
|
; -- Set the ST status variable back to 0. (there's no direct kernal call for this)
|
||||||
|
; Note: a drive error state (blinking led) isn't cleared! You can use diskio.status() to clear that.
|
||||||
|
SETNAM(0, $0000)
|
||||||
|
SETLFS(15, 3, 15)
|
||||||
|
void OPEN()
|
||||||
|
CLOSE(15)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -82,7 +82,7 @@ romsub $FFAB = UNTLK() clobbers(A) ; command serial
|
|||||||
romsub $FFAE = UNLSN() clobbers(A) ; command serial bus device to UNLISTEN
|
romsub $FFAE = UNLSN() clobbers(A) ; command serial bus device to UNLISTEN
|
||||||
romsub $FFB1 = LISTEN(ubyte device @ A) clobbers(A) ; command serial bus device to LISTEN
|
romsub $FFB1 = LISTEN(ubyte device @ A) clobbers(A) ; command serial bus device to LISTEN
|
||||||
romsub $FFB4 = TALK(ubyte device @ A) clobbers(A) ; command serial bus device to TALK
|
romsub $FFB4 = TALK(ubyte device @ A) clobbers(A) ; command serial bus device to TALK
|
||||||
romsub $FFB7 = READST() -> ubyte @ A ; read I/O status word
|
romsub $FFB7 = READST() -> ubyte @ A ; read I/O status word (use CLEARST to reset it to 0)
|
||||||
romsub $FFBA = SETLFS(ubyte logical @ A, ubyte device @ X, ubyte secondary @ Y) ; set logical file parameters
|
romsub $FFBA = SETLFS(ubyte logical @ A, ubyte device @ X, ubyte secondary @ Y) ; set logical file parameters
|
||||||
romsub $FFBD = SETNAM(ubyte namelen @ A, str filename @ XY) ; set filename parameters
|
romsub $FFBD = SETNAM(ubyte namelen @ A, str filename @ XY) ; set filename parameters
|
||||||
romsub $FFC0 = OPEN() clobbers(X,Y) -> bool @Pc, ubyte @A ; (via 794 ($31A)) open a logical file
|
romsub $FFC0 = OPEN() clobbers(X,Y) -> bool @Pc, ubyte @A ; (via 794 ($31A)) open a logical file
|
||||||
@@ -128,6 +128,15 @@ asmsub RDTIM16() clobbers(X) -> uword @AY {
|
|||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub CLEARST() {
|
||||||
|
; -- Set the ST status variable back to 0. (there's no direct kernal call for this)
|
||||||
|
; Note: a drive error state (blinking led) isn't cleared! You can use diskio.status() to clear that.
|
||||||
|
SETNAM(0, $0000)
|
||||||
|
SETLFS(15, 3, 15)
|
||||||
|
void OPEN()
|
||||||
|
CLOSE(15)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
c64 {
|
c64 {
|
||||||
|
@@ -29,7 +29,7 @@ romsub $FFAB = UNTLK() clobbers(A) ; command serial
|
|||||||
romsub $FFAE = UNLSN() clobbers(A) ; command serial bus device to UNLISTEN
|
romsub $FFAE = UNLSN() clobbers(A) ; command serial bus device to UNLISTEN
|
||||||
romsub $FFB1 = LISTEN(ubyte device @ A) clobbers(A) ; command serial bus device to LISTEN
|
romsub $FFB1 = LISTEN(ubyte device @ A) clobbers(A) ; command serial bus device to LISTEN
|
||||||
romsub $FFB4 = TALK(ubyte device @ A) clobbers(A) ; command serial bus device to TALK
|
romsub $FFB4 = TALK(ubyte device @ A) clobbers(A) ; command serial bus device to TALK
|
||||||
romsub $FFB7 = READST() -> ubyte @ A ; read I/O status word
|
romsub $FFB7 = READST() -> ubyte @ A ; read I/O status word (use CLEARST to reset it to 0)
|
||||||
romsub $FFBA = SETLFS(ubyte logical @ A, ubyte device @ X, ubyte secondary @ Y) ; set logical file parameters
|
romsub $FFBA = SETLFS(ubyte logical @ A, ubyte device @ X, ubyte secondary @ Y) ; set logical file parameters
|
||||||
romsub $FFBD = SETNAM(ubyte namelen @ A, str filename @ XY) ; set filename parameters
|
romsub $FFBD = SETNAM(ubyte namelen @ A, str filename @ XY) ; set filename parameters
|
||||||
romsub $FFC0 = OPEN() clobbers(X,Y) -> bool @Pc, ubyte @A ; (via 794 ($31A)) open a logical file
|
romsub $FFC0 = OPEN() clobbers(X,Y) -> bool @Pc, ubyte @A ; (via 794 ($31A)) open a logical file
|
||||||
@@ -81,6 +81,15 @@ asmsub RDTIM16() clobbers(X) -> uword @AY {
|
|||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub CLEARST() {
|
||||||
|
; -- Set the ST status variable back to 0. (there's no direct kernal call for this)
|
||||||
|
; Note: a drive error state (blinking led) isn't cleared! You can use diskio.status() to clear that.
|
||||||
|
SETNAM(0, $0000)
|
||||||
|
SETLFS(15, 3, 15)
|
||||||
|
void OPEN()
|
||||||
|
CLOSE(15)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cx16 {
|
cx16 {
|
||||||
|
@@ -1,15 +1,14 @@
|
|||||||
%import textio
|
%import textio
|
||||||
|
%import diskio
|
||||||
%zeropage basicsafe
|
%zeropage basicsafe
|
||||||
|
|
||||||
main {
|
main {
|
||||||
sub start() {
|
sub start() {
|
||||||
uword ptr = &test
|
void diskio.f_open("does-not-exist")
|
||||||
call(ptr)
|
txt.print_ub(cbm.READST())
|
||||||
call(ptr)
|
txt.nl()
|
||||||
call(ptr)
|
cbm.CLEARST()
|
||||||
}
|
txt.print_ub(cbm.READST())
|
||||||
|
txt.nl()
|
||||||
sub test() {
|
|
||||||
txt.print("test!\n")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user