Fix #223. Also CLREOL (sorta) works in SHR mode.
This commit is contained in:
parent
e5eabbac97
commit
0e74697271
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
|
@ -564,12 +564,16 @@ CATLONG LDY #$21
|
||||||
JMP OSNEWL
|
JMP OSNEWL
|
||||||
PRDATETIME JSR PRSPACE
|
PRDATETIME JSR PRSPACE
|
||||||
JSR PRSPACE
|
JSR PRSPACE
|
||||||
|
>>> RDMAIN
|
||||||
LDA (FSPTR1),Y
|
LDA (FSPTR1),Y
|
||||||
|
>>> RDAUX
|
||||||
PHA
|
PHA
|
||||||
AND #$1F
|
AND #$1F
|
||||||
JSR PRDECSLH ; Day
|
JSR PRDECSLH ; Day
|
||||||
INY
|
INY
|
||||||
|
>>> RDMAIN
|
||||||
LDA (FSPTR1),Y
|
LDA (FSPTR1),Y
|
||||||
|
>>> RDAUX
|
||||||
ASL A
|
ASL A
|
||||||
PLA
|
PLA
|
||||||
ROL A
|
ROL A
|
||||||
|
@ -578,7 +582,9 @@ PRDATETIME JSR PRSPACE
|
||||||
ROL A
|
ROL A
|
||||||
AND #$0F
|
AND #$0F
|
||||||
JSR PRDECSLH ; Month
|
JSR PRDECSLH ; Month
|
||||||
|
>>> RDMAIN
|
||||||
LDA (FSPTR1),Y
|
LDA (FSPTR1),Y
|
||||||
|
>>> RDAUX
|
||||||
PHA
|
PHA
|
||||||
CMP #80
|
CMP #80
|
||||||
LDA #$19
|
LDA #$19
|
||||||
|
@ -591,12 +597,16 @@ PRDATETIME JSR PRSPACE
|
||||||
JSR PRSPACE
|
JSR PRSPACE
|
||||||
INY
|
INY
|
||||||
INY
|
INY
|
||||||
|
>>> RDMAIN
|
||||||
LDA (FSPTR1),Y
|
LDA (FSPTR1),Y
|
||||||
|
>>> RDAUX
|
||||||
JSR PRDEC ; Hour
|
JSR PRDEC ; Hour
|
||||||
LDA #$3A
|
LDA #$3A
|
||||||
JSR OSWRCH
|
JSR OSWRCH
|
||||||
DEY
|
DEY
|
||||||
|
>>> RDMAIN
|
||||||
LDA (FSPTR1),Y ; Minute
|
LDA (FSPTR1),Y ; Minute
|
||||||
|
>>> RDAUX
|
||||||
PRDEC TAX
|
PRDEC TAX
|
||||||
LDA #$99
|
LDA #$99
|
||||||
SED
|
SED
|
||||||
|
@ -613,10 +623,14 @@ PRDECSLH JSR PRDEC
|
||||||
* Print object access string
|
* Print object access string
|
||||||
PRACCESS LDX #$04 ; Offset to 'D' char
|
PRACCESS LDX #$04 ; Offset to 'D' char
|
||||||
LDY #$00
|
LDY #$00
|
||||||
|
>>> RDMAIN
|
||||||
LDA (FSPTR1),Y
|
LDA (FSPTR1),Y
|
||||||
|
>>> RDAUX
|
||||||
CMP #$D0 ; CS=Directory
|
CMP #$D0 ; CS=Directory
|
||||||
LDY #$1E
|
LDY #$1E
|
||||||
|
>>> RDMAIN
|
||||||
LDA (FSPTR1),Y ; Permission byte
|
LDA (FSPTR1),Y ; Permission byte
|
||||||
|
>>> RDAUX
|
||||||
LDY #$0C ; Char counter
|
LDY #$0C ; Char counter
|
||||||
EOR #$C0
|
EOR #$C0
|
||||||
* AND #$E3 ; Keep LLB---WR
|
* AND #$E3 ; Keep LLB---WR
|
||||||
|
@ -635,47 +649,14 @@ PRACCESS LDX #$04 ; Offset to 'D' char
|
||||||
BPL :PRACCLP ; Loop for all chars
|
BPL :PRACCLP ; Loop for all chars
|
||||||
JMP PRSPACES ; Pad
|
JMP PRSPACES ; Pad
|
||||||
|
|
||||||
* LDX #$04 ; Offset to chars
|
|
||||||
* LDY #$1E
|
|
||||||
* LDA (FSPTR1),Y
|
|
||||||
* PHA
|
|
||||||
* LDY #$00 ; Chars printed
|
|
||||||
* LDA (FSPTR1),Y
|
|
||||||
* CMP #$D0
|
|
||||||
* JSR :PRACCCHR ; 'D'
|
|
||||||
* PLA
|
|
||||||
* CPY #$01 ; Has 'D' been printed?
|
|
||||||
* PHP
|
|
||||||
* PHA
|
|
||||||
* EOR #$C0
|
|
||||||
* CMP #$40
|
|
||||||
* JSR :PRACCCHR ; 'L'
|
|
||||||
* PLA
|
|
||||||
* PLP
|
|
||||||
* BCS :PRACCDONE ; Dir, skip 'WR'
|
|
||||||
* ROR A
|
|
||||||
* PHP
|
|
||||||
* ROR A
|
|
||||||
* JSR :PRACCCHR ; 'W'
|
|
||||||
* PLP
|
|
||||||
* JSR :PRACCCHR ; 'R'
|
|
||||||
*:PRACCDONE LDA #$20
|
|
||||||
*:PRACCLP JSR :PRSPACE
|
|
||||||
* CPY #$04
|
|
||||||
* BCC :PRACCLP
|
|
||||||
*:PRSKIP RTS
|
|
||||||
*:PRACCCHR DEX
|
|
||||||
* BCC :PRSKIP
|
|
||||||
* LDA ACCESSCHRS,X
|
|
||||||
*:PRSPACE INY
|
|
||||||
* JMP OSWRCH
|
|
||||||
|
|
||||||
ACCESSCHRS ASC 'RWBLD'
|
ACCESSCHRS ASC 'RWBLD'
|
||||||
ACCESSBITS DB $01,$02,$20,$C0,$00
|
ACCESSBITS DB $01,$02,$20,$C0,$00
|
||||||
|
|
||||||
* Print object addresses
|
* Print object addresses
|
||||||
PRADDR LDX #3
|
PRADDR LDX #3
|
||||||
PRADDRLP LDA (FSPTR1),Y
|
PRADDRLP >>> RDMAIN
|
||||||
|
LDA (FSPTR1),Y
|
||||||
|
>>> RDAUX
|
||||||
PRADDR0 JSR OUTHEX
|
PRADDR0 JSR OUTHEX
|
||||||
DEY
|
DEY
|
||||||
DEX
|
DEX
|
||||||
|
|
42
auxmem.shr.s
42
auxmem.shr.s
|
@ -109,13 +109,7 @@ SHRPRCHAR SEC
|
||||||
JSR SHRCHAR320
|
JSR SHRCHAR320
|
||||||
BRA :S2
|
BRA :S2
|
||||||
:S1 JSR SHRCHAR640
|
:S1 JSR SHRCHAR640
|
||||||
:S2 LDA VDUADDR+0 ; Add 160 to VDUADDR
|
:S2 JSR SHRNEXTROW ; Add 160 to VDUADDR
|
||||||
CLC
|
|
||||||
ADC #160
|
|
||||||
STA VDUADDR+0
|
|
||||||
LDA VDUADDR+1
|
|
||||||
ADC #$00
|
|
||||||
STA VDUADDR+1
|
|
||||||
INY ; Next row of font
|
INY ; Next row of font
|
||||||
CPY #$08 ; Last row?
|
CPY #$08 ; Last row?
|
||||||
BNE :L1
|
BNE :L1
|
||||||
|
@ -200,6 +194,17 @@ SHRCHARADDR LDA #$20 ; MSB starts at $20
|
||||||
* (VDUADDR)=>character address, X=preserved
|
* (VDUADDR)=>character address, X=preserved
|
||||||
|
|
||||||
|
|
||||||
|
* Advance VDUADDR to the next row of pixels
|
||||||
|
SHRNEXTROW LDA VDUADDR+0 ; Add 160 to VDUADDR
|
||||||
|
CLC
|
||||||
|
ADC #160
|
||||||
|
STA VDUADDR+0
|
||||||
|
LDA VDUADDR+1
|
||||||
|
ADC #$00
|
||||||
|
STA VDUADDR+1
|
||||||
|
RTS
|
||||||
|
|
||||||
|
|
||||||
* Forwards scroll one line
|
* Forwards scroll one line
|
||||||
SHRSCR1LINE
|
SHRSCR1LINE
|
||||||
RTS
|
RTS
|
||||||
|
@ -211,8 +216,29 @@ SHRRSCR1LINE
|
||||||
|
|
||||||
|
|
||||||
* Clear from current location to EOL
|
* Clear from current location to EOL
|
||||||
SHRCLREOL
|
* TODO: This is only for 640 mode at present
|
||||||
|
SHRCLREOL JSR SHRCHARADDR
|
||||||
|
STZ VDUADDR+0 ; Addr of start of line
|
||||||
|
LDA #$08 ; Eight rows
|
||||||
|
STA :CTR
|
||||||
|
:L0 LDA VDUTEXTX
|
||||||
|
TAX
|
||||||
|
ASL ; 2 bytes / char
|
||||||
|
TAY
|
||||||
|
LDA #$00
|
||||||
|
:L1 CPX TXTWINRGT
|
||||||
|
BCS :S1
|
||||||
|
STA [VDUADDR],Y
|
||||||
|
INY
|
||||||
|
STA [VDUADDR],Y
|
||||||
|
INY
|
||||||
|
INX
|
||||||
|
BRA :L1
|
||||||
|
:S1 JSR SHRNEXTROW
|
||||||
|
DEC :CTR
|
||||||
|
BNE :L0
|
||||||
RTS
|
RTS
|
||||||
|
:CTR DB $00
|
||||||
|
|
||||||
|
|
||||||
* VDU16 (CLG) clears the whole SHR screen right now
|
* VDU16 (CLG) clears the whole SHR screen right now
|
||||||
|
|
Loading…
Reference in New Issue