diff --git a/Apple2/Firmware.asm b/Apple2/Firmware.asm index cfbb583..c60f7a6 100644 --- a/Apple2/Firmware.asm +++ b/Apple2/Firmware.asm @@ -147,31 +147,37 @@ SendByte: pha waitWrite: lda InputFlags,x - asl ;Second highest bit goes low when ready - bmi waitWrite + ror + ror ;Second lowest bit goes low when ready + bcs waitWrite pla sta OutputByte,x + lda #$0e ; set bit 0 low to indicate write started + sta OutputFlags,x finishWrite: lda InputFlags,x - asl - bpl finishWrite - lda #$FF + ror + ror + bcc finishWrite + lda #$0f sta OutputFlags,x rts GetByte: - lda #$b0 ;set read flag low + lda #$0d ;set read flag low sta OutputFlags,x waitRead: lda InputFlags,x - bmi waitRead + ror + bcs waitRead lda InputByte pha - lda #$f0 ;set all flags high + lda #$0f ;set all flags high sta OutputFlags,x finishRead: lda InputFlags,x - bpl finishRead + ror + bcc finishRead pla end: rts diff --git a/Apple2/Firmware.bin b/Apple2/Firmware.bin index 1b61fbd..02b250d 100644 Binary files a/Apple2/Firmware.bin and b/Apple2/Firmware.bin differ diff --git a/Apple2/Firmware_27256_EPROM.bin b/Apple2/Firmware_27256_EPROM.bin new file mode 100644 index 0000000..9d21953 Binary files /dev/null and b/Apple2/Firmware_27256_EPROM.bin differ diff --git a/Apple2/driver_assemble.sh b/Apple2/driver_assemble.sh index d2c46b2..3831a93 100755 --- a/Apple2/driver_assemble.sh +++ b/Apple2/driver_assemble.sh @@ -10,3 +10,9 @@ ca65 Firmware.asm -D STARTSLOT=\$c500 -o Slot5.o --listing Firmware5.lst ca65 Firmware.asm -D STARTSLOT=\$c600 -o Slot6.o --listing Firmware6.lst ca65 Firmware.asm -D STARTSLOT=\$c700 -o Slot7.o --listing Firmware7.lst ld65 Slot0.o Slot1.o Slot2.o Slot3.o Slot4.o Slot5.o Slot6.o Slot7.o -o Firmware.bin -t none +cat \ +Firmware.bin Firmware.bin Firmware.bin Firmware.bin \ +Firmware.bin Firmware.bin Firmware.bin Firmware.bin \ +Firmware.bin Firmware.bin Firmware.bin Firmware.bin \ +Firmware.bin Firmware.bin Firmware.bin Firmware.bin \ +> Firmware_27256_EPROM.bin