In the last issue, we reported a bug in the LOAD command that would put the stack pointer at the address where the bad load occured. I made a copy of the 1500 ROM (0000h to 1FFFh) at 5000h to 6FFFh. The listings (done with Hot Z) shown here are of the original ROM and the fix for an eprom.
Original TS1500 ROM (with bug)
035D 10F1 DJNZ 0350
035F F1 POP AF
0360 BA CP D
0361 D2E303 JP NC 03E3
03C3 CDE702 NEW CALL 02E7
03C6 2A0440 LD HL,(RAMTP)
03C9 2B DEC HL
03CA 3E3F LD A,3F
03CC 44 LD B,H
03CD 4D LD C,L
03CE 3600 LD (HL),00
03D0 2B DEC HL
03D1 BC CP H
03D2 20FA JR NZ 03CE
03D4 60 LD H,B
03D5 69 LD L,C
03D6 23 INC HL
03D7 220440 LD (RAMTP),HL
03DA 210020 LD HL,2000
03DD 35 DEC (HL)
03DE 2002 JR NZ 03E2
03E0 E9 JP (HL)
03E1 00 NOP
03E2 2A0440 LD HL,(RAMTP)
03E5 2B DEC HL
03E6 363E LD (HL),3E
Corrected code for EPROM
535D 10F1 DJNZ 5350
535F F1 POP AF
5360 BA CP D
5361 1863 JR BADT
53C3 CDE702 CALL FAST
53C6 2A0440 BADT LD HL,(RAMTP)
53C9 54 LD D,H
53CA 5D LD E,L
53CB 3E3F LD A,3F
53CD 2B DEC HL
53CE 3600 CLER LD (HL),00
53D0 2B DEC HL
53D1 BC CP H
53D2 20FA JR NZ CLER
53D4 EB EX DE,HL
53D5 220440 LD (RAMTP),HL
53D8 210020 LD HL,2000
53DB 7E LD A,(HL)
53DC FE01 CP 01
53DE 2005 JR NZ STAK
53E0 E9 JP (HL)
53E1 00 NOP
53E2 00 NOP
53E3 00 NOP
53E4 00 NOP
53E5 2B STAK DEC HL
Because of the tight space in the 1500, it is necessary to solder on the eprom and run some jumper wires around on the board. Put some conductive foam (Radio Shack) under your eprom before you solder on it.
1. After burning your eprom, bend out pins 20 and 23.
2. Solder wire wrap wire on and connect pins 1, 28, 27 and 26 together.
3. Solder jumper wires on pins 2, 20 and 23.
The 1500 has a 24 pin socket in it, and you are installing a 28 pin chip. Keep this in mind as you read the next few lines.
4. Jumper eprom pin 2 to pin 21 of the socket.
5. Jumper eprom pin 20 to pin 20 of the socket.
6. Jumper eprom pin 23 to pin 18 of the socket.
7. Install the eprom with pins 1, 2, 28 and 27 hanging over the top of the socket.
These changes can be installed in a 1000. The Command cartridge for the 1500 would then come up running on a 1000 at power up. With Hunter board applications (or other 8 to 16K boards), if you have the instruction LD BCnnnn, where nnnn is any hex number, as the first instruction (at 2000h), then your program will start all by itself. You must take care of the initialization though.
On the 1000 with a 28 pin ROM socket the installation is much easier. Bend out pins 20 and 23. Jumper pin 20 to pin 22 of the socket. Jumper pin 23 to pin 20 of the socket. To avoid soldering on the eprom, use two 28 pin low profile sockets. Jumper the top socket pins (20 and 23) down to the bottom socket pins (22 and 20). Install the eprom into the top socket and put the whole thing into your computer. We will have more on this later.
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.