mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-01-03 22:30:09 +00:00
Merged in JGH's Sept 9 VDU driver update.
This commit is contained in:
parent
980376bf71
commit
8a39a760fd
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
@ -3,9 +3,10 @@
|
||||
*
|
||||
* Applecorn OSBYTE and OSWORD handlers
|
||||
*
|
||||
* 15-Aug-2021 Added 'set variable' OSBYTEs 1-6
|
||||
* 02-Sep-2021 OSWORD 5 can read from Main Memory ROM
|
||||
* 04-Sep-2021 Extended VDU table to add $75 and $A0 for VDU driver
|
||||
* 15-Aug-2021 Added 'set variable' OSBYTEs 1-6.
|
||||
* 02-Sep-2021 OSWORD 5 can read from Main Memory ROM.
|
||||
* 04-Sep-2021 Extended VDU table to add $75 and $A0 for VDU driver.
|
||||
* 09-Sep-2021 Moved keyboard and VDU OSBYTEs to Keyboard and VDU.
|
||||
|
||||
|
||||
XC ; 65c02
|
||||
@ -14,7 +15,8 @@
|
||||
* OSBYTE DISPATCH TABLE *
|
||||
*************************
|
||||
|
||||
BYTEVARBASE EQU $190 ; Base of OSBYTE variables
|
||||
* Moved to AUXMEM.VDU.S for benefit of Merlin-8/-16
|
||||
*BYTEVARBASE EQU $190 ; Base of OSBYTE variables
|
||||
|
||||
BYTWRDADDR DW BYTE00XX ; OSBYTE 0 - Machine host
|
||||
DW BYTE01 ; OSBYTE 1 - User flag
|
||||
@ -29,9 +31,9 @@ BYTWRDADDR DW BYTE00XX ; OSBYTE 0 - Machine host
|
||||
DW BYTENULL ; OSBYTE 10 - Flash period mark
|
||||
DW BYTENULL ; OSBYTE 11 - Autorepeat delay
|
||||
DW BYTENULL ; OSBYTE 12 - Autorepeat repeat
|
||||
DW BYTENULL ; OSBYTE 13 - Disable events
|
||||
DW BYTENULL ; OSBYTE 14 - Enable events
|
||||
DW BYTENULL ; OSBYTE 15 - Flush sel buf class
|
||||
DW BYTENULL ; OSBYTE 13 - Disable event
|
||||
DW BYTENULL ; OSBYTE 14 - Enable event
|
||||
DW BYTENULL ; OSBYTE 15 - Flush buffer
|
||||
BYTWRDLOW
|
||||
BYTESZLO EQU BYTWRDLOW-BYTWRDADDR
|
||||
BYTELOW EQU BYTESZLO/2-1 ; Maximum low OSBYTE
|
||||
@ -230,8 +232,10 @@ BYTFAIL0 PHX ; *DEBUG*
|
||||
CMP #$01
|
||||
PLA ; *DEBUG*
|
||||
BCC BYTWRDEXIT ; Claimed, return
|
||||
BIT $E0 ; *DEBUG*
|
||||
BVC BYTEFAIL1 ; Debug turned off
|
||||
JSR UNSUPBYTWRD ; *DEBUG*
|
||||
LDX #$FF ; X=&FF if unclaimed
|
||||
BYTEFAIL1 LDX #$FF ; X=&FF if unclaimed
|
||||
PLP ; Restore original flags and IRQs
|
||||
PLA ; Restore A
|
||||
BIT SETV ; Set V = Not actioned
|
||||
@ -426,18 +430,18 @@ BYTEVAR TAY ; offset to variable
|
||||
LDA BYTEVARBASE+1,Y
|
||||
TAY ; Y=next value
|
||||
* Unimplemented
|
||||
BYTE89 ; *MOTOR
|
||||
BYTE8A ; Buffer insert
|
||||
BYTE8C ; *TAPE
|
||||
BYTE8D ; *ROM
|
||||
*BYTE89 ; *MOTOR
|
||||
*BYTE8A ; Buffer insert
|
||||
*BYTE8C ; *TAPE
|
||||
*BYTE8D ; *ROM
|
||||
RTS
|
||||
|
||||
* Memory layout
|
||||
BYTE82 ; $82 = read high order address
|
||||
* LDY #$00
|
||||
* LDX #$00 ; $0000 for language processor
|
||||
* Should return $0000, but BCPL and Lisp try to move up to $F800
|
||||
* overwriting Apple II stuff
|
||||
* Should return $0000, but BCPL, Lisp and View try to move
|
||||
* up to $F800 overwriting Apple II stuff
|
||||
LDY #$FF ; $FFFF for I/O processor
|
||||
LDX #$FF
|
||||
RTS
|
||||
@ -451,19 +455,12 @@ BYTE84 LDY #$80 ; $84 = read top of user mem
|
||||
LDX #$00
|
||||
RTS
|
||||
|
||||
* Move to keyboard stuff
|
||||
************************
|
||||
BYTE7E LDX #$00 ; $7E = ack detection of ESC
|
||||
BIT ESCFLAG
|
||||
BPL BYTE7DOK ; No Escape pending
|
||||
* TO DO: process escape effects
|
||||
DEX ; X=$FF, Escape was pending
|
||||
BYTE7C CLC ; &7C = clear escape condition
|
||||
BYTE7D ROR ESCFLAG ; $7D = set escape condition
|
||||
BYTE7DOK RTS
|
||||
|
||||
* Passed on to filing system
|
||||
BYTE8B LDA #$00 ; &00 -> &00 - *OPT
|
||||
BYTE8B CPX #$FF ; *DEBUG*
|
||||
BNE BYTE8BA ; *DEBUG*
|
||||
STY $E0 ; *DEBUG*
|
||||
RTS ; *DEBUG*
|
||||
BYTE8BA LDA #$00 ; &00 -> &00 - *OPT
|
||||
BYTE7F AND #$01 ; &7F -> &01 - EOF
|
||||
CALLFSCV JMP (FSCV) ; Hand over to filing system
|
||||
|
||||
@ -533,13 +530,3 @@ OSWORDM ASC 'OSWORD($'
|
||||
OSBM2 ASC ').'
|
||||
DB $00
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -22,15 +22,16 @@
|
||||
* The three separate cursors can be set seperately.
|
||||
* 02-Sep-2021 INKEY-256 tests Apple IIe vs IIc.
|
||||
* 05-Sep-2021 KBDINIT returns startup value to pass to VDUINT.
|
||||
* 09-Sep-2021 Moved keyboard OSBYTEs to here.
|
||||
|
||||
|
||||
* TEMP, move to VDU.S
|
||||
FLASHER EQU $290
|
||||
CURSOR EQU $291
|
||||
CURSORED EQU $292
|
||||
CURSORCP EQU $293
|
||||
OLDCHAR EQU $294
|
||||
COPYCHAR EQU $295
|
||||
** Moved to VDU.S
|
||||
*FLASHER EQU $290
|
||||
*CURSOR EQU $291
|
||||
*CURSORED EQU $292
|
||||
*CURSORCP EQU $293
|
||||
*OLDCHAR EQU $294
|
||||
*COPYCHAR EQU $295
|
||||
|
||||
FXEXEC EQU BYTEVARBASE+198
|
||||
FXSPOOL EQU BYTEVARBASE+199
|
||||
@ -64,6 +65,11 @@ WRCHHND PHA
|
||||
*
|
||||
JSR OUTCHAR
|
||||
* TO DO Check any printer output
|
||||
* BCC WRCHHND2
|
||||
* TSX
|
||||
* LDA $103,X
|
||||
* JSR PRNCHAR
|
||||
* WRCHHND2
|
||||
PLY
|
||||
PLX
|
||||
PLA
|
||||
@ -226,7 +232,7 @@ NEGINKEY CPX #$01
|
||||
LDX #$00 ; Unimplemented
|
||||
BCS NEGINKEY0
|
||||
|
||||
JSR NEGCALL
|
||||
JSR NEGCALL ; Read machine ID from aux
|
||||
LDX #$2C
|
||||
TAY
|
||||
BEQ NEGINKEY0 ; $00 = Apple IIc -> INKEY-256 = $2C
|
||||
@ -234,23 +240,6 @@ NEGINKEY CPX #$01
|
||||
AND #$0F
|
||||
BEQ NEGINKEY0 ; $x0 = Apple IIe -> INKEY-256 = $2E
|
||||
LDX #$2A ; else = Apple IIgs INKEY-256 = $2A
|
||||
|
||||
* LDX #$2A
|
||||
* ; 6502 A 65C02 A 65816 B A
|
||||
* LDA #$00 ; 00 00 zz 00
|
||||
* DB #$EB ; SBC NOP 00 XBA 00 zz
|
||||
* DB #$3A ; #$3A C5 DEC A FF DEC A 00 yy
|
||||
* DB #$EB ; SBC NOP FF XBA yy 00
|
||||
* DB #$EA ; #$EA DA NOP FF NOP yy 00
|
||||
* BEQ NEGINKEY0 ; INKEY-256 = $2A - AppleIIgs
|
||||
* LDA #$C0
|
||||
* LDY #$FB
|
||||
* JSR WORD05IO1 ; Read from $FBC0 in main ROM
|
||||
* LDX #$2C
|
||||
* TAY
|
||||
* BEQ NEGINKEY0 ; INKEY-256 = $2C = Apple IIc
|
||||
* LDX #$2E ; INKEY-256 = $2E = Apple IIe
|
||||
|
||||
NEGINKEY0 LDY #$00
|
||||
CLC
|
||||
RTS
|
||||
@ -437,13 +426,22 @@ KBDNOESC TXA ; A=keycode
|
||||
CLC ; CLC=Ok
|
||||
KBDDONE RTS
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* Process pending Escape state
|
||||
BYTE7E LDX #$00 ; $7E = ack detection of ESC
|
||||
BIT ESCFLAG
|
||||
BPL BYTE7DOK ; No Escape pending
|
||||
LDA FXESCEFFECT ; Process Escape effects
|
||||
BEQ BYTE7E2
|
||||
CLI ; Allow IRQs while flushing
|
||||
STA FXLINES ; Clear scroll counter
|
||||
* JSR STAREXEC0 ; Close any EXEC file
|
||||
* JSR FLUSHALL ; Flush all buffers
|
||||
BYTE7E2 LDX #$FF ; X=$FF, Escape was pending
|
||||
BYTE7C CLC ; &7C = clear escape condition
|
||||
BYTE7D ROR ESCFLAG ; $7D = set escape condition
|
||||
BYTE7DOK RTS
|
||||
|
||||
BYTE76 LDX #$00 ; Update LEDs and return X=SHIFT
|
||||
RTS ; Not possible with Apple
|
||||
|
||||
|
||||
|
954
auxmem.vdu.s
954
auxmem.vdu.s
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user