base:all_american_bbs_-_finding_the_serial_number
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | base:all_american_bbs_-_finding_the_serial_number [2015-04-17 04:30] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | The following is a copy (with minor edits) of [[http:// | ||
+ | The All American BBS archives can be found on the zimmers.net archives and its mirrors [[http:// | ||
+ | ---- | ||
+ | "I have a bit of a mystery to solve, and I'm hoping that someone here can help me. | ||
+ | |||
+ | In the late 80's, I purchased a copy of All American BBS from the program' | ||
+ | |||
+ | In recent months, I was able to track Nick down, and I got him to send me copies of the latest versions of AA BBS for both the 64 and 128. The 128 version is what I'm using on my BBS now, which doesn' | ||
+ | |||
+ | I know what my serial number is for my original copy of AA BBS v9.6. The serial number is 2455. He says that all serial numbers are just four digits. But the copy Nick sent me of the last version he released for the 64, v11.6b, I still haven' | ||
+ | |||
+ | I've posted a d64 of my original copy of AA BBS v9.6 here: | ||
+ | http:// | ||
+ | |||
+ | And there' | ||
+ | http:// | ||
+ | |||
+ | On both of these, you just type LOAD" | ||
+ | |||
+ | -Andrew | ||
+ | |||
+ | P.S. I have got permission from Nick Smith to release these to the public domain, so there' | ||
+ | ---- | ||
+ | |||
+ | "Load it, wait for " | ||
+ | |||
+ | < | ||
+ | r | ||
+ | ADDR AC XR YR SP 00 01 NV-BDIZC LIN CYC | ||
+ | .;e5d4 00 af ff ea 2f 36 00100011 000 002 | ||
+ | </ | ||
+ | |||
+ | Stack pointer is $ea, so used stack starts feom $01eb. Check it for JSR return address. | ||
+ | |||
+ | < | ||
+ | m 01eb | ||
+ | > | ||
+ | </ | ||
+ | |||
+ | I guess keyboard input routine was called from $cb8d-2. | ||
+ | |||
+ | < | ||
+ | d cb8b | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | </ | ||
+ | |||
+ | Looks like it reads serial number, stores it and jumps to $cb20. | ||
+ | |||
+ | < | ||
+ | d cb20 | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | </ | ||
+ | |||
+ | Decrypts $axxx area and returns. Set breakpoint to rts and exit, just to come back a bit later. | ||
+ | |||
+ | < | ||
+ | break cb48 | ||
+ | x | ||
+ | </ | ||
+ | |||
+ | Now enter any number and press return. We're back in monitor. Step forward twice to see where we end up | ||
+ | |||
+ | < | ||
+ | z | ||
+ | z | ||
+ | .C: | ||
+ | </ | ||
+ | |||
+ | What's here? | ||
+ | |||
+ | < | ||
+ | d a3c6 | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | </ | ||
+ | |||
+ | Looks like it checks serial number at $abed, so check it out. | ||
+ | |||
+ | < | ||
+ | d abed | ||
+ | .C: | ||
+ | .C: | ||
+ | .C: | ||
+ | </ | ||
+ | |||
+ | Y ranges from $ff to $fc, so let's see what vlues we compare agains. | ||
+ | |||
+ | < | ||
+ | m bf60 bf63 | ||
+ | > | ||
+ | </ | ||
+ | |||
+ | This was EORed with $ff, so let's invert some bits and we get | ||
+ | 32 31 30 30 | ||
+ | This looks like " | ||
+ | |||
+ | Nothing you couldn' | ||
+ | ---- | ||
+ | |||
+ | " | ||
+ | |||
+ | It's inside "< |
base/all_american_bbs_-_finding_the_serial_number.txt · Last modified: 2015-04-17 04:30 by 127.0.0.1