Add assembly of clock driver

This commit is contained in:
Terence Boldt 2024-04-17 10:23:32 -04:00
parent c07dcdd52e
commit 4fd6b7b91e
3 changed files with 57 additions and 1 deletions

48
Apple2/Clock.Driver.asm Normal file
View File

@ -0,0 +1,48 @@
enableWriteLang = $C088
disableWriteLang = $C082
prodosJump = $BF06
prodosClockCode = $BF07
prodosMachineId = $BF98
; Find Apple2-IO-RPi card
; Change driver code to point to the card
; Change destination to be ProDOS clock code location
lda prodosClockCode
sta DriverDestination+1
lda prodosClockCode+1
sta DriverDestination+2
; Changing RTS to JMP enables clock driver
lda #$4C ; jump instruction
sta prodosJump
; Enable writing to language card RAM
; by triggering switch twice
lda enableWriteLang
lda enableWriteLang
; write driver code to language card RAM
WriteDriver:
ldy #EndDriver-Driver+1
lda Driver,y
DriverDestination:
sta $D000,y ; this address gets modified above
dey
bne WriteDriver
; Disable writing to language card RAM
lda disableWriteLang
; Update ProDOS Machine ID to mark clock as enabled
lda prodosMachineId
ora #$01
sta prodosMachineId
rts
Driver:
EndDriver:
rts

View File

@ -88,7 +88,12 @@ ca65 RPi.Command.asm -D HW_TYPE=%HW_TYPE% -o RPi.Command.o --listing RPi.Command
ld65 RPi.Command.o -o RPi.Command.bin -C ../.cicd/none.cfg
@if errorlevel 1 goto exit
del *.o
ca65 Clock.Driver.asm -D HW_TYPE=%HW_TYPE% -o Clock.Driver.o --listing Clock.Driver.lst
@if errorlevel 1 goto exit
ld65 Clock.Driver.o -o Clock.Driver.bin -C ../.cicd/none.cfg
@if errorlevel 1 goto exit
cdel *.o
del DriveFirmware.bin
del MenuFirmware.bin
del CommandFirmware.bin

View File

@ -51,6 +51,9 @@ ld65 Shell.o -o ../RaspberryPi/driveimage/Shell.bin -C ../.cicd/none.cfg || exi
ca65 RPi.Command.asm -D HW_TYPE=$HW_TYPE -o RPi.Command.o --listing RPi.Command.lst || exit 1
ld65 RPi.Command.o -o ../RaspberryPi/driveimage/RPi.Command.bin -C ../.cicd/none.cfg || exit 1
ca65 Clock.Driver.asm -D HW_TYPE=$HW_TYPE -o Clock.Driver.o --listing Clock.Driver.lst || exit 1
ld65 Clock.Driver.o -o ../RaspberryPi/driveimage/Clock.Driver.bin -C ../.cicd/none.cfg || exit 1
rm ./*.o
rm DriveFirmware.bin
rm MenuFirmware.bin