[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
A personal pet patch for DOS 3.3...
- Subject: A personal pet patch for DOS 3.3...
- From: Steve Nickolas <usotsuki@buric.co>
- Date: Fri, 30 Nov 2012 05:44:54 -0500
- Bytes: 2408
- Cancel-lock: sha1:cIHvsCH19eboAioqFMQwD3O5PqY=
- Injection-info: mx04.eternal-september.org; posting-host="b1331f5cb4326106a7720f5a86b16b36"; logging-data="22294"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18U+3rC9oqkWTDoM9IH25rqqfxbhERm1zA="
- Newsgroups: comp.sys.apple2
- Organization: A noiseless patient Spider
- User-agent: Alpine 2.02 (DEB 1266 2009-07-14)
This has a very narrow scope of usefulness: it's only of use for the
original, pre-'C02 Apple //e.
That //e had a bug in the firmware: if you reset the 80-column firmware
without resetting the hardware (the equivalent of pr#0:in#0) it would get
desynched, instead of shutting it off itself as the later models do.
Of the 3 versions of DOS 3.3 I have, only the very last of these has a fix
for this. That version does not take this patch and this patch should not
be used on that version.
The change is 14 bytes.
Before: BFC8: 20 93 FE AD 81 C0 AD 81 C0 A9 00 8D 00 E0
After: BFC8: AD B3 FB C9 06 D0 03 8D 0C C0 20 58 FC EA
Before:
BFC8- 20 93 FE JSR $FE93
BFCB- AD 81 C0 LDA $C081
BFCE- AD 81 C0 LDA $C081
BFD1- A9 00 LDA #$00
BFD3- 8D 00 E0 STA $E000
BFD6- 4C 44 B7 JMP $B744
After:
BFC8- AD B3 FB LDA $FBB3
BFCB- C9 06 CMP #$06
BFCD- D0 03 BNE $FBD2
BFCF- 8D 0C C0 STA $C00C
BFD2- 20 58 FC JSR $FC58
BFD5- EA NOP
BFD6- 4C 44 B7 JMP $B744
The JSR $FE93 is already done at B642 do is redundant. The remaining code
steps on the language card. (It prolly would have been better to keep a
lda $c081 or bit $c081 instead of the jsr $fc58. Oh well...)
This is a reduced variant of the code in STOS 1.9.3 which does effectively
the same thing - a "lda $fbc0, cmp #$ea, bne ..." before the "sta $c00c"
was removed for space.
-uso.