mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-03-09 05:32:09 +00:00
Add OSBYTE 02/03/80. Fix OSFIND 'update' behaviour.
This commit is contained in:
parent
3d4c4b2e85
commit
e2ff749d3b
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
40
auxmem.s
40
auxmem.s
@ -969,10 +969,18 @@ BYTEHND PHA
|
||||
RTS
|
||||
BYTECALLER
|
||||
CMP #$00 ; $00 = identify MOS version
|
||||
BNE :S7C
|
||||
BNE :S02
|
||||
LDX #$0A
|
||||
RTS
|
||||
|
||||
:S02 CMP #$02 ; $02 = select input stream
|
||||
BNE :S03
|
||||
RTS ; Nothing to do
|
||||
|
||||
:S03 CMP #$03 ; $03 = select output stream
|
||||
BNE :S7C
|
||||
RTS ; Nothing to do
|
||||
|
||||
:S7C CMP #$7C ; $7C = clear escape condition
|
||||
BNE :S7D
|
||||
LDA ESCFLAG
|
||||
@ -994,12 +1002,32 @@ BYTECALLER
|
||||
RTS
|
||||
|
||||
:S7F CMP #$7F ; $7F = check for EOF
|
||||
BNE :S81
|
||||
BNE :S80
|
||||
PHY
|
||||
JSR CHKEOF
|
||||
PLY
|
||||
RTS
|
||||
|
||||
:S80 CMP #$80 ; $80 = read ADC or get buf stat
|
||||
BNE :S81
|
||||
CPX #$00 ; X<0 => info about buffers
|
||||
BMI :S80BUF ; X>=0 read ADC info
|
||||
LDX #$00 ; ADC - just return 0
|
||||
LDY #$00 ; ADC - just return 0
|
||||
RTS
|
||||
:S80BUF CPX #$FF ; Kbd buf
|
||||
BEQ :S80KEY
|
||||
CPX #$FE ; RS423
|
||||
BEQ :NONE
|
||||
:ONE LDX #$01 ; For outputs, 1 char free
|
||||
RTS
|
||||
:S80KEY LDX $C000 ; Keyboard data/strobe
|
||||
AND #$80
|
||||
BEQ :NONE
|
||||
BRA :ONE
|
||||
:NONE LDX #$00 ; No chars in buf
|
||||
RTS
|
||||
|
||||
:S81 CMP #$81 ; $81 = Read key with time lim
|
||||
BNE :S82
|
||||
JSR GETKEY
|
||||
@ -1030,11 +1058,17 @@ BYTECALLER
|
||||
RTS
|
||||
|
||||
:S86 CMP #$86 ; $86 = read cursor pos
|
||||
BNE :SDA
|
||||
BNE :S8B
|
||||
LDY ROW
|
||||
LDX COL
|
||||
RTS
|
||||
|
||||
:S8B CMP #$8B ; $8B = *OPT
|
||||
BNE :SDA
|
||||
* TODO: Could implement some FS options here
|
||||
* messages on/off, error behaviour
|
||||
RTS ; Nothing to do (yet)
|
||||
|
||||
:SDA CMP #$DA ; $DA = clear VDU queue
|
||||
BNE :UNSUPP
|
||||
RTS
|
||||
|
@ -123,7 +123,7 @@ OFILE LDX $0100 ; Recover SP
|
||||
PLA ; Get option back
|
||||
PHA
|
||||
CMP #$80 ; Write mode
|
||||
BNE :NODEST
|
||||
BNE :S0
|
||||
|
||||
LDA #<MOSFILE ; Attempt to destroy file
|
||||
STA DESTPL+1
|
||||
@ -133,11 +133,6 @@ OFILE LDX $0100 ; Recover SP
|
||||
DB DESTCMD
|
||||
DW DESTPL
|
||||
|
||||
:NODEST PLA ; Get option back
|
||||
PHA
|
||||
AND #$80 ; Write or Update
|
||||
BEQ :NOCREAT
|
||||
|
||||
LDA #<MOSFILE ; Attempt to create file
|
||||
STA CREATEPL+1
|
||||
STA OPENPL+1
|
||||
@ -164,7 +159,7 @@ OFILE LDX $0100 ; Recover SP
|
||||
STA CREATEPL+11
|
||||
JSR CRTFILE
|
||||
|
||||
:NOCREAT LDA #$00 ; Look for empty slot
|
||||
:S0 LDA #$00 ; Look for empty slot
|
||||
JSR FINDBUF
|
||||
STX BUFIDX
|
||||
CPX #$00
|
||||
|
Loading…
x
Reference in New Issue
Block a user