Merge JGH MACHRD and VDU driver updates

This commit is contained in:
Bobbi Webber-Manners 2021-09-06 19:36:04 -04:00
parent 86f815461e
commit 34b3b81849
13 changed files with 65 additions and 14 deletions

Binary file not shown.

View File

@ -178,3 +178,5 @@ MAINZP MAC
* Automatically save the object file:
SAV APPLECORN

View File

@ -533,3 +533,5 @@ OSWORDM ASC 'OSWORD($'
OSBM2 ASC ').'
DB $00

View File

@ -32,6 +32,9 @@ CURSORCP EQU $293
OLDCHAR EQU $294
COPYCHAR EQU $295
FXEXEC EQU BYTEVARBASE+198
FXSPOOL EQU BYTEVARBASE+199
FXTABCHAR EQU BYTEVARBASE+219
FXESCCHAR EQU BYTEVARBASE+220
FXKEYBASE EQU BYTEVARBASE+221
@ -54,6 +57,11 @@ WRCHHND PHA
PHY
* TO DO Check any output redirections
* TO DO Check any spool output
* LDY FXSPOOL
* BEQ WRCHHND1
* JSR OSBPUT
* WRCHHND1
*
JSR OUTCHAR
* TO DO Check any printer output
PLY
@ -217,25 +225,38 @@ BYTE81DONE RTS
NEGINKEY CPX #$01
LDX #$00 ; Unimplemented
BCS NEGINKEY0
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
JSR NEGCALL
LDX #$2C
TAY
BEQ NEGINKEY0 ; INKEY-256 = $2C = Apple IIc
LDX #$2E ; INKEY-256 = $2E = Apple IIe
BEQ NEGINKEY0 ; $00 = Apple IIc -> INKEY-256 = $2C
LDX #$2E
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
NEGCALL >>> XF2MAIN,MACHRD ; Try to read Machine ID
* KERNEL/KEYBOARD.S
*******************
@ -250,7 +271,7 @@ NEGINKEY0 LDY #$00
* A =keycode, X,Y=corrupted
KEYREAD
* TO DO: check *EXEC source
* LDY FXVAREXEC
* LDY FXEXEC
* BEQ KEYREAD1
* JSR OSBGET
* BCC KEYREADOK

View File

@ -893,3 +893,5 @@ ERROR2E DW $C800
ASC 'Disk changed' ; $2E - Disk switched
DB $00

View File

@ -150,3 +150,5 @@ BYTE00A BRK
HELLO ASC 'Applecorn MOS 2021-09-06 snapshot'
DB $00 ; Unify MOS messages

View File

@ -464,3 +464,5 @@ MOSVEND
AUXBLK ASC '**ENDOFCODE**'
DS $200-13

View File

@ -66,3 +66,5 @@ OSFILECB EQU $2EE ; OSFILE control block

View File

@ -566,3 +566,5 @@ ECHO3 PHP
JMP OSNEWL

View File

@ -495,3 +495,5 @@ BYTEA0 LDY #79 ; Read VDU variable $09,$0A
* TEST

View File

@ -116,3 +116,5 @@ CANTOPEN ASC "Unable to open ROM file"

View File

@ -123,3 +123,5 @@ ROM8 STR "USERROM2.ROM"

View File

@ -1349,6 +1349,14 @@ COPYPFXMF
JSR STRCPY
RTS
* Read mainmem from auxmem
MACHRD LDA $C081
LDA $C081
LDA $FBC0
SEC
JSR $FE1F
BRA MAINRDEXIT
* Read mainmem from auxmem
MAINRDMEM STA A1L
STY A1H
@ -1457,3 +1465,5 @@ QUITPL HEX 04 ; Number of parameters
MFTEMP DS 65 ; Temp copy of MOSFILE
PREFIX DS 65 ; Buffer for ProDOS prefix