A list of typesetting and other errors in The Complete Spectrum ROM Disassembly =============================================================================== This list was started at the same time as as the first collaborative attempt to produce an on-line version of the above book. Under the guidance of Chris Cowley, a second attempt is now almost complete and you will be able to find pointers to the finished work by looking in the archive of newsgroup comp.sys.sinclair Page 4. ------- last letter on third row of table (a) is printed as "K" but should fairly obviously be printed as "X". Page 39. ------------- 0BD3 PO-ALL-6 should be labelled 0BD3 PR-ALL-6 Page 41. -------- CALL 0601,CHAN-OPEN should be CALL 1601,CHAN-OPEN Page 49. -------- LD (PR-CC),L should be LD (PR-CC_lo),L Page 69. -------- 1961 LINE-NO-A should be 1691 LINE-NO-A Page 73. -------- SET 0,(FLAGS) should be SET 0,(TV-FLAG) RES 0,(FLAGS) should be RES 0,(TV-FLAG) Page 75. -------- LD E,+01 1835 LIST-ALL CALL 1855,OUT-LINE should be 1833 LIST-ALL LD E,+01 1835 LIST-ALL-1 CALL 1855,OUT-LINE and the 3 references to 1835 be updated accordingly. Page 79. -------- 196D OUT-CH-3 should be 196C OUT-CH-3 Page 82. -------- JP C,1C8A,REPORT-C should be 1A15 E-L-1 JP C,1C8A,REPORT-C Page 85. -------- 1AC8 P-READ should be 1AC9 P-READ Page 87. -------- JP C,18CA,REPORT-C should be JP C,1C8A,REPORT-C Page 102. --------- 1EDC CLEAR-3 should be 1EDC CLEAR-2 Page 109. --------- 2096 INPUT-1 LD (DF-SZ),+01 should be 2096 INPUT-1 LD (TV-FLAG),+01 Page 123. --------- Calculator stack is wrong at the first subtract. Soon corrected. Page 124. --------- DEFB +C3,st-mem-3 (comment refers to mem-4) Page 128. --------- 25AF S-SCRN-LP should be 254F S-SCRN-LP Page 172. --------- AND A should be 2F46 PF-NOT-E AND A Page 202. --------- JP 2D2B should be 34E4 USR-STACK JP 2D2B Page 230. --------- The Number -65536 ================= On Page 230 is a suggested solution to the -65536 problem which successfully detects when 00 FF 00 00 00 arises in the registers. The solution attempts to replace this with 91 80 00 00 00, the full floating point form, but only the first two bytes are written to the calculator stack. The solution wrongly assumes that the other bytes of the stack's mantissa are already zero like those in the registers. A corrected solution is contained in Ian Collier's debugged imcrom and the accompanying documentation. This manages to implement the correction in full without altering main addresses. It is also suggested that if the above fix is made then the five bytes at $30E5 can be removed as 00 FF 00 00 00 will no longer arise. The bytes can still arise as the result from the multiplication of two small integers e.g. 0 * -1 . Only the floating-point form of multiplication detects if one of the arguments is zero and returns five zeros. Without these important five bytes then 0 * -1 returns the result -1E38. On Page 22 at SA_V_NEW it is indicated that a Syntax path error exists. In fact because LOOK-VARS returns NC in Syntax time, this is the convergence of two runtime paths. =============================================================================== WinZ80 ------ The Windows version of the Z80 Emulator contains a debugger which allows you to singlestep through the ROM and elsewhere. Legalized versions the labels from The Complete Spectrum ROM Disassembly are shown at the appropriate places. * A few of the mistakes above have found their way into the initial labels.asm file and it is worth correcting the following. list_all equa 1833,0 list_all_1 equa 1835,0 out_ch_3 equa 196C,0 clear_2 equa 1edc,0 pf_not_e equa 244c,0 and also, close equa 16e5,0 dim equa 2c02,0 * As part of the process of converting disassembly labels to assembly labels the duplicate labels KEY-DONE and S-RPORT-C have had their second occurrences renamed. --------------------------------------------------------------------------- Acknowledgements: Johan Koelman and Philip Kendall for additional contributions. All additions and corrections to this Website are gratefully received. Mail them to geoff (at) wearmouth (dot) demon.co.uk