[comp.sys.apple] Apple ][s No.Slot.Clock ProDOS patch

kamath@reed.UUCP (Sean Kamath) (05/15/88)

Well, I got enough requests, so I'm posting.  Besides, it'll be good to get
somethng out there besides GIF and GS pictures. . . :-)

This is the NEW prodos clock routine for the SMT no-slot clock.  I don't
know whether they are shipping a new version or not, But I do know that the
latest I got from them was broken.  Basically, they swapped in the internal
CX rom to read the clock, but don't switch it back out if it need to be.
Unfortunately, since AppleWorks updates the time *AFTER* it turns on my
printer card, when it goes to print the first char after reading the time,
it dies a horrible lingering death (actaully, it's quite sudden an
obnoxious.)

So, I made it do the right thing.  With the help of AAL's BCD conversion
routine, I was actaully able to add the 11 bytes for the
lda-pha-pla-rol-bmi-sta and still come up 4 bytes shorter then the original
125 bytes. . . Weee!  And my friend laugh at me for having so much fun!

In any case, the actaul patching of ProDOS won't be quite so fun.  I really
don't know ProDOS well enough to write a patching routine. . .  I *DO* know
that if you are using ProDOS 1.4, that this patch will be at $5100 if you
bload prodos,tsys,a$2000.  Then you can just bsave prodos after unlocking it.

If that ain't good enough, here's how I actually patched it.  At BF07-BF08
is the address of the clock routine.  If you flip the softswitches ($C089),
store the monitor in the RAM (f800<f800.ffffm) and then switch to reading
ram ($C08B $C08B -- have to read them twice), you will be able to see the
routine.  I found P1.4's at $D741.  I then copied it to $6741 and rebooted
(you cannot get back to ProDOS, you just wrote over it at $F800.). Then
BLOAD ProDOS at $2000, and look for the stuff you saved at $6741.  Bload
this new clock routine at that address.  There is ONE LDA absolute you must
worry about!  It is the recognition sequence pointer.  Make sure it points
just past the rts *AT THE FINAL LANGUAGE CARD ADDRESS*.

OK< SO this is getting complicated.  I will probably send out a patcher to
all the version later.  But at least you got the source now. . .  

This is EXECUTIONER'ed then BNY'ed.  I know, I forgot to specify the .bny
extension, but it's the first time I every bny'ed a file.  Forgive me.

Sean Kamath
----snip here----
CALL-151
E00:38 A5 FF D0 32 D8 20 8E FD AD 30 BF 8D 6A 0E 20 00 BF C7 6D 0E 0D 80 02
E18:D0 1D 20 00 BF C5 69 0E B0 15 AD 81 02 29 0F AA E8 8E 80 02 A9 2F 8D 81
E30:02 20 00 BF C6 6D 0E A2 08 B0 0E 20 00 BF C3 70 0E B0 06 A2 26 20 53 0E
E48:AA 20 53 0E 4C D0 03 20 ED FD E8 BD 59 0E D0 F7 60 A0 F3 E1 F6 E5 E4 8D
E60:00 C5 F2 F2 EF F2 87 8D 00 02 00 81 02 01 80 02 07 7E 0E E3 06 00 00 00
E78:00 00 00 00 00 00 03 CE C5 D7 00
F00:D8 A0 00 84 FF 88 84 E0 A9 0F 85 E1 20 67 FD A0 00 A2 FF 20 2F 0F E6 E0
F18:D0 02 E6 E1 0A 0A 0A 0A 91 E0 20 2F 0F 11 E0 91 E0 45 FF 85 FF 90 E4 E8
F30:BD 00 02 09 80 C9 A0 F0 F6 49 B0 C9 0A 90 17 69 88 09 20 C9 FA B0 0C 68
F48:68 E0 04 B0 BF 98 91 E0 4C 69 FF 18 29 0F 60
F00G
0A474CE3064267010100ACB01416ACB014160200820000034E45570000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000005A0000000000000000
0000000000000000000000000000000000000000000800000000000000000001
0878AD15C0488D07C0A007AD04C8B9B3D7386A48A9002AAABD00C8684AD0F488
10ECA207A007AD04C86A7E00028810F6BD000229F04A4A853A4A653AFD000249
FF9D0002CA10DDAD04028D93BFAD05028D92BFAD01020A0A0A0A0A0D02028D90
BFAD00022A8D91BF682AB0038D06C028605CA33AC55CA33AC55857565B000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0A474CE3040000020700000000000000000002006E0A00054E45572E53000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000005A0000000000000000
0000000000000000000000000000000000000000000000000000000000000000
8DC9CEA0BDA0A4B0B2B0B08DC4C1D4C5A0BDA0A4C2C6B9B08DC4C1D4C5B2A0BD
A0A4C2C6B9B18DD4C9CDC5A0BDA0A4C2C6B9B28DD4C9CDC5B2A0BDA0A4C2C6B9
B38D8DC5D8D4C3D8D2CFCDA0BDA0A4C3B0B0B68DC9CED4C3D8D2CFCDA0BDA0A4
C3B0B0B78DD2C4C3D8D3D7A0BDA0A4C3B0B1B58DC1C4B0A0BDA0A4C3B8B0B08D
C1C4B2A0BDA0A4C3B8B0B48D8DA0CFD2C7A0A4C4B7B4B28D8DAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8DAA20D0E1F4E3
E8E5E420E3ECEFE3EB20F2EFF5F4E9EEE520E6EFF220F0F2EFE4EFF3AE8DAA20
C3EFF2F2E5E3F4F320C3D820F2EFEDF3F0E1E3E520E2F5E7AE8DAA20D0F2E5F6
E9EFF5F3ECF9AC20E9E620C3D820F2EFED20A8E5F8F4E5F2EEE1ECA98DAA20F7
E1F320E5EEE1E2ECE5E4AC20F4E8E5EE20E9F420F7E1F320F3F7E1F0F0E5E48D
AA20EFF5F420EDE1E7E9E3E1ECECF9AE2020D4E8E9F320F2E5F3F4EFF2E5F320
F4E8E58DAA20F3F0E1E3E520F4EF20F4E8E520F7E1F920E9F420F7E1F320E6EF
F5EEE4AE8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA8D8DA0D0C8D0A0BB20D3E1F6E520F4E8E520F3F4E1F4E520EFE620
F4E8E520F7EFF2ECE48DA0D3C5C9A0BB20E1EEE420EEEF20E9EEF4E5F2F2F5F0
F4F3AE8DA0CCC4C1A0D2C4C3D8D3D7A0BB20F2E5E1E420F4E8E520C3D820F3F7
E9F4E3E88DA0D0C8C1A0BB20F3E1F6E520E9F48DA0D3D4C1A0C9CED4C3D8D2CF
CDA0BB20F3E5F420F4EF20F2E5E1E420E9EEF4E5F2EEE1EC20C3D820D2CFCD8D
8DAA20D7E520E8E1F6E520F4EF20E9EEE9F420F4E8E520E3ECEFE3EB20F7E9F4
E820F4E8E520F3F0E5E3E9E1EC20B820E2F9F4E58DAA20A8B6B420E2E9F4A920
F0E1F4F4E5F2EEAE8D8DA0CCC4D9A0A3A4B0B7A0BB20F2E5E1E420B720E2F9F4
E520EFE620E4E1F4E18DA0CCC4C1A0C1C4B2A0BB20F0F2E5F0E1F2E520E3ECEF
E3EB20E6EFF220E4E1F4E18DC9CEC9D4A0CCC4C1A0C4C1D4C1ACD9A0BB20E7E5
F420F4E8E520E2F9F4E58DA0D3C5C3A0BB20F3EF20F7E520EBEEEFF720F7E8E5
F2E520F7E520F3F4E1F2F4E5E4AE8DA0D2CFD2A0BB20F3E8EFF6E520E9F420E9
EEF4EF20E3E1F2F2F920A8F4E8E520E4E1F4E1A98DBAC9CEC9D4C2C9D4A0D0C8
C1A0BB20F3E1F6E520E9F420A8E6EFF220EEE5F8F420ECEFEFF0A98DA0CCC4C1
A0A3A4B0B0A0BB20F0F2E5F0E1F2E520F4EF20E4EF20C1C4B08DA0D2CFCCA0BB
20E9E620E3E1F2F2F920F3E5F4AC20F4EFE7E7ECE520C1C4B18DA0D4C1D8A0BB
20E6EFF220E9EEE4E5F8E5E48DA0CCC4C1A0C1C4B0ACD8A0BB20F7E9E7E7ECE5
20ECE9EEE58DA0D0CCC1A0BB20F2E5E3E1ECEC20F3E1F6E5E420E4E1F4E120E2
F9F4E58DA0CCD3D2A0BB20F3E8E9E6F420EEE5F8F420E4E1F4E120E9EEF4EF20
E3E1F2F2F98DA0C2CEC5A0BAC9CEC9D4C2C9D4A0BB20EDEFF2E520E2E9F4F320
F4EF20E4EFA18DA0C4C5D9A0BB20E1F2E520F4E8E5F2E520EDEFF2E520E2F9F4
E5F3BF8DA0C2D0CCA0C9CEC9D4A0BB20F9E5F0AC20E7EF20E4EF20A7E5EDAE8D
8DAA20D4E8E520E3ECEFE3EB20E9F320EEEFF720F2E5E1E4F920F4EF20E4EF20
E9F4A7F320F4E8E9EEE7AE2020D3E9EEE3E520F7E58DAA20E8EFECE420C1C4B2
20E8E9E7E8AC20F7E520E5E6E6E5E3F420E120F2E5E1E420E6F2EFED20F4E8E5
20E3ECEFE3EBAE8D8DA0CCC4D8A0A3A4B0B7A0BB20F0F2E5F0E1F2E520E6EFF2
20B820E2F9F4E5F3AE8DD2C5C1C4A0CCC4D9A0A3A4B0B7A0BB20B820E2E9F4F3
AE8DBAC2C9D4D2C5C1C4A0CCC4C1A0C1C4B2A0BB20E7E5F420F4E8E520E2E9F4
AE8DA0D2CFD2A0BB20F3E1F6E520E9F48DA0D2CFD2A0C9CEACD8A0BB20E9EE20
F4E8E520F2E9E7E8F420F0ECE1E3E58DA0C4C5D9A0BB20EDEFF2E520E2E9F4F3
BF8DA0C2D0CCA0BAC2C9D4D2C5C1C4A0BB20F9E5F3AC20E7EF20E7E5F420F4E8
E5EDAE8DA0CCC4C1A0C9CEACD8A0BB20E7E5F420E3EFEDF0ECE5F4E5E420E2F9
F4E58DAA20F4E8E520E6EFECECEFF7E9EEE720E9F320E6F2EFED20C1C1CCAC20
CEEFF6AE20B8B7AC20D6B8ACC9B18DAA20C2E1F3E9E3E1ECECF9AC20E9F420F7
EFF2EBF320EFEE20F4E8E520F0F2E9E3E9F0E1EC20F4E8E1F48DAA20B1B0E1AB
E220BD20A8B1B6E1ABE2A920AD20B6E18DBB20F3F4E1F2F420F7E9F4E820B1B6
AAE1ABE28DA0C1CEC4A0A3A4C6B0A0BB20E9F3EFECE1F4E520B1B6AAE18DA0CC
D3D2A0BB20EDE1EBE520E9F420B8AAE18DA0CCD3D2A0BB20EDE1EBE520E9F420
B4AAE18DA0D3D4C1A0A4B3C1A0BB20F3E1F6E520B4AAE18DA0CCD3D2A0BB20ED
E1EBE520E9F420B2AAE18DA0C1C4C3A0A4B3C1A0BB20B4E1ABB2E120BD20B6E1
8DA0D3C2C3A0C9CEACD8A0BB20B6E120AD20A8B1B6E1ABE2A920AD20B120A8E3
E1F2F2F920E3ECE5E1F2A98DA0C5CFD2A0A3A4C6C6A0BB20A8B1B6E1ABE2A920
AD20B6E18D8DAA20C5EEE420EFE620C1C1CC20F3E5E7E5EEF420A8F4E8E9F320
E7E1F6E520EDE520F4E8E520EEE5E5E4E5E420E2F9F4E5F320F4EF8DAA20E1E6
E6E5E3F420F4E8E9F320F0E1F4E3E8A18D8DA0D3D4C1A0C9CEACD8A0BB20F3E1
F6E520E2E9EEE1F2F920E4E1F4E18DA0C4C5D8A0BB20E4EF20F7E520EEE5E5E4
20E4EF20EDEFF2E520E2F9F4E5F3BF8DA0C2D0CCA0D2C5C1C4A0BB20F9E5F3AE
8DA0CCC4C1A0C9CEABB4A0BB20E7E5F420E8EFF5F28DA0D3D4C1A0D4C9CDC5B2
A0BB20F3E1F6E520E9F4AE8DA0CCC4C1A0C9CEABB5A0BB20E7E5F420EDE9EEF5
F4E5F38DA0D3D4C1A0D4C9CDC5A0BB20F3E1F6E520E9F4AE8DA0CCC4C1A0C9CE
ABB1A0BB20E7E5F420EDEFEEF4E88DA0C1D3CCA0BB20F3E8E9E6F420E9F48DA0
C1D3CCA0BB20F4EF20E7E5F420E2EFF4F4EFED20F4E8F2E5E520E2E9F4F38DA0
C1D3CCA0BB20A8EDEDEDE4E4E4E4E4A98DA0C1D3CC8DA0C1D3CCA0BB20ECE5E1
F6E5F320ECE1F3F420EDEFEEF4E820E2E9F420E9EE20E3E1F2F2F98DA0CFD2C1
A0C9CEABB2A0BB20F0F5F420E4E1F4E520E9EE20F4E8E5F2E520F4EFEFAE8DA0
D3D4C1A0C4C1D4C5A0BB20F3E1F6E520E9F4AE8DA0CCC4C1A0C9CEA0BB20E7E5
F420F9E5E1F28DA0D2CFCCA0BB20F2EFEC20E9EE20ECE1F3F420EDEFEEF4E820
E2E9F48DA0D3D4C1A0C4C1D4C5B2A0BB20F3E1F6E520F9F9F9F9F9F9F9ED8D8D
AA20F7E5A7F2E520E4EFEEE5A18D8DA0D0CCC1A0BB20E7E5F420F4E8E520F3F4
E1F4E520EFE620F4E8E520C3D820D2CFCD8DA0D2CFCCA0BB20E8E9E7E820E2E9
F420F3E5F420E9E620E9EEF4E5F2EEE1EC20D2CFCD8DA0C2C3D3A0D3CBD0C3D8
D2CFCDA0BB20F3EBE9F020F3F7E9F4E3E8E9EEE720E9EE20E5F8F4AE20C3D820
D2CFCD8DA0D3D4C1A0C5D8D4C3D8D2CFCDA0BB20D3F7E1F020E9EE20F4E8E520
F2E9E7E8F420D2CFCD8DD3CBD0C3D8D2CFCDA0D0CCD0A0BB20F2E5F3F4EFF2E5
20F4E8E520F3F4E1F4E520EFE620F4E8E520F7EFF2ECE48DA0D2D4D3A0BB20F2
E5F4F5F2EE20F4EF20E3E1ECECE5F2A18D8DC4C1D4C1A0C8C5D8A0B5C3A0BB20
F4E8E9F320E9F320F4E8E520E7F2E5E1F420E1EEE420E6E1EEF4E1F3F4E9E38D
A0C8C5D8A0C1B3A0BB20B6B420E2E9F420F0E1F4F4E5F2EE20F4E8E1F420E9F3
20F2E5E3EFE7AD8DA0C8C5D8A0B3C1A0BB20EEE9FAE5E420E2F920F4E8E520E3
ECEFE3EBAE8DA0C8C5D8A0C3B58DA0C8C5D8A0B5C38DA0C8C5D8A0C1B38DA0C8
C5D8A0B3C18DA0C8C5D8A0C3B58D000000000000000000000000000000000000FE

BSAVE NEW,A$1000,L$0C80
E00G
-- 
UUCP:  {decvax allegra ucbcad ucbvax hplabs ihnp4}!tektronix!reed!kamath
CSNET: reed!kamath@Tektronix.CSNET  ||  BITNET: reed!kamath@PSUVAX1.BITNET
ARPA:  reed!kamath@PSUVAX1.CS.PSU.EDU
US Snail: 3934 SE Boise, Portland, OR  97202-3126 (I hate 4 line .sigs!)

kamath@reed.UUCP (Sean Kamath) (05/18/88)

Sorry folks, this went out to thre wrong place. . .  No flames, I
just got confused.  It won't happen again.

Sean.
-- 
UUCP:  {decvax allegra ucbcad ucbvax hplabs ihnp4}!tektronix!reed!kamath
CSNET: reed!kamath@Tektronix.CSNET  ||  BITNET: reed!kamath@PSUVAX1.BITNET
ARPA:  reed!kamath@PSUVAX1.CS.PSU.EDU
US Snail: 3934 SE Boise, Portland, OR  97202-3126 (I hate 4 line .sigs!)