03-04-2023, 08:15 PM
While again working on disassembling the CE-158 ROM (serial interface for PC-1500), I found a section of code that looks for the presence of the CE-150 printer/cassette interface. It does this by poking a small bit of code into RAM and calling it. This is done as the CE-158 can't directly 'see' the CE-150 address space.
It surprised me that it tests for three possible values: $00, $6D, and everything else. With nothing hooked to the expansion port you will get an $FF. With the CE-158 only you get an $F7 (this is just a nonsense value as nothing at this address in CE-158). With both the CE-158 and CE-150 (or just the CE-150) you get a $D7 which is the value at that address in the CE-150 ROM.
You can't directly PEEK this address form BASIC it requires twiddling the SPU/SPV lines and disabling the interrupts. Below is a bit of code in a BASIC which will poke a machine language program into RAM, run it, and print the result out (in decimal.)
If you happen to have a PC-1500 and CE-150 would you mind running this little program and posting the results? Having a CE-158 is not required. Thanks.
100:POKE &7A26,&FD,&BE,&B8,&A5,&A2,&97,&A8,&FD
110:POKE &7A2E,&81,&AE,&7A,&33,&9A,&AA
120:CALL &7A26
130:PRINT PEEK(&7A33)
140:END
It surprised me that it tests for three possible values: $00, $6D, and everything else. With nothing hooked to the expansion port you will get an $FF. With the CE-158 only you get an $F7 (this is just a nonsense value as nothing at this address in CE-158). With both the CE-158 and CE-150 (or just the CE-150) you get a $D7 which is the value at that address in the CE-150 ROM.
You can't directly PEEK this address form BASIC it requires twiddling the SPU/SPV lines and disabling the interrupts. Below is a bit of code in a BASIC which will poke a machine language program into RAM, run it, and print the result out (in decimal.)
If you happen to have a PC-1500 and CE-150 would you mind running this little program and posting the results? Having a CE-158 is not required. Thanks.
100:POKE &7A26,&FD,&BE,&B8,&A5,&A2,&97,&A8,&FD
110:POKE &7A2E,&81,&AE,&7A,&33,&9A,&AA
120:CALL &7A26
130:PRINT PEEK(&7A33)
140:END