From b4ae7b7134abd8e764fa60734ce0a74d85fcae2f Mon Sep 17 00:00:00 2001 From: Terence Boldt Date: Wed, 30 Jun 2021 05:12:32 +0100 Subject: [PATCH] Update firmware to add pointer to get/send byte --- Apple2/27256.bin | Bin 32768 -> 32768 bytes Apple2/AT28C64B.bin | Bin 8192 -> 8192 bytes Apple2/CommandFirmware.asm | 8 +- Apple2/CommandFirmware.lst | 15 ++-- Apple2/DriveFirmware.asm | 8 +- Apple2/DriveFirmware.lst | 15 ++-- Apple2/FileAccessFirmware.asm | 8 +- Apple2/FileAccessFirmware.lst | 15 ++-- Apple2/MenuFirmware.asm | 23 +++--- Apple2/MenuFirmware.lst | 146 +++++++++++++++++----------------- Apple2/assemble.sh | 4 + 11 files changed, 144 insertions(+), 98 deletions(-) diff --git a/Apple2/27256.bin b/Apple2/27256.bin index ef31f3bb9a1eb7ed30aeb7a7ab67fee7461075e1..ac35d972c37e030901976468d29fb38a011e86d8 100644 GIT binary patch delta 1898 zcmeIyIZnhd07l`NAuz+f4Ul~(D3G`WCqSITwOdOmQvxoz0Vi;oJvW%MP`KdP${lFZ zJ?WGFIEj*?SQW+U<2Tq>ruwut*w?1kc1bj*(RM|&rq%X<=uD?=K=h{9_K+CNpzRSc zno--e4ZbT?X}ck6#m+I&D0WVWRpa1e$y>o06YnYBIZyF)@=kE{)O&{a&NDol zycgV2<~_#;=Q*BFJ_v3!_rAkN=R17oeN&ENTrAex`Ng^iGr!pRi!J9bcK#Lr=dbt= DJk@@l delta 1798 zcmeIy$qm9V5QSk9!oEWQ$Jsb=fG(&2Q3q9|1dzL+0*>r(q#T4I#CUivfV*?~NBS<7 z98Z?HS>|qDUV*-Co^w_1n87te(F~p$N@ggVp^~d-wX8nX_pddyjyBLH+CtlC2koLg zw2ux@A0472bUb&~Y9^-M?l5_%m5^#L7HTb)zvBqzfcU6600-cJSrVT#ORxk>=8*WT zIRuB`kU1j0XpX=UIAV^8ubN|U433!-;+y6KoPZPNl=!YW1*gnz#kcoIf1SNQ`~K|v M)BD%%&p-F)7qh^)CjbBd diff --git a/Apple2/AT28C64B.bin b/Apple2/AT28C64B.bin index 091a4ac59f07466f6904405f6a43315899d91836..b2e9f5f0993ac1b1473c1196520c07f6ef92e9e6 100644 GIT binary patch delta 477 zcmXZXIZgvH7>3~l3<>)dVD_Y-K;jZP0pc94-C9bS5^%{4IDt#g>Ko)N6fStjn(mbz z>GSX1cDMcf69;GAR|w)z+uDRV(b&d>Bcipf3CBcdI}-%a+uno|Vz7e=r-ZlOghdcP zPCFBpM6KC5BO1-lInio%E{IOEb4m1?ohxF{>|7IGvvU)~w^Qug618IIj%XA+_e87M zc_2E)&Wh+2JCDSm*m)wnV(0m7Zp~}*BBa~w%}0`%-{jrMWGnVgGM_|G@p|+WPbaS> zucpy6ycs>iv&kFDFUK2jaP4T?;o0FU`3^k!3%*rbXdCUIU9^Yx(E&O{N9Y)xpdmU% zXXt$G6mrFu?%}j}$t~mZ$Z}b*P4x~Vjx?VQN8kt?5p&HK!yL@PoLFeS8Wvyy7R0gU no8cH7gJa@E^WAU)PQVFqs`+6!1*hPYIMe(zoPjgqx*z@lx{0p> diff --git a/Apple2/CommandFirmware.asm b/Apple2/CommandFirmware.asm index 543ae43..0986782 100644 --- a/Apple2/CommandFirmware.asm +++ b/Apple2/CommandFirmware.asm @@ -141,9 +141,15 @@ finishRead: end: rts -.repeat 251-GetByte +.byte SendByte + .byte 0,0 ;0000 blocks = check status .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/CommandFirmware.lst b/Apple2/CommandFirmware.lst index cdc5937..f168514 100644 --- a/Apple2/CommandFirmware.lst +++ b/Apple2/CommandFirmware.lst @@ -146,7 +146,7 @@ Current file: CommandFirmware.asm 00C7B6 1 end: 00C7B6 1 60 rts 00C7B7 1 -00C7B7 1 00 00 00 00 .repeat 251-GetByte +00C7FA 1 7D .byte SendByte +00C7FC 1 00C7FC 1 00 00 .byte 0,0 ;0000 blocks = check status 00C7FE 1 07 .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) 00C7FF 1 14 .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/DriveFirmware.asm b/Apple2/DriveFirmware.asm index 8f6253d..5582feb 100644 --- a/Apple2/DriveFirmware.asm +++ b/Apple2/DriveFirmware.asm @@ -185,9 +185,15 @@ finishRead: end: rts -.repeat 251-GetByte +.byte SendByte + .byte 0,0 ;0000 blocks = check status .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/DriveFirmware.lst b/Apple2/DriveFirmware.lst index 07d8e55..efb6b7a 100644 --- a/Apple2/DriveFirmware.lst +++ b/Apple2/DriveFirmware.lst @@ -189,11 +189,16 @@ Current file: DriveFirmware.asm 00C7F1 1 end: 00C7F1 1 60 rts 00C7F2 1 -00C7F2 1 00 00 00 00 .repeat 251-GetByte +00C7FA 1 B8 .byte SendByte +00C7FC 1 00C7FC 1 00 00 .byte 0,0 ;0000 blocks = check status 00C7FE 1 07 .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) 00C7FF 1 14 .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/FileAccessFirmware.asm b/Apple2/FileAccessFirmware.asm index f31ba21..a9baea1 100644 --- a/Apple2/FileAccessFirmware.asm +++ b/Apple2/FileAccessFirmware.asm @@ -140,9 +140,15 @@ finishRead: end: rts -.repeat 251-GetByte +.byte SendByte + .byte 0,0 ;0000 blocks = check status .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/FileAccessFirmware.lst b/Apple2/FileAccessFirmware.lst index 7cbda31..1a3de04 100644 --- a/Apple2/FileAccessFirmware.lst +++ b/Apple2/FileAccessFirmware.lst @@ -144,7 +144,7 @@ Current file: FileAccessFirmware.asm 00C7AD 1 end: 00C7AD 1 60 rts 00C7AE 1 -00C7AE 1 00 00 00 00 .repeat 251-GetByte +00C7FA 1 74 .byte SendByte +00C7FC 1 00C7FC 1 00 00 .byte 0,0 ;0000 blocks = check status 00C7FE 1 07 .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) 00C7FF 1 14 .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/MenuFirmware.asm b/Apple2/MenuFirmware.asm index 427ceca..c277e23 100644 --- a/Apple2/MenuFirmware.asm +++ b/Apple2/MenuFirmware.asm @@ -97,13 +97,6 @@ GetChar: ora #$0f ;set all flags high jmp PageJump -Text: - -.byte "Apple2-IO-RPi",$8d -.byte "(c)2020-2021 Terence J. Boldt",$8d -.byte $8d -.byte "Waiting for RPi...",$00 - SendByte: pha waitWrite: @@ -142,10 +135,22 @@ finishRead: pla end: rts - -.repeat 251-GetByte +.byte SendByte + .byte 0,0 ;0000 blocks = check status .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/MenuFirmware.lst b/Apple2/MenuFirmware.lst index efb390c..bbc2edb 100644 --- a/Apple2/MenuFirmware.lst +++ b/Apple2/MenuFirmware.lst @@ -59,7 +59,7 @@ Current file: MenuFirmware.asm 00C721 1 20 58 FC jsr $fc58 ;clear screen and show menu options 00C724 1 A0 00 ldy #$00 00C726 1 PrintString: -00C726 1 B9 6A C7 lda Text,y +00C726 1 B9 B8 C7 lda Text,y 00C729 1 F0 08 beq WaitForRPi 00C72B 1 09 80 ora #$80 00C72D 1 20 ED FD jsr $fded @@ -80,10 +80,10 @@ Current file: MenuFirmware.asm 00C746 1 20 58 FC jsr $fc58 ;clear screen 00C749 1 00C749 1 A9 08 lda #MenuCommand ;request menu text from RPi -00C74B 1 20 AA C7 jsr SendByte +00C74B 1 20 6A C7 jsr SendByte 00C74E 1 00C74E 1 DumpOutput: -00C74E 1 20 C8 C7 jsr GetByte +00C74E 1 20 88 C7 jsr GetByte 00C751 1 C9 00 cmp #$00 00C753 1 F0 06 beq GetChar 00C755 1 20 ED FD jsr $fded @@ -101,74 +101,78 @@ Current file: MenuFirmware.asm 00C765 1 09 0F ora #$0f ;set all flags high 00C767 1 4C 0E C7 jmp PageJump 00C76A 1 -00C76A 1 Text: -00C76A 1 -00C76A 1 41 70 70 6C .byte "Apple2-IO-RPi",$8d -00C76E 1 65 32 2D 49 -00C772 1 4F 2D 52 50 -00C776 1 69 8D -00C778 1 28 63 29 32 .byte "(c)2020-2021 Terence J. Boldt",$8d -00C77C 1 30 32 30 2D -00C780 1 32 30 32 31 -00C784 1 20 54 65 72 -00C788 1 65 6E 63 65 -00C78C 1 20 4A 2E 20 -00C790 1 42 6F 6C 64 -00C794 1 74 8D -00C796 1 8D .byte $8d -00C797 1 57 61 69 74 .byte "Waiting for RPi...",$00 -00C79B 1 69 6E 67 20 -00C79F 1 66 6F 72 20 -00C7A3 1 52 50 69 2E -00C7A7 1 2E 2E 00 -00C7AA 1 -00C7AA 1 SendByte: -00C7AA 1 48 pha -00C7AB 1 waitWrite: -00C7AB 1 AD FB C0 lda InputFlags -00C7AE 1 2A rol -00C7AF 1 2A rol -00C7B0 1 B0 F9 bcs waitWrite -00C7B2 1 68 pla -00C7B3 1 8D FD C0 sta OutputByte -00C7B6 1 A9 3E lda #$3e ; set bit 0 low to indicate write started -00C7B8 1 8D F7 C0 sta OutputFlags -00C7BB 1 finishWrite: -00C7BB 1 AD FB C0 lda InputFlags -00C7BE 1 2A rol -00C7BF 1 2A rol -00C7C0 1 90 F9 bcc finishWrite -00C7C2 1 A9 3F lda #$3f -00C7C4 1 8D F7 C0 sta OutputFlags -00C7C7 1 60 rts -00C7C8 1 -00C7C8 1 GetByte: -00C7C8 1 A9 3D lda #$3d ;set read flag low -00C7CA 1 8D F7 C0 sta OutputFlags -00C7CD 1 waitRead: -00C7CD 1 AD FB C0 lda InputFlags -00C7D0 1 2A rol -00C7D1 1 B0 FA bcs waitRead -00C7D3 1 AD FE C0 lda InputByte -00C7D6 1 48 pha -00C7D7 1 A9 3F lda #$3f ;set all flags high -00C7D9 1 8D F7 C0 sta OutputFlags -00C7DC 1 finishRead: -00C7DC 1 AD FB C0 lda InputFlags -00C7DF 1 2A rol -00C7E0 1 90 FA bcc finishRead -00C7E2 1 68 pla -00C7E3 1 end: -00C7E3 1 60 rts -00C7E4 1 -00C7E4 1 00 00 00 00 .repeat 251-GetByte +00C7FA 1 6A .byte SendByte +00C7FC 1 00C7FC 1 00 00 .byte 0,0 ;0000 blocks = check status 00C7FE 1 07 .byte 7 ;bit set(0=status 1=read 2=write) unset(3=format, 4/5=number of volumes, 6=interruptable, 7=removable) 00C7FF 1 14 .byte DriverEntry&$00FF ;low byte of entry diff --git a/Apple2/assemble.sh b/Apple2/assemble.sh index e9c74c4..98b9123 100755 --- a/Apple2/assemble.sh +++ b/Apple2/assemble.sh @@ -54,3 +54,7 @@ rm DriveFirmware.bin rm MenuFirmware.bin rm CommandFirmware.bin rm FileAccessFirmware.bin + +#../../ProDOS-Utilities/ProDOS-Utilities -driveimage ../RaspberryPi/Apple2-IO-RPi.hdv -command ls +#../../ProDOS-Utilities/ProDOS-Utilities -driveimage ../RaspberryPi/Apple2-IO-RPi.hdv -command put -infile AT28C64B.bin -path /APPLE2.IO.RPI/AT28C64B.BIN +#../../ProDOS-Utilities/ProDOS-Utilities -driveimage ../RaspberryPi/Apple2-IO-RPi.hdv -command ls