6502 Second Processor Client ROM v1.11/v1.12 ============================================ J.G.Harston - 19-Sep-2014, 12-Nov-2016 mdfs.net/Software/Tube/6502 The v1.10 6502 Second Processor Client ROM has a few bugs in it. Most are minor, but some cause problems in edge cases. The v1.11 Client ROM has these bugs fixed. It can be created with the Client65/src program with UPDATE1% set to TRUE. The v1.12 Client ROM optimises the OSCLI hander so it can be easily extended to support additional commands. Code execution -------------- When code is entered it is entered as the current program with A=1 regardless of whether the code has a header or not, and the Carry flag state is indeterminate. With this update, raw code is entered with A=0 and is not be made the current program to be re-entered on Soft Break. Code is entered with the Carry flag set to CS if entered from OSCLI or OSBYTE, and set to CC if entered at RESET. Also, if code entered at RESET returns, it returns to the Supervisor command prompt. Truncated OSWORD calls ---------------------- OSWORD 5 only sends a 2-byte control block containing the address in the I/O processor to read. The updated Client sends a full 4-byte address so that if the host supports it, shadow and sideways memory can be read, for instance &FFFExxxx for shadow screen memory. OSWORD 14 only sends 1 bytes so cannot call the 'Convert BCD' call. This update changes this so OSWORD 14 sends 16 bytes. Additionally, OSWORD 14 reads 25 bytes so the trailing is read. OSWORD 19 sends and receives 8 bytes. Additional MOS entry points --------------------------- The additional Tube MOS entry points from other Tube Clients, such as the Z80 and 6809 Clients, have been migrated into the 6502 Client to provide access to some of the internal routines. These are: PRSTRING &FF9B Print &00-terminated text at YX, returns A=0, Y corrupted SCANHEX &FFA1 Scan hex string at (&F8),Y returns value in &F0/1 PRHEX &FFAA Print A in hex, A corrupted PR2HEX &FFAD Print YX in hex, A corrupted PRTEXT &FFB3 Print &00-terminated inline text, returns A=0, Y corrupted OSQUIT &FFB9 Quit current program OSINIT &FFBF Initialise MOS error handler, A corrupted The additional MOS entry points can be tested for by examining the byte at PRTEXT. If it is a &4C byte (a 6502 JMP) then the additional entries are present. Miscellaneous ------------- *GO checks for a space following the command so that, for example, *GOAD is not matched as the *GO command. PRTEXT uses OSASCI to print.