From 590575de77e294231d0808391705cbaf49fdea76 Mon Sep 17 00:00:00 2001 From: Terence Boldt Date: Sun, 28 Mar 2021 11:34:52 -0400 Subject: [PATCH] Update firmware with command changes --- Apple2/CommandFirmware.lst | 135 ++++++++++++++-------------- Apple2/Firmware_27256_EPROM.bin | Bin 32768 -> 32768 bytes Apple2/Firmware_AT28C64B_EEPROM.bin | Bin 8192 -> 8192 bytes 3 files changed, 67 insertions(+), 68 deletions(-) diff --git a/Apple2/CommandFirmware.lst b/Apple2/CommandFirmware.lst index 410237e..d3fa069 100644 --- a/Apple2/CommandFirmware.lst +++ b/Apple2/CommandFirmware.lst @@ -55,7 +55,7 @@ Current file: CommandFirmware.asm 00C51C 1 A9 A4 lda #$a4 00C51E 1 85 33 sta $33 00C520 1 GetCommand: -00C520 1 20 6A FD jsr $fd6a +00C520 1 20 67 FD jsr $fd67 00C523 1 AD 00 02 lda $0200 00C526 1 C9 8D cmp #$8d ;stop when return found 00C528 1 F0 06 beq ExitApp @@ -70,73 +70,72 @@ Current file: CommandFirmware.asm 00C537 1 60 rts 00C538 1 00C538 1 DumpOutput: -00C538 1 A2 50 ldx #$50 -00C53A 1 A9 05 lda #$05 ;send command 5 = exec -00C53C 1 20 63 C5 jsr SendByte -00C53F 1 A0 00 ldy #$00 -00C541 1 getInput: -00C541 1 B9 00 02 lda $0200,y -00C544 1 C9 8D cmp #$8d -00C546 1 F0 08 beq sendNullTerminator -00C548 1 29 7F and #$7f -00C54A 1 20 63 C5 jsr SendByte -00C54D 1 C8 iny -00C54E 1 D0 F1 bne getInput -00C550 1 sendNullTerminator: -00C550 1 A9 00 lda #$00 -00C552 1 20 63 C5 jsr SendByte -00C555 1 getOutput: -00C555 1 20 81 C5 jsr GetByte -00C558 1 C9 00 cmp #$00 -00C55A 1 F0 06 beq endOutput -00C55C 1 20 ED FD jsr $fded -00C55F 1 18 clc -00C560 1 90 F3 bcc getOutput -00C562 1 endOutput: -00C562 1 60 rts -00C563 1 -00C563 1 SendByte: -00C563 1 48 pha -00C564 1 waitWrite: -00C564 1 AD DB C0 lda InputFlags -00C567 1 2A rol -00C568 1 2A rol -00C569 1 B0 F9 bcs waitWrite -00C56B 1 68 pla -00C56C 1 8D DD C0 sta OutputByte -00C56F 1 A9 0E lda #$0e ; set bit 0 low to indicate write started -00C571 1 8D D7 C0 sta OutputFlags -00C574 1 finishWrite: -00C574 1 AD DB C0 lda InputFlags -00C577 1 2A rol -00C578 1 2A rol -00C579 1 90 F9 bcc finishWrite -00C57B 1 A9 0F lda #$0f -00C57D 1 8D D7 C0 sta OutputFlags -00C580 1 60 rts -00C581 1 -00C581 1 GetByte: -00C581 1 A9 0D lda #$0d ;set read flag low -00C583 1 8D D7 C0 sta OutputFlags -00C586 1 waitRead: -00C586 1 AD DB C0 lda InputFlags -00C589 1 2A rol -00C58A 1 B0 FA bcs waitRead -00C58C 1 AD DE C0 lda InputByte -00C58F 1 48 pha -00C590 1 A9 0F lda #$0f ;set all flags high -00C592 1 8D D7 C0 sta OutputFlags -00C595 1 finishRead: -00C595 1 AD DB C0 lda InputFlags -00C598 1 2A rol -00C599 1 90 FA bcc finishRead -00C59B 1 68 pla -00C59C 1 end: -00C59C 1 60 rts -00C59D 1 -00C59D 1 00 00 00 00 .repeat 251-I<>(x2}wX)$hdIo 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 literal 32768 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 diff --git a/Apple2/Firmware_AT28C64B_EEPROM.bin b/Apple2/Firmware_AT28C64B_EEPROM.bin index 9c7ac4f9b1cbee52a4bffd7e49852d4e9b574e8a..034289fa75ded8ba8de98c608d6ffb2ffd40b609 100644 GIT binary patch delta 1127 zcmZ9`J4*vW6o%n7ni%ie*{CB{rq#mIGL8QsR_0%fg<>I*NQxAq*o8$#0v16;nY|lC zv9l0uEhG}L2#F*(bLJp>cAA~{+bN#i&E3uVa+dG(g_UZS+8MSX=gaNl{+ey=trzSx z+m`3nHT=u2a#i=w-?pW`jLW8_-naVm<)1=c9Lij--Yu3&(q1ebNa%9cUQ+jhy?{%- zCyrzuM*X1ND;6w$j$3n;dUmTa$gadGPJ-ePih~q~afeV&kaDUiRVj1>r3w_YD9Ra7 zO#V|Uts%6G5sRC!xWwY3#bw+jmJ759ZK+A28!R=jm_=DG!D2FINugz&SiFSABNh)W z9^)Rd+@R%FTN+a621^4hW>J|hM7cG5l=}4g) XEFG|zMOg-5F&VRrg5_#3lbZbllbt0& delta 631 zcmZY1yJ`YK7zN;xQwETmWbyB3%+9tk%kS6#NI-q61urDBXTPz5v((T-1=ZgqR zY9)*O;QUN=I2_Km7%qmpr+75GWGvc$o+|K~_tvM6)pN?0FVpQ?T88(0!+vgSJeU{l z_i#>Gk-+mkD;~#7Z~ga`O_E(aPOfp^$3%b$f(gU~aB;_y>;bhJ(PW@WqDj;waOrCi zYIUNiKvP6hs43ve*B()85KRY~CYnY~1J}M*Laj+O6KIBL1~miR_*xmY7SU{=S)y6g eEO6^<71Y{9bAjfF=1_CMov&4I+V`~+b^if2bQyX8