mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-02-08 15:30:41 +00:00
Migrated some SHR code to main memory.
This commit is contained in:
parent
403baeeeff
commit
74b856e8f5
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
@ -281,6 +281,7 @@ MAINZP MAC
|
||||
PUT MAINMEM.INIT
|
||||
PUT MAINMEM.SVC
|
||||
PUT MAINMEM.HGR
|
||||
PUT MAINMEM.SHR
|
||||
PUT MAINMEM.PATH
|
||||
PUT MAINMEM.WILD
|
||||
PUT MAINMEM.LISTS
|
||||
|
241
auxmem.shr.s
241
auxmem.shr.s
@ -99,7 +99,8 @@ SHRVDU22 LDA #$18 ; Inhibit SHR & aux HGR shadowing
|
||||
CPX #200 ; 200 lines so 200 SCBs
|
||||
BNE :L1
|
||||
JSR SHRDEFPAL ; Default palette
|
||||
JSR SHRXPLDFONT ; Explode font -> SHRFONTXPLD table
|
||||
>>> XF2MAIN,SHRXPLDFONT ; Explode font -> SHRFONTXPLD table
|
||||
SHRV22RET >>> ENTAUX
|
||||
JSR VDU12 ; Clear text and SHR screen
|
||||
RTS
|
||||
|
||||
@ -107,8 +108,6 @@ SHRVDU22 LDA #$18 ; Inhibit SHR & aux HGR shadowing
|
||||
* Data in bank $E1
|
||||
******************************************************************************
|
||||
|
||||
SHRFONTXPLD EQU $A000 ; Explode SHR font to $E1:A000
|
||||
|
||||
* Used for long writes
|
||||
SHRCOLMASKL EQU $E1B000 ; Colour mask foreground (word)
|
||||
SHRBGMASKL EQU $E1B002 ; Colour mask background (word)
|
||||
@ -122,188 +121,6 @@ SHRBGMASK EQU $B002 ; Colour mask background (word)
|
||||
SHRBGMASKA DW $0000 ; Keep a copy in aux mem too
|
||||
|
||||
|
||||
* Explode font to generate SHRFONTXPLD table
|
||||
* This is 2 bytes x 8 rows for each character in 640 mode
|
||||
* or 4 bytes x 8 rows for each character in 320 mode
|
||||
SHRXPLDFONT LDA #<SHRFONTXPLD ; Use VDUADDR to point to ..
|
||||
STA VDUADDR+0 ; .. start of table to write
|
||||
LDA #>SHRFONTXPLD
|
||||
STA VDUADDR+1
|
||||
LDA #$E1
|
||||
STA VDUBANK
|
||||
LDA #32 ; First char number
|
||||
:L1 JSR SHRXPLDCHAR ; Explode char A
|
||||
INC A
|
||||
CMP #128 ; 96 chars in FONT8
|
||||
BNE :L1
|
||||
RTS
|
||||
|
||||
|
||||
* Explode one character to location pointed to by VDUADDR
|
||||
* On entry: A - character to explode
|
||||
SHRXPLDCHAR PHA
|
||||
SEC
|
||||
SBC #32
|
||||
STA ZP1+0 ; A*8 -> ZP1
|
||||
STZ ZP1+1
|
||||
ASL ZP1+0
|
||||
ROL ZP1+1
|
||||
ASL ZP1+0
|
||||
ROL ZP1+1
|
||||
ASL ZP1+0
|
||||
ROL ZP1+1
|
||||
CLC ; FONT8+A*8 -> ZP1
|
||||
LDA ZP1+0
|
||||
ADC #<FONT8
|
||||
STA ZP1+0
|
||||
LDA ZP1+1
|
||||
ADC #>FONT8
|
||||
STA ZP1+1
|
||||
LDY #$00 ; First row of char
|
||||
:L1 >>> RDMAIN
|
||||
LDA (ZP1),Y ; Load row of font
|
||||
>>> RDAUX
|
||||
JSR SHRXPLDROW
|
||||
INY ; Next row of font
|
||||
CPY #$08 ; Last row?
|
||||
BNE :L1
|
||||
PLA
|
||||
RTS
|
||||
|
||||
|
||||
* Explode one pixel row of user defined graphics char
|
||||
* On entry: A contains row of font data
|
||||
SHRUSERCHAR LDA #<SHRFONTXPLD ; Use VDUADDR to point to ..
|
||||
STA VDUADDR+0 ; .. start of table to write
|
||||
LDA #>SHRFONTXPLD
|
||||
STA VDUADDR+1
|
||||
LDA #$E1
|
||||
STA VDUBANK
|
||||
|
||||
LDA VDUQ+0 ; Character number
|
||||
CMP #32 ; < 32? Then bail out
|
||||
BCC :DONE
|
||||
SEC ; Otherwise, subtract 32
|
||||
SBC #32
|
||||
TAY
|
||||
|
||||
LDA #16 ; Bytes/char in 640 mode
|
||||
LDX VDUPIXELS ; Pixels per byte
|
||||
CPX #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :S0
|
||||
LDA #32 ; Bytes/char in 320 mode
|
||||
:S0 STA :INCREMENT
|
||||
|
||||
:L0 CPY #$00
|
||||
BEQ :S1
|
||||
CLC
|
||||
LDA VDUADDR+0
|
||||
ADC :INCREMENT
|
||||
STA VDUADDR+0
|
||||
LDA VDUADDR+1
|
||||
ADC #$00
|
||||
STA VDUADDR+1
|
||||
DEY
|
||||
BRA :L0
|
||||
|
||||
|
||||
:S1 LDY #$00
|
||||
:L1 LDA VDUQ+1,Y ; Row of pixels
|
||||
JSR SHRXPLDROW
|
||||
INY
|
||||
CPY #$08 ; Last row?
|
||||
BNE :L1
|
||||
:DONE RTS
|
||||
:INCREMENT DB $00
|
||||
|
||||
|
||||
* Explode one row of pixels. Used by SHRXPLDCHAR & SHRUSERCHAR
|
||||
* On entry: A contains row of font data
|
||||
SHRXPLDROW LDX VDUPIXELS ; Pixels per byte
|
||||
CPX #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :S1
|
||||
JSR SHRCHAR320
|
||||
BRA :S2
|
||||
:S1 JSR SHRCHAR640
|
||||
:S2 LDX VDUPIXELS ; Pixels per byte
|
||||
CPX #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :S3
|
||||
CLC ; 320 mode: add 4 to VDUADDR
|
||||
LDA VDUADDR+0
|
||||
ADC #$04
|
||||
STA VDUADDR+0
|
||||
LDA VDUADDR+1
|
||||
ADC #$00
|
||||
STA VDUADDR+1
|
||||
BRA :S4
|
||||
:S3 CLC ; 640 mode: add 2 to VDUADDR
|
||||
LDA VDUADDR+0
|
||||
ADC #$02
|
||||
STA VDUADDR+0
|
||||
LDA VDUADDR+1
|
||||
ADC #$00
|
||||
STA VDUADDR+1
|
||||
:S4 RTS
|
||||
|
||||
|
||||
* Explode one pixel row of font in 320 mode
|
||||
* 4 bytes per char, 4 bits per pixel
|
||||
* On entry: A contains row of font data
|
||||
SHRCHAR320 PHY ; Preserve Y
|
||||
LDY #$00 ; Dest byte index
|
||||
:L0 STZ ZP2
|
||||
LDX #$00 ; Source bit index
|
||||
:L1 ASL ; MS bit -> C
|
||||
PHP ; Preserve C
|
||||
ROL ZP2 ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
PHP
|
||||
ROL ZP2 ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
PHP
|
||||
ROL ZP2 ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
ROL ZP2 ; C -> LS bit
|
||||
INX
|
||||
CPX #$02 ; Processed two bits of font?
|
||||
BNE :L1
|
||||
PHA ; Preserve partially shifted font
|
||||
LDA ZP2
|
||||
STA [VDUADDR],Y
|
||||
PLA ; Recover partially shifted font
|
||||
INY
|
||||
CPY #$04 ; Done 4 bytes?
|
||||
BNE :L0
|
||||
PLY ; Recover Y
|
||||
RTS
|
||||
|
||||
|
||||
* Explode one pixel row of font in 640 mode
|
||||
* 2 bytes per char, 2 bits per pixel
|
||||
* On entry: A contains row of font data
|
||||
SHRCHAR640 PHY ; Preserve Y
|
||||
LDY #$00 ; Dest byte index
|
||||
:L0 STZ ZP2
|
||||
LDX #$00 ; Source bit index
|
||||
:L1 ASL ; MS bit -> C
|
||||
PHP ; Preserve C
|
||||
ROL ZP2 ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
ROL ZP2 ; C -> LS bit
|
||||
INX
|
||||
CPX #$04
|
||||
BNE :L1
|
||||
PHA ; Preserve partially shifted font
|
||||
LDA ZP2
|
||||
STA [VDUADDR],Y
|
||||
PLA ; Recover partially shifted font
|
||||
INY
|
||||
CPY #$02 ; Done 2 bytes?
|
||||
BNE :L0
|
||||
PLY ; Recover Y
|
||||
RTS
|
||||
|
||||
|
||||
* Write character to SHR screen
|
||||
* On entry: A - character to write
|
||||
SHRPRCHAR CMP CURSORED ; Edit cursor?
|
||||
@ -881,57 +698,3 @@ SHRPALCUSTOM PHA ; Preserve GB components
|
||||
STAL $E19E00+1,X ; Store in logical slot
|
||||
RTS
|
||||
|
||||
|
||||
* Convert high-resolution screen coordinates
|
||||
* from 1280x1024 to 620x200 or 320x200
|
||||
* TODO: Move to mainmem
|
||||
SHRCOORD PHP ; Disable interrupts
|
||||
SEI
|
||||
CLC ; 65816 native mode
|
||||
XCE
|
||||
REP #$30 ; 16 bit M & X
|
||||
MX %00 ; Tell Merlin
|
||||
|
||||
* X-coordinate in VDUQ+5,+6 MODE0:1280/2=640 or MODE1:1280/4=320
|
||||
LDA VDUPIXELS ; Pixels per byte
|
||||
AND #$00FF
|
||||
CMP #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :MODE0
|
||||
LDA VDUQ+5
|
||||
LSR ; /2
|
||||
LSR ; /4
|
||||
STA ZP1 ; TODO: Store somewhere sensible
|
||||
BRA :Y
|
||||
:MODE0 LDA VDUQ+5
|
||||
LSR ; /2
|
||||
STA ZP1 ; TODO: Store somewhere sensible
|
||||
|
||||
* Y-coordinate in VDUQ+7,+8 1024*3/16=192, 1024/128=8, 192+8=200
|
||||
:Y LDA VDUQ+7
|
||||
ASL ; *2
|
||||
CLC
|
||||
ADC VDUQ+7 ; *3
|
||||
LSR ; *3/2
|
||||
LSR ; *3/4
|
||||
LSR ; *3/8
|
||||
LSR ; *3/16
|
||||
STA ZP1 ; (ZP1 and ZP2)
|
||||
LDA VDUQ+7
|
||||
LSR ; /2
|
||||
LSR ; /4
|
||||
LSR ; /8
|
||||
LSR ; /16
|
||||
LSR ; /32
|
||||
LSR ; /64
|
||||
LSR ; /128
|
||||
CLC
|
||||
ADC ZP1 ; Result
|
||||
STA ZP1 ; TODO: Store somewhere sensible
|
||||
|
||||
SEC ; Back to emulation mode
|
||||
XCE
|
||||
MX %11 ; Tell Merlin
|
||||
PLP ; Normal service resumed
|
||||
RTS
|
||||
|
||||
|
||||
|
27
auxmem.vdu.s
27
auxmem.vdu.s
@ -600,6 +600,9 @@ VDU22 JSR NEGCALL ; Find machine type
|
||||
STA VDUBYTES ; Bytes per char
|
||||
LDA SCNPIXELS,X
|
||||
STA VDUPIXELS ; Pixels per byte
|
||||
>>> WRTMAIN
|
||||
STA SHRPIXELS
|
||||
>>> WRTAUX
|
||||
LDA SCNTYPE,X
|
||||
STA VDUSCREEN ; Screen type
|
||||
LDA #$01
|
||||
@ -1127,9 +1130,7 @@ VDUCOPYEXIT RTS
|
||||
* x is in VDUQ+5,VDUQ+6
|
||||
* y is in VDUQ+7,VDUQ+8
|
||||
*
|
||||
|
||||
* TO DO:
|
||||
* clip to viewport
|
||||
* TO DO: Clip to viewport
|
||||
|
||||
VDU25 LDA VDUQ+4
|
||||
AND #$04 ; Bit 2 set -> absolute
|
||||
@ -1166,7 +1167,7 @@ ADJORIG CLC
|
||||
LDA GFXORIGX+1
|
||||
ADC VDUQ+6
|
||||
STA VDUQ+6
|
||||
CLC
|
||||
CLC
|
||||
LDA GFXORIGY+0
|
||||
ADC VDUQ+7
|
||||
STA VDUQ+7
|
||||
@ -1195,10 +1196,22 @@ RELCOORD CLC
|
||||
* Program video system and define characters
|
||||
* VDU 23,charnum,row1,row2,row3,row4,row5,row6,row7,row8
|
||||
VDU23 BIT VDUSCREEN ; Check we are in SHR mode
|
||||
BVC :NOTSHR
|
||||
JSR SHRUSERCHAR
|
||||
:NOTSHR RTS
|
||||
BVS :SHR
|
||||
RTS
|
||||
:SHR JSR VDUCOPYMAIN ; Copy VDUQ to main mem
|
||||
>>> XF2MAIN,SHRUSERCHAR
|
||||
VDU23RET >>> ENTAUX
|
||||
RTS
|
||||
|
||||
* Copy VDUQ to SHRVDUQ in main memory
|
||||
VDUCOPYMAIN LDY #$00
|
||||
:L1 LDA VDUQ,Y ; Copy VDUQ to SHRVDUQ
|
||||
>>> WRTMAIN
|
||||
STA SHRVDUQ,Y
|
||||
>>> WRTAUX
|
||||
INY
|
||||
CPY #16
|
||||
BNE :L1
|
||||
|
||||
* Read from VDU system
|
||||
**********************
|
||||
|
257
mainmem.shr.s
Normal file
257
mainmem.shr.s
Normal file
@ -0,0 +1,257 @@
|
||||
* MAINMEM.SHR.S
|
||||
* (c) Bobbi 2022 GPLv3
|
||||
*
|
||||
* Routines for drawing bitmapped text and graphics in SHR mode
|
||||
* on Apple IIGS (640x200 4 colour, or 320x200 16 colour.)
|
||||
*
|
||||
* This code is in main memory only to save space in aux LC.
|
||||
*
|
||||
|
||||
******************************************************************************
|
||||
* Data in bank $E1
|
||||
******************************************************************************
|
||||
|
||||
SHRFONTXPLD EQU $A000 ; Explode SHR font to $E1:A000
|
||||
|
||||
******************************************************************************
|
||||
|
||||
SHRPIXELS DB $00 ; Main memory copy of VDUPIXELS
|
||||
SHRVDUQ DS 16 ; Main memory copy of VDUQ
|
||||
|
||||
|
||||
* Explode font to generate SHRFONTXPLD table
|
||||
* This is 2 bytes x 8 rows for each character in 640 mode
|
||||
* or 4 bytes x 8 rows for each character in 320 mode
|
||||
SHRXPLDFONT >>> ENTMAIN
|
||||
LDA #<SHRFONTXPLD ; Use A3L/H to point to ..
|
||||
STA A3L ; .. start of table to write
|
||||
LDA #>SHRFONTXPLD
|
||||
STA A3H
|
||||
LDA #$E1 ; Memory bank $E1
|
||||
STA A4L
|
||||
LDA #32 ; First char number
|
||||
:L1 JSR SHRXPLDCHAR ; Explode char A
|
||||
INC A
|
||||
CMP #128 ; 96 chars in FONT8
|
||||
BNE :L1
|
||||
>>> XF2AUX,SHRV22RET
|
||||
RTS
|
||||
|
||||
|
||||
* Explode one character to location pointed to by A3L
|
||||
* On entry: A - character to explode
|
||||
SHRXPLDCHAR PHA
|
||||
SEC
|
||||
SBC #32
|
||||
STA A1L ; A*8 -> A1L/H
|
||||
STZ A1H
|
||||
ASL A1L
|
||||
ROL A1H
|
||||
ASL A1L
|
||||
ROL A1H
|
||||
ASL A1L
|
||||
ROL A1H
|
||||
CLC ; FONT8+A*8 -> A1L/H
|
||||
LDA A1L
|
||||
ADC #<FONT8
|
||||
STA A1L
|
||||
LDA A1H
|
||||
ADC #>FONT8
|
||||
STA A1H
|
||||
LDY #$00 ; First row of char
|
||||
:L1 LDA (A1L),Y ; Load row of font
|
||||
JSR SHRXPLDROW
|
||||
INY ; Next row of font
|
||||
CPY #$08 ; Last row?
|
||||
BNE :L1
|
||||
PLA
|
||||
RTS
|
||||
|
||||
|
||||
* Explode one pixel row of user defined graphics char
|
||||
SHRUSERCHAR >>> ENTMAIN
|
||||
LDA #<SHRFONTXPLD ; Use A3L/H to point to ..
|
||||
STA A3L ; .. start of table to write
|
||||
LDA #>SHRFONTXPLD
|
||||
STA A3H
|
||||
LDA #$E1
|
||||
STA A4L
|
||||
|
||||
LDA SHRVDUQ+0 ; Character number
|
||||
CMP #32 ; < 32? Then bail out
|
||||
BCC :DONE
|
||||
SEC ; Otherwise, subtract 32
|
||||
SBC #32
|
||||
TAY
|
||||
|
||||
LDA #16 ; Bytes/char in 640 mode
|
||||
LDX SHRPIXELS ; Pixels per byte
|
||||
CPX #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :S0
|
||||
LDA #32 ; Bytes/char in 320 mode
|
||||
:S0 STA :INCREMENT
|
||||
|
||||
:L0 CPY #$00
|
||||
BEQ :S1
|
||||
CLC
|
||||
LDA A3L
|
||||
ADC :INCREMENT
|
||||
STA A3L
|
||||
LDA A3H
|
||||
ADC #$00
|
||||
STA A3H
|
||||
DEY
|
||||
BRA :L0
|
||||
|
||||
|
||||
:S1 LDY #$00
|
||||
:L1 LDA SHRVDUQ+1,Y ; Row of pixels
|
||||
JSR SHRXPLDROW
|
||||
INY
|
||||
CPY #$08 ; Last row?
|
||||
BNE :L1
|
||||
:DONE RTS
|
||||
>>> XF2AUX,VDU23RET
|
||||
:INCREMENT DB $00
|
||||
|
||||
|
||||
* Explode one row of pixels. Used by SHRXPLDCHAR & SHRUSERCHAR
|
||||
* On entry: A contains row of font data
|
||||
SHRXPLDROW LDX SHRPIXELS ; Pixels per byte
|
||||
CPX #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :S1
|
||||
JSR SHRCHAR320
|
||||
BRA :S2
|
||||
:S1 JSR SHRCHAR640
|
||||
:S2 LDX SHRPIXELS ; Pixels per byte
|
||||
CPX #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :S3
|
||||
CLC ; 320 mode: add 4 to A3L
|
||||
LDA A3L
|
||||
ADC #$04
|
||||
STA A3L
|
||||
LDA A3H
|
||||
ADC #$00
|
||||
STA A3H
|
||||
BRA :S4
|
||||
:S3 CLC ; 640 mode: add 2 to A3L
|
||||
LDA A3L
|
||||
ADC #$02
|
||||
STA A3L
|
||||
LDA A3H
|
||||
ADC #$00
|
||||
STA A3H
|
||||
:S4 RTS
|
||||
|
||||
|
||||
* Explode one pixel row of font in 320 mode
|
||||
* 4 bytes per char, 4 bits per pixel
|
||||
* On entry: A contains row of font data
|
||||
SHRCHAR320 PHY ; Preserve Y
|
||||
LDY #$00 ; Dest byte index
|
||||
:L0 STZ A2L
|
||||
LDX #$00 ; Source bit index
|
||||
:L1 ASL ; MS bit -> C
|
||||
PHP ; Preserve C
|
||||
ROL A2L ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
PHP
|
||||
ROL A2L ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
PHP
|
||||
ROL A2L ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
ROL A2L ; C -> LS bit
|
||||
INX
|
||||
CPX #$02 ; Processed two bits of font?
|
||||
BNE :L1
|
||||
PHA ; Preserve partially shifted font
|
||||
LDA A2L
|
||||
STA [A3L],Y
|
||||
PLA ; Recover partially shifted font
|
||||
INY
|
||||
CPY #$04 ; Done 4 bytes?
|
||||
BNE :L0
|
||||
PLY ; Recover Y
|
||||
RTS
|
||||
|
||||
|
||||
* Explode one pixel row of font in 640 mode
|
||||
* 2 bytes per char, 2 bits per pixel
|
||||
* On entry: A contains row of font data
|
||||
SHRCHAR640 PHY ; Preserve Y
|
||||
LDY #$00 ; Dest byte index
|
||||
:L0 STZ A2L
|
||||
LDX #$00 ; Source bit index
|
||||
:L1 ASL ; MS bit -> C
|
||||
PHP ; Preserve C
|
||||
ROL A2L ; C -> LS bit
|
||||
PLP ; Recover C
|
||||
ROL A2L ; C -> LS bit
|
||||
INX
|
||||
CPX #$04
|
||||
BNE :L1
|
||||
PHA ; Preserve partially shifted font
|
||||
LDA A2L
|
||||
STA [A3L],Y
|
||||
PLA ; Recover partially shifted font
|
||||
INY
|
||||
CPY #$02 ; Done 2 bytes?
|
||||
BNE :L0
|
||||
PLY ; Recover Y
|
||||
RTS
|
||||
|
||||
|
||||
* Convert high-resolution screen coordinates
|
||||
* from 1280x1024 to 620x200 or 320x200
|
||||
* TODO: Totally untested ...
|
||||
SHRCOORD PHP ; Disable interrupts
|
||||
SEI
|
||||
CLC ; 65816 native mode
|
||||
XCE
|
||||
REP #$30 ; 16 bit M & X
|
||||
MX %00 ; Tell Merlin
|
||||
|
||||
* X-coordinate in SHRVDUQ+5,+6 MODE0:1280/2=640 or MODE1:1280/4=320
|
||||
LDA SHRPIXELS ; Pixels per byte
|
||||
AND #$00FF
|
||||
CMP #$02 ; 2 is 320-mode (MODE 1)
|
||||
BNE :MODE0
|
||||
LDA SHRVDUQ+5
|
||||
LSR ; /2
|
||||
LSR ; /4
|
||||
STA A1L ; TODO: Store somewhere sensible
|
||||
BRA :Y
|
||||
:MODE0 LDA SHRVDUQ+5
|
||||
LSR ; /2
|
||||
STA A1L ; TODO: Store somewhere sensible
|
||||
|
||||
* Y-coordinate in SHRVDUQ+7,+8 1024*3/16=192, 1024/128=8, 192+8=200
|
||||
:Y LDA SHRVDUQ+7
|
||||
ASL ; *2
|
||||
CLC
|
||||
ADC SHRVDUQ+7 ; *3
|
||||
LSR ; *3/2
|
||||
LSR ; *3/4
|
||||
LSR ; *3/8
|
||||
LSR ; *3/16
|
||||
STA A1L ; (A1L and A1H)
|
||||
LDA SHRVDUQ+7
|
||||
LSR ; /2
|
||||
LSR ; /4
|
||||
LSR ; /8
|
||||
LSR ; /16
|
||||
LSR ; /32
|
||||
LSR ; /64
|
||||
LSR ; /128
|
||||
CLC
|
||||
ADC A1L ; Result
|
||||
STA A1L ; TODO: Store somewhere sensible
|
||||
|
||||
SEC ; Back to emulation mode
|
||||
XCE
|
||||
MX %11 ; Tell Merlin
|
||||
PLP ; Normal service resumed
|
||||
RTS
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user