2021-09-07 02:28:07 +00:00
|
|
|
* MAINMEM.INIT.S
|
|
|
|
* (c) Bobbi 2021 GPLv3
|
|
|
|
*
|
|
|
|
* Initialization, interrupt handling and reset handling code
|
|
|
|
* that resides in main memory.
|
|
|
|
|
|
|
|
* Trampoline in main memory used by aux memory IRQ handler
|
|
|
|
* to invoke Apple II / ProDOS IRQs in main memory
|
|
|
|
A2IRQ >>> IENTMAIN ; IENTMAIN does not do CLI
|
|
|
|
JSR A2IRQ2
|
|
|
|
>>> XF2AUX,IRQBRKRET
|
|
|
|
A2IRQ2 PHP ; Fake things to look like IRQ
|
|
|
|
JMP (A2IRQV) ; Call Apple II ProDOS ISR
|
|
|
|
|
|
|
|
* BRK handler in main memory. Used on Apple IIgs only.
|
|
|
|
GSBRK >>> XF2AUX,GSBRKAUX
|
|
|
|
|
|
|
|
* Set prefix if not already set
|
|
|
|
SETPRFX LDA #GPFXCMD
|
|
|
|
STA :OPC7 ; Initialize cmd byte to $C7
|
|
|
|
:L1 JSR MLI
|
|
|
|
:OPC7 DB $00
|
|
|
|
DW GSPFXPL
|
|
|
|
LDX DRVBUF1 ; was $0300
|
|
|
|
BNE RTSINST
|
|
|
|
LDA $BF30
|
|
|
|
STA ONLNPL+1 ; Device number
|
|
|
|
JSR MLI
|
|
|
|
DB ONLNCMD
|
|
|
|
DW ONLNPL
|
|
|
|
LDA DRVBUF2 ; was $0301
|
|
|
|
AND #$0F
|
|
|
|
TAX
|
|
|
|
INX
|
|
|
|
STX DRVBUF1 ; was $0300
|
2021-09-17 01:50:52 +00:00
|
|
|
LDA #'/'
|
2021-09-07 02:28:07 +00:00
|
|
|
STA DRVBUF2 ; was $0301
|
|
|
|
DEC :OPC7
|
|
|
|
BNE :L1
|
|
|
|
RTSINST RTS
|
|
|
|
|
|
|
|
* Disconnect /RAM ramdrive to avoid aux corruption
|
|
|
|
* Stolen from Beagle Bros Extra K
|
|
|
|
DISCONN LDA $BF98
|
|
|
|
AND #$30
|
|
|
|
CMP #$30
|
|
|
|
BNE :S1
|
|
|
|
LDA $BF26
|
|
|
|
CMP $BF10
|
|
|
|
BNE :S2
|
|
|
|
LDA $BF27
|
|
|
|
CMP $BF11
|
|
|
|
BEQ :S1
|
|
|
|
:S2 LDY $BF31
|
|
|
|
:L1 LDA $BF32,Y
|
|
|
|
AND #$F3
|
|
|
|
CMP #$B3
|
|
|
|
BEQ :S3
|
|
|
|
DEY
|
|
|
|
BPL :L1
|
|
|
|
BMI :S1
|
|
|
|
:S3 LDA $BF32,Y
|
|
|
|
STA DRVBUF2+1 ; was $0302
|
|
|
|
:L2 LDA $BF33,Y
|
|
|
|
STA $BF32,Y
|
|
|
|
BEQ :S4
|
|
|
|
INY
|
|
|
|
BNE :L2
|
|
|
|
:S4 LDA $BF26
|
|
|
|
STA DRVBUF1 ; was $0300
|
|
|
|
LDA $BF27
|
|
|
|
STA DRVBUF2 ; was $0301
|
|
|
|
LDA $BF10
|
|
|
|
STA $BF26
|
|
|
|
LDA $BF11
|
|
|
|
STA $BF27
|
|
|
|
DEC $BF31
|
|
|
|
:S1 RTS
|
|
|
|
|
|
|
|
* Reset handler - invoked on Ctrl-Reset
|
|
|
|
* XFER to AUXMOS ($C000) in aux, AuxZP on, LC on
|
|
|
|
RESET TSX
|
|
|
|
STX $0100
|
|
|
|
LDA $C058 ; AN0 off
|
|
|
|
LDA $C05A ; AN1 off
|
|
|
|
LDA $C05D ; AN2 on
|
|
|
|
LDA $C05F ; AN3 on
|
2021-09-27 01:58:00 +00:00
|
|
|
LDA #$20 ; Turn off PAGE2 shadow on ROM3 GS
|
|
|
|
TSB $C035
|
2021-09-07 02:28:07 +00:00
|
|
|
>>> XF2AUX,AUXMOS
|
|
|
|
RTS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-09-07 03:43:42 +00:00
|
|
|
|
|
|
|
|
2021-09-09 17:38:27 +00:00
|
|
|
|
|
|
|
|
2021-09-10 05:10:16 +00:00
|
|
|
|
|
|
|
|
2021-09-10 18:53:24 +00:00
|
|
|
|
|
|
|
|
2021-09-10 20:11:57 +00:00
|
|
|
|
|
|
|
|
2021-09-12 06:05:17 +00:00
|
|
|
|
|
|
|
|
2021-09-17 03:16:05 +00:00
|
|
|
|
2021-09-22 02:59:11 +00:00
|
|
|
|
|
|
|
|
2021-09-22 22:36:05 +00:00
|
|
|
|
|
|
|
|
2021-09-23 16:59:36 +00:00
|
|
|
|
|
|
|
|
2021-09-23 22:16:21 +00:00
|
|
|
|
|
|
|
|
2021-09-24 02:07:36 +00:00
|
|
|
|
|
|
|
|
2021-09-25 16:50:08 +00:00
|
|
|
|
|
|
|
|
2021-09-26 22:25:23 +00:00
|
|
|
|
|
|
|
|
2021-09-29 14:21:04 +00:00
|
|
|
|
|
|
|
|
2021-09-30 20:40:32 +00:00
|
|
|
|
|
|
|
|
2021-09-17 21:51:11 +00:00
|
|
|
|
|
|
|
|
2021-09-17 03:16:05 +00:00
|
|
|
|