From 1d9480f20d2f57000fbff1db501df4d851c75fa8 Mon Sep 17 00:00:00 2001 From: Tolik <85737314+Tolik-Trek@users.noreply.github.com> Date: Sat, 21 Jun 2025 00:33:02 +1000 Subject: [PATCH] ... --- SP_TRDOS.ASM | 9 +- SP__48.ASM | 6372 ++++++++++++++++++++++---------------------- Shared_Includes | 2 +- TRDOS/TR_HDD_4.ASZ | 23 - 4 files changed, 3189 insertions(+), 3217 deletions(-) diff --git a/SP_TRDOS.ASM b/SP_TRDOS.ASM index 7fc636c..d9eabb9 100644 --- a/SP_TRDOS.ASM +++ b/SP_TRDOS.ASM @@ -1226,15 +1226,10 @@ WG93_EXE_: ;************************************** ;ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл ; [x] 13/06/2025 boot loader from TR-DOS vROM + BOOT_PART_3: INCBIN 'build/boot.bin',429 .SIZE EQU $-BOOT_PART_3 - ; -; PREPARE_TO_vROM_BOOT: -; LD A,(ZX_VARS.RUN_AUTO_BOOT) -; AND A ; ЏрЈЇ­ Њ ЏЎЏытЊЈ Ї ЏусЊ  boot ЊЎЌ ­ЄЎЉ RUN ЁЅЇ Џ р ЌЅтрЎЂ -; JP Z,AUTO_03D9 -; DI -; JP vROM_BOOT +;ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл ;************************************** diff --git a/SP__48.ASM b/SP__48.ASM index 3307182..8d98aa7 100644 --- a/SP__48.ASM +++ b/SP__48.ASM @@ -42,7 +42,7 @@ ; routines in this ROM. Non-standard entry points have a label beginning ; with X. - ORG $0000 + ORG #0000 ;***************************************** ;** Part 1. RESTART ROUTINES AND TABLES ** @@ -58,7 +58,7 @@ ;; START L0000: DI ; disable interrupts. XOR A ; signal coming from START. - LD DE,$FFFF ; top of possible physical RAM. + LD DE,#FFFF ; top of possible physical RAM. JP L11CB ; jump forward to common code at START-NEW. ; ------------------- @@ -67,14 +67,14 @@ L0000: DI ; disable interrupts. ; The error pointer is made to point to the position of the error to enable ; the editor to show the error if it occurred during syntax checking. ; It is used at 37 places in the program. -; An instruction fetch on address $0008 may page in a peripheral ROM +; An instruction fetch on address #0008 may page in a peripheral ROM ; such as the Sinclair Interface 1 or Disciple Disk Interface. ; This was not however an original design concept and not all errors pass ; through here. ;; ERROR-1 -L0008: LD HL,($5C5D) ; fetch the character address from CH_ADD. - LD ($5C5F),HL ; copy it to the error pointer X_PTR. +L0008: LD HL,(#5C5D) ; fetch the character address from CH_ADD. + LD (#5C5F),HL ; copy it to the error pointer X_PTR. JR L0053 ; forward to continue at ERROR-2. ; ----------------------------- @@ -91,11 +91,11 @@ L0010: JP L15F2 ; jump forward to continue at PRINT-A-2. ; --- -X0013: DEFB $FF ; this byte is used by the SPECTRUM command in +X0013: DEFB #FF ; this byte is used by the SPECTRUM command in ; ROM 0 to generate an error report "0 OK". - DEFB $FF, $FF ; four unused locations. - DEFB $FF, $FF ; + DEFB #FF, #FF ; four unused locations. + DEFB #FF, #FF ; ; ------------------------------- ; THE 'COLLECT CHARACTER' RESTART @@ -110,7 +110,7 @@ X0013: DEFB $FF ; this byte is used by the SPECTRUM command in ; 4) in workspace if accepting input but not that from INPUT LINE. ;; GET-CHAR -L0018: LD HL,($5C5D) ; fetch the address from CH_ADD. +L0018: LD HL,(#5C5D) ; fetch the address from CH_ADD. LD A,(HL) ; use it to pick up current character. ;; TEST-CHAR @@ -131,7 +131,7 @@ L0020: CALL L0074 ; routine CH-ADD+1 fetches the next immediate ; --- - DEFB $FF, $FF, $FF ; unused + DEFB #FF, #FF, #FF ; unused ; ----------------------- ; THE 'CALCULATE' RESTART @@ -145,8 +145,8 @@ L0028: JP L335B ; jump forward to the CALCULATE routine. ; --- - DEFB $FF, $FF, $FF ; spare - note that on the ZX81, space being a - DEFB $FF, $FF ; little cramped, these same locations were + DEFB #FF, #FF, #FF ; spare - note that on the ZX81, space being a + DEFB #FF, #FF ; little cramped, these same locations were ; used for the five-byte end-calc literal. ; ------------------------------ @@ -157,7 +157,7 @@ L0028: JP L335B ; jump forward to the CALCULATE routine. ;; BC-SPACES L0030: PUSH BC ; save number of spaces. - LD HL,($5C61) ; fetch WORKSP. + LD HL,(#5C61) ; fetch WORKSP. PUSH HL ; save address of workspace. JP L169E ; jump forward to continuation code RESERVE. @@ -173,14 +173,14 @@ L0030: PUSH BC ; save number of spaces. ;; MASK-INT L0038: PUSH AF ; save the registers. PUSH HL ; but not IY unfortunately. - LD HL,($5C78) ; fetch two bytes at FRAMES1. + LD HL,(#5C78) ; fetch two bytes at FRAMES1. INC HL ; increment lowest two bytes of counter. - LD ($5C78),HL ; place back in FRAMES1. + LD (#5C78),HL ; place back in FRAMES1. LD A,H ; test if the result OR L ; was zero. JR NZ,L0048 ; forward to KEY-INT if not. - INC (IY+$40) ; otherwise increment FRAMES3 the third byte. + INC (IY+#40) ; otherwise increment FRAMES3 the third byte. ; now save the rest of the main registers and read and decode the keyboard. @@ -215,8 +215,8 @@ L0053: POP HL ; drop the return address - the location ; updated. ;; ERROR-3 -L0055: LD (IY+$00),L ; store it in the system variable ERR_NR. - LD SP,($5C3D) ; ERR_SP points to an error handler on the +L0055: LD (IY+#00),L ; store it in the system variable ERR_NR. + LD SP,(#5C3D) ; ERR_SP points to an error handler on the ; machine stack. There may be a hierarchy ; of routines. ; to MAIN-4 initially at base. @@ -232,9 +232,9 @@ L0055: LD (IY+$00),L ; store it in the system variable ERR_NR. ; --- - DEFB $FF, $FF, $FF ; unused locations - DEFB $FF, $FF, $FF ; before the fixed-position - DEFB $FF ; NMI routine. + DEFB #FF, #FF, #FF ; unused locations + DEFB #FF, #FF, #FF ; before the fixed-position + DEFB #FF ; NMI routine. ; ------------------------------------ ; THE 'NON-MASKABLE INTERRUPT' ROUTINE @@ -252,7 +252,7 @@ L0055: LD (IY+$00),L ; store it in the system variable ERR_NR. ;; RESET L0066: PUSH AF ; save the PUSH HL ; registers. - LD HL,($5CB0) ; fetch the system variable NMIADD. + LD HL,(#5CB0) ; fetch the system variable NMIADD. LD A,H ; test address OR L ; for zero. JR NZ,L0070 ; skip to NO-RESET if NOT ZERO @@ -274,13 +274,13 @@ L0070: POP HL ; restore the ; Both TEMP-PTR1 and TEMP-PTR2 are used by the READ command routine. ;; CH-ADD+1 -L0074: LD HL,($5C5D) ; fetch address from CH_ADD. +L0074: LD HL,(#5C5D) ; fetch address from CH_ADD. ;; TEMP-PTR1 L0077: INC HL ; increase the character address by one. ;; TEMP-PTR2 -L0078: LD ($5C5D),HL ; update CH_ADD with character address. +L0078: LD (#5C5D),HL ; update CH_ADD with character address. X007B: LD A,(HL) ; load character to A from HL. RET ; and return. @@ -302,20 +302,20 @@ X007B: LD A,(HL) ; load character to A from HL. ; 'a number 53 bus' appear the same to the parser. ;; SKIP-OVER -L007D: CP $21 ; test if higher than space. +L007D: CP #21 ; test if higher than space. RET NC ; return with carry clear if so. - CP $0D ; carriage return ? + CP #0D ; carriage return ? RET Z ; return also with carry clear if so. ; all other characters have no relevance ; to the parser and must be returned with ; carry set. - CP $10 ; test if 0-15d + CP #10 ; test if 0-15d RET C ; return, if so, with carry set. - CP $18 ; test if 24-32d + CP #18 ; test if 24-32d CCF ; complement carry flag. RET C ; return with carry set if so. @@ -324,7 +324,7 @@ L007D: CP $21 ; test if higher than space. INC HL ; all above have at least one extra character ; to be stepped over. - CP $16 ; controls 22d ('at') and 23d ('tab') have two. + CP #16 ; controls 22d ('at') and 23d ('tab') have two. JR C,L0090 ; forward to SKIPS with ink, paper, flash, ; bright, inverse or over controls. ; Note. the high byte of tab is for RS232 only. @@ -334,7 +334,7 @@ L007D: CP $21 ; test if higher than space. ;; SKIPS L0090: SCF ; set the carry flag - LD ($5C5D),HL ; update the CH_ADD system variable. + LD (#5C5D),HL ; update the CH_ADD system variable. RET ; return with carry set. @@ -451,11 +451,11 @@ L0095: ; to decode the key values. ; The first table contains the maps for the 39 keys of the standard -; 40-key Spectrum keyboard. The remaining key [SHIFT $27] is read directly. +; 40-key Spectrum keyboard. The remaining key [SHIFT #27] is read directly. ; The keys consist of the 26 upper-case alphabetic characters, the 10 digit ; keys and the space, ENTER and symbol shift key. -; Unshifted alphabetic keys have $20 added to the value. -; The keywords for the main alphabetic keys are obtained by adding $A5 to +; Unshifted alphabetic keys have #20 added to the value. +; The keywords for the main alphabetic keys are obtained by adding #A5 to ; the values obtained from this table. ;; MAIN-KEYS @@ -483,7 +483,7 @@ L0205: DEFB "B" DEFB "E" DEFB "D" DEFB "X" - DEFB $0E ; SYMBOL SHIFT + DEFB #0E ; SYMBOL SHIFT DEFB "L" DEFB "O" DEFB "9" @@ -492,7 +492,7 @@ L0205: DEFB "B" DEFB "S" DEFB "Z" DEFB " " - DEFB $0D ; ENTER + DEFB #0D ; ENTER DEFB "P" DEFB "0" DEFB "1" @@ -503,93 +503,93 @@ L0205: DEFB "B" ;; E-UNSHIFT ; The 26 unshifted extended mode keys for the alphabetic characters. ; The green keywords on the original keyboard. -L022C: DEFB $E3 ; READ - DEFB $C4 ; BIN - DEFB $E0 ; LPRINT - DEFB $E4 ; DATA - DEFB $B4 ; TAN - DEFB $BC ; SGN - DEFB $BD ; ABS - DEFB $BB ; SQR - DEFB $AF ; CODE - DEFB $B0 ; VAL - DEFB $B1 ; LEN - DEFB $C0 ; USR - DEFB $A7 ; PI - DEFB $A6 ; INKEY$ - DEFB $BE ; PEEK - DEFB $AD ; TAB - DEFB $B2 ; SIN - DEFB $BA ; INT - DEFB $E5 ; RESTORE - DEFB $A5 ; RND - DEFB $C2 ; CHR$ - DEFB $E1 ; LLIST - DEFB $B3 ; COS - DEFB $B9 ; EXP - DEFB $C1 ; STR$ - DEFB $B8 ; LN +L022C: DEFB #E3 ; READ + DEFB #C4 ; BIN + DEFB #E0 ; LPRINT + DEFB #E4 ; DATA + DEFB #B4 ; TAN + DEFB #BC ; SGN + DEFB #BD ; ABS + DEFB #BB ; SQR + DEFB #AF ; CODE + DEFB #B0 ; VAL + DEFB #B1 ; LEN + DEFB #C0 ; USR + DEFB #A7 ; PI + DEFB #A6 ; INKEY$ + DEFB #BE ; PEEK + DEFB #AD ; TAB + DEFB #B2 ; SIN + DEFB #BA ; INT + DEFB #E5 ; RESTORE + DEFB #A5 ; RND + DEFB #C2 ; CHR$ + DEFB #E1 ; LLIST + DEFB #B3 ; COS + DEFB #B9 ; EXP + DEFB #C1 ; STR$ + DEFB #B8 ; LN ;; EXT-SHIFT ; The 26 shifted extended mode keys for the alphabetic characters. ; The red keywords below keys on the original keyboard. L0246: DEFB '~' - DEFB $DC ; BRIGHT - DEFB $DA ; PAPER + DEFB #DC ; BRIGHT + DEFB #DA ; PAPER DEFB '\' ; - DEFB $B7 ; ATN + DEFB #B7 ; ATN DEFB '{' DEFB '}' - DEFB $D8 ; CIRCLE - DEFB $BF ; IN - DEFB $AE ; VAL$ - DEFB $AA ; SCREEN$ - DEFB $AB ; ATTR - DEFB $DD ; INVERSE - DEFB $DE ; OVER - DEFB $DF ; OUT - DEFB $7F ; (Copyright character) - DEFB $B5 ; ASN - DEFB $D6 ; VERIFY + DEFB #D8 ; CIRCLE + DEFB #BF ; IN + DEFB #AE ; VAL$ + DEFB #AA ; SCREEN$ + DEFB #AB ; ATTR + DEFB #DD ; INVERSE + DEFB #DE ; OVER + DEFB #DF ; OUT + DEFB #7F ; (Copyright character) + DEFB #B5 ; ASN + DEFB #D6 ; VERIFY DEFB '|' - DEFB $D5 ; MERGE + DEFB #D5 ; MERGE DEFB ']' - DEFB $DB ; FLASH - DEFB $B6 ; ACS - DEFB $D9 ; INK + DEFB #DB ; FLASH + DEFB #B6 ; ACS + DEFB #D9 ; INK DEFB '[' - DEFB $D7 ; BEEP + DEFB #D7 ; BEEP ;; CTL-CODES ; The ten control codes assigned to the top line of digits when the shift ; key is pressed. -L0260: DEFB $0C ; DELETE - DEFB $07 ; EDIT - DEFB $06 ; CAPS LOCK - DEFB $04 ; TRUE VIDEO - DEFB $05 ; INVERSE VIDEO - DEFB $08 ; CURSOR LEFT - DEFB $0A ; CURSOR DOWN - DEFB $0B ; CURSOR UP - DEFB $09 ; CURSOR RIGHT - DEFB $0F ; GRAPHICS +L0260: DEFB #0C ; DELETE + DEFB #07 ; EDIT + DEFB #06 ; CAPS LOCK + DEFB #04 ; TRUE VIDEO + DEFB #05 ; INVERSE VIDEO + DEFB #08 ; CURSOR LEFT + DEFB #0A ; CURSOR DOWN + DEFB #0B ; CURSOR UP + DEFB #09 ; CURSOR RIGHT + DEFB #0F ; GRAPHICS ;; SYM-CODES ; The 26 red symbols assigned to the alphabetic characters of the keyboard. ; The ten single-character digit symbols are converted without the aid of ; a table using subtraction and minor manipulation. -L026A: DEFB $E2 ; STOP +L026A: DEFB #E2 ; STOP DEFB '*' DEFB '?' - DEFB $CD ; STEP - DEFB $C8 ; >= - DEFB $CC ; TO - DEFB $CB ; THEN + DEFB #CD ; STEP + DEFB #C8 ; >= + DEFB #CC ; TO + DEFB #CB ; THEN DEFB '^' - DEFB $AC ; AT + DEFB #AC ; AT DEFB '-' DEFB '+' DEFB '=' @@ -597,30 +597,30 @@ L026A: DEFB $E2 ; STOP DEFB ',' DEFB ';' DEFB '"' - DEFB $C7 ; <= + DEFB #C7 ; <= DEFB '<' - DEFB $C3 ; NOT + DEFB #C3 ; NOT DEFB '>' - DEFB $C5 ; OR + DEFB #C5 ; OR DEFB '/' - DEFB $C9 ; <> - DEFB $60 ; pound - DEFB $C6 ; AND + DEFB #C9 ; <> + DEFB #60 ; pound + DEFB #C6 ; AND DEFB ':' ; : ;; E-DIGITS ; The ten keywords assigned to the digits in extended mode. ; The remaining red keywords below the keys. -L0284: DEFB $D0 ; FORMAT - DEFB $CE ; DEF FN - DEFB $A8 ; FN - DEFB $CA ; LINE - DEFB $D3 ; OPEN# - DEFB $D4 ; CLOSE# - DEFB $D1 ; MOVE - DEFB $D2 ; ERASE - DEFB $A9 ; POINT - DEFB $CF ; CAT +L0284: DEFB #D0 ; FORMAT + DEFB #CE ; DEF FN + DEFB #A8 ; FN + DEFB #CA ; LINE + DEFB #D3 ; OPEN# + DEFB #D4 ; CLOSE# + DEFB #D1 ; MOVE + DEFB #D2 ; ERASE + DEFB #A9 ; POINT + DEFB #CF ; CAT ;******************************* @@ -642,7 +642,7 @@ L0284: DEFB $D0 ; FORMAT ; FDFE [ A ] [ S ] [ D ] [ F ] [ G ] | [ H ] [ J ] [ K ] [ L ] [ ENT ] BFFE ; ^ | v ; FEFE [SHI] [ Z ] [ X ] [ C ] [ V ] | [ B ] [ N ] [ M ] [sym] [ SPC ] 7FFE -; ^ $27 $18 v +; ^ #27 #18 v ; Start End ; 00100111 00011000 ; @@ -662,19 +662,19 @@ L0284: DEFB $D0 ; FORMAT ; key values 0-39 else 255 ;; KEY-SCAN -L028E: LD L,$2F ; initial key value +L028E: LD L,#2F ; initial key value ; valid values are obtained by subtracting ; eight five times. - LD DE,$FFFF ; a buffer to receive 2 keys. + LD DE,#FFFF ; a buffer to receive 2 keys. - LD BC,$FEFE ; the commencing port address + LD BC,#FEFE ; the commencing port address ; B holds 11111110 initially and is also ; used to count the 8 half-rows ;; KEY-LINE L0296: IN A,(C) ; read the port to A - bits will be reset ; if a key is pressed else set. CPL ; complement - pressed key-bits are now set - AND $1F ; apply 00011111 mask to pick up the + AND #1F ; apply 00011111 mask to pick up the ; relevant set bits. JR Z,L02AB ; forward to KEY-DONE if zero and therefore @@ -689,8 +689,8 @@ L029F: INC D ; now test the key buffer ; then too many so quit. ;; KEY-BITS -L02A1: SUB $08 ; subtract 8 from the key value - ; cycling through key values (top = $27) +L02A1: SUB #08 ; subtract 8 from the key value + ; cycling through key values (top = #27) ; e.g. 2F> 27>1F>17>0F>07 ; 2E> 26>1E>16>0E>06 SRL H ; shift key bits right into carry. @@ -710,19 +710,19 @@ L02AB: DEC L ; cycles 2F>2E>2D>2C>2B>2A>29>28 for LD A,D ; now test if D is still FF ? INC A ; if it is zero we have at most 1 key - ; range now $01-$28 (1-40d) + ; range now #01-#28 (1-40d) RET Z ; return if one key or no key. - CP $28 ; is it capsshift (was $27) ? + CP #28 ; is it capsshift (was #27) ? RET Z ; return if so. - CP $19 ; is it symbol shift (was $18) ? + CP #19 ; is it symbol shift (was #18) ? RET Z ; return also LD A,E ; now test E LD E,D ; but first switch LD D,A ; the two keys. - CP $18 ; is it symbol shift ? + CP #18 ; is it symbol shift ? RET ; return (with zero set if it was). ; but with symbol shift now in D @@ -742,10 +742,10 @@ L02BF: CALL L028E ; routine KEY-SCAN ; then both sets will be free. - LD HL,$5C00 ; point to KSTATE-0 + LD HL,#5C00 ; point to KSTATE-0 ;; K-ST-LOOP -L02C6: BIT 7,(HL) ; is it free ? ($FF) +L02C6: BIT 7,(HL) ; is it free ? (#FF) JR NZ,L02D1 ; forward to K-CH-SET if so INC HL ; address 5-counter @@ -753,12 +753,12 @@ L02C6: BIT 7,(HL) ; is it free ? ($FF) DEC HL ; step back JR NZ,L02D1 ; forward to K-CH-SET if not at end of count - LD (HL),$FF ; else mark it free. + LD (HL),#FF ; else mark it free. ;; K-CH-SET L02D1: LD A,L ; store low address byte. - LD HL,$5C04 ; point to KSTATE-4 - ; (ld l, $04) + LD HL,#5C04 ; point to KSTATE-4 + ; (ld l, #04) CP L ; have 2 been done ? JR NZ,L02C6 ; back to K-ST-LOOP to consider this 2nd set @@ -767,14 +767,14 @@ L02D1: LD A,L ; store low address byte. CALL L031E ; routine K-TEST to get main key in A RET NC ; return if single shift - LD HL,$5C00 ; point to KSTATE-0 + LD HL,#5C00 ; point to KSTATE-0 CP (HL) ; does it match ? JR Z,L0310 ; forward to K-REPEAT if so ; if not consider the second key map. EX DE,HL ; save kstate-0 in de - LD HL,$5C04 ; point to KSTATE-4 + LD HL,#5C04 ; point to KSTATE-4 CP (HL) ; does it match ? JR Z,L0310 ; forward to K-REPEAT if so @@ -795,25 +795,25 @@ L02D1: LD A,L ; store low address byte. L02F1: LD E,A ; store key in E LD (HL),A ; place in free location INC HL ; advance to interrupt counter - LD (HL),$05 ; and initialize to 5 + LD (HL),#05 ; and initialize to 5 INC HL ; advance to delay - LD A,($5C09) ; pick up system variable REPDEL + LD A,(#5C09) ; pick up system variable REPDEL LD (HL),A ; and insert that for first repeat delay. INC HL ; advance to last location of state map. - LD C,(IY+$07) ; pick up MODE (3 bytes) - LD D,(IY+$01) ; pick up FLAGS (3 bytes) + LD C,(IY+#07) ; pick up MODE (3 bytes) + LD D,(IY+#01) ; pick up FLAGS (3 bytes) PUSH HL ; save state map location ; Note. could now have used. - ; ld l,$41; ld c,(hl); ld l,$3B; ld d,(hl). + ; ld l,#41; ld c,(hl); ld l,#3B; ld d,(hl). ; six and two threes of course. CALL L0333 ; routine K-DECODE POP HL ; restore map pointer LD (HL),A ; put decoded key in last location of map. ;; K-END -L0308: LD ($5C08),A ; update LASTK system variable. - SET 5,(IY+$01) ; update FLAGS - signal new key. +L0308: LD (#5C08),A ; update LASTK system variable. + SET 5,(IY+#01) ; update FLAGS - signal new key. RET ; done ; --------------------------- @@ -824,12 +824,12 @@ L0308: LD ($5C08),A ; update LASTK system variable. ;; K-REPEAT L0310: INC HL ; advance - LD (HL),$05 ; maintain interrupt counter at 5 + LD (HL),#05 ; maintain interrupt counter at 5 INC HL ; advance DEC (HL) ; decrease REPDEL value. RET NZ ; return if not yet zero. - LD A,($5C0A) ; REPPER + LD A,(#5C0A) ; REPPER LD (HL),A ; but for subsequent repeats REPPER will be used. INC HL ; advance ; @@ -845,18 +845,18 @@ L0310: INC HL ; advance ;; K-TEST L031E: LD B,D ; load most significant key to B - ; will be $FF if not shift. - LD D,$00 ; and reset D to index into main table + ; will be #FF if not shift. + LD D,#00 ; and reset D to index into main table LD A,E ; load least significant key from E - CP $27 ; is it higher than 39d i.e. FF + CP #27 ; is it higher than 39d i.e. FF RET NC ; return with just a shift (in B now) - CP $18 ; is it symbol shift ? + CP #18 ; is it symbol shift ? JR NZ,L032C ; forward to K-MAIN if not ; but we could have just symbol shift and no other - BIT 7,B ; is other key $FF (ie not shift) + BIT 7,B ; is other key #FF (ie not shift) RET NZ ; return with solitary symbol shift @@ -874,7 +874,7 @@ L032C: LD HL,L0205 ; address: MAIN-KEYS ;; K-DECODE L0333: LD A,E ; pick up the stored main key - CP $3A ; an arbitrary point between digits and letters + CP #3A ; an arbitrary point between digits and letters JR C,L0367 ; forward to K-DIGIT with digits, space, enter. DEC C ; decrease MODE ( 0='KLC', 1='E', 2='G') @@ -884,13 +884,13 @@ L0333: LD A,E ; pick up the stored main key JR Z,L0341 ; to K-E-LET if was 1 for extended letters. ; proceed with graphic codes. -; Note. should selectively drop return address if code > 'U' ($55). +; Note. should selectively drop return address if code > 'U' (#55). ; i.e. abort the KEYBOARD call. ; e.g. cp 'V'; jr c addit; pop af; ;;addit etc. (5 bytes of instruction). ; (s-inkey$ never gets into graphics mode.) ;; addit - ADD A,$4F ; add offset to augment 'A' to graphics A say. + ADD A,#4F ; add offset to augment 'A' to graphics A say. RET ; return. ; Note. ( but [GRAPH] V gives RND, etc ). @@ -899,15 +899,15 @@ L0333: LD A,E ; pick up the stored main key ; the jump was to here with extended mode with uppercase A-Z. ;; K-E-LET -L0341: LD HL,L022C-$41 ; base address of E-UNSHIFT L022c - ; ( $01EB in standard ROM ) +L0341: LD HL,L022C-#41 ; base address of E-UNSHIFT L022c + ; ( #01EB in standard ROM ) INC B ; test B is it empty i.e. not a shift JR Z,L034A ; forward to K-LOOK-UP if neither shift - LD HL,L0246-$41 ; Address: $0205 L0246-$41 EXT-SHIFT base + LD HL,L0246-#41 ; Address: #0205 L0246-#41 EXT-SHIFT base ;; K-LOOK-UP -L034A: LD D,$00 ; prepare to index +L034A: LD D,#00 ; prepare to index ADD HL,DE ; add the main key value LD A,(HL) ; pick up other mode value RET ; return @@ -917,21 +917,21 @@ L034A: LD D,$00 ; prepare to index ; the jump was here with mode = 0 ;; K-KLC-LET -L034F: LD HL,L026A-$41 ; prepare base of sym-codes - BIT 0,B ; shift=$27 sym-shift=$18 +L034F: LD HL,L026A-#41 ; prepare base of sym-codes + BIT 0,B ; shift=#27 sym-shift=#18 JR Z,L034A ; back to K-LOOK-UP with symbol-shift BIT 3,D ; test FLAGS is it 'K' mode (from OUT-CURS) JR Z,L0364 ; skip to K-TOKENS if so - BIT 3,(IY+$30) ; test FLAGS2 - consider CAPS LOCK ? + BIT 3,(IY+#30) ; test FLAGS2 - consider CAPS LOCK ? RET NZ ; return if so with main code. INC B ; is shift being pressed ? ; result zero if not RET NZ ; return if shift pressed. - ADD A,$20 ; else convert the code to lower case. + ADD A,#20 ; else convert the code to lower case. RET ; return. ; --- @@ -939,7 +939,7 @@ L034F: LD HL,L026A-$41 ; prepare base of sym-codes ; the jump was here for tokens ;; K-TOKENS -L0364: ADD A,$A5 ; add offset to main code so that 'A' +L0364: ADD A,#A5 ; add offset to main code so that 'A' ; becomes 'NEW' etc. RET ; return @@ -948,7 +948,7 @@ L0364: ADD A,$A5 ; add offset to main code so that 'A' ; the jump was here with digits, space, enter and symbol shift (< $xx) ;; K-DIGIT -L0367: CP $30 ; is it '0' or higher ? +L0367: CP #30 ; is it '0' or higher ? RET C ; return with space, enter and symbol-shift DEC C ; test MODE (was 0='KLC', 1='E', 2='G') @@ -958,18 +958,18 @@ L0367: CP $30 ; is it '0' or higher ? ; continue with extended digits 0-9. - LD HL,L0284-$30 ; $0254 - base of E-DIGITS - BIT 5,B ; test - shift=$27 sym-shift=$18 + LD HL,L0284-#30 ; #0254 - base of E-DIGITS + BIT 5,B ; test - shift=#27 sym-shift=#18 JR Z,L034A ; to K-LOOK-UP if sym-shift - CP $38 ; is character '8' ? + CP #38 ; is character '8' ? JR NC,L0382 ; to K-8-&-9 if greater than '7' - SUB $20 ; reduce to ink range $10-$17 + SUB #20 ; reduce to ink range #10-#17 INC B ; shift ? RET Z ; return if not. - ADD A,$08 ; add 8 to give paper range $18 - $1F + ADD A,#08 ; add 8 to give paper range #18 - #1F RET ; return ; --- @@ -977,11 +977,11 @@ L0367: CP $30 ; is it '0' or higher ? ; 89 ;; K-8-&-9 -L0382: SUB $36 ; reduce to 02 and 03 bright codes +L0382: SUB #36 ; reduce to 02 and 03 bright codes INC B ; test if shift pressed. RET Z ; return if not. - ADD A,$FE ; subtract 2 setting carry + ADD A,#FE ; subtract 2 setting carry RET ; to give 0 and 1 flash codes. ; --- @@ -989,23 +989,23 @@ L0382: SUB $36 ; reduce to 02 and 03 bright codes ; graphics mode with digits ;; K-GRA-DGT -L0389: LD HL,L0260-$30 ; $0230 base address of CTL-CODES +L0389: LD HL,L0260-#30 ; #0230 base address of CTL-CODES - CP $39 ; is key '9' ? - JR Z,L034A ; back to K-LOOK-UP - changed to $0F, GRAPHICS. + CP #39 ; is key '9' ? + JR Z,L034A ; back to K-LOOK-UP - changed to #0F, GRAPHICS. - CP $30 ; is key '0' ? - JR Z,L034A ; back to K-LOOK-UP - changed to $0C, delete. + CP #30 ; is key '0' ? + JR Z,L034A ; back to K-LOOK-UP - changed to #0C, delete. ; for keys '0' - '7' we assign a mosaic character depending on shift. - AND $07 ; convert character to number. 0 - 7. - ADD A,$80 ; add offset - they start at $80 + AND #07 ; convert character to number. 0 - 7. + ADD A,#80 ; add offset - they start at #80 INC B ; destructively test for shift RET Z ; and return if not pressed. - XOR $0F ; toggle bits becomes range $88-$8F + XOR #0F ; toggle bits becomes range #88-#8F RET ; return. ; --- @@ -1018,32 +1018,32 @@ L039D: INC B ; return with digit codes if neither BIT 5,B ; test for caps shift. - LD HL,L0260-$30 ; prepare base of table CTL-CODES. + LD HL,L0260-#30 ; prepare base of table CTL-CODES. JR NZ,L034A ; back to K-LOOK-UP if shift pressed. ; must have been symbol shift - SUB $10 ; for ASCII most will now be correct + SUB #10 ; for ASCII most will now be correct ; on a standard typewriter. - CP $22 ; but '@' is not - see below. + CP #22 ; but '@' is not - see below. JR Z,L03B2 ; forward to to K-@-CHAR if so - CP $20 ; '_' is the other one that fails + CP #20 ; '_' is the other one that fails RET NZ ; return if not. - LD A,$5F ; substitute ASCII '_' + LD A,#5F ; substitute ASCII '_' RET ; return. ; --- ;; K-@-CHAR -L03B2: LD A,$40 ; substitute ASCII '@' +L03B2: LD A,#40 ; substitute ASCII '@' RET ; return. ; ------------------------------------------------------------------------ ; The Spectrum Input character keys. One or two are abbreviated. -; From $00 Flash 0 to $FF COPY. The routine above has decoded all these. +; From #00 Flash 0 to #FF COPY. The routine above has decoded all these. ; | 00 Fl0| 01 Fl1| 02 Br0| 03 Br1| 04 In0| 05 In1| 06 CAP| 07 EDT| ; | 08 LFT| 09 RIG| 0A DWN| 0B UP | 0C DEL| 0D ENT| 0E SYM| 0F GRA| @@ -1080,8 +1080,8 @@ L03B2: LD A,$40 ; substitute ASCII '@' ; Note that for simplicity, Sinclair have located all the control codes ; below the space character. -; ASCII DEL, $7F, has been made a copyright symbol. -; Also $60, '`', not used in BASIC but used in other languages, has been +; ASCII DEL, #7F, has been made a copyright symbol. +; Also #60, '`', not used in BASIC but used in other languages, has been ; allocated the local currency symbol for the relevant country - ; ukp in most Spectrums. @@ -1132,19 +1132,19 @@ L03B5: DI ; Disable Interrupts so they don't disturb timin SRL L ; SRL L ; L = medium part of tone period CPL ; - AND $03 ; A = 3 - fine part of tone period + AND #03 ; A = 3 - fine part of tone period LD C,A ; - LD B,$00 ; + LD B,#00 ; LD IX,L03D1 ; Address: BE-IX+3 ADD IX,BC ; IX holds address of entry into the loop ; the loop will contain 0-3 NOPs, implementing ; the fine part of the tone period. - LD A,($5C48) ; BORDCR - AND $38 ; bits 5..3 contain border colour + LD A,(#5C48) ; BORDCR + AND #38 ; bits 5..3 contain border colour RRCA ; border colour bits moved to 2..0 RRCA ; to match border bits on port #FE RRCA ; - OR $08 ; bit 3 set (tape output bit on port #FE) + OR #08 ; bit 3 set (tape output bit on port #FE) ; for loud sound output ;; BE-IX+3 L03D1: NOP ;(4) ; optionally executed NOPs for small @@ -1163,12 +1163,12 @@ L03D4: INC B ;(4) ; L03D6: DEC C ;(4) ; timing loop for duration of JR NZ,L03D6 ;(12/7); high or low pulse of waveform - LD C,$3F ;(7) ; + LD C,#3F ;(7) ; DEC B ;(4) ; JP NZ,L03D6 ;(10) ; to BE-H&L-LP - XOR $10 ;(7) ; toggle output beep bit - OUT ($FE),A ;(11) ; output pulse + XOR #10 ;(7) ; toggle output beep bit + OUT (#FE),A ;(11) ; output pulse LD B,H ;(4) ; B = coarse part of tone period LD C,A ;(4) ; save port #FE output byte BIT 4,A ;(8) ; if new output bit is high, go @@ -1207,19 +1207,19 @@ L03F6: EI ; Enable Interrupts ; ;; beep L03F8: RST 28H ;; FP-CALC - DEFB $31 ;;duplicate ; duplicate pitch - DEFB $27 ;;int ; convert to integer - DEFB $C0 ;;st-mem-0 ; store integer pitch to memory 0 - DEFB $03 ;;subtract ; calculate fractional part of pitch = fp_pitch - int_pitch - DEFB $34 ;;stk-data ; push constant - DEFB $EC ;;Exponent: $7C, Bytes: 4 ; constant = 0.05762265 - DEFB $6C,$98,$1F,$F5 ;;($6C,$98,$1F,$F5) - DEFB $04 ;;multiply ; compute: - DEFB $A1 ;;stk-one ; 1 + 0.05762265 * fraction_part(pitch) - DEFB $0F ;;addition - DEFB $38 ;;end-calc ; leave on calc stack + DEFB #31 ;;duplicate ; duplicate pitch + DEFB #27 ;;int ; convert to integer + DEFB #C0 ;;st-mem-0 ; store integer pitch to memory 0 + DEFB #03 ;;subtract ; calculate fractional part of pitch = fp_pitch - int_pitch + DEFB #34 ;;stk-data ; push constant + DEFB #EC ;;Exponent: #7C, Bytes: 4 ; constant = 0.05762265 + DEFB #6C,#98,#1F,#F5 ;;(#6C,#98,#1F,#F5) + DEFB #04 ;;multiply ; compute: + DEFB #A1 ;;stk-one ; 1 + 0.05762265 * fraction_part(pitch) + DEFB #0F ;;addition + DEFB #38 ;;end-calc ; leave on calc stack - LD HL,$5C92 ; MEM-0: number stored here is in 16 bit integer format (pitch) + LD HL,#5C92 ; MEM-0: number stored here is in 16 bit integer format (pitch) ; 0, 0/FF (pos/neg), LSB, MSB, 0 ; LSB/MSB is stored in two's complement ; In the following, the pitch is checked if it is in the range -128<=p<=127 @@ -1242,7 +1242,7 @@ L03F8: RST 28H ;; FP-CALC JR NZ,L046C ; if no, error REPORT-B ; now we know -128<=p<=127 LD A,B ; A = pitch + 60 - ADD A,$3C ; if -60<=pitch<=67, + ADD A,#3C ; if -60<=pitch<=67, JP P,L0425 ; goto BE-i-OK JP PO,L046C ; if pitch <= 67 goto REPORT-B @@ -1251,42 +1251,42 @@ L03F8: RST 28H ;; FP-CALC ;; BE-I-OK ; here, -60<=pitch<=127 ; and A=pitch+60 -> 0<=A<=187 -L0425: LD B,$FA ; 6 octaves below middle C +L0425: LD B,#FA ; 6 octaves below middle C ;; BE-OCTAVE ; A=# semitones above 5 octaves below middle C L0427: INC B ; increment octave - SUB $0C ; 12 semitones = one octave + SUB #0C ; 12 semitones = one octave JR NC,L0427 ; to BE-OCTAVE - ADD A,$0C ; A = # semitones above C (0-11) + ADD A,#0C ; A = # semitones above C (0-11) PUSH BC ; B = octave displacement from middle C, 2's complement: -5<=B<=10 LD HL,L046E ; Address: semi-tone CALL L3406 ; routine LOC-MEM - ; HL = 5*A + $046E + ; HL = 5*A + #046E CALL L33B4 ; routine STACK-NUM ; read FP value (freq) from semitone table (HL) and push onto calc stack RST 28H ;; FP-CALC - DEFB $04 ;;multiply mult freq by 1 + 0.0576 * fraction_part(pitch) stacked earlier + DEFB #04 ;;multiply mult freq by 1 + 0.0576 * fraction_part(pitch) stacked earlier ;; thus taking into account fractional part of pitch. ;; the number 0.0576*frequency is the distance in Hz to the next ;; note (verify with the frequencies recorded in the semitone ;; table below) so that the fraction_part of the pitch does ;; indeed represent a fractional distance to the next note. - DEFB $38 ;;end-calc HL points to first byte of fp num on stack = middle frequency to generate + DEFB #38 ;;end-calc HL points to first byte of fp num on stack = middle frequency to generate POP AF ; A = octave displacement from middle C, 2's complement: -5<=A<=10 ADD A,(HL) ; increase exponent by A (equivalent to multiplying by 2^A) LD (HL),A ; RST 28H ;; FP-CALC - DEFB $C0 ;;st-mem-0 ; store frequency in memory 0 - DEFB $02 ;;delete ; remove from calc stack - DEFB $31 ;;duplicate ; duplicate duration (seconds) - DEFB $38 ;;end-calc + DEFB #C0 ;;st-mem-0 ; store frequency in memory 0 + DEFB #02 ;;delete ; remove from calc stack + DEFB #31 ;;duplicate ; duplicate duration (seconds) + DEFB #38 ;;end-calc CALL L1E94 ; routine FIND-INT1 ; FP duration to A - CP $0B ; if dur > 10 seconds, + CP #0B ; if dur > 10 seconds, JR NC,L046C ; goto REPORT-B ;;; The following calculation finds the tone period for HL and the cycle count @@ -1299,19 +1299,19 @@ L0427: INC B ; increment octave ;;; below. This is probably an error. RST 28H ;; FP-CALC - DEFB $E0 ;;get-mem-0 ; push frequency - DEFB $04 ;;multiply ; result1: #cycles = duration * frequency - DEFB $E0 ;;get-mem-0 ; push frequency - DEFB $34 ;;stk-data ; push constant - DEFB $80 ;;Exponent $93, Bytes: 3 ; constant = 437500 - DEFB $43,$55,$9F,$80 ;;($55,$9F,$80,$00) - DEFB $01 ;;exchange ; frequency on top - DEFB $05 ;;division ; 437500 / frequency - DEFB $34 ;;stk-data ; push constant - DEFB $35 ;;Exponent: $85, Bytes: 1 ; constant = 30.125 - DEFB $71 ;;($71,$00,$00,$00) - DEFB $03 ;;subtract ; result2: tone_period(HL) = 437500 / freq - 30.125 - DEFB $38 ;;end-calc + DEFB #E0 ;;get-mem-0 ; push frequency + DEFB #04 ;;multiply ; result1: #cycles = duration * frequency + DEFB #E0 ;;get-mem-0 ; push frequency + DEFB #34 ;;stk-data ; push constant + DEFB #80 ;;Exponent #93, Bytes: 3 ; constant = 437500 + DEFB #43,#55,#9F,#80 ;;(#55,#9F,#80,#00) + DEFB #01 ;;exchange ; frequency on top + DEFB #05 ;;division ; 437500 / frequency + DEFB #34 ;;stk-data ; push constant + DEFB #35 ;;Exponent: #85, Bytes: 1 ; constant = 30.125 + DEFB #71 ;;(#71,#00,#00,#00) + DEFB #03 ;;subtract ; result2: tone_period(HL) = 437500 / freq - 30.125 + DEFB #38 ;;end-calc CALL L1E99 ; routine FIND-INT2 PUSH BC ; BC = tone_period(HL) @@ -1331,7 +1331,7 @@ L0427: INC B ; increment octave ;; REPORT-B L046C: RST 08H ; ERROR-1 - DEFB $0A ; Error Report: Integer out of range + DEFB #0A ; Error Report: Integer out of range @@ -1343,18 +1343,18 @@ L046C: RST 08H ; ERROR-1 ; To move n octaves higher or lower, frequencies are multiplied by 2^n. ;; semi-tone five byte fp decimal freq note (middle) -L046E: DEFB $89, $02, $D0, $12, $86; 261.625565290 C - DEFB $89, $0A, $97, $60, $75; 277.182631135 C# - DEFB $89, $12, $D5, $17, $1F; 293.664768100 D - DEFB $89, $1B, $90, $41, $02; 311.126983881 D# - DEFB $89, $24, $D0, $53, $CA; 329.627557039 E - DEFB $89, $2E, $9D, $36, $B1; 349.228231549 F - DEFB $89, $38, $FF, $49, $3E; 369.994422674 F# - DEFB $89, $43, $FF, $6A, $73; 391.995436072 G - DEFB $89, $4F, $A7, $00, $54; 415.304697513 G# - DEFB $89, $5C, $00, $00, $00; 440.000000000 A - DEFB $89, $69, $14, $F6, $24; 466.163761616 A# - DEFB $89, $76, $F1, $10, $05; 493.883301378 B +L046E: DEFB #89, #02, #D0, #12, #86; 261.625565290 C + DEFB #89, #0A, #97, #60, #75; 277.182631135 C# + DEFB #89, #12, #D5, #17, #1F; 293.664768100 D + DEFB #89, #1B, #90, #41, #02; 311.126983881 D# + DEFB #89, #24, #D0, #53, #CA; 329.627557039 E + DEFB #89, #2E, #9D, #36, #B1; 349.228231549 F + DEFB #89, #38, #FF, #49, #3E; 369.994422674 F# + DEFB #89, #43, #FF, #6A, #73; 391.995436072 G + DEFB #89, #4F, #A7, #00, #54; 415.304697513 G# + DEFB #89, #5C, #00, #00, #00; 440.000000000 A + DEFB #89, #69, #14, #F6, #24; 466.163761616 A# + DEFB #89, #76, #F1, #10, #05; 493.883301378 B ;**************************************** @@ -1373,7 +1373,7 @@ L046E: DEFB $89, $02, $D0, $12, $86; 261.625565290 C ;; zx81-name L04AA: CALL L24FB ; routine SCANNING to evaluate expression. - LD A,($5C3B) ; fetch system variable FLAGS. + LD A,(#5C3B) ; fetch system variable FLAGS. ADD A,A ; test bit 7 - syntax, bit 6 - result type. JP M,L1C8A ; to REPORT-C if not string result ; 'Nonsense in BASIC'. @@ -1396,13 +1396,13 @@ L04AA: CALL L24FB ; routine SCANNING to evaluate expression. ; ========================================= ; -; PORT 254 ($FE) +; PORT 254 (#FE) ; ; spk mic { border } ; ___ ___ ___ ___ ___ ___ ___ ___ ; PORT | | | | | | | | | ; 254 | | | | | | | | | -; $FE |___|___|___|___|___|___|___|___| +; #FE |___|___|___|___|___|___|___|___| ; 7 6 5 4 3 2 1 0 ; @@ -1415,7 +1415,7 @@ L04AA: CALL L24FB ; routine SCANNING to evaluate expression. ; On entry - ; HL points to start of data. ; IX points to descriptor. -; The accumulator is set to $00 for a header, $FF for data. +; The accumulator is set to #00 for a header, #FF for data. ;; SA-BYTES L04C2: LD HL,L053F ; address: SA/LD-RET @@ -1423,7 +1423,7 @@ L04C2: LD HL,L053F ; address: SA/LD-RET ; however there is only one non-terminal exit ; point. - LD HL,$1F80 ; a timing constant H=$1F, L=$80 + LD HL,#1F80 ; a timing constant H=#1F, L=#80 ; inner and outer loop counters ; a five second lead-in is used for a header. @@ -1433,7 +1433,7 @@ L04C2: LD HL,L053F ; address: SA/LD-RET ; else is data bytes and a shorter lead-in is used. - LD HL,$0C98 ; another timing value H=$0C, L=$98. + LD HL,#0C98 ; another timing value H=#0C, L=#98. ; a two second lead-in is used for the data. @@ -1444,20 +1444,20 @@ L04D0: EX AF,AF' ; save flag DI ; disable interrupts - LD A,$02 ; select red for border, microphone bit on. + LD A,#02 ; select red for border, microphone bit on. LD B,A ; also does as an initial slight counter value. ;; SA-LEADER L04D8: DJNZ L04D8 ; self loop to SA-LEADER for delay. - ; after initial loop, count is $A4 (or $A3) + ; after initial loop, count is #A4 (or #A3) - OUT ($FE),A ; output byte $02/$0D to tape port. + OUT (#FE),A ; output byte #02/#0D to tape port. - XOR $0F ; switch from RED (mic on) to CYAN (mic off). + XOR #0F ; switch from RED (mic on) to CYAN (mic off). - LD B,$A4 ; hold count. also timed instruction. + LD B,#A4 ; hold count. also timed instruction. - DEC L ; originally $80 or $98. + DEC L ; originally #80 or #98. ; but subsequently cycles 256 times. JR NZ,L04D8 ; back to SA-LEADER until L is zero. @@ -1465,26 +1465,26 @@ L04D8: DJNZ L04D8 ; self loop to SA-LEADER for delay. DEC B ; decrement count DEC H ; originally twelve or thirty-one. - JP P,L04D8 ; back to SA-LEADER until H becomes $FF + JP P,L04D8 ; back to SA-LEADER until H becomes #FF ; now send a synch pulse. At this stage mic is off and A holds value ; for mic on. ; A synch pulse is much shorter than the steady pulses of the lead-in. - LD B,$2F ; another short timed delay. + LD B,#2F ; another short timed delay. ;; SA-SYNC-1 L04EA: DJNZ L04EA ; self loop to SA-SYNC-1 - OUT ($FE),A ; switch to mic on and red. - LD A,$0D ; prepare mic off - cyan - LD B,$37 ; another short timed delay. + OUT (#FE),A ; switch to mic on and red. + LD A,#0D ; prepare mic off - cyan + LD B,#37 ; another short timed delay. ;; SA-SYNC-2 L04F2: DJNZ L04F2 ; self loop to SA-SYNC-2 - OUT ($FE),A ; output mic off, cyan border. - LD BC,$3B0E ; B=$3B time(*), C=$0E, YELLOW, MIC OFF. + OUT (#FE),A ; output mic off, cyan border. + LD BC,#3B0E ; B=#3B time(*), C=#0E, YELLOW, MIC OFF. ; @@ -1492,21 +1492,21 @@ L04F2: DJNZ L04F2 ; self loop to SA-SYNC-2 ; which is 1st byte to be saved. LD L,A ; and transfer to L. - ; the initial parity is A, $FF or $00. + ; the initial parity is A, #FF or #00. JP L0507 ; JUMP forward to SA-START -> ; the mid entry point of loop. ; ------------------------- ; During the save loop a parity byte is maintained in H. ; the save loop begins by testing if reduced length is zero and if so -; the final parity byte is saved reducing count to $FFFF. +; the final parity byte is saved reducing count to #FFFF. ;; SA-LOOP L04FE: LD A,D ; fetch high byte OR E ; test against low byte. JR Z,L050E ; forward to SA-PARITY if zero. - LD L,(IX+$00) ; load currently addressed byte to L. + LD L,(IX+#00) ; load currently addressed byte to L. ;; SA-LOOP-P L0505: LD A,H ; fetch parity byte. @@ -1516,7 +1516,7 @@ L0505: LD A,H ; fetch parity byte. ;; SA-START L0507: LD H,A ; put parity byte in H. - LD A,$01 ; prepare blue, mic=on. + LD A,#01 ; prepare blue, mic=on. SCF ; set carry flag ready to rotate in. JP L0525 ; JUMP forward to SA-8-BITS -8-> @@ -1539,9 +1539,9 @@ L050E: LD L,H ; transfer the running parity byte to L and ;; SA-BIT-2 L0511: LD A,C ; fetch 'mic on and yellow' which is ; held permanently in C. - BIT 7,B ; set the zero flag. B holds $3E. + BIT 7,B ; set the zero flag. B holds #3E. -; entry point to save 1 entire bit. For first bit B holds $3B(*). +; entry point to save 1 entire bit. For first bit B holds #3B(*). ; Carry is set if saved bit is 1. zero is reset NZ on entry. ;; SA-BIT-1 @@ -1551,21 +1551,21 @@ L0514: DJNZ L0514 ; self loop for delay to SA-BIT-1 ; but if bit is 1 then the mic state is held for longer. - LD B,$42 ; set timed delay. (66 decimal) + LD B,#42 ; set timed delay. (66 decimal) ;; SA-SET L051A: DJNZ L051A ; self loop to SA-SET ; (roughly an extra 66*13 clock cycles) ;; SA-OUT -L051C: OUT ($FE),A ; blue and mic on OR yellow and mic off. +L051C: OUT (#FE),A ; blue and mic on OR yellow and mic off. - LD B,$3E ; set up delay + LD B,#3E ; set up delay JR NZ,L0511 ; back to SA-BIT-2 if zero reset NZ (first pass) ; proceed when the blue and yellow bands have been output. - DEC B ; change value $3E to $3D. + DEC B ; change value #3E to #3D. XOR A ; clear carry flag (ready to rotate in). INC A ; reset zero flag ie. NZ. @@ -1581,20 +1581,20 @@ L0525: RL L ; rotate left through carry DEC DE ; decrease length INC IX ; increase byte pointer - LD B,$31 ; set up timing. + LD B,#31 ; set up timing. - LD A,$7F ; test the space key and - IN A,($FE) ; return to common exit (to restore border) + LD A,#7F ; test the space key and + IN A,(#FE) ; return to common exit (to restore border) RRA ; if a space is pressed RET NC ; return to SA/LD-RET. - - > -; now test if byte counter has reached $FFFF. +; now test if byte counter has reached #FFFF. LD A,D ; fetch high byte INC A ; increment. JP NZ,L04FE ; JUMP to SA-LOOP if more bytes. - LD B,$3B ; a final delay. + LD B,#3B ; a final delay. ;; SA-DELAY L053C: DJNZ L053C ; self loop to SA-DELAY @@ -1612,16 +1612,16 @@ L053C: DJNZ L053C ; self loop to SA-DELAY ;; SA/LD-RET L053F: PUSH AF ; preserve accumulator throughout. - LD A,($5C48) ; fetch border colour from BORDCR. - AND $38 ; mask off paper bits. + LD A,(#5C48) ; fetch border colour from BORDCR. + AND #38 ; mask off paper bits. RRCA ; rotate RRCA ; to the RRCA ; range 0-7. - OUT ($FE),A ; change the border colour. + OUT (#FE),A ; change the border colour. - LD A,$7F ; read from port address $7FFE the - IN A,($FE) ; row with the space key at outside. + LD A,#7F ; read from port address #7FFE the + IN A,(#FE) ; row with the space key at outside. RRA ; test for space key pressed. EI ; enable interrupts @@ -1630,7 +1630,7 @@ L053F: PUSH AF ; preserve accumulator throughout. ;; REPORT-Da L0552: RST 08H ; ERROR-1 - DEFB $0C ; Error Report: BREAK - CONT repeats + DEFB #0C ; Error Report: BREAK - CONT repeats ; --- @@ -1641,8 +1641,8 @@ L0554: POP AF ; restore the accumulator. ; ------------------------------------ ; Load header or block of information ; ------------------------------------ -; This routine is used to load bytes and on entry A is set to $00 for a -; header or to $FF for data. IX points to the start of receiving location +; This routine is used to load bytes and on entry A is set to #00 for a +; header or to #FF for data. IX points to the start of receiving location ; and DE holds the length of bytes to be loaded. If, on entry the carry flag ; is set then data is loaded, if reset then it is verified. @@ -1653,8 +1653,8 @@ L0556: INC D ; reset the zero flag without disturbing carry. DI ; disable interrupts - LD A,$0F ; make the border white and mic off. - OUT ($FE),A ; output to port. + LD A,#0F ; make the border white and mic off. + OUT (#FE),A ; output to port. LD HL,L053F ; Address: SA/LD-RET PUSH HL ; is saved on stack as terminating routine. @@ -1662,10 +1662,10 @@ L0556: INC D ; reset the zero flag without disturbing carry. ; the reading of the EAR bit (D6) will always be preceded by a test of the ; space key (D0), so store the initial post-test state. - IN A,($FE) ; read the ear state - bit 6. + IN A,(#FE) ; read the ear state - bit 6. RRA ; rotate to bit 5. - AND $20 ; isolate this bit. - OR $02 ; combine with red border colour. + AND #20 ; isolate this bit. + OR #02 ; combine with red border colour. LD C,A ; and store initial state long-term in C. CP A ; set the zero flag. @@ -1681,7 +1681,7 @@ L056C: CALL L05E7 ; routine LD-EDGE-1 ; but continue when a transition is found on tape. - LD HL,$0415 ; set up 16-bit outer loop counter for + LD HL,#0415 ; set up 16-bit outer loop counter for ; approx 1 second delay. ;; LD-WAIT @@ -1700,11 +1700,11 @@ L0574: DJNZ L0574 ; self loop to LD-WAIT (for 256 times) ; if no edges at all. ;; LD-LEADER -L0580: LD B,$9C ; set timing value. +L0580: LD B,#9C ; set timing value. CALL L05E3 ; routine LD-EDGE-2 JR NC,L056B ; back to LD-BREAK if time-out - LD A,$C6 ; two edges must be spaced apart. + LD A,#C6 ; two edges must be spaced apart. CP B ; compare JR NC,L056C ; back to LD-START if too close together for a ; lead-in. @@ -1716,17 +1716,17 @@ L0580: LD B,$9C ; set timing value. ; Now test every edge looking for the terminal synch signal. ;; LD-SYNC -L058F: LD B,$C9 ; initial timing value in B. +L058F: LD B,#C9 ; initial timing value in B. CALL L05E7 ; routine LD-EDGE-1 JR NC,L056B ; back to LD-BREAK with time-out. LD A,B ; fetch augmented timing value from B. - CP $D4 ; compare + CP #D4 ; compare JR NC,L058F ; back to LD-SYNC if gap too big, that is, ; a normal lead-in edge gap. ; but a short gap will be the synch pulse. -; in which case another edge should appear before B rises to $FF +; in which case another edge should appear before B rises to #FF CALL L05E7 ; routine LD-EDGE-1 RET NC ; return with time-out. @@ -1735,12 +1735,12 @@ L058F: LD B,$C9 ; initial timing value in B. ; We are about to load data so change the border colours. LD A,C ; fetch long-term mask from C - XOR $03 ; and make blue/yellow. + XOR #03 ; and make blue/yellow. LD C,A ; store the new long-term byte. - LD H,$00 ; set up parity byte as zero. - LD B,$B0 ; timing. + LD H,#00 ; set up parity byte as zero. + LD B,#B0 ; timing. JR L05C8 ; forward to LD-MARKER ; the loop mid entry point with the alternate ; zero flag reset to indicate first byte @@ -1756,7 +1756,7 @@ L05A9: EX AF,AF' ; restore entry flags and type in A. JR NC,L05BD ; forward to LD-VERIFY if not to be loaded. - LD (IX+$00),L ; place loaded byte at memory location. + LD (IX+#00),L ; place loaded byte at memory location. JR L05C2 ; forward to LD-NEXT ; --- @@ -1782,7 +1782,7 @@ L05B3: RL C ; preserve carry (verify) flag in long-term ; for verification the byte read from tape is compared with that in memory. ;; LD-VERIFY -L05BD: LD A,(IX+$00) ; fetch byte from memory. +L05BD: LD A,(IX+#00) ; fetch byte from memory. XOR L ; compare with that on tape RET NZ ; return if not zero. @@ -1792,27 +1792,27 @@ L05C2: INC IX ; increment byte pointer. ;; LD-DEC L05C4: DEC DE ; decrement length. EX AF,AF' ; store the flags. - LD B,$B2 ; timing. + LD B,#B2 ; timing. ; when starting to read 8 bits the receiving byte is marked with bit at right. ; when this is rotated out again then 8 bits have been read. ;; LD-MARKER -L05C8: LD L,$01 ; initialize as %00000001 +L05C8: LD L,#01 ; initialize as %00000001 ;; LD-8-BITS L05CA: CALL L05E3 ; routine LD-EDGE-2 increments B relative to ; gap between 2 edges. RET NC ; return with time-out. - LD A,$CB ; the comparison byte. + LD A,#CB ; the comparison byte. CP B ; compare to incremented value of B. ; if B is higher then bit on tape was set. ; if <= then bit on tape is reset. RL L ; rotate the carry bit into L. - LD B,$B0 ; reset the B timer byte. + LD B,#B0 ; reset the B timer byte. JP NC,L05CA ; JUMP back to LD-8-BITS ; when carry set then marker bit has been passed out and byte is complete. @@ -1829,7 +1829,7 @@ L05CA: CALL L05E3 ; routine LD-EDGE-2 increments B relative to ; when all bytes loaded then parity byte should be zero. LD A,H ; fetch parity byte. - CP $01 ; set carry if zero. + CP #01 ; set carry if zero. RET ; return ; in no carry then error as checksum disagrees. @@ -1837,7 +1837,7 @@ L05CA: CALL L05E3 ; routine LD-EDGE-2 increments B relative to ; Check signal being loaded ; ------------------------- ; An edge is a transition from one mic state to another. -; More specifically a change in bit 6 of value input from port $FE. +; More specifically a change in bit 6 of value input from port #FE. ; Graphically it is a change of border colour, say, blue to yellow. ; The first entry point looks for two adjacent edges. The second entry point ; is used to find a single edge. @@ -1859,7 +1859,7 @@ L05E3: CALL L05E7 ; call routine LD-EDGE-1 below. ; when detecting a read-in signal on the tape. ;; LD-EDGE-1 -L05E7: LD A,$16 ; a delay value of twenty two. +L05E7: LD A,#16 ; a delay value of twenty two. ;; LD-DELAY L05E9: DEC A ; decrement counter @@ -1869,15 +1869,15 @@ L05E9: DEC A ; decrement counter ;; LD-SAMPLE L05ED: INC B ; increment the time-out counter. - RET Z ; return with failure when $FF passed. + RET Z ; return with failure when #FF passed. - LD A,$7F ; prepare to read keyboard and EAR port - IN A,($FE) ; row $7FFE. bit 6 is EAR, bit 0 is SPACE key. + LD A,#7F ; prepare to read keyboard and EAR port + IN A,(#FE) ; row #7FFE. bit 6 is EAR, bit 0 is SPACE key. RRA ; test outer key the space. (bit 6 moves to 5) RET NC ; return if space pressed. >>> XOR C ; compare with initial long-term state. - AND $20 ; isolate bit 5 + AND #20 ; isolate bit 5 JR Z,L05ED ; back to LD-SAMPLE if no edge. ; but an edge, a transition of the EAR bit, has been found so switch the @@ -1887,9 +1887,9 @@ L05ED: INC B ; increment the time-out counter. CPL ; switch the bits LD C,A ; and put back in C for long-term. - AND $07 ; isolate new colour bits. - OR $08 ; set bit 3 - MIC off. - OUT ($FE),A ; send to port to effect change of colour. + AND #07 ; isolate new colour bits. + OR #08 ; set bit 3 - MIC off. + OUT (#FE),A ; send to port to effect change of colour. SCF ; set carry flag signaling edge found within ; time allowed. @@ -1901,24 +1901,24 @@ L05ED: INC B ; increment the time-out counter. ; This is the single entry point for the four tape commands. ; The routine first determines in what context it has been called by examining ; the low byte of the Syntax table entry which was stored in T_ADDR. -; Subtracting $EO (the present arrangement) gives a value of -; $00 - SAVE -; $01 - LOAD -; $02 - VERIFY -; $03 - MERGE +; Subtracting #EO (the present arrangement) gives a value of +; #00 - SAVE +; #01 - LOAD +; #02 - VERIFY +; #03 - MERGE ; As with all commands the address STMT-RET is on the stack. ;; SAVE-ETC L0605: POP AF ; discard address STMT-RET. - LD A,($5C74) ; fetch T_ADDR + LD A,(#5C74) ; fetch T_ADDR ; Now reduce the low byte of the Syntax table entry to give command. -; Note. For ZASM use SUB $E0 as next instruction. +; Note. For ZASM use SUB #E0 as next instruction. L0609: SUB low (L1ADF + 1) ; subtract the known offset. - ; ( is SUB $E0 in standard ROM ) + ; ( is SUB #E0 in standard ROM ) - LD ($5C74),A ; and put back in T_ADDR as 0,1,2, or 3 + LD (#5C74),A ; and put back in T_ADDR as 0,1,2, or 3 ; for future reference. CALL L1C8C ; routine EXPT-EXP checks that a string @@ -1928,12 +1928,12 @@ L0609: SUB low (L1ADF + 1) ; subtract the known offset. CALL L2530 ; routine SYNTAX-Z JR Z,L0652 ; forward to SA-DATA if checking syntax. - LD BC,$0011 ; presume seventeen bytes for a header. - LD A,($5C74) ; fetch command from T_ADDR. + LD BC,#0011 ; presume seventeen bytes for a header. + LD A,(#5C74) ; fetch command from T_ADDR. AND A ; test for zero - SAVE. JR Z,L0621 ; forward to SA-SPACE if so. - LD C,$22 ; else double length to thirty four. + LD C,#22 ; else double length to thirty four. ;; SA-SPACE L0621: RST 30H ; BC-SPACES creates 17/34 bytes in workspace. @@ -1944,32 +1944,32 @@ L0621: RST 30H ; BC-SPACES creates 17/34 bytes in workspace. ; ten spaces are required for the default filename but it is simpler to ; overwrite the first file-type indicator byte as well. - LD B,$0B ; set counter to eleven. - LD A,$20 ; prepare a space. + LD B,#0B ; set counter to eleven. + LD A,#20 ; prepare a space. ;; SA-BLANK L0629: LD (DE),A ; set workspace location to space. INC DE ; next location. DJNZ L0629 ; loop back to SA-BLANK till all eleven done. - LD (IX+$01),$FF ; set first byte of ten character filename - ; to $FF as a default to signal null string. + LD (IX+#01),#FF ; set first byte of ten character filename + ; to #FF as a default to signal null string. CALL L2BF1 ; routine STK-FETCH fetches the filename ; parameters from the calculator stack. ; length of string in BC. ; start of string in DE. - LD HL,$FFF6 ; prepare the value minus ten. + LD HL,#FFF6 ; prepare the value minus ten. DEC BC ; decrement length. - ; ten becomes nine, zero becomes $FFFF. + ; ten becomes nine, zero becomes #FFFF. ADD HL,BC ; trial addition. INC BC ; restore true length. JR NC,L064B ; forward to SA-NAME if length is one to ten. ; the filename is more than ten characters in length or the null string. - LD A,($5C74) ; fetch command from T_ADDR. + LD A,(#5C74) ; fetch command from T_ADDR. AND A ; test for zero - SAVE. JR NZ,L0644 ; forward to SA-NULL if not the SAVE command. @@ -1980,7 +1980,7 @@ L0629: LD (DE),A ; set workspace location to space. ;; REPORT-Fa L0642: RST 08H ; ERROR-1 - DEFB $0E ; Error Report: Invalid file name + DEFB #0E ; Error Report: Invalid file name ; continue with LOAD, MERGE, VERIFY and also SAVE within ten character limit. @@ -1990,7 +1990,7 @@ L0644: LD A,B ; test length of filename JR Z,L0652 ; forward to SA-DATA if so using the 255 ; indicator followed by spaces. - LD BC,$000A ; else trim length to ten. + LD BC,#000A ; else trim length to ten. ; other paths rejoin here with BC holding length in range 1 - 10. @@ -2008,14 +2008,14 @@ L064B: PUSH IX ; push start of file descriptor. ;; SA-DATA L0652: RST 18H ; GET-CHAR - CP $E4 ; is character after filename the token 'DATA' ? + CP #E4 ; is character after filename the token 'DATA' ? JR NZ,L06A0 ; forward to SA-SCR$ to consider SCREEN$ if ; not. ; continue to consider DATA. - LD A,($5C74) ; fetch command from T_ADDR - CP $03 ; is it 'VERIFY' ? + LD A,(#5C74) ; fetch command from T_ADDR + CP #03 ; is it 'VERIFY' ? JP Z,L1C8A ; jump forward to REPORT-C if so. ; 'Nonsense in BASIC' ; VERIFY "d" DATA is not allowed. @@ -2031,8 +2031,8 @@ L0652: RST 18H ; GET-CHAR ; comes later. JR NC,L0672 ; forward to SA-V-OLD if variable found. - LD HL,$0000 ; set destination to zero as not fixed. - LD A,($5C74) ; fetch command from T_ADDR + LD HL,#0000 ; set destination to zero as not fixed. + LD A,(#5C74) ; fetch command from T_ADDR DEC A ; test for 1 - LOAD JR Z,L0685 ; forward to SA-V-NEW with LOAD DATA. ; to load a new array. @@ -2041,7 +2041,7 @@ L0652: RST 18H ; GET-CHAR ;; REPORT-2a L0670: RST 08H ; ERROR-1 - DEFB $01 ; Error Report: Variable not found + DEFB #01 ; Error Report: Variable not found ; continue with SAVE/LOAD DATA @@ -2056,28 +2056,28 @@ L0672: JP NZ,L1C8A ; to REPORT-C if not an array variable. INC HL ; step past single character variable name. LD A,(HL) ; fetch low byte of length. - LD (IX+$0B),A ; place in descriptor. + LD (IX+#0B),A ; place in descriptor. INC HL ; point to high byte. LD A,(HL) ; and transfer that - LD (IX+$0C),A ; to descriptor. + LD (IX+#0C),A ; to descriptor. INC HL ; increase pointer within variable. ;; SA-V-NEW -L0685: LD (IX+$0E),C ; place character array name in header. - LD A,$01 ; default to type numeric. +L0685: LD (IX+#0E),C ; place character array name in header. + LD A,#01 ; default to type numeric. BIT 6,C ; test result from look-vars. JR Z,L068F ; forward to SA-V-TYPE if numeric. INC A ; set type to 2 - string array. ;; SA-V-TYPE -L068F: LD (IX+$00),A ; place type 0, 1 or 2 in descriptor. +L068F: LD (IX+#00),A ; place type 0, 1 or 2 in descriptor. ;; SA-DATA-1 L0692: EX DE,HL ; save var pointer in DE RST 20H ; NEXT-CHAR - CP $29 ; is character ')' ? + CP #29 ; is character ')' ? JR NZ,L0672 ; back if not to SA-V-OLD to report ; 'Nonsense in BASIC' @@ -2092,11 +2092,11 @@ L0692: EX DE,HL ; save var pointer in DE ; the branch was here to consider a 'SCREEN$', the display file. ;; SA-SCR$ -L06A0: CP $AA ; is character the token 'SCREEN$' ? +L06A0: CP #AA ; is character the token 'SCREEN$' ? JR NZ,L06C3 ; forward to SA-CODE if not. - LD A,($5C74) ; fetch command from T_ADDR - CP $03 ; is it MERGE ? + LD A,(#5C74) ; fetch command from T_ADDR + CP #03 ; is it MERGE ? JP Z,L1C8A ; jump to REPORT-C if so. ; 'Nonsense in BASIC' @@ -2108,24 +2108,24 @@ L06A0: CP $AA ; is character the token 'SCREEN$' ? ; continue in runtime. - LD (IX+$0B),$00 ; set descriptor length - LD (IX+$0C),$1B ; to $1b00 to include bitmaps and attributes. + LD (IX+#0B),#00 ; set descriptor length + LD (IX+#0C),#1B ; to #1b00 to include bitmaps and attributes. - LD HL,$4000 ; set start to display file start. - LD (IX+$0D),L ; place start in - LD (IX+$0E),H ; the descriptor. + LD HL,#4000 ; set start to display file start. + LD (IX+#0D),L ; place start in + LD (IX+#0E),H ; the descriptor. JR L0710 ; forward to SA-TYPE-3 ; --- ; the branch was here to consider CODE. ;; SA-CODE -L06C3: CP $AF ; is character the token 'CODE' ? +L06C3: CP #AF ; is character the token 'CODE' ? JR NZ,L0716 ; forward if not to SA-LINE to consider an ; auto-started BASIC program. - LD A,($5C74) ; fetch command from T_ADDR - CP $03 ; is it MERGE ? + LD A,(#5C74) ; fetch command from T_ADDR + CP #03 ; is it MERGE ? JP Z,L1C8A ; jump forward to REPORT-C if so. ; 'Nonsense in BASIC' @@ -2135,7 +2135,7 @@ L06C3: CP $AF ; is character the token 'CODE' ? ; return or ':' follows. JR NZ,L06E1 ; forward to SA-CODE-1 if there are parameters. - LD A,($5C74) ; else fetch the command from T_ADDR. + LD A,(#5C74) ; else fetch the command from T_ADDR. AND A ; test for zero - SAVE without a specification. JP Z,L1C8A ; jump to REPORT-C if so. ; 'Nonsense in BASIC' @@ -2153,12 +2153,12 @@ L06E1: CALL L1C82 ; routine EXPT-1NUM checks for numeric ; expression and stacks it in run-time. RST 18H ; GET-CHAR - CP $2C ; does a comma follow ? + CP #2C ; does a comma follow ? JR Z,L06F5 ; forward if so to SA-CODE-3 ; else allow saved code to be loaded to a specified address. - LD A,($5C74) ; fetch command from T_ADDR. + LD A,(#5C74) ; fetch command from T_ADDR. AND A ; is the command SAVE which requires length ? JP Z,L1C8A ; jump to REPORT-C if so. ; 'Nonsense in BASIC' @@ -2186,16 +2186,16 @@ L06F9: CALL L1BEE ; routine CHECK-END errors with extraneous ; in run-time there are two 16-bit parameters on the calculator stack. CALL L1E99 ; routine FIND-INT2 gets length. - LD (IX+$0B),C ; place length - LD (IX+$0C),B ; in descriptor. + LD (IX+#0B),C ; place length + LD (IX+#0C),B ; in descriptor. CALL L1E99 ; routine FIND-INT2 gets start. - LD (IX+$0D),C ; place start - LD (IX+$0E),B ; in descriptor. + LD (IX+#0D),C ; place start + LD (IX+#0E),B ; in descriptor. LD H,B ; transfer the LD L,C ; start to HL also. ;; SA-TYPE-3 -L0710: LD (IX+$00),$03 ; place type 3 - code in descriptor. +L0710: LD (IX+#00),#03 ; place type 3 - code in descriptor. JR L075A ; forward to SA-ALL. ; --- @@ -2203,7 +2203,7 @@ L0710: LD (IX+$00),$03 ; place type 3 - code in descriptor. ; number. ;; SA-LINE -L0716: CP $CA ; is character the token 'LINE' ? +L0716: CP #CA ; is character the token 'LINE' ? JR Z,L0723 ; forward to SA-LINE-1 if so. ; else all possibilities have been considered and nothing must follow. @@ -2212,7 +2212,7 @@ L0716: CP $CA ; is character the token 'LINE' ? ; continue in run-time to save BASIC without auto-start. - LD (IX+$0E),$80 ; place high line number in descriptor to + LD (IX+#0E),#80 ; place high line number in descriptor to ; disable auto-start. JR L073A ; forward to SA-TYPE-0 to save program. @@ -2220,7 +2220,7 @@ L0716: CP $CA ; is character the token 'LINE' ? ; the branch was here to consider auto-start. ;; SA-LINE-1 -L0723: LD A,($5C74) ; fetch command from T_ADDR +L0723: LD A,(#5C74) ; fetch command from T_ADDR AND A ; test for SAVE. JP NZ,L1C8A ; jump forward to REPORT-C with anything else. ; 'Nonsense in BASIC' @@ -2233,8 +2233,8 @@ L0723: LD A,($5C74) ; fetch command from T_ADDR CALL L1BEE ; routine CHECK-END quits if syntax path. CALL L1E99 ; routine FIND-INT2 fetches the numeric ; expression. - LD (IX+$0D),C ; place the auto-start - LD (IX+$0E),B ; line number in the descriptor. + LD (IX+#0D),C ; place the auto-start + LD (IX+#0E),B ; line number in the descriptor. ; Note. this isn't checked, but is subsequently handled by the system. ; If the user typed 40000 instead of 4000 then it won't auto-start @@ -2243,23 +2243,23 @@ L0723: LD A,($5C74) ; fetch command from T_ADDR ; continue to save program and any variables. ;; SA-TYPE-0 -L073A: LD (IX+$00),$00 ; place type zero - program in descriptor. - LD HL,($5C59) ; fetch E_LINE to HL. - LD DE,($5C53) ; fetch PROG to DE. +L073A: LD (IX+#00),#00 ; place type zero - program in descriptor. + LD HL,(#5C59) ; fetch E_LINE to HL. + LD DE,(#5C53) ; fetch PROG to DE. SCF ; set carry flag to calculate from end of ; variables E_LINE -1. SBC HL,DE ; subtract to give total length. - LD (IX+$0B),L ; place total length - LD (IX+$0C),H ; in descriptor. - LD HL,($5C4B) ; load HL from system variable VARS + LD (IX+#0B),L ; place total length + LD (IX+#0C),H ; in descriptor. + LD HL,(#5C4B) ; load HL from system variable VARS SBC HL,DE ; subtract to give program length. - LD (IX+$0F),L ; place length of program - LD (IX+$10),H ; in the descriptor. + LD (IX+#0F),L ; place length of program + LD (IX+#10),H ; in the descriptor. EX DE,HL ; start to HL, length to DE. ;; SA-ALL -L075A: LD A,($5C74) ; fetch command from T_ADDR +L075A: LD A,(#5C74) ; fetch command from T_ADDR AND A ; test for zero - SAVE. JP Z,L0970 ; jump forward to SA-CONTRL with SAVE -> @@ -2267,12 +2267,12 @@ L075A: LD A,($5C74) ; fetch command from T_ADDR ; continue with LOAD, MERGE and VERIFY. PUSH HL ; save start. - LD BC,$0011 ; prepare to add seventeen + LD BC,#0011 ; prepare to add seventeen ADD IX,BC ; to point IX at second descriptor. ;; LD-LOOK-H L0767: PUSH IX ; save IX - LD DE,$0011 ; seventeen bytes + LD DE,#0011 ; seventeen bytes XOR A ; reset zero flag SCF ; set carry flag CALL L0556 ; routine LD-BYTES loads a header from tape @@ -2280,23 +2280,23 @@ L0767: PUSH IX ; save IX POP IX ; restore IX. JR NC,L0767 ; loop back to LD-LOOK-H until header found. - LD A,$FE ; select system channel 'S' + LD A,#FE ; select system channel 'S' CALL L1601 ; routine CHAN-OPEN opens it. - LD (IY+$52),$03 ; set SCR_CT to 3 lines. + LD (IY+#52),#03 ; set SCR_CT to 3 lines. - LD C,$80 ; C has bit 7 set to indicate type mismatch as + LD C,#80 ; C has bit 7 set to indicate type mismatch as ; a default startpoint. - LD A,(IX+$00) ; fetch loaded header type to A - CP (IX-$11) ; compare with expected type. + LD A,(IX+#00) ; fetch loaded header type to A + CP (IX-#11) ; compare with expected type. JR NZ,L078A ; forward to LD-TYPE with mis-match. - LD C,$F6 ; set C to minus ten - will count characters + LD C,#F6 ; set C to minus ten - will count characters ; up to zero. ;; LD-TYPE -L078A: CP $04 ; check if type in acceptable range 0 - 3. +L078A: CP #04 ; check if type in acceptable range 0 - 3. JR NC,L0767 ; back to LD-LOOK-H with 4 and over. ; else A indicates type 0-3. @@ -2309,9 +2309,9 @@ L078A: CP $04 ; check if type in acceptable range 0 - 3. PUSH IX ; transfer IX, POP DE ; the 2nd descriptor, to DE. - LD HL,$FFF0 ; prepare minus seventeen. + LD HL,#FFF0 ; prepare minus seventeen. ADD HL,DE ; add to point HL to 1st descriptor. - LD B,$0A ; the count will be ten characters for the + LD B,#0A ; the count will be ten characters for the ; filename. LD A,(HL) ; fetch first character and test for @@ -2322,8 +2322,8 @@ L078A: CP $04 ; check if type in acceptable range 0 - 3. ; match or -128 for a type mismatch. Although characters have to be counted ; bit 7 of C will not alter from state set here. - LD A,C ; transfer $F6 or $80 to A - ADD A,B ; add $0A + LD A,C ; transfer #F6 or #80 to A + ADD A,B ; add #0A LD C,A ; place result, zero or -118, in C. ; At this point we have either a type mismatch, a wildcard match or ten @@ -2350,25 +2350,25 @@ L07AD: RST 10H ; PRINT-A prints character ; else print a terminal carriage return. - LD A,$0D ; prepare carriage return. + LD A,#0D ; prepare carriage return. RST 10H ; PRINT-A outputs it. ; The various control routines for LOAD, VERIFY and MERGE are executed ; during the one-second gap following the header on tape. POP HL ; restore xx - LD A,(IX+$00) ; fetch incoming type - CP $03 ; compare with CODE + LD A,(IX+#00) ; fetch incoming type + CP #03 ; compare with CODE JR Z,L07CB ; forward to VR-CONTROL if it is CODE. ; type is a program or an array. - LD A,($5C74) ; fetch command from T_ADDR + LD A,(#5C74) ; fetch command from T_ADDR DEC A ; was it LOAD ? JP Z,L0808 ; JUMP forward to LD-CONTRL if so to ; load BASIC or variables. - CP $02 ; was command MERGE ? + CP #02 ; was command MERGE ? JP Z,L08B6 ; jump forward to ME-CONTRL if so. ; else continue into VERIFY control routine to verify. @@ -2382,10 +2382,10 @@ L07AD: RST 10H ; PRINT-A prints character ;; VR-CONTROL L07CB: PUSH HL ; save pointer to data. - LD L,(IX-$06) ; fetch length of old data - LD H,(IX-$05) ; to HL. - LD E,(IX+$0B) ; fetch length of new data - LD D,(IX+$0C) ; to DE. + LD L,(IX-#06) ; fetch length of old data + LD H,(IX-#05) ; to HL. + LD E,(IX+#0B) ; fetch length of new data + LD D,(IX+#0C) ; to DE. LD A,H ; check length of old OR L ; for zero. JR Z,L07E9 ; forward to VR-CONT-1 if length unspecified @@ -2402,8 +2402,8 @@ L07CB: PUSH HL ; save pointer to data. ; a length on tape shorter than expected is not allowed for CODE - LD A,(IX+$00) ; else fetch type from tape. - CP $03 ; is it CODE ? + LD A,(IX+#00) ; else fetch type from tape. + CP #03 ; is it CODE ? JR NZ,L0806 ; forward to REPORT-R if so ; 'Tape loading error' @@ -2413,14 +2413,14 @@ L07E9: POP HL ; pop pointer to data OR L ; e.g. LOAD 'x' CODE JR NZ,L07F4 ; forward to VR-CONT-2 if destination specified. - LD L,(IX+$0D) ; else use the destination in the header - LD H,(IX+$0E) ; and load code at address saved from. + LD L,(IX+#0D) ; else use the destination in the header + LD H,(IX+#0E) ; and load code at address saved from. ;; VR-CONT-2 L07F4: PUSH HL ; push pointer to start of data block. POP IX ; transfer to IX. - LD A,($5C74) ; fetch reduced command from T_ADDR - CP $02 ; is it VERIFY ? + LD A,(#5C74) ; fetch reduced command from T_ADDR + CP #02 ; is it VERIFY ? SCF ; prepare a set carry flag JR NZ,L0800 ; skip to VR-CONT-3 if not @@ -2428,13 +2428,13 @@ L07F4: PUSH HL ; push pointer to start of data block. ; data is not loaded. ;; VR-CONT-3 -L0800: LD A,$FF ; signal data block to be loaded +L0800: LD A,#FF ; signal data block to be loaded ; ----------------- ; Load a data block ; ----------------- ; This routine is called from 3 places other than above to load a data block. -; In all cases the accumulator is first set to $FF so the routine could be +; In all cases the accumulator is first set to #FF so the routine could be ; called at the previous instruction. ;; LD-BLOCK @@ -2444,7 +2444,7 @@ L0802: CALL L0556 ; routine LD-BYTES ;; REPORT-R L0806: RST 08H ; ERROR-1 - DEFB $1A ; Error Report: Tape loading error + DEFB #1A ; Error Report: Tape loading error ; ------------------- ; Handle LOAD control @@ -2452,8 +2452,8 @@ L0806: RST 08H ; ERROR-1 ; This branch is taken when the command is LOAD with type 0, 1 or 2. ;; LD-CONTRL -L0808: LD E,(IX+$0B) ; fetch length of found data block - LD D,(IX+$0C) ; from 2nd descriptor. +L0808: LD E,(IX+#0B) ; fetch length of found data block + LD D,(IX+#0C) ; from 2nd descriptor. PUSH HL ; save destination LD A,H ; test for zero OR L ; @@ -2468,15 +2468,15 @@ L0808: LD E,(IX+$0B) ; fetch length of found data block ; --- ;; LD-CONT-1 -L0819: LD L,(IX-$06) ; fetch length from - LD H,(IX-$05) ; the first header. +L0819: LD L,(IX-#06) ; fetch length from + LD H,(IX-#05) ; the first header. EX DE,HL ; SCF ; set carry flag SBC HL,DE ; JR C,L082E ; to LD-DATA ;; LD-CONT-2 -L0825: LD DE,$0005 ; allow overhead of five bytes. +L0825: LD DE,#0005 ; allow overhead of five bytes. ADD HL,DE ; add in the difference in data lengths. LD B,H ; transfer to LD C,L ; the BC register pair @@ -2484,7 +2484,7 @@ L0825: LD DE,$0005 ; allow overhead of five bytes. ;; LD-DATA L082E: POP HL ; pop destination - LD A,(IX+$00) ; fetch type 0, 1 or 2. + LD A,(IX+#00) ; fetch type 0, 1 or 2. AND A ; test for program and variables. JR Z,L0873 ; forward if so to LD-PROG @@ -2504,23 +2504,23 @@ L082E: POP HL ; pop destination INC BC ; adjust length to INC BC ; include these INC BC ; three bytes also. - LD ($5C5F),IX ; save header pointer in X_PTR. + LD (#5C5F),IX ; save header pointer in X_PTR. CALL L19E8 ; routine RECLAIM-2 reclaims the old variable ; sliding workspace including the two headers ; downwards. - LD IX,($5C5F) ; reload IX from X_PTR which will have been + LD IX,(#5C5F) ; reload IX from X_PTR which will have been ; adjusted down by POINTERS routine. ;; LD-DATA-1 -L084C: LD HL,($5C59) ; address E_LINE - DEC HL ; now point to the $80 variables end-marker. - LD C,(IX+$0B) ; fetch new data length - LD B,(IX+$0C) ; from 2nd header. +L084C: LD HL,(#5C59) ; address E_LINE + DEC HL ; now point to the #80 variables end-marker. + LD C,(IX+#0B) ; fetch new data length + LD B,(IX+#0C) ; from 2nd header. PUSH BC ; * save it. INC BC ; adjust the INC BC ; length to include INC BC ; letter name and total length. - LD A,(IX-$03) ; fetch letter name from old header. + LD A,(IX-#03) ; fetch letter name from old header. PUSH AF ; preserve accumulator though not corrupted. CALL L1655 ; routine MAKE-ROOM creates space for variable @@ -2539,7 +2539,7 @@ L084C: LD HL,($5C59) ; address E_LINE PUSH HL ; transfer address POP IX ; to IX register pair. SCF ; set carry flag indicating load not verify. - LD A,$FF ; signal data not header. + LD A,#FF ; signal data not header. JP L0802 ; JUMP back to LD-BLOCK ; ----------------- @@ -2547,11 +2547,11 @@ L084C: LD HL,($5C59) ; address E_LINE ;; LD-PROG L0873: EX DE,HL ; transfer dest to DE. - LD HL,($5C59) ; address E_LINE + LD HL,(#5C59) ; address E_LINE DEC HL ; now variables end-marker. - LD ($5C5F),IX ; place the IX header pointer in X_PTR - LD C,(IX+$0B) ; get new length - LD B,(IX+$0C) ; from 2nd header + LD (#5C5F),IX ; place the IX header pointer in X_PTR + LD C,(IX+#0B) ; get new length + LD B,(IX+#0C) ; from 2nd header PUSH BC ; and save it. CALL L19E5 ; routine RECLAIM-1 reclaims program and vars. @@ -2563,27 +2563,27 @@ L0873: EX DE,HL ; transfer dest to DE. CALL L1655 ; routine MAKE-ROOM creates the space. - LD IX,($5C5F) ; reload IX from adjusted X_PTR + LD IX,(#5C5F) ; reload IX from adjusted X_PTR INC HL ; point to start of new area. - LD C,(IX+$0F) ; fetch length of BASIC on tape - LD B,(IX+$10) ; from 2nd descriptor + LD C,(IX+#0F) ; fetch length of BASIC on tape + LD B,(IX+#10) ; from 2nd descriptor ADD HL,BC ; add to address the start of variables. - LD ($5C4B),HL ; set system variable VARS + LD (#5C4B),HL ; set system variable VARS - LD H,(IX+$0E) ; fetch high byte of autostart line number. + LD H,(IX+#0E) ; fetch high byte of autostart line number. LD A,H ; transfer to A - AND $C0 ; test if greater than $3F. + AND #C0 ; test if greater than #3F. JR NZ,L08AD ; forward to LD-PROG-1 if so with no autostart. - LD L,(IX+$0D) ; else fetch the low byte. - LD ($5C42),HL ; set sytem variable to line number NEWPPC - LD (IY+$0A),$00 ; set statement NSPPC to zero. + LD L,(IX+#0D) ; else fetch the low byte. + LD (#5C42),HL ; set sytem variable to line number NEWPPC + LD (IY+#0A),#00 ; set statement NSPPC to zero. ;; LD-PROG-1 L08AD: POP DE ; ** pop the length POP IX ; * and start. SCF ; set carry flag - LD A,$FF ; signal data as opposed to a header. + LD A,#FF ; signal data as opposed to a header. JP L0802 ; jump back to LD-BLOCK ; -------------------- @@ -2593,14 +2593,14 @@ L08AD: POP DE ; ** pop the length ; ;; ME-CONTRL -L08B6: LD C,(IX+$0B) ; fetch length - LD B,(IX+$0C) ; of data block on tape. +L08B6: LD C,(IX+#0B) ; fetch length + LD B,(IX+#0C) ; of data block on tape. PUSH BC ; save it. INC BC ; one for the pot. RST 30H ; BC-SPACES creates room in workspace. ; HL addresses last new location. - LD (HL),$80 ; place end-marker at end. + LD (HL),#80 ; place end-marker at end. EX DE,HL ; transfer first location to HL. POP DE ; restore length to DE. PUSH HL ; save start. @@ -2608,17 +2608,17 @@ L08B6: LD C,(IX+$0B) ; fetch length PUSH HL ; and transfer it POP IX ; to IX register. SCF ; set carry flag to load data on tape. - LD A,$FF ; signal data not a header. + LD A,#FF ; signal data not a header. CALL L0802 ; routine LD-BLOCK loads to workspace. POP HL ; restore first location in workspace to HL. -X08CE LD DE,($5C53) ; set DE from system variable PROG. +X08CE LD DE,(#5C53) ; set DE from system variable PROG. ; now enter a loop to merge the data block in workspace with the program and ; variables. ;; ME-NEW-LP L08D2: LD A,(HL) ; fetch next byte from workspace. - AND $C0 ; compare with $3F. + AND #C0 ; compare with #3F. JR NZ,L08F0 ; forward to ME-VAR-LP if a variable or ; end-marker. @@ -2661,15 +2661,15 @@ L08EB: CALL L092C ; routine ME-ENTER enters the line ;; ME-VAR-LP L08F0: LD A,(HL) ; fetch first byte of workspace variable. LD C,A ; copy to C also. - CP $80 ; is it the end-marker ? + CP #80 ; is it the end-marker ? RET Z ; return if so as complete. >>>>> PUSH HL ; save workspace area pointer. - LD HL,($5C4B) ; load HL with VARS - start of variables area. + LD HL,(#5C4B) ; load HL with VARS - start of variables area. ;; ME-OLD-VP L08F9: LD A,(HL) ; fetch first byte. - CP $80 ; is it the end-marker ? + CP #80 ; is it the end-marker ? JR Z,L0923 ; forward if so to ME-VAR-L2 to add ; variable at end of variables area. @@ -2690,8 +2690,8 @@ L0901: PUSH BC ; save character in C. ; the branch was here when first characters of name matched. ;; ME-OLD-V2 -L0909: AND $E0 ; keep bits 11100000 - CP $A0 ; compare 10100000 - a long-named variable. +L0909: AND #E0 ; keep bits 11100000 + CP #A0 ; compare 10100000 - a long-named variable. JR NZ,L0921 ; forward to ME-VAR-L1 if just one-character. @@ -2727,9 +2727,9 @@ L091E: POP HL ; restore the prog/vars pointer. ; branch here when variable is to replace an existing one ;; ME-VAR-L1 -L0921: LD A,$FF ; indicate a replacement. +L0921: LD A,#FF ; indicate a replacement. -; this entry point is when A holds $80 indicating a new variable. +; this entry point is when A holds #80 indicating a new variable. ;; ME-VAR-L2 L0923: POP DE ; pop workspace pointer. @@ -2752,13 +2752,13 @@ L092C: JR NZ,L093E ; forward to ME-ENT-1 for insertion only. ; but the program line or variable matches so old one is reclaimed. EX AF,AF' ; save flag?? - LD ($5C5F),HL ; preserve workspace pointer in dynamic X_PTR + LD (#5C5F),HL ; preserve workspace pointer in dynamic X_PTR EX DE,HL ; transfer program dest pointer to HL. CALL L19B8 ; routine NEXT-ONE finds following location ; in program or variables area. CALL L19E8 ; routine RECLAIM-2 reclaims the space between. EX DE,HL ; transfer program dest pointer back to DE. - LD HL,($5C5F) ; fetch adjusted workspace pointer from X_PTR + LD HL,(#5C5F) ; fetch adjusted workspace pointer from X_PTR EX AF,AF' ; restore flags. ; now the new line or variable is entered. @@ -2769,8 +2769,8 @@ L093E: EX AF,AF' ; save or re-save flags. CALL L19B8 ; routine NEXT-ONE finds next in workspace. ; gets next in DE, difference in BC. ; prev addr in HL - LD ($5C5F),HL ; store pointer in X_PTR - LD HL,($5C53) ; load HL from system variable PROG + LD (#5C5F),HL ; store pointer in X_PTR + LD HL,(#5C53) ; load HL from system variable PROG EX (SP),HL ; swap with prog/vars pointer on stack. PUSH BC ; ** save length of new program line/variable. EX AF,AF' ; fetch flags back. @@ -2792,8 +2792,8 @@ L0958: INC HL ; address next? POP BC ; ** pop length POP DE ; * pop value for PROG which may have been ; altered by POINTERS if first line. - LD ($5C53),DE ; set PROG to original value. - LD DE,($5C5F) ; fetch adjusted workspace pointer from X_PTR + LD (#5C53),DE ; set PROG to original value. + LD DE,(#5C5F) ; fetch adjusted workspace pointer from X_PTR PUSH BC ; save length PUSH DE ; and workspace pointer EX DE,HL ; make workspace pointer source, prog/vars @@ -2821,7 +2821,7 @@ L0958: INC HL ; address next? ;; SA-CONTRL L0970: PUSH HL ; save start of data - LD A,$FD ; select system channel 'S' + LD A,#FD ; select system channel 'S' CALL L1601 ; routine CHAN-OPEN XOR A ; clear to address table directly @@ -2829,27 +2829,27 @@ L0970: PUSH HL ; save start of data CALL L0C0A ; routine PO-MSG - ; 'Start tape then press any key.' - SET 5,(IY+$02) ; TV_FLAG - Signal lower screen requires + SET 5,(IY+#02) ; TV_FLAG - Signal lower screen requires ; clearing CALL L15D4 ; routine WAIT-KEY PUSH IX ; save pointer to descriptor. - LD DE,$0011 ; there are seventeen bytes. + LD DE,#0011 ; there are seventeen bytes. XOR A ; signal a header. CALL L04C2 ; routine SA-BYTES POP IX ; restore descriptor pointer. - LD B,$32 ; wait for a second - 50 interrupts. + LD B,#32 ; wait for a second - 50 interrupts. ;; SA-1-SEC L0991: HALT ; wait for interrupt DJNZ L0991 ; back to SA-1-SEC until pause complete. - LD E,(IX+$0B) ; fetch length of bytes from the - LD D,(IX+$0C) ; descriptor. + LD E,(IX+#0B) ; fetch length of bytes from the + LD D,(IX+#0C) ; descriptor. - LD A,$FF ; signal data bytes. + LD A,#FF ; signal data bytes. POP IX ; retrieve pointer to start JP L04C2 ; jump back to SA-BYTES @@ -2862,23 +2862,23 @@ L0991: HALT ; wait for interrupt ; OLD NEW PROG DATA DATA CODE ; HEADER HEADER num chr NOTES. ; ------ ------ ---- ---- ---- ---- ----------------------------- -; IX-$11 IX+$00 0 1 2 3 Type. -; IX-$10 IX+$01 x x x x F ($FF if filename is null). -; IX-$0F IX+$02 x x x x i -; IX-$0E IX+$03 x x x x l -; IX-$0D IX+$04 x x x x e -; IX-$0C IX+$05 x x x x n -; IX-$0B IX+$06 x x x x a -; IX-$0A IX+$07 x x x x m -; IX-$09 IX+$08 x x x x e -; IX-$08 IX+$09 x x x x . -; IX-$07 IX+$0A x x x x (terminal spaces). -; IX-$06 IX+$0B lo lo lo lo Total -; IX-$05 IX+$0C hi hi hi hi Length of datablock. -; IX-$04 IX+$0D Auto - - Start Various -; IX-$03 IX+$0E Start a-z a-z addr ($80 if no autostart). -; IX-$02 IX+$0F lo - - - Length of Program -; IX-$01 IX+$10 hi - - - only i.e. without variables. +; IX-#11 IX+#00 0 1 2 3 Type. +; IX-#10 IX+#01 x x x x F (#FF if filename is null). +; IX-#0F IX+#02 x x x x i +; IX-#0E IX+#03 x x x x l +; IX-#0D IX+#04 x x x x e +; IX-#0C IX+#05 x x x x n +; IX-#0B IX+#06 x x x x a +; IX-#0A IX+#07 x x x x m +; IX-#09 IX+#08 x x x x e +; IX-#08 IX+#09 x x x x . +; IX-#07 IX+#0A x x x x (terminal spaces). +; IX-#06 IX+#0B lo lo lo lo Total +; IX-#05 IX+#0C hi hi hi hi Length of datablock. +; IX-#04 IX+#0D Auto - - Start Various +; IX-#03 IX+#0E Start a-z a-z addr (#80 if no autostart). +; IX-#02 IX+#0F lo - - - Length of Program +; IX-#01 IX+#10 hi - - - only i.e. without variables. ; @@ -2889,21 +2889,21 @@ L0991: HALT ; wait for interrupt ; Starts with normal initial step-over byte. ;; tape-msgs -L09A1: DEFB $80 +L09A1: DEFB #80 DEFM "Start tape, then press any key" -L09C0: DEFB '.'+$80 - DEFB $0D +L09C0: DEFB '.'+#80 + DEFB #0D DEFM "Program:" - DEFB ' '+$80 - DEFB $0D + DEFB ' '+#80 + DEFB #0D DEFM "Number array:" - DEFB ' '+$80 - DEFB $0D + DEFB ' '+#80 + DEFB #0D DEFM "Character array:" - DEFB ' '+$80 - DEFB $0D + DEFB ' '+#80 + DEFB #0D DEFM "Bytes:" - DEFB ' '+$80 + DEFB ' '+#80 ;************************************************** @@ -2920,19 +2920,19 @@ L09C0: DEFB '.'+$80 ;; PRINT-OUT L09F4: CALL L0B03 ; routine PO-FETCH fetches print position ; to HL register pair. - CP $20 ; is character a space or higher ? + CP #20 ; is character a space or higher ? JP NC,L0AD9 ; jump forward to PO-ABLE if so. - CP $06 ; is character in range 00-05 ? + CP #06 ; is character in range 00-05 ? JR C,L0A69 ; to PO-QUEST to print '?' if so. - CP $18 ; is character in range 24d - 31d ? + CP #18 ; is character in range 24d - 31d ? JR NC,L0A69 ; to PO-QUEST to also print '?' if so. LD HL,L0A11 - 6 ; address 0A0B - the base address of control ; character table - where zero would be. LD E,A ; control character 06 - 23d - LD D,$00 ; is transferred to DE. + LD D,#00 ; is transferred to DE. ADD HL,DE ; index into table. @@ -2951,24 +2951,24 @@ L09F4: CALL L0B03 ; routine PO-FETCH fetches print position ; follows the table. ;; ctlchrtab -L0A11: DEFB L0A5F - $ ; 06d offset $4E to Address: PO-COMMA - DEFB L0A69 - $ ; 07d offset $57 to Address: PO-QUEST - DEFB L0A23 - $ ; 08d offset $10 to Address: PO-BACK-1 - DEFB L0A3D - $ ; 09d offset $29 to Address: PO-RIGHT - DEFB L0A69 - $ ; 10d offset $54 to Address: PO-QUEST - DEFB L0A69 - $ ; 11d offset $53 to Address: PO-QUEST - DEFB L0A69 - $ ; 12d offset $52 to Address: PO-QUEST - DEFB L0A4F - $ ; 13d offset $37 to Address: PO-ENTER - DEFB L0A69 - $ ; 14d offset $50 to Address: PO-QUEST - DEFB L0A69 - $ ; 15d offset $4F to Address: PO-QUEST - DEFB L0A7A - $ ; 16d offset $5F to Address: PO-1-OPER - DEFB L0A7A - $ ; 17d offset $5E to Address: PO-1-OPER - DEFB L0A7A - $ ; 18d offset $5D to Address: PO-1-OPER - DEFB L0A7A - $ ; 19d offset $5C to Address: PO-1-OPER - DEFB L0A7A - $ ; 20d offset $5B to Address: PO-1-OPER - DEFB L0A7A - $ ; 21d offset $5A to Address: PO-1-OPER - DEFB L0A75 - $ ; 22d offset $54 to Address: PO-2-OPER - DEFB L0A75 - $ ; 23d offset $53 to Address: PO-2-OPER +L0A11: DEFB L0A5F - $ ; 06d offset #4E to Address: PO-COMMA + DEFB L0A69 - $ ; 07d offset #57 to Address: PO-QUEST + DEFB L0A23 - $ ; 08d offset #10 to Address: PO-BACK-1 + DEFB L0A3D - $ ; 09d offset #29 to Address: PO-RIGHT + DEFB L0A69 - $ ; 10d offset #54 to Address: PO-QUEST + DEFB L0A69 - $ ; 11d offset #53 to Address: PO-QUEST + DEFB L0A69 - $ ; 12d offset #52 to Address: PO-QUEST + DEFB L0A4F - $ ; 13d offset #37 to Address: PO-ENTER + DEFB L0A69 - $ ; 14d offset #50 to Address: PO-QUEST + DEFB L0A69 - $ ; 15d offset #4F to Address: PO-QUEST + DEFB L0A7A - $ ; 16d offset #5F to Address: PO-1-OPER + DEFB L0A7A - $ ; 17d offset #5E to Address: PO-1-OPER + DEFB L0A7A - $ ; 18d offset #5D to Address: PO-1-OPER + DEFB L0A7A - $ ; 19d offset #5C to Address: PO-1-OPER + DEFB L0A7A - $ ; 20d offset #5B to Address: PO-1-OPER + DEFB L0A7A - $ ; 21d offset #5A to Address: PO-1-OPER + DEFB L0A75 - $ ; 22d offset #54 to Address: PO-2-OPER + DEFB L0A75 - $ ; 23d offset #53 to Address: PO-2-OPER ; ------------------- @@ -2979,27 +2979,27 @@ L0A11: DEFB L0A5F - $ ; 06d offset $4E to Address: PO-COMMA ;; PO-BACK-1 L0A23: INC C ; move left one column. - LD A,$22 ; value $21 is leftmost column. + LD A,#22 ; value #21 is leftmost column. CP C ; have we passed ? JR NZ,L0A3A ; to PO-BACK-3 if not and store new position. - BIT 1,(IY+$01) ; test FLAGS - is printer in use ? + BIT 1,(IY+#01) ; test FLAGS - is printer in use ? JR NZ,L0A38 ; to PO-BACK-2 if so, as we are unable to ; backspace from the leftmost position. INC B ; move up one screen line - LD C,$02 ; the rightmost column position. - LD A,$18 ; Note. This should be $19 + LD C,#02 ; the rightmost column position. + LD A,#18 ; Note. This should be #19 ; credit. Dr. Frank O'Hara, 1982 CP B ; has position moved past top of screen ? JR NZ,L0A3A ; to PO-BACK-3 if not and store new position. - DEC B ; else back to $18. + DEC B ; else back to #18. ;; PO-BACK-2 -L0A38: LD C,$21 ; the leftmost column position. +L0A38: LD C,#21 ; the leftmost column position. ;; PO-BACK-3 L0A3A: JP L0DD9 ; to CL-SET and PO-STORE to save new @@ -3018,17 +3018,17 @@ L0A3A: JP L0DD9 ; to CL-SET and PO-STORE to save new ; - Dr. Ian Logan, Understanding Your Spectrum, 1982. ;; PO-RIGHT -L0A3D: LD A,($5C91) ; fetch P_FLAG value +L0A3D: LD A,(#5C91) ; fetch P_FLAG value PUSH AF ; and save it on stack. - LD (IY+$57),$01 ; temporarily set P_FLAG 'OVER 1'. - LD A,$20 ; prepare a space. + LD (IY+#57),#01 ; temporarily set P_FLAG 'OVER 1'. + LD A,#20 ; prepare a space. CALL L0B65 ; routine PO-CHAR to print it. ; Note. could be PO-ABLE which would update ; the column position. POP AF ; restore the permanent flag. - LD ($5C91),A ; and restore system variable P_FLAG + LD (#5C91),A ; and restore system variable P_FLAG RET ; return without updating column position @@ -3038,11 +3038,11 @@ L0A3D: LD A,($5C91) ; fetch P_FLAG value ; A carriage return is 'printed' to screen or printer buffer. ;; PO-ENTER -L0A4F: BIT 1,(IY+$01) ; test FLAGS - is printer in use ? +L0A4F: BIT 1,(IY+#01) ; test FLAGS - is printer in use ? JP NZ,L0ECD ; to COPY-BUFF if so, to flush buffer and reset ; the print position. - LD C,$21 ; the leftmost column position. + LD C,#21 ; the leftmost column position. CALL L0C55 ; routine PO-SCR handles any scrolling required. DEC B ; to next screen line. JP L0DD9 ; jump forward to CL-SET to store new position. @@ -3056,10 +3056,10 @@ L0A4F: BIT 1,(IY+$01) ; test FLAGS - is printer in use ? ;; PO-COMMA L0A5F: CALL L0B03 ; routine PO-FETCH - seems unnecessary. - LD A,C ; the column position. $21-$01 - DEC A ; move right. $20-$00 - DEC A ; and again $1F-$00 or $FF if trailing - AND $10 ; will be $00 or $10. + LD A,C ; the column position. #21-#01 + DEC A ; move right. #20-#00 + DEC A ; and again #1F-#00 or #FF if trailing + AND #10 ; will be #00 or #10. JR L0AC3 ; forward to PO-FILL ; ------------------- @@ -3070,7 +3070,7 @@ L0A5F: CALL L0B03 ; routine PO-FETCH - seems unnecessary. ; there are a surprising number yet to be assigned. ;; PO-QUEST -L0A69: LD A,$3F ; prepare the character '?'. +L0A69: LD A,#3F ; prepare the character '?'. JR L0AD9 ; forward to PO-ABLE. ; -------------------------------- @@ -3079,12 +3079,12 @@ L0A69: LD A,$3F ; prepare the character '?'. ; Certain control characters are followed by 1 or 2 operands. ; The entry points from control character table are PO-2-OPER and PO-1-OPER. ; The routines alter the output address of the current channel so that -; subsequent RST $10 instructions take the appropriate action +; subsequent RST #10 instructions take the appropriate action ; before finally resetting the output address back to PRINT-OUT. ;; PO-TV-2 L0A6D: LD DE,L0A87 ; address: PO-CONT will be next output routine - LD ($5C0F),A ; store first operand in TVDATA-hi + LD (#5C0F),A ; store first operand in TVDATA-hi JR L0A80 ; forward to PO-CHANGE >> ; --- @@ -3103,10 +3103,10 @@ L0A75: LD DE,L0A6D ; address: PO-TV-2 will be next output routine L0A7A: LD DE,L0A87 ; address: PO-CONT will be next output routine ;; PO-TV-1 -L0A7D: LD ($5C0E),A ; store control code in TVDATA-lo +L0A7D: LD (#5C0E),A ; store control code in TVDATA-lo ;; PO-CHANGE -L0A80: LD HL,($5C51) ; use CURCHL to find current output channel. +L0A80: LD HL,(#5C51) ; use CURCHL to find current output channel. LD (HL),E ; make it INC HL ; the supplied LD (HL),D ; address from DE. @@ -3117,11 +3117,11 @@ L0A80: LD HL,($5C51) ; use CURCHL to find current output channel. ;; PO-CONT L0A87: LD DE,L09F4 ; Address: PRINT-OUT CALL L0A80 ; routine PO-CHANGE to restore normal channel. - LD HL,($5C0E) ; TVDATA gives control code and possible + LD HL,(#5C0E) ; TVDATA gives control code and possible ; subsequent character LD D,A ; save current character LD A,L ; the stored control code - CP $16 ; was it INK to OVER (1 operand) ? + CP #16 ; was it INK to OVER (1 operand) ? JP C,L2211 ; to CO-TEMP-5 JR NZ,L0AC2 ; to PO-TAB if not 22d i.e. 23d TAB. @@ -3129,17 +3129,17 @@ L0A87: LD DE,L09F4 ; Address: PRINT-OUT ; else must have been 22d AT. LD B,H ; line to H (0-23d) LD C,D ; column to C (0-31d) - LD A,$1F ; the value 31d + LD A,#1F ; the value 31d SUB C ; reverse the column number. JR C,L0AAC ; to PO-AT-ERR if C was greater than 31d. - ADD A,$02 ; transform to system range $02-$21 + ADD A,#02 ; transform to system range #02-#21 LD C,A ; and place in column register. - BIT 1,(IY+$01) ; test FLAGS - is printer in use ? + BIT 1,(IY+#01) ; test FLAGS - is printer in use ? JR NZ,L0ABF ; to PO-AT-SET as line can be ignored. - LD A,$16 ; 22 decimal + LD A,#16 ; 22 decimal SUB B ; subtract line number to reverse ; 0 - 22 becomes 22 - 0. @@ -3147,13 +3147,13 @@ L0A87: LD DE,L09F4 ; Address: PRINT-OUT L0AAC: JP C,L1E9F ; to REPORT-B if higher than 22 decimal ; Integer out of range. - INC A ; adjust for system range $01-$17 + INC A ; adjust for system range #01-#17 LD B,A ; place in line register - INC B ; adjust to system range $02-$18 - BIT 0,(IY+$02) ; TV_FLAG - Lower screen in use ? + INC B ; adjust to system range #02-#18 + BIT 0,(IY+#02) ; TV_FLAG - Lower screen in use ? JP NZ,L0C55 ; exit to PO-SCR to test for scrolling - CP (IY+$31) ; Compare against DF_SZ + CP (IY+#31) ; Compare against DF_SZ JP C,L0C86 ; to REPORT-5 if too low ; Out of screen. @@ -3172,17 +3172,17 @@ L0AC2: LD A,H ; transfer parameter to A ;; PO-FILL L0AC3: CALL L0B03 ; routine PO-FETCH, HL-addr, BC=line/column. - ; column 1 (right), $21 (left) + ; column 1 (right), #21 (left) ADD A,C ; add operand to current column DEC A ; range 0 - 31+ - AND $1F ; make range 0 - 31d + AND #1F ; make range 0 - 31d RET Z ; return if result zero LD D,A ; Counter to D - SET 0,(IY+$01) ; update FLAGS - signal suppress leading space. + SET 0,(IY+#01) ; update FLAGS - signal suppress leading space. ;; PO-SPACE -L0AD0: LD A,$20 ; space character. +L0AD0: LD A,#20 ; space character. CALL L0C3B ; routine PO-SAVE prints the character ; using alternate set (normal output routine) DEC D ; decrement counter. @@ -3207,29 +3207,29 @@ L0AD9: CALL L0B24 ; routine PO-ANY ; The main screen, lower screen/input buffer or ZX printer. ;; PO-STORE -L0ADC: BIT 1,(IY+$01) ; test FLAGS - Is printer in use ? +L0ADC: BIT 1,(IY+#01) ; test FLAGS - Is printer in use ? JR NZ,L0AFC ; to PO-ST-PR if so - BIT 0,(IY+$02) ; TV_FLAG - Lower screen in use ? + BIT 0,(IY+#02) ; TV_FLAG - Lower screen in use ? JR NZ,L0AF0 ; to PO-ST-E if so - LD ($5C88),BC ; S_POSN line/column upper screen - LD ($5C84),HL ; DF_CC display file address + LD (#5C88),BC ; S_POSN line/column upper screen + LD (#5C84),HL ; DF_CC display file address RET ; ; --- ;; PO-ST-E -L0AF0: LD ($5C8A),BC ; SPOSNL line/column lower screen - LD ($5C82),BC ; ECHO_E line/column input buffer - LD ($5C86),HL ; DFCCL lower screen memory address +L0AF0: LD (#5C8A),BC ; SPOSNL line/column lower screen + LD (#5C82),BC ; ECHO_E line/column input buffer + LD (#5C86),HL ; DFCCL lower screen memory address RET ; ; --- ;; PO-ST-PR -L0AFC: LD (IY+$45),C ; P_POSN column position printer - LD ($5C80),HL ; PR_CC full printer buffer memory address +L0AFC: LD (IY+#45),C ; P_POSN column position printer + LD (#5C80),HL ; PR_CC full printer buffer memory address RET ; ; ------------------------- @@ -3244,25 +3244,25 @@ L0AFC: LD (IY+$45),C ; P_POSN column position printer ; to the printer buffer could corrupt a 256-byte section of memory. ;; PO-FETCH -L0B03: BIT 1,(IY+$01) ; test FLAGS - Is printer in use +L0B03: BIT 1,(IY+#01) ; test FLAGS - Is printer in use JR NZ,L0B1D ; to PO-F-PR if so ; assume upper screen - LD BC,($5C88) ; S_POSN - LD HL,($5C84) ; DF_CC display file address - BIT 0,(IY+$02) ; TV_FLAG - Lower screen in use ? + LD BC,(#5C88) ; S_POSN + LD HL,(#5C84) ; DF_CC display file address + BIT 0,(IY+#02) ; TV_FLAG - Lower screen in use ? RET Z ; return if upper screen ; ah well, was lower screen - LD BC,($5C8A) ; SPOSNL - LD HL,($5C86) ; DFCCL + LD BC,(#5C8A) ; SPOSNL + LD HL,(#5C86) ; DFCCL RET ; return ; --- ;; PO-F-PR -L0B1D: LD C,(IY+$45) ; P_POSN column only - LD HL,($5C80) ; PR_CC printer buffer address +L0B1D: LD C,(IY+#45) ; P_POSN column only + LD HL,(#5C80) ; PR_CC printer buffer address RET ; return ; ------------------- @@ -3272,10 +3272,10 @@ L0B1D: LD C,(IY+$45) ; P_POSN column only ; It is only called from PO-ABLE which continues into PO-STORE ;; PO-ANY -L0B24: CP $80 ; ASCII ? +L0B24: CP #80 ; ASCII ? JR C,L0B65 ; to PO-CHAR is so. - CP $90 ; test if a block graphic character. + CP #90 ; test if a block graphic character. JR NC,L0B52 ; to PO-T&UDG to print tokens and udg's ; The 16 2*2 mosaic characters 128-143 decimal are formed from @@ -3285,13 +3285,13 @@ L0B24: CP $80 ; ASCII ? CALL L0B38 ; routine PO-GR-1 to construct top half ; then bottom half. CALL L0B03 ; routine PO-FETCH fetches print position. - LD DE,$5C92 ; MEM-0 is location of 8 bytes of character + LD DE,#5C92 ; MEM-0 is location of 8 bytes of character JR L0B7F ; to PR-ALL to print to screen or printer ; --- ;; PO-GR-1 -L0B38: LD HL,$5C92 ; address MEM-0 - a temporary buffer in +L0B38: LD HL,#5C92 ; address MEM-0 - a temporary buffer in ; systems variables which is normally used ; by the calculator. CALL L0B3E ; routine PO-GR-2 to construct top half @@ -3300,14 +3300,14 @@ L0B38: LD HL,$5C92 ; address MEM-0 - a temporary buffer in ;; PO-GR-2 L0B3E: RR B ; rotate bit 0/2 to carry - SBC A,A ; result $00 or $FF - AND $0F ; mask off right hand side + SBC A,A ; result #00 or #FF + AND #0F ; mask off right hand side LD C,A ; store part in C RR B ; rotate bit 1/3 of original chr to carry - SBC A,A ; result $00 or $FF - AND $F0 ; mask off left hand side + SBC A,A ; result #00 or #FF + AND #F0 ; mask off left hand side OR C ; combine with stored pattern - LD C,$04 ; four bytes for top/bottom half + LD C,#04 ; four bytes for top/bottom half ;; PO-GR-3 L0B4C: LD (HL),A ; store bit patterns in temporary buffer @@ -3325,9 +3325,9 @@ L0B4C: LD (HL),A ; store bit patterns in temporary buffer L0B52: JP L3B9F ;Spectrum 128 patch NOP -L0B56: ADD A,$15 ; add 21d to restore to 0 - 20 +L0B56: ADD A,#15 ; add 21d to restore to 0 - 20 PUSH BC ; save current print position - LD BC,($5C7B) ; fetch UDG to address bit patterns + LD BC,(#5C7B) ; fetch UDG to address bit patterns JR L0B6A ; to PO-CHAR-2 - common code to lay down ; a bit patterned character @@ -3343,21 +3343,21 @@ L0B5F: CALL L0C10 ; routine PO-TOKENS prints tokens ;; PO-CHAR L0B65: PUSH BC ; save print position - LD BC,($5C36) ; address CHARS + LD BC,(#5C36) ; address CHARS ; This common code is used to transfer the character bytes to memory. ;; PO-CHAR-2 L0B6A: EX DE,HL ; transfer destination address to DE - LD HL,$5C3B ; point to FLAGS + LD HL,#5C3B ; point to FLAGS RES 0,(HL) ; allow for leading space - CP $20 ; is it a space ? + CP #20 ; is it a space ? JR NZ,L0B76 ; to PO-CHAR-3 if not SET 0,(HL) ; signal no leading space to FLAGS ;; PO-CHAR-3 -L0B76: LD H,$00 ; set high byte to 0 +L0B76: LD H,#00 ; set high byte to 0 LD L,A ; character to A ; 0-21 UDG or 32-127 ASCII. ADD HL,HL ; multiply @@ -3379,18 +3379,18 @@ L0B76: LD H,$00 ; set high byte to 0 ;; PR-ALL L0B7F: LD A,C ; column to A DEC A ; move right - LD A,$21 ; pre-load with leftmost position + LD A,#21 ; pre-load with leftmost position JR NZ,L0B93 ; but if not zero to PR-ALL-1 DEC B ; down one line - LD C,A ; load C with $21 - BIT 1,(IY+$01) ; test FLAGS - Is printer in use + LD C,A ; load C with #21 + BIT 1,(IY+#01) ; test FLAGS - Is printer in use JR Z,L0B93 ; to PR-ALL-1 if not PUSH DE ; save source address CALL L0ECD ; routine COPY-BUFF outputs line to printer POP DE ; restore character source address - LD A,C ; the new column number ($21) to C + LD A,C ; the new column number (#21) to C ;; PR-ALL-1 L0B93: CP C ; this test is really for screen - new line ? @@ -3401,8 +3401,8 @@ L0B93: CP C ; this test is really for screen - new line ? POP DE ; restore source PUSH BC ; save line/column PUSH HL ; and destination - LD A,($5C91) ; fetch P_FLAG to accumulator - LD B,$FF ; prepare OVER mask in B. + LD A,(#5C91) ; fetch P_FLAG to accumulator + LD B,#FF ; prepare OVER mask in B. RRA ; bit 0 set if OVER 1 JR C,L0BA4 ; to PR-ALL-2 @@ -3413,12 +3413,12 @@ L0BA4: RRA ; skip bit 1 of P_FLAG RRA ; bit 2 is INVERSE SBC A,A ; will be FF for INVERSE 1 else zero LD C,A ; transfer INVERSE mask to C - LD A,$08 ; prepare to count 8 bytes + LD A,#08 ; prepare to count 8 bytes AND A ; clear carry to signal screen - BIT 1,(IY+$01) ; test FLAGS - is printer in use ? + BIT 1,(IY+#01) ; test FLAGS - is printer in use ? JR Z,L0BB6 ; to PR-ALL-3 if screen - SET 1,(IY+$30) ; update FLAGS2 - signal printer buffer has + SET 1,(IY+#30) ; update FLAGS2 - signal printer buffer has ; been used. SCF ; set carry flag to signal printer. @@ -3444,7 +3444,7 @@ L0BC1: INC HL ; address next character byte EX DE,HL ; destination to HL DEC H ; bring back to last updated screen position - BIT 1,(IY+$01) ; test FLAGS - is printer in use ? + BIT 1,(IY+#01) ; test FLAGS - is printer in use ? CALL Z,L0BDB ; if not, call routine PO-ATTR to update ; corresponding colour attribute. POP HL ; restore original screen/printer position @@ -3461,7 +3461,7 @@ L0BC1: INC HL ; address next character byte ;; PR-ALL-6 L0BD3: EX AF,AF' ; save the flag - LD A,$20 ; load A with 32 decimal + LD A,#20 ; load A with 32 decimal ADD A,E ; add this to E LD E,A ; and store result in E EX AF,AF' ; fetch the flag @@ -3477,36 +3477,36 @@ L0BD3: EX AF,AF' ; save the flag ; to manipulate H to form the correct colour attribute address. ;; PO-ATTR -L0BDB: LD A,H ; fetch high byte $40 - $57 +L0BDB: LD A,H ; fetch high byte #40 - #57 RRCA ; shift RRCA ; bits 3 and 4 RRCA ; to right. - AND $03 ; range is now 0 - 2 - OR $58 ; form correct high byte for third of screen + AND #03 ; range is now 0 - 2 + OR #58 ; form correct high byte for third of screen LD H,A ; HL is now correct - LD DE,($5C8F) ; make D hold ATTR_T, E hold MASK-T + LD DE,(#5C8F) ; make D hold ATTR_T, E hold MASK-T LD A,(HL) ; fetch existing attribute XOR E ; apply masks AND D ; XOR E ; - BIT 6,(IY+$57) ; test P_FLAG - is this PAPER 9 ?? + BIT 6,(IY+#57) ; test P_FLAG - is this PAPER 9 ?? JR Z,L0BFA ; skip to PO-ATTR-1 if not. - AND $C7 ; set paper + AND #C7 ; set paper BIT 2,A ; to contrast with ink JR NZ,L0BFA ; skip to PO-ATTR-1 - XOR $38 ; + XOR #38 ; ;; PO-ATTR-1 -L0BFA: BIT 4,(IY+$57) ; test P_FLAG - Is this INK 9 ?? +L0BFA: BIT 4,(IY+#57) ; test P_FLAG - Is this INK 9 ?? JR Z,L0C08 ; skip to PO-ATTR-2 if not - AND $F8 ; make ink + AND #F8 ; make ink BIT 5,A ; contrast with paper. JR NZ,L0C08 ; to PO-ATTR-2 - XOR $07 ; + XOR #07 ; ;; PO-ATTR-2 L0C08: LD (HL),A ; save the new attribute. @@ -3523,7 +3523,7 @@ L0C08: LD (HL),A ; save the new attribute. ;; PO-MSG L0C0A: PUSH HL ; put hi-byte zero on stack to suppress - LD H,$00 ; trailing spaces + LD H,#00 ; trailing spaces EX (SP),HL ; ld h,0; push hl would have done ?. JR L0C14 ; forward to PO-TABLE. @@ -3542,14 +3542,14 @@ L0C14: CALL L0C41 ; routine PO-SEARCH will set carry for L0C17: JR C,L0C22 ; forward to PO-EACH if not a command, ; '<>' etc. - LD A,$20 ; prepare leading space - BIT 0,(IY+$01) ; test FLAGS - leading space if not set + LD A,#20 ; prepare leading space + BIT 0,(IY+#01) ; test FLAGS - leading space if not set CALL Z,L0C3B ; routine PO-SAVE to print a space ; without disturbing registers ;; PO-EACH L0C22: LD A,(DE) ; fetch character - AND $7F ; remove any inverted bit + AND #7F ; remove any inverted bit CALL L0C3B ; routine PO-SAVE to print using alternate ; set of registers. LD A,(DE) ; re-fetch character. @@ -3559,26 +3559,26 @@ L0C22: LD A,(DE) ; fetch character JR NC,L0C22 ; back to PO-EACH if not POP DE ; * re-fetch trailing space flag to D (was A) - CP $48 ; was last character '$' ($24*2) + CP #48 ; was last character '$' (#24*2) JR Z,L0C35 ; forward to PO-TR-SP to consider trailing ; space if so. - CP $82 ; was it < 'A' i.e. '#','>','=' from tokens + CP #82 ; was it < 'A' i.e. '#','>','=' from tokens ; or ' ','.' (from tape) or '?' from scroll RET C ; no trailing space ;; PO-TR-SP L0C35: LD A,D ; the trailing space flag (zero if an error msg) - CP $03 ; test against RND, INKEY$ and PI + CP #03 ; test against RND, INKEY$ and PI ; which have no parameters and RET C ; therefore no trailing space so return. - LD A,$20 ; else continue and print a trailing space. + LD A,#20 ; else continue and print a trailing space. ; ------------------------- ; Handle recursive printing ; ------------------------- -; This routine which is part of PRINT-OUT allows RST $10 to be +; This routine which is part of PRINT-OUT allows RST #10 to be ; used recursively to print tokens and the spaces associated with them. ;; PO-SAVE @@ -3612,11 +3612,11 @@ L0C44: BIT 7,(HL) ; is character inverted ? EX DE,HL ; transfer address to DE POP AF ; restore message/token number - CP $20 ; return with carry set + CP #20 ; return with carry set RET C ; for all messages and function tokens LD A,(DE) ; test first character of token - SUB $41 ; and return with carry set + SUB #41 ; and return with carry set RET ; if it is less that 'A' ; i.e. '<>', '<=', '>=' @@ -3630,34 +3630,34 @@ L0C44: BIT 7,(HL) ; is character inverted ? ; The B register holds the current line. ;; PO-SCR -L0C55: BIT 1,(IY+$01) ; test FLAGS - is printer in use ? +L0C55: BIT 1,(IY+#01) ; test FLAGS - is printer in use ? RET NZ ; return immediately if so. LD DE,L0DD9 ; set DE to address: CL-SET PUSH DE ; and push for return address. LD A,B ; transfer the line to A. - BIT 0,(IY+$02) ; test TV_FLAG - Lower screen in use ? + BIT 0,(IY+#02) ; test TV_FLAG - Lower screen in use ? JP NZ,L0D02 ; jump forward to PO-SCR-4 if so. - CP (IY+$31) ; greater than DF_SZ display file size ? + CP (IY+#31) ; greater than DF_SZ display file size ? JR C,L0C86 ; forward to REPORT-5 if less. ; 'Out of screen' RET NZ ; return (via CL-SET) if greater - BIT 4,(IY+$02) ; test TV_FLAG - Automatic listing ? + BIT 4,(IY+#02) ; test TV_FLAG - Automatic listing ? JR Z,L0C88 ; forward to PO-SCR-2 if not. - LD E,(IY+$2D) ; fetch BREG - the count of scroll lines to E. + LD E,(IY+#2D) ; fetch BREG - the count of scroll lines to E. DEC E ; decrease and jump JR Z,L0CD2 ; to PO-SCR-3 if zero and scrolling required. - LD A,$00 ; explicit - select channel zero. + LD A,#00 ; explicit - select channel zero. CALL L1601 ; routine CHAN-OPEN opens it. - LD SP,($5C3F) ; set stack pointer to LIST_SP + LD SP,(#5C3F) ; set stack pointer to LIST_SP - RES 4,(IY+$02) ; reset TV_FLAG - signal auto listing finished. + RES 4,(IY+#02) ; reset TV_FLAG - signal auto listing finished. RET ; return ignoring pushed value, CL-SET ; to MAIN or EDITOR without updating ; print position -> @@ -3667,33 +3667,33 @@ L0C55: BIT 1,(IY+$01) ; test FLAGS - is printer in use ? ;; REPORT-5 L0C86: RST 08H ; ERROR-1 - DEFB $04 ; Error Report: Out of screen + DEFB #04 ; Error Report: Out of screen ; continue here if not an automatic listing. ;; PO-SCR-2 -L0C88: DEC (IY+$52) ; decrease SCR_CT +L0C88: DEC (IY+#52) ; decrease SCR_CT JR NZ,L0CD2 ; forward to PO-SCR-3 to scroll display if ; result not zero. ; now produce prompt. - LD A,$18 ; reset + LD A,#18 ; reset SUB B ; the - LD ($5C8C),A ; SCR_CT scroll count - LD HL,($5C8F) ; L=ATTR_T, H=MASK_T + LD (#5C8C),A ; SCR_CT scroll count + LD HL,(#5C8F) ; L=ATTR_T, H=MASK_T PUSH HL ; save on stack - LD A,($5C91) ; P_FLAG + LD A,(#5C91) ; P_FLAG PUSH AF ; save on stack to prevent lower screen ; attributes (BORDCR etc.) being applied. - LD A,$FD ; select system channel 'K' + LD A,#FD ; select system channel 'K' CALL L1601 ; routine CHAN-OPEN opens it XOR A ; clear to address message directly LD DE,L0CF8 ; make DE address: scrl-mssg CALL L0C0A ; routine PO-MSG prints to lower screen - SET 5,(IY+$02) ; set TV_FLAG - signal lower screen requires + SET 5,(IY+#02) ; set TV_FLAG - signal lower screen requires ; clearing - LD HL,$5C3B ; make HL address FLAGS + LD HL,#5C3B ; make HL address FLAGS SET 3,(HL) ; signal 'L' mode. RES 5,(HL) ; signal 'no new key'. EXX ; switch to main set. @@ -3704,30 +3704,30 @@ L0C88: DEC (IY+$52) ; decrease SCR_CT ; choices available, it is however the best. EXX ; switch back to alternate set. - CP $20 ; space is considered as BREAK + CP #20 ; space is considered as BREAK JR Z,L0D00 ; forward to REPORT-D if so ; 'BREAK - CONT repeats' - CP $E2 ; is character 'STOP' ? + CP #E2 ; is character 'STOP' ? JR Z,L0D00 ; forward to REPORT-D if so - OR $20 ; convert to lower-case - CP $6E ; is character 'n' ? + OR #20 ; convert to lower-case + CP #6E ; is character 'n' ? JR Z,L0D00 ; forward to REPORT-D if so else scroll. - LD A,$FE ; select system channel 'S' + LD A,#FE ; select system channel 'S' CALL L1601 ; routine CHAN-OPEN POP AF ; restore original P_FLAG - LD ($5C91),A ; and save in P_FLAG. + LD (#5C91),A ; and save in P_FLAG. POP HL ; restore original ATTR_T, MASK_T - LD ($5C8F),HL ; and reset ATTR_T, MASK-T as 'scroll?' has + LD (#5C8F),HL ; and reset ATTR_T, MASK-T as 'scroll?' has ; been printed. ;; PO-SCR-3 L0CD2: CALL L0DFE ; routine CL-SC-ALL to scroll whole display - LD B,(IY+$31) ; fetch DF_SZ to B + LD B,(IY+#31) ; fetch DF_SZ to B INC B ; increase to address last line of display - LD C,$21 ; set C to $21 (was $21 from above routine) + LD C,#21 ; set C to #21 (was #21 from above routine) PUSH BC ; save the line and column in BC. CALL L0E9B ; routine CL-ADDR finds display address. @@ -3736,14 +3736,14 @@ L0CD2: CALL L0DFE ; routine CL-SC-ALL to scroll whole display RRCA ; (this code sequence is used twice RRCA ; elsewhere and is a candidate for RRCA ; a subroutine.) - AND $03 ; - OR $58 ; + AND #03 ; + OR #58 ; LD H,A ; - LD DE,$5AE0 ; start of last 'line' of attribute area + LD DE,#5AE0 ; start of last 'line' of attribute area LD A,(DE) ; get attribute for last line LD C,(HL) ; transfer to base line of upper part - LD B,$20 ; there are thirty two bytes + LD B,#20 ; there are thirty two bytes EX DE,HL ; swap the pointers. ;; PO-SCR-3A @@ -3762,31 +3762,31 @@ L0CF0: LD (DE),A ; transfer ; The message 'scroll?' appears here with last byte inverted. ;; scrl-mssg -L0CF8: DEFB $80 ; initial step-over byte. +L0CF8: DEFB #80 ; initial step-over byte. DEFM "scroll" - DEFB '?'+$80 + DEFB '?'+#80 ;; REPORT-D L0D00: RST 08H ; ERROR-1 - DEFB $0C ; Error Report: BREAK - CONT repeats + DEFB #0C ; Error Report: BREAK - CONT repeats ; continue here if using lower display - A holds line number. ;; PO-SCR-4 -L0D02: CP $02 ; is line number less than 2 ? +L0D02: CP #02 ; is line number less than 2 ? JR C,L0C86 ; to REPORT-5 if so ; 'Out of Screen'. - ADD A,(IY+$31) ; add DF_SZ - SUB $19 ; + ADD A,(IY+#31) ; add DF_SZ + SUB #19 ; RET NC ; return if scrolling unnecessary NEG ; Negate to give number of scrolls required. PUSH BC ; save line/column LD B,A ; count to B - LD HL,($5C8F) ; fetch current ATTR_T, MASK_T to HL. + LD HL,(#5C8F) ; fetch current ATTR_T, MASK_T to HL. PUSH HL ; and save - LD HL,($5C91) ; fetch P_FLAG + LD HL,(#5C91) ; fetch P_FLAG PUSH HL ; and save. ; to prevent corruption by input AT @@ -3795,18 +3795,18 @@ L0D02: CP $02 ; is line number less than 2 ? ;; PO-SCR-4A L0D1C: PUSH AF ; save scroll number. - LD HL,$5C6B ; address DF_SZ + LD HL,#5C6B ; address DF_SZ LD B,(HL) ; fetch old value LD A,B ; transfer to A INC A ; and increment LD (HL),A ; then put back. - LD HL,$5C89 ; address S_POSN_hi - line + LD HL,#5C89 ; address S_POSN_hi - line CP (HL) ; compare JR C,L0D2D ; forward to PO-SCR-4B if scrolling required INC (HL) ; else increment S_POSN_hi - LD B,$18 ; set count to whole display ?? - ; Note. should be $17 and the top line + LD B,#18 ; set count to whole display ?? + ; Note. should be #17 and the top line ; will be scrolled into the ROM which ; is harmless on the standard set up. @@ -3817,16 +3817,16 @@ L0D2D: CALL L0E00 ; routine CL-SCROLL scrolls B lines JR NZ,L0D1C ; back to to PO-SCR-4A until done POP HL ; restore original P_FLAG. - LD (IY+$57),L ; and overwrite system variable P_FLAG. + LD (IY+#57),L ; and overwrite system variable P_FLAG. POP HL ; restore original ATTR_T/MASK_T. - LD ($5C8F),HL ; and update system variables. + LD (#5C8F),HL ; and update system variables. - LD BC,($5C88) ; fetch S_POSN to BC. - RES 0,(IY+$02) ; signal to TV_FLAG - main screen in use. + LD BC,(#5C88) ; fetch S_POSN to BC. + RES 0,(IY+#02) ; signal to TV_FLAG - main screen in use. CALL L0DD9 ; call routine CL-SET for upper display. - SET 0,(IY+$02) ; signal to TV_FLAG - lower screen in use. + SET 0,(IY+#02) ; signal to TV_FLAG - lower screen in use. POP BC ; restore line/column RET ; return via CL-SET for lower display. @@ -3838,20 +3838,20 @@ L0D2D: CALL L0E00 ; routine CL-SCROLL scrolls B lines ;; TEMPS L0D4D: XOR A ; clear the accumulator - LD HL,($5C8D) ; fetch L=ATTR_P and H=MASK_P - BIT 0,(IY+$02) ; test TV_FLAG - is lower screen in use ? + LD HL,(#5C8D) ; fetch L=ATTR_P and H=MASK_P + BIT 0,(IY+#02) ; test TV_FLAG - is lower screen in use ? JR Z,L0D5B ; skip to TEMPS-1 if not LD H,A ; set H, MASK P, to 00000000. - LD L,(IY+$0E) ; fetch BORDCR to L which is used for lower + LD L,(IY+#0E) ; fetch BORDCR to L which is used for lower ; screen. ;; TEMPS-1 -L0D5B: LD ($5C8F),HL ; transfer values to ATTR_T and MASK_T +L0D5B: LD (#5C8F),HL ; transfer values to ATTR_T and MASK_T ; for the print flag the permanent values are odd bits, temporary even bits. - LD HL,$5C91 ; address P_FLAG. + LD HL,#5C91 ; address P_FLAG. JR NZ,L0D65 ; skip to TEMPS-2 if lower screen using A=0. LD A,(HL) ; else pick up flag bits. @@ -3859,7 +3859,7 @@ L0D5B: LD ($5C8F),HL ; transfer values to ATTR_T and MASK_T ;; TEMPS-2 L0D65: XOR (HL) ; - AND $55 ; BIN 01010101 + AND #55 ; BIN 01010101 XOR (HL) ; permanent now as original LD (HL),A ; apply permanent bits to temporary bits. RET ; and return. @@ -3878,24 +3878,24 @@ L0D6B: CALL L0DAF ; routine CL-ALL clears display and ; this routine called from INPUT, ** ;; CLS-LOWER -L0D6E: LD HL,$5C3C ; address System Variable TV_FLAG. +L0D6E: LD HL,#5C3C ; address System Variable TV_FLAG. RES 5,(HL) ; TV_FLAG - signal do not clear lower screen. SET 0,(HL) ; TV_FLAG - signal lower screen in use. CALL L0D4D ; routine TEMPS picks up temporary colours. - LD B,(IY+$31) ; fetch lower screen DF_SZ + LD B,(IY+#31) ; fetch lower screen DF_SZ CALL L0E44 ; routine CL-LINE clears lower part ; and sets permanent attributes. - LD HL,$5AC0 ; fetch attribute address leftmost cell, + LD HL,#5AC0 ; fetch attribute address leftmost cell, ; second line up. - LD A,($5C8D) ; fetch permanent attribute from ATTR_P. + LD A,(#5C8D) ; fetch permanent attribute from ATTR_P. DEC B ; decrement lower screen display file size JR L0D8E ; forward to CLS-3 -> ; --- ;; CLS-1 -L0D87: LD C,$20 ; set counter to 32 characters per line +L0D87: LD C,#20 ; set counter to 32 characters per line ;; CLS-2 L0D89: DEC HL ; decrease attribute address. @@ -3907,15 +3907,15 @@ L0D89: DEC HL ; decrease attribute address. L0D8E: DJNZ L0D87 ; decrease B counter and back to CLS-1 ; if not zero. - LD (IY+$31),$02 ; set DF_SZ lower screen to 2 + LD (IY+#31),#02 ; set DF_SZ lower screen to 2 ; This entry point is called from CL-ALL below to ; reset the system channel input and output addresses to normal. ;; CL-CHAN -L0D94: LD A,$FD ; select system channel 'K' +L0D94: LD A,#FD ; select system channel 'K' CALL L1601 ; routine CHAN-OPEN opens it. - LD HL,($5C51) ; fetch CURCHL to HL to address current channel + LD HL,(#5C51) ; fetch CURCHL to HL to address current channel LD DE,L09F4 ; set address to PRINT-OUT for first pass. AND A ; clear carry for first pass. @@ -3929,7 +3929,7 @@ L0DA0: LD (HL),E ; insert output address first pass. JR C,L0DA0 ; back to CL-CHAN-A if first pass else done. - LD BC,$1721 ; line 23 for lower screen + LD BC,#1721 ; line 23 for lower screen JR L0DD9 ; exit via CL-SET to set column ; for lower display @@ -3941,29 +3941,29 @@ L0DA0: LD (HL),E ; insert output address first pass. ; and system channels. ;; CL-ALL -L0DAF: LD HL,$0000 ; initialize plot coordinates. - LD ($5C7D),HL ; set COORDS to 0,0. - RES 0,(IY+$30) ; update FLAGS2 - signal main screen is clear. +L0DAF: LD HL,#0000 ; initialize plot coordinates. + LD (#5C7D),HL ; set COORDS to 0,0. + RES 0,(IY+#30) ; update FLAGS2 - signal main screen is clear. CALL L0D94 ; routine CL-CHAN makes channel 'K' 'normal'. - LD A,$FE ; select system channel 'S' + LD A,#FE ; select system channel 'S' CALL L1601 ; routine CHAN-OPEN opens it CALL L0D4D ; routine TEMPS picks up permanent values. - LD B,$18 ; There are 24 lines. + LD B,#18 ; There are 24 lines. CALL L0E44 ; routine CL-LINE clears 24 text lines - ; (and sets BC to $1821) + ; (and sets BC to #1821) - LD HL,($5C51) ; fetch CURCHL make HL address current + LD HL,(#5C51) ; fetch CURCHL make HL address current ; channel 'S' LD DE,L09F4 ; address: PRINT-OUT LD (HL),E ; is made INC HL ; the normal LD (HL),D ; output address. - LD (IY+$52),$01 ; set SCR_CT - scroll count is set to default. - ; Note. BC already contains $1821. - LD BC,$1821 ; reset column and line to 0,0 + LD (IY+#52),#01 ; set SCR_CT - scroll count is set to default. + ; Note. BC already contains #1821. + LD BC,#1821 ; reset column and line to 0,0 ; and continue into CL-SET, below, exiting ; via PO-STORE (for upper screen). @@ -3975,16 +3975,16 @@ L0DAF: LD HL,$0000 ; initialize plot coordinates. ; or the column for printer. ;; CL-SET -L0DD9: LD HL,$5B00 ; the base address of printer buffer - BIT 1,(IY+$01) ; test FLAGS - is printer in use ? +L0DD9: LD HL,#5B00 ; the base address of printer buffer + BIT 1,(IY+#01) ; test FLAGS - is printer in use ? JR NZ,L0DF4 ; forward to CL-SET-2 if so. LD A,B ; transfer line to A. - BIT 0,(IY+$02) ; test TV_FLAG - lower screen in use ? + BIT 0,(IY+#02) ; test TV_FLAG - lower screen in use ? JR Z,L0DEE ; skip to CL-SET-1 if handling upper part - ADD A,(IY+$31) ; add DF_SZ for lower screen - SUB $18 ; and adjust. + ADD A,(IY+#31) ; add DF_SZ for lower screen + SUB #18 ; and adjust. ;; CL-SET-1 L0DEE: PUSH BC ; save the line/column. @@ -3996,10 +3996,10 @@ L0DEE: PUSH BC ; save the line/column. POP BC ; restore the line/column. ;; CL-SET-2 -L0DF4: LD A,$21 ; the column $1-$21 is reversed - SUB C ; to range $00 - $20 +L0DF4: LD A,#21 ; the column #1-#21 is reversed + SUB C ; to range #00 - #20 LD E,A ; now transfer to DE - LD D,$00 ; prepare for addition + LD D,#00 ; prepare for addition ADD HL,DE ; and add to base address JP L0ADC ; exit via PO-STORE to update relevant ; system variables. @@ -4010,51 +4010,51 @@ L0DF4: LD A,$21 ; the column $1-$21 is reversed ; and from the routine CL-SCROLL, once, to scroll part of the display. ;; CL-SC-ALL -L0DFE: LD B,$17 ; scroll 23 lines, after 'scroll?'. +L0DFE: LD B,#17 ; scroll 23 lines, after 'scroll?'. ;; CL-SCROLL L0E00: CALL L0E9B ; routine CL-ADDR gets screen address in HL. - LD C,$08 ; there are 8 pixel lines to scroll. + LD C,#08 ; there are 8 pixel lines to scroll. ;; CL-SCR-1 L0E05: PUSH BC ; save counters. PUSH HL ; and initial address. LD A,B ; get line count. - AND $07 ; will set zero if all third to be scrolled. + AND #07 ; will set zero if all third to be scrolled. LD A,B ; re-fetch the line count. JR NZ,L0E19 ; forward to CL-SCR-3 if partial scroll. ; HL points to top line of third and must be copied to bottom of previous 3rd. -; ( so HL = $4800 or $5000 ) ( but also sometimes $4000 ) +; ( so HL = #4800 or #5000 ) ( but also sometimes #4000 ) ;; CL-SCR-2 L0E0D: EX DE,HL ; copy HL to DE. - LD HL,$F8E0 ; subtract $08 from H and add $E0 to L - + LD HL,#F8E0 ; subtract #08 from H and add #E0 to L - ADD HL,DE ; to make destination bottom line of previous ; third. EX DE,HL ; restore the source and destination. - LD BC,$0020 ; thirty-two bytes are to be copied. + LD BC,#0020 ; thirty-two bytes are to be copied. DEC A ; decrement the line count. LDIR ; copy a pixel line to previous third. ;; CL-SCR-3 L0E19: EX DE,HL ; save source in DE. - LD HL,$FFE0 ; load the value -32. + LD HL,#FFE0 ; load the value -32. ADD HL,DE ; add to form destination in HL. EX DE,HL ; switch source and destination LD B,A ; save the count in B. - AND $07 ; mask to find count applicable to current + AND #07 ; mask to find count applicable to current RRCA ; third and RRCA ; multiply by RRCA ; thirty two (same as 5 RLCAs) - LD C,A ; transfer byte count to C ($E0 at most) + LD C,A ; transfer byte count to C (#E0 at most) LD A,B ; store line count to A - LD B,$00 ; make B zero + LD B,#00 ; make B zero LDIR ; copy bytes (BC=0, H incremented, L=0) - LD B,$07 ; set B to 7, C is zero. + LD B,#07 ; set B to 7, C is zero. ADD HL,BC ; add 7 to H to address next third. - AND $F8 ; has last third been done ? + AND #F8 ; has last third been done ? JR NZ,L0E0D ; back to CL-SCR-2 if not POP HL ; restore topmost address. @@ -4065,11 +4065,11 @@ L0E19: EX DE,HL ; save source in DE. CALL L0E88 ; routine CL-ATTR gets address in attributes ; from current 'ninth line', count in BC. - LD HL,$FFE0 ; set HL to the 16-bit value -32. + LD HL,#FFE0 ; set HL to the 16-bit value -32. ADD HL,DE ; and add to form destination address. EX DE,HL ; swap source and destination addresses. LDIR ; copy bytes scrolling the linear attributes. - LD B,$01 ; continue to clear the bottom line. + LD B,#01 ; continue to clear the bottom line. ; --------------------------- ; Clear text lines of display @@ -4081,7 +4081,7 @@ L0E19: EX DE,HL ; save source in DE. ;; CL-LINE L0E44: PUSH BC ; save line count CALL L0E9B ; routine CL-ADDR gets top address - LD C,$08 ; there are eight screen lines to a text line. + LD C,#08 ; there are eight screen lines to a text line. ;; CL-LINE-1 L0E4A: PUSH BC ; save pixel line count @@ -4089,23 +4089,23 @@ L0E4A: PUSH BC ; save pixel line count LD A,B ; transfer the line to A (1-24). ;; CL-LINE-2 -L0E4D: AND $07 ; mask 0-7 to consider thirds at a time +L0E4D: AND #07 ; mask 0-7 to consider thirds at a time RRCA ; multiply RRCA ; by 32 (same as five RLCA instructions) RRCA ; now 32 - 256(0) LD C,A ; store result in C LD A,B ; save line in A (1-24) - LD B,$00 ; set high byte to 0, prepare for ldir. + LD B,#00 ; set high byte to 0, prepare for ldir. DEC C ; decrement count 31-255. LD D,H ; copy HL LD E,L ; to DE. - LD (HL),$00 ; blank the first byte. + LD (HL),#00 ; blank the first byte. INC DE ; make DE point to next byte. LDIR ; ldir will clear lines. - LD DE,$0701 ; now address next third adjusting + LD DE,#0701 ; now address next third adjusting ADD HL,DE ; register E to address left hand side DEC A ; decrease the line count. - AND $F8 ; will be 16, 8 or 0 (AND $18 will do). + AND #F8 ; will be 16, 8 or 0 (AND #18 will do). LD B,A ; transfer count to B. JR NZ,L0E4D ; back to CL-LINE-2 if 16 or 8 to do ; the next third. @@ -4123,18 +4123,18 @@ L0E4D: AND $07 ; mask 0-7 to consider thirds at a time INC DE ; make DE point to next location. - LD A,($5C8D) ; fetch ATTR_P - permanent attributes - BIT 0,(IY+$02) ; test TV_FLAG - lower screen in use ? + LD A,(#5C8D) ; fetch ATTR_P - permanent attributes + BIT 0,(IY+#02) ; test TV_FLAG - lower screen in use ? JR Z,L0E80 ; skip to CL-LINE-3 if not. - LD A,($5C48) ; else lower screen uses BORDCR as attribute. + LD A,(#5C48) ; else lower screen uses BORDCR as attribute. ;; CL-LINE-3 L0E80: LD (HL),A ; put attribute in first byte. DEC BC ; decrement the counter. LDIR ; copy bytes to set all attributes. - POP BC ; restore the line $01-$24. - LD C,$21 ; make column $21. (No use is made of this) + POP BC ; restore the line #01-#24. + LD C,#21 ; make column #21. (No use is made of this) RET ; return to the calling routine. ; ------------------ @@ -4149,12 +4149,12 @@ L0E80: LD (HL),A ; put attribute in first byte. ; to manipulate H to form the correct colour attribute address. ;; CL-ATTR -L0E88: LD A,H ; fetch H to A - $48, $50, or $58. +L0E88: LD A,H ; fetch H to A - #48, #50, or #58. RRCA ; divide by RRCA ; eight. - RRCA ; $09, $0A or $0B. - DEC A ; $08, $09 or $0A. - OR $50 ; $58, $59 or $5A. + RRCA ; #09, #0A or #0B. + DEC A ; #08, #09 or #0A. + OR #50 ; #58, #59 or #5A. LD H,A ; save high byte of attributes. EX DE,HL ; transfer attribute address to DE @@ -4178,21 +4178,21 @@ L0E88: LD A,H ; fetch H to A - $48, $50, or $58. ; of the start of a screen character line which is supplied in B. ;; CL-ADDR -L0E9B: LD A,$18 ; reverse the line number - SUB B ; to range $00 - $17. +L0E9B: LD A,#18 ; reverse the line number + SUB B ; to range #00 - #17. LD D,A ; save line in D for later. RRCA ; multiply RRCA ; by RRCA ; thirty-two. - AND $E0 ; mask off low bits to make + AND #E0 ; mask off low bits to make LD L,A ; L a multiple of 32. LD A,D ; bring back the line to A. - AND $18 ; now $00, $08 or $10. + AND #18 ; now #00, #08 or #10. - OR $40 ; add the base address of screen. + OR #40 ; add the base address of screen. LD H,A ; HL now has the correct address. RET ; return. @@ -4211,8 +4211,8 @@ L0E9B: LD A,$18 ; reverse the line number L0EAC: DI ; disable interrupts as this is time-critical. - LD B,$B0 ; top 176 lines. -L0EAF: LD HL,$4000 ; address start of the display file. + LD B,#B0 ; top 176 lines. +L0EAF: LD HL,#4000 ; address start of the display file. ; now enter a loop to handle each pixel line. @@ -4226,16 +4226,16 @@ L0EB2: PUSH HL ; save the screen address. POP HL ; and display address. INC H ; next line down screen within 'thirds'. LD A,H ; high byte to A. - AND $07 ; result will be zero if we have left third. + AND #07 ; result will be zero if we have left third. JR NZ,L0EC9 ; forward to COPY-2 if not to continue loop. LD A,L ; consider low byte first. - ADD A,$20 ; increase by 32 - sets carry if back to zero. + ADD A,#20 ; increase by 32 - sets carry if back to zero. LD L,A ; will be next group of 8. CCF ; complement - carry set if more lines in ; the previous third. SBC A,A ; will be FF, if more, else 00. - AND $F8 ; will be F8 (-8) or 00. + AND #F8 ; will be F8 (-8) or 00. ADD A,H ; that is subtract 8, if more to do in third. LD H,A ; and reset address. @@ -4255,8 +4255,8 @@ L0EC9: DJNZ L0EB2 ; back to COPY-1 for all lines. ;; COPY-BUFF L0ECD: DI ; disable interrupts - LD HL,$5B00 ; the base address of the Printer Buffer. - LD B,$08 ; set count to 8 lines of 32 bytes. + LD HL,#5B00 ; the base address of the Printer Buffer. + LD B,#08 ; set count to 8 lines of 32 bytes. ;; COPY-3 L0ED3: PUSH BC ; save counter. @@ -4269,8 +4269,8 @@ L0ED3: PUSH BC ; save counter. ; three instructions. ;; COPY-END -L0EDA: LD A,$04 ; output value 4 to port - OUT ($FB),A ; to stop the slowed printer motor. +L0EDA: LD A,#04 ; output value 4 to port + OUT (#FB),A ; to stop the slowed printer motor. EI ; enable interrupts. ; -------------------- @@ -4290,8 +4290,8 @@ L0EDA: LD A,$04 ; output value 4 to port ; of PR_CC_hi. ;; CLEAR-PRB -L0EDF: LD HL,$5B00 ; the location of the buffer. - LD (IY+$46),L ; update PR_CC_lo - set to zero - superfluous. +L0EDF: LD HL,#5B00 ; the location of the buffer. + LD (IY+#46),L ; update PR_CC_lo - set to zero - superfluous. XOR A ; clear the accumulator. LD B,A ; set count to 256 bytes. @@ -4300,8 +4300,8 @@ L0EE7: LD (HL),A ; set addressed location to zero. INC HL ; address next byte - Note. not INC L. DJNZ L0EE7 ; back to PRB-BYTES. repeat for 256 bytes. - RES 1,(IY+$30) ; set FLAGS2 - signal printer buffer is clear. - LD C,$21 ; set the column position . + RES 1,(IY+#30) ; set FLAGS2 - signal printer buffer is clear. + LD C,#21 ; set the column position . JP L0DD9 ; exit via CL-SET and then PO-STORE. ; ----------------- @@ -4309,7 +4309,7 @@ L0EE7: LD (HL),A ; set addressed location to zero. ; ----------------- ; This routine is called from COPY and COPY-BUFF to output a line of ; 32 bytes to the ZX Printer. -; Output to port $FB - +; Output to port #FB - ; bit 7 set - activate stylus. ; bit 7 low - deactivate stylus. ; bit 2 set - stops printer. @@ -4319,11 +4319,11 @@ L0EE7: LD (HL),A ; set addressed location to zero. ;; COPY-LINE L0EF4: LD A,B ; fetch the counter 1-8 or 1-176 - CP $03 ; is it 01 or 02 ?. - SBC A,A ; result is $FF if so else $00. - AND $02 ; result is 02 now else 00. + CP #03 ; is it 01 or 02 ?. + SBC A,A ; result is #FF if so else #00. + AND #02 ; result is 02 now else 00. ; bit 1 set slows the printer. - OUT ($FB),A ; slow the printer for the + OUT (#FB),A ; slow the printer for the ; last two lines. LD D,A ; save the mask to control the printer later. @@ -4331,18 +4331,18 @@ L0EF4: LD A,B ; fetch the counter 1-8 or 1-176 L0EFD: CALL L1F54 ; call BREAK-KEY to read keyboard immediately. JR C,L0F0C ; forward to COPY-L-2 if 'break' not pressed. - LD A,$04 ; else stop the - OUT ($FB),A ; printer motor. + LD A,#04 ; else stop the + OUT (#FB),A ; printer motor. EI ; enable interrupts. CALL L0EDF ; call routine CLEAR-PRB. ; Note. should not be cleared if COPY in use. ;; REPORT-Dc L0F0A: RST 08H ; ERROR-1 - DEFB $0C ; Error Report: BREAK - CONT repeats + DEFB #0C ; Error Report: BREAK - CONT repeats ;; COPY-L-2 -L0F0C: IN A,($FB) ; test now to see if +L0F0C: IN A,(#FB) ; test now to see if ADD A,A ; a printer is attached. RET M ; return if not - but continue with parent ; command. @@ -4350,12 +4350,12 @@ L0F0C: IN A,($FB) ; test now to see if JR NC,L0EFD ; back to COPY-L-1 if stylus of printer not ; in position. - LD C,$20 ; set count to 32 bytes. + LD C,#20 ; set count to 32 bytes. ;; COPY-L-3 L0F14: LD E,(HL) ; fetch a byte from line. INC HL ; address next location. Note. not INC L. - LD B,$08 ; count the bits. + LD B,#08 ; count the bits. ;; COPY-L-4 L0F18: RL D ; prepare mask to receive bit. @@ -4363,12 +4363,12 @@ L0F18: RL D ; prepare mask to receive bit. RR D ; and back to bit 7 of D restoring bit 1 ;; COPY-L-5 -L0F1E: IN A,($FB) ; read the port. +L0F1E: IN A,(#FB) ; read the port. RRA ; bit 0 to carry. JR NC,L0F1E ; back to COPY-L-5 if stylus not in position. LD A,D ; transfer command bits to A. - OUT ($FB),A ; and output to port. + OUT (#FB),A ; and output to port. DJNZ L0F18 ; loop back to COPY-L-4 for all 8 bits. DEC C ; decrease the byte count. @@ -4388,13 +4388,13 @@ L0F1E: IN A,($FB) ; read the port. ; This is a compact and highly versatile routine. ;; EDITOR -L0F2C: LD HL,($5C3D) ; fetch ERR_SP +L0F2C: LD HL,(#5C3D) ; fetch ERR_SP PUSH HL ; save on stack ;; ED-AGAIN L0F30: LD HL,L107F ; address: ED-ERROR PUSH HL ; save address on stack and - LD ($5C3D),SP ; make ERR_SP point to it. + LD (#5C3D),SP ; make ERR_SP point to it. ; Note. While in editing/input mode should an error occur then RST 08 will ; update X_PTR to the location reached by CH_ADD and jump to ED-ERROR @@ -4407,9 +4407,9 @@ L0F30: LD HL,L107F ; address: ED-ERROR L0F38: CALL L15D4 ; routine WAIT-KEY gets key possibly ; changing the mode. PUSH AF ; save key. - LD D,$00 ; and give a short click based - LD E,(IY-$01) ; on PIP value for duration. - LD HL,$00C8 ; and pitch. + LD D,#00 ; and give a short click based + LD E,(IY-#01) ; on PIP value for duration. + LD HL,#00C8 ; and pitch. CALL L03B5 ; routine BEEPER gives click - effective ; with rubber keyboard. POP AF ; get saved key value. @@ -4420,23 +4420,23 @@ L0F38: CALL L15D4 ; routine WAIT-KEY gets key possibly ; handler and an input stream set up to supply characters. ; The character that has been received can now be processed. - CP $18 ; range 24 to 255 ? + CP #18 ; range 24 to 255 ? JR NC,L0F81 ; forward to ADD-CHAR if so. - CP $07 ; lower than 7 ? + CP #07 ; lower than 7 ? JR C,L0F81 ; forward to ADD-CHAR also. ; Note. This is a 'bug' and chr$ 6, the comma ; control character, should have had an ; entry in the ED-KEYS table. ; Steven Vickers, 1984, Pitman. - CP $10 ; less than 16 ? + CP #10 ; less than 16 ? JR C,L0F92 ; forward to ED-KEYS if editing control ; range 7 to 15 dealt with by a table - LD BC,$0002 ; prepare for ink/paper etc. + LD BC,#0002 ; prepare for ink/paper etc. LD D,A ; save character in D - CP $16 ; is it ink/paper/bright etc. ? + CP #16 ; is it ink/paper/bright etc. ? JR C,L0F6C ; forward to ED-CONTR if so ; leaves 22d AT and 23d TAB @@ -4445,7 +4445,7 @@ L0F38: CALL L15D4 ; routine WAIT-KEY gets key possibly ; when the keyboard is used for input. INC BC ; if it was AT/TAB - 3 locations required - BIT 7,(IY+$37) ; test FLAGX - Is this INPUT LINE ? + BIT 7,(IY+#37) ; test FLAGX - Is this INPUT LINE ? JP Z,L101E ; jump to ED-IGNORE if not, else CALL L15D4 ; routine WAIT-KEY - input address is KEY-NEXT @@ -4457,8 +4457,8 @@ L0F6C: CALL L15D4 ; routine WAIT-KEY for control. ; input address will be key-next. PUSH DE ; saved code/parameters - LD HL,($5C5B) ; fetch address of keyboard cursor from K_CUR - RES 0,(IY+$07) ; set MODE to 'L' + LD HL,(#5C5B) ; fetch address of keyboard cursor from K_CUR + RES 0,(IY+#07) ; set MODE to 'L' CALL L1655 ; routine MAKE-ROOM makes 2/3 spaces at cursor @@ -4478,9 +4478,9 @@ L0F6C: CALL L15D4 ; routine WAIT-KEY for control. ; it is also the OUTPUT service routine for system channel 'R'. ;; ADD-CHAR -L0F81: RES 0,(IY+$07) ; set MODE to 'L' +L0F81: RES 0,(IY+#07) ; set MODE to 'L' -X0F85: LD HL,($5C5B) ; fetch address of keyboard cursor from K_CUR +X0F85: LD HL,(#5C5B) ; fetch address of keyboard cursor from K_CUR CALL L1652 ; routine ONE-SPACE creates one space. ; either a continuation of above or from ED-CONTR with ED-LOOP on stack. @@ -4488,7 +4488,7 @@ X0F85: LD HL,($5C5B) ; fetch address of keyboard cursor from K_CUR ;; ADD-CH-1 L0F8B: LD (DE),A ; load current character to last new location. INC DE ; address next - LD ($5C5B),DE ; and update K_CUR system variable. + LD (#5C5B),DE ; and update K_CUR system variable. RET ; return - either a simple return ; from ADD-CHAR or to ED-LOOP on stack. @@ -4499,33 +4499,33 @@ L0F8B: LD (DE),A ; load current character to last new location. ;; ED-KEYS L0F92: LD E,A ; character to E. - LD D,$00 ; prepare to add. - LD HL,L0FA0 - 7 ; base address of editing keys table. $0F99 + LD D,#00 ; prepare to add. + LD HL,L0FA0 - 7 ; base address of editing keys table. #0F99 ADD HL,DE ; add E LD E,(HL) ; fetch offset to E ADD HL,DE ; add offset for address of handling routine. PUSH HL ; push the address on machine stack. - LD HL,($5C5B) ; load address of cursor from K_CUR. + LD HL,(#5C5B) ; load address of cursor from K_CUR. RET ; an make an indirect jump forward to routine. ; ------------------ ; Editing keys table ; ------------------ -; For each code in the range $07 to $0F this table contains a +; For each code in the range #07 to #0F this table contains a ; single offset byte to the routine that services that code. ; Note. for what was intended there should also have been an ; entry for chr$ 6 with offset to ed-symbol. ;; ed-keys-t -L0FA0: DEFB L0FA9 - $ ; 07d offset $09 to Address: ED-EDIT - DEFB L1007 - $ ; 08d offset $66 to Address: ED-LEFT - DEFB L100C - $ ; 09d offset $6A to Address: ED-RIGHT - DEFB L0FF3 - $ ; 10d offset $50 to Address: ED-DOWN - DEFB L1059 - $ ; 11d offset $B5 to Address: ED-UP - DEFB L1015 - $ ; 12d offset $70 to Address: ED-DELETE - DEFB L1024 - $ ; 13d offset $7E to Address: ED-ENTER - DEFB L1076 - $ ; 14d offset $CF to Address: ED-SYMBOL - DEFB L107C - $ ; 15d offset $D4 to Address: ED-GRAPH +L0FA0: DEFB L0FA9 - $ ; 07d offset #09 to Address: ED-EDIT + DEFB L1007 - $ ; 08d offset #66 to Address: ED-LEFT + DEFB L100C - $ ; 09d offset #6A to Address: ED-RIGHT + DEFB L0FF3 - $ ; 10d offset #50 to Address: ED-DOWN + DEFB L1059 - $ ; 11d offset #B5 to Address: ED-UP + DEFB L1015 - $ ; 12d offset #70 to Address: ED-DELETE + DEFB L1024 - $ ; 13d offset #7E to Address: ED-ENTER + DEFB L1076 - $ ; 14d offset #CF to Address: ED-SYMBOL + DEFB L107C - $ ; 15d offset #D4 to Address: ED-GRAPH ; --------------- ; Handle EDIT key @@ -4535,9 +4535,9 @@ L0FA0: DEFB L0FA9 - $ ; 07d offset $09 to Address: ED-EDIT ; Alternatively ... ;; ED-EDIT -L0FA9: LD HL,($5C49) ; fetch E_PPC the last line number entered. +L0FA9: LD HL,(#5C49) ; fetch E_PPC the last line number entered. ; Note. may not exist and may follow program. - BIT 5,(IY+$37) ; test FLAGX - input mode ? + BIT 5,(IY+#37) ; test FLAGX - input mode ? JP NZ,L1097 ; jump forward to CLEAR-SP if not in editor. CALL L196E ; routine LINE-ADDR to find address of line @@ -4558,22 +4558,22 @@ L0FA9: LD HL,($5C49) ; fetch E_PPC the last line number entered. LD C,(HL) ; transfer to C INC HL ; next to high byte LD B,(HL) ; transfer to B. - LD HL,$000A ; an overhead of ten bytes + LD HL,#000A ; an overhead of ten bytes ADD HL,BC ; is added to length. LD B,H ; transfer adjusted value LD C,L ; to BC register. CALL L1F05 ; routine TEST-ROOM checks free memory. CALL L1097 ; routine CLEAR-SP clears editing area. - LD HL,($5C51) ; address CURCHL + LD HL,(#5C51) ; address CURCHL EX (SP),HL ; swap with line address on stack PUSH HL ; save line address underneath - LD A,$FF ; select system channel 'R' + LD A,#FF ; select system channel 'R' CALL L1601 ; routine CHAN-OPEN opens it POP HL ; drop line address DEC HL ; make it point to first byte of line num. - DEC (IY+$0F) ; decrease E_PPC_lo to suppress line cursor. + DEC (IY+#0F) ; decrease E_PPC_lo to suppress line cursor. ; Note. ineffective when E_PPC is one ; greater than last line of program perhaps ; as a result of a delete. @@ -4581,14 +4581,14 @@ L0FA9: LD HL,($5C49) ; fetch E_PPC the last line number entered. CALL L1855 ; routine OUT-LINE outputs the BASIC line ; to the editing area. - INC (IY+$0F) ; restore E_PPC_lo to the previous value. - LD HL,($5C59) ; address E_LINE in editing area. + INC (IY+#0F) ; restore E_PPC_lo to the previous value. + LD HL,(#5C59) ; address E_LINE in editing area. INC HL ; advance INC HL ; past space INC HL ; and digit characters INC HL ; of line number. - LD ($5C5B),HL ; update K_CUR to address start of BASIC. + LD (#5C5B),HL ; update K_CUR to address start of BASIC. POP HL ; restore the address of CURCHL. CALL L1615 ; routine CHAN-FLAG sets flags for it. RET ; RETURN to ED-LOOP. @@ -4601,10 +4601,10 @@ L0FA9: LD HL,($5C49) ; fetch E_PPC the last line number entered. ; In input mode this key can be used as an alternative to entering STOP. ;; ED-DOWN -L0FF3: BIT 5,(IY+$37) ; test FLAGX - Input Mode ? +L0FF3: BIT 5,(IY+#37) ; test FLAGX - Input Mode ? JR NZ,L1001 ; skip to ED-STOP if so - LD HL,$5C49 ; address E_PPC - 'current line' + LD HL,#5C49 ; address E_PPC - 'current line' CALL L190F ; routine LN-FETCH fetches number of next ; line or same if at end of program. JR L106E ; forward to ED-LIST to produce an @@ -4613,7 +4613,7 @@ L0FF3: BIT 5,(IY+$37) ; test FLAGX - Input Mode ? ; --- ;; ED-STOP -L1001: LD (IY+$00),$10 ; set ERR_NR to 'STOP in INPUT' code +L1001: LD (IY+#00),#10 ; set ERR_NR to 'STOP in INPUT' code JR L1024 ; forward to ED-ENTER to produce error. ; ------------------- @@ -4635,13 +4635,13 @@ L1007: CALL L1031 ; routine ED-EDGE moves left if possible ;; ED-RIGHT L100C: LD A,(HL) ; fetch addressed character. - CP $0D ; is it carriage return ? + CP #0D ; is it carriage return ? RET Z ; return if so to ED-LOOP INC HL ; address next character ;; ED-CUR -L1011: LD ($5C5B),HL ; update K_CUR system variable +L1011: LD (#5C5B),HL ; update K_CUR system variable RET ; return to ED-LOOP ; -------------- @@ -4655,7 +4655,7 @@ L1011: LD ($5C5B),HL ; update K_CUR system variable ;; ED-DELETE L1015: CALL L1031 ; routine ED-EDGE moves cursor to left. - LD BC,$0001 ; of character to be deleted. + LD BC,#0001 ; of character to be deleted. JP L19E8 ; to RECLAIM-2 reclaim the character. ; ------------------------------------------ @@ -4683,8 +4683,8 @@ L1024: POP HL ; discard address ED-LOOP ;; ED-END L1026: POP HL ; the previous value of ERR_SP - LD ($5C3D),HL ; is restored to ERR_SP system variable - BIT 7,(IY+$00) ; is ERR_NR $FF (= 'OK') ? + LD (#5C3D),HL ; is restored to ERR_SP system variable + BIT 7,(IY+#00) ; is ERR_NR #FF (= 'OK') ? RET NZ ; return if so LD SP,HL ; else put error routine on stack @@ -4725,8 +4725,8 @@ L103E: LD H,D ; transfer DE - leftmost pointer INC HL ; address next leftmost character to ; advance position each time. LD A,(DE) ; pick up previous in A - AND $F0 ; lose the low bits - CP $10 ; is it INK to TAB $10-$1F ? + AND #F0 ; lose the low bits + CP #10 ; is it INK to TAB #10-#1F ? ; that is, is it followed by a parameter ? JR NZ,L1051 ; to ED-EDGE-2 if not ; HL has been incremented once @@ -4738,8 +4738,8 @@ L103E: LD H,D ; transfer DE - leftmost pointer ; The test will always fail and the jump to ED-EDGE-2 will be taken. LD A,(DE) ; reload leftmost character - SUB $17 ; decimal 23 ('tab') - ADC A,$00 ; will be 0 for 'tab' and 'at'. + SUB #17 ; decimal 23 ('tab') + ADC A,#00 ; will be 0 for 'tab' and 'at'. JR NZ,L1051 ; forward to ED-EDGE-2 if not ; HL has been incremented twice @@ -4767,14 +4767,14 @@ L1051: AND A ; prepare for true subtraction ; This has no alternative use in input mode. ;; ED-UP -L1059: BIT 5,(IY+$37) ; test FLAGX - input mode ? +L1059: BIT 5,(IY+#37) ; test FLAGX - input mode ? RET NZ ; return if not in editor - to ED-LOOP. - LD HL,($5C49) ; get current line from E_PPC + LD HL,(#5C49) ; get current line from E_PPC CALL L196E ; routine LINE-ADDR gets address EX DE,HL ; and previous in DE CALL L1695 ; routine LINE-NO gets prev line number - LD HL,$5C4A ; set HL to E_PPC_hi as next routine stores + LD HL,#5C4A ; set HL to E_PPC_hi as next routine stores ; top first. CALL L191C ; routine LN-STORE loads DE value to HL ; high byte first - E_PPC_lo takes E @@ -4784,7 +4784,7 @@ L1059: BIT 5,(IY+$37) ; test FLAGX - input mode ? ;; ED-LIST L106E: CALL L1795 ; routine AUTO-LIST lists to upper screen ; including adjusted current line. - LD A,$00 ; select lower screen again + LD A,#00 ; select lower screen again JP L1601 ; exit via CHAN-OPEN to ED-LOOP ; -------------------------------- @@ -4802,11 +4802,11 @@ L106E: CALL L1795 ; routine AUTO-LIST lists to upper screen ; You can get round the missing chr$ 6 handler by sending multiple print ; items separated by a newline '. -; chr$14 would have the same functionality. +; chr#14 would have the same functionality. ; This is chr$ 14. ;; ED-SYMBOL -L1076: BIT 7,(IY+$37) ; test FLAGX - is this INPUT LINE ? +L1076: BIT 7,(IY+#37) ; test FLAGX - is this INPUT LINE ? JR Z,L1024 ; back to ED-ENTER if not to treat as if ; enter had been pressed. ; else continue and add code to buffer. @@ -4824,16 +4824,16 @@ L107C: JP L0F81 ; jump back to ADD-CHAR ; points to the stack location holding address ED_ERROR. ;; ED-ERROR -L107F: BIT 4,(IY+$30) ; test FLAGS2 - is K channel in use ? +L107F: BIT 4,(IY+#30) ; test FLAGS2 - is K channel in use ? JR Z,L1026 ; back to ED-END if not. ; but as long as we're editing lines or inputting from the keyboard, then ; we've run out of memory so give a short rasp. - LD (IY+$00),$FF ; reset ERR_NR to 'OK'. - LD D,$00 ; prepare for beeper. - LD E,(IY-$02) ; use RASP value. - LD HL,$1A90 ; set a duration. + LD (IY+#00),#FF ; reset ERR_NR to 'OK'. + LD D,#00 ; prepare for beeper. + LD E,(IY-#02) ; use RASP value. + LD HL,#1A90 ; set a duration. CALL L03B5 ; routine BEEPER emits a warning rasp. JP L0F30 ; to ED-AGAIN to re-stack address of ; this routine and make ERR_SP point to it. @@ -4855,8 +4855,8 @@ L1097: PUSH HL ; preserve HL ; if in input HL = STKBOT, DE = WORKSP DEC HL ; adjust CALL L19E5 ; routine RECLAIM-1 reclaims space - LD ($5C5B),HL ; set K_CUR to start of empty area - LD (IY+$07),$00 ; set MODE to 'KLC' + LD (#5C5B),HL ; set K_CUR to start of empty area + LD (IY+#07),#00 ; set MODE to 'KLC' POP HL ; restore HL. RET ; return. @@ -4867,41 +4867,41 @@ L1097: PUSH HL ; preserve HL ; channel 'K'. ;; KEY-INPUT -L10A8: BIT 3,(IY+$02) ; test TV_FLAG - has a key been pressed in +L10A8: BIT 3,(IY+#02) ; test TV_FLAG - has a key been pressed in ; editor ? CALL NZ,L111D ; routine ED-COPY if so to reprint the lower ; screen at every keystroke. AND A ; clear carry - required exit condition. - BIT 5,(IY+$01) ; test FLAGS - has a new key been pressed ? + BIT 5,(IY+#01) ; test FLAGS - has a new key been pressed ? RET Z ; return if not. - LD A,($5C08) ; system variable LASTK will hold last key - + LD A,(#5C08) ; system variable LASTK will hold last key - ; from the interrupt routine. - RES 5,(IY+$01) ; update FLAGS - reset the new key flag. + RES 5,(IY+#01) ; update FLAGS - reset the new key flag. PUSH AF ; save the input character. - BIT 5,(IY+$02) ; test TV_FLAG - clear lower screen ? + BIT 5,(IY+#02) ; test TV_FLAG - clear lower screen ? CALL NZ,L0D6E ; routine CLS-LOWER if so. POP AF ; restore the character code. - CP $20 ; if space or higher then + CP #20 ; if space or higher then JR NC,L111B ; forward to KEY-DONE2 and return with carry ; set to signal key-found. - CP $10 ; with 16d INK and higher skip + CP #10 ; with 16d INK and higher skip JR NC,L10FA ; forward to KEY-CONTR. - CP $06 ; for 6 - 15d + CP #06 ; for 6 - 15d JR NC,L10DB ; skip forward to KEY-M-CL to handle Modes ; and CapsLock. ; that only leaves 0-5, the flash bright inverse switches. LD B,A ; save character in B - AND $01 ; isolate the embedded parameter (0/1). + AND #01 ; isolate the embedded parameter (0/1). LD C,A ; and store in C LD A,B ; re-fetch copy (0-5) RRA ; halve it 0, 1 or 2. - ADD A,$12 ; add 18d gives 'flash', 'bright' + ADD A,#12 ; add 18d gives 'flash', 'bright' ; and 'inverse'. JR L1105 ; forward to KEY-DATA with the ; parameter (0/1) in C. @@ -4913,8 +4913,8 @@ L10A8: BIT 3,(IY+$02) ; test TV_FLAG - has a key been pressed in ;; KEY-M-CL L10DB: JR NZ,L10E6 ; forward to KEY-MODE if not 06 (capslock) - LD HL,$5C6A ; point to FLAGS2 - LD A,$08 ; value 00000100 + LD HL,#5C6A ; point to FLAGS2 + LD A,#08 ; value 00000100 XOR (HL) ; toggle BIT 2 of FLAGS2 the capslock bit LD (HL),A ; and store result in FLAGS2 again. JR L10F4 ; forward to KEY-FLAG to signal no-key. @@ -4922,25 +4922,25 @@ L10DB: JR NZ,L10E6 ; forward to KEY-MODE if not 06 (capslock) ; --- ;; KEY-MODE -L10E6: CP $0E ; compare with chr 14d +L10E6: CP #0E ; compare with chr 14d RET C ; return with carry set "key found" for ; codes 7 - 13d leaving 14d and 15d ; which are converted to mode codes. - SUB $0D ; subtract 13d leaving 1 and 2 + SUB #0D ; subtract 13d leaving 1 and 2 ; 1 is 'E' mode, 2 is 'G' mode. - LD HL,$5C41 ; address the MODE system variable. + LD HL,#5C41 ; address the MODE system variable. CP (HL) ; compare with existing value before LD (HL),A ; inserting the new value. JR NZ,L10F4 ; forward to KEY-FLAG if it has changed. - LD (HL),$00 ; else make MODE zero - KLC mode + LD (HL),#00 ; else make MODE zero - KLC mode ; Note. while in Extended/Graphics mode, ; the Extended Mode/Graphics key is pressed ; again to get out. ;; KEY-FLAG -L10F4: SET 3,(IY+$02) ; update TV_FLAG - show key state has changed +L10F4: SET 3,(IY+#02) ; update TV_FLAG - show key state has changed CP A ; clear carry and reset zero flags - ; no actual key returned. RET ; make the return. @@ -4951,9 +4951,9 @@ L10F4: SET 3,(IY+$02) ; update TV_FLAG - show key state has changed ;; KEY-CONTR L10FA: LD B,A ; make a copy of character. - AND $07 ; mask to leave bits 0-7 + AND #07 ; mask to leave bits 0-7 LD C,A ; and store in C. - LD A,$10 ; initialize to 16d - INK. + LD A,#10 ; initialize to 16d - INK. BIT 3,B ; was it paper ? JR NZ,L1105 ; forward to KEY-DATA with INK 16d and ; colour in C. @@ -4961,7 +4961,7 @@ L10FA: LD B,A ; make a copy of character. INC A ; else change from INK to PAPER (17d) if so. ;; KEY-DATA -L1105: LD (IY-$2D),C ; put the colour (0-7)/state(0/1) in KDATA +L1105: LD (IY-#2D),C ; put the colour (0-7)/state(0/1) in KDATA LD DE,L110D ; address: KEY-NEXT will be next input stream JR L1113 ; forward to KEY-CHAN to change it ... @@ -4970,13 +4970,13 @@ L1105: LD (IY-$2D),C ; put the colour (0-7)/state(0/1) in KDATA ; ... so that INPUT_AD directs control to here at next call to WAIT-KEY ;; KEY-NEXT -L110D: LD A,($5C0D) ; pick up the parameter stored in KDATA. +L110D: LD A,(#5C0D) ; pick up the parameter stored in KDATA. LD DE,L10A8 ; address: KEY-INPUT will be next input stream ; continue to restore default channel and ; make a return with the control code. ;; KEY-CHAN -L1113: LD HL,($5C4F) ; address start of CHANNELS area using CHANS +L1113: LD HL,(#5C4F) ; address start of CHANNELS area using CHANS ; system variable. ; Note. One might have expected CURCHL to ; have been used. @@ -5002,19 +5002,19 @@ L111B: SCF ; set carry flag to show a key has been found ;; ED-COPY L111D: CALL L0D4D ; routine TEMPS sets temporary attributes. - RES 3,(IY+$02) ; update TV_FLAG - signal no change in mode - RES 5,(IY+$02) ; update TV_FLAG - signal don't clear lower + RES 3,(IY+#02) ; update TV_FLAG - signal no change in mode + RES 5,(IY+#02) ; update TV_FLAG - signal don't clear lower ; screen. - LD HL,($5C8A) ; fetch SPOSNL + LD HL,(#5C8A) ; fetch SPOSNL PUSH HL ; and save on stack. - LD HL,($5C3D) ; fetch ERR_SP + LD HL,(#5C3D) ; fetch ERR_SP PUSH HL ; and save also LD HL,L1167 ; address: ED-FULL PUSH HL ; is pushed as the error routine - LD ($5C3D),SP ; and ERR_SP made to point to it. + LD (#5C3D),SP ; and ERR_SP made to point to it. - LD HL,($5C82) ; fetch ECHO_E + LD HL,(#5C82) ; fetch ECHO_E PUSH HL ; and push also SCF ; set carry flag to control SET-DE @@ -5030,7 +5030,7 @@ L111D: CALL L0D4D ; routine TEMPS sets temporary attributes. CALL L18E1 ; routine OUT-CURS considers a ; terminating cursor. - LD HL,($5C8A) ; fetch updated SPOSNL + LD HL,(#5C8A) ; fetch updated SPOSNL EX (SP),HL ; exchange with ECHO_E on stack EX DE,HL ; transfer ECHO_E to DE CALL L0D4D ; routine TEMPS to re-set attributes @@ -5040,23 +5040,23 @@ L111D: CALL L0D4D ; routine TEMPS sets temporary attributes. ; text from a previous print may follow this line and requires blanking. ;; ED-BLANK -L1150: LD A,($5C8B) ; fetch SPOSNL_hi is current line +L1150: LD A,(#5C8B) ; fetch SPOSNL_hi is current line SUB D ; compare with old JR C,L117C ; forward to ED-C-DONE if no blanking JR NZ,L115E ; forward to ED-SPACES if line has changed LD A,E ; old column to A - SUB (IY+$50) ; subtract new in SPOSNL_lo + SUB (IY+#50) ; subtract new in SPOSNL_lo JR NC,L117C ; forward to ED-C-DONE if no backfilling. ;; ED-SPACES -L115E: LD A,$20 ; prepare a space. +L115E: LD A,#20 ; prepare a space. PUSH DE ; save old line/column. CALL L09F4 ; routine PRINT-OUT prints a space over ; any text from previous print. ; Note. Since the blanking only occurs when - ; using $09F4 to print to the lower screen, + ; using #09F4 to print to the lower screen, ; there is no need to vector via a RST 10 ; and we can use this alternate set. POP DE ; restore the old line column. @@ -5072,12 +5072,12 @@ L115E: LD A,$20 ; prepare a space. ; that this is perhaps not the best idea you've had that day. ;; ED-FULL -L1167: LD D,$00 ; prepare to moan. - LD E,(IY-$02) ; fetch RASP value. - LD HL,$1A90 ; set duration. +L1167: LD D,#00 ; prepare to moan. + LD E,(IY-#02) ; fetch RASP value. + LD HL,#1A90 ; set duration. CALL L03B5 ; routine BEEPER. - LD (IY+$00),$FF ; clear ERR_NR. - LD DE,($5C8A) ; fetch SPOSNL. + LD (IY+#00),#FF ; clear ERR_NR. + LD DE,(#5C8A) ; fetch SPOSNL. JR L117E ; forward to ED-C-END ; ------- @@ -5092,14 +5092,14 @@ L117C: POP DE ; fetch new line/column. ;; ED-C-END L117E: POP HL ; restore the old value of ERR_SP. - LD ($5C3D),HL ; update the system variable ERR_SP + LD (#5C3D),HL ; update the system variable ERR_SP POP BC ; old value of SPOSN_L PUSH DE ; save new value CALL L0DD9 ; routine CL-SET and PO-STORE ; update ECHO_E and SPOSN_L from BC POP HL ; restore new value - LD ($5C82),HL ; and update ECHO_E - LD (IY+$26),$00 ; make error pointer X_PTR_hi out of bounds + LD (#5C82),HL ; and update ECHO_E + LD (IY+#26),#00 ; make error pointer X_PTR_hi out of bounds RET ; return ; ----------------------------------------------- @@ -5111,7 +5111,7 @@ L117E: POP HL ; restore the old value of ERR_SP. ; this routine is called once ;; SET-HL -L1190: LD HL,($5C61) ; fetch WORKSP to HL. +L1190: LD HL,(#5C61) ; fetch WORKSP to HL. DEC HL ; point to last location of editing area. AND A ; clear carry to limit exit points to first ; or last. @@ -5119,14 +5119,14 @@ L1190: LD HL,($5C61) ; fetch WORKSP to HL. ; this routine is called with carry set and exits at a conditional return. ;; SET-DE -L1195: LD DE,($5C59) ; fetch E_LINE to DE - BIT 5,(IY+$37) ; test FLAGX - Input Mode ? +L1195: LD DE,(#5C59) ; fetch E_LINE to DE + BIT 5,(IY+#37) ; test FLAGX - Input Mode ? RET Z ; return now if in editing mode - LD DE,($5C61) ; fetch WORKSP to DE + LD DE,(#5C61) ; fetch WORKSP to DE RET C ; return if carry set ( entry = set-de) - LD HL,($5C63) ; fetch STKBOT to HL as well + LD HL,(#5C63) ; fetch STKBOT to HL as well RET ; and return (entry = set-hl (in input)) ; ------------------------------- @@ -5141,12 +5141,12 @@ L1195: LD DE,($5C59) ; fetch E_LINE to DE ;; REMOVE-FP L11A7: LD A,(HL) ; fetch character - CP $0E ; is it the number marker ? - LD BC,$0006 ; prepare for six bytes - CALL Z,L19E8 ; routine RECLAIM-2 reclaims space if $0E + CP #0E ; is it the number marker ? + LD BC,#0006 ; prepare for six bytes + CALL Z,L19E8 ; routine RECLAIM-2 reclaims space if #0E LD A,(HL) ; reload next (or same) character INC HL ; and advance address - CP $0D ; end of line or input buffer ? + CP #0D ; end of line or input buffer ? JR NZ,L11A7 ; back to REMOVE-FP until entire line done. RET ; return @@ -5164,11 +5164,11 @@ L11A7: LD A,(HL) ; fetch character ; | ROM | File | File | Buffer | Variables | ; +---------+-----------+------------+--------------+-------------+-- ; ^ ^ ^ ^ ^ ^ -; $0000 $4000 $5800 $5B00 $5C00 $5CB6 = CHANS +; #0000 #4000 #5800 #5B00 #5C00 #5CB6 = CHANS ; ; ; --+----------+---+---------+-----------+---+------------+--+---+-- -; | Channel |$80| BASIC | Variables |$80| Edit Line |NL|$80| +; | Channel |#80| BASIC | Variables |#80| Edit Line |NL|#80| ; | Info | | Program | Area | | or Command | | | ; --+----------+---+---------+-----------+---+------------+--+---+-- ; ^ ^ ^ ^ ^ @@ -5177,7 +5177,7 @@ L11A7: LD A,(HL) ; fetch character ; ; ---5--> <---2--- <--3--- ; --+-------+--+------------+-------+-------+---------+-------+-+---+------+ -; | INPUT |NL| Temporary | Calc. | Spare | Machine | GOSUB |?|$3E| UDGs | +; | INPUT |NL| Temporary | Calc. | Spare | Machine | GOSUB |?|#3E| UDGs | ; | data | | Work Space | Stack | | Stack | Stack | | | | ; --+-------+--+------------+-------+-------+---------+-------+-+---+------+ ; ^ ^ ^ ^ ^ ^ ^ @@ -5198,12 +5198,12 @@ L11A7: LD A,(HL) ; fetch character ;; NEW L11B7: DI ; disable interrupts - machine stack will be ; cleared. - LD A,$FF ; flag coming from NEW. - LD DE,($5CB2) ; fetch RAMTOP as top value. + LD A,#FF ; flag coming from NEW. + LD DE,(#5CB2) ; fetch RAMTOP as top value. EXX ; switch in alternate set. - LD BC,($5CB4) ; fetch P-RAMT differs on 16K/48K machines. - LD DE,($5C38) ; fetch RASP/PIP. - LD HL,($5C7B) ; fetch UDG differs on 16K/48K machines. + LD BC,(#5CB4) ; fetch P-RAMT differs on 16K/48K machines. + LD DE,(#5C38) ; fetch RASP/PIP. + LD HL,(#5C7B) ; fetch UDG differs on 16K/48K machines. EXX ; switch back to main set and continue into... ; --------------------------- @@ -5216,12 +5216,12 @@ L11B7: DI ; disable interrupts - machine stack will be ;; START-NEW L11CB: LD B,A ; save the flag for later branching. - LD A,$07 ; select a white border - OUT ($FE),A ; and set it now. + LD A,#07 ; select a white border + OUT (#FE),A ; and set it now. - LD A,$3F ; load accumulator with last page in ROM. + LD A,#3F ; load accumulator with last page in ROM. LD I,A ; set the I register - this remains constant - ; and can't be in range $40 - $7F as 'snow' + ; and can't be in range #40 - #7F as 'snow' ; appears on the screen. NOP ; these seem unnecessary. NOP ; @@ -5235,7 +5235,7 @@ L11CB: LD B,A ; save the flag for later branching. ; ------------ ; Typically a Spectrum will have 16K or 48K of Ram and this code will ; test it all till it finds an unpopulated location or, less likely, a -; faulty location. Usually it stops when it reaches the top $FFFF or +; faulty location. Usually it stops when it reaches the top #FFFF or ; in the case of NEW the supplied top value. The entire screen turns ; black with sometimes red stripes on black paper visible. @@ -5244,9 +5244,9 @@ L11DA: LD H,D ; transfer the top value to LD L,E ; the HL register pair. ;; RAM-FILL -L11DC: LD (HL),$02 ; load with 2 - red ink on black paper +L11DC: LD (HL),#02 ; load with 2 - red ink on black paper DEC HL ; next lower - CP H ; have we reached ROM - $3F ? + CP H ; have we reached ROM - #3F ? JR NZ,L11DC ; back to RAM-FILL if not. ;; RAM-READ @@ -5267,118 +5267,118 @@ L11E2: AND A ; clear carry - prepare to subtract L11EF: DEC HL ; step back to last valid location. EXX ; regardless of state, set up possibly ; stored system variables in case from NEW. - LD ($5CB4),BC ; insert P-RAMT. - LD ($5C38),DE ; insert RASP/PIP. - LD ($5C7B),HL ; insert UDG. + LD (#5CB4),BC ; insert P-RAMT. + LD (#5C38),DE ; insert RASP/PIP. + LD (#5C7B),HL ; insert UDG. EXX ; switch in main set. INC B ; now test if we arrived here from NEW. JR Z,L1219 ; forward to RAM-SET if we did. ; this section applies to START only. - LD ($5CB4),HL ; set P-RAMT to the highest working RAM + LD (#5CB4),HL ; set P-RAMT to the highest working RAM ; address. - LD DE,$3EAF ; address of last byte of 'U' bitmap in ROM. - LD BC,$00A8 ; there are 21 user defined graphics. + LD DE,#3EAF ; address of last byte of 'U' bitmap in ROM. + LD BC,#00A8 ; there are 21 user defined graphics. EX DE,HL ; switch pointers and make the UDGs a LDDR ; copy of the standard characters A - U. EX DE,HL ; switch the pointer to HL. INC HL ; update to start of 'A' in RAM. - LD ($5C7B),HL ; make UDG system variable address the first + LD (#5C7B),HL ; make UDG system variable address the first ; bitmap. DEC HL ; point at RAMTOP again. - LD BC,$0040 ; set the values of - LD ($5C38),BC ; the PIP and RASP system variables. + LD BC,#0040 ; set the values of + LD (#5C38),BC ; the PIP and RASP system variables. ; the NEW command path rejoins here. ;; RAM-SET -L1219: LD ($5CB2),HL ; set system variable RAMTOP to HL. +L1219: LD (#5CB2),HL ; set system variable RAMTOP to HL. - LD HL,$3C00 ; a strange place to set the pointer to the - LD ($5C36),HL ; character set, CHARS - as no printing yet. + LD HL,#3C00 ; a strange place to set the pointer to the + LD (#5C36),HL ; character set, CHARS - as no printing yet. - LD HL,($5CB2) ; fetch RAMTOP to HL again as we've lost it. + LD HL,(#5CB2) ; fetch RAMTOP to HL again as we've lost it. - LD (HL),$3E ; top of user ram holds GOSUB end marker + LD (HL),#3E ; top of user ram holds GOSUB end marker ; an impossible line number - see RETURN. - ; no significance in the number $3E. It has + ; no significance in the number #3E. It has ; been traditional since the ZX80. DEC HL ; followed by empty byte (not important). LD SP,HL ; set up the machine stack pointer. DEC HL ; DEC HL ; - LD ($5C3D),HL ; ERR_SP is where the error pointer is + LD (#5C3D),HL ; ERR_SP is where the error pointer is ; at moment empty - will take address MAIN-4 ; at the call preceding that address, ; although interrupts and calls will make use ; of this location in meantime. IM 1 ; select interrupt mode 1. - LD IY,$5C3A ; set IY to ERR_NR. IY can reach all standard + LD IY,#5C3A ; set IY to ERR_NR. IY can reach all standard ; system variables but shadow ROM system ; variables will be mostly out of range. EI ; enable interrupts now that we have a stack. - LD HL,$5CB6 ; the address of the channels - initially + LD HL,#5CB6 ; the address of the channels - initially ; following system variables. - LD ($5C4F),HL ; set the CHANS system variable. + LD (#5C4F),HL ; set the CHANS system variable. LD DE,L15AF ; address: init-chan in ROM. - LD BC,$0015 ; there are 21 bytes of initial data in ROM. + LD BC,#0015 ; there are 21 bytes of initial data in ROM. EX DE,HL ; swap the pointers. LDIR ; copy the bytes to RAM. EX DE,HL ; swap pointers. HL points to program area. DEC HL ; decrement address. - LD ($5C57),HL ; set DATADD to location before program area. + LD (#5C57),HL ; set DATADD to location before program area. INC HL ; increment again. - LD ($5C53),HL ; set PROG the location where BASIC starts. - LD ($5C4B),HL ; set VARS to same location with a - LD (HL),$80 ; variables end-marker. + LD (#5C53),HL ; set PROG the location where BASIC starts. + LD (#5C4B),HL ; set VARS to same location with a + LD (HL),#80 ; variables end-marker. INC HL ; advance address. - LD ($5C59),HL ; set E_LINE, where the edit line + LD (#5C59),HL ; set E_LINE, where the edit line ; will be created. ; Note. it is not strictly necessary to ; execute the next fifteen bytes of code ; as this will be done by the call to SET-MIN. ; -- - LD (HL),$0D ; initially just has a carriage return + LD (HL),#0D ; initially just has a carriage return INC HL ; followed by - LD (HL),$80 ; an end-marker. + LD (HL),#80 ; an end-marker. INC HL ; address the next location. - LD ($5C61),HL ; set WORKSP - empty workspace. - LD ($5C63),HL ; set STKBOT - bottom of the empty stack. - LD ($5C65),HL ; set STKEND to the end of the empty stack. + LD (#5C61),HL ; set WORKSP - empty workspace. + LD (#5C63),HL ; set STKBOT - bottom of the empty stack. + LD (#5C65),HL ; set STKEND to the end of the empty stack. ; -- - LD A,$38 ; the colour system is set to white paper, + LD A,#38 ; the colour system is set to white paper, ; black ink, no flash or bright. - LD ($5C8D),A ; set ATTR_P permanent colour attributes. - LD ($5C8F),A ; set ATTR_T temporary colour attributes. - LD ($5C48),A ; set BORDCR the border colour/lower screen + LD (#5C8D),A ; set ATTR_P permanent colour attributes. + LD (#5C8F),A ; set ATTR_T temporary colour attributes. + LD (#5C48),A ; set BORDCR the border colour/lower screen ; attributes. - LD HL,$0523 ; The keyboard repeat and delay values - LD ($5C09),HL ; are loaded to REPDEL and REPPER. + LD HL,#0523 ; The keyboard repeat and delay values + LD (#5C09),HL ; are loaded to REPDEL and REPPER. - DEC (IY-$3A) ; set KSTATE-0 to $FF. - DEC (IY-$36) ; set KSTATE-4 to $FF. + DEC (IY-#3A) ; set KSTATE-0 to #FF. + DEC (IY-#36) ; set KSTATE-4 to #FF. ; thereby marking both available. LD HL,L15C6 ; set source to ROM Address: init-strm - LD DE,$5C10 ; set destination to system variable STRMS-FD - LD BC,$000E ; copy the 14 bytes of initial 7 streams data + LD DE,#5C10 ; set destination to system variable STRMS-FD + LD BC,#000E ; copy the 14 bytes of initial 7 streams data LDIR ; from ROM to RAM. - SET 1,(IY+$01) ; update FLAGS - signal printer in use. + SET 1,(IY+#01) ; update FLAGS - signal printer in use. CALL L0EDF ; call routine CLEAR-PRB to initialize system ; variables associated with printer. - LD (IY+$31),$02 ; set DF_SZ the lower screen display size to + LD (IY+#31),#02 ; set DF_SZ the lower screen display size to ; two lines CALL L0D6B ; call routine CLS to set up system ; variables associated with screen and clear @@ -5388,7 +5388,7 @@ L1219: LD ($5CB2),HL ; set system variable RAMTOP to HL. CALL L0C0A ; routine PO-MSG puts ; '(c) 1982 Sinclair Research Ltd' ; at bottom of display. - SET 5,(IY+$02) ; update TV_FLAG - signal lower screen will + SET 5,(IY+#02) ; update TV_FLAG - signal lower screen will ; require clearing. JR L12A9 ; forward to MAIN-1 @@ -5400,7 +5400,7 @@ L1219: LD ($5CB2),HL ; set system variable RAMTOP to HL. ; ;; MAIN-EXEC -L12A2: LD (IY+$31),$02 ; set DF_SZ lower screen display file +L12A2: LD (IY+#31),#02 ; set DF_SZ lower screen display file ; size to 2 lines. CALL L1795 ; routine AUTO-LIST @@ -5408,7 +5408,7 @@ L12A2: LD (IY+$31),$02 ; set DF_SZ lower screen display file L12A9: CALL L16B0 ; routine SET-MIN clears work areas. ;; MAIN-2 -L12AC: LD A,$00 ; select channel 'K' the keyboard +L12AC: LD A,#00 ; select channel 'K' the keyboard CALL L1601 ; routine CHAN-OPEN opens it CALL L0F2C ; routine EDITOR is called. ; Note the above routine is where the Spectrum @@ -5416,21 +5416,21 @@ L12AC: LD A,$00 ; select channel 'K' the keyboard ; most common input at this stage ; is LOAD "". CALL L1B17 ; routine LINE-SCAN scans the input. - BIT 7,(IY+$00) ; test ERR_NR - will be $FF if syntax + BIT 7,(IY+#00) ; test ERR_NR - will be #FF if syntax ; is correct. JR NZ,L12CF ; forward, if correct, to MAIN-3. ; - BIT 4,(IY+$30) ; test FLAGS2 - K channel in use ? + BIT 4,(IY+#30) ; test FLAGS2 - K channel in use ? JR Z,L1303 ; forward to MAIN-4 if not. ; - LD HL,($5C59) ; an editing error so address E_LINE. + LD HL,(#5C59) ; an editing error so address E_LINE. CALL L11A7 ; routine REMOVE-FP removes the hidden ; floating-point forms. - LD (IY+$00),$FF ; system variable ERR_NR is reset to 'OK'. + LD (IY+#00),#FF ; system variable ERR_NR is reset to 'OK'. JR L12AC ; back to MAIN-2 to allow user to correct. ; --- @@ -5438,8 +5438,8 @@ L12AC: LD A,$00 ; select channel 'K' the keyboard ; the branch was here if syntax has passed test. ;; MAIN-3 -L12CF: LD HL,($5C59) ; fetch the edit line address from E_LINE. - LD ($5C5D),HL ; system variable CH_ADD is set to first +L12CF: LD HL,(#5C59) ; fetch the edit line address from E_LINE. + LD (#5C5D),HL ; system variable CH_ADD is set to first ; character of edit line. ; Note. the above two instructions are a little ; inadequate. @@ -5458,21 +5458,21 @@ L12CF: LD HL,($5C59) ; fetch the edit line address from E_LINE. ; Has the user just pressed the ENTER key ? RST 18H ; GET-CHAR gets character addressed by CH_ADD. - CP $0D ; is it a carriage return ? + CP #0D ; is it a carriage return ? JR Z,L12A2 ; back to MAIN-EXEC if so for an automatic ; listing. ; this must be a direct command. - BIT 0,(IY+$30) ; test FLAGS2 - clear the main screen ? + BIT 0,(IY+#30) ; test FLAGS2 - clear the main screen ? CALL NZ,L0DAF ; routine CL-ALL, if so, e.g. after listing. CALL L0D6E ; routine CLS-LOWER anyway. - LD A,$19 ; compute scroll count to 25 minus - SUB (IY+$4F) ; value of S_POSN_hi. - LD ($5C8C),A ; update SCR_CT system variable. - SET 7,(IY+$01) ; update FLAGS - signal running program. - LD (IY+$00),$FF ; set ERR_NR to 'OK'. - LD (IY+$0A),$01 ; set NSPPC to one for first statement. + LD A,#19 ; compute scroll count to 25 minus + SUB (IY+#4F) ; value of S_POSN_hi. + LD (#5C8C),A ; update SCR_CT system variable. + SET 7,(IY+#01) ; update FLAGS - signal running program. + LD (IY+#00),#FF ; set ERR_NR to 'OK'. + LD (IY+#0A),#01 ; set NSPPC to one for first statement. CALL L1B8A ; call routine LINE-RUN to run the line. ; sysvar ERR_SP therefore addresses MAIN-4 @@ -5485,13 +5485,13 @@ L12CF: LD HL,($5C59) ; fetch the edit line address from E_LINE. ;; MAIN-4 L1303: HALT ; wait for interrupt. - RES 5,(IY+$01) ; update FLAGS - signal no new key. - BIT 1,(IY+$30) ; test FLAGS2 - is printer buffer clear ? + RES 5,(IY+#01) ; update FLAGS - signal no new key. + BIT 1,(IY+#30) ; test FLAGS2 - is printer buffer clear ? CALL NZ,L0ECD ; call routine COPY-BUFF if not. ; Note. the programmer has neglected ; to set bit 1 of FLAGS first. - LD A,($5C3A) ; fetch ERR_NR + LD A,(#5C3A) ; fetch ERR_NR INC A ; increment to give true code. ; Now deal with a runtime error as opposed to an editing error. @@ -5500,34 +5500,34 @@ L1303: HALT ; wait for interrupt. ;; MAIN-G L1313: PUSH AF ; save the error number. - LD HL,$0000 ; prepare to clear some system variables. - LD (IY+$37),H ; clear all the bits of FLAGX. - LD (IY+$26),H ; blank X_PTR_hi to suppress error marker. - LD ($5C0B),HL ; blank DEFADD to signal that no defined + LD HL,#0000 ; prepare to clear some system variables. + LD (IY+#37),H ; clear all the bits of FLAGX. + LD (IY+#26),H ; blank X_PTR_hi to suppress error marker. + LD (#5C0B),HL ; blank DEFADD to signal that no defined ; function is currently being evaluated. - LD HL,$0001 ; explicit - inc hl would do. - LD ($5C16),HL ; ensure STRMS-00 is keyboard. + LD HL,#0001 ; explicit - inc hl would do. + LD (#5C16),HL ; ensure STRMS-00 is keyboard. CALL L16B0 ; routine SET-MIN clears workspace etc. - RES 5,(IY+$37) ; update FLAGX - signal in EDIT not INPUT mode. + RES 5,(IY+#37) ; update FLAGX - signal in EDIT not INPUT mode. ; Note. all the bits were reset earlier. CALL L0D6E ; call routine CLS-LOWER. - SET 5,(IY+$02) ; update TV_FLAG - signal lower screen + SET 5,(IY+#02) ; update TV_FLAG - signal lower screen ; requires clearing. POP AF ; bring back the error number LD B,A ; and make a copy in B. - CP $0A ; is it a print-ready digit ? + CP #0A ; is it a print-ready digit ? JR C,L133C ; forward to MAIN-5 if so. - ADD A,$07 ; add ASCII offset to letters. + ADD A,#07 ; add ASCII offset to letters. ;; MAIN-5 L133C: CALL L15EF ; call routine OUT-CODE to print the code. - LD A,$20 ; followed by a space. + LD A,#20 ; followed by a space. RST 10H ; PRINT-A LD A,B ; fetch stored report code. @@ -5538,40 +5538,40 @@ X1349: CALL L3B3B ; Spectrum 128 patch NOP L134D: CALL L0C0A ; routine PO-MSG prints them although it would - ; be more succinct to use RST $10. + ; be more succinct to use RST #10. - LD BC,($5C45) ; fetch PPC the current line number. + LD BC,(#5C45) ; fetch PPC the current line number. CALL L1A1B ; routine OUT-NUM-1 will print that - LD A,$3A ; then a ':'. + LD A,#3A ; then a ':'. RST 10H ; PRINT-A - LD C,(IY+$0D) ; then SUBPPC for statement - LD B,$00 ; limited to 127 + LD C,(IY+#0D) ; then SUBPPC for statement + LD B,#00 ; limited to 127 CALL L1A1B ; routine OUT-NUM-1 CALL L1097 ; routine CLEAR-SP clears editing area. ; which probably contained 'RUN'. - LD A,($5C3A) ; fetch ERR_NR again - INC A ; test for no error originally $FF. + LD A,(#5C3A) ; fetch ERR_NR again + INC A ; test for no error originally #FF. JR Z,L1386 ; forward to MAIN-9 if no error. - CP $09 ; is code Report 9 STOP ? + CP #09 ; is code Report 9 STOP ? JR Z,L1373 ; forward to MAIN-6 if so - CP $15 ; is code Report L Break ? + CP #15 ; is code Report L Break ? JR NZ,L1376 ; forward to MAIN-7 if not ; Stop or Break was encountered so consider CONTINUE. ;; MAIN-6 -L1373: INC (IY+$0D) ; increment SUBPPC to next statement. +L1373: INC (IY+#0D) ; increment SUBPPC to next statement. ;; MAIN-7 -L1376: LD BC,$0003 ; prepare to copy 3 system variables to - LD DE,$5C70 ; address OSPPC - statement for CONTINUE. +L1376: LD BC,#0003 ; prepare to copy 3 system variables to + LD DE,#5C70 ; address OSPPC - statement for CONTINUE. ; also updating OLDPPC line number below. - LD HL,$5C44 ; set source top to NSPPC next statement. + LD HL,#5C44 ; set source top to NSPPC next statement. BIT 7,(HL) ; did BREAK occur before the jump ? ; e.g. between GO TO and next statement. JR Z,L1384 ; skip forward to MAIN-8, if not, as setup @@ -5585,8 +5585,8 @@ L1384: LDDR ; copy PPC to OLDPPC and SUBPPC to OSPCC ; or NSPPC to OLDPPC and NEWPPC to OSPCC ;; MAIN-9 -L1386: LD (IY+$0A),$FF ; update NSPPC - signal 'no jump'. - RES 3,(IY+$01) ; update FLAGS - signal use 'K' mode for +L1386: LD (IY+#0A),#FF ; update NSPPC - signal 'no jump'. + RES 3,(IY+#01) ; update FLAGS - signal use 'K' mode for ; the first character in the editor and JP L12AC ; jump back to MAIN-2. @@ -5595,7 +5595,7 @@ L1386: LD (IY+$0A),$FF ; update NSPPC - signal 'no jump'. ; Canned report messages ; ---------------------- ; The Error reports with the last byte inverted. The first entry -; is a dummy entry. The last, which begins with $7F, the Spectrum +; is a dummy entry. The last, which begins with #7F, the Spectrum ; character for copyright symbol, is placed here for convenience ; as is the preceding comma and space. ; The report line must accommodate a 4-digit line number and a 3-digit @@ -5604,68 +5604,68 @@ L1386: LD (IY+$0A),$FF ; update NSPPC - signal 'no jump'. ; e.g. "B Integer out of range, 1000:127" ;; rpt-mesgs -L1391: DEFB $80 - DEFB 'O','K'+$80 ; 0 +L1391: DEFB #80 + DEFB 'O','K'+#80 ; 0 DEFM "NEXT without FO" - DEFB 'R'+$80 ; 1 + DEFB 'R'+#80 ; 1 DEFM "Variable not foun" - DEFB 'd'+$80 ; 2 + DEFB 'd'+#80 ; 2 DEFM "Subscript wron" - DEFB 'g'+$80 ; 3 + DEFB 'g'+#80 ; 3 DEFM "Out of memor" - DEFB 'y'+$80 ; 4 + DEFB 'y'+#80 ; 4 DEFM "Out of scree" - DEFB 'n'+$80 ; 5 + DEFB 'n'+#80 ; 5 DEFM "Number too bi" - DEFB 'g'+$80 ; 6 + DEFB 'g'+#80 ; 6 DEFM "RETURN without GOSU" - DEFB 'B'+$80 ; 7 + DEFB 'B'+#80 ; 7 DEFM "End of fil" - DEFB 'e'+$80 ; 8 + DEFB 'e'+#80 ; 8 DEFM "STOP statemen" - DEFB 't'+$80 ; 9 + DEFB 't'+#80 ; 9 DEFM "Invalid argumen" - DEFB 't'+$80 ; A + DEFB 't'+#80 ; A DEFM "Integer out of rang" - DEFB 'e'+$80 ; B + DEFB 'e'+#80 ; B DEFM "Nonsense in BASI" - DEFB 'C'+$80 ; C + DEFB 'C'+#80 ; C DEFM "BREAK - CONT repeat" - DEFB 's'+$80 ; D + DEFB 's'+#80 ; D DEFM "Out of DAT" - DEFB 'A'+$80 ; E + DEFB 'A'+#80 ; E DEFM "Invalid file nam" - DEFB 'e'+$80 ; F + DEFB 'e'+#80 ; F DEFM "No room for lin" - DEFB 'e'+$80 ; G + DEFB 'e'+#80 ; G DEFM "STOP in INPU" - DEFB 'T'+$80 ; H + DEFB 'T'+#80 ; H DEFM "FOR without NEX" - DEFB 'T'+$80 ; I + DEFB 'T'+#80 ; I DEFM "Invalid I/O devic" - DEFB 'e'+$80 ; J + DEFB 'e'+#80 ; J DEFM "Invalid colou" - DEFB 'r'+$80 ; K + DEFB 'r'+#80 ; K DEFM "BREAK into progra" - DEFB 'm'+$80 ; L + DEFB 'm'+#80 ; L DEFM "RAMTOP no goo" - DEFB 'd'+$80 ; M + DEFB 'd'+#80 ; M DEFM "Statement los" - DEFB 't'+$80 ; N + DEFB 't'+#80 ; N DEFM "Invalid strea" - DEFB 'm'+$80 ; O + DEFB 'm'+#80 ; O DEFM "FN without DE" - DEFB 'F'+$80 ; P + DEFB 'F'+#80 ; P DEFM "Parameter erro" - DEFB 'r'+$80 ; Q + DEFB 'r'+#80 ; Q DEFM "Tape loading erro" - DEFB 'r'+$80 ; R + DEFB 'r'+#80 ; R ;; comma-sp -L1537: DEFB ',',' '+$80 ; used in report line. +L1537: DEFB ',',' '+#80 ; used in report line. ;; copyright -L1539: DEFB $7F ; copyright +L1539: DEFB #7F ; copyright DEFM " 1982 Sinclair Research Lt" - DEFB 'd'+$80 + DEFB 'd'+#80 ; ------------- @@ -5677,8 +5677,8 @@ L1539: DEFB $7F ; copyright ;; REPORT-G ; No Room for line -L1555: LD A,$10 ; i.e. 'G' -$30 -$07 - LD BC,$0000 ; this seems unnecessary. +L1555: LD A,#10 ; i.e. 'G' -#30 -#07 + LD BC,#0000 ; this seems unnecessary. JP L1313 ; jump back to MAIN-G ; ----------------------------- @@ -5692,8 +5692,8 @@ L1555: LD A,$10 ; i.e. 'G' -$30 -$07 ; Entering a non-existent line allows the subsequent line to be edited next. ;; MAIN-ADD -L155D: LD ($5C49),BC ; set E_PPC to extracted line number. - LD HL,($5C5D) ; fetch CH_ADD - points to location after the +L155D: LD (#5C49),BC ; set E_PPC to extracted line number. + LD HL,(#5C5D) ; fetch CH_ADD - points to location after the ; initial digits (set in E_LINE_NO). EX DE,HL ; save start of BASIC in DE. @@ -5702,7 +5702,7 @@ L155D: LD ($5C49),BC ; set E_PPC to extracted line number. ; the only error that can occur is ; 'Out of memory'. - LD HL,($5C61) ; fetch WORKSP - end of line. + LD HL,(#5C61) ; fetch WORKSP - end of line. SCF ; prepare for true subtraction. SBC HL,DE ; find length of BASIC and PUSH HL ; save it on stack. @@ -5729,24 +5729,24 @@ L157D: POP BC ; retrieve the length of the new line. INC BC ; (two bytes). DEC HL ; HL points to location before the destination - LD DE,($5C53) ; fetch the address of PROG + LD DE,(#5C53) ; fetch the address of PROG PUSH DE ; and save it on the stack CALL L1655 ; routine MAKE-ROOM creates BC spaces in ; program area and updates pointers. POP HL ; restore old program pointer. - LD ($5C53),HL ; and put back in PROG as it may have been + LD (#5C53),HL ; and put back in PROG as it may have been ; altered by the POINTERS routine. POP BC ; retrieve BASIC length PUSH BC ; and save again. INC DE ; points to end of new area. - LD HL,($5C61) ; set HL to WORKSP - location after edit line. + LD HL,(#5C61) ; set HL to WORKSP - location after edit line. DEC HL ; decrement to address end marker. DEC HL ; decrement to address carriage return. LDDR ; copy the BASIC line back to initial command. - LD HL,($5C49) ; fetch E_PPC - line number. + LD HL,(#5C49) ; fetch E_PPC - line number. EX DE,HL ; swap it to DE, HL points to last of ; four locations. POP BC ; retrieve length of line. @@ -5756,7 +5756,7 @@ L157D: POP BC ; retrieve the length of the new line. DEC HL ; LD (HL),E ; then low byte of line number. DEC HL ; - LD (HL),D ; then high byte range $0 - $27 (1-9999). + LD (HL),D ; then high byte range #0 - #27 (1-9999). ;; MAIN-ADD2 L15AB: POP AF ; drop the address of Report G @@ -5777,28 +5777,28 @@ L15AB: POP AF ; drop the address of Report G ;; init-chan L15AF: DEFW L09F4 ; PRINT-OUT DEFW L10A8 ; KEY-INPUT - DEFB $4B ; 'K' + DEFB #4B ; 'K' DEFW L09F4 ; PRINT-OUT DEFW L15C4 ; REPORT-J - DEFB $53 ; 'S' + DEFB #53 ; 'S' DEFW L0F81 ; ADD-CHAR DEFW L15C4 ; REPORT-J - DEFB $52 ; 'R' + DEFB #52 ; 'R' DEFW L09F4 ; PRINT-OUT DEFW L15C4 ; REPORT-J - DEFB $50 ; 'P' + DEFB #50 ; 'P' - DEFB $80 ; End Marker + DEFB #80 ; End Marker ;; REPORT-J L15C4: RST 08H ; ERROR-1 - DEFB $12 ; Error Report: Invalid I/O device + DEFB #12 ; Error Report: Invalid I/O device ; ------------------- ; Initial stream data ; ------------------- -; This is the initial stream data for the seven streams $FD - $03 that is +; This is the initial stream data for the seven streams #FD - #03 that is ; copied from ROM to the STRMS system variables area during initialization. ; There are reserved locations there for another 12 streams. ; Each location contains an offset to the second byte of a channel. @@ -5806,14 +5806,14 @@ L15C4: RST 08H ; ERROR-1 ; offset of zero for some and zero is used to denote that a stream is closed. ;; init-strm -L15C6: DEFB $01, $00 ; stream $FD offset to channel 'K' - DEFB $06, $00 ; stream $FE offset to channel 'S' - DEFB $0B, $00 ; stream $FF offset to channel 'R' +L15C6: DEFB #01, #00 ; stream #FD offset to channel 'K' + DEFB #06, #00 ; stream #FE offset to channel 'S' + DEFB #0B, #00 ; stream #FF offset to channel 'R' - DEFB $01, $00 ; stream $00 offset to channel 'K' - DEFB $01, $00 ; stream $01 offset to channel 'K' - DEFB $06, $00 ; stream $02 offset to channel 'S' - DEFB $10, $00 ; stream $03 offset to channel 'P' + DEFB #01, #00 ; stream #00 offset to channel 'K' + DEFB #01, #00 ; stream #01 offset to channel 'K' + DEFB #06, #00 ; stream #02 offset to channel 'S' + DEFB #10, #00 ; stream #03 offset to channel 'P' ; ---------------------------- ; Control for input subroutine @@ -5821,10 +5821,10 @@ L15C6: DEFB $01, $00 ; stream $FD offset to channel 'K' ; ;; WAIT-KEY -L15D4: BIT 5,(IY+$02) ; test TV_FLAG - clear lower screen ? +L15D4: BIT 5,(IY+#02) ; test TV_FLAG - clear lower screen ? JR NZ,L15DE ; forward to WAIT-KEY1 if so. - SET 3,(IY+$02) ; update TV_FLAG - signal reprint the edit + SET 3,(IY+#02) ; update TV_FLAG - signal reprint the edit ; line to the lower screen. ;; WAIT-KEY1 @@ -5839,7 +5839,7 @@ L15DE: CALL L15E6 ; routine INPUT-AD is called. ;; REPORT-8 L15E4: RST 08H ; ERROR-1 - DEFB $07 ; Error Report: End of file + DEFB #07 ; Error Report: End of file ; ------------------------------ ; Make HL point to input address @@ -5850,7 +5850,7 @@ L15E4: RST 08H ; ERROR-1 ;; INPUT-AD L15E6: EXX ; switch in alternate set. PUSH HL ; save HL register - LD HL,($5C51) ; fetch address of CURCHL - current channel. + LD HL,(#5C51) ; fetch address of CURCHL - current channel. INC HL ; step over output routine INC HL ; to point to low byte of input routine. JR L15F7 ; forward to CALL-SUB. @@ -5864,16 +5864,16 @@ L15E6: EXX ; switch in alternate set. ; PRINT-A-2 is a continuation of the RST 10 to print any character. ; Both print to the current channel and the printing of control codes ; may alter that channel to divert subsequent RST 10 instructions -; to temporary routines. The normal channel is $09F4. +; to temporary routines. The normal channel is #09F4. ;; OUT-CODE -L15EF: LD E,$30 ; add 48 decimal to give ASCII +L15EF: LD E,#30 ; add 48 decimal to give ASCII ADD A,E ; character '0' to '9'. ;; PRINT-A-2 L15F2: EXX ; switch in alternate set PUSH HL ; save HL register - LD HL,($5C51) ; fetch CURCHL the current channel. + LD HL,(#5C51) ; fetch CURCHL the current channel. ; input-ad rejoins here also. @@ -5896,14 +5896,14 @@ L15F7: LD E,(HL) ; put the low byte in E. ; This is either for its own use or in response to a user's request, for ; example, when '#' is encountered with output - PRINT, LIST etc. ; or with input - INPUT, INKEY$ etc. -; it is entered with a system stream $FD - $FF, or a user stream $00 - $0F +; it is entered with a system stream #FD - #FF, or a user stream #00 - #0F ; in the accumulator. ;; CHAN-OPEN -L1601: ADD A,A ; double the stream ($FF will become $FE etc.) - ADD A,$16 ; add the offset to stream 0 from $5C00 +L1601: ADD A,A ; double the stream (#FF will become #FE etc.) + ADD A,#16 ; add the offset to stream 0 from #5C00 LD L,A ; result to L - LD H,$5C ; now form the address in STRMS area. + LD H,#5C ; now form the address in STRMS area. LD E,(HL) ; fetch low byte of CHANS offset INC HL ; address next LD D,(HL) ; fetch high byte of offset @@ -5913,14 +5913,14 @@ L1601: ADD A,A ; double the stream ($FF will become $FE etc.) ;; REPORT-Oa L160E: RST 08H ; ERROR-1 - DEFB $17 ; Error Report: Invalid stream + DEFB #17 ; Error Report: Invalid stream ; continue here if stream was open. Note that the offset is from CHANS ; to the second byte of the channel. ;; CHAN-OP-1 L1610: DEC DE ; reduce offset so it points to the channel. - LD HL,($5C4F) ; fetch CHANS the location of the base of + LD HL,(#5C4F) ; fetch CHANS the location of the base of ; the channel information area ADD HL,DE ; and add the offset to address the channel. ; and continue to set flags. @@ -5932,9 +5932,9 @@ L1610: DEC DE ; reduce offset so it points to the channel. ; current channel when it has been temporarily altered. ;; CHAN-FLAG -L1615: LD ($5C51),HL ; set CURCHL system variable to the +L1615: LD (#5C51),HL ; set CURCHL system variable to the ; address in HL - RES 4,(IY+$30) ; update FLAGS2 - signal K channel not in use. + RES 4,(IY+#30) ; update FLAGS2 - signal K channel not in use. ; Note. provide a default for channel 'R'. INC HL ; advance past INC HL ; output routine. @@ -5948,7 +5948,7 @@ L1615: LD ($5C51),HL ; set CURCHL system variable to the RET NC ; but if the letter wasn't found in the ; table just return now. - channel 'R'. - LD D,$00 ; prepare to add + LD D,#00 ; prepare to add LD E,(HL) ; offset to E ADD HL,DE ; add offset to location of offset to form ; address of routine @@ -5967,11 +5967,11 @@ L162C: JP (HL) ; jump to the routine ; A zero end-marker is required as channel 'R' is not present. ;; chn-cd-lu -L162D: DEFB 'K', L1634-$-1 ; offset $06 to CHAN-K - DEFB 'S', L1642-$-1 ; offset $12 to CHAN-S - DEFB 'P', L164D-$-1 ; offset $1B to CHAN-P +L162D: DEFB 'K', L1634-$-1 ; offset #06 to CHAN-K + DEFB 'S', L1642-$-1 ; offset #12 to CHAN-S + DEFB 'P', L164D-$-1 ; offset #1B to CHAN-P - DEFB $00 ; end marker. + DEFB #00 ; end marker. ; -------------- ; Channel K flag @@ -5979,9 +5979,9 @@ L162D: DEFB 'K', L1634-$-1 ; offset $06 to CHAN-K ; routine to set flags for lower screen/keyboard channel. ;; CHAN-K -L1634: SET 0,(IY+$02) ; update TV_FLAG - signal lower screen in use - RES 5,(IY+$01) ; update FLAGS - signal no new key - SET 4,(IY+$30) ; update FLAGS2 - signal K channel in use +L1634: SET 0,(IY+#02) ; update TV_FLAG - signal lower screen in use + RES 5,(IY+#01) ; update FLAGS - signal no new key + SET 4,(IY+#30) ; update FLAGS2 - signal K channel in use JR L1646 ; forward to CHAN-S-1 for indirect exit ; -------------- @@ -5990,10 +5990,10 @@ L1634: SET 0,(IY+$02) ; update TV_FLAG - signal lower screen in use ; routine to set flags for upper screen channel. ;; CHAN-S -L1642: RES 0,(IY+$02) ; TV_FLAG - signal main screen in use +L1642: RES 0,(IY+#02) ; TV_FLAG - signal main screen in use ;; CHAN-S-1 -L1646: RES 1,(IY+$01) ; update FLAGS - signal printer not in use +L1646: RES 1,(IY+#01) ; update FLAGS - signal printer not in use JP L0D4D ; jump back to TEMPS and exit via that ; routine after setting temporary attributes. ; -------------- @@ -6004,20 +6004,20 @@ L1646: RES 1,(IY+$01) ; update FLAGS - signal printer not in use ; This status remains in force until reset by the routine above. ;; CHAN-P -L164D: SET 1,(IY+$01) ; update FLAGS - signal printer in use +L164D: SET 1,(IY+#01) ; update FLAGS - signal printer in use RET ; return ; ----------------------- ; Just one space required ; ----------------------- ; This routine is called once only to create a single space -; in workspace by ADD-CHAR. It is slightly quicker than using a RST $30. +; in workspace by ADD-CHAR. It is slightly quicker than using a RST #30. ; There are several instances in the calculator where the sequence -; ld bc, 1; rst $30 could be replaced by a call to this routine but it +; ld bc, 1; rst #30 could be replaced by a call to this routine but it ; only gives a saving of one byte each time. ;; ONE-SPACE -L1652: LD BC,$0001 ; create space for a single character. +L1652: LD BC,#0001 ; create space for a single character. ; --------- ; Make Room @@ -6036,7 +6036,7 @@ L1655: PUSH HL ; save the address pointer. CALL L1664 ; routine POINTERS updates the ; dynamic memory location pointers. ; DE now holds the old value of STKEND. - LD HL,($5C65) ; fetch new STKEND the top destination. + LD HL,(#5C65) ; fetch new STKEND the top destination. EX DE,HL ; HL now addresses the top of the area to ; be moved up - old STKEND. @@ -6059,8 +6059,8 @@ L1655: PUSH HL ; save the address pointer. ;; POINTERS L1664: PUSH AF ; preserve accumulator. PUSH HL ; put pos pointer on stack. - LD HL,$5C4B ; address VARS the first of the - LD A,$0E ; fourteen variables to consider. + LD HL,#5C4B ; address VARS the first of the + LD A,#0E ; fourteen variables to consider. ;; PTR-NEXT L166B: LD E,(HL) ; fetch the low byte of the system variable. @@ -6112,22 +6112,22 @@ L167F: INC HL ; address next system variable. ; been found using LINE-ADDR, and it is entered at LINE-NO. If it encounters ; the program 'end-marker' then the previous line is used and if that ; should also be unacceptable then zero is used as it must be a direct -; command. The program end-marker is the variables end-marker $80, or +; command. The program end-marker is the variables end-marker #80, or ; if variables exist, then the first character of any variable name. ;; LINE-ZERO -L168F: DEFB $00, $00 ; dummy line number used for direct commands +L168F: DEFB #00, #00 ; dummy line number used for direct commands ;; LINE-NO-A L1691: EX DE,HL ; fetch the previous line to HL and set - LD DE,$168F ; DE to LINE-ZERO should HL also fail. + LD DE,#168F ; DE to LINE-ZERO should HL also fail. ; -> The Entry Point. ;; LINE-NO -L1695: LD A,(HL) ; fetch the high byte - max $2F - AND $C0 ; mask off the invalid bits. +L1695: LD A,(HL) ; fetch the high byte - max #2F + AND #C0 ; mask off the invalid bits. JR NZ,L1691 ; to LINE-NO-A if an end-marker. LD D,(HL) ; reload the high byte. @@ -6141,13 +6141,13 @@ L1695: LD A,(HL) ; fetch the high byte - max $2F ; This is a continuation of the restart BC-SPACES ;; RESERVE -L169E: LD HL,($5C63) ; STKBOT first location of calculator stack +L169E: LD HL,(#5C63) ; STKBOT first location of calculator stack DEC HL ; make one less than new location CALL L1655 ; routine MAKE-ROOM creates the room. INC HL ; address the first new location INC HL ; advance to second POP BC ; restore old WORKSP - LD ($5C61),BC ; system variable WORKSP was perhaps + LD (#5C61),BC ; system variable WORKSP was perhaps ; changed by POINTERS routine. POP BC ; restore count for return value. EX DE,HL ; switch. DE = location after first new space @@ -6168,31 +6168,31 @@ L169E: LD HL,($5C63) ; STKBOT first location of calculator stack ; displaying an error. ;; SET-MIN -L16B0: LD HL,($5C59) ; fetch E_LINE - LD (HL),$0D ; insert carriage return - LD ($5C5B),HL ; make K_CUR keyboard cursor point there. +L16B0: LD HL,(#5C59) ; fetch E_LINE + LD (HL),#0D ; insert carriage return + LD (#5C5B),HL ; make K_CUR keyboard cursor point there. INC HL ; next location - LD (HL),$80 ; holds end-marker $80 + LD (HL),#80 ; holds end-marker #80 INC HL ; next location becomes - LD ($5C61),HL ; start of WORKSP + LD (#5C61),HL ; start of WORKSP ; This entry point is used prior to input and prior to the execution, ; or parsing, of each statement. ;; SET-WORK -L16BF: LD HL,($5C61) ; fetch WORKSP value - LD ($5C63),HL ; and place in STKBOT +L16BF: LD HL,(#5C61) ; fetch WORKSP value + LD (#5C63),HL ; and place in STKBOT ; This entry point is used to move the stack back to its normal place ; after temporary relocation during line entry and also from ERROR-3 ;; SET-STK -L16C5: LD HL,($5C63) ; fetch STKBOT value - LD ($5C65),HL ; and place in STKEND. +L16C5: LD HL,(#5C63) ; fetch STKBOT value + LD (#5C65),HL ; and place in STKEND. PUSH HL ; perhaps an obsolete entry point. - LD HL,$5C92 ; normal location of MEM-0 - LD ($5C68),HL ; is restored to system variable MEM. + LD HL,#5C92 ; normal location of MEM-0 + LD (#5C68),HL ; is restored to system variable MEM. POP HL ; saved value not required. RET ; return. @@ -6207,7 +6207,7 @@ L16C5: LD HL,($5C63) ; fetch STKBOT value ; On entry, HL must point to the end of the something to be deleted. ;; REC-EDIT -L16D4: LD DE,($5C59) ; fetch start of edit line from E_LINE. +L16D4: LD DE,(#5C59) ; fetch start of edit line from E_LINE. JP L19E5 ; jump forward to RECLAIM-1. ; -------------------------- @@ -6286,9 +6286,9 @@ L16E5: CALL L171E ; routine STR-DATA fetches parameter ; peculiar to that stream without disturbing ; data pointer to STRMS entry in HL. - LD BC,$0000 ; the stream is to be blanked. - LD DE,$A3E2 ; the number of bytes from stream 4, $5C1E, - ; to $10000 + LD BC,#0000 ; the stream is to be blanked. + LD DE,#A3E2 ; the number of bytes from stream 4, #5C1E, + ; to #10000 EX DE,HL ; transfer offset to HL, STRMS data pointer ; to DE. ADD HL,DE ; add the offset to the data pointer. @@ -6298,7 +6298,7 @@ L16E5: CALL L171E ; routine STR-DATA fetches parameter ; proceed with a negative result. LD BC,L15C6 + 14 ; prepare the address of the byte after - ; the initial stream data in ROM. ($15D4) + ; the initial stream data in ROM. (#15D4) ADD HL,BC ; index into the data table with negative value. LD C,(HL) ; low byte to C INC HL ; address next. @@ -6327,7 +6327,7 @@ L16FC: EX DE,HL ; address of stream to HL. ;; CLOSE-2 L1701: PUSH HL ; * save address of stream data pointer ; in STRMS on the machine stack. - LD HL,($5C4F) ; fetch CHANS address to HL + LD HL,(#5C4F) ; fetch CHANS address to HL ADD HL,BC ; add the offset to address the second ; byte of the output routine hopefully. INC HL ; step past @@ -6335,15 +6335,15 @@ L1701: PUSH HL ; * save address of stream data pointer INC HL ; to address channel's letter LD C,(HL) ; pick it up in C. ; Note. but if stream is already closed we - ; get the value $10 (the byte preceding 'K'). + ; get the value #10 (the byte preceding 'K'). EX DE,HL ; save the pointer to the letter in DE. LD HL,L1716 ; address: cl-str-lu in ROM. CALL L16DC ; routine INDEXER uses the code to get ; the 8-bit offset from the current point to ; the address of the closing routine in ROM. - ; Note. it won't find $10 there! + ; Note. it won't find #10 there! LD C,(HL) ; transfer the offset to C. - LD B,$00 ; prepare to add. + LD B,#00 ; prepare to add. ADD HL,BC ; add offset to point to the address of the ; routine that closes the stream. ; (and presumably removes any buffers that @@ -6387,22 +6387,22 @@ L171C: POP HL ; * now just restore the stream data pointer ;; STR-DATA L171E: CALL L1E94 ; routine FIND-INT1 fetches parameter to A - CP $10 ; is it less than 16d ? + CP #10 ; is it less than 16d ? JR C,L1727 ; skip forward to STR-DATA1 if so. ;; REPORT-Ob L1725: RST 08H ; ERROR-1 - DEFB $17 ; Error Report: Invalid stream + DEFB #17 ; Error Report: Invalid stream ;; STR-DATA1 -L1727: ADD A,$03 ; add the offset for 3 system streams. +L1727: ADD A,#03 ; add the offset for 3 system streams. ; range 00 - 15d becomes 3 - 18d. RLCA ; double as there are two bytes per ; stream - now 06 - 36d - LD HL,$5C10 ; address STRMS - the start of the streams + LD HL,#5C10 ; address STRMS - the start of the streams ; data area in system variables. LD C,A ; transfer the low byte to A. - LD B,$00 ; prepare to add offset. + LD B,#00 ; prepare to add offset. ADD HL,BC ; add to address the data entry in STRMS. ; the data entry itself contains an offset from CHANS to the address of the @@ -6425,8 +6425,8 @@ L1727: ADD A,$03 ; add the offset for 3 system streams. ;; OPEN L1736: RST 28H ;; FP-CALC ;s,c. - DEFB $01 ;;exchange ;c,s. - DEFB $38 ;;end-calc + DEFB #01 ;;exchange ;c,s. + DEFB #38 ;;end-calc CALL L171E ; routine STR-DATA fetches the stream off ; the stack and returns with the CHANS @@ -6439,7 +6439,7 @@ L1736: RST 28H ;; FP-CALC ;s,c. ; if it is a system channel then it can re-attached. EX DE,HL ; save STRMS address in DE. - LD HL,($5C4F) ; fetch CHANS. + LD HL,(#5C4F) ; fetch CHANS. ADD HL,BC ; add the offset to address the second ; byte of the channel. INC HL ; skip over the @@ -6449,13 +6449,13 @@ L1736: RST 28H ;; FP-CALC ;s,c. EX DE,HL ; save letter pointer and bring back ; the STRMS pointer. - CP $4B ; is it 'K' ? + CP #4B ; is it 'K' ? JR Z,L1756 ; forward to OPEN-1 if so - CP $53 ; is it 'S' ? + CP #53 ; is it 'S' ? JR Z,L1756 ; forward to OPEN-1 if so - CP $50 ; is it 'P' ? + CP #50 ; is it 'P' ? JR NZ,L1725 ; back to REPORT-Ob if not. ; to report 'Invalid stream'. @@ -6491,7 +6491,7 @@ L175D: PUSH HL ; * save the STRMS data entry pointer. ;; REPORT-Fb L1765: RST 08H ; ERROR-1 - DEFB $0E ; Error Report: Invalid file name + DEFB #0E ; Error Report: Invalid file name ;; OPEN-3 L1767: PUSH BC ; save the length of the string. @@ -6500,7 +6500,7 @@ L1767: PUSH BC ; save the length of the string. ; distinguish between a binary or text ; channel then it will be simply a matter ; of setting bit 7 of FLAGX. - AND $DF ; make it upper-case. + AND #DF ; make it upper-case. LD C,A ; place it in C. LD HL,L177A ; address: op-str-lu is loaded. CALL L16DC ; routine INDEXER will search for letter. @@ -6508,7 +6508,7 @@ L1767: PUSH BC ; save the length of the string. ; 'Invalid filename' LD C,(HL) ; fetch the displacement to opening routine. - LD B,$00 ; prepare to add. + LD B,#00 ; prepare to add. ADD HL,BC ; now form address of opening routine. POP BC ; restore the length of string. JP (HL) ; now jump forward to the relevant routine. @@ -6523,11 +6523,11 @@ L1767: PUSH BC ; save the length of the string. ; provided by the user and not the operating system. ;; op-str-lu -L177A: DEFB 'K', L1781-$-1 ; $06 offset to OPEN-K - DEFB 'S', L1785-$-1 ; $08 offset to OPEN-S - DEFB 'P', L1789-$-1 ; $0A offset to OPEN-P +L177A: DEFB 'K', L1781-$-1 ; #06 offset to OPEN-K + DEFB 'S', L1785-$-1 ; #08 offset to OPEN-S + DEFB 'P', L1789-$-1 ; #0A offset to OPEN-P - DEFB $00 ; end-marker. + DEFB #00 ; end-marker. ; ---------------------------- ; The Stream Opening Routines. @@ -6551,7 +6551,7 @@ L177A: DEFB 'K', L1781-$-1 ; $06 offset to OPEN-K ; Something of significance is being passed to these ghost routines in the ; second character. Strings 'RB', 'RT' perhaps or a drive/station number. ; The routine would have to deal with that and exit to OPEN_END with BC -; containing $0001 or more likely there would be an exit within the routine. +; containing #0001 or more likely there would be an exit within the routine. ; Anyway doesn't matter, these routines are long gone. ; ----------------- @@ -6560,7 +6560,7 @@ L177A: DEFB 'K', L1781-$-1 ; $06 offset to OPEN-K ; Open Keyboard stream. ;; OPEN-K -L1781: LD E,$01 ; 01 is offset to second byte of channel 'K'. +L1781: LD E,#01 ; 01 is offset to second byte of channel 'K'. JR L178B ; forward to OPEN-END ; ----------------- @@ -6569,7 +6569,7 @@ L1781: LD E,$01 ; 01 is offset to second byte of channel 'K'. ; Open Screen stream. ;; OPEN-S -L1785: LD E,$06 ; 06 is offset to 2nd byte of channel 'S' +L1785: LD E,#06 ; 06 is offset to 2nd byte of channel 'S' JR L178B ; to OPEN-END ; ----------------- @@ -6578,7 +6578,7 @@ L1785: LD E,$06 ; 06 is offset to 2nd byte of channel 'S' ; Open Printer stream. ;; OPEN-P -L1789: LD E,$10 ; 16d is offset to 2nd byte of channel 'P' +L1789: LD E,#10 ; 16d is offset to 2nd byte of channel 'P' ;; OPEN-END L178B: DEC BC ; the stored length of 'K','S','P' or @@ -6600,7 +6600,7 @@ L178B: DEC BC ; the stored length of 'K','S','P' or ; ; Luckily this provides a mechanism for extending these in a shadow ROM ; but without the powerful mechanisms set up in this ROM. -; An instruction fetch on $0008 may page in a peripheral ROM, +; An instruction fetch on #0008 may page in a peripheral ROM, ; e.g. the Sinclair Interface 1 ROM, to handle these commands. ; However that wasn't the plan. ; Development of this ROM continued for another three months until the cost @@ -6616,19 +6616,19 @@ L1793: JR L1725 ; to REPORT-Ob ; This produces an automatic listing in the upper screen. ;; AUTO-LIST -L1795: LD ($5C3F),SP ; save stack pointer in LIST_SP - LD (IY+$02),$10 ; update TV_FLAG set bit 3 +L1795: LD (#5C3F),SP ; save stack pointer in LIST_SP + LD (IY+#02),#10 ; update TV_FLAG set bit 3 CALL L0DAF ; routine CL-ALL. - SET 0,(IY+$02) ; update TV_FLAG - signal lower screen in use + SET 0,(IY+#02) ; update TV_FLAG - signal lower screen in use - LD B,(IY+$31) ; fetch DF_SZ to B. + LD B,(IY+#31) ; fetch DF_SZ to B. CALL L0E44 ; routine CL-LINE clears lower display ; preserving B. - RES 0,(IY+$02) ; update TV_FLAG - signal main screen in use - SET 0,(IY+$30) ; update FLAGS2 - signal unnecessary to + RES 0,(IY+#02) ; update TV_FLAG - signal main screen in use + SET 0,(IY+#30) ; update FLAGS2 - signal unnecessary to ; clear main screen. - LD HL,($5C49) ; fetch E_PPC current edit line to HL. - LD DE,($5C6C) ; fetch S_TOP to DE, the current top line + LD HL,(#5C49) ; fetch E_PPC current edit line to HL. + LD DE,(#5C6C) ; fetch S_TOP to DE, the current top line ; (initially zero) AND A ; prepare for true subtraction. SBC HL,DE ; subtract and @@ -6638,7 +6638,7 @@ L1795: LD ($5C3F),SP ; save stack pointer in LIST_SP PUSH DE ; save the top line number. CALL L196E ; routine LINE-ADDR gets address of E_PPC. - LD DE,$02C0 ; prepare known number of characters in + LD DE,#02C0 ; prepare known number of characters in ; the default upper screen. EX DE,HL ; offset to HL, program address to DE. SBC HL,DE ; subtract high value from low to obtain @@ -6661,7 +6661,7 @@ L17CE: PUSH BC ; save the result. INC HL ; number LD E,(HL) ; in DE. DEC HL ; adjust back to start. - LD ($5C6C),DE ; update S_TOP. + LD (#5C6C),DE ; update S_TOP. JR L17CE ; to AUTO-L-1 until estimate reached. ; --- @@ -6669,13 +6669,13 @@ L17CE: PUSH BC ; save the result. ; the jump was to here if S_TOP was greater than E_PPC ;; AUTO-L-2 -L17E1: LD ($5C6C),HL ; make S_TOP the same as E_PPC. +L17E1: LD (#5C6C),HL ; make S_TOP the same as E_PPC. ; continue here with valid starting point from above or good estimate ; from computation ;; AUTO-L-3 -L17E4: LD HL,($5C6C) ; fetch S_TOP line number to HL. +L17E4: LD HL,(#5C6C) ; fetch S_TOP line number to HL. CALL L196E ; routine LINE-ADDR gets address in HL. ; address of next in DE. JR Z,L17ED ; to AUTO-L-4 if line exists. @@ -6687,7 +6687,7 @@ L17ED: CALL L1833 ; routine LIST-ALL >>> ; The return will be to here if no scrolling occurred - RES 4,(IY+$02) ; update TV_FLAG - signal no auto listing. + RES 4,(IY+#02) ; update TV_FLAG - signal no auto listing. RET ; return. ; ------------ @@ -6696,7 +6696,7 @@ L17ED: CALL L1833 ; routine LIST-ALL >>> ; A short form of LIST #3. The listing goes to stream 3 - default printer. ;; LLIST -L17F5: LD A,$03 ; the usual stream for ZX Printer +L17F5: LD A,#03 ; the usual stream for ZX Printer JR L17FB ; forward to LIST-1 ; ----------- @@ -6708,10 +6708,10 @@ L17F5: LD A,$03 ; the usual stream for ZX Printer ; Just listing a line makes it the current edit line. ;; LIST -L17F9: LD A,$02 ; default is stream 2 - the upper screen. +L17F9: LD A,#02 ; default is stream 2 - the upper screen. ;; LIST-1 -L17FB: LD (IY+$02),$00 ; the TV_FLAG is initialized with bit 0 reset +L17FB: LD (IY+#02),#00 ; the TV_FLAG is initialized with bit 0 reset ; indicating upper screen in use. CALL L2530 ; routine SYNTAX-Z - checking syntax ? CALL NZ,L1601 ; routine CHAN-OPEN if in run-time. @@ -6722,10 +6722,10 @@ L17FB: LD (IY+$02),$00 ; the TV_FLAG is initialized with bit 0 reset RST 18H ; GET-CHAR - CP $3B ; is it ';' ? + CP #3B ; is it ';' ? JR Z,L1814 ; skip to LIST-2 if so. - CP $2C ; is it ',' ? + CP #2C ; is it ',' ? JR NZ,L181A ; forward to LIST-3 if neither separator. ; we have, say, LIST #15, and a number must follow the separator. @@ -6757,7 +6757,7 @@ L1822: CALL L1BEE ; routine CHECK-END quits if syntax OK >>> CALL L1E99 ; routine FIND-INT2 fetches the number ; from the calculator stack in run-time. LD A,B ; fetch high byte of line number and - AND $3F ; make less than $40 so that NEXT-ONE + AND #3F ; make less than #40 so that NEXT-ONE ; (from LINE-ADDR) doesn't lose context. ; Note. this is not satisfactory and the typo ; LIST 20000 will list an entirely different @@ -6767,14 +6767,14 @@ L1822: CALL L1BEE ; routine CHECK-END quits if syntax OK >>> LD H,A ; transfer the modified LD L,C ; line number to HL. - LD ($5C49),HL ; update E_PPC to new line number. + LD (#5C49),HL ; update E_PPC to new line number. CALL L196E ; routine LINE-ADDR gets the address of the ; line. ; This routine is called from AUTO-LIST ;; LIST-ALL -L1833: LD E,$01 ; signal current line not yet printed +L1833: LD E,#01 ; signal current line not yet printed ;; LIST-ALL-2 L1835: CALL L1855 ; routine OUT-LINE outputs a BASIC line @@ -6783,14 +6783,14 @@ L1835: CALL L1855 ; routine OUT-LINE outputs a BASIC line RST 10H ; PRINT-A prints the carriage return (in A) - BIT 4,(IY+$02) ; test TV_FLAG - automatic listing ? + BIT 4,(IY+#02) ; test TV_FLAG - automatic listing ? JR Z,L1835 ; back to LIST-ALL-2 if not ; (loop exit is via OUT-LINE) ; continue here if an automatic listing required. - LD A,($5C6B) ; fetch DF_SZ lower display file size. - SUB (IY+$4F) ; subtract S_POSN_hi ithe current line number. + LD A,(#5C6B) ; fetch DF_SZ lower display file size. + SUB (IY+#4F) ; subtract S_POSN_hi ithe current line number. JR NZ,L1835 ; back to LIST-ALL-2 if upper screen not full. XOR E ; A contains zero, E contains one if the @@ -6804,7 +6804,7 @@ L1835: CALL L1855 ; routine OUT-LINE outputs a BASIC line PUSH HL ; save the pointer address. PUSH DE ; save the E flag. - LD HL,$5C6C ; fetch S_TOP the rough estimate. + LD HL,#5C6C ; fetch S_TOP the rough estimate. CALL L190F ; routine LN-FETCH updates S_TOP with ; the number of the next line. POP DE ; restore the E flag. @@ -6819,20 +6819,20 @@ L1835: CALL L1855 ; routine OUT-LINE outputs a BASIC line ; and from ED-EDIT to 'sprint' the line to the edit buffer. ;; OUT-LINE -L1855: LD BC,($5C49) ; fetch E_PPC the current line which may be +L1855: LD BC,(#5C49) ; fetch E_PPC the current line which may be ; unchecked and not exist. CALL L1980 ; routine CP-LINES finds match or line after. - LD D,$3E ; prepare cursor '>' in D. + LD D,#3E ; prepare cursor '>' in D. JR Z,L1865 ; to OUT-LINE1 if matched or line after. - LD DE,$0000 ; put zero in D, to suppress line cursor. + LD DE,#0000 ; put zero in D, to suppress line cursor. RL E ; pick up carry in E if line before current ; leave E zero if same or after. ;; OUT-LINE1 -L1865: LD (IY+$2D),E ; save flag in BREG which is spare. +L1865: LD (IY+#2D),E ; save flag in BREG which is spare. LD A,(HL) ; get high byte of line number. - CP $40 ; is it too high ($2F is maximum possible) ? + CP #40 ; is it too high (#2F is maximum possible) ? POP BC ; drop the return address and RET NC ; make an early return if so >>> @@ -6842,7 +6842,7 @@ L1865: LD (IY+$2D),E ; save flag in BREG which is spare. INC HL ; skip low number byte. INC HL ; and the two INC HL ; length bytes. - RES 0,(IY+$01) ; update FLAGS - signal leading space required. + RES 0,(IY+#01) ; update FLAGS - signal leading space required. LD A,D ; fetch the cursor. AND A ; test for zero. JR Z,L1881 ; to OUT-LINE3 if zero. @@ -6853,28 +6853,28 @@ L1865: LD (IY+$2D),E ; save flag in BREG which is spare. ; this entry point is called from ED-COPY ;; OUT-LINE2 -L187D: SET 0,(IY+$01) ; update FLAGS - suppress leading space. +L187D: SET 0,(IY+#01) ; update FLAGS - suppress leading space. ;; OUT-LINE3 L1881: PUSH DE ; save flag E for a return value. EX DE,HL ; save HL address in DE. - RES 2,(IY+$30) ; update FLAGS2 - signal NOT in QUOTES. + RES 2,(IY+#30) ; update FLAGS2 - signal NOT in QUOTES. - LD HL,$5C3B ; point to FLAGS. + LD HL,#5C3B ; point to FLAGS. RES 2,(HL) ; signal 'K' mode. (starts before keyword) - BIT 5,(IY+$37) ; test FLAGX - input mode ? + BIT 5,(IY+#37) ; test FLAGX - input mode ? JR Z,L1894 ; forward to OUT-LINE4 if not. SET 2,(HL) ; signal 'L' mode. (used for input) ;; OUT-LINE4 -L1894: LD HL,($5C5F) ; fetch X_PTR - possibly the error pointer +L1894: LD HL,(#5C5F) ; fetch X_PTR - possibly the error pointer ; address. AND A ; clear the carry flag. SBC HL,DE ; test if an error address has been reached. JR NZ,L18A1 ; forward to OUT-LINE5 if not. - LD A,$3F ; load A with '?' the error marker. + LD A,#3F ; load A with '?' the error marker. CALL L18C1 ; routine OUT-FLASH to print flashing marker. ;; OUT-LINE5 @@ -6885,7 +6885,7 @@ L18A1: CALL L18E1 ; routine OUT-CURS will print the cursor if CALL L18B6 ; routine NUMBER skips a hidden floating ; point number if present. INC HL ; now increment the pointer. - CP $0D ; is character end-of-line ? + CP #0D ; is character end-of-line ? JR Z,L18B4 ; to OUT-LINE6, if so, as line is finished. EX DE,HL ; save the pointer in DE. @@ -6898,7 +6898,7 @@ L18A1: CALL L18E1 ; routine OUT-CURS will print the cursor if ;; OUT-LINE6 L18B4: POP DE ; bring back the flag E, zero if current ; line printed else 1 if still to print. - RET ; return with A holding $0D + RET ; return with A holding #0D ; ------------------------- ; Check for a number marker @@ -6913,7 +6913,7 @@ L18B4: POP DE ; bring back the flag E, zero if current ; and may mask old 5-byte string parameters. ;; NUMBER -L18B6: CP $0E ; character fourteen ? +L18B6: CP #0E ; character fourteen ? RET NZ ; return if not. INC HL ; skip the character @@ -6931,31 +6931,31 @@ L18B6: CP $0E ; character fourteen ? ; This subroutine is called from OUT-LINE to print a flashing error ; marker '?' or from the next routine to print a flashing cursor e.g. 'L'. ; However, this only gets called from OUT-LINE when printing the edit line -; or the input buffer to the lower screen so a direct call to $09F4 can +; or the input buffer to the lower screen so a direct call to #09F4 can ; be used, even though out-line outputs to other streams. ; In fact the alternate set is used for the whole routine. ;; OUT-FLASH L18C1: EXX ; switch in alternate set - LD HL,($5C8F) ; fetch L = ATTR_T, H = MASK-T + LD HL,(#5C8F) ; fetch L = ATTR_T, H = MASK-T PUSH HL ; save masks. RES 7,H ; reset flash mask bit so active. SET 7,L ; make attribute FLASH. - LD ($5C8F),HL ; resave ATTR_T and MASK-T + LD (#5C8F),HL ; resave ATTR_T and MASK-T - LD HL,$5C91 ; address P_FLAG + LD HL,#5C91 ; address P_FLAG LD D,(HL) ; fetch to D PUSH DE ; and save. - LD (HL),$00 ; clear inverse, over, ink/paper 9 + LD (HL),#00 ; clear inverse, over, ink/paper 9 CALL L09F4 ; routine PRINT-OUT outputs character ; without the need to vector via RST 10. POP HL ; pop P_FLAG to H. - LD (IY+$57),H ; and restore system variable P_FLAG. + LD (IY+#57),H ; and restore system variable P_FLAG. POP HL ; restore temporary masks - LD ($5C8F),HL ; and restore system variables ATTR_T/MASK_T + LD (#5C8F),HL ; and restore system variables ATTR_T/MASK_T EXX ; switch back to main set RET ; return @@ -6971,7 +6971,7 @@ L18C1: EXX ; switch in alternate set ; performs another very important function also. ;; OUT-CURS -L18E1: LD HL,($5C5B) ; fetch K_CUR the current cursor address +L18E1: LD HL,(#5C5B) ; fetch K_CUR the current cursor address AND A ; prepare for true subtraction. SBC HL,DE ; test against pointer address in DE and RET NZ ; return if not at exact position. @@ -6979,11 +6979,11 @@ L18E1: LD HL,($5C5B) ; fetch K_CUR the current cursor address ; the value of MODE, maintained by KEY-INPUT, is tested and if non-zero ; then this value 'E' or 'G' will take precedence. - LD A,($5C41) ; fetch MODE 0='KLC', 1='E', 2='G'. + LD A,(#5C41) ; fetch MODE 0='KLC', 1='E', 2='G'. RLC A ; double the value and set flags. JR Z,L18F3 ; to OUT-C-1 if still zero ('KLC'). - ADD A,$43 ; add 'C' - will become 'E' if originally 1 + ADD A,#43 ; add 'C' - will become 'E' if originally 1 ; or 'G' if originally 2. JR L1909 ; forward to OUT-C-2 to print. @@ -6996,9 +6996,9 @@ L18E1: LD HL,($5C5B) ; fetch K_CUR the current cursor address ; to let the interrupt routine know how to decode the next key. ;; OUT-C-1 -L18F3: LD HL,$5C3B ; Address FLAGS +L18F3: LD HL,#5C3B ; Address FLAGS RES 3,(HL) ; signal 'K' mode initially. - LD A,$4B ; prepare letter 'K'. + LD A,#4B ; prepare letter 'K'. BIT 2,(HL) ; test FLAGS - was the ; previous main character ':' or 'THEN' ? JR Z,L1909 ; forward to OUT-C-2 if so to print. @@ -7007,11 +7007,11 @@ L18F3: LD HL,$5C3B ; Address FLAGS ; Note. transient bit has been made permanent. INC A ; augment from 'K' to 'L'. - BIT 3,(IY+$30) ; test FLAGS2 - consider caps lock ? + BIT 3,(IY+#30) ; test FLAGS2 - consider caps lock ? ; which is maintained by KEY-INPUT. JR Z,L1909 ; forward to OUT-C-2 if not set to print. - LD A,$43 ; alter 'L' to 'C'. + LD A,#43 ; alter 'L' to 'C'. ;; OUT-C-2 L1909: PUSH DE ; save address pointer but OK as OUT-FLASH @@ -7046,7 +7046,7 @@ L190F: LD E,(HL) ; fetch low byte ; This entry point is from the ED-UP with HL addressing E_PPC_hi ;; LN-STORE -L191C: BIT 5,(IY+$37) ; test FLAGX - input mode ? +L191C: BIT 5,(IY+#37) ; test FLAGX - input mode ? RET NZ ; return if so. ; Note. above already checked by ED-UP/ED-DOWN. @@ -7067,12 +7067,12 @@ L191C: BIT 5,(IY+$37) ; test FLAGX - input mode ? ;; OUT-SP-2 L1925: LD A,E ; will be space if OUT-CODE not yet called. - ; or $FF if spaces are suppressed. - ; else $30 ('0'). + ; or #FF if spaces are suppressed. + ; else #30 ('0'). ; (from the first instruction at OUT-CODE) ; this guy is just too clever. AND A ; test bit 7 of A. - RET M ; return if $FF, as leading spaces not + RET M ; return if #FF, as leading spaces not ; required. This is set when printing line ; number and statement in MAIN-5. @@ -7109,21 +7109,21 @@ L1937: CALL L2D1B ; routine NUMERIC tests if it is a digit ? ; changing mode. Will be 'K' mode if digits ; are at beginning of edit line. - CP $21 ; less than quote character ? + CP #21 ; less than quote character ? JR C,L196C ; to OUT-CH-3 to output controls and space. - RES 2,(IY+$01) ; initialize FLAGS to 'K' mode and leave + RES 2,(IY+#01) ; initialize FLAGS to 'K' mode and leave ; unchanged if this character would precede ; a keyword. - CP $CB ; is character 'THEN' token ? + CP #CB ; is character 'THEN' token ? JR Z,L196C ; to OUT-CH-3 to output if so. - CP $3A ; is it ':' ? + CP #3A ; is it ':' ? JR NZ,L195A ; to OUT-CH-1 if not statement separator ; to change mode back to 'L'. - BIT 5,(IY+$37) ; FLAGX - Input Mode ?? + BIT 5,(IY+#37) ; FLAGX - Input Mode ?? JR NZ,L1968 ; to OUT-CH-2 if in input as no statements. ; Note. this check should seemingly be at ; the start. Commands seem inappropriate in @@ -7131,7 +7131,7 @@ L1937: CALL L2D1B ; routine NUMERIC tests if it is a digit ? ; checker anyway. ; unless INPUT LINE is being used. - BIT 2,(IY+$30) ; test FLAGS2 - is the ':' within quotes ? + BIT 2,(IY+#30) ; test FLAGS2 - is the ':' within quotes ? JR Z,L196C ; to OUT-CH-3 if ':' is outside quoted text. JR L1968 ; to OUT-CH-2 as ':' is within quotes @@ -7139,17 +7139,17 @@ L1937: CALL L2D1B ; routine NUMERIC tests if it is a digit ? ; --- ;; OUT-CH-1 -L195A: CP $22 ; is it quote character '"' ? +L195A: CP #22 ; is it quote character '"' ? JR NZ,L1968 ; to OUT-CH-2 with others to set 'L' mode. PUSH AF ; save character. - LD A,($5C6A) ; fetch FLAGS2. - XOR $04 ; toggle the quotes flag. - LD ($5C6A),A ; update FLAGS2 + LD A,(#5C6A) ; fetch FLAGS2. + XOR #04 ; toggle the quotes flag. + LD (#5C6A),A ; update FLAGS2 POP AF ; and restore character. ;; OUT-CH-2 -L1968: SET 2,(IY+$01) ; update FLAGS - signal L mode if the cursor +L1968: SET 2,(IY+#01) ; update FLAGS - signal L mode if the cursor ; is next. ;; OUT-CH-3 @@ -7166,7 +7166,7 @@ L196C: RST 10H ; PRINT-A vectors the character to ;; LINE-ADDR L196E: PUSH HL ; save line number in HL register - LD HL,($5C53) ; fetch start of program from PROG + LD HL,(#5C53) ; fetch start of program from PROG LD D,H ; transfer address to LD E,L ; the DE register pair. @@ -7219,8 +7219,8 @@ L1988: INC HL ; ; -> entry point. ;; EACH-STMT -L198B: LD ($5C5D),HL ; save HL in CH_ADD - LD C,$00 ; initialize quotes flag +L198B: LD (#5C5D),HL ; save HL in CH_ADD + LD C,#00 ; initialize quotes flag ;; EACH-S-1 L1990: DEC D ; decrease statement count @@ -7242,17 +7242,17 @@ L1998: INC HL ; next address ;; EACH-S-3 L199A: CALL L18B6 ; routine NUMBER skips if number marker - LD ($5C5D),HL ; save in CH_ADD - CP $22 ; is it quotes '"' ? + LD (#5C5D),HL ; save in CH_ADD + CP #22 ; is it quotes '"' ? JR NZ,L19A5 ; to EACH-S-4 if not DEC C ; toggle bit 0 of C ;; EACH-S-4 -L19A5: CP $3A ; is it ':' +L19A5: CP #3A ; is it ':' JR Z,L19AD ; to EACH-S-5 - CP $CB ; 'THEN' + CP #CB ; 'THEN' JR NZ,L19B1 ; to EACH-S-6 ;; EACH-S-5 @@ -7260,7 +7260,7 @@ L19AD: BIT 0,C ; is it in quotes JR Z,L1990 ; to EACH-S-1 if not ;; EACH-S-6 -L19B1: CP $0D ; end of line ? +L19B1: CP #0D ; end of line ? JR NZ,L1998 ; to EACH-S-2 DEC D ; decrease the statement counter @@ -7274,8 +7274,8 @@ L19B1: CP $0D ; end of line ? ; ZX Spectrum BASIC Programming by Steven Vickers 1982. ; It is bits 7-5 of the first character of a variable that allow ; the six types to be distinguished. Bits 4-0 are the reduced letter. -; So any variable name is higher that $3F and can be distinguished -; also from the variables area end-marker $80. +; So any variable name is higher that #3F and can be distinguished +; also from the variables area end-marker #80. ; ; 76543210 meaning brief outline of format. ; -------- ------------------------ ----------------------- @@ -7303,7 +7303,7 @@ L19B1: CP $0D ; end of line ? ;; NEXT-ONE L19B8: PUSH HL ; save the pointer address. LD A,(HL) ; get first byte. - CP $40 ; compare with upper limit for line numbers. + CP #40 ; compare with upper limit for line numbers. JR C,L19D5 ; forward to NEXT-O-3 if within BASIC area. ; the continuation here is for the next variable unless the supplied @@ -7319,11 +7319,11 @@ L19B8: PUSH HL ; save the pointer address. ; it remains set for for-next loop variables. ;; NEXT-O-1 -L19C7: LD BC,$0005 ; set BC to 5 for floating point number +L19C7: LD BC,#0005 ; set BC to 5 for floating point number JR NC,L19CE ; forward to NEXT-O-2 if not a for/next ; variable. - LD C,$12 ; set BC to eighteen locations. + LD C,#12 ; set BC to eighteen locations. ; value, limit, step, line and statement. ; now deal with long-named variables @@ -7427,19 +7427,19 @@ L19E8: PUSH BC ; ; arises whereby the Spectrum becomes locked with no means of reclaiming space. ;; E-LINE-NO -L19FB: LD HL,($5C59) ; load HL from system variable E_LINE. +L19FB: LD HL,(#5C59) ; load HL from system variable E_LINE. DEC HL ; decrease so that NEXT_CHAR can be used ; without skipping the first digit. - LD ($5C5D),HL ; store in the system variable CH_ADD. + LD (#5C5D),HL ; store in the system variable CH_ADD. RST 20H ; NEXT-CHAR skips any noise and white-space ; to point exactly at the first digit. - LD HL,$5C92 ; use MEM-0 as a temporary calculator stack + LD HL,#5C92 ; use MEM-0 as a temporary calculator stack ; an overhead of three locations are needed. - LD ($5C65),HL ; set new STKEND. + LD (#5C65),HL ; set new STKEND. CALL L2D3B ; routine INT-TO-FP will read digits till ; a non-digit found. @@ -7448,14 +7448,14 @@ L19FB: LD HL,($5C59) ; load HL from system variable E_LINE. JR C,L1A15 ; forward to E-L-1 if overflow i.e. > 65535. ; 'Nonsense in BASIC' - LD HL,$D8F0 ; load HL with value -9999 + LD HL,#D8F0 ; load HL with value -9999 ADD HL,BC ; add to line number in BC ;; E-L-1 L1A15: JP C,L1C8A ; to REPORT-C 'Nonsense in BASIC' if over. ; Note. As ERR_SP points to ED_ERROR ; the report is never produced although - ; the RST $08 will update X_PTR leading to + ; the RST #08 will update X_PTR leading to ; the error marker being displayed when ; the ED_LOOP is reiterated. ; in fact, since it is immediately @@ -7489,7 +7489,7 @@ L1A1B: PUSH DE ; save the LD H,B ; transfer the LD L,C ; number to HL. - LD E,$FF ; signal 'no leading zeros'. + LD E,#FF ; signal 'no leading zeros'. JR L1A30 ; forward to continue at OUT-NUM-3 ; --- @@ -7503,14 +7503,14 @@ L1A28: PUSH DE ; save flags LD E,(HL) ; low byte to E PUSH HL ; save pointer EX DE,HL ; transfer number to HL - LD E,$20 ; signal 'output leading spaces' + LD E,#20 ; signal 'output leading spaces' ;; OUT-NUM-3 -L1A30: LD BC,$FC18 ; value -1000 +L1A30: LD BC,#FC18 ; value -1000 CALL L192A ; routine OUT-SP-NO outputs space or number - LD BC,$FF9C ; value -100 + LD BC,#FF9C ; value -100 CALL L192A ; routine OUT-SP-NO - LD C,$F6 ; value -10 ( B is still $FF ) + LD C,#F6 ; value -10 ( B is still #FF ) CALL L192A ; routine OUT-SP-NO LD A,L ; remainder to A. @@ -7530,8 +7530,8 @@ L1A42: CALL L15EF ; routine OUT-CODE for final digit. ; ---------------- ; The offset table ; ---------------- -; The BASIC interpreter has found a command code $CE - $FF -; which is then reduced to range $00 - $31 and added to the base address +; The BASIC interpreter has found a command code #CE - #FF +; which is then reduced to range #00 - #31 and added to the base address ; of this table to give the address of an offset which, when added to ; the offset therein, gives the location in the following parameter table ; where a list of class codes, separators and addresses relevant to the @@ -7609,262 +7609,262 @@ L1A48: DEFB L1AF9 - $ ; B1 offset to Address: P-DEF-FN ; is rather simple e.g. MOVE "M1","M2" ;; P-LET -L1A7A: DEFB $01 ; Class-01 - A variable is required. - DEFB $3D ; Separator: '=' - DEFB $02 ; Class-02 - An expression, numeric or string, +L1A7A: DEFB #01 ; Class-01 - A variable is required. + DEFB #3D ; Separator: '=' + DEFB #02 ; Class-02 - An expression, numeric or string, ; must follow. ;; P-GO-TO -L1A7D: DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1E67 ; Address: $1E67; Address: GO-TO +L1A7D: DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L1E67 ; Address: #1E67; Address: GO-TO ;; P-IF -L1A81: DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $CB ; Separator: 'THEN' - DEFB $05 ; Class-05 - Variable syntax checked +L1A81: DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #CB ; Separator: 'THEN' + DEFB #05 ; Class-05 - Variable syntax checked ; by routine. - DEFW L1CF0 ; Address: $1CF0; Address: IF + DEFW L1CF0 ; Address: #1CF0; Address: IF ;; P-GO-SUB -L1A86: DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1EED ; Address: $1EED; Address: GO-SUB +L1A86: DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L1EED ; Address: #1EED; Address: GO-SUB ;; P-STOP -L1A8A: DEFB $00 ; Class-00 - No further operands. - DEFW L1CEE ; Address: $1CEE; Address: STOP +L1A8A: DEFB #00 ; Class-00 - No further operands. + DEFW L1CEE ; Address: #1CEE; Address: STOP ;; P-RETURN -L1A8D: DEFB $00 ; Class-00 - No further operands. - DEFW L1F23 ; Address: $1F23; Address: RETURN +L1A8D: DEFB #00 ; Class-00 - No further operands. + DEFW L1F23 ; Address: #1F23; Address: RETURN ;; P-FOR -L1A90: DEFB $04 ; Class-04 - A single character variable must +L1A90: DEFB #04 ; Class-04 - A single character variable must ; follow. - DEFB $3D ; Separator: '=' - DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $CC ; Separator: 'TO' - DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $05 ; Class-05 - Variable syntax checked + DEFB #3D ; Separator: '=' + DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #CC ; Separator: 'TO' + DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #05 ; Class-05 - Variable syntax checked ; by routine. - DEFW L1D03 ; Address: $1D03; Address: FOR + DEFW L1D03 ; Address: #1D03; Address: FOR ;; P-NEXT -L1A98: DEFB $04 ; Class-04 - A single character variable must +L1A98: DEFB #04 ; Class-04 - A single character variable must ; follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1DAB ; Address: $1DAB; Address: NEXT + DEFB #00 ; Class-00 - No further operands. + DEFW L1DAB ; Address: #1DAB; Address: NEXT ;; P-PRINT -L1A9C: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1A9C: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L1FCD ; Address: $1FCD; Address: PRINT + DEFW L1FCD ; Address: #1FCD; Address: PRINT ;; P-INPUT -L1A9F: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1A9F: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L2089 ; Address: $2089; Address: INPUT + DEFW L2089 ; Address: #2089; Address: INPUT ;; P-DIM -L1AA2: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1AA2: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L2C02 ; Address: $2C02; Address: DIM + DEFW L2C02 ; Address: #2C02; Address: DIM ;; P-REM -L1AA5: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1AA5: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L1BB2 ; Address: $1BB2; Address: REM + DEFW L1BB2 ; Address: #1BB2; Address: REM ;; P-NEW -L1AA8: DEFB $00 ; Class-00 - No further operands. - DEFW L11B7 ; Address: $11B7; Address: NEW +L1AA8: DEFB #00 ; Class-00 - No further operands. + DEFW L11B7 ; Address: #11B7; Address: NEW ;; P-RUN -L1AAB: DEFB $03 ; Class-03 - A numeric expression may follow +L1AAB: DEFB #03 ; Class-03 - A numeric expression may follow ; else default to zero. - DEFW L1EA1 ; Address: $1EA1; Address: RUN + DEFW L1EA1 ; Address: #1EA1; Address: RUN ;; P-LIST -L1AAE: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1AAE: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L17F9 ; Address: $17F9; Address: LIST + DEFW L17F9 ; Address: #17F9; Address: LIST ;; P-POKE -L1AB1: DEFB $08 ; Class-08 - Two comma-separated numeric +L1AB1: DEFB #08 ; Class-08 - Two comma-separated numeric ; expressions required. - DEFB $00 ; Class-00 - No further operands. - DEFW L1E80 ; Address: $1E80; Address: POKE + DEFB #00 ; Class-00 - No further operands. + DEFW L1E80 ; Address: #1E80; Address: POKE ;; P-RANDOM -L1AB5: DEFB $03 ; Class-03 - A numeric expression may follow +L1AB5: DEFB #03 ; Class-03 - A numeric expression may follow ; else default to zero. - DEFW L1E4F ; Address: $1E4F; Address: RANDOMIZE + DEFW L1E4F ; Address: #1E4F; Address: RANDOMIZE ;; P-CONT -L1AB8: DEFB $00 ; Class-00 - No further operands. - DEFW L1E5F ; Address: $1E5F; Address: CONTINUE +L1AB8: DEFB #00 ; Class-00 - No further operands. + DEFW L1E5F ; Address: #1E5F; Address: CONTINUE ;; P-CLEAR -L1ABB: DEFB $03 ; Class-03 - A numeric expression may follow +L1ABB: DEFB #03 ; Class-03 - A numeric expression may follow ; else default to zero. - DEFW L1EAC ; Address: $1EAC; Address: CLEAR + DEFW L1EAC ; Address: #1EAC; Address: CLEAR ;; P-CLS -L1ABE: DEFB $00 ; Class-00 - No further operands. - DEFW L0D6B ; Address: $0D6B; Address: CLS +L1ABE: DEFB #00 ; Class-00 - No further operands. + DEFW L0D6B ; Address: #0D6B; Address: CLS ;; P-PLOT -L1AC1: DEFB $09 ; Class-09 - Two comma-separated numeric +L1AC1: DEFB #09 ; Class-09 - Two comma-separated numeric ; expressions required with optional colour ; items. - DEFB $00 ; Class-00 - No further operands. - DEFW L22DC ; Address: $22DC; Address: PLOT + DEFB #00 ; Class-00 - No further operands. + DEFW L22DC ; Address: #22DC; Address: PLOT ;; P-PAUSE -L1AC5: DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1F3A ; Address: $1F3A; Address: PAUSE +L1AC5: DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L1F3A ; Address: #1F3A; Address: PAUSE ;; P-READ -L1AC9: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1AC9: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L1DED ; Address: $1DED; Address: READ + DEFW L1DED ; Address: #1DED; Address: READ ;; P-DATA -L1ACC: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1ACC: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L1E27 ; Address: $1E27; Address: DATA + DEFW L1E27 ; Address: #1E27; Address: DATA ;; P-RESTORE -L1ACF: DEFB $03 ; Class-03 - A numeric expression may follow +L1ACF: DEFB #03 ; Class-03 - A numeric expression may follow ; else default to zero. - DEFW L1E42 ; Address: $1E42; Address: RESTORE + DEFW L1E42 ; Address: #1E42; Address: RESTORE ;; P-DRAW -L1AD2: DEFB $09 ; Class-09 - Two comma-separated numeric +L1AD2: DEFB #09 ; Class-09 - Two comma-separated numeric ; expressions required with optional colour ; items. - DEFB $05 ; Class-05 - Variable syntax checked + DEFB #05 ; Class-05 - Variable syntax checked ; by routine. - DEFW L2382 ; Address: $2382; Address: DRAW + DEFW L2382 ; Address: #2382; Address: DRAW ;; P-COPY -L1AD6: DEFB $00 ; Class-00 - No further operands. - DEFW L0EAC ; Address: $0EAC; Address: COPY +L1AD6: DEFB #00 ; Class-00 - No further operands. + DEFW L0EAC ; Address: #0EAC; Address: COPY ;; P-LPRINT -L1AD9: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1AD9: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L1FC9 ; Address: $1FC9; Address: LPRINT + DEFW L1FC9 ; Address: #1FC9; Address: LPRINT ;; P-LLIST -L1ADC: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1ADC: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L17F5 ; Address: $17F5; Address: LLIST + DEFW L17F5 ; Address: #17F5; Address: LLIST ;; P-SAVE -L1ADF: DEFB $0B ; Class-0B - Offset address converted to tape +L1ADF: DEFB #0B ; Class-0B - Offset address converted to tape ; command. ;; P-LOAD -L1AE0: DEFB $0B ; Class-0B - Offset address converted to tape +L1AE0: DEFB #0B ; Class-0B - Offset address converted to tape ; command. ;; P-VERIFY -L1AE1: DEFB $0B ; Class-0B - Offset address converted to tape +L1AE1: DEFB #0B ; Class-0B - Offset address converted to tape ; command. ;; P-MERGE -L1AE2: DEFB $0B ; Class-0B - Offset address converted to tape +L1AE2: DEFB #0B ; Class-0B - Offset address converted to tape ; command. ;; P-BEEP -L1AE3: DEFB $08 ; Class-08 - Two comma-separated numeric +L1AE3: DEFB #08 ; Class-08 - Two comma-separated numeric ; expressions required. - DEFB $00 ; Class-00 - No further operands. - DEFW L03F8 ; Address: $03F8; Address: BEEP + DEFB #00 ; Class-00 - No further operands. + DEFW L03F8 ; Address: #03F8; Address: BEEP ;; P-CIRCLE -L1AE7: DEFB $09 ; Class-09 - Two comma-separated numeric +L1AE7: DEFB #09 ; Class-09 - Two comma-separated numeric ; expressions required with optional colour ; items. - DEFB $05 ; Class-05 - Variable syntax checked + DEFB #05 ; Class-05 - Variable syntax checked ; by routine. - DEFW L2320 ; Address: $2320; Address: CIRCLE + DEFW L2320 ; Address: #2320; Address: CIRCLE ;; P-INK -L1AEB: DEFB $07 ; Class-07 - Offset address is converted to +L1AEB: DEFB #07 ; Class-07 - Offset address is converted to ; colour code. ;; P-PAPER -L1AEC: DEFB $07 ; Class-07 - Offset address is converted to +L1AEC: DEFB #07 ; Class-07 - Offset address is converted to ; colour code. ;; P-FLASH -L1AED: DEFB $07 ; Class-07 - Offset address is converted to +L1AED: DEFB #07 ; Class-07 - Offset address is converted to ; colour code. ;; P-BRIGHT -L1AEE: DEFB $07 ; Class-07 - Offset address is converted to +L1AEE: DEFB #07 ; Class-07 - Offset address is converted to ; colour code. ;; P-INVERSE -L1AEF: DEFB $07 ; Class-07 - Offset address is converted to +L1AEF: DEFB #07 ; Class-07 - Offset address is converted to ; colour code. ;; P-OVER -L1AF0: DEFB $07 ; Class-07 - Offset address is converted to +L1AF0: DEFB #07 ; Class-07 - Offset address is converted to ; colour code. ;; P-OUT -L1AF1: DEFB $08 ; Class-08 - Two comma-separated numeric +L1AF1: DEFB #08 ; Class-08 - Two comma-separated numeric ; expressions required. - DEFB $00 ; Class-00 - No further operands. - DEFW L1E7A ; Address: $1E7A; Address: OUT + DEFB #00 ; Class-00 - No further operands. + DEFW L1E7A ; Address: #1E7A; Address: OUT ;; P-BORDER -L1AF5: DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L2294 ; Address: $2294; Address: BORDER +L1AF5: DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L2294 ; Address: #2294; Address: BORDER ;; P-DEF-FN -L1AF9: DEFB $05 ; Class-05 - Variable syntax checked entirely +L1AF9: DEFB #05 ; Class-05 - Variable syntax checked entirely ; by routine. - DEFW L1F60 ; Address: $1F60; Address: DEF-FN + DEFW L1F60 ; Address: #1F60; Address: DEF-FN ;; P-OPEN -L1AFC: DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $2C ; Separator: ',' see Footnote * - DEFB $0A ; Class-0A - A string expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1736 ; Address: $1736; Address: OPEN +L1AFC: DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #2C ; Separator: ',' see Footnote * + DEFB #0A ; Class-0A - A string expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L1736 ; Address: #1736; Address: OPEN ;; P-CLOSE -L1B02: DEFB $06 ; Class-06 - A numeric expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L16E5 ; Address: $16E5; Address: CLOSE +L1B02: DEFB #06 ; Class-06 - A numeric expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L16E5 ; Address: #16E5; Address: CLOSE ;; P-FORMAT -L1B06: DEFB $0A ; Class-0A - A string expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1793 ; Address: $1793; Address: CAT-ETC +L1B06: DEFB #0A ; Class-0A - A string expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L1793 ; Address: #1793; Address: CAT-ETC ;; P-MOVE -L1B0A: DEFB $0A ; Class-0A - A string expression must follow. - DEFB $2C ; Separator: ',' - DEFB $0A ; Class-0A - A string expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1793 ; Address: $1793; Address: CAT-ETC +L1B0A: DEFB #0A ; Class-0A - A string expression must follow. + DEFB #2C ; Separator: ',' + DEFB #0A ; Class-0A - A string expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L1793 ; Address: #1793; Address: CAT-ETC ;; P-ERASE -L1B10: DEFB $0A ; Class-0A - A string expression must follow. - DEFB $00 ; Class-00 - No further operands. - DEFW L1793 ; Address: $1793; Address: CAT-ETC +L1B10: DEFB #0A ; Class-0A - A string expression must follow. + DEFB #00 ; Class-00 - No further operands. + DEFW L1793 ; Address: #1793; Address: CAT-ETC ;; P-CAT -L1B14: DEFB $00 ; Class-00 - No further operands. - DEFW L1793 ; Address: $1793; Address: CAT-ETC +L1B14: DEFB #00 ; Class-00 - No further operands. + DEFW L1793 ; Address: #1793; Address: CAT-ETC ; * Note that a comma is required as a separator with the OPEN command ; but the Interface 1 programmers relaxed this allowing ';' as an @@ -7880,14 +7880,14 @@ L1B14: DEFB $00 ; Class-00 - No further operands. ; requires checking. ;; LINE-SCAN -L1B17: RES 7,(IY+$01) ; update FLAGS - signal checking syntax +L1B17: RES 7,(IY+#01) ; update FLAGS - signal checking syntax CALL L19FB ; routine E-LINE-NO >> ; fetches the line number if in range. XOR A ; clear the accumulator. - LD ($5C47),A ; set statement number SUBPPC to zero. - DEC A ; set accumulator to $FF. - LD ($5C3A),A ; set ERR_NR to 'OK' - 1. + LD (#5C47),A ; set statement number SUBPPC to zero. + DEC A ; set accumulator to #FF. + LD (#5C3A),A ; set ERR_NR to 'OK' - 1. JR L1B29 ; forward to continue at STMT-L-1. ; -------------- @@ -7903,20 +7903,20 @@ L1B28: RST 20H ; NEXT-CHAR ;; STMT-L-1 L1B29: CALL L16BF ; routine SET-WORK clears workspace etc. - INC (IY+$0D) ; increment statement number SUBPPC + INC (IY+#0D) ; increment statement number SUBPPC JP M,L1C8A ; to REPORT-C to raise ; 'Nonsense in BASIC' if over 127. RST 18H ; GET-CHAR - LD B,$00 ; set B to zero for later indexing. + LD B,#00 ; set B to zero for later indexing. ; early so any other reason ??? - CP $0D ; is character carriage return ? + CP #0D ; is character carriage return ? ; i.e. an empty statement. JR Z,L1BB3 ; forward to LINE-END if so. - CP $3A ; is it statement end marker ':' ? + CP #3A ; is it statement end marker ':' ? ; i.e. another type of empty statement. JR Z,L1B28 ; back to STMT-LOOP if so. @@ -7928,7 +7928,7 @@ L1B29: CALL L16BF ; routine SET-WORK clears workspace etc. RST 20H ; NEXT-CHAR to advance pointer LD A,C ; restore current character - SUB $CE ; subtract 'DEF FN' - first command + SUB #CE ; subtract 'DEF FN' - first command JP C,L1C8A ; jump to REPORT-C if less than a command ; raising ; 'Nonsense in BASIC' @@ -7948,7 +7948,7 @@ L1B29: CALL L16BF ; routine SET-WORK clears workspace etc. ; ;; SCAN-LOOP -L1B52: LD HL,($5C74) ; fetch temporary address from T_ADDR +L1B52: LD HL,(#5C74) ; fetch temporary address from T_ADDR ; during subsequent loops. ; -> the initial entry point with HL addressing start of syntax table entry. @@ -7956,17 +7956,17 @@ L1B52: LD HL,($5C74) ; fetch temporary address from T_ADDR ;; GET-PARAM L1B55: LD A,(HL) ; pick up the parameter. INC HL ; address next one. - LD ($5C74),HL ; save pointer in system variable T_ADDR + LD (#5C74),HL ; save pointer in system variable T_ADDR LD BC,L1B52 ; address: SCAN-LOOP PUSH BC ; is now pushed on stack as looping address. LD C,A ; store parameter in C. - CP $20 ; is it greater than ' ' ? + CP #20 ; is it greater than ' ' ? JR NC,L1B6F ; forward to SEPARATOR to check that correct ; separator appears in statement if so. LD HL,L1C01 ; address: class-tbl. - LD B,$00 ; prepare to index into the class table. + LD B,#00 ; prepare to index into the class table. ADD HL,BC ; index to find displacement to routine. LD C,(HL) ; displacement to BC ADD HL,BC ; add to address the CLASS routine. @@ -8013,7 +8013,7 @@ L1B76: CALL L1F54 ; routine BREAK-KEY is tested after every ;; REPORT-L L1B7B: RST 08H ; ERROR-1 - DEFB $14 ; Error Report: BREAK into program + DEFB #14 ; Error Report: BREAK into program ;; STMT-R-1 L1B7D: CALL L3B4D ; Spectrum 128 patch @@ -8021,7 +8021,7 @@ L1B7D: CALL L3B4D ; Spectrum 128 patch L1B81: JR NZ,L1BF4 ; forward to STMT-NEXT if a program line. - LD HL,($5C42) ; fetch line number from NEWPPC + LD HL,(#5C42) ; fetch line number from NEWPPC BIT 7,H ; will be set if minus two - direct command(s) JR Z,L1B9E ; forward to LINE-NEW if a jump is to be ; made to a new program line/statement. @@ -8033,13 +8033,13 @@ L1B81: JR NZ,L1BF4 ; forward to STMT-NEXT if a program line. ; the next statement of a direct command is to be considered. ;; LINE-RUN -L1B8A: LD HL,$FFFE ; The dummy value minus two - LD ($5C45),HL ; is set/reset as line number in PPC. - LD HL,($5C61) ; point to end of line + 1 - WORKSP. - DEC HL ; now point to $80 end-marker. - LD DE,($5C59) ; address the start of line E_LINE. +L1B8A: LD HL,#FFFE ; The dummy value minus two + LD (#5C45),HL ; is set/reset as line number in PPC. + LD HL,(#5C61) ; point to end of line + 1 - WORKSP. + DEC HL ; now point to #80 end-marker. + LD DE,(#5C59) ; address the start of line E_LINE. DEC DE ; now location before - for GET-CHAR. - LD A,($5C44) ; load statement to A from NSPPC. + LD A,(#5C44) ; load statement to A from NSPPC. JR L1BD1 ; forward to NEXT-LINE. ; ------------------------------ @@ -8052,7 +8052,7 @@ L1B8A: LD HL,$FFFE ; The dummy value minus two ;; LINE-NEW L1B9E: CALL L196E ; routine LINE-ADDR gets address of line ; returning zero flag set if line found. - LD A,($5C44) ; fetch new statement from NSPPC + LD A,(#5C44) ; fetch new statement from NSPPC JR Z,L1BBF ; forward to LINE-USE if line matched. ; continue as must be a direct command. @@ -8065,8 +8065,8 @@ L1B9E: CALL L196E ; routine LINE-ADDR gets address of line LD B,A ; save statement in B. ? LD A,(HL) ; fetch high byte of line number. - AND $C0 ; test if using direct command - ; a program line is less than $3F + AND #C0 ; test if using direct command + ; a program line is less than #3F LD A,B ; retrieve statement. ; (we can assume it is zero). JR Z,L1BBF ; forward to LINE-USE if was a program line @@ -8075,7 +8075,7 @@ L1B9E: CALL L196E ; routine LINE-ADDR gets address of line ;; REPORT-0 L1BB0: RST 08H ; ERROR-1 - DEFB $FF ; Error Report: OK + DEFB #FF ; Error Report: OK ; ------------------ ; Handle REM command @@ -8097,9 +8097,9 @@ L1BB2: POP BC ; drop return address STMT-RET and L1BB3: CALL L2530 ; routine SYNTAX-Z (UNSTACK-Z?) RET Z ; return if checking syntax. - LD HL,($5C55) ; fetch NXTLIN to HL. - LD A,$C0 ; test against the - AND (HL) ; system limit $3F. + LD HL,(#5C55) ; fetch NXTLIN to HL. + LD A,#C0 ; test against the + AND (HL) ; system limit #3F. RET NZ ; return if more as must be ; end of program. ; (or direct command) @@ -8116,13 +8116,13 @@ L1BB3: CALL L2530 ; routine SYNTAX-Z (UNSTACK-Z?) ; First make statement zero number one leaving others unaffected. ;; LINE-USE -L1BBF: CP $01 ; will set carry if zero. - ADC A,$00 ; add in any carry. +L1BBF: CP #01 ; will set carry if zero. + ADC A,#00 ; add in any carry. LD D,(HL) ; high byte of line number to D. INC HL ; advance pointer. LD E,(HL) ; low byte of line number to E. - LD ($5C45),DE ; set system variable PPC. + LD (#5C45),DE ; set system variable PPC. INC HL ; advance pointer. LD E,(HL) ; low byte of line length to E. @@ -8138,21 +8138,21 @@ L1BBF: CP $01 ; will set carry if zero. ; previous line or edit line. ; ----------------------------- ; The pointer will be the next line if continuing from above or to -; edit line end-marker ($80) if from LINE-RUN. +; edit line end-marker (#80) if from LINE-RUN. ;; NEXT-LINE -L1BD1: LD ($5C55),HL ; store pointer in system variable NXTLIN +L1BD1: LD (#5C55),HL ; store pointer in system variable NXTLIN EX DE,HL ; bring back pointer to previous or edit line - LD ($5C5D),HL ; and update CH_ADD with character address. + LD (#5C5D),HL ; and update CH_ADD with character address. LD D,A ; store statement in D. - LD E,$00 ; set E to zero to suppress token searching + LD E,#00 ; set E to zero to suppress token searching ; if EACH-STMT is to be called. - LD (IY+$0A),$FF ; set statement NSPPC to $FF signalling + LD (IY+#0A),#FF ; set statement NSPPC to #FF signalling ; no jump to be made. DEC D ; decrement and test statement - LD (IY+$0D),D ; set SUBPPC to decremented statement number. + LD (IY+#0D),D ; set SUBPPC to decremented statement number. JP Z,L1B28 ; to STMT-LOOP if result zero as statement is ; at start of line and address is known. @@ -8163,7 +8163,7 @@ L1BD1: LD ($5C55),HL ; store pointer in system variable NXTLIN ;; REPORT-N L1BEC: RST 08H ; ERROR-1 - DEFB $16 ; Error Report: Statement lost + DEFB #16 ; Error Report: Statement lost ; ----------------- ; End of statement? @@ -8191,14 +8191,14 @@ L1BF4: CALL L3B5D ; Spectrum 128 patch L1BF7: JR Z,L1BB3 ; back to LINE-END if so. - CP $3A ; is it ':' ? + CP #3A ; is it ':' ? JP Z,L1B28 ; jump back to STMT-LOOP to consider ; further statements JP L1C8A ; jump to REPORT-C with any other character ; 'Nonsense in BASIC'. -; Note. the two-byte sequence 'rst 08; defb $0b' could replace the above jp. +; Note. the two-byte sequence 'rst 08; defb #0b' could replace the above jp. ; ------------------- ; Command class table @@ -8242,7 +8242,7 @@ L1C11: POP BC ; drop address SCAN-LOOP. ; as should be no further characters. EX DE,HL ; save HL to DE. - LD HL,($5C74) ; fetch T_ADDR + LD HL,(#5C74) ; fetch T_ADDR LD C,(HL) ; fetch low byte of routine INC HL ; address next. LD B,(HL) ; fetch high byte of routine. @@ -8269,35 +8269,35 @@ L1C1F: CALL L28B2 ; routine LOOK-VARS returns carry set if not ; ;; VAR-A-1 -L1C22: LD (IY+$37),$00 ; set FLAGX to zero +L1C22: LD (IY+#37),#00 ; set FLAGX to zero JR NC,L1C30 ; forward to VAR-A-2 if found or checking ; syntax. - SET 1,(IY+$37) ; FLAGX - Signal a new variable + SET 1,(IY+#37) ; FLAGX - Signal a new variable JR NZ,L1C46 ; to VAR-A-3 if not assigning to an array ; e.g. LET a$(3,3) = "X" ;; REPORT-2 L1C2E: RST 08H ; ERROR-1 - DEFB $01 ; Error Report: Variable not found + DEFB #01 ; Error Report: Variable not found ;; VAR-A-2 L1C30: CALL Z,L2996 ; routine STK-VAR considers a subscript/slice - BIT 6,(IY+$01) ; test FLAGS - Numeric or string result ? + BIT 6,(IY+#01) ; test FLAGS - Numeric or string result ? JR NZ,L1C46 ; to VAR-A-3 if numeric XOR A ; default to array/slice - to be retained. CALL L2530 ; routine SYNTAX-Z CALL NZ,L2BF1 ; routine STK-FETCH is called in runtime ; may overwrite A with 1. - LD HL,$5C71 ; address system variable FLAGX + LD HL,#5C71 ; address system variable FLAGX OR (HL) ; set bit 0 if simple variable to be reclaimed LD (HL),A ; update FLAGX EX DE,HL ; start of string/subscript to DE ;; VAR-A-3 -L1C46: LD ($5C72),BC ; update STRLEN - LD ($5C4D),HL ; and DEST of assigned string. +L1C46: LD (#5C72),BC ; update STRLEN + LD (#5C4D),HL ; and DEST of assigned string. RET ; return. ; ------------------------------------------------- @@ -8318,15 +8318,15 @@ L1C4E: POP BC ; drop return address SCAN-LOOP ; ;; VAL-FET-1 -L1C56: LD A,($5C3B) ; initial FLAGS to A +L1C56: LD A,(#5C3B) ; initial FLAGS to A ;; VAL-FET-2 L1C59: PUSH AF ; save A briefly CALL L24FB ; routine SCANNING evaluates expression. POP AF ; restore A - LD D,(IY+$01) ; post-SCANNING FLAGS to D + LD D,(IY+#01) ; post-SCANNING FLAGS to D XOR D ; xor the two sets of flags - AND $40 ; pick up bit 6 of xored FLAGS should be zero + AND #40 ; pick up bit 6 of xored FLAGS should be zero JR NZ,L1C8A ; forward to REPORT-C if not zero ; 'Nonsense in BASIC' - results don't agree. @@ -8345,8 +8345,8 @@ L1C59: PUSH AF ; save A briefly L1C6C: CALL L28B2 ; routine LOOK-VARS PUSH AF ; preserve flags. LD A,C ; fetch type - should be 011xxxxx - OR $9F ; combine with 10011111. - INC A ; test if now $FF by incrementing. + OR #9F ; combine with 10011111. + INC A ; test if now #FF by incrementing. JR NZ,L1C8A ; forward to REPORT-C if result not zero. POP AF ; else restore flags. @@ -8369,7 +8369,7 @@ L1C79: RST 20H ; NEXT-CHAR advance past 'AT' or '('. ;; EXPT-2NUM L1C7A: CALL L1C82 ; routine EXPT-1NUM is called for first ; numeric expression - CP $2C ; is character ',' ? + CP #2C ; is character ',' ? JR NZ,L1C8A ; to REPORT-C if not required separator. ; 'Nonsense in BASIC'. @@ -8380,12 +8380,12 @@ L1C7A: CALL L1C82 ; routine EXPT-1NUM is called for first ;; CLASS-06 ;; EXPT-1NUM L1C82: CALL L24FB ; routine SCANNING - BIT 6,(IY+$01) ; test FLAGS - Numeric or string result ? + BIT 6,(IY+#01) ; test FLAGS - Numeric or string result ? RET NZ ; return if result is numeric. ;; REPORT-C L1C8A: RST 08H ; ERROR-1 - DEFB $0B ; Error Report: Nonsense in BASIC + DEFB #0B ; Error Report: Nonsense in BASIC ; --------------------------------------------------------------- ; class-0A e.g. ERASE "????" ; a string expression must follow. @@ -8396,7 +8396,7 @@ L1C8A: RST 08H ; ERROR-1 ;; CLASS-0A ;; EXPT-EXP L1C8C: CALL L24FB ; routine SCANNING - BIT 6,(IY+$01) ; test FLAGS - Numeric or string result ? + BIT 6,(IY+#01) ; test FLAGS - Numeric or string result ? RET Z ; return if string result. JR L1C8A ; back to REPORT-C if numeric. @@ -8411,20 +8411,20 @@ L1C8C: CALL L24FB ; routine SCANNING ; Note. these commands should ensure that current channel is 'S' ;; CLASS-07 -L1C96: BIT 7,(IY+$01) ; test FLAGS - checking syntax only ? - RES 0,(IY+$02) ; update TV_FLAG - signal main screen in use +L1C96: BIT 7,(IY+#01) ; test FLAGS - checking syntax only ? + RES 0,(IY+#02) ; update TV_FLAG - signal main screen in use CALL NZ,L0D4D ; routine TEMPS is called in runtime. POP AF ; drop return address SCAN-LOOP - LD A,($5C74) ; T_ADDR_lo to accumulator. - ; points to '$07' entry + 1 - ; e.g. for INK points to $EC now + LD A,(#5C74) ; T_ADDR_lo to accumulator. + ; points to '#07' entry + 1 + ; e.g. for INK points to #EC now ; Note if you move alter the syntax table next line may have to be altered. -; Note. For ZASM assembler replace following expression with SUB $13. +; Note. For ZASM assembler replace following expression with SUB #13. -L1CA5: SUB low (L1AEB-$D8) ; convert $EB to $D8 ('INK') etc. - ; ( is SUB $13 in standard ROM ) +L1CA5: SUB low (L1AEB-#D8) ; convert #EB to #D8 ('INK') etc. + ; ( is SUB #13 in standard ROM ) CALL L21FC ; routine CO-TEMP-4 CALL L1BEE ; routine CHECK-END check that nothing else @@ -8432,13 +8432,13 @@ L1CA5: SUB low (L1AEB-$D8) ; convert $EB to $D8 ('INK') etc. ; return here in runtime. - LD HL,($5C8F) ; pick up ATTR_T and MASK_T - LD ($5C8D),HL ; and store in ATTR_P and MASK_P - LD HL,$5C91 ; point to P_FLAG. + LD HL,(#5C8F) ; pick up ATTR_T and MASK_T + LD (#5C8D),HL ; and store in ATTR_P and MASK_P + LD HL,#5C91 ; point to P_FLAG. LD A,(HL) ; pick up in A RLCA ; rotate to left XOR (HL) ; combine with HL - AND $AA ; 10101010 + AND #AA ; 10101010 XOR (HL) ; only permanent bits affected LD (HL),A ; reload into P_FLAG. RET ; return. @@ -8455,13 +8455,13 @@ L1CA5: SUB low (L1AEB-$D8) ; convert $EB to $D8 ('INK') etc. L1CBE: CALL L2530 ; routine SYNTAX-Z JR Z,L1CD6 ; forward to CL-09-1 if checking syntax. - RES 0,(IY+$02) ; update TV_FLAG - signal main screen in use + RES 0,(IY+#02) ; update TV_FLAG - signal main screen in use CALL L0D4D ; routine TEMPS is called. - LD HL,$5C90 ; point to MASK_T + LD HL,#5C90 ; point to MASK_T LD A,(HL) ; fetch mask to accumulator. - OR $F8 ; or with 11111000 paper/bright/flash 8 + OR #F8 ; or with 11111000 paper/bright/flash 8 LD (HL),A ; mask back to MASK_T system variable. - RES 6,(IY+$57) ; reset P_FLAG - signal NOT PAPER 9 ? + RES 6,(IY+#57) ; reset P_FLAG - signal NOT PAPER 9 ? RST 18H ; GET-CHAR @@ -8498,10 +8498,10 @@ L1CDB: JP L0605 ; jump way back to SAVE-ETC ; Also called from LIST-4. ;; FETCH-NUM -L1CDE: CP $0D ; is character a carriage return ? +L1CDE: CP #0D ; is character a carriage return ? JR Z,L1CE6 ; forward to USE-ZERO if so - CP $3A ; is it ':' ? + CP #3A ; is it ':' ? JR NZ,L1C82 ; forward to EXPT-1NUM if not. ; else continue and use zero. @@ -8516,8 +8516,8 @@ L1CE6: CALL L2530 ; routine SYNTAX-Z (UNSTACK-Z?) RET Z ; RST 28H ;; FP-CALC - DEFB $A0 ;;stk-zero ;0. - DEFB $38 ;;end-calc + DEFB #A0 ;;stk-zero ;0. + DEFB #38 ;;end-calc RET ; return. @@ -8530,7 +8530,7 @@ L1CE6: CALL L2530 ; routine SYNTAX-Z (UNSTACK-Z?) ;; REPORT-9 ;; STOP L1CEE: RST 08H ; ERROR-1 - DEFB $08 ; Error Report: STOP statement + DEFB #08 ; Error Report: STOP statement ; ----------------- ; Handle IF command @@ -8549,8 +8549,8 @@ L1CF0: POP BC ; drop return address - STMT-RET RST 28H ;; FP-CALC score>100 (1=TRUE 0=FALSE) - DEFB $02 ;;delete . - DEFB $38 ;;end-calc + DEFB #02 ;;delete . + DEFB #38 ;;end-calc EX DE,HL ; make HL point to deleted value CALL L34E9 ; routine TEST-ZERO @@ -8571,7 +8571,7 @@ L1D00: JP L1B29 ; to STMT-L-1, if true (1) to execute command ; The routine begins by checking for an optional STEP. ;; FOR -L1D03: CP $CD ; is there a 'STEP' ? +L1D03: CP #CD ; is there a 'STEP' ? JR NZ,L1D10 ; to F-USE-1 if not to use 1 as default. RST 20H ; NEXT-CHAR @@ -8585,34 +8585,34 @@ L1D03: CP $CD ; is there a 'STEP' ? L1D10: CALL L1BEE ; routine CHECK-END RST 28H ;; FP-CALC v,l. - DEFB $A1 ;;stk-one v,l,1=s. - DEFB $38 ;;end-calc + DEFB #A1 ;;stk-one v,l,1=s. + DEFB #38 ;;end-calc ;; F-REORDER L1D16: RST 28H ;; FP-CALC v,l,s. - DEFB $C0 ;;st-mem-0 v,l,s. - DEFB $02 ;;delete v,l. - DEFB $01 ;;exchange l,v. - DEFB $E0 ;;get-mem-0 l,v,s. - DEFB $01 ;;exchange l,s,v. - DEFB $38 ;;end-calc + DEFB #C0 ;;st-mem-0 v,l,s. + DEFB #02 ;;delete v,l. + DEFB #01 ;;exchange l,v. + DEFB #E0 ;;get-mem-0 l,v,s. + DEFB #01 ;;exchange l,s,v. + DEFB #38 ;;end-calc CALL L2AFF ; routine LET assigns the initial value v to ; the variable altering type if necessary. - LD ($5C68),HL ; The system variable MEM is made to point to + LD (#5C68),HL ; The system variable MEM is made to point to ; the variable instead of its normal ; location MEMBOT DEC HL ; point to single-character name LD A,(HL) ; fetch name SET 7,(HL) ; set bit 7 at location - LD BC,$0006 ; add six to HL + LD BC,#0006 ; add six to HL ADD HL,BC ; to address where limit should be. RLCA ; test bit 7 of original name. JR C,L1D34 ; forward to F-L-S if already a FOR/NEXT ; variable - LD C,$0D ; otherwise an additional 13 bytes are needed. + LD C,#0D ; otherwise an additional 13 bytes are needed. ; 5 for each value, two for line number and ; 1 byte for looping statement. CALL L1655 ; routine MAKE-ROOM creates them. @@ -8622,21 +8622,21 @@ L1D16: RST 28H ;; FP-CALC v,l,s. L1D34: PUSH HL ; save position. RST 28H ;; FP-CALC l,s. - DEFB $02 ;;delete l. - DEFB $02 ;;delete . - DEFB $38 ;;end-calc + DEFB #02 ;;delete l. + DEFB #02 ;;delete . + DEFB #38 ;;end-calc ; DE points to STKEND, l. POP HL ; restore variable position EX DE,HL ; swap pointers - LD C,$0A ; ten bytes to move + LD C,#0A ; ten bytes to move LDIR ; Copy 'deleted' values to variable. - LD HL,($5C45) ; Load with current line number from PPC + LD HL,(#5C45) ; Load with current line number from PPC EX DE,HL ; exchange pointers. LD (HL),E ; save the looping line INC HL ; in the next LD (HL),D ; two locations. - LD D,(IY+$0D) ; fetch statement from SUBPPC system variable. + LD D,(IY+#0D) ; fetch statement from SUBPPC system variable. INC D ; increment statement. INC HL ; and pointer LD (HL),D ; and store the looping statement. @@ -8647,29 +8647,29 @@ L1D34: PUSH HL ; save position. ; no loop is possible so execution continues after the matching 'NEXT' - LD B,(IY+$38) ; get single-character name from STRLEN_lo - LD HL,($5C45) ; get the current line from PPC - LD ($5C42),HL ; and store it in NEWPPC - LD A,($5C47) ; fetch current statement from SUBPPC + LD B,(IY+#38) ; get single-character name from STRLEN_lo + LD HL,(#5C45) ; get the current line from PPC + LD (#5C42),HL ; and store it in NEWPPC + LD A,(#5C47) ; fetch current statement from SUBPPC NEG ; Negate as counter decrements from zero ; initially and we are in the middle of a ; line. LD D,A ; Store result in D. - LD HL,($5C5D) ; get current address from CH_ADD - LD E,$F3 ; search will be for token 'NEXT' + LD HL,(#5C5D) ; get current address from CH_ADD + LD E,#F3 ; search will be for token 'NEXT' ;; F-LOOP L1D64: PUSH BC ; save variable name. - LD BC,($5C55) ; fetch NXTLIN + LD BC,(#5C55) ; fetch NXTLIN CALL L1D86 ; routine LOOK-PROG searches for 'NEXT' token. - LD ($5C55),BC ; update NXTLIN + LD (#5C55),BC ; update NXTLIN POP BC ; and fetch the letter JR C,L1D84 ; forward to REPORT-I if the end of program ; was reached by LOOK-PROG. ; 'FOR without NEXT' RST 20H ; NEXT-CHAR fetches character after NEXT - OR $20 ; ensure it is upper-case. + OR #20 ; ensure it is upper-case. CP B ; compare with FOR variable name JR Z,L1D7C ; forward to F-FOUND if it matches. @@ -8683,16 +8683,16 @@ L1D64: PUSH BC ; save variable name. ;; F-FOUND L1D7C: RST 20H ; NEXT-CHAR - LD A,$01 ; subtract the negated counter from 1 + LD A,#01 ; subtract the negated counter from 1 SUB D ; to give the statement after the NEXT - LD ($5C44),A ; set system variable NSPPC + LD (#5C44),A ; set system variable NSPPC RET ; return to STMT-RET to branch to new ; line and statement. -> ; --- ;; REPORT-I L1D84: RST 08H ; ERROR-1 - DEFB $11 ; Error Report: FOR without NEXT + DEFB #11 ; Error Report: FOR without NEXT ; --------- ; LOOK-PROG @@ -8704,7 +8704,7 @@ L1D84: RST 08H ; ERROR-1 ;; LOOK-PROG L1D86: LD A,(HL) ; fetch current character - CP $3A ; is it ':' a statement separator ? + CP #3A ; is it ':' a statement separator ? JR Z,L1DA3 ; forward to LOOK-P-2 if so. ; The starting point was PROG - 1 or the end of a line. @@ -8712,7 +8712,7 @@ L1D86: LD A,(HL) ; fetch current character ;; LOOK-P-1 L1D8B: INC HL ; increment pointer to address LD A,(HL) ; the high byte of line number - AND $C0 ; test for program end marker $80 or a + AND #C0 ; test for program end marker #80 or a ; variable SCF ; Set Carry Flag RET NZ ; return with carry set if at end @@ -8721,7 +8721,7 @@ L1D8B: INC HL ; increment pointer to address LD B,(HL) ; high byte of line number to B INC HL ; LD C,(HL) ; low byte to C. - LD ($5C42),BC ; set system variable NEWPPC. + LD (#5C42),BC ; set system variable NEWPPC. INC HL ; LD C,(HL) ; low byte of line length to C. INC HL ; @@ -8731,7 +8731,7 @@ L1D8B: INC HL ; increment pointer to address LD B,H ; and save result LD C,L ; in BC. POP HL ; restore address. - LD D,$00 ; initialize statement counter to zero. + LD D,#00 ; initialize statement counter to zero. ;; LOOK-P-2 L1DA3: PUSH BC ; save address of next line @@ -8748,34 +8748,34 @@ L1DA3: PUSH BC ; save address of next line ; The parameter tables have already evaluated the presence of a variable ;; NEXT -L1DAB: BIT 1,(IY+$37) ; test FLAGX - handling a new variable ? +L1DAB: BIT 1,(IY+#37) ; test FLAGX - handling a new variable ? JP NZ,L1C2E ; jump back to REPORT-2 if so ; 'Variable not found' ; now test if found variable is a simple variable uninitialized by a FOR. - LD HL,($5C4D) ; load address of variable from DEST + LD HL,(#5C4D) ; load address of variable from DEST BIT 7,(HL) ; is it correct type ? JR Z,L1DD8 ; forward to REPORT-1 if not ; 'NEXT without FOR' INC HL ; step past variable name - LD ($5C68),HL ; and set MEM to point to three 5-byte values + LD (#5C68),HL ; and set MEM to point to three 5-byte values ; value, limit, step. RST 28H ;; FP-CALC add step and re-store - DEFB $E0 ;;get-mem-0 v. - DEFB $E2 ;;get-mem-2 v,s. - DEFB $0F ;;addition v+s. - DEFB $C0 ;;st-mem-0 v+s. - DEFB $02 ;;delete . - DEFB $38 ;;end-calc + DEFB #E0 ;;get-mem-0 v. + DEFB #E2 ;;get-mem-2 v,s. + DEFB #0F ;;addition v+s. + DEFB #C0 ;;st-mem-0 v+s. + DEFB #02 ;;delete . + DEFB #38 ;;end-calc CALL L1DDA ; routine NEXT-LOOP tests against limit. RET C ; return if no more iterations possible. - LD HL,($5C68) ; find start of variable contents from MEM. - LD DE,$000F ; add 3*5 to + LD HL,(#5C68) ; find start of variable contents from MEM. + LD DE,#000F ; add 3*5 to ADD HL,DE ; address the looping line number LD E,(HL) ; low byte to E INC HL ; @@ -8789,7 +8789,7 @@ L1DAB: BIT 1,(IY+$37) ; test FLAGX - handling a new variable ? ;; REPORT-1 L1DD8: RST 08H ; ERROR-1 - DEFB $00 ; Error Report: NEXT without FOR + DEFB #00 ; Error Report: NEXT without FOR ; ----------------- @@ -8802,24 +8802,24 @@ L1DD8: RST 08H ; ERROR-1 ;; NEXT-LOOP L1DDA: RST 28H ;; FP-CALC - DEFB $E1 ;;get-mem-1 l. - DEFB $E0 ;;get-mem-0 l,v. - DEFB $E2 ;;get-mem-2 l,v,s. - DEFB $36 ;;less-0 l,v,(1/0) negative step ? - DEFB $00 ;;jump-true l,v.(1/0) + DEFB #E1 ;;get-mem-1 l. + DEFB #E0 ;;get-mem-0 l,v. + DEFB #E2 ;;get-mem-2 l,v,s. + DEFB #36 ;;less-0 l,v,(1/0) negative step ? + DEFB #00 ;;jump-true l,v.(1/0) - DEFB $02 ;;to L1DE2, NEXT-1 if step negative + DEFB #02 ;;to L1DE2, NEXT-1 if step negative - DEFB $01 ;;exchange v,l. + DEFB #01 ;;exchange v,l. ;; NEXT-1 -L1DE2: DEFB $03 ;;subtract l-v OR v-l. - DEFB $37 ;;greater-0 (1/0) - DEFB $00 ;;jump-true . +L1DE2: DEFB #03 ;;subtract l-v OR v-l. + DEFB #37 ;;greater-0 (1/0) + DEFB #00 ;;jump-true . - DEFB $04 ;;to L1DE9, NEXT-2 if no more iterations. + DEFB #04 ;;to L1DE9, NEXT-2 if no more iterations. - DEFB $38 ;;end-calc . + DEFB #38 ;;end-calc . AND A ; clear carry flag signalling another loop. RET ; return @@ -8827,7 +8827,7 @@ L1DE2: DEFB $03 ;;subtract l-v OR v-l. ; --- ;; NEXT-2 -L1DE9: DEFB $38 ;;end-calc . +L1DE9: DEFB #38 ;;end-calc . SCF ; set carry flag signalling looping exhausted. RET ; return @@ -8853,19 +8853,19 @@ L1DED: CALL L1C1F ; routine CLASS-01 checks variable. RST 18H ; GET-CHAR - LD ($5C5F),HL ; save character position in X_PTR. - LD HL,($5C57) ; load HL with Data Address DATADD, which is + LD (#5C5F),HL ; save character position in X_PTR. + LD HL,(#5C57) ; load HL with Data Address DATADD, which is ; the start of the program or the address ; after the last expression that was read or ; the address of the line number of the ; last RESTORE command. LD A,(HL) ; fetch character - CP $2C ; is it a comma ? + CP #2C ; is it a comma ? JR Z,L1E0A ; forward to READ-1 if so. ; else all data in this statement has been read so look for next DATA token - LD E,$E4 ; token 'DATA' + LD E,#E4 ; token 'DATA' CALL L1D86 ; routine LOOK-PROG JR NC,L1E0A ; forward to READ-1 if DATA found @@ -8873,7 +8873,7 @@ L1DED: CALL L1C1F ; routine CLASS-01 checks variable. ;; REPORT-E L1E08: RST 08H ; ERROR-1 - DEFB $0D ; Error Report: Out of DATA + DEFB #0D ; Error Report: Out of DATA ;; READ-1 L1E0A: CALL L0077 ; routine TEMP-PTR1 advances updating CH_ADD @@ -8882,14 +8882,14 @@ L1E0A: CALL L0077 ; routine TEMP-PTR1 advances updating CH_ADD ; checking type match and adjusting CH_ADD. RST 18H ; GET-CHAR fetches adjusted character position - LD ($5C57),HL ; store back in DATADD - LD HL,($5C5F) ; fetch X_PTR the original READ CH_ADD - LD (IY+$26),$00 ; now nullify X_PTR_hi + LD (#5C57),HL ; store back in DATADD + LD HL,(#5C5F) ; fetch X_PTR the original READ CH_ADD + LD (IY+#26),#00 ; now nullify X_PTR_hi CALL L0078 ; routine TEMP-PTR2 restores READ CH_ADD ;; READ-2 L1E1E: RST 18H ; GET-CHAR - CP $2C ; is it ',' indicating more variables to read ? + CP #2C ; is it ',' indicating more variables to read ? JR Z,L1DEC ; back to READ-3 if so CALL L1BEE ; routine CHECK-END @@ -8910,7 +8910,7 @@ L1E27: CALL L2530 ; routine SYNTAX-Z to check status ;; DATA-1 L1E2C: CALL L24FB ; routine SCANNING to check syntax of ; expression - CP $2C ; is it a comma ? + CP #2C ; is it a comma ? CALL NZ,L1BEE ; routine CHECK-END checks that statement ; is complete. Will make an early exit if ; so. >>> @@ -8920,7 +8920,7 @@ L1E2C: CALL L24FB ; routine SCANNING to check syntax of ; --- ;; DATA-2 -L1E37: LD A,$E4 ; set token to 'DATA' and continue into +L1E37: LD A,#E4 ; set token to 'DATA' and continue into ; the the PASS-BY routine. @@ -8936,7 +8936,7 @@ L1E39: LD B,A ; Give BC enough space to find token. ; Work backwards till keyword is found which ; is start of statement before any quotes. ; HL points to location before keyword. - LD DE,$0200 ; count 1+1 statements, dummy value in E to + LD DE,#0200 ; count 1+1 statements, dummy value in E to ; inhibit searching for a token. JP L198B ; to EACH-STMT to find next statement @@ -8974,7 +8974,7 @@ L1E39: LD B,A ; Give BC enough space to find token. ;; RESTORE L1E42: CALL L1E99 ; routine FIND-INT2 puts integer in BC. - ; Note. B should be checked against limit $3F + ; Note. B should be checked against limit #3F ; and an error generated if higher. ; this entry point is used from RUN command with BC holding zero @@ -8984,7 +8984,7 @@ L1E45: LD H,B ; transfer the line LD L,C ; number to the HL register. CALL L196E ; routine LINE-ADDR to fetch the address. DEC HL ; point to the location before the line. - LD ($5C57),HL ; update system variable DATADD. + LD (#5C57),HL ; update system variable DATADD. RET ; return to STMT-RET (or RUN) ; ------------------------ @@ -9000,10 +9000,10 @@ L1E4F: CALL L1E99 ; routine FIND-INT2 puts parameter in BC. OR C ; for zero. JR NZ,L1E5A ; forward to RAND-1 if not zero. - LD BC,($5C78) ; use the lower two bytes at FRAMES1. + LD BC,(#5C78) ; use the lower two bytes at FRAMES1. ;; RAND-1 -L1E5A: LD ($5C76),BC ; place in SEED system variable. +L1E5A: LD (#5C76),BC ; place in SEED system variable. RET ; return to STMT-RET ; ----------------------- @@ -9014,8 +9014,8 @@ L1E5A: LD ($5C76),BC ; place in SEED system variable. ; by using the last part of GO TO and exits indirectly to STMT-RET. ;; CONTINUE -L1E5F: LD HL,($5C6E) ; fetch OLDPPC line number. - LD D,(IY+$36) ; fetch OSPPC statement. +L1E5F: LD HL,(#5C6E) ; fetch OLDPPC line number. + LD D,(IY+#36) ; fetch OSPPC statement. JR L1E73 ; forward to GO-TO-2 ; -------------------- @@ -9026,8 +9026,8 @@ L1E5F: LD HL,($5C6E) ; fetch OLDPPC line number. ; It updates the system variables used to fetch the next line/statement. ; It is at STMT-RET that the actual change in control takes place. ; Unlike some BASICs the line number need not exist. -; Note. the high byte of the line number is incorrectly compared with $F0 -; instead of $3F. This leads to commands with operands greater than 32767 +; Note. the high byte of the line number is incorrectly compared with #F0 +; instead of #3F. This leads to commands with operands greater than 32767 ; being considered as having been run from the editing area and the ; error report 'Statement Lost' is given instead of 'OK'. ; - Steven Vickers, 1984. @@ -9036,16 +9036,16 @@ L1E5F: LD HL,($5C6E) ; fetch OLDPPC line number. L1E67: CALL L1E99 ; routine FIND-INT2 puts operand in BC LD H,B ; transfer line LD L,C ; number to HL. - LD D,$00 ; set statement to 0 - first. + LD D,#00 ; set statement to 0 - first. LD A,H ; compare high byte only - CP $F0 ; to $F0 i.e. 61439 in full. + CP #F0 ; to #F0 i.e. 61439 in full. JR NC,L1E9F ; forward to REPORT-B if above. ; This call entry point is used to update the system variables e.g. by RETURN. ;; GO-TO-2 -L1E73: LD ($5C42),HL ; save line number in NEWPPC - LD (IY+$0A),D ; and statement in NSPPC +L1E73: LD (#5C42),HL ; save line number in NEWPPC + LD (IY+#0A),D ; and statement in NSPPC RET ; to STMT-RET (or GO-SUB command) ; ------------------ @@ -9123,7 +9123,7 @@ L1E9C: JR C,L1E9F ; to REPORT-Bb with overflow. ;; REPORT-Bb L1E9F: RST 08H ; ERROR-1 - DEFB $0A ; Error Report: Integer out of range + DEFB #0A ; Error Report: Integer out of range ; ------------------ ; Handle RUN command @@ -9134,7 +9134,7 @@ L1E9F: RST 08H ; ERROR-1 ;; RUN L1EA1: CALL L1E67 ; routine GO-TO puts line number in ; system variables. - LD BC,$0000 ; prepare to set DATADD to first line. + LD BC,#0000 ; prepare to set DATADD to first line. CALL L1E45 ; routine REST-RUN does the 'restore'. ; Note BC still holds zero. JR L1EAF ; forward to CLEAR-RUN to clear variables @@ -9159,19 +9159,19 @@ L1EAF: LD A,B ; test for OR C ; zero. JR NZ,L1EB7 ; skip to CLEAR-1 if not zero. - LD BC,($5CB2) ; use the existing value of RAMTOP if zero. + LD BC,(#5CB2) ; use the existing value of RAMTOP if zero. ;; CLEAR-1 L1EB7: PUSH BC ; save ramtop value. - LD DE,($5C4B) ; fetch VARS - LD HL,($5C59) ; fetch E_LINE + LD DE,(#5C4B) ; fetch VARS + LD HL,(#5C59) ; fetch E_LINE DEC HL ; adjust to point at variables end-marker. CALL L19E5 ; routine RECLAIM-1 reclaims the space used by ; the variables. CALL L0D6B ; routine CLS to clear screen. - LD HL,($5C65) ; fetch STKEND the start of free memory. - LD DE,$0032 ; allow for another 50 bytes. + LD HL,(#5C65) ; fetch STKEND the start of free memory. + LD DE,#0032 ; allow for another 50 bytes. ADD HL,DE ; add the overhead to HL. POP DE ; restore the ramtop value. @@ -9179,25 +9179,25 @@ L1EB7: PUSH BC ; save ramtop value. JR NC,L1EDA ; forward to REPORT-M ; 'RAMTOP no good' - LD HL,($5CB4) ; now P-RAMT ($7FFF on 16K RAM machine) + LD HL,(#5CB4) ; now P-RAMT (#7FFF on 16K RAM machine) AND A ; exact this time. SBC HL,DE ; new ramtop must be lower or the same. JR NC,L1EDC ; skip to CLEAR-2 if in actual RAM. ;; REPORT-M L1EDA: RST 08H ; ERROR-1 - DEFB $15 ; Error Report: RAMTOP no good + DEFB #15 ; Error Report: RAMTOP no good ;; CLEAR-2 L1EDC: EX DE,HL ; transfer ramtop value to HL. - LD ($5CB2),HL ; update system variable RAMTOP. + LD (#5CB2),HL ; update system variable RAMTOP. POP DE ; pop the return address STMT-RET. POP BC ; pop the Error Address. - LD (HL),$3E ; now put the GO SUB end-marker at RAMTOP. + LD (HL),#3E ; now put the GO SUB end-marker at RAMTOP. DEC HL ; leave a location beneath it. LD SP,HL ; initialize the machine stack pointer. PUSH BC ; push the error address. - LD ($5C3D),SP ; make ERR_SP point to location. + LD (#5C3D),SP ; make ERR_SP point to location. EX DE,HL ; put STMT-RET in HL. JP (HL) ; and go there directly. @@ -9211,22 +9211,22 @@ L1EDC: EX DE,HL ; transfer ramtop value to HL. ;; GO-SUB L1EED: POP DE ; drop the address STMT-RET - LD H,(IY+$0D) ; fetch statement from SUBPPC and + LD H,(IY+#0D) ; fetch statement from SUBPPC and INC H ; increment it EX (SP),HL ; swap - error address to HL, ; H (statement) at top of stack, ; L (unimportant) beneath. INC SP ; adjust to overwrite unimportant byte - LD BC,($5C45) ; fetch the current line number from PPC + LD BC,(#5C45) ; fetch the current line number from PPC PUSH BC ; and PUSH onto GO SUB stack. ; the empty machine-stack can be rebuilt PUSH HL ; push the error address. - LD ($5C3D),SP ; make system variable ERR_SP point to it. + LD (#5C3D),SP ; make system variable ERR_SP point to it. PUSH DE ; push the address STMT-RET. CALL L1E67 ; call routine GO-TO to update the system ; variables NEWPPC and NSPPC. ; then make an indirect exit to STMT-RET via - LD BC,$0014 ; a 20-byte overhead memory check. + LD BC,#0014 ; a 20-byte overhead memory check. ; ---------------------- ; Check available memory @@ -9235,22 +9235,22 @@ L1EED: POP DE ; drop the address STMT-RET ; upwards or the GO SUB stack downwards. ;; TEST-ROOM -L1F05: LD HL,($5C65) ; fetch STKEND +L1F05: LD HL,(#5C65) ; fetch STKEND ADD HL,BC ; add the supplied test value - JR C,L1F15 ; forward to REPORT-4 if over $FFFF + JR C,L1F15 ; forward to REPORT-4 if over #FFFF EX DE,HL ; was less so transfer to DE - LD HL,$0050 ; test against another 80 bytes + LD HL,#0050 ; test against another 80 bytes ADD HL,DE ; anyway - JR C,L1F15 ; forward to REPORT-4 if this passes $FFFF + JR C,L1F15 ; forward to REPORT-4 if this passes #FFFF SBC HL,SP ; if less than the machine stack pointer RET C ; then return - OK. ;; REPORT-4 -L1F15: LD L,$03 ; prepare 'Out of Memory' - JP L0055 ; jump back to ERROR-3 at $0055 - ; Note. this error can't be trapped at $0008 +L1F15: LD L,#03 ; prepare 'Out of Memory' + JP L0055 ; jump back to ERROR-3 at #0055 + ; Note. this error can't be trapped at #0008 ; ------------------------------ ; THE 'FREE MEMORY' USER ROUTINE @@ -9259,7 +9259,7 @@ L1F15: LD L,$03 ; prepare 'Out of Memory' ; approximate free memory with PRINT 65536 - USR 7962. ;; free-mem -L1F1A: LD BC,$0000 ; allow no overhead. +L1F1A: LD BC,#0000 ; allow no overhead. CALL L1F05 ; routine TEST-ROOM. @@ -9279,8 +9279,8 @@ L1F1A: LD BC,$0000 ; allow no overhead. L1F23: POP BC ; drop the address STMT-RET. POP HL ; now the error address. POP DE ; now a possible BASIC return line. - LD A,D ; the high byte $00 - $27 is - CP $3E ; compared with the traditional end-marker $3E. + LD A,D ; the high byte #00 - #27 is + CP #3E ; compared with the traditional end-marker #3E. JR Z,L1F36 ; forward to REPORT-7 with a match. ; 'RETURN without GOSUB' @@ -9292,7 +9292,7 @@ L1F23: POP BC ; drop the address STMT-RET. EX (SP),HL ; statement to H, error address to base of ; new machine stack. EX DE,HL ; statement to D, BASIC line number to HL. - LD ($5C3D),SP ; adjust ERR_SP to point to new stack pointer + LD (#5C3D),SP ; adjust ERR_SP to point to new stack pointer PUSH BC ; now re-stack the address STMT-RET JP L1E73 ; to GO-TO-2 to update statement and line ; system variables and exit indirectly to the @@ -9306,7 +9306,7 @@ L1F36: PUSH DE ; replace the end-marker. ; as will be required in a few clock cycles. RST 08H ; ERROR-1 - DEFB $06 ; Error Report: RETURN without GOSUB + DEFB #06 ; Error Report: RETURN without GOSUB ; -------------------- ; Handle PAUSE command @@ -9327,18 +9327,18 @@ L1F3D: HALT ; wait for interrupt. JR Z,L1F4F ; forward to PAUSE-END if so. LD A,B ; test if - AND C ; now $FFFF + AND C ; now #FFFF INC A ; that is, initially zero. JR NZ,L1F49 ; skip forward to PAUSE-2 if not. INC BC ; restore counter to zero. ;; PAUSE-2 -L1F49: BIT 5,(IY+$01) ; test FLAGS - has a new key been pressed ? +L1F49: BIT 5,(IY+#01) ; test FLAGS - has a new key been pressed ? JR Z,L1F3D ; back to PAUSE-1 if not. ;; PAUSE-END -L1F4F: RES 5,(IY+$01) ; update FLAGS - signal no new key +L1F4F: RES 5,(IY+#01) ; update FLAGS - signal no new key RET ; and return. ; ------------------- @@ -9349,13 +9349,13 @@ L1F4F: RES 5,(IY+$01) ; update FLAGS - signal no new key ; It is also called at STMT-RET after every statement. ;; BREAK-KEY -L1F54: LD A,$7F ; Input address: $7FFE - IN A,($FE) ; read lower right keys +L1F54: LD A,#7F ; Input address: #7FFE + IN A,(#FE) ; read lower right keys RRA ; rotate bit 0 - SPACE RET C ; return if not reset - LD A,$FE ; Input address: $FEFE - IN A,($FE) ; read lower left keys + LD A,#FE ; Input address: #FEFE + IN A,(#FE) ; read lower left keys RRA ; rotate bit 0 - SHIFT RET ; carry will be set if not pressed. ; return with no carry if both keys @@ -9372,7 +9372,7 @@ L1F54: LD A,$7F ; Input address: $7FFE L1F60: CALL L2530 ; routine SYNTAX-Z JR Z,L1F6A ; forward to DEF-FN-1 if parsing - LD A,$CE ; else load A with 'DEF FN' and + LD A,#CE ; else load A with 'DEF FN' and JP L1E39 ; jump back to PASS-BY ; --- @@ -9380,27 +9380,27 @@ L1F60: CALL L2530 ; routine SYNTAX-Z ; continue here if checking syntax. ;; DEF-FN-1 -L1F6A: SET 6,(IY+$01) ; set FLAGS - Assume numeric result +L1F6A: SET 6,(IY+#01) ; set FLAGS - Assume numeric result CALL L2C8D ; call routine ALPHA JR NC,L1F89 ; if not then to DEF-FN-4 to jump to ; 'Nonsense in BASIC' RST 20H ; NEXT-CHAR - CP $24 ; is it '$' ? + CP #24 ; is it '$' ? JR NZ,L1F7D ; to DEF-FN-2 if not as numeric. - RES 6,(IY+$01) ; set FLAGS - Signal string result + RES 6,(IY+#01) ; set FLAGS - Signal string result RST 20H ; get NEXT-CHAR ;; DEF-FN-2 -L1F7D: CP $28 ; is it '(' ? +L1F7D: CP #28 ; is it '(' ? JR NZ,L1FBD ; to DEF-FN-7 'Nonsense in BASIC' RST 20H ; NEXT-CHAR - CP $29 ; is it ')' ? + CP #29 ; is it ')' ? JR Z,L1FA6 ; to DEF-FN-6 if null argument ;; DEF-FN-3 @@ -9415,7 +9415,7 @@ L1F89: JP NC,L1C8A ; to REPORT-C if not RST 20H ; NEXT-CHAR re-initializes HL from CH_ADD ; and advances. - CP $24 ; '$' ? is it a string argument. + CP #24 ; '$' ? is it a string argument. JR NZ,L1F94 ; forward to DEF-FN-5 if not. EX DE,HL ; save pointer to '$' in DE @@ -9424,9 +9424,9 @@ L1F89: JP NC,L1C8A ; to REPORT-C if not ;; DEF-FN-5 L1F94: EX DE,HL ; bring back pointer. - LD BC,$0006 ; the function requires six hidden bytes for + LD BC,#0006 ; the function requires six hidden bytes for ; each parameter passed. - ; The first byte will be $0E + ; The first byte will be #0E ; then 5-byte numeric value ; or 5-byte string pointer. @@ -9435,14 +9435,14 @@ L1F94: EX DE,HL ; bring back pointer. INC HL ; adjust HL (set by LDDR) INC HL ; to point to first location. - LD (HL),$0E ; insert the 'hidden' marker. + LD (HL),#0E ; insert the 'hidden' marker. ; Note. these invisible storage locations hold nothing meaningful for the ; moment. They will be used every time the corresponding function is ; evaluated in runtime. ; Now consider the following character fetched earlier. - CP $2C ; is it ',' ? (more than one parameter) + CP #2C ; is it ',' ? (more than one parameter) JR NZ,L1FA6 ; to DEF-FN-6 if not @@ -9452,27 +9452,27 @@ L1F94: EX DE,HL ; bring back pointer. ; --- ;; DEF-FN-6 -L1FA6: CP $29 ; should close with a ')' +L1FA6: CP #29 ; should close with a ')' JR NZ,L1FBD ; to DEF-FN-7 if not ; 'Nonsense in BASIC' RST 20H ; get NEXT-CHAR - CP $3D ; is it '=' ? + CP #3D ; is it '=' ? JR NZ,L1FBD ; to DEF-FN-7 if not 'Nonsense...' RST 20H ; address NEXT-CHAR - LD A,($5C3B) ; get FLAGS which has been set above + LD A,(#5C3B) ; get FLAGS which has been set above PUSH AF ; and preserve CALL L24FB ; routine SCANNING checks syntax of expression ; and also sets flags. POP AF ; restore previous flags - XOR (IY+$01) ; xor with FLAGS - bit 6 should be same + XOR (IY+#01) ; xor with FLAGS - bit 6 should be same ; therefore will be reset. - AND $40 ; isolate bit 6. + AND #40 ; isolate bit 6. ;; DEF-FN-7 L1FBD: JP NZ,L1C8A ; jump back to REPORT-C if the expected result @@ -9511,7 +9511,7 @@ L1FC3: CALL L2530 ; routine SYNTAX-Z sets zero flag if syntax ; An extra UDG might have been better. ;; LPRINT -L1FC9: LD A,$03 ; the printer channel +L1FC9: LD A,#03 ; the printer channel JR L1FCF ; forward to PRINT-1 ; --------------------- @@ -9522,7 +9522,7 @@ L1FC9: LD A,$03 ; the printer channel ; of the computer. However the stream can be altered in range 0 - 15. ;; PRINT -L1FCD: LD A,$02 ; the stream for the upper screen. +L1FCD: LD A,#02 ; the stream for the upper screen. ; The LPRINT command joins here. @@ -9560,7 +9560,7 @@ L1FE5: CALL L204E ; routine PR-POSN-1 returns zero if more JR Z,L1FE5 ; loop back to PRINT-3 if so ;; PRINT-4 -L1FF2: CP $29 ; return now if this is ')' from input-item. +L1FF2: CP #29 ; return now if this is ')' from input-item. ; (see INPUT.) RET Z ; or continue and print carriage return in ; runtime @@ -9574,7 +9574,7 @@ L1FF2: CP $29 ; return now if this is ')' from input-item. ;; PRINT-CR L1FF5: CALL L1FC3 ; routine UNSTACK-Z - LD A,$0D ; prepare a carriage return + LD A,#0D ; prepare a carriage return RST 10H ; PRINT-A RET ; return @@ -9590,7 +9590,7 @@ L1FF5: CALL L1FC3 ; routine UNSTACK-Z ;; PR-ITEM-1 L1FFC: RST 18H ; GET-CHAR - CP $AC ; is character 'AT' ? + CP #AC ; is character 'AT' ? JR NZ,L200E ; forward to PR-ITEM-2 if not. CALL L1C79 ; routine NEXT-2NUM check for two comma @@ -9599,13 +9599,13 @@ L1FFC: RST 18H ; GET-CHAR CALL L1FC3 ; routine UNSTACK-Z quits if checking syntax. CALL L2307 ; routine STK-TO-BC get the numbers in B and C. - LD A,$16 ; prepare the 'at' control. + LD A,#16 ; prepare the 'at' control. JR L201E ; forward to PR-AT-TAB to print the sequence. ; --- ;; PR-ITEM-2 -L200E: CP $AD ; is character 'TAB' ? +L200E: CP #AD ; is character 'TAB' ? JR NZ,L2024 ; to PR-ITEM-3 if not @@ -9614,7 +9614,7 @@ L200E: CP $AD ; is character 'TAB' ? CALL L1FC3 ; routine UNSTACK-Z quits if checking syntax. CALL L1E99 ; routine FIND-INT2 puts integer in BC. - LD A,$17 ; prepare the 'tab' control. + LD A,#17 ; prepare the 'tab' control. ;; PR-AT-TAB L201E: RST 10H ; PRINT-A outputs the control @@ -9641,7 +9641,7 @@ L2024: CALL L21F2 ; routine CO-TEMP-3 will print any colour CALL L24FB ; routine SCANNING now to evaluate expression CALL L1FC3 ; routine UNSTACK-Z if not runtime. - BIT 6,(IY+$01) ; test FLAGS - Numeric or string result ? + BIT 6,(IY+#01) ; test FLAGS - Numeric or string result ? CALL Z,L2BF1 ; routine STK-FETCH if string. ; note no flags affected. JP NZ,L2DE3 ; to PRINT-FP to print if numeric >>> @@ -9671,14 +9671,14 @@ L203C: LD A,B ; this tests if the ; the others in print_items. ;; PR-END-Z -L2045: CP $29 ; is character a ')' ? +L2045: CP #29 ; is character a ')' ? RET Z ; return if so - e.g. INPUT (p$); a$ ;; PR-ST-END -L2048: CP $0D ; is it a carriage return ? +L2048: CP #0D ; is it a carriage return ? RET Z ; return also - e.g. PRINT a - CP $3A ; is character a ':' ? + CP #3A ; is character a ':' ? RET ; return - zero flag will be set if so. ; e.g. PRINT a : @@ -9689,19 +9689,19 @@ L2048: CP $0D ; is it a carriage return ? ;; PR-POSN-1 L204E: RST 18H ; GET-CHAR - CP $3B ; is it ';' ? + CP #3B ; is it ';' ? ; i.e. print from last position. JR Z,L2067 ; forward to PR-POSN-3 if so. ; i.e. do nothing. - CP $2C ; is it ',' ? + CP #2C ; is it ',' ? ; i.e. print at next tabstop. JR NZ,L2061 ; forward to PR-POSN-2 if anything else. CALL L2530 ; routine SYNTAX-Z JR Z,L2067 ; forward to PR-POSN-3 if checking syntax. - LD A,$06 ; prepare the 'comma' control character. + LD A,#06 ; prepare the 'comma' control character. RST 10H ; PRINT-A outputs to current channel in ; run-time. @@ -9713,7 +9713,7 @@ L204E: RST 18H ; GET-CHAR ; check for newline. ;; PR-POSN-2 -L2061: CP $27 ; is character a "'" ? (newline) +L2061: CP #27 ; is character a "'" ? (newline) RET NZ ; return if no match >>> CALL L1FF5 ; routine PRINT-CR outputs a carriage return @@ -9737,7 +9737,7 @@ L206E: CP A ; reset the zero flag. ; LIST #15 ;; STR-ALTER -L2070: CP $23 ; is character '#' ? +L2070: CP #23 ; is character '#' ? SCF ; set carry flag. RET NZ ; return if no match. @@ -9747,7 +9747,7 @@ L2070: CP $23 ; is character '#' ? AND A ; prepare to exit early with carry reset CALL L1FC3 ; routine UNSTACK-Z exits early if parsing CALL L1E94 ; routine FIND-INT1 gets number off stack - CP $10 ; must be range 0 - 15 decimal. + CP #10 ; must be range 0 - 15 decimal. JP NC,L160E ; jump back to REPORT-Oa if not ; 'Invalid stream'. @@ -9765,13 +9765,13 @@ L2070: CP $23 ; is character '#' ? L2089: CALL L2530 ; routine SYNTAX-Z to check if in runtime. JR Z,L2096 ; forward to INPUT-1 if checking syntax. - LD A,$01 ; select channel 'K' the keyboard for input. + LD A,#01 ; select channel 'K' the keyboard for input. CALL L1601 ; routine CHAN-OPEN opens it. CALL L0D6E ; routine CLS-LOWER clears the lower screen ; and sets DF_SZ to two. ;; INPUT-1 -L2096: LD (IY+$02),$01 ; update TV_FLAG - signal lower screen in use +L2096: LD (IY+#02),#01 ; update TV_FLAG - signal lower screen in use ; ensuring that the correct set of system ; variables are updated and that the border ; colour is used. @@ -9784,26 +9784,26 @@ L2096: LD (IY+$02),$01 ; update TV_FLAG - signal lower screen in use ; keyboard input has been made and it remains to adjust the upper ; screen in case the lower two lines have been extended upwards. - LD BC,($5C88) ; fetch S_POSN current line/column of + LD BC,(#5C88) ; fetch S_POSN current line/column of ; the upper screen. - LD A,($5C6B) ; fetch DF_SZ the display file size of + LD A,(#5C6B) ; fetch DF_SZ the display file size of ; the lower screen. CP B ; test that lower screen does not overlap JR C,L20AD ; forward to INPUT-2 if not. ; the two screens overlap so adjust upper screen. - LD C,$21 ; set column of upper screen to leftmost. + LD C,#21 ; set column of upper screen to leftmost. LD B,A ; and line to one above lower screen. ; continue forward to update upper screen ; print position. ;; INPUT-2 -L20AD: LD ($5C88),BC ; set S_POSN update upper screen line/column. - LD A,$19 ; subtract from twenty five +L20AD: LD (#5C88),BC ; set S_POSN update upper screen line/column. + LD A,#19 ; subtract from twenty five SUB B ; the new line number. - LD ($5C8C),A ; and place result in SCR_CT - scroll count. - RES 0,(IY+$02) ; update TV_FLAG - signal main screen in use. + LD (#5C8C),A ; and place result in SCR_CT - scroll count. + RES 0,(IY+#02) ; update TV_FLAG - signal main screen in use. CALL L0DD9 ; routine CL-SET sets the print position ; system variables for the upper screen. JP L0D6E ; jump back to CLS-LOWER and make @@ -9823,7 +9823,7 @@ L20C1: CALL L204E ; routine PR-POSN-1 deals with a single JR Z,L20C1 ; back to IN-ITEM-1 until no more in a ; sequence. - CP $28 ; is character '(' ? + CP #28 ; is character '(' ? JR NZ,L20D8 ; forward to IN-ITEM-2 if not. ; any variables within braces will be treated as part, or all, of the prompt @@ -9834,7 +9834,7 @@ L20C1: CALL L204E ; routine PR-POSN-1 deals with a single ; prompt. RST 18H ; GET-CHAR - CP $29 ; is character a matching ')' ? + CP #29 ; is character a matching ')' ? JP NZ,L1C8A ; jump back to REPORT-C if not. ; 'Nonsense in BASIC'. @@ -9844,7 +9844,7 @@ L20C1: CALL L204E ; routine PR-POSN-1 deals with a single ; --- ;; IN-ITEM-2 -L20D8: CP $CA ; is the character the token 'LINE' ? +L20D8: CP #CA ; is the character the token 'LINE' ? JR NZ,L20ED ; forward to IN-ITEM-3 if not. RST 20H ; NEXT-CHAR - variable must come next. @@ -9853,8 +9853,8 @@ L20D8: CP $CA ; is the character the token 'LINE' ? ; or generates an error if no variable ; at this position. - SET 7,(IY+$37) ; update FLAGX - signal handling INPUT LINE - BIT 6,(IY+$01) ; test FLAGS - numeric or string result ? + SET 7,(IY+#37) ; update FLAGX - signal handling INPUT LINE + BIT 6,(IY+#01) ; test FLAGS - numeric or string result ? JP NZ,L1C8A ; jump back to REPORT-C if not string ; 'Nonsense in BASIC'. @@ -9871,29 +9871,29 @@ L20ED: CALL L2C8D ; routine ALPHA checks if character is CALL L1C1F ; routine CLASS-01 returns destination ; address of variable to be assigned. - RES 7,(IY+$37) ; update FLAGX - signal not INPUT LINE. + RES 7,(IY+#37) ; update FLAGX - signal not INPUT LINE. ;; IN-PROMPT L20FA: CALL L2530 ; routine SYNTAX-Z JP Z,L21B2 ; forward to IN-NEXT-2 if checking syntax. CALL L16BF ; routine SET-WORK clears workspace. - LD HL,$5C71 ; point to system variable FLAGX + LD HL,#5C71 ; point to system variable FLAGX RES 6,(HL) ; signal string result. SET 5,(HL) ; signal in Input Mode for editor. - LD BC,$0001 ; initialize space required to one for + LD BC,#0001 ; initialize space required to one for ; the carriage return. BIT 7,(HL) ; test FLAGX - INPUT LINE in use ? JR NZ,L211C ; forward to IN-PR-2 if so as that is ; all the space that is required. - LD A,($5C3B) ; load accumulator from FLAGS - AND $40 ; mask to test BIT 6 of FLAGS and clear + LD A,(#5C3B) ; load accumulator from FLAGS + AND #40 ; mask to test BIT 6 of FLAGS and clear ; the other bits in A. ; numeric result expected ? JR NZ,L211A ; forward to IN-PR-1 if so - LD C,$03 ; increase space to three bytes for the + LD C,#03 ; increase space to three bytes for the ; pair of surrounding quotes. ;; IN-PR-1 @@ -9902,42 +9902,42 @@ L211A: OR (HL) ; if numeric result, set bit 6 of FLAGX. ;; IN-PR-2 L211C: RST 30H ; BC-SPACES opens 1 or 3 bytes in workspace - LD (HL),$0D ; insert carriage return at last new location. + LD (HL),#0D ; insert carriage return at last new location. LD A,C ; fetch the length, one or three. RRCA ; lose bit 0. RRCA ; test if quotes required. JR NC,L2129 ; forward to IN-PR-3 if not. - LD A,$22 ; load the '"' character + LD A,#22 ; load the '"' character LD (DE),A ; place quote in first new location at DE. DEC HL ; decrease HL - from carriage return. LD (HL),A ; and place a quote in second location. ;; IN-PR-3 -L2129: LD ($5C5B),HL ; set keyboard cursor K_CUR to HL - BIT 7,(IY+$37) ; test FLAGX - is this INPUT LINE ?? +L2129: LD (#5C5B),HL ; set keyboard cursor K_CUR to HL + BIT 7,(IY+#37) ; test FLAGX - is this INPUT LINE ?? JR NZ,L215E ; forward to IN-VAR-3 if so as input will ; be accepted without checking its syntax. - LD HL,($5C5D) ; fetch CH_ADD + LD HL,(#5C5D) ; fetch CH_ADD PUSH HL ; and save on stack. - LD HL,($5C3D) ; fetch ERR_SP + LD HL,(#5C3D) ; fetch ERR_SP PUSH HL ; and save on stack ;; IN-VAR-1 L213A: LD HL,L213A ; address: IN-VAR-1 - this address PUSH HL ; is saved on stack to handle errors. - BIT 4,(IY+$30) ; test FLAGS2 - is K channel in use ? + BIT 4,(IY+#30) ; test FLAGS2 - is K channel in use ? JR Z,L2148 ; forward to IN-VAR-2 if not using the ; keyboard for input. (??) - LD ($5C3D),SP ; set ERR_SP to point to IN-VAR-1 on stack. + LD (#5C3D),SP ; set ERR_SP to point to IN-VAR-1 on stack. ;; IN-VAR-2 -L2148: LD HL,($5C61) ; set HL to WORKSP - start of workspace. +L2148: LD HL,(#5C61) ; set HL to WORKSP - start of workspace. CALL L11A7 ; routine REMOVE-FP removes floating point ; forms when looping in error condition. - LD (IY+$00),$FF ; set ERR_NR to 'OK' cancelling the error. + LD (IY+#00),#FF ; set ERR_NR to 'OK' cancelling the error. ; but X_PTR causes flashing error marker ; to be displayed at each call to the editor. CALL L0F2C ; routine EDITOR allows input to be entered @@ -9945,7 +9945,7 @@ L2148: LD HL,($5C61) ; set HL to WORKSP - start of workspace. ; if we pass to next then there are no system errors - RES 7,(IY+$01) ; update FLAGS - signal checking syntax + RES 7,(IY+#01) ; update FLAGS - signal checking syntax CALL L21B9 ; routine IN-ASSIGN checks syntax using ; the VAL-FET-2 and powerful SCANNING routines. ; any syntax error and its back to IN-VAR-1. @@ -9971,7 +9971,7 @@ L215E: CALL L0F2C ; routine EDITOR is called for input ; INPUT and INPUT LINE converge here. ;; IN-VAR-4 -L2161: LD (IY+$22),$00 ; set K_CUR_hi to a low value so that the cursor +L2161: LD (IY+#22),#00 ; set K_CUR_hi to a low value so that the cursor ; no longer appears in the input line. CALL L21D6 ; routine IN-CHAN-K tests if the keyboard @@ -9987,14 +9987,14 @@ L2161: LD (IY+$22),$00 ; set K_CUR_hi to a low value so that the cursor ; if you're inputting more than one item in ; a statement then that becomes apparent. - LD BC,($5C82) ; fetch line and column from ECHO_E + LD BC,(#5C82) ; fetch line and column from ECHO_E CALL L0DD9 ; routine CL-SET sets S-POSNL to those ; values. ; if using another input channel rejoin here. ;; IN-VAR-5 -L2174: LD HL,$5C71 ; point HL to FLAGX +L2174: LD HL,#5C71 ; point HL to FLAGX RES 5,(HL) ; signal not in input mode BIT 7,(HL) ; is this INPUT LINE ? RES 7,(HL) ; cancel the bit anyway. @@ -10003,20 +10003,20 @@ L2174: LD HL,$5C71 ; point HL to FLAGX POP HL ; drop the looping address POP HL ; drop the the address of previous ; error handler. - LD ($5C3D),HL ; set ERR_SP to point to it. + LD (#5C3D),HL ; set ERR_SP to point to it. POP HL ; drop original CH_ADD which points to ; INPUT command in BASIC line. - LD ($5C5F),HL ; save in X_PTR while input is assigned. - SET 7,(IY+$01) ; update FLAGS - Signal running program + LD (#5C5F),HL ; save in X_PTR while input is assigned. + SET 7,(IY+#01) ; update FLAGS - Signal running program CALL L21B9 ; routine IN-ASSIGN is called again ; this time the variable will be assigned ; the input value without error. ; Note. the previous example now ; becomes "hatstand" - LD HL,($5C5F) ; fetch stored CH_ADD value from X_PTR. - LD (IY+$26),$00 ; set X_PTR_hi so that iy is no longer relevant. - LD ($5C5D),HL ; put restored value back in CH_ADD + LD HL,(#5C5F) ; fetch stored CH_ADD value from X_PTR. + LD (IY+#26),#00 ; set X_PTR_hi so that iy is no longer relevant. + LD (#5C5D),HL ; put restored value back in CH_ADD JR L21B2 ; forward to IN-NEXT-2 to see if anything ; more in the INPUT list. @@ -10025,8 +10025,8 @@ L2174: LD HL,$5C71 ; point HL to FLAGX ; the jump was to here with INPUT LINE only ;; IN-VAR-6 -L219B: LD HL,($5C63) ; STKBOT points to the end of the input. - LD DE,($5C61) ; WORKSP points to the beginning. +L219B: LD HL,(#5C63) ; STKBOT points to the end of the input. + LD DE,(#5C61) ; WORKSP points to the beginning. SCF ; prepare for true subtraction. SBC HL,DE ; subtract to get length LD B,H ; transfer it to @@ -10064,20 +10064,20 @@ L21B2: CALL L204E ; routine PR-POSN-1 handles a position item. ; the assignment. ;; IN-ASSIGN -L21B9: LD HL,($5C61) ; fetch WORKSP start of input - LD ($5C5D),HL ; set CH_ADD to first character +L21B9: LD HL,(#5C61) ; fetch WORKSP start of input + LD (#5C5D),HL ; set CH_ADD to first character RST 18H ; GET-CHAR ignoring leading white-space. - CP $E2 ; is it 'STOP' + CP #E2 ; is it 'STOP' JR Z,L21D0 ; forward to IN-STOP if so. - LD A,($5C71) ; load accumulator from FLAGX + LD A,(#5C71) ; load accumulator from FLAGX CALL L1C59 ; routine VAL-FET-2 makes assignment ; or goes through the motions if checking ; syntax. SCANNING is used. RST 18H ; GET-CHAR - CP $0D ; is it carriage return ? + CP #0D ; is it carriage return ? RET Z ; return if so ; either syntax is OK ; or assignment has been made. @@ -10088,7 +10088,7 @@ L21B9: LD HL,($5C61) ; fetch WORKSP start of input ;; REPORT-Cb L21CE: RST 08H ; ERROR-1 - DEFB $0B ; Error Report: Nonsense in BASIC + DEFB #0B ; Error Report: Nonsense in BASIC ;; IN-STOP L21D0: CALL L2530 ; routine SYNTAX-Z (UNSTACK-Z?) @@ -10099,7 +10099,7 @@ L21D0: CALL L2530 ; routine SYNTAX-Z (UNSTACK-Z?) ;; REPORT-H L21D4: RST 08H ; ERROR-1 - DEFB $10 ; Error Report: STOP in INPUT + DEFB #10 ; Error Report: STOP in INPUT ; ------------------ ; Test for channel K @@ -10109,13 +10109,13 @@ L21D4: RST 08H ; ERROR-1 ; use is the one for the keyboard. ;; IN-CHAN-K -L21D6: LD HL,($5C51) ; fetch address of current channel CURCHL +L21D6: LD HL,(#5C51) ; fetch address of current channel CURCHL INC HL ; INC HL ; advance past INC HL ; input and INC HL ; output streams LD A,(HL) ; fetch the channel identifier. - CP $4B ; test for 'K' + CP #4B ; test for 'K' RET ; return with zero set if keyboard is use. ; -------------------- @@ -10156,10 +10156,10 @@ L21E2: CALL L21F2 ; routine CO-TEMP-3 to output colour control. RST 18H ; GET-CHAR - CP $2C ; is it ',' separator ? + CP #2C ; is it ',' separator ? JR Z,L21E1 ; back if so to CO-TEMP-1 - CP $3B ; is it ';' separator ? + CP #3B ; is it ';' separator ? JR Z,L21E1 ; back to CO-TEMP-1 for more. JP L1C8A ; to REPORT-C (REPORT-Cb is within range) @@ -10175,12 +10175,12 @@ L21E2: CALL L21F2 ; routine CO-TEMP-3 to output colour control. ; It is quite permissible to send these to any stream. ;; CO-TEMP-3 -L21F2: CP $D9 ; is it 'INK' ? +L21F2: CP #D9 ; is it 'INK' ? RET C ; return if less. - CP $DF ; compare with 'OUT' + CP #DF ; compare with 'OUT' CCF ; Complement Carry Flag - RET C ; return if greater than 'OVER', $DE. + RET C ; return if greater than 'OVER', #DE. PUSH AF ; save the colour token. @@ -10190,8 +10190,8 @@ L21F2: CP $D9 ; is it 'INK' ? ; -> this entry point used by CLASS-07. e.g. the command PAPER 6. ;; CO-TEMP-4 -L21FC: SUB $C9 ; reduce to control character $10 (INK) - ; thru $15 (OVER). +L21FC: SUB #C9 ; reduce to control character #10 (INK) + ; thru #15 (OVER). PUSH AF ; save control. CALL L1C82 ; routine EXPT-1NUM stacks addressed ; parameter on calculator stack. @@ -10243,37 +10243,37 @@ L21FC: SUB $C9 ; reduce to control character $10 (INK) ; The colour system variable handler. ; ------------------------------------ ; This is an exit branch from PO-1-OPER, PO-2-OPER -; A holds control $10 (INK) to $15 (OVER) +; A holds control #10 (INK) to #15 (OVER) ; D holds parameter 0-9 for ink/paper 0,1 or 8 for bright/flash, ; 0 or 1 for over/inverse. ;; CO-TEMP-5 -L2211: SUB $11 ; reduce range $FF-$04 - ADC A,$00 ; add in carry if INK +L2211: SUB #11 ; reduce range #FF-#04 + ADC A,#00 ; add in carry if INK JR Z,L2234 ; forward to CO-TEMP-7 with INK and PAPER. - SUB $02 ; reduce range $FF-$02 - ADC A,$00 ; add carry if FLASH + SUB #02 ; reduce range #FF-#02 + ADC A,#00 ; add carry if FLASH JR Z,L2273 ; forward to CO-TEMP-C with FLASH and BRIGHT. - CP $01 ; is it 'INVERSE' ? + CP #01 ; is it 'INVERSE' ? LD A,D ; fetch parameter for INVERSE/OVER - LD B,$01 ; prepare OVER mask setting bit 0. + LD B,#01 ; prepare OVER mask setting bit 0. JR NZ,L2228 ; forward to CO-TEMP-6 if OVER RLCA ; shift bit 0 RLCA ; to bit 2 - LD B,$04 ; set bit 2 of mask for inverse. + LD B,#04 ; set bit 2 of mask for inverse. ;; CO-TEMP-6 L2228: LD C,A ; save the A LD A,D ; re-fetch parameter - CP $02 ; is it less than 2 + CP #02 ; is it less than 2 JR NC,L2244 ; to REPORT-K if not 0 or 1. ; 'Invalid colour'. LD A,C ; restore A - LD HL,$5C91 ; address system variable P_FLAG + LD HL,#5C91 ; address system variable P_FLAG JR L226C ; forward to exit via routine CO-CHANGE ; --- @@ -10282,31 +10282,31 @@ L2228: LD C,A ; save the A ;; CO-TEMP-7 L2234: LD A,D ; fetch parameter - LD B,$07 ; set ink mask 00000111 + LD B,#07 ; set ink mask 00000111 JR C,L223E ; forward to CO-TEMP-8 with INK RLCA ; shift bits 0-2 RLCA ; to RLCA ; bits 3-5 - LD B,$38 ; set paper mask 00111000 + LD B,#38 ; set paper mask 00111000 ; both paper and ink rejoin here ;; CO-TEMP-8 L223E: LD C,A ; value to C LD A,D ; fetch parameter - CP $0A ; is it less than 10d ? + CP #0A ; is it less than 10d ? JR C,L2246 ; forward to CO-TEMP-9 if so. ; ink 10 etc. is not allowed. ;; REPORT-K L2244: RST 08H ; ERROR-1 - DEFB $13 ; Error Report: Invalid colour + DEFB #13 ; Error Report: Invalid colour ;; CO-TEMP-9 -L2246: LD HL,$5C8F ; address system variable ATTR_T initially. - CP $08 ; compare with 8 +L2246: LD HL,#5C8F ; address system variable ATTR_T initially. + CP #08 ; compare with 8 JR C,L2258 ; forward to CO-TEMP-B with 0-7. LD A,(HL) ; fetch temporary attribute as no change. @@ -10316,7 +10316,7 @@ L2246: LD HL,$5C8F ; address system variable ATTR_T initially. OR B ; or with mask to make white CPL ; make black and change other to dark - AND $24 ; 00100100 + AND #24 ; 00100100 JR Z,L2257 ; forward to CO-TEMP-A if black and ; originally light. @@ -10329,9 +10329,9 @@ L2257: LD C,A ; save A in C L2258: LD A,C ; load colour to A CALL L226C ; routine CO-CHANGE addressing ATTR-T - LD A,$07 ; put 7 in accumulator + LD A,#07 ; put 7 in accumulator CP D ; compare with parameter - SBC A,A ; $00 if 0-7, $FF if 8 + SBC A,A ; #00 if 0-7, #FF if 8 CALL L226C ; routine CO-CHANGE addressing MASK-T ; mask returned in A. @@ -10339,11 +10339,11 @@ L2258: LD A,C ; load colour to A RLCA ; 01110000 or 00001110 RLCA ; 11100000 or 00011100 - AND $50 ; 01000000 or 00010000 (AND 01010000) + AND #50 ; 01000000 or 00010000 (AND 01010000) LD B,A ; transfer to mask - LD A,$08 ; load A with 8 + LD A,#08 ; load A with 8 CP D ; compare with parameter - SBC A,A ; $FF if was 9, $00 if 0-8 + SBC A,A ; #FF if was 9, #00 if 0-8 ; continue while addressing P-FLAG ; setting bit 4 if ink 9 ; setting bit 6 if paper 9 @@ -10371,25 +10371,25 @@ L226C: XOR (HL) ; impress bits specified L2273: SBC A,A ; set zero flag for bright. LD A,D ; fetch original parameter 0,1 or 8 RRCA ; rotate bit 0 to bit 7 - LD B,$80 ; mask for flash 10000000 + LD B,#80 ; mask for flash 10000000 JR NZ,L227D ; forward to CO-TEMP-D if flash RRCA ; rotate bit 7 to bit 6 - LD B,$40 ; mask for bright 01000000 + LD B,#40 ; mask for bright 01000000 ;; CO-TEMP-D L227D: LD C,A ; store value in C LD A,D ; fetch parameter - CP $08 ; compare with 8 + CP #08 ; compare with 8 JR Z,L2287 ; forward to CO-TEMP-E if 8 - CP $02 ; test if 0 or 1 + CP #02 ; test if 0 or 1 JR NC,L2244 ; back to REPORT-K if not ; 'Invalid colour' ;; CO-TEMP-E L2287: LD A,C ; value to A - LD HL,$5C8F ; address ATTR_T + LD HL,#5C8F ; address ATTR_T CALL L226C ; routine CO-CHANGE addressing ATTR_T LD A,C ; fetch value RRCA ; for flash8/bright8 complete @@ -10407,11 +10407,11 @@ L2287: LD A,C ; value to A ;; BORDER L2294: CALL L1E94 ; routine FIND-INT1 - CP $08 ; must be in range 0 (black) to 7 (white) + CP #08 ; must be in range 0 (black) to 7 (white) JR NC,L2244 ; back to REPORT-K if not ; 'Invalid colour'. - OUT ($FE),A ; outputting to port effects an immediate + OUT (#FE),A ; outputting to port effects an immediate ; change. RLCA ; shift the colour to RLCA ; the paper bits setting the @@ -10420,10 +10420,10 @@ L2294: CALL L1E94 ; routine FIND-INT1 ; i.e. in the range green to white. JR NZ,L22A6 ; skip to BORDER-1 if so - XOR $07 ; make the ink white. + XOR #07 ; make the ink white. ;; BORDER-1 -L22A6: LD ($5C48),A ; update BORDCR with new paper/ink +L22A6: LD (#5C48),A ; update BORDCR with new paper/ink RET ; return. ; ----------------- @@ -10433,7 +10433,7 @@ L22A6: LD ($5C48),A ; update BORDCR with new paper/ink ; ;; PIXEL-ADD -L22AA: LD A,$AF ; load with 175 decimal. +L22AA: LD A,#AF ; load with 175 decimal. SUB B ; subtract the y value. JP C,L24F9 ; jump forward to REPORT-Bc if greater. ; 'Integer out of range' @@ -10454,7 +10454,7 @@ L22AA: LD A,$AF ; load with 175 decimal. RRA ; 010xxxxx XOR B ; - AND $F8 ; keep the top 5 bits 11111000 + AND #F8 ; keep the top 5 bits 11111000 XOR B ; 010xxbbb LD H,A ; transfer high byte to H. @@ -10465,7 +10465,7 @@ L22AA: LD A,$AF ; load with 175 decimal. RLCA ; RLCA ; XOR B ; the y value - AND $C7 ; apply mask 11000111 + AND #C7 ; apply mask 11000111 XOR B ; restore unmasked bits xxyyyxxx RLCA ; rotate to xyyyxxxx RLCA ; required position. yyyxxxxx @@ -10474,7 +10474,7 @@ L22AA: LD A,$AF ; load with 175 decimal. ; finally form the pixel position in A. LD A,C ; x value to A - AND $07 ; mod 8 + AND #07 ; mod 8 RET ; return ; ---------------- @@ -10494,7 +10494,7 @@ L22CB: CALL L2307 ; routine STK-TO-BC L22D4: RLCA ; rotate and loop back DJNZ L22D4 ; to POINT-LP until pixel at right. - AND $01 ; test to give zero or one. + AND #01 ; test to give zero or one. JP L2D28 ; jump forward to STACK-A to save result. ; ------------------- @@ -10520,12 +10520,12 @@ L22DC: CALL L2307 ; routine STK-TO-BC ; back on the screen though the colours may change. ;; PLOT-SUB -L22E5: LD ($5C7D),BC ; store new x/y values in COORDS +L22E5: LD (#5C7D),BC ; store new x/y values in COORDS CALL L22AA ; routine PIXEL-ADD gets address in HL, ; count from left 0-7 in B. LD B,A ; transfer count to B. INC B ; increase 1-8. - LD A,$FE ; 11111110 in A. + LD A,#FE ; 11111110 in A. ;; PLOT-LOOP L22F0: RRCA ; rotate mask. @@ -10534,7 +10534,7 @@ L22F0: RRCA ; rotate mask. LD B,A ; load mask to B LD A,(HL) ; fetch screen byte to A - LD C,(IY+$57) ; P_FLAG to C + LD C,(IY+#57) ; P_FLAG to C BIT 0,C ; is it to be OVER 1 ? JR NZ,L22FD ; forward to PL-TST-IN if so. @@ -10582,10 +10582,10 @@ L2314: CALL L2DD5 ; routine FP-TO-A compresses last value into ; zero flag set if positive. JP C,L24F9 ; jump forward to REPORT-Bc if >= 255.5. - LD C,$01 ; prepare a positive sign byte. + LD C,#01 ; prepare a positive sign byte. RET Z ; return if FP-TO-BC indicated positive. - LD C,$FF ; prepare negative sign byte and + LD C,#FF ; prepare negative sign byte and RET ; return. @@ -10597,7 +10597,7 @@ L2314: CALL L2DD5 ; routine FP-TO-A compresses last value into ;; CIRCLE L2320: RST 18H ; GET-CHAR - CP $2C ; is it required comma ? + CP #2C ; is it required comma ? JP NZ,L1C8A ; jump to REPORT-C if not @@ -10607,19 +10607,19 @@ L2320: RST 18H ; GET-CHAR ; nothing follows command. RST 28H ;; FP-CALC - DEFB $2A ;;abs ; make radius positive - DEFB $3D ;;re-stack ; in full floating point form - DEFB $38 ;;end-calc + DEFB #2A ;;abs ; make radius positive + DEFB #3D ;;re-stack ; in full floating point form + DEFB #38 ;;end-calc LD A,(HL) ; fetch first floating point byte - CP $81 ; compare to one + CP #81 ; compare to one JR NC,L233B ; forward to C-R-GRE-1 if circle radius ; is greater than one. RST 28H ;; FP-CALC - DEFB $02 ;;delete ; delete the radius from stack. - DEFB $38 ;;end-calc + DEFB #02 ;;delete ; delete the radius from stack. + DEFB #38 ;;end-calc JR L22DC ; to PLOT to just plot x,y. @@ -10628,34 +10628,34 @@ L2320: RST 18H ; GET-CHAR ;; C-R-GRE-1 L233B: RST 28H ;; FP-CALC ; x, y, r - DEFB $A3 ;;stk-pi/2 ; x, y, r, pi/2. - DEFB $38 ;;end-calc + DEFB #A3 ;;stk-pi/2 ; x, y, r, pi/2. + DEFB #38 ;;end-calc - LD (HL),$83 ; ; x, y, r, 2*PI + LD (HL),#83 ; ; x, y, r, 2*PI RST 28H ;; FP-CALC - DEFB $C5 ;;st-mem-5 ; store 2*PI in mem-5 - DEFB $02 ;;delete ; x, y, z. - DEFB $38 ;;end-calc + DEFB #C5 ;;st-mem-5 ; store 2*PI in mem-5 + DEFB #02 ;;delete ; x, y, z. + DEFB #38 ;;end-calc CALL L247D ; routine CD-PRMS1 PUSH BC ; RST 28H ;; FP-CALC - DEFB $31 ;;duplicate - DEFB $E1 ;;get-mem-1 - DEFB $04 ;;multiply - DEFB $38 ;;end-calc + DEFB #31 ;;duplicate + DEFB #E1 ;;get-mem-1 + DEFB #04 ;;multiply + DEFB #38 ;;end-calc LD A,(HL) ; - CP $80 ; + CP #80 ; JR NC,L235A ; to C-ARC-GE1 RST 28H ;; FP-CALC - DEFB $02 ;;delete - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #02 ;;delete + DEFB #38 ;;end-calc POP BC ; JP L22DC ; JUMP to PLOT @@ -10665,34 +10665,34 @@ L233B: RST 28H ;; FP-CALC ; x, y, r ;; C-ARC-GE1 L235A: RST 28H ;; FP-CALC - DEFB $C2 ;;st-mem-2 - DEFB $01 ;;exchange - DEFB $C0 ;;st-mem-0 - DEFB $02 ;;delete - DEFB $03 ;;subtract - DEFB $01 ;;exchange - DEFB $E0 ;;get-mem-0 - DEFB $0F ;;addition - DEFB $C0 ;;st-mem-0 - DEFB $01 ;;exchange - DEFB $31 ;;duplicate - DEFB $E0 ;;get-mem-0 - DEFB $01 ;;exchange - DEFB $31 ;;duplicate - DEFB $E0 ;;get-mem-0 - DEFB $A0 ;;stk-zero - DEFB $C1 ;;st-mem-1 - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #C2 ;;st-mem-2 + DEFB #01 ;;exchange + DEFB #C0 ;;st-mem-0 + DEFB #02 ;;delete + DEFB #03 ;;subtract + DEFB #01 ;;exchange + DEFB #E0 ;;get-mem-0 + DEFB #0F ;;addition + DEFB #C0 ;;st-mem-0 + DEFB #01 ;;exchange + DEFB #31 ;;duplicate + DEFB #E0 ;;get-mem-0 + DEFB #01 ;;exchange + DEFB #31 ;;duplicate + DEFB #E0 ;;get-mem-0 + DEFB #A0 ;;stk-zero + DEFB #C1 ;;st-mem-1 + DEFB #02 ;;delete + DEFB #38 ;;end-calc - INC (IY+$62) ; MEM-2-1st + INC (IY+#62) ; MEM-2-1st CALL L1E94 ; routine FIND-INT1 LD L,A ; PUSH HL ; CALL L1E94 ; routine FIND-INT1 POP HL ; LD H,A ; - LD ($5C7D),HL ; COORDS + LD (#5C7D),HL ; COORDS POP BC ; JP L2420 ; to DRW-STEPS @@ -10705,7 +10705,7 @@ L235A: RST 28H ;; FP-CALC ;; DRAW L2382: RST 18H ; GET-CHAR - CP $2C ; + CP #2C ; JR Z,L238D ; to DR-3-PRMS CALL L1BEE ; routine CHECK-END @@ -10719,53 +10719,53 @@ L238D: RST 20H ; NEXT-CHAR CALL L1BEE ; routine CHECK-END RST 28H ;; FP-CALC - DEFB $C5 ;;st-mem-5 - DEFB $A2 ;;stk-half - DEFB $04 ;;multiply - DEFB $1F ;;sin - DEFB $31 ;;duplicate - DEFB $30 ;;not - DEFB $30 ;;not - DEFB $00 ;;jump-true + DEFB #C5 ;;st-mem-5 + DEFB #A2 ;;stk-half + DEFB #04 ;;multiply + DEFB #1F ;;sin + DEFB #31 ;;duplicate + DEFB #30 ;;not + DEFB #30 ;;not + DEFB #00 ;;jump-true - DEFB $06 ;;to L23A3, DR-SIN-NZ + DEFB #06 ;;to L23A3, DR-SIN-NZ - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #38 ;;end-calc JP L2477 ; to LINE-DRAW ; --- ;; DR-SIN-NZ -L23A3: DEFB $C0 ;;st-mem-0 - DEFB $02 ;;delete - DEFB $C1 ;;st-mem-1 - DEFB $02 ;;delete - DEFB $31 ;;duplicate - DEFB $2A ;;abs - DEFB $E1 ;;get-mem-1 - DEFB $01 ;;exchange - DEFB $E1 ;;get-mem-1 - DEFB $2A ;;abs - DEFB $0F ;;addition - DEFB $E0 ;;get-mem-0 - DEFB $05 ;;division - DEFB $2A ;;abs - DEFB $E0 ;;get-mem-0 - DEFB $01 ;;exchange - DEFB $3D ;;re-stack - DEFB $38 ;;end-calc +L23A3: DEFB #C0 ;;st-mem-0 + DEFB #02 ;;delete + DEFB #C1 ;;st-mem-1 + DEFB #02 ;;delete + DEFB #31 ;;duplicate + DEFB #2A ;;abs + DEFB #E1 ;;get-mem-1 + DEFB #01 ;;exchange + DEFB #E1 ;;get-mem-1 + DEFB #2A ;;abs + DEFB #0F ;;addition + DEFB #E0 ;;get-mem-0 + DEFB #05 ;;division + DEFB #2A ;;abs + DEFB #E0 ;;get-mem-0 + DEFB #01 ;;exchange + DEFB #3D ;;re-stack + DEFB #38 ;;end-calc LD A,(HL) ; - CP $81 ; + CP #81 ; JR NC,L23C1 ; to DR-PRMS RST 28H ;; FP-CALC - DEFB $02 ;;delete - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #02 ;;delete + DEFB #38 ;;end-calc JP L2477 ; to LINE-DRAW @@ -10776,91 +10776,91 @@ L23C1: CALL L247D ; routine CD-PRMS1 PUSH BC ; RST 28H ;; FP-CALC - DEFB $02 ;;delete - DEFB $E1 ;;get-mem-1 - DEFB $01 ;;exchange - DEFB $05 ;;division - DEFB $C1 ;;st-mem-1 - DEFB $02 ;;delete - DEFB $01 ;;exchange - DEFB $31 ;;duplicate - DEFB $E1 ;;get-mem-1 - DEFB $04 ;;multiply - DEFB $C2 ;;st-mem-2 - DEFB $02 ;;delete - DEFB $01 ;;exchange - DEFB $31 ;;duplicate - DEFB $E1 ;;get-mem-1 - DEFB $04 ;;multiply - DEFB $E2 ;;get-mem-2 - DEFB $E5 ;;get-mem-5 - DEFB $E0 ;;get-mem-0 - DEFB $03 ;;subtract - DEFB $A2 ;;stk-half - DEFB $04 ;;multiply - DEFB $31 ;;duplicate - DEFB $1F ;;sin - DEFB $C5 ;;st-mem-5 - DEFB $02 ;;delete - DEFB $20 ;;cos - DEFB $C0 ;;st-mem-0 - DEFB $02 ;;delete - DEFB $C2 ;;st-mem-2 - DEFB $02 ;;delete - DEFB $C1 ;;st-mem-1 - DEFB $E5 ;;get-mem-5 - DEFB $04 ;;multiply - DEFB $E0 ;;get-mem-0 - DEFB $E2 ;;get-mem-2 - DEFB $04 ;;multiply - DEFB $0F ;;addition - DEFB $E1 ;;get-mem-1 - DEFB $01 ;;exchange - DEFB $C1 ;;st-mem-1 - DEFB $02 ;;delete - DEFB $E0 ;;get-mem-0 - DEFB $04 ;;multiply - DEFB $E2 ;;get-mem-2 - DEFB $E5 ;;get-mem-5 - DEFB $04 ;;multiply - DEFB $03 ;;subtract - DEFB $C2 ;;st-mem-2 - DEFB $2A ;;abs - DEFB $E1 ;;get-mem-1 - DEFB $2A ;;abs - DEFB $0F ;;addition - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #E1 ;;get-mem-1 + DEFB #01 ;;exchange + DEFB #05 ;;division + DEFB #C1 ;;st-mem-1 + DEFB #02 ;;delete + DEFB #01 ;;exchange + DEFB #31 ;;duplicate + DEFB #E1 ;;get-mem-1 + DEFB #04 ;;multiply + DEFB #C2 ;;st-mem-2 + DEFB #02 ;;delete + DEFB #01 ;;exchange + DEFB #31 ;;duplicate + DEFB #E1 ;;get-mem-1 + DEFB #04 ;;multiply + DEFB #E2 ;;get-mem-2 + DEFB #E5 ;;get-mem-5 + DEFB #E0 ;;get-mem-0 + DEFB #03 ;;subtract + DEFB #A2 ;;stk-half + DEFB #04 ;;multiply + DEFB #31 ;;duplicate + DEFB #1F ;;sin + DEFB #C5 ;;st-mem-5 + DEFB #02 ;;delete + DEFB #20 ;;cos + DEFB #C0 ;;st-mem-0 + DEFB #02 ;;delete + DEFB #C2 ;;st-mem-2 + DEFB #02 ;;delete + DEFB #C1 ;;st-mem-1 + DEFB #E5 ;;get-mem-5 + DEFB #04 ;;multiply + DEFB #E0 ;;get-mem-0 + DEFB #E2 ;;get-mem-2 + DEFB #04 ;;multiply + DEFB #0F ;;addition + DEFB #E1 ;;get-mem-1 + DEFB #01 ;;exchange + DEFB #C1 ;;st-mem-1 + DEFB #02 ;;delete + DEFB #E0 ;;get-mem-0 + DEFB #04 ;;multiply + DEFB #E2 ;;get-mem-2 + DEFB #E5 ;;get-mem-5 + DEFB #04 ;;multiply + DEFB #03 ;;subtract + DEFB #C2 ;;st-mem-2 + DEFB #2A ;;abs + DEFB #E1 ;;get-mem-1 + DEFB #2A ;;abs + DEFB #0F ;;addition + DEFB #02 ;;delete + DEFB #38 ;;end-calc LD A,(DE) ; - CP $81 ; + CP #81 ; POP BC ; JP C,L2477 ; to LINE-DRAW PUSH BC ; RST 28H ;; FP-CALC - DEFB $01 ;;exchange - DEFB $38 ;;end-calc + DEFB #01 ;;exchange + DEFB #38 ;;end-calc - LD A,($5C7D) ; COORDS-x + LD A,(#5C7D) ; COORDS-x CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $C0 ;;st-mem-0 - DEFB $0F ;;addition - DEFB $01 ;;exchange - DEFB $38 ;;end-calc + DEFB #C0 ;;st-mem-0 + DEFB #0F ;;addition + DEFB #01 ;;exchange + DEFB #38 ;;end-calc - LD A,($5C7E) ; COORDS-y + LD A,(#5C7E) ; COORDS-y CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $C5 ;;st-mem-5 - DEFB $0F ;;addition - DEFB $E0 ;;get-mem-0 - DEFB $E5 ;;get-mem-5 - DEFB $38 ;;end-calc + DEFB #C5 ;;st-mem-5 + DEFB #0F ;;addition + DEFB #E0 ;;get-mem-0 + DEFB #E5 ;;get-mem-5 + DEFB #38 ;;end-calc POP BC ; @@ -10875,56 +10875,56 @@ L2420: DEC B ; ;; ARC-LOOP L2425: RST 28H ;; FP-CALC - DEFB $E1 ;;get-mem-1 - DEFB $31 ;;duplicate - DEFB $E3 ;;get-mem-3 - DEFB $04 ;;multiply - DEFB $E2 ;;get-mem-2 - DEFB $E4 ;;get-mem-4 - DEFB $04 ;;multiply - DEFB $03 ;;subtract - DEFB $C1 ;;st-mem-1 - DEFB $02 ;;delete - DEFB $E4 ;;get-mem-4 - DEFB $04 ;;multiply - DEFB $E2 ;;get-mem-2 - DEFB $E3 ;;get-mem-3 - DEFB $04 ;;multiply - DEFB $0F ;;addition - DEFB $C2 ;;st-mem-2 - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #E1 ;;get-mem-1 + DEFB #31 ;;duplicate + DEFB #E3 ;;get-mem-3 + DEFB #04 ;;multiply + DEFB #E2 ;;get-mem-2 + DEFB #E4 ;;get-mem-4 + DEFB #04 ;;multiply + DEFB #03 ;;subtract + DEFB #C1 ;;st-mem-1 + DEFB #02 ;;delete + DEFB #E4 ;;get-mem-4 + DEFB #04 ;;multiply + DEFB #E2 ;;get-mem-2 + DEFB #E3 ;;get-mem-3 + DEFB #04 ;;multiply + DEFB #0F ;;addition + DEFB #C2 ;;st-mem-2 + DEFB #02 ;;delete + DEFB #38 ;;end-calc ;; ARC-START L2439: PUSH BC ; RST 28H ;; FP-CALC - DEFB $C0 ;;st-mem-0 - DEFB $02 ;;delete - DEFB $E1 ;;get-mem-1 - DEFB $0F ;;addition - DEFB $31 ;;duplicate - DEFB $38 ;;end-calc + DEFB #C0 ;;st-mem-0 + DEFB #02 ;;delete + DEFB #E1 ;;get-mem-1 + DEFB #0F ;;addition + DEFB #31 ;;duplicate + DEFB #38 ;;end-calc - LD A,($5C7D) ; COORDS-x + LD A,(#5C7D) ; COORDS-x CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $03 ;;subtract - DEFB $E0 ;;get-mem-0 - DEFB $E2 ;;get-mem-2 - DEFB $0F ;;addition - DEFB $C0 ;;st-mem-0 - DEFB $01 ;;exchange - DEFB $E0 ;;get-mem-0 - DEFB $38 ;;end-calc + DEFB #03 ;;subtract + DEFB #E0 ;;get-mem-0 + DEFB #E2 ;;get-mem-2 + DEFB #0F ;;addition + DEFB #C0 ;;st-mem-0 + DEFB #01 ;;exchange + DEFB #E0 ;;get-mem-0 + DEFB #38 ;;end-calc - LD A,($5C7E) ; COORDS-y + LD A,(#5C7E) ; COORDS-y CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $03 ;;subtract - DEFB $38 ;;end-calc + DEFB #03 ;;subtract + DEFB #38 ;;end-calc CALL L24B7 ; routine DRAW-LINE POP BC ; @@ -10933,25 +10933,25 @@ L2439: PUSH BC ; ;; ARC-END L245F: RST 28H ;; FP-CALC - DEFB $02 ;;delete - DEFB $02 ;;delete - DEFB $01 ;;exchange - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #02 ;;delete + DEFB #01 ;;exchange + DEFB #38 ;;end-calc - LD A,($5C7D) ; COORDS-x + LD A,(#5C7D) ; COORDS-x CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $03 ;;subtract - DEFB $01 ;;exchange - DEFB $38 ;;end-calc + DEFB #03 ;;subtract + DEFB #01 ;;exchange + DEFB #38 ;;end-calc - LD A,($5C7E) ; COORDS-y + LD A,(#5C7E) ; COORDS-y CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $03 ;;subtract - DEFB $38 ;;end-calc + DEFB #03 ;;subtract + DEFB #38 ;;end-calc ;; LINE-DRAW L2477: CALL L24B7 ; routine DRAW-LINE @@ -10966,59 +10966,59 @@ L2477: CALL L24B7 ; routine DRAW-LINE ;; CD-PRMS1 L247D: RST 28H ;; FP-CALC - DEFB $31 ;;duplicate - DEFB $28 ;;sqr - DEFB $34 ;;stk-data - DEFB $32 ;;Exponent: $82, Bytes: 1 - DEFB $00 ;;(+00,+00,+00) - DEFB $01 ;;exchange - DEFB $05 ;;division - DEFB $E5 ;;get-mem-5 - DEFB $01 ;;exchange - DEFB $05 ;;division - DEFB $2A ;;abs - DEFB $38 ;;end-calc + DEFB #31 ;;duplicate + DEFB #28 ;;sqr + DEFB #34 ;;stk-data + DEFB #32 ;;Exponent: #82, Bytes: 1 + DEFB #00 ;;(+00,+00,+00) + DEFB #01 ;;exchange + DEFB #05 ;;division + DEFB #E5 ;;get-mem-5 + DEFB #01 ;;exchange + DEFB #05 ;;division + DEFB #2A ;;abs + DEFB #38 ;;end-calc CALL L2DD5 ; routine FP-TO-A JR C,L2495 ; to USE-252 - AND $FC ; - ADD A,$04 ; + AND #FC ; + ADD A,#04 ; JR NC,L2497 ; to DRAW-SAVE ;; USE-252 -L2495: LD A,$FC ; +L2495: LD A,#FC ; ;; DRAW-SAVE L2497: PUSH AF ; CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $E5 ;;get-mem-5 - DEFB $01 ;;exchange - DEFB $05 ;;division - DEFB $31 ;;duplicate - DEFB $1F ;;sin - DEFB $C4 ;;st-mem-4 - DEFB $02 ;;delete - DEFB $31 ;;duplicate - DEFB $A2 ;;stk-half - DEFB $04 ;;multiply - DEFB $1F ;;sin - DEFB $C1 ;;st-mem-1 - DEFB $01 ;;exchange - DEFB $C0 ;;st-mem-0 - DEFB $02 ;;delete - DEFB $31 ;;duplicate - DEFB $04 ;;multiply - DEFB $31 ;;duplicate - DEFB $0F ;;addition - DEFB $A1 ;;stk-one - DEFB $03 ;;subtract - DEFB $1B ;;negate - DEFB $C3 ;;st-mem-3 - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #E5 ;;get-mem-5 + DEFB #01 ;;exchange + DEFB #05 ;;division + DEFB #31 ;;duplicate + DEFB #1F ;;sin + DEFB #C4 ;;st-mem-4 + DEFB #02 ;;delete + DEFB #31 ;;duplicate + DEFB #A2 ;;stk-half + DEFB #04 ;;multiply + DEFB #1F ;;sin + DEFB #C1 ;;st-mem-1 + DEFB #01 ;;exchange + DEFB #C0 ;;st-mem-0 + DEFB #02 ;;delete + DEFB #31 ;;duplicate + DEFB #04 ;;multiply + DEFB #31 ;;duplicate + DEFB #0F ;;addition + DEFB #A1 ;;stk-one + DEFB #03 ;;subtract + DEFB #1B ;;negate + DEFB #C3 ;;st-mem-3 + DEFB #02 ;;delete + DEFB #38 ;;end-calc POP BC ; RET ; @@ -11050,7 +11050,7 @@ L24C4: OR C ; LD L,B ; LD B,C ; PUSH DE ; - LD D,$00 ; + LD D,#00 ; ;; DL-LARGER L24CB: LD H,B ; @@ -11081,7 +11081,7 @@ L24DB: LD C,A ; POP BC ; ;; D-L-STEP -L24DF: LD HL,($5C7D) ; COORDS +L24DF: LD HL,(#5C7D) ; COORDS LD A,B ; ADD A,H ; LD B,A ; @@ -11111,7 +11111,7 @@ L24F7: JR Z,L24EC ; to D-L-PLOT ;; REPORT-Bc L24F9: RST 08H ; ERROR-1 - DEFB $0A ; Error Report: Integer out of range + DEFB #0A ; Error Report: Integer out of range @@ -11142,7 +11142,7 @@ L24F9: RST 08H ; ERROR-1 ;; SCANNING L24FB: RST 18H ; GET-CHAR - LD B,$00 ; priority marker zero is pushed on stack + LD B,#00 ; priority marker zero is pushed on stack ; to signify end of expression when it is ; popped off again. PUSH BC ; put in on stack. @@ -11161,7 +11161,7 @@ L24FF: LD C,A ; store the character while a look up is done. ; first instance a digit or a variable and ; then anything else. >>> - LD B,$00 ; but here if it was found in table so + LD B,#00 ; but here if it was found in table so LD C,(HL) ; fetch offset from table and make B zero. ADD HL,BC ; add the offset to position found JP (HL) ; and jump to the routine e.g. S-BIN @@ -11177,16 +11177,16 @@ L24FF: LD C,A ; store the character while a look up is done. L250F: CALL L0074 ; routine CH-ADD+1 points to next character ; and fetches that character. INC BC ; increase length counter. - CP $0D ; is it carriage return ? + CP #0D ; is it carriage return ? ; inside a quote. JP Z,L1C8A ; jump back to REPORT-C if so. ; 'Nonsense in BASIC'. - CP $22 ; is it a quote '"' ? + CP #22 ; is it a quote '"' ? JR NZ,L250F ; back to S-QUOTE-S if not for more. CALL L0074 ; routine CH-ADD+1 - CP $22 ; compare with possible adjacent quote + CP #22 ; compare with possible adjacent quote RET ; return. with zero set if two together. ; --- @@ -11197,7 +11197,7 @@ L250F: CALL L0074 ; routine CH-ADD+1 points to next character ;; S-2-COORD L2522: RST 20H ; NEXT-CHAR - CP $28 ; is it the opening '(' ? + CP #28 ; is it the opening '(' ? JR NZ,L252D ; forward to S-RPORT-C if not ; 'Nonsense in BASIC'. @@ -11208,7 +11208,7 @@ L2522: RST 20H ; NEXT-CHAR ; before rejoining the main juggling act. RST 18H ; GET-CHAR - CP $29 ; is it the closing ')' ? + CP #29 ; is it the closing ')' ? ;; S-RPORT-C L252D: JP NZ,L1C8A ; jump back to REPORT-C if not. @@ -11222,7 +11222,7 @@ L252D: JP NZ,L1C8A ; jump back to REPORT-C if not. ; four bytes of code, but a call instruction only uses 3 bytes of code. ;; SYNTAX-Z -L2530: BIT 7,(IY+$01) ; test FLAGS - checking syntax only ? +L2530: BIT 7,(IY+#01) ; test FLAGS - checking syntax only ? RET ; return. ; ---------------- @@ -11242,22 +11242,22 @@ L2530: BIT 7,(IY+$01) ; test FLAGS - checking syntax only ? ;; S-SCRN$-S L2535: CALL L2307 ; routine STK-TO-BC. - LD HL,($5C36) ; fetch address of CHARS. - LD DE,$0100 ; fetch offset to chr$ 32 + LD HL,(#5C36) ; fetch address of CHARS. + LD DE,#0100 ; fetch offset to chr$ 32 ADD HL,DE ; and find start of bitmaps. ; Note. not inc h. ?? LD A,C ; transfer line to A. RRCA ; multiply RRCA ; by RRCA ; thirty-two. - AND $E0 ; and with 11100000 - XOR B ; combine with column $00 - $1F + AND #E0 ; and with 11100000 + XOR B ; combine with column #00 - #1F LD E,A ; to give the low byte of top line LD A,C ; column to A range 00000000 to 00011111 - AND $18 ; and with 00011000 - XOR $40 ; xor with 01000000 (high byte screen start) + AND #18 ; and with 00011000 + XOR #40 ; xor with 01000000 (high byte screen start) LD D,A ; register DE now holds start address of cell. - LD B,$60 ; there are 96 characters in ASCII set. + LD B,#60 ; there are 96 characters in ASCII set. ;; S-SCRN-LP L254F: PUSH BC ; save count @@ -11266,25 +11266,25 @@ L254F: PUSH BC ; save count LD A,(DE) ; first byte of screen to A XOR (HL) ; xor with corresponding character byte JR Z,L255A ; forward to S-SC-MTCH if they match - ; if inverse result would be $FF + ; if inverse result would be #FF ; if any other then mismatch - INC A ; set to $00 if inverse + INC A ; set to #00 if inverse JR NZ,L2573 ; forward to S-SCR-NXT if a mismatch - DEC A ; restore $FF + DEC A ; restore #FF ; a match has been found so seven more to test. ;; S-SC-MTCH -L255A: LD C,A ; load C with inverse mask $00 or $FF - LD B,$07 ; count seven more bytes +L255A: LD C,A ; load C with inverse mask #00 or #FF + LD B,#07 ; count seven more bytes ;; S-SC-ROWS L255D: INC D ; increment screen address. INC HL ; increment bitmap address. LD A,(DE) ; byte to A - XOR (HL) ; will give $00 or $FF (inverse) + XOR (HL) ; will give #00 or #FF (inverse) XOR C ; xor with inverse mask JR NZ,L2573 ; forward to S-SCR-NXT if no match. @@ -11295,10 +11295,10 @@ L255D: INC D ; increment screen address. POP BC ; discard the POP BC ; saved POP BC ; pointers - LD A,$80 ; the endpoint of character set + LD A,#80 ; the endpoint of character set SUB B ; subtract the counter ; to give the code 32-127 - LD BC,$0001 ; make one space in workspace. + LD BC,#0001 ; make one space in workspace. RST 30H ; BC-SPACES creates the space sliding ; the calculator stack upwards. @@ -11311,7 +11311,7 @@ L255D: INC D ; increment screen address. ;; S-SCR-NXT L2573: POP HL ; restore the last bitmap start - LD DE,$0008 ; and prepare to add 8. + LD DE,#0008 ; and prepare to add 8. ADD HL,DE ; now addresses next character bitmap. POP DE ; restore screen address POP BC ; and character counter in B @@ -11340,20 +11340,20 @@ L257D: JP L2AB2 ; to STK-STO-$ to store the string in ;; S-ATTR-S L2580: CALL L2307 ; routine STK-TO-BC fetches line to C, ; and column to B. - LD A,C ; line to A $00 - $17 (max 00010111) + LD A,C ; line to A #00 - #17 (max 00010111) RRCA ; rotate RRCA ; bits RRCA ; left. LD C,A ; store in C as an intermediate value. - AND $E0 ; pick up bits 11100000 ( was 00011100 ) - XOR B ; combine with column $00 - $1F + AND #E0 ; pick up bits 11100000 ( was 00011100 ) + XOR B ; combine with column #00 - #1F LD L,A ; low byte now correct. LD A,C ; bring back intermediate result from C - AND $03 ; mask to give correct third of - ; screen $00 - $02 - XOR $58 ; combine with base address. + AND #03 ; mask to give correct third of + ; screen #00 - #02 + XOR #58 ; combine with base address. LD H,A ; high byte correct. LD A,(HL) ; pick up the colour attribute. JP L2D28 ; forward to STACK-A to store result @@ -11363,7 +11363,7 @@ L2580: CALL L2307 ; routine STK-TO-BC fetches line to C, ; Scanning function table ; ----------------------- ; This table is used by INDEXER routine to find the offsets to -; four operators and eight functions. e.g. $A8 is the token 'FN'. +; four operators and eight functions. e.g. #A8 is the token 'FN'. ; This table is used in the first instance for the first character of an ; expression or by a recursive call to SCANNING for the first character of ; any sub-expression. It eliminates functions that have no argument or @@ -11386,21 +11386,21 @@ L2580: CALL L2307 ; routine STK-TO-BC fetches line to C, ; An expression that begins with a quote requires special treatment. ;; scan-func -L2596: DEFB $22, L25B3-$-1 ; $1C offset to S-QUOTE - DEFB '(', L25E8-$-1 ; $4F offset to S-BRACKET - DEFB '.', L268D-$-1 ; $F2 offset to S-DECIMAL - DEFB '+', L25AF-$-1 ; $12 offset to S-U-PLUS +L2596: DEFB #22, L25B3-$-1 ; #1C offset to S-QUOTE + DEFB '(', L25E8-$-1 ; #4F offset to S-BRACKET + DEFB '.', L268D-$-1 ; #F2 offset to S-DECIMAL + DEFB '+', L25AF-$-1 ; #12 offset to S-U-PLUS - DEFB $A8, L25F5-$-1 ; $56 offset to S-FN - DEFB $A5, L25F8-$-1 ; $57 offset to S-RND - DEFB $A7, L2627-$-1 ; $84 offset to S-PI - DEFB $A6, L2634-$-1 ; $8F offset to S-INKEY$ - DEFB $C4, L268D-$-1 ; $E6 offset to S-BIN - DEFB $AA, L2668-$-1 ; $BF offset to S-SCREEN$ - DEFB $AB, L2672-$-1 ; $C7 offset to S-ATTR - DEFB $A9, L267B-$-1 ; $CE offset to S-POINT + DEFB #A8, L25F5-$-1 ; #56 offset to S-FN + DEFB #A5, L25F8-$-1 ; #57 offset to S-RND + DEFB #A7, L2627-$-1 ; #84 offset to S-PI + DEFB #A6, L2634-$-1 ; #8F offset to S-INKEY$ + DEFB #C4, L268D-$-1 ; #E6 offset to S-BIN + DEFB #AA, L2668-$-1 ; #BF offset to S-SCREEN$ + DEFB #AB, L2672-$-1 ; #C7 offset to S-ATTR + DEFB #A9, L267B-$-1 ; #CE offset to S-POINT - DEFB $00 ; zero end marker + DEFB #00 ; zero end marker ; -------------------------- ; Scanning function routines @@ -11422,7 +11422,7 @@ L25AF: RST 20H ; NEXT-CHAR just ignore L25B3: RST 18H ; GET-CHAR INC HL ; address next character (first in quotes) PUSH HL ; save start of quoted text. - LD BC,$0000 ; initialize length of string to zero. + LD BC,#0000 ; initialize length of string to zero. CALL L250F ; routine S-QUOTE-S JR NZ,L25D9 ; forward to S-Q-PRMS if @@ -11448,12 +11448,12 @@ L25CB: LD A,(HL) ; fetch a character from source. INC HL ; advance source address. LD (DE),A ; place in destination. INC DE ; advance destination address. - CP $22 ; was it a '"' just copied ? + CP #22 ; was it a '"' just copied ? JR NZ,L25CB ; back to S-Q-COPY to copy more if not LD A,(HL) ; fetch adjacent character from source. INC HL ; advance source address. - CP $22 ; is this '"' ? - i.e. two quotes together ? + CP #22 ; is this '"' ? - i.e. two quotes together ? JR Z,L25CB ; to S-Q-COPY if so including just one of the ; pair of quotes. @@ -11464,7 +11464,7 @@ L25D9: DEC BC ; decrease count by 1. POP DE ; restore start of string in workspace. ;; S-STRING -L25DB: LD HL,$5C3B ; Address FLAGS system variable. +L25DB: LD HL,#5C3B ; Address FLAGS system variable. RES 6,(HL) ; signal string result. BIT 7,(HL) ; is syntax being checked. CALL NZ,L2AB2 ; routine STK-STO-$ is called in runtime. @@ -11476,7 +11476,7 @@ L25DB: LD HL,$5C3B ; Address FLAGS system variable. ;; S-BRACKET L25E8: RST 20H ; NEXT-CHAR CALL L24FB ; routine SCANNING is called recursively. - CP $29 ; is it the closing ')' ? + CP #29 ; is it the closing ')' ? JP NZ,L1C8A ; jump back to REPORT-C if not ; 'Nonsense in BASIC' @@ -11496,35 +11496,35 @@ L25F5: JP L27BD ; jump forward to S-FN-SBRN. L25F8: CALL L2530 ; routine SYNTAX-Z JR Z,L2625 ; forward to S-RND-END if checking syntax. - LD BC,($5C76) ; fetch system variable SEED + LD BC,(#5C76) ; fetch system variable SEED CALL L2D2B ; routine STACK-BC places on calculator stack RST 28H ;; FP-CALC ;s. - DEFB $A1 ;;stk-one ;s,1. - DEFB $0F ;;addition ;s+1. - DEFB $34 ;;stk-data ; - DEFB $37 ;;Exponent: $87, + DEFB #A1 ;;stk-one ;s,1. + DEFB #0F ;;addition ;s+1. + DEFB #34 ;;stk-data ; + DEFB #37 ;;Exponent: #87, ;;Bytes: 1 - DEFB $16 ;;(+00,+00,+00) ;s+1,75. - DEFB $04 ;;multiply ;(s+1)*75 = v - DEFB $34 ;;stk-data ;v. - DEFB $80 ;;Bytes: 3 - DEFB $41 ;;Exponent $91 - DEFB $00,$00,$80 ;;(+00) ;v,65537. - DEFB $32 ;;n-mod-m ;remainder, result. - DEFB $02 ;;delete ;remainder. - DEFB $A1 ;;stk-one ;remainder, 1. - DEFB $03 ;;subtract ;remainder - 1. = rnd - DEFB $31 ;;duplicate ;rnd,rnd. - DEFB $38 ;;end-calc + DEFB #16 ;;(+00,+00,+00) ;s+1,75. + DEFB #04 ;;multiply ;(s+1)*75 = v + DEFB #34 ;;stk-data ;v. + DEFB #80 ;;Bytes: 3 + DEFB #41 ;;Exponent #91 + DEFB #00,#00,#80 ;;(+00) ;v,65537. + DEFB #32 ;;n-mod-m ;remainder, result. + DEFB #02 ;;delete ;remainder. + DEFB #A1 ;;stk-one ;remainder, 1. + DEFB #03 ;;subtract ;remainder - 1. = rnd + DEFB #31 ;;duplicate ;rnd,rnd. + DEFB #38 ;;end-calc CALL L2DA2 ; routine FP-TO-BC - LD ($5C76),BC ; store in SEED for next starting point. + LD (#5C76),BC ; store in SEED for next starting point. LD A,(HL) ; fetch exponent AND A ; is it zero ? JR Z,L2625 ; forward if so to S-RND-END - SUB $10 ; reduce exponent by 2^16 + SUB #10 ; reduce exponent by 2^16 LD (HL),A ; place back ;; S-RND-END @@ -11540,8 +11540,8 @@ L2627: CALL L2530 ; routine SYNTAX-Z JR Z,L2630 ; to S-PI-END if checking syntax. RST 28H ;; FP-CALC - DEFB $A3 ;;stk-pi/2 pi/2. - DEFB $38 ;;end-calc + DEFB #A3 ;;stk-pi/2 pi/2. + DEFB #38 ;;end-calc INC (HL) ; increment the exponent leaving pi ; on the calculator stack. @@ -11554,26 +11554,26 @@ L2630: RST 20H ; NEXT-CHAR ; -> ;; S-INKEY$ -L2634: LD BC,$105A ; priority $10, operation code $1A ('read-in') - ; +$40 for string result, numeric operand. +L2634: LD BC,#105A ; priority #10, operation code #1A ('read-in') + ; +#40 for string result, numeric operand. ; set this up now in case we need to use the ; calculator. RST 20H ; NEXT-CHAR - CP $23 ; '#' ? + CP #23 ; '#' ? JP Z,L270D ; to S-PUSH-PO if so to use the calculator ; single operation ; to read from network/RS232 etc. . ; else read a key from the keyboard. - LD HL,$5C3B ; fetch FLAGS + LD HL,#5C3B ; fetch FLAGS RES 6,(HL) ; signal string result. BIT 7,(HL) ; checking syntax ? JR Z,L2665 ; forward to S-INK$-EN if so JP L3B6C ; Spectrum 128 patch -L2649: LD C,$00 ; the length of an empty string +L2649: LD C,#00 ; the length of an empty string JR NZ,L2660 ; to S-IK$-STK to store empty string if ; no key returned. @@ -11581,21 +11581,21 @@ L2649: LD C,$00 ; the length of an empty string JR NC,L2660 ; to S-IK$-STK to stack null string if ; invalid - DEC D ; D is expected to be FLAGS so set bit 3 $FF + DEC D ; D is expected to be FLAGS so set bit 3 #FF ; 'L' Mode so no keywords. LD E,A ; main key to A ; C is MODE 0 'KLC' from above still. CALL L0333 ; routine K-DECODE L2657: PUSH AF ; save the code - LD BC,$0001 ; make room for one character + LD BC,#0001 ; make room for one character RST 30H ; BC-SPACES POP AF ; bring the code back LD (DE),A ; put the key in workspace - LD C,$01 ; set C length to one + LD C,#01 ; set C length to one ;; S-IK$-STK -L2660: LD B,$00 ; set high byte of length to zero +L2660: LD B,#00 ; set high byte of length to zero CALL L2AB2 ; routine STK-STO-$ ;; S-INK$-EN @@ -11641,7 +11641,7 @@ L2684: CALL L2C88 ; routine ALPHANUM checks if variable or JR NC,L26DF ; forward to S-NEGATE if not to consider ; a '-' character then functions. - CP $41 ; compare 'A' + CP #41 ; compare 'A' JR NC,L26C9 ; forward to S-LETTER if alpha -> ; else must have been numeric so continue ; into that routine. @@ -11663,17 +11663,17 @@ L268D: CALL L2530 ; routine SYNTAX-Z CALL L2C9B ; routine DEC-TO-FP to evaluate number RST 18H ; GET-CHAR to fetch HL - LD BC,$0006 ; six locations required + LD BC,#0006 ; six locations required CALL L1655 ; routine MAKE-ROOM INC HL ; to first new location - LD (HL),$0E ; insert number marker + LD (HL),#0E ; insert number marker INC HL ; address next EX DE,HL ; make DE destination. - LD HL,($5C65) ; STKEND points to end of stack. - LD C,$05 ; result is five locations lower + LD HL,(#5C65) ; STKEND points to end of stack. + LD C,#05 ; result is five locations lower AND A ; prepare for true subtraction SBC HL,BC ; point to start of value. - LD ($5C65),HL ; update STKEND as we are taking number. + LD (#5C65),HL ; update STKEND as we are taking number. LDIR ; Copy five bytes to program location EX DE,HL ; transfer pointer to HL DEC HL ; adjust @@ -11690,16 +11690,16 @@ L26B5: RST 18H ; GET-CHAR positions HL at digit. ;; S-SD-SKIP L26B6: INC HL ; advance pointer LD A,(HL) ; until we find - CP $0E ; chr 14d - the number indicator + CP #0E ; chr 14d - the number indicator JR NZ,L26B6 ; to S-SD-SKIP until a match ; it has to be here. INC HL ; point to first byte of number CALL L33B4 ; routine STACK-NUM stacks it - LD ($5C5D),HL ; update system variable CH_ADD + LD (#5C5D),HL ; update system variable CH_ADD ;; S-NUMERIC -L26C3: SET 6,(IY+$01) ; update FLAGS - Signal numeric result +L26C3: SET 6,(IY+#01) ; update FLAGS - Signal numeric result JR L26DD ; forward to S-CONT-1 ===> ; actually S-CONT-2 is destination but why ; waste a byte on a jump when a JR will do. @@ -11721,8 +11721,8 @@ L26C9: CALL L28B2 ; routine LOOK-VARS ; is being checked. CALL Z,L2996 ; routine STK-VAR considers a subscript/slice - LD A,($5C3B) ; fetch FLAGS value - CP $C0 ; compare 11000000 + LD A,(#5C3B) ; fetch FLAGS value + CP #C0 ; compare 11000000 JR C,L26DD ; step forward to S-CONT-1 if string ===> INC HL ; advance pointer @@ -11738,49 +11738,49 @@ L26DD: JR L2712 ; forward to S-CONT-2 ===> ; the B register and the operation code, calculator literal in the C register. ; the operation code has bit 7 set if result is numeric and bit 6 is ; set if operand is numeric. so -; $C0 = numeric result, numeric operand. e.g. 'sin' -; $80 = numeric result, string operand. e.g. 'code' -; $40 = string result, numeric operand. e.g. 'str$' -; $00 = string result, string operand. e.g. 'val$' +; #C0 = numeric result, numeric operand. e.g. 'sin' +; #80 = numeric result, string operand. e.g. 'code' +; #40 = string result, numeric operand. e.g. 'str$' +; #00 = string result, string operand. e.g. 'val$' ;; S-NEGATE -L26DF: LD BC,$09DB ; prepare priority 09, operation code $C0 + - ; 'negate' ($1B) - bits 6 and 7 set for numeric +L26DF: LD BC,#09DB ; prepare priority 09, operation code #C0 + + ; 'negate' (#1B) - bits 6 and 7 set for numeric ; result and numeric operand. - CP $2D ; is it '-' ? + CP #2D ; is it '-' ? JR Z,L270D ; forward if so to S-PUSH-PO - LD BC,$1018 ; prepare priority $10, operation code 'val$' - + LD BC,#1018 ; prepare priority #10, operation code 'val$' - ; bits 6 and 7 reset for string result and ; string operand. - CP $AE ; is it 'VAL$' ? + CP #AE ; is it 'VAL$' ? JR Z,L270D ; forward if so to S-PUSH-PO - SUB $AF ; subtract token 'CODE' value to reduce + SUB #AF ; subtract token 'CODE' value to reduce ; functions 'CODE' to 'NOT' although the ; upper range is, as yet, unchecked. - ; valid range would be $00 - $14. + ; valid range would be #00 - #14. JP C,L1C8A ; jump back to REPORT-C with anything else ; 'Nonsense in BASIC' - LD BC,$04F0 ; prepare priority $04, operation $C0 + - ; 'not' ($30) + LD BC,#04F0 ; prepare priority #04, operation #C0 + + ; 'not' (#30) - CP $14 ; is it 'NOT' + CP #14 ; is it 'NOT' JR Z,L270D ; forward to S-PUSH-PO if so JP NC,L1C8A ; to REPORT-C if higher ; 'Nonsense in BASIC' - LD B,$10 ; priority $10 for all the rest - ADD A,$DC ; make range $DC - $EF - ; $C0 + 'code'($1C) thru 'chr$' ($2F) + LD B,#10 ; priority #10 for all the rest + ADD A,#DC ; make range #DC - #EF + ; #C0 + 'code'(#1C) thru 'chr$' (#2F) LD C,A ; transfer 'function' to C - CP $DF ; is it 'sin' ? + CP #DF ; is it 'sin' ? JR NC,L2707 ; forward to S-NO-TO-$ with 'sin' through ; 'chr$' as operand is numeric. @@ -11791,7 +11791,7 @@ L26DF: LD BC,$09DB ; prepare priority 09, operation code $C0 + ; 'len'. ;; S-NO-TO-$ -L2707: CP $EE ; compare 'str$' +L2707: CP #EE ; compare 'str$' JR C,L270D ; forward to S-PUSH-PO if lower as result ; is numeric. @@ -11816,10 +11816,10 @@ L270D: PUSH BC ; push the priority and calculator operation L2712: RST 18H ; GET-CHAR ;; S-CONT-3 -L2713: CP $28 ; is it '(' ? +L2713: CP #28 ; is it '(' ? JR NZ,L2723 ; forward to S-OPERTR if not > - BIT 6,(IY+$01) ; test FLAGS - numeric or string result ? + BIT 6,(IY+#01) ; test FLAGS - numeric or string result ? JR NZ,L2734 ; forward to S-LOOP if numeric to evaluate > ; if a string preceded '(' then slice it. @@ -11834,16 +11834,16 @@ L2713: CP $28 ; is it '(' ? ; the branch was here when possibility of an operator '(' has been excluded. ;; S-OPERTR -L2723: LD B,$00 ; prepare to add +L2723: LD B,#00 ; prepare to add LD C,A ; possible operator to C - LD HL,L2795 ; Address: $2795 - tbl-of-ops + LD HL,L2795 ; Address: #2795 - tbl-of-ops CALL L16DC ; routine INDEXER JR NC,L2734 ; forward to S-LOOP if not in table ; but if found in table the priority has to be looked up. LD C,(HL) ; operation code to C ( B is still zero ) - LD HL,L27B0 - $C3 ; $26ED is base of table + LD HL,L27B0 - #C3 ; #26ED is base of table ADD HL,BC ; index into table. LD B,(HL) ; priority to B. @@ -11877,9 +11877,9 @@ L2734: POP DE ; fetch last priority and operation ; the 'USR' function is special in that it is overloaded to give two types ; of result. - LD HL,$5C3B ; address FLAGS + LD HL,#5C3B ; address FLAGS LD A,E ; new operation to A register - CP $ED ; is it $C0 + 'usr-no' ($2D) ? + CP #ED ; is it #C0 + 'usr-no' (#2D) ? JR NZ,L274C ; forward to S-STK-LST if not BIT 6,(HL) ; string result expected ? @@ -11888,7 +11888,7 @@ L2734: POP DE ; fetch last priority and operation JR NZ,L274C ; forward to S-STK-LST if numeric ; as operand bits match. - LD E,$99 ; reset bit 6 and substitute $19 'usr-$' + LD E,#99 ; reset bit 6 and substitute #19 'usr-$' ; for string operand. ;; S-STK-LST @@ -11897,7 +11897,7 @@ L274C: PUSH DE ; now stack this priority/operation JR Z,L275B ; forward to S-SYNTEST if checking syntax. LD A,E ; fetch the operation code - AND $3F ; mask off the result/operand bits to leave + AND #3F ; mask off the result/operand bits to leave ; a calculator literal. LD B,A ; transfer to B register @@ -11910,8 +11910,8 @@ L274C: PUSH DE ; now stack this priority/operation ; as the calculator too is calling itself. RST 28H ;; FP-CALC - DEFB $3B ;;fp-calc-2 -L2758: DEFB $38 ;;end-calc + DEFB #3B ;;fp-calc-2 +L2758: DEFB #38 ;;end-calc JR L2764 ; forward to S-RUNTEST @@ -11921,8 +11921,8 @@ L2758: DEFB $38 ;;end-calc ;; S-SYNTEST L275B: LD A,E ; fetch the operation code to accumulator - XOR (IY+$01) ; compare with bits of FLAGS - AND $40 ; bit 6 will be zero now if operand + XOR (IY+#01) ; compare with bits of FLAGS + AND #40 ; bit 6 will be zero now if operand ; matched expected result. ;; S-RPORT-C2 @@ -11934,7 +11934,7 @@ L2761: JP NZ,L1C8A ; to REPORT-C if mismatch ;; S-RUNTEST L2764: POP DE ; fetch the last operation from stack - LD HL,$5C3B ; address FLAGS + LD HL,#5C3B ; address FLAGS SET 6,(HL) ; set default to numeric result in FLAGS BIT 7,E ; test the operational result JR NZ,L2770 ; forward to S-LOOPEND if numeric @@ -11953,15 +11953,15 @@ L2770: POP BC ; fetch the previous priority/operation ;; S-TIGHTER L2773: PUSH DE ; save high priority op on stack again LD A,C ; fetch lower priority operation code - BIT 6,(IY+$01) ; test FLAGS - Numeric or string result ? + BIT 6,(IY+#01) ; test FLAGS - Numeric or string result ? JR NZ,L2790 ; forward to S-NEXT if numeric result ; if this is lower priority yet has string then must be a comparison. ; Since these can only be evaluated in context and were defaulted to ; numeric in operator look up they must be changed to string equivalents. - AND $3F ; mask to give true calculator literal - ADD A,$08 ; augment numeric literals to string + AND #3F ; mask to give true calculator literal + ADD A,#08 ; augment numeric literals to string ; equivalents. ; 'no-&-no' => 'str-&-no' ; 'no-l-eql' => 'str-l-eql' @@ -11972,7 +11972,7 @@ L2773: PUSH DE ; save high priority op on stack again ; 'nos-eql' => 'strs-eql' ; 'addition' => 'strs-add' LD C,A ; put modified comparison operator back - CP $10 ; is it now 'str-&-no' ? + CP #10 ; is it now 'str-&-no' ? JR NZ,L2788 ; forward to S-NOT-AND if not. SET 6,C ; set numeric operand bit @@ -11985,7 +11985,7 @@ L2788: JR C,L2761 ; back to S-RPORT-C2 if less ; 'Nonsense in BASIC'. ; e.g. a$ * b$ - CP $17 ; is it 'strs-add' ? + CP #17 ; is it 'strs-add' ? JR Z,L2790 ; forward to to S-NEXT if so ; (bit 6 and 7 are reset) @@ -12001,51 +12001,51 @@ L2790: PUSH BC ; now save this priority/operation on stack ; Table of operators ; ------------------ ; This table is used to look up the calculator literals associated with -; the operator character. The thirteen calculator operations $03 - $0F +; the operator character. The thirteen calculator operations #03 - #0F ; have bits 6 and 7 set to signify a numeric result. ; Some of these codes and bits may be altered later if the context suggests ; a string comparison or operation. ; that is '+', '=', '>', '<', '<=', '>=' or '<>'. ;; tbl-of-ops -L2795: DEFB '+', $CF ; $C0 + 'addition' - DEFB '-', $C3 ; $C0 + 'subtract' - DEFB '*', $C4 ; $C0 + 'multiply' - DEFB '/', $C5 ; $C0 + 'division' - DEFB '^', $C6 ; $C0 + 'to-power' - DEFB '=', $CE ; $C0 + 'nos-eql' - DEFB '>', $CC ; $C0 + 'no-grtr' - DEFB '<', $CD ; $C0 + 'no-less' +L2795: DEFB '+', #CF ; #C0 + 'addition' + DEFB '-', #C3 ; #C0 + 'subtract' + DEFB '*', #C4 ; #C0 + 'multiply' + DEFB '/', #C5 ; #C0 + 'division' + DEFB '^', #C6 ; #C0 + 'to-power' + DEFB '=', #CE ; #C0 + 'nos-eql' + DEFB '>', #CC ; #C0 + 'no-grtr' + DEFB '<', #CD ; #C0 + 'no-less' - DEFB $C7, $C9 ; '<=' $C0 + 'no-l-eql' - DEFB $C8, $CA ; '>=' $C0 + 'no-gr-eql' - DEFB $C9, $CB ; '<>' $C0 + 'nos-neql' - DEFB $C5, $C7 ; 'OR' $C0 + 'or' - DEFB $C6, $C8 ; 'AND' $C0 + 'no-&-no' + DEFB #C7, #C9 ; '<=' #C0 + 'no-l-eql' + DEFB #C8, #CA ; '>=' #C0 + 'no-gr-eql' + DEFB #C9, #CB ; '<>' #C0 + 'nos-neql' + DEFB #C5, #C7 ; 'OR' #C0 + 'or' + DEFB #C6, #C8 ; 'AND' #C0 + 'no-&-no' - DEFB $00 ; zero end-marker. + DEFB #00 ; zero end-marker. ; ------------------- ; Table of priorities ; ------------------- ; This table is indexed with the operation code obtained from the above -; table $C3 - $CF to obtain the priority for the respective operation. +; table #C3 - #CF to obtain the priority for the respective operation. ;; tbl-priors -L27B0: DEFB $06 ; '-' opcode $C3 - DEFB $08 ; '*' opcode $C4 - DEFB $08 ; '/' opcode $C5 - DEFB $0A ; '^' opcode $C6 - DEFB $02 ; 'OR' opcode $C7 - DEFB $03 ; 'AND' opcode $C8 - DEFB $05 ; '<=' opcode $C9 - DEFB $05 ; '>=' opcode $CA - DEFB $05 ; '<>' opcode $CB - DEFB $05 ; '>' opcode $CC - DEFB $05 ; '<' opcode $CD - DEFB $05 ; '=' opcode $CE - DEFB $06 ; '+' opcode $CF +L27B0: DEFB #06 ; '-' opcode #C3 + DEFB #08 ; '*' opcode #C4 + DEFB #08 ; '/' opcode #C5 + DEFB #0A ; '^' opcode #C6 + DEFB #02 ; 'OR' opcode #C7 + DEFB #03 ; 'AND' opcode #C8 + DEFB #05 ; '<=' opcode #C9 + DEFB #05 ; '>=' opcode #CA + DEFB #05 ; '<>' opcode #CB + DEFB #05 ; '>' opcode #CC + DEFB #05 ; '<' opcode #CD + DEFB #05 ; '=' opcode #CE + DEFB #06 ; '+' opcode #CF ; ---------------------- ; Scanning function (FN) @@ -12091,7 +12091,7 @@ L27BD: CALL L2530 ; routine SYNTAX-Z RST 20H ; NEXT-CHAR - CP $24 ; is it '$' ? + CP #24 ; is it '$' ? PUSH AF ; save character and flags JR NZ,L27D0 ; forward to SF-BRKT-1 with numeric function @@ -12099,13 +12099,13 @@ L27BD: CALL L2530 ; routine SYNTAX-Z RST 20H ; NEXT-CHAR ;; SF-BRKT-1 -L27D0: CP $28 ; is '(' ? +L27D0: CP #28 ; is '(' ? JR NZ,L27E6 ; forward to SF-RPRT-C if not ; 'Nonsense in BASIC' RST 20H ; NEXT-CHAR - CP $29 ; is it ')' ? + CP #29 ; is it ')' ? JR Z,L27E9 ; forward to SF-FLAG-6 if no arguments. ;; SF-ARGMTS @@ -12113,7 +12113,7 @@ L27D9: CALL L24FB ; routine SCANNING checks each argument ; which may be an expression. RST 18H ; GET-CHAR - CP $2C ; is it a ',' ? + CP #2C ; is it a ',' ? JR NZ,L27E4 ; forward if not to SF-BRKT-2 to test bracket @@ -12123,7 +12123,7 @@ L27D9: CALL L24FB ; routine SCANNING checks each argument ; --- ;; SF-BRKT-2 -L27E4: CP $29 ; is character the closing ')' ? +L27E4: CP #29 ; is character the closing ')' ? ;; SF-RPRT-C L27E6: JP NZ,L1C8A ; jump to REPORT-C @@ -12133,7 +12133,7 @@ L27E6: JP NZ,L1C8A ; jump to REPORT-C ;; SF-FLAG-6 L27E9: RST 20H ; NEXT-CHAR - LD HL,$5C3B ; address system variable FLAGS + LD HL,#5C3B ; address system variable FLAGS RES 6,(HL) ; signal string result POP AF ; restore test against '$'. JR Z,L27F4 ; forward to SF-SYN-EN if string function. @@ -12149,11 +12149,11 @@ L27F4: JP L2712 ; jump back to S-CONT-2 to continue scanning. ;; SF-RUN L27F7: RST 20H ; NEXT-CHAR fetches name - AND $DF ; AND 11101111 - reset bit 5 - upper-case. + AND #DF ; AND 11101111 - reset bit 5 - upper-case. LD B,A ; save in B RST 20H ; NEXT-CHAR - SUB $24 ; subtract '$' + SUB #24 ; subtract '$' LD C,A ; save result in C JR NZ,L2802 ; forward if not '$' to SF-ARGMT1 @@ -12162,12 +12162,12 @@ L27F7: RST 20H ; NEXT-CHAR fetches name ;; SF-ARGMT1 L2802: RST 20H ; NEXT-CHAR advances to start of argument PUSH HL ; save address - LD HL,($5C53) ; fetch start of program area from PROG + LD HL,(#5C53) ; fetch start of program area from PROG DEC HL ; the search starting point is the previous ; location. ;; SF-FND-DF -L2808: LD DE,$00CE ; search is for token 'DEF FN' in E, +L2808: LD DE,#00CE ; search is for token 'DEF FN' in E, ; statement count in D. PUSH BC ; save C the string test, and B the letter. CALL L1D86 ; routine LOOK-PROG will search for token. @@ -12177,20 +12177,20 @@ L2808: LD DE,$00CE ; search is for token 'DEF FN' in E, ;; REPORT-P L2812: RST 08H ; ERROR-1 - DEFB $18 ; Error Report: FN without DEF + DEFB #18 ; Error Report: FN without DEF ;; SF-CP-DEF L2814: PUSH HL ; save address of DEF FN CALL L28AB ; routine FN-SKPOVR skips over white-space etc. ; without disturbing CH-ADD. - AND $DF ; make fetched character upper-case. + AND #DF ; make fetched character upper-case. CP B ; compare with FN name JR NZ,L2825 ; forward to SF-NOT-FD if no match. ; the letters match so test the type. CALL L28AB ; routine FN-SKPOVR skips white-space - SUB $24 ; subtract '$' from fetched character + SUB #24 ; subtract '$' from fetched character CP C ; compare with saved result of same operation ; on FN name. JR Z,L2831 ; forward to SF-VALUES with a match. @@ -12200,7 +12200,7 @@ L2814: PUSH HL ; save address of DEF FN ;; SF-NOT-FD L2825: POP HL ; restore search point. DEC HL ; make location before - LD DE,$0200 ; the search is to be for the end of the + LD DE,#0200 ; the search is to be for the end of the ; current definition - 2 statements forward. PUSH BC ; save the letter/type CALL L198B ; routine EACH-STMT steps past rejected @@ -12220,25 +12220,25 @@ L2831: AND A ; test A ( will be zero if string '$' - '$' ) POP DE ; discard pointer to 'DEF FN'. POP DE ; restore pointer to first FN argument. - LD ($5C5D),DE ; save in CH_ADD + LD (#5C5D),DE ; save in CH_ADD CALL L28AB ; routine FN-SKPOVR advances HL past '(' PUSH HL ; save start address in DEF FN *** - CP $29 ; is character a ')' ? + CP #29 ; is character a ')' ? JR Z,L2885 ; forward to SF-R-BR-2 if no arguments. ;; SF-ARG-LP L2843: INC HL ; point to next character. LD A,(HL) ; fetch it. - CP $0E ; is it the number marker - LD D,$40 ; signal numeric in D. + CP #0E ; is it the number marker + LD D,#40 ; signal numeric in D. JR Z,L2852 ; forward to SF-ARG-VL if numeric. DEC HL ; back to letter CALL L28AB ; routine FN-SKPOVR skips any white-space INC HL ; advance past the expected '$' to ; the 'hidden' marker. - LD D,$00 ; signal string. + LD D,#00 ; signal string. ;; SF-ARG-VL L2852: INC HL ; now address first of 5-byte location. @@ -12251,24 +12251,24 @@ L2852: INC HL ; now address first of 5-byte location. POP AF ; restore saved result type to A - XOR (IY+$01) ; xor with FLAGS - AND $40 ; and with 01000000 to test bit 6 + XOR (IY+#01) ; xor with FLAGS + AND #40 ; and with 01000000 to test bit 6 JR NZ,L288B ; forward to REPORT-Q if type mismatch. ; 'Parameter error' POP HL ; pop the start address in DEF FN statement EX DE,HL ; transfer to DE ?? pop straight into de ? - LD HL,($5C65) ; set HL to STKEND location after value - LD BC,$0005 ; five bytes to move + LD HL,(#5C65) ; set HL to STKEND location after value + LD BC,#0005 ; five bytes to move SBC HL,BC ; decrease HL by 5 to point to start. - LD ($5C65),HL ; set STKEND 'removing' value from stack. + LD (#5C65),HL ; set STKEND 'removing' value from stack. LDIR ; copy value into DEF FN statement EX DE,HL ; set HL to location after value in DEF FN DEC HL ; step back one CALL L28AB ; routine FN-SKPOVR gets next valid character - CP $29 ; is it ')' end of arguments ? + CP #29 ; is it ')' end of arguments ? JR Z,L2885 ; forward to SF-R-BR-2 if so. ; a comma separator has been encountered in the DEF FN argument list. @@ -12276,7 +12276,7 @@ L2852: INC HL ; now address first of 5-byte location. PUSH HL ; save position in DEF FN statement RST 18H ; GET-CHAR from FN statement - CP $2C ; is it ',' ? + CP #2C ; is it ',' ? JR NZ,L288B ; forward to REPORT-Q if not ; 'Parameter error' @@ -12299,18 +12299,18 @@ L2852: INC HL ; now address first of 5-byte location. L2885: PUSH HL ; save location of ')' in DEF FN RST 18H ; GET-CHAR gets next character in FN - CP $29 ; is it a ')' also ? + CP #29 ; is it a ')' also ? JR Z,L288D ; forward to SF-VALUE if so. ;; REPORT-Q L288B: RST 08H ; ERROR-1 - DEFB $19 ; Error Report: Parameter error + DEFB #19 ; Error Report: Parameter error ;; SF-VALUE L288D: POP DE ; location of ')' in DEF FN to DE. EX DE,HL ; now to HL, FN ')' pointer to DE. - LD ($5C5D),HL ; initialize CH_ADD to this value. + LD (#5C5D),HL ; initialize CH_ADD to this value. ; At this point the start of the DEF FN argument list is on the machine stack. ; We also have to consider that this defined function may form part of the @@ -12319,9 +12319,9 @@ L288D: POP DE ; location of ')' in DEF FN to DE. ; currently being evaluated by recursive calls to SCANNING, then we have to ; preserve the original value of DEFADD and not assume that it is zero. - LD HL,($5C0B) ; get original DEFADD address + LD HL,(#5C0B) ; get original DEFADD address EX (SP),HL ; swap with DEF FN address on stack *** - LD ($5C0B),HL ; set DEFADD to point to this argument list + LD (#5C0B),HL ; set DEFADD to point to this argument list ; during scanning. PUSH DE ; save FN ')' pointer. @@ -12334,9 +12334,9 @@ L288D: POP DE ; location of ')' in DEF FN to DE. ; initially for variables at DEFADD POP HL ; pop the FN ')' pointer - LD ($5C5D),HL ; set CH_ADD to this + LD (#5C5D),HL ; set CH_ADD to this POP HL ; pop the original DEFADD value - LD ($5C0B),HL ; and re-insert into DEFADD system variable. + LD (#5C0B),HL ; and re-insert into DEFADD system variable. RST 20H ; NEXT-CHAR advances to character after ')' JP L2712 ; to S-CONT-2 - to continue current @@ -12357,7 +12357,7 @@ L288D: POP DE ; location of ')' in DEF FN to DE. ;; FN-SKPOVR L28AB: INC HL ; increase pointer LD A,(HL) ; fetch addressed character - CP $21 ; compare with space + 1 + CP #21 ; compare with space + 1 JR C,L28AB ; back to FN-SKPOVR if less RET ; return pointing to a valid character. @@ -12369,7 +12369,7 @@ L28AB: INC HL ; increase pointer ; ;; LOOK-VARS -L28B2: SET 6,(IY+$01) ; update FLAGS - presume numeric result +L28B2: SET 6,(IY+#01) ; update FLAGS - presume numeric result RST 18H ; GET-CHAR CALL L2C8D ; routine ALPHA tests for A-Za-z @@ -12377,16 +12377,16 @@ L28B2: SET 6,(IY+$01) ; update FLAGS - presume numeric result ; 'Nonsense in BASIC' PUSH HL ; save pointer to first letter ^1 - AND $1F ; mask lower bits, 1 - 26 decimal 000xxxxx + AND #1F ; mask lower bits, 1 - 26 decimal 000xxxxx LD C,A ; store in C. RST 20H ; NEXT-CHAR PUSH HL ; save pointer to second character ^2 - CP $28 ; is it '(' - an array ? + CP #28 ; is it '(' - an array ? JR Z,L28EF ; forward to V-RUN/SYN if so. SET 6,C ; set 6 signaling string if solitary 010 - CP $24 ; is character a '$' ? + CP #24 ; is character a '$' ? JR Z,L28DE ; forward to V-STR-VAR SET 5,C ; signal numeric 011 @@ -12413,10 +12413,10 @@ L28D4: CALL L2C88 ; routine ALPHANUM ;; V-STR-VAR L28DE: RST 20H ; NEXT-CHAR advances past '$' - RES 6,(IY+$01) ; update FLAGS - signal string result. + RES 6,(IY+#01) ; update FLAGS - signal string result. ;; V-TEST-FN -L28E3: LD A,($5C0C) ; load A with DEFADD_hi +L28E3: LD A,(#5C0C) ; load A with DEFADD_hi AND A ; and test for zero. JR Z,L28EF ; forward to V-RUN/SYN if a defined function ; is not being evaluated. @@ -12435,7 +12435,7 @@ L28EF: LD B,C ; save flags in B ; if checking syntax the letter is not returned LD A,C ; copy letter/flags to A - AND $E0 ; and with 11100000 to get rid of the letter + AND #E0 ; and with 11100000 to get rid of the letter SET 7,A ; use spare bit to signal checking syntax. LD C,A ; and transfer to C. JR L2934 ; forward to V-SYNTAX @@ -12445,11 +12445,11 @@ L28EF: LD B,C ; save flags in B ; but in runtime search for the variable. ;; V-RUN -L28FD: LD HL,($5C4B) ; set HL to start of variables from VARS +L28FD: LD HL,(#5C4B) ; set HL to start of variables from VARS ;; V-EACH L2900: LD A,(HL) ; get first character - AND $7F ; and with 01111111 + AND #7F ; and with 01111111 ; ignoring bit 7 which distinguishes ; arrays or for/next variables. @@ -12479,15 +12479,15 @@ L2912: INC HL ; address next character in vars area ;; V-SPACES L2913: LD A,(DE) ; pick up letter from prog area INC DE ; and advance address - CP $20 ; is it a space + CP #20 ; is it a space JR Z,L2913 ; back to V-SPACES until non-space - OR $20 ; convert to range 1 - 26. + OR #20 ; convert to range 1 - 26. CP (HL) ; compare with addressed variables character JR Z,L2912 ; loop back to V-MATCHES if a match on an ; intermediate letter. - OR $80 ; now set bit 7 as last character of long + OR #80 ; now set bit 7 as last character of long ; names are inverted. CP (HL) ; compare again JR NZ,L2929 ; forward to V-GET-PTR if no match @@ -12521,7 +12521,7 @@ L2934: POP DE ; discard the pointer to 2nd. character v2 ; in BASIC line/workspace. RST 18H ; GET-CHAR gets character after variable name. - CP $28 ; is it '(' ? + CP #28 ; is it '(' ? JR Z,L2943 ; forward to V-PASS ; Note. could go straight to V-END ? @@ -12575,9 +12575,9 @@ L294B: POP HL ; pop the pointer to first character in ; The variable name to be matched is in C. ;; STK-F-ARG -L2951: LD HL,($5C0B) ; set HL to DEFADD +L2951: LD HL,(#5C0B) ; set HL to DEFADD LD A,(HL) ; load the first character - CP $29 ; is it ')' ? + CP #29 ; is it ')' ? JP Z,L28EF ; JUMP back to V-RUN/SYN, if so, as there are ; no arguments. @@ -12585,11 +12585,11 @@ L2951: LD HL,($5C0B) ; set HL to DEFADD ;; SFA-LOOP L295A: LD A,(HL) ; fetch character again. - OR $60 ; or with 01100000 presume a simple variable. + OR #60 ; or with 01100000 presume a simple variable. LD B,A ; save result in B. INC HL ; address next location. LD A,(HL) ; pick up byte. - CP $0E ; is it the number marker ? + CP #0E ; is it the number marker ? JR Z,L296B ; forward to SFA-CP-VR if so. ; it was a string. White-space may be present but syntax has been checked. @@ -12611,7 +12611,7 @@ L296B: LD A,B ; transfer found variable letter to A. INC HL ; bytes. CALL L28AB ; routine FN-SKPOVR skips to next character - CP $29 ; is it ')' ? + CP #29 ; is it ')' ? JP Z,L28EF ; jump back if so to V-RUN/SYN to look in ; normal variables area. @@ -12629,10 +12629,10 @@ L2981: BIT 5,C ; test if numeric ; by scanning INC HL ; point to start of string descriptor - LD DE,($5C65) ; set DE to STKEND + LD DE,(#5C65) ; set DE to STKEND CALL L33C0 ; routine MOVE-FP puts parameters on stack. EX DE,HL ; new free location to HL. - LD ($5C65),HL ; use it to set STKEND system variable. + LD (#5C65),HL ; use it to set STKEND system variable. ;; SFA-END L2991: POP DE ; discard @@ -12726,7 +12726,7 @@ L29AE: INC HL ; step past EX DE,HL ; save pointer to dimensions in DE RST 18H ; GET-CHAR looks at the BASIC line - CP $28 ; is character '(' ? + CP #28 ; is character '(' ? JR NZ,L2A20 ; to REPORT-3 if not ; 'Subscript wrong' @@ -12750,7 +12750,7 @@ L29C3: PUSH HL ; save counter RST 18H ; GET-CHAR POP HL ; pop counter - CP $2C ; is character ',' ? + CP #2C ; is character ',' ? JR Z,L29EA ; forward to SV-LOOP if so ; in runtime the variable definition indicates a comma should appear here @@ -12766,7 +12766,7 @@ L29C3: PUSH HL ; save counter ; an array of numbers. - CP $29 ; is character ')' ? + CP #29 ; is character ')' ? JR NZ,L2A12 ; forward to SV-RPT-C if not ; 'Nonsense in BASIC' @@ -12778,10 +12778,10 @@ L29C3: PUSH HL ; save counter ; the branch was here with an array of strings. ;; SV-CLOSE -L29D8: CP $29 ; as above ')' could follow the expression +L29D8: CP #29 ; as above ')' could follow the expression JR Z,L2A48 ; forward to SV-DIM if so - CP $CC ; is it 'TO' ? + CP #CC ; is it 'TO' ? JR NZ,L2A12 ; to SV-RPT-C with anything else ; 'Nonsense in BASIC' @@ -12791,7 +12791,7 @@ L29D8: CP $29 ; as above ')' could follow the expression ;; SV-CH-ADD L29E0: RST 18H ; GET-CHAR DEC HL ; backtrack HL - LD ($5C5D),HL ; to set CH_ADD up for slicing routine + LD (#5C5D),HL ; to set CH_ADD up for slicing routine JR L2A45 ; forward to SV-SLICE and make a return ; when all slicing complete. @@ -12799,7 +12799,7 @@ L29E0: RST 18H ; GET-CHAR ; -> the mid-point entry point of the loop ;; SV-COUNT -L29E7: LD HL,$0000 ; initialize data pointer to zero. +L29E7: LD HL,#0000 ; initialize data pointer to zero. ;; SV-LOOP L29EA: PUSH HL ; save the data pointer. @@ -12809,7 +12809,7 @@ L29EA: PUSH HL ; save the data pointer. POP HL ; restore the data pointer. LD A,C ; transfer name/type to A. - CP $C0 ; is it 11000000 ? + CP #C0 ; is it 11000000 ? ; Note. the letter component is absent if ; syntax checking. JR NZ,L29FB ; forward to SV-MULT if not an array of @@ -12818,10 +12818,10 @@ L29EA: PUSH HL ; save the data pointer. ; proceed to check string arrays during syntax. RST 18H ; GET-CHAR - CP $29 ; ')' end of subscripts ? + CP #29 ; ')' end of subscripts ? JR Z,L2A48 ; forward to SV-DIM to consider further slice - CP $CC ; is it 'TO' ? + CP #CC ; is it 'TO' ? JR Z,L29E0 ; back to SV-CH-ADD to consider a slice. ; (no need to repeat get-char at L29E0) @@ -12875,14 +12875,14 @@ L2A12: JR NZ,L2A7A ; forward to SL-RPT-C if so ; transfer it to BC. RST 18H ; GET-CHAR checks BASIC line - CP $29 ; must be a ')' ? + CP #29 ; must be a ')' ? JR Z,L2A22 ; skip to SV-NUMBER if so ; else more subscripts in BASIC line than the variable definition. ;; REPORT-3 L2A20: RST 08H ; ERROR-1 - DEFB $02 ; Error Report: Subscript wrong + DEFB #02 ; Error Report: Subscript wrong ; continue if subscripts matched the numeric array. @@ -12891,7 +12891,7 @@ L2A22: RST 20H ; NEXT-CHAR moves CH_ADD to next statement ; - finished parsing. POP HL ; pop the data pointer. - LD DE,$0005 ; each numeric element is 5 bytes. + LD DE,#0005 ; each numeric element is 5 bytes. CALL L2AF4 ; routine GET-HL*DE multiplies. ADD HL,BC ; now add to start of data in the variable. @@ -12921,11 +12921,11 @@ L2A2C: CALL L2AEE ; routine DE,(DE+1) gets final dimension ; now check that there were no more subscripts in the BASIC line. RST 18H ; GET-CHAR - CP $29 ; is it ')' ? + CP #29 ; is it ')' ? JR Z,L2A48 ; forward to SV-DIM to consider a separate ; subscript or/and a slice. - CP $2C ; a comma is allowed if the final subscript + CP #2C ; a comma is allowed if the final subscript ; is to be sliced e.g a$(2,3,4 TO 6). JR NZ,L2A20 ; to REPORT-3 with anything else ; 'Subscript error' @@ -12939,10 +12939,10 @@ L2A45: CALL L2A52 ; routine SLICING slices the string. L2A48: RST 20H ; NEXT-CHAR ;; SV-SLICE? -L2A49: CP $28 ; is character '(' ? +L2A49: CP #28 ; is character '(' ? JR Z,L2A45 ; loop back if so to SV-SLICE - RES 6,(IY+$01) ; update FLAGS - Signal string result + RES 6,(IY+#01) ; update FLAGS - Signal string result RET ; and return. ; --- @@ -12983,7 +12983,7 @@ L2A52: CALL L2530 ; routine SYNTAX-Z ; in BC. This could be an array subscript. RST 20H ; NEXT-CHAR - CP $29 ; is it ')' ? e.g. a$() + CP #29 ; is it ')' ? e.g. a$() JR Z,L2AAD ; forward to SL-STORE to store entire string. PUSH DE ; else save start address of string @@ -12992,21 +12992,21 @@ L2A52: CALL L2530 ; routine SYNTAX-Z PUSH AF ; and save on stack before any branching. PUSH BC ; save length of string to be sliced. - LD DE,$0001 ; default the start point to position 1. + LD DE,#0001 ; default the start point to position 1. RST 18H ; GET-CHAR POP HL ; pop length to HL as default end point ; and limit. - CP $CC ; is it 'TO' ? e.g. a$( TO 10000) + CP #CC ; is it 'TO' ? e.g. a$( TO 10000) JR Z,L2A81 ; to SL-SECOND to evaluate second parameter. POP AF ; pop the running flag. CALL L2ACD ; routine INT-EXP2 fetches first parameter. - PUSH AF ; save flag (will be $FF if parameter>limit) + PUSH AF ; save flag (will be #FF if parameter>limit) LD D,B ; transfer the start LD E,C ; to DE overwriting 0001. @@ -13014,10 +13014,10 @@ L2A52: CALL L2530 ; routine SYNTAX-Z RST 18H ; GET-CHAR POP HL ; pop the limit length. - CP $CC ; is it 'TO' after a start ? + CP #CC ; is it 'TO' after a start ? JR Z,L2A81 ; to SL-SECOND to evaluate second parameter - CP $29 ; is it ')' ? e.g. a$(365) + CP #29 ; is it ')' ? e.g. a$(365) ;; SL-RPT-C L2A7A: JP NZ,L1C8A ; jump to REPORT-C with anything else @@ -13036,7 +13036,7 @@ L2A81: PUSH HL ; save limit length. POP HL ; pop the length. - CP $29 ; is character ')' ? e.g a$(7 TO ) + CP #29 ; is character ')' ? e.g a$(7 TO ) JR Z,L2A94 ; to SL-DEFINE using length as end point. POP AF ; else restore flag. @@ -13048,7 +13048,7 @@ L2A81: PUSH HL ; save limit length. LD H,B ; transfer second parameter LD L,C ; to HL. e.g. a$(42 to 99) - CP $29 ; is character a ')' ? + CP #29 ; is character a ')' ? JR NZ,L2A7A ; to SL-RPT-C if not ; 'Nonsense in BASIC' @@ -13062,13 +13062,13 @@ L2A94: POP AF ; pop the running flag. EX (SP),HL ; start address to stack, end point to HL (*) AND A ; prepare to subtract. SBC HL,DE ; subtract start point from end point. - LD BC,$0000 ; default the length result to zero. + LD BC,#0000 ; default the length result to zero. JR C,L2AA8 ; forward to SL-OVER if start > end. INC HL ; increment the length for inclusive byte. AND A ; now test the running flag. - JP M,L2A20 ; jump back to REPORT-3 if $FF. + JP M,L2A20 ; jump back to REPORT-3 if #FF. ; 'Subscript out of range' LD B,H ; transfer the length @@ -13076,7 +13076,7 @@ L2A94: POP AF ; pop the running flag. ;; SL-OVER L2AA8: POP DE ; restore start address from machine stack *** - RES 6,(IY+$01) ; update FLAGS - signal string result for + RES 6,(IY+#01) ; update FLAGS - signal string result for ; syntax. ;; SL-STORE @@ -13097,7 +13097,7 @@ L2AB1: XOR A ; clear to signal a sliced string or element. ; -------------------------- ;; STK-STO-$ -L2AB2: RES 6,(IY+$01) ; update FLAGS - signal string result. +L2AB2: RES 6,(IY+#01) ; update FLAGS - signal string result. ; and continue to store parameters of string. ; --------------------------------------- @@ -13110,7 +13110,7 @@ L2AB6: PUSH BC ; save two registers CALL L33A9 ; routine TEST-5-SP checks room and puts 5 ; in BC. POP BC ; fetch the saved registers. - LD HL,($5C65) ; make HL point to first empty location STKEND + LD HL,(#5C65) ; make HL point to first empty location STKEND LD (HL),A ; place the 5 registers. INC HL ; LD (HL),E ; @@ -13121,19 +13121,19 @@ L2AB6: PUSH BC ; save two registers INC HL ; LD (HL),B ; INC HL ; - LD ($5C65),HL ; update system variable STKEND. + LD (#5C65),HL ; update system variable STKEND. RET ; and return. ; ------------------------------------------- ; Return result of evaluating next expression ; ------------------------------------------- ; This clever routine is used to check and evaluate an integer expression -; which is returned in BC, setting A to $FF, if greater than a limit supplied +; which is returned in BC, setting A to #FF, if greater than a limit supplied ; in HL. It is used to check array subscripts, parameters of a string slice ; and the arguments of the DIM command. In the latter case, the limit check -; is not required and H is set to $FF. When checking optional string slice +; is not required and H is set to #FF. When checking optional string slice ; parameters, it is entered at the second entry point so as not to disturb -; the running flag A, which may be $00 or $FF from a previous invocation. +; the running flag A, which may be #00 or #FF from a previous invocation. ;; INT-EXP1 L2ACC: XOR A ; set result flag to zero. @@ -13172,8 +13172,8 @@ L2ACD: PUSH DE ; preserve DE register throughout. SBC HL,BC ; subtract value from limit. ;; I-CARRY -L2AE8: LD A,D ; move flag to accumulator $00 or $FF. - SBC A,$00 ; will set to $FF if carry set. +L2AE8: LD A,D ; move flag to accumulator #00 or #FF. + SBC A,#00 ; will set to #FF if carry set. ;; I-RESTORE L2AEB: POP HL ; restore the limit. @@ -13236,14 +13236,14 @@ L2AF4: CALL L2530 ; routine SYNTAX-Z. ; I digress. ;; LET -L2AFF: LD HL,($5C4D) ; fetch system variable DEST to HL. - BIT 1,(IY+$37) ; test FLAGX - handling a new variable ? +L2AFF: LD HL,(#5C4D) ; fetch system variable DEST to HL. + BIT 1,(IY+#37) ; test FLAGX - handling a new variable ? JR Z,L2B66 ; forward to L-EXISTS if not. ; continue for a new variable. DEST points to start in BASIC line. ; from the CLASS routines. - LD BC,$0005 ; assume numeric and assign an initial 5 bytes + LD BC,#0005 ; assume numeric and assign an initial 5 bytes ;; L-EACH-CH L2B0B: INC BC ; increase byte count for each relevant @@ -13252,18 +13252,18 @@ L2B0B: INC BC ; increase byte count for each relevant ;; L-NO-SP L2B0C: INC HL ; increase pointer. LD A,(HL) ; fetch character. - CP $20 ; is it a space ? + CP #20 ; is it a space ? JR Z,L2B0C ; back to L-NO-SP is so. JR NC,L2B1F ; forward to L-TEST-CH if higher. - CP $10 ; is it $00 - $0F ? + CP #10 ; is it #00 - #0F ? JR C,L2B29 ; forward to L-SPACES if so. - CP $16 ; is it $16 - $1F ? + CP #16 ; is it #16 - #1F ? JR NC,L2B29 ; forward to L-SPACES if so. -; it was $10 - $15 so step over a colour code. +; it was #10 - #15 so step over a colour code. INC HL ; increase pointer. JR L2B0C ; loop back to L-NO-SP. @@ -13276,13 +13276,13 @@ L2B0C: INC HL ; increase pointer. L2B1F: CALL L2C88 ; routine ALPHANUM sets carry if alphanumeric JR C,L2B0B ; loop back to L-EACH-CH for more if so. - CP $24 ; is it '$' ? + CP #24 ; is it '$' ? JP Z,L2BC0 ; jump forward if so, to L-NEW$ ; with a new string. ;; L-SPACES L2B29: LD A,C ; save length lo in A. - LD HL,($5C59) ; fetch E_LINE to HL. + LD HL,(#5C59) ; fetch E_LINE to HL. DEC HL ; point to location before, the variables ; end-marker. CALL L1655 ; routine MAKE-ROOM creates BC spaces @@ -13291,9 +13291,9 @@ L2B29: LD A,C ; save length lo in A. INC HL ; then to second. EX DE,HL ; set DE to second location. PUSH DE ; save this pointer. - LD HL,($5C4D) ; reload HL with DEST. + LD HL,(#5C4D) ; reload HL with DEST. DEC DE ; point to first. - SUB $06 ; subtract six from length_lo. + SUB #06 ; subtract six from length_lo. LD B,A ; save count in B. JR Z,L2B4F ; forward to L-SINGLE if it was just ; one character. @@ -13303,33 +13303,33 @@ L2B29: LD A,C ; save length lo in A. ;; L-CHAR L2B3E: INC HL ; increase pointer. LD A,(HL) ; pick up character. - CP $21 ; is it space or higher ? + CP #21 ; is it space or higher ? JR C,L2B3E ; back to L-CHAR with space and less. - OR $20 ; make variable lower-case. + OR #20 ; make variable lower-case. INC DE ; increase destination pointer. LD (DE),A ; and load to edit line. DJNZ L2B3E ; loop back to L-CHAR until B is zero. - OR $80 ; invert the last character. + OR #80 ; invert the last character. LD (DE),A ; and overwrite that in edit line. ; now consider first character which has bit 6 set - LD A,$C0 ; set A 11000000 is xor mask for a long name. + LD A,#C0 ; set A 11000000 is xor mask for a long name. ; %101 is xor/or result ; single character numerics rejoin here with %00000000 in mask. ; %011 will be xor/or result ;; L-SINGLE -L2B4F: LD HL,($5C4D) ; fetch DEST - HL addresses first character. +L2B4F: LD HL,(#5C4D) ; fetch DEST - HL addresses first character. XOR (HL) ; apply variable type indicator mask (above). - OR $20 ; make lowercase - set bit 5. + OR #20 ; make lowercase - set bit 5. POP HL ; restore pointer to 2nd character. CALL L2BEA ; routine L-FIRST puts A in first character. ; and returns with HL holding - ; new E_LINE-1 the $80 vars end-marker. + ; new E_LINE-1 the #80 vars end-marker. ;; L-NUMERIC L2B59: PUSH HL ; save the pointer. @@ -13337,13 +13337,13 @@ L2B59: PUSH HL ; save the pointer. ; the value of variable is deleted but remains after calculator stack. RST 28H ;; FP-CALC - DEFB $02 ;;delete ; delete variable value - DEFB $38 ;;end-calc + DEFB #02 ;;delete ; delete variable value + DEFB #38 ;;end-calc ; DE (STKEND) points to start of value. POP HL ; restore the pointer. - LD BC,$0005 ; start of number is five bytes before. + LD BC,#0005 ; start of number is five bytes before. AND A ; prepare for true subtraction. SBC HL,BC ; HL points to start of value. JR L2BA6 ; forward to L-ENTER ==> @@ -13354,14 +13354,14 @@ L2B59: PUSH HL ; save the pointer. ; the jump was to here if the variable already existed. ;; L-EXISTS -L2B66: BIT 6,(IY+$01) ; test FLAGS - numeric or string result ? +L2B66: BIT 6,(IY+#01) ; test FLAGS - numeric or string result ? JR Z,L2B72 ; skip forward to L-DELETE$ -*-> ; if string result. ; A numeric variable could be simple or an array element. ; They are treated the same and the old value is overwritten. - LD DE,$0006 ; six bytes forward points to loc past value. + LD DE,#0006 ; six bytes forward points to loc past value. ADD HL,DE ; add to start of number. JR L2B59 ; back to L-NUMERIC to overwrite value. @@ -13370,10 +13370,10 @@ L2B66: BIT 6,(IY+$01) ; test FLAGS - numeric or string result ? ; -*-> the branch was here if a string existed. ;; L-DELETE$ -L2B72: LD HL,($5C4D) ; fetch DEST to HL. +L2B72: LD HL,(#5C4D) ; fetch DEST to HL. ; (still set from first instruction) - LD BC,($5C72) ; fetch STRLEN to BC. - BIT 0,(IY+$37) ; test FLAGX - handling a complete simple + LD BC,(#5C72) ; fetch STRLEN to BC. + BIT 0,(IY+#37) ; test FLAGX - handling a complete simple ; string ? JR NZ,L2BAF ; forward to L-ADD$ if so. @@ -13398,7 +13398,7 @@ L2B72: LD HL,($5C4D) ; fetch DEST to HL. LD D,H ; set DE to point to last location. LD E,L ; INC HL ; set HL to next location. - LD (HL),$20 ; place a space there. + LD (HL),#20 ; place a space there. LDDR ; copy bytes filling with spaces. PUSH HL ; save pointer to start. @@ -13473,9 +13473,9 @@ L2BAF: DEC HL ; point to high byte of length. ; the jump was here with a new string variable. ;; L-NEW$ -L2BC0: LD A,$DF ; indicator mask %11011111 for +L2BC0: LD A,#DF ; indicator mask %11011111 for ; %010xxxxx will be result - LD HL,($5C4D) ; address DEST first character. + LD HL,(#5C4D) ; address DEST first character. AND (HL) ; combine mask with character. ;; L-STRING @@ -13486,16 +13486,16 @@ L2BC6: PUSH AF ; save first character and mask. ADD HL,BC ; add to length. PUSH BC ; save the length. DEC HL ; point to end of string. - LD ($5C4D),HL ; save pointer in DEST. + LD (#5C4D),HL ; save pointer in DEST. ; (updated by POINTERS if in workspace) INC BC ; extra byte for letter. INC BC ; two bytes INC BC ; for the length of string. - LD HL,($5C59) ; address E_LINE. + LD HL,(#5C59) ; address E_LINE. DEC HL ; now end of VARS area. CALL L1655 ; routine MAKE-ROOM makes room for string. ; updating pointers including DEST. - LD HL,($5C4D) ; pick up pointer to end of string from DEST. + LD HL,(#5C4D) ; pick up pointer to end of string from DEST. POP BC ; restore length from stack. PUSH BC ; and save again on stack. INC BC ; add a byte. @@ -13511,7 +13511,7 @@ L2BC6: PUSH AF ; save first character and mask. ;; L-FIRST L2BEA: DEC HL ; address variable name LD (HL),A ; and insert character. - LD HL,($5C59) ; load HL with E_LINE. + LD HL,(#5C59) ; load HL with E_LINE. DEC HL ; now end of VARS area. RET ; return @@ -13522,7 +13522,7 @@ L2BEA: DEC HL ; address variable name ; ;; STK-FETCH -L2BF1: LD HL,($5C65) ; STKEND +L2BF1: LD HL,(#5C65) ; STKEND DEC HL ; LD B,(HL) ; DEC HL ; @@ -13533,7 +13533,7 @@ L2BF1: LD HL,($5C65) ; STKEND LD E,(HL) ; DEC HL ; LD A,(HL) ; - LD ($5C65),HL ; STKEND + LD (#5C65),HL ; STKEND RET ; ; ------------------ @@ -13570,20 +13570,20 @@ L2C15: JR C,L2C1F ; skip to D-LETTER if variable did not exist. PUSH BC ; save type in C. CALL L19B8 ; routine NEXT-ONE find following variable - ; or position of $80 end-marker. + ; or position of #80 end-marker. CALL L19E8 ; routine RECLAIM-2 reclaims the ; space between. POP BC ; pop the type. ;; D-LETTER L2C1F: SET 7,C ; signal array. - LD B,$00 ; initialize dimensions to zero and + LD B,#00 ; initialize dimensions to zero and PUSH BC ; save with the type. - LD HL,$0001 ; make elements one character presuming string + LD HL,#0001 ; make elements one character presuming string BIT 6,C ; is it a string ? JR NZ,L2C2D ; forward to D-SIZE if so. - LD L,$05 ; make elements 5 bytes as is numeric. + LD L,#05 ; make elements 5 bytes as is numeric. ;; D-SIZE L2C2D: EX DE,HL ; save the element size in DE. @@ -13592,7 +13592,7 @@ L2C2D: EX DE,HL ; save the element size in DE. ;; D-NO-LOOP L2C2E: RST 20H ; NEXT-CHAR - LD H,$FF ; disable limit check by setting HL high + LD H,#FF ; disable limit check by setting HL high CALL L2ACC ; routine INT-EXP1 JP C,L2A20 ; to REPORT-3 if > 65280 and then some ; 'Subscript out of range' @@ -13609,13 +13609,13 @@ L2C2E: RST 20H ; NEXT-CHAR EX DE,HL ; save running total in DE RST 18H ; GET-CHAR - CP $2C ; is it ',' ? + CP #2C ; is it ',' ? JR Z,L2C2E ; loop back to D-NO-LOOP until all dimensions ; have been considered ; when loop complete continue. - CP $29 ; is it ')' ? + CP #29 ; is it ')' ? JR NZ,L2C05 ; to D-RPORT-C with anything else ; 'Nonsense in BASIC' @@ -13629,7 +13629,7 @@ L2C2E: RST 20H ; NEXT-CHAR LD L,B ; dimensions to L since these require 16 bits ; then this value will be doubled - LD H,$00 ; set high byte to zero + LD H,#00 ; set high byte to zero ; another four bytes are required for letter(1), total length(2), number of ; dimensions(1) but since we have yet to double allow for two @@ -13649,9 +13649,9 @@ L2C2E: RST 20H ; NEXT-CHAR PUSH HL ; save total space LD B,H ; total space LD C,L ; to BC - LD HL,($5C59) ; address E_LINE - first location after + LD HL,(#5C59) ; address E_LINE - first location after ; variables area - DEC HL ; point to location before - the $80 end-marker + DEC HL ; point to location before - the #80 end-marker CALL L1655 ; routine MAKE-ROOM creates the space if ; memory is available. @@ -13675,11 +13675,11 @@ L2C2E: RST 20H ; NEXT-CHAR LD H,D ; transfer DE space + 1 from make-room LD L,E ; to HL DEC DE ; set DE to next location down. - LD (HL),$00 ; presume numeric and insert a zero + LD (HL),#00 ; presume numeric and insert a zero BIT 6,C ; test bit 6 of C. numeric or string ? JR Z,L2C7C ; skip to DIM-CLEAR if numeric - LD (HL),$20 ; place a space character in HL + LD (HL),#20 ; place a space character in HL ;; DIM-CLEAR L2C7C: POP BC ; pop the data length @@ -13716,18 +13716,18 @@ L2C88: CALL L2D1B ; routine NUMERIC will reset carry if so. ; This routine checks that the character in A is alphabetic ;; ALPHA -L2C8D: CP $41 ; less than 'A' ? +L2C8D: CP #41 ; less than 'A' ? CCF ; Complement Carry Flag RET NC ; return if so - CP $5B ; less than 'Z'+1 ? + CP #5B ; less than 'Z'+1 ? RET C ; is within first range - CP $61 ; less than 'a' ? + CP #61 ; less than 'a' ? CCF ; Complement Carry Flag RET NC ; return if so. - CP $7B ; less than 'z'+1 ? + CP #7B ; less than 'z'+1 ? RET ; carry set if within a-z. ; ------------------------- @@ -13739,15 +13739,15 @@ L2C8D: CP $41 ; less than 'A' ? ; BIN is really just a notational symbol and not a function. ;; DEC-TO-FP -L2C9B: CP $C4 ; 'BIN' token ? +L2C9B: CP #C4 ; 'BIN' token ? JR NZ,L2CB8 ; to NOT-BIN if not - LD DE,$0000 ; initialize 16 bit buffer register. + LD DE,#0000 ; initialize 16 bit buffer register. ;; BIN-DIGIT L2CA2: RST 20H ; NEXT-CHAR - SUB $31 ; '1' - ADC A,$00 ; will be zero if '1' or '0' + SUB #31 ; '1' + ADC A,#00 ; will be zero if '1' or '0' ; carry will be set if was '0' JR NZ,L2CB3 ; forward to BIN-END if result not zero @@ -13774,12 +13774,12 @@ L2CB3: LD B,D ; transfer 16 bit buffer ; continue here with .1, 42, 3.14, 5., 2.3 E -4 ;; NOT-BIN -L2CB8: CP $2E ; '.' - leading decimal point ? +L2CB8: CP #2E ; '.' - leading decimal point ? JR Z,L2CCB ; skip to DECIMAL if so. CALL L2D3B ; routine INT-TO-FP to evaluate all digits ; This number 'x' is placed on stack. - CP $2E ; '.' - mid decimal point ? + CP #2E ; '.' - mid decimal point ? JR NZ,L2CEB ; to E-FORMAT if not to consider that format @@ -13805,8 +13805,8 @@ L2CCF: JP C,L1C8A ; to REPORT-C if just a '.' ; since there is no leading zero put one on the calculator stack. RST 28H ;; FP-CALC - DEFB $A0 ;;stk-zero ; 0. - DEFB $38 ;;end-calc + DEFB #A0 ;;stk-zero ; 0. + DEFB #38 ;;end-calc ; If rejoining from earlier there will be a value 'x' on stack. ; If continuing from above the value zero. @@ -13815,10 +13815,10 @@ L2CCF: JP C,L1C8A ; to REPORT-C if just a '.' ;; DEC-STO-1 L2CD5: RST 28H ;; FP-CALC - DEFB $A1 ;;stk-one ;x or 0,1. - DEFB $C0 ;;st-mem-0 ;x or 0,1. - DEFB $02 ;;delete ;x or 0. - DEFB $38 ;;end-calc + DEFB #A1 ;;stk-one ;x or 0,1. + DEFB #C0 ;;st-mem-0 ;x or 0,1. + DEFB #02 ;;delete ;x or 0. + DEFB #38 ;;end-calc ;; NXT-DGT-1 @@ -13828,13 +13828,13 @@ L2CDA: RST 18H ; GET-CHAR RST 28H ;; FP-CALC ;x or 0,d. first pass. - DEFB $E0 ;;get-mem-0 ;x or 0,d,1. - DEFB $A4 ;;stk-ten ;x or 0,d,1,10. - DEFB $05 ;;division ;x or 0,d,1/10. - DEFB $C0 ;;st-mem-0 ;x or 0,d,1/10. - DEFB $04 ;;multiply ;x or 0,d/10. - DEFB $0F ;;addition ;x or 0 + d/10. - DEFB $38 ;;end-calc last value. + DEFB #E0 ;;get-mem-0 ;x or 0,d,1. + DEFB #A4 ;;stk-ten ;x or 0,d,1,10. + DEFB #05 ;;division ;x or 0,d,1/10. + DEFB #C0 ;;st-mem-0 ;x or 0,d,1/10. + DEFB #04 ;;multiply ;x or 0,d/10. + DEFB #0F ;;addition ;x or 0 + d/10. + DEFB #38 ;;end-calc last value. RST 20H ; NEXT-CHAR moves to next character JR L2CDA ; back to NXT-DGT-1 @@ -13849,20 +13849,20 @@ L2CDA: RST 18H ; GET-CHAR ; Finally see if an exponent has been input. ;; E-FORMAT -L2CEB: CP $45 ; is character 'E' ? +L2CEB: CP #45 ; is character 'E' ? JR Z,L2CF2 ; to SIGN-FLAG if so - CP $65 ; 'e' is acceptable as well. + CP #65 ; 'e' is acceptable as well. RET NZ ; return as no exponent. ;; SIGN-FLAG -L2CF2: LD B,$FF ; initialize temporary sign byte to $FF +L2CF2: LD B,#FF ; initialize temporary sign byte to #FF RST 20H ; NEXT-CHAR - CP $2B ; is character '+' ? + CP #2B ; is character '+' ? JR Z,L2CFE ; to SIGN-DONE - CP $2D ; is character '-' ? + CP #2D ; is character '-' ? JR NZ,L2CFF ; to ST-E-PART as no sign INC B ; set sign to zero @@ -13895,7 +13895,7 @@ L2CFF: CALL L2D1B ; routine NUMERIC ; raised later in E-TO-FP so two different ; error messages depending how high A is. - INC B ; $FF to $00 or $00 to $01 - expendable now. + INC B ; #FF to #00 or #00 to #01 - expendable now. JR Z,L2D18 ; forward to E-FP-JUMP if exponent positive NEG ; Negate the exponent. @@ -13912,10 +13912,10 @@ L2D18: JP L2D4F ; JUMP forward to E-TO-FP to assign to ; returning with carry reset if so. ;; NUMERIC -L2D1B: CP $30 ; '0' +L2D1B: CP #30 ; '0' RET C ; return if less than zero character. - CP $3A ; The upper test is '9' + CP #3A ; The upper test is '9' CCF ; Complement Carry Flag RET ; Return - carry clear if character '0' - '9' @@ -13929,7 +13929,7 @@ L2D1B: CP $30 ; '0' L2D22: CALL L2D1B ; routine NUMERIC RET C ; return if not numeric character - SUB $30 ; convert from ASCII to digit + SUB #30 ; convert from ASCII to digit ; ----------------- ; Stack accumulator @@ -13939,7 +13939,7 @@ L2D22: CALL L2D1B ; routine NUMERIC ;; STACK-A L2D28: LD C,A ; transfer to C - LD B,$00 ; and make B zero + LD B,#00 ; and make B zero ; ---------------------- ; Stack BC register pair @@ -13947,7 +13947,7 @@ L2D28: LD C,A ; transfer to C ; ;; STACK-BC -L2D2B: LD IY,$5C3A ; re-initialize ERR_NR +L2D2B: LD IY,#5C3A ; re-initialize ERR_NR XOR A ; clear to signal small integer LD E,A ; place in E for sign @@ -13957,7 +13957,7 @@ L2D2B: LD IY,$5C3A ; re-initialize ERR_NR CALL L2AB6 ; routine STK-STORE RST 28H ;; FP-CALC - DEFB $38 ;;end-calc make HL = STKEND-5 + DEFB #38 ;;end-calc make HL = STKEND-5 AND A ; clear carry RET ; before returning @@ -13973,8 +13973,8 @@ L2D2B: LD IY,$5C3A ; re-initialize ERR_NR L2D3B: PUSH AF ; save first character RST 28H ;; FP-CALC - DEFB $A0 ;;stk-zero ; v=0. initial value - DEFB $38 ;;end-calc + DEFB #A0 ;;stk-zero ; v=0. initial value + DEFB #38 ;;end-calc POP AF ; fetch first character back. @@ -13983,11 +13983,11 @@ L2D40: CALL L2D22 ; routine STK-DIGIT puts 0-9 on stack RET C ; will return when character is not numeric > RST 28H ;; FP-CALC ; v, d. - DEFB $01 ;;exchange ; d, v. - DEFB $A4 ;;stk-ten ; d, v, 10. - DEFB $04 ;;multiply ; d, v*10. - DEFB $0F ;;addition ; d + v*10 = newvalue - DEFB $38 ;;end-calc ; v. + DEFB #01 ;;exchange ; d, v. + DEFB #A4 ;;stk-ten ; d, v, 10. + DEFB #04 ;;multiply ; d, v*10. + DEFB #0F ;;addition ; d + v*10 = newvalue + DEFB #38 ;;end-calc ; v. CALL L0074 ; routine CH-ADD+1 get next character JR L2D40 ; back to NXT-DGT-2 to process as a digit @@ -14022,15 +14022,15 @@ L2D4F: RLCA ; this will set the x. ;; E-SAVE L2D55: PUSH AF ; save positive exp and sign in carry - LD HL,$5C92 ; address MEM-0 + LD HL,#5C92 ; address MEM-0 CALL L350B ; routine FP-0/1 ; places an integer zero, if no carry, ; else a one in mem-0 as a sign flag RST 28H ;; FP-CALC - DEFB $A4 ;;stk-ten x, 10. - DEFB $38 ;;end-calc + DEFB #A4 ;;stk-ten x, 10. + DEFB #38 ;;end-calc POP AF ; pop the exponent. @@ -14044,23 +14044,23 @@ L2D60: SRL A ; 0>76543210>C PUSH AF ; save shifted exponent. RST 28H ;; FP-CALC - DEFB $C1 ;;st-mem-1 x, 10. - DEFB $E0 ;;get-mem-0 x, 10, (0/1). - DEFB $00 ;;jump-true + DEFB #C1 ;;st-mem-1 x, 10. + DEFB #E0 ;;get-mem-0 x, 10, (0/1). + DEFB #00 ;;jump-true - DEFB $04 ;;to L2D6D, E-DIVSN + DEFB #04 ;;to L2D6D, E-DIVSN - DEFB $04 ;;multiply x*10. - DEFB $33 ;;jump + DEFB #04 ;;multiply x*10. + DEFB #33 ;;jump - DEFB $02 ;;to L2D6E, E-FETCH + DEFB #02 ;;to L2D6E, E-FETCH ;; E-DIVSN -L2D6D: DEFB $05 ;;division x/10. +L2D6D: DEFB #05 ;;division x/10. ;; E-FETCH -L2D6E: DEFB $E1 ;;get-mem-1 x/10 or x*10, 10. - DEFB $38 ;;end-calc new x, 10. +L2D6E: DEFB #E1 ;;get-mem-1 x/10 or x*10, 10. + DEFB #38 ;;end-calc new x, 10. POP AF ; restore shifted exponent @@ -14072,9 +14072,9 @@ L2D71: JR Z,L2D7B ; forward to E-END if A emptied of bits PUSH AF ; re-save shifted exponent RST 28H ;; FP-CALC - DEFB $31 ;;duplicate new x, 10, 10. - DEFB $04 ;;multiply new x, 100. - DEFB $38 ;;end-calc + DEFB #31 ;;duplicate new x, 10, 10. + DEFB #04 ;;multiply new x, 100. + DEFB #38 ;;end-calc POP AF ; restore shifted exponent JR L2D60 ; back to E-LOOP until all bits done. @@ -14087,8 +14087,8 @@ L2D71: JR Z,L2D7B ; forward to E-END if A emptied of bits ;; E-END L2D7B: RST 28H ;; FP-CALC final x, factor. - DEFB $02 ;;delete final x. - DEFB $38 ;;end-calc x. + DEFB #02 ;;delete final x. + DEFB #38 ;;end-calc x. RET ; return @@ -14127,21 +14127,21 @@ L2D7F: INC HL ; skip zero indicator. ; store any integer as positive. ;; p-int-sto -L2D8C: LD C,$00 ; make sign byte positive and continue +L2D8C: LD C,#00 ; make sign byte positive and continue ; ------------- ; Store integer ; ------------- ; this routine stores an integer in DE at address HL. ; It is called from mult, truncate, negate and sgn. -; The sign byte $00 +ve or $FF -ve is in C. +; The sign byte #00 +ve or #FF -ve is in C. ; If negative, the number is stored in 2's complement form so that it is ; ready to be added. ;; INT-STORE L2D8E: PUSH HL ; preserve HL - LD (HL),$00 ; first byte zero shows integer not exponent + LD (HL),#00 ; first byte zero shows integer not exponent INC HL ; LD (HL),C ; then store the sign byte INC HL ; @@ -14159,7 +14159,7 @@ L2D8E: PUSH HL ; preserve HL XOR C ; xor sign 00000000 11111111 LD (HL),A ; store 2's complement. INC HL ; - LD (HL),$00 ; last byte always zero for integers. + LD (HL),#00 ; last byte always zero for integers. ; is not used and need not be looked at when ; testing for zero but comes into play should ; an integer be converted to fp. @@ -14175,7 +14175,7 @@ L2D8E: PUSH HL ; preserve HL ;; FP-TO-BC L2DA2: RST 28H ;; FP-CALC set HL to - DEFB $38 ;;end-calc point to last value. + DEFB #38 ;;end-calc point to last value. LD A,(HL) ; get first of 5 bytes AND A ; and test @@ -14184,17 +14184,17 @@ L2DA2: RST 28H ;; FP-CALC set HL to ; The value is first rounded up and then converted to integer. RST 28H ;; FP-CALC x. - DEFB $A2 ;;stk-half x. 1/2. - DEFB $0F ;;addition x + 1/2. - DEFB $27 ;;int int(x + .5) - DEFB $38 ;;end-calc + DEFB #A2 ;;stk-half x. 1/2. + DEFB #0F ;;addition x + 1/2. + DEFB #27 ;;int int(x + .5) + DEFB #38 ;;end-calc ; now delete but leave HL pointing at integer ;; FP-DELETE L2DAD: RST 28H ;; FP-CALC - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #38 ;;end-calc PUSH HL ; save pointer. PUSH DE ; and STKEND. @@ -14231,7 +14231,7 @@ L2DAD: RST 28H ;; FP-CALC ;; LOG(2^A) L2DC1: LD D,A ; store a copy of A in D. RLA ; test sign bit of A. - SBC A,A ; now $FF if negative or $00 + SBC A,A ; now #FF if negative or #00 LD E,A ; sign byte to E. LD C,A ; and to C XOR A ; clear A @@ -14245,14 +14245,14 @@ L2DC1: LD D,A ; store a copy of A in D. RST 28H ;; FP-CALC - DEFB $34 ;;stk-data .30103 (log 2) - DEFB $EF ;;Exponent: $7F, Bytes: 4 - DEFB $1A,$20,$9A,$85 ;; - DEFB $04 ;;multiply + DEFB #34 ;;stk-data .30103 (log 2) + DEFB #EF ;;Exponent: #7F, Bytes: 4 + DEFB #1A,#20,#9A,#85 ;; + DEFB #04 ;;multiply - DEFB $27 ;;int + DEFB #27 ;;int - DEFB $38 ;;end-calc + DEFB #38 ;;end-calc ; ------------------- ; Floating point to A @@ -14292,34 +14292,34 @@ L2DE1: POP AF ; restore value and success flag and ;; PRINT-FP L2DE3: RST 28H ;; FP-CALC - DEFB $31 ;;duplicate - DEFB $36 ;;less-0 - DEFB $00 ;;jump-true + DEFB #31 ;;duplicate + DEFB #36 ;;less-0 + DEFB #00 ;;jump-true - DEFB $0B ;;to L2DF2, PF-NEGTVE + DEFB #0B ;;to L2DF2, PF-NEGTVE - DEFB $31 ;;duplicate - DEFB $37 ;;greater-0 - DEFB $00 ;;jump-true + DEFB #31 ;;duplicate + DEFB #37 ;;greater-0 + DEFB #00 ;;jump-true - DEFB $0D ;;to L2DF8, PF-POSTVE + DEFB #0D ;;to L2DF8, PF-POSTVE ; must be zero itself - DEFB $02 ;;delete - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #38 ;;end-calc - LD A,$30 ; prepare the character '0' + LD A,#30 ; prepare the character '0' RST 10H ; PRINT-A RET ; return. -> ; --- ;; PF-NEGTVE -L2DF2: DEFB $2A ;;abs - DEFB $38 ;;end-calc +L2DF2: DEFB #2A ;;abs + DEFB #38 ;;end-calc - LD A,$2D ; the character '-' + LD A,#2D ; the character '-' RST 10H ; PRINT-A @@ -14328,12 +14328,12 @@ L2DF2: DEFB $2A ;;abs RST 28H ;; FP-CALC ;; PF-POSTVE -L2DF8: DEFB $A0 ;;stk-zero x,0. begin by - DEFB $C3 ;;st-mem-3 x,0. clearing a temporary - DEFB $C4 ;;st-mem-4 x,0. output buffer to - DEFB $C5 ;;st-mem-5 x,0. fifteen zeros. - DEFB $02 ;;delete x. - DEFB $38 ;;end-calc x. +L2DF8: DEFB #A0 ;;stk-zero x,0. begin by + DEFB #C3 ;;st-mem-3 x,0. clearing a temporary + DEFB #C4 ;;st-mem-4 x,0. output buffer to + DEFB #C5 ;;st-mem-5 x,0. fifteen zeros. + DEFB #02 ;;delete x. + DEFB #38 ;;end-calc x. EXX ; in case called from 'str$' then save the PUSH HL ; pointer to whatever comes after @@ -14343,15 +14343,15 @@ L2DF8: DEFB $A0 ;;stk-zero x,0. begin by ;; PF-LOOP L2E01: RST 28H ;; FP-CALC - DEFB $31 ;;duplicate x,x. - DEFB $27 ;;int x,int x. - DEFB $C2 ;;st-mem-2 x,int x. - DEFB $03 ;;subtract x-int x. fractional part. - DEFB $E2 ;;get-mem-2 x-int x, int x. - DEFB $01 ;;exchange int x, x-int x. - DEFB $C2 ;;st-mem-2 int x, x-int x. - DEFB $02 ;;delete int x. - DEFB $38 ;;end-calc int x. + DEFB #31 ;;duplicate x,x. + DEFB #27 ;;int x,int x. + DEFB #C2 ;;st-mem-2 x,int x. + DEFB #03 ;;subtract x-int x. fractional part. + DEFB #E2 ;;get-mem-2 x-int x, int x. + DEFB #01 ;;exchange int x, x-int x. + DEFB #C2 ;;st-mem-2 int x, x-int x. + DEFB #02 ;;delete int x. + DEFB #38 ;;end-calc int x. ; ; mem-2 holds the fractional part. @@ -14368,7 +14368,7 @@ L2E01: RST 28H ;; FP-CALC CALL L2D7F ; routine INT-FETCH gets x in DE ; (but x is not deleted) - LD B,$10 ; set B, bit counter, to 16d + LD B,#10 ; set B, bit counter, to 16d LD A,D ; test if AND A ; high byte is zero @@ -14383,7 +14383,7 @@ L2E01: RST 28H ;; FP-CALC ; LD D,E ; transfer E to D - LD B,$08 ; and reduce the bit counter to 8. + LD B,#08 ; and reduce the bit counter to 8. ;; PF-SAVE L2E1E: PUSH DE ; save the part before decimal point. @@ -14405,39 +14405,39 @@ L2E1E: PUSH DE ; save the part before decimal point. ;; PF-SMALL L2E24: RST 28H ;; FP-CALC int x = 0. -L2E25: DEFB $E2 ;;get-mem-2 int x = 0, x-int x. - DEFB $38 ;;end-calc +L2E25: DEFB #E2 ;;get-mem-2 int x = 0, x-int x. + DEFB #38 ;;end-calc LD A,(HL) ; fetch exponent of positive fractional number - SUB $7E ; subtract + SUB #7E ; subtract CALL L2DC1 ; routine LOG(2^A) calculates leading digits. LD D,A ; transfer count to D - LD A,($5CAC) ; fetch total MEM-5-1 + LD A,(#5CAC) ; fetch total MEM-5-1 SUB D ; - LD ($5CAC),A ; MEM-5-1 + LD (#5CAC),A ; MEM-5-1 LD A,D ; CALL L2D4F ; routine E-TO-FP RST 28H ;; FP-CALC - DEFB $31 ;;duplicate - DEFB $27 ;;int - DEFB $C1 ;;st-mem-1 - DEFB $03 ;;subtract - DEFB $E1 ;;get-mem-1 - DEFB $38 ;;end-calc + DEFB #31 ;;duplicate + DEFB #27 ;;int + DEFB #C1 ;;st-mem-1 + DEFB #03 ;;subtract + DEFB #E1 ;;get-mem-1 + DEFB #38 ;;end-calc CALL L2DD5 ; routine FP-TO-A PUSH HL ; save HL - LD ($5CA1),A ; MEM-3-1 + LD (#5CA1),A ; MEM-3-1 DEC A ; RLA ; SBC A,A ; INC A ; - LD HL,$5CAB ; address MEM-5-1 leading digit counter + LD HL,#5CAB ; address MEM-5-1 leading digit counter LD (HL),A ; store counter INC HL ; address MEM-5-2 total digits ADD A,(HL) ; add counter to contents @@ -14457,14 +14457,14 @@ L2E25: DEFB $E2 ;;get-mem-2 int x = 0, x-int x. ; the accumulator holds the exponent. ;; PF-LARGE -L2E56: SUB $80 ; make exponent positive - CP $1C ; compare to 28 +L2E56: SUB #80 ; make exponent positive + CP #1C ; compare to 28 JR C,L2E6F ; to PF-MEDIUM if integer <= 2^27 CALL L2DC1 ; routine LOG(2^A) - SUB $07 ; + SUB #07 ; LD B,A ; - LD HL,$5CAC ; address MEM-5-1 the leading digits counter. + LD HL,#5CAC ; address MEM-5-1 the leading digits counter. ADD A,(HL) ; add A to contents LD (HL),A ; store updated value. LD A,B ; @@ -14481,7 +14481,7 @@ L2E6F: EX DE,HL ; SET 7,D ; LD A,L ; EXX ; - SUB $80 ; + SUB #80 ; LD B,A ; ; the branch was here to handle bits in DE with 8 or 16 in B if small int @@ -14496,8 +14496,8 @@ L2E7B: SLA E ; C> PUSH AF ; save count. PUSH DE ; and normal STKEND - LD DE,$0000 ; dummy value for STKEND at start of ROM + LD DE,#0000 ; dummy value for STKEND at start of ROM ; Note. not a fault but this has to be ; moved elsewhere when running in RAM. ; e.g. with Expandor Systems 'Soft ROM'. @@ -16293,26 +16293,26 @@ L33F8: RET Z ; return if zero. >> ; floating-point numbers in the calculator's memory area. ;; LOC-MEM -L3406: LD C,A ; store the original number $00-$1F. +L3406: LD C,A ; store the original number #00-#1F. RLCA ; double. RLCA ; quadruple. ADD A,C ; now add original to multiply by five. LD C,A ; place the result in C. - LD B,$00 ; set B to 0. + LD B,#00 ; set B to 0. ADD HL,BC ; add to form address of start of number in HL. RET ; return. ; ------------------------------ -; Get from memory area ($E0 etc.) +; Get from memory area (#E0 etc.) ; ------------------------------ -; Literals $E0 to $FF -; A holds $00-$1F offset. +; Literals #E0 to #FF +; A holds #00-#1F offset. ; The calculator stack increases by 5 bytes. ;; get-mem-xx L340F: PUSH DE ; save STKEND - LD HL,($5C68) ; MEM is base address of the memory cells. + LD HL,(#5C68) ; MEM is base address of the memory cells. CALL L3406 ; routine LOC-MEM so that HL = first byte CALL L33C0 ; routine MOVE-FP moves 5 bytes with memory ; check. @@ -16346,23 +16346,23 @@ L341B: LD H,D ; save STKEND - required for result RET ; return. ; -------------------------------- -; Store in a memory area ($C0 etc.) +; Store in a memory area (#C0 etc.) ; -------------------------------- -; Offsets $C0 to $DF +; Offsets #C0 to #DF ; Although 32 memory storage locations can be addressed, only six -; $C0 to $C5 are required by the ROM and only the thirty bytes (6*5) +; #C0 to #C5 are required by the ROM and only the thirty bytes (6*5) ; required for these are allocated. Spectrum programmers who wish to ; use the floating point routines from assembly language may wish to ; alter the system variable MEM to point to 160 bytes of RAM to have ; use the full range available. -; A holds the derived offset $00-$1F. +; A holds the derived offset #00-#1F. ; This is a unary operation, so on entry HL points to the last value and DE ; points to STKEND. ;; st-mem-xx L342D: PUSH HL ; save the result pointer. EX DE,HL ; transfer to DE. - LD HL,($5C68) ; fetch MEM the base of memory area. + LD HL,(#5C68) ; fetch MEM the base of memory area. CALL L3406 ; routine LOC-MEM sets HL to the destination. EX DE,HL ; swap - HL is start, DE is destination. CALL L33C0 ; routine MOVE-FP. @@ -16382,7 +16382,7 @@ L342D: PUSH HL ; save the result pointer. ; On exit, HL=result, DE=stkend. ;; exchange -L343C: LD B,$05 ; there are five bytes to be swapped +L343C: LD B,#05 ; there are five bytes to be swapped ; start of loop. @@ -16415,7 +16415,7 @@ L343E: LD A,(DE) ; each byte of second ; and Dr Frank O'Hara, published 1983 by Melbourne House. ;; series-xx -L3449: LD B,A ; parameter $00 - $1F to B counter +L3449: LD B,A ; parameter #00 - #1F to B counter CALL L335E ; routine GEN-ENT-1 is called. ; A recursive call to a special entry point ; in the calculator that puts the B register @@ -16428,24 +16428,24 @@ L3449: LD B,A ; parameter $00 - $1F to B counter ; The initialization phase. - DEFB $31 ;;duplicate x,x - DEFB $0F ;;addition x+x - DEFB $C0 ;;st-mem-0 x+x - DEFB $02 ;;delete . - DEFB $A0 ;;stk-zero 0 - DEFB $C2 ;;st-mem-2 0 + DEFB #31 ;;duplicate x,x + DEFB #0F ;;addition x+x + DEFB #C0 ;;st-mem-0 x+x + DEFB #02 ;;delete . + DEFB #A0 ;;stk-zero 0 + DEFB #C2 ;;st-mem-2 0 ; a loop is now entered to perform the algebraic calculation for each of ; the numbers in the series ;; G-LOOP -L3453: DEFB $31 ;;duplicate v,v. - DEFB $E0 ;;get-mem-0 v,v,x+2 - DEFB $04 ;;multiply v,v*x+2 - DEFB $E2 ;;get-mem-2 v,v*x+2,v - DEFB $C1 ;;st-mem-1 - DEFB $03 ;;subtract - DEFB $38 ;;end-calc +L3453: DEFB #31 ;;duplicate v,v. + DEFB #E0 ;;get-mem-0 v,v,x+2 + DEFB #04 ;;multiply v,v*x+2 + DEFB #E2 ;;get-mem-2 v,v*x+2,v + DEFB #C1 ;;st-mem-1 + DEFB #03 ;;subtract + DEFB #38 ;;end-calc ; the previous pointer is fetched from the machine stack to H'L' where it ; addresses one of the numbers of the series following the series literal. @@ -16458,20 +16458,20 @@ L3453: DEFB $31 ;;duplicate v,v. ; H'L' value goes on the machine stack and is ; then loaded as usual with the next address. - DEFB $0F ;;addition - DEFB $01 ;;exchange - DEFB $C2 ;;st-mem-2 - DEFB $02 ;;delete + DEFB #0F ;;addition + DEFB #01 ;;exchange + DEFB #C2 ;;st-mem-2 + DEFB #02 ;;delete - DEFB $35 ;;dec-jr-nz - DEFB $EE ;;back to L3453, G-LOOP + DEFB #35 ;;dec-jr-nz + DEFB #EE ;;back to L3453, G-LOOP ; when the counted loop is complete the final subtraction yields the result ; for example SIN X. - DEFB $E1 ;;get-mem-1 - DEFB $03 ;;subtract - DEFB $38 ;;end-calc + DEFB #E1 ;;get-mem-1 + DEFB #03 ;;subtract + DEFB #38 ;;end-calc RET ; return with H'L' pointing to location ; after last number in series. @@ -16483,7 +16483,7 @@ L3453: DEFB $31 ;;duplicate v,v. ; integer or floating point, on calculator stack. ;; abs -L346A: LD B,$FF ; signal abs +L346A: LD B,#FF ; signal abs JR L3474 ; forward to NEG-TEST ; ----------------------- @@ -16496,7 +16496,7 @@ L346A: LD B,$FF ; signal abs L346E: CALL L34E9 ; call routine TEST-ZERO and RET C ; return if so leaving zero unchanged. - LD B,$00 ; signal negate required before joining + LD B,#00 ; signal negate required before joining ; common code. ;; NEG-TEST @@ -16507,8 +16507,8 @@ L3474: LD A,(HL) ; load first byte and ; for floating point numbers a single bit denotes the sign. INC HL ; address the first byte of mantissa. - LD A,B ; action flag $FF=abs, $00=neg. - AND $80 ; now $80 $00 + LD A,B ; action flag #FF=abs, #00=neg. + AND #80 ; now #80 #00 OR (HL) ; sets bit 7 for abs RLA ; sets carry for abs and if number negative CCF ; complement carry flag @@ -16531,9 +16531,9 @@ L3483: PUSH DE ; save STKEND. POP HL ; restore the result pointer. - LD A,B ; $FF=abs, $00=neg - OR C ; $FF for abs, no change neg - CPL ; $00 for abs, switched for neg + LD A,B ; #FF=abs, #00=neg + OR C ; #FF for abs, no change neg + CPL ; #00 for abs, switched for neg LD C,A ; transfer result to sign byte. CALL L2D8E ; routine INT-STORE to re-write the integer. @@ -16554,11 +16554,11 @@ L3492: CALL L34E9 ; call routine TEST-ZERO and PUSH DE ; save pointer to STKEND. - LD DE,$0001 ; the result will be 1. + LD DE,#0001 ; the result will be 1. INC HL ; skip over the exponent. RL (HL) ; rotate the sign bit into the carry flag. DEC HL ; step back to point to the result. - SBC A,A ; byte will be $FF if negative, $00 if positive. + SBC A,A ; byte will be #FF if negative, #00 if positive. LD C,A ; store the sign byte in the C register. CALL L2D8E ; routine INT-STORE to overwrite the last ; value with 0001 and sign. @@ -16640,10 +16640,10 @@ L34BC: CALL L2BF1 ; routine STK-FETCH fetches the string CALL L2C8D ; routine ALPHA sets carry if 'A-Z' or 'a-z'. JR C,L34D3 ; forward to USR-RANGE if ASCII. - SUB $90 ; make udgs range 0-20d + SUB #90 ; make udgs range 0-20d JR C,L34E7 ; to REPORT-A if too low. e.g. usr " ". - CP $15 ; Note. this test is not necessary. + CP #15 ; Note. this test is not necessary. JR NC,L34E7 ; to REPORT-A if higher than 20. INC A ; make range 1-21d to match LSBs of ASCII @@ -16653,11 +16653,11 @@ L34D3: DEC A ; make range of bits 0-4 start at zero ADD A,A ; multiply by eight ADD A,A ; and lose any set bits ADD A,A ; range now 0 - 25*8 - CP $A8 ; compare to 21*8 + CP #A8 ; compare to 21*8 JR NC,L34E7 ; to REPORT-A if originally higher ; than 'U','u' or graphics U. - LD BC,($5C7B) ; fetch the UDG system variable value. + LD BC,(#5C7B) ; fetch the UDG system variable value. ADD A,C ; add the offset to character LD C,A ; and store back in register C. JR NC,L34E4 ; forward to USR-STACK if no overflow. @@ -16671,7 +16671,7 @@ L34E4: JP L2D2B ; jump back and exit via STACK-BC to store ;; REPORT-A L34E7: RST 08H ; ERROR-1 - DEFB $09 ; Error Report: Invalid argument + DEFB #09 ; Error Report: Invalid argument ; ------------- ; Test for zero @@ -16704,7 +16704,7 @@ L34E9: PUSH HL ; preserve HL which is used to address. RET ; return with carry set if zero. ; ----------------------- -; Greater than zero ($37) +; Greater than zero (#37) ; ----------------------- ; Test if the last value on the calculator stack is greater than zero. ; This routine is also called directly from the end-tests of the comparison @@ -16716,7 +16716,7 @@ L34F9: CALL L34E9 ; routine TEST-ZERO RET C ; return if was zero as this ; is also the Boolean 'false' value. - LD A,$FF ; prepare XOR mask for sign bit + LD A,#FF ; prepare XOR mask for sign bit JR L3507 ; forward to SIGN-TO-C ; to put sign in carry ; (carry will become set if sign is positive) @@ -16724,7 +16724,7 @@ L34F9: CALL L34E9 ; routine TEST-ZERO ; as appropriate. ; ------------------------ -; Handle NOT operator ($30) +; Handle NOT operator (#30) ; ------------------------ ; This overwrites the last value with 1 if it was zero else with zero ; if it was any other value. @@ -16768,7 +16768,7 @@ L3507: INC HL ; address 2nd byte. ;; FP-0/1 L350B: PUSH HL ; save pointer to the first byte - LD A,$00 ; load accumulator with zero - without + LD A,#00 ; load accumulator with zero - without ; disturbing flags. LD (HL),A ; zero to first byte INC HL ; address next @@ -16865,7 +16865,7 @@ L352D: EX DE,HL ; make HL point to the number. RET ; return. ; ----------------------------------- -; Perform comparison ($09-$0E, $11-$16) +; Perform comparison (#09-#0E, #11-#16) ; ----------------------------------- ; True binary operations. ; @@ -16921,13 +16921,13 @@ L352D: EX DE,HL ; make HL point to the number. ;; no-l-eql, etc. L353B: LD A,B ; transfer literal to accumulator. - SUB $08 ; subtract eight - which is not useful. + SUB #08 ; subtract eight - which is not useful. BIT 2,A ; isolate '>', '<', '='. JR NZ,L3543 ; skip to EX-OR-NOT with these. - DEC A ; else make $00-$02, $08-$0A to match bits 0-2. + DEC A ; else make #00-#02, #08-#0A to match bits 0-2. ;; EX-OR-NOT L3543: RRCA ; the first RRCA sets carry for a swap. @@ -17055,8 +17055,8 @@ L3585: POP BC ; discard length L3588: PUSH AF ; save A and carry RST 28H ;; FP-CALC - DEFB $A0 ;;stk-zero an initial false value. - DEFB $38 ;;end-calc + DEFB #A0 ;;stk-zero an initial false value. + DEFB #38 ;;end-calc ; both numeric and string paths converge here. @@ -17080,7 +17080,7 @@ L358C: POP AF ; pop carry - will be set if eql/neql RET ; return. ; ------------------------- -; String concatenation ($17) +; String concatenation (#17) ; ------------------------- ; This literal combines two strings into one e.g. LET a$ = b$ + c$ ; The two parameters of the two strings to be combined are on the stack. @@ -17138,8 +17138,8 @@ L35B7: POP BC ; now second length ; the CALCULATE routine. ;; STK-PNTRS -L35BF: LD HL,($5C65) ; fetch STKEND value from system variable. - LD DE,$FFFB ; the value -5 +L35BF: LD HL,(#5C65) ; fetch STKEND value from system variable. + LD DE,#FFFB ; the value -5 PUSH HL ; push STKEND value. ADD HL,DE ; subtract 5 from HL. @@ -17161,7 +17161,7 @@ L35C9: CALL L2DD5 ; routine FP-TO-A puts the number in A. PUSH AF ; save the argument. - LD BC,$0001 ; one space required. + LD BC,#0001 ; one space required. RST 30H ; BC-SPACES makes DE point to start POP AF ; restore the number. @@ -17177,10 +17177,10 @@ L35C9: CALL L2DD5 ; routine FP-TO-A puts the number in A. ;; REPORT-Bd L35DC: RST 08H ; ERROR-1 - DEFB $0A ; Error Report: Integer out of range + DEFB #0A ; Error Report: Integer out of range ; ---------------------------- -; Handle VAL and VAL$ ($1D, $18) +; Handle VAL and VAL$ (#1D, #18) ; ---------------------------- ; VAL treats the characters in a string as a numeric expression. ; e.g. VAL "2.3" = 2.3, VAL "2+4" = 6, VAL ("2" + "4") = 24. @@ -17189,12 +17189,12 @@ L35DC: RST 08H ; ERROR-1 ;; val ;; val$ -L35DE: LD HL,($5C5D) ; fetch value of system variable CH_ADD +L35DE: LD HL,(#5C5D) ; fetch value of system variable CH_ADD PUSH HL ; and save on the machine stack. - LD A,B ; fetch the literal (either $1D or $18). - ADD A,$E3 ; add $E3 to form $00 (setting carry) or $FB. - SBC A,A ; now form $FF bit 6 = numeric result - ; or $00 bit 6 = string result. + LD A,B ; fetch the literal (either #1D or #18). + ADD A,#E3 ; add #E3 to form #00 (setting carry) or #FB. + SBC A,A ; now form #FF bit 6 = numeric result + ; or #00 bit 6 = string result. PUSH AF ; save this mask on the stack CALL L2BF1 ; routine STK-FETCH fetches the string operand @@ -17205,39 +17205,39 @@ L35DE: LD HL,($5C5D) ; fetch value of system variable CH_ADD RST 30H ; BC-SPACES creates the space in workspace. POP HL ; restore start of string to HL. - LD ($5C5D),DE ; load CH_ADD with start DE in workspace. + LD (#5C5D),DE ; load CH_ADD with start DE in workspace. PUSH DE ; save the start in workspace LDIR ; copy string from program or variables or ; workspace to the workspace area. EX DE,HL ; end of string + 1 to HL DEC HL ; decrement HL to point to end of new area. - LD (HL),$0D ; insert a carriage return at end. - RES 7,(IY+$01) ; update FLAGS - signal checking syntax. + LD (HL),#0D ; insert a carriage return at end. + RES 7,(IY+#01) ; update FLAGS - signal checking syntax. CALL L24FB ; routine SCANNING evaluates string ; expression and result. RST 18H ; GET-CHAR fetches next character. - CP $0D ; is it the expected carriage return ? + CP #0D ; is it the expected carriage return ? JR NZ,L360C ; forward to V-RPORT-C if not ; 'Nonsense in BASIC'. POP HL ; restore start of string in workspace. POP AF ; restore expected result flag (bit 6). - XOR (IY+$01) ; xor with FLAGS now updated by SCANNING. - AND $40 ; test bit 6 - should be zero if result types + XOR (IY+#01) ; xor with FLAGS now updated by SCANNING. + AND #40 ; test bit 6 - should be zero if result types ; match. ;; V-RPORT-C L360C: JP NZ,L1C8A ; jump back to REPORT-C with a result mismatch. - LD ($5C5D),HL ; set CH_ADD to the start of the string again. - SET 7,(IY+$01) ; update FLAGS - signal running program. + LD (#5C5D),HL ; set CH_ADD to the start of the string again. + SET 7,(IY+#01) ; update FLAGS - signal running program. CALL L24FB ; routine SCANNING evaluates the string ; in full leaving result on calculator stack. POP HL ; restore saved character address in program. - LD ($5C5D),HL ; and reset the system variable CH_ADD. + LD (#5C5D),HL ; and reset the system variable CH_ADD. JR L35BF ; back to exit via STK-PNTRS. ; resetting the calculator stack pointers @@ -17251,16 +17251,16 @@ L360C: JP NZ,L1C8A ; jump back to REPORT-C with a result mismatch. ; ;; str$ -L361F: LD BC,$0001 ; create an initial byte in workspace +L361F: LD BC,#0001 ; create an initial byte in workspace RST 30H ; using BC-SPACES restart. - LD ($5C5B),HL ; set system variable K_CUR to new location. + LD (#5C5B),HL ; set system variable K_CUR to new location. PUSH HL ; and save start on machine stack also. - LD HL,($5C51) ; fetch value of system variable CURCHL + LD HL,(#5C51) ; fetch value of system variable CURCHL PUSH HL ; and save that too. - LD A,$FF ; select system channel 'R'. + LD A,#FF ; select system channel 'R'. CALL L1601 ; routine CHAN-OPEN opens it. CALL L2DE3 ; routine PRINT-FP outputs the number to ; workspace updating K-CUR. @@ -17269,7 +17269,7 @@ L361F: LD BC,$0001 ; create an initial byte in workspace CALL L1615 ; routine CHAN-FLAG resets flags. POP DE ; fetch saved start of string to DE. - LD HL,($5C5B) ; load HL with end of string from K_CUR. + LD HL,(#5C5B) ; load HL with end of string from K_CUR. AND A ; prepare for true subtraction. SBC HL,DE ; subtract start from end to give length. @@ -17292,19 +17292,19 @@ L361F: LD BC,$0001 ; create an initial byte in workspace ;; read-in L3645: CALL L1E94 ; routine FIND-INT1 fetches stream to A - CP $10 ; compare with 16 decimal. + CP #10 ; compare with 16 decimal. JP NC,L1E9F ; jump to REPORT-Bb if not in range 0 - 15. ; 'Integer out of range' ; (REPORT-Bd is within range) - LD HL,($5C51) ; fetch current channel CURCHL + LD HL,(#5C51) ; fetch current channel CURCHL PUSH HL ; save it CALL L1601 ; routine CHAN-OPEN opens channel CALL L15E6 ; routine INPUT-AD - the channel must have an ; input stream or else error here from stream ; stub. - LD BC,$0000 ; initialize length of string to zero + LD BC,#0000 ; initialize length of string to zero JR NC,L365F ; forward to R-I-STORE if no key detected. INC C ; increase length to one. @@ -17366,7 +17366,7 @@ L3674: CALL L2BF1 ; routine STK-FETCH to fetch and delete the L367A: EXX ; switch in set that addresses code PUSH HL ; save pointer to offset byte - LD HL,$5C67 ; address BREG in system variables + LD HL,#5C67 ; address BREG in system variables DEC (HL) ; decrement it POP HL ; restore pointer @@ -17378,7 +17378,7 @@ L367A: EXX ; switch in set that addresses code ; Note. as a general rule the calculator avoids using the IY register ; otherwise the cumbersome 4 instructions in the middle could be replaced by -; dec (iy+$2d) - three bytes instead of six. +; dec (iy+#2d) - three bytes instead of six. ; --------- @@ -17395,7 +17395,7 @@ L3686: EXX ;switch in pointer set L3687: LD E,(HL) ; the jump byte 0-127 forward, 128-255 back. LD A,E ; transfer to accumulator. RLA ; if backward jump, carry is set. - SBC A,A ; will be $FF if backward or $00 if forward. + SBC A,A ; will be #FF if backward or #00 if forward. LD D,A ; transfer to high byte. ADD HL,DE ; advance calculator pointer forward or back. EXX ; switch back. @@ -17444,25 +17444,25 @@ L369B: POP AF ; drop the calculator return address RE-ENTRY ; ------------------------ ; THE 'MODULUS' SUBROUTINE ; ------------------------ -; (offset: $32 'n-mod-m') +; (offset: #32 'n-mod-m') ; ; ;; n-mod-m L36A0: RST 28H ;; FP-CALC 17, 3. - DEFB $C0 ;;st-mem-0 17, 3. - DEFB $02 ;;delete 17. - DEFB $31 ;;duplicate 17, 17. - DEFB $E0 ;;get-mem-0 17, 17, 3. - DEFB $05 ;;division 17, 17/3. - DEFB $27 ;;int 17, 5. - DEFB $E0 ;;get-mem-0 17, 5, 3. - DEFB $01 ;;exchange 17, 3, 5. - DEFB $C0 ;;st-mem-0 17, 3, 5. - DEFB $04 ;;multiply 17, 15. - DEFB $03 ;;subtract 2. - DEFB $E0 ;;get-mem-0 2, 5. - DEFB $38 ;;end-calc 2, 5. + DEFB #C0 ;;st-mem-0 17, 3. + DEFB #02 ;;delete 17. + DEFB #31 ;;duplicate 17, 17. + DEFB #E0 ;;get-mem-0 17, 17, 3. + DEFB #05 ;;division 17, 17/3. + DEFB #27 ;;int 17, 5. + DEFB #E0 ;;get-mem-0 17, 5, 3. + DEFB #01 ;;exchange 17, 3, 5. + DEFB #C0 ;;st-mem-0 17, 3, 5. + DEFB #04 ;;multiply 17, 15. + DEFB #03 ;;subtract 2. + DEFB #E0 ;;get-mem-0 2, 5. + DEFB #38 ;;end-calc 2, 5. RET ; return. @@ -17470,7 +17470,7 @@ L36A0: RST 28H ;; FP-CALC 17, 3. ; ------------------ ; THE 'INT' FUNCTION ; ------------------ -; (offset $27: 'int' ) +; (offset #27: 'int' ) ; ; This function returns the integer of x, which is just the same as truncate ; for positive numbers. The truncate literal truncates negative numbers @@ -17480,13 +17480,13 @@ L36A0: RST 28H ;; FP-CALC 17, 3. ;; int L36AF: RST 28H ;; FP-CALC x. (= 3.4 or -3.4). - DEFB $31 ;;duplicate x, x. - DEFB $36 ;;less-0 x, (1/0) - DEFB $00 ;;jump-true x, (1/0) - DEFB $04 ;;to L36B7, X-NEG + DEFB #31 ;;duplicate x, x. + DEFB #36 ;;less-0 x, (1/0) + DEFB #00 ;;jump-true x, (1/0) + DEFB #04 ;;to L36B7, X-NEG - DEFB $3A ;;truncate trunc 3.4 = 3. - DEFB $38 ;;end-calc 3. + DEFB #3A ;;truncate trunc 3.4 = 3. + DEFB #38 ;;end-calc 3. RET ; return with + int x on stack. @@ -17494,21 +17494,21 @@ L36AF: RST 28H ;; FP-CALC x. (= 3.4 or -3.4). ;; X-NEG -L36B7: DEFB $31 ;;duplicate -3.4, -3.4. - DEFB $3A ;;truncate -3.4, -3. - DEFB $C0 ;;st-mem-0 -3.4, -3. - DEFB $03 ;;subtract -.4 - DEFB $E0 ;;get-mem-0 -.4, -3. - DEFB $01 ;;exchange -3, -.4. - DEFB $30 ;;not -3, (0). - DEFB $00 ;;jump-true -3. - DEFB $03 ;;to L36C2, EXIT -3. +L36B7: DEFB #31 ;;duplicate -3.4, -3.4. + DEFB #3A ;;truncate -3.4, -3. + DEFB #C0 ;;st-mem-0 -3.4, -3. + DEFB #03 ;;subtract -.4 + DEFB #E0 ;;get-mem-0 -.4, -3. + DEFB #01 ;;exchange -3, -.4. + DEFB #30 ;;not -3, (0). + DEFB #00 ;;jump-true -3. + DEFB #03 ;;to L36C2, EXIT -3. - DEFB $A1 ;;stk-one -3, 1. - DEFB $03 ;;subtract -4. + DEFB #A1 ;;stk-one -3, 1. + DEFB #03 ;;subtract -4. ;; EXIT -L36C2: DEFB $38 ;;end-calc -4. +L36C2: DEFB #38 ;;end-calc -4. RET ; return. @@ -17522,38 +17522,38 @@ L36C2: DEFB $38 ;;end-calc -4. ;; EXP ;; exp L36C4: RST 28H ;; FP-CALC - DEFB $3D ;;re-stack - DEFB $34 ;;stk-data - DEFB $F1 ;;Exponent: $81, Bytes: 4 - DEFB $38,$AA,$3B,$29 ;; - DEFB $04 ;;multiply - DEFB $31 ;;duplicate - DEFB $27 ;;int - DEFB $C3 ;;st-mem-3 - DEFB $03 ;;subtract - DEFB $31 ;;duplicate - DEFB $0F ;;addition - DEFB $A1 ;;stk-one - DEFB $03 ;;subtract - DEFB $88 ;;series-08 - DEFB $13 ;;Exponent: $63, Bytes: 1 - DEFB $36 ;;(+00,+00,+00) - DEFB $58 ;;Exponent: $68, Bytes: 2 - DEFB $65,$66 ;;(+00,+00) - DEFB $9D ;;Exponent: $6D, Bytes: 3 - DEFB $78,$65,$40 ;;(+00) - DEFB $A2 ;;Exponent: $72, Bytes: 3 - DEFB $60,$32,$C9 ;;(+00) - DEFB $E7 ;;Exponent: $77, Bytes: 4 - DEFB $21,$F7,$AF,$24 ;; - DEFB $EB ;;Exponent: $7B, Bytes: 4 - DEFB $2F,$B0,$B0,$14 ;; - DEFB $EE ;;Exponent: $7E, Bytes: 4 - DEFB $7E,$BB,$94,$58 ;; - DEFB $F1 ;;Exponent: $81, Bytes: 4 - DEFB $3A,$7E,$F8,$CF ;; - DEFB $E3 ;;get-mem-3 - DEFB $38 ;;end-calc + DEFB #3D ;;re-stack + DEFB #34 ;;stk-data + DEFB #F1 ;;Exponent: #81, Bytes: 4 + DEFB #38,#AA,#3B,#29 ;; + DEFB #04 ;;multiply + DEFB #31 ;;duplicate + DEFB #27 ;;int + DEFB #C3 ;;st-mem-3 + DEFB #03 ;;subtract + DEFB #31 ;;duplicate + DEFB #0F ;;addition + DEFB #A1 ;;stk-one + DEFB #03 ;;subtract + DEFB #88 ;;series-08 + DEFB #13 ;;Exponent: #63, Bytes: 1 + DEFB #36 ;;(+00,+00,+00) + DEFB #58 ;;Exponent: #68, Bytes: 2 + DEFB #65,#66 ;;(+00,+00) + DEFB #9D ;;Exponent: #6D, Bytes: 3 + DEFB #78,#65,#40 ;;(+00) + DEFB #A2 ;;Exponent: #72, Bytes: 3 + DEFB #60,#32,#C9 ;;(+00) + DEFB #E7 ;;Exponent: #77, Bytes: 4 + DEFB #21,#F7,#AF,#24 ;; + DEFB #EB ;;Exponent: #7B, Bytes: 4 + DEFB #2F,#B0,#B0,#14 ;; + DEFB #EE ;;Exponent: #7E, Bytes: 4 + DEFB #7E,#BB,#94,#58 ;; + DEFB #F1 ;;Exponent: #81, Bytes: 4 + DEFB #3A,#7E,#F8,#CF ;; + DEFB #E3 ;;get-mem-3 + DEFB #38 ;;end-calc CALL L2DD5 ; routine FP-TO-A JR NZ,L3705 ; to N-NEGTV @@ -17566,7 +17566,7 @@ L36C4: RST 28H ;; FP-CALC ;; REPORT-6b L3703: RST 08H ; ERROR-1 - DEFB $05 ; Error Report: Number too big + DEFB #05 ; Error Report: Number too big ;; N-NEGTV L3705: JR C,L370E ; to RSLT-ZERO @@ -17585,9 +17585,9 @@ L370C: LD (HL),A ; ;; RSLT-ZERO L370E: RST 28H ;; FP-CALC - DEFB $02 ;;delete - DEFB $A0 ;;stk-zero - DEFB $38 ;;end-calc + DEFB #02 ;;delete + DEFB #A0 ;;stk-zero + DEFB #38 ;;end-calc RET ; return. @@ -17600,99 +17600,99 @@ L370E: RST 28H ;; FP-CALC ;; ln L3713: RST 28H ;; FP-CALC - DEFB $3D ;;re-stack - DEFB $31 ;;duplicate - DEFB $37 ;;greater-0 - DEFB $00 ;;jump-true - DEFB $04 ;;to L371C, VALID + DEFB #3D ;;re-stack + DEFB #31 ;;duplicate + DEFB #37 ;;greater-0 + DEFB #00 ;;jump-true + DEFB #04 ;;to L371C, VALID - DEFB $38 ;;end-calc + DEFB #38 ;;end-calc ;; REPORT-Ab L371A: RST 08H ; ERROR-1 - DEFB $09 ; Error Report: Invalid argument + DEFB #09 ; Error Report: Invalid argument ;; VALID -L371C: DEFB $A0 ;;stk-zero - DEFB $02 ;;delete - DEFB $38 ;;end-calc +L371C: DEFB #A0 ;;stk-zero + DEFB #02 ;;delete + DEFB #38 ;;end-calc LD A,(HL) ; - LD (HL),$80 ; + LD (HL),#80 ; CALL L2D28 ; routine STACK-A RST 28H ;; FP-CALC - DEFB $34 ;;stk-data - DEFB $38 ;;Exponent: $88, Bytes: 1 - DEFB $00 ;;(+00,+00,+00) - DEFB $03 ;;subtract - DEFB $01 ;;exchange - DEFB $31 ;;duplicate - DEFB $34 ;;stk-data - DEFB $F0 ;;Exponent: $80, Bytes: 4 - DEFB $4C,$CC,$CC,$CD ;; - DEFB $03 ;;subtract - DEFB $37 ;;greater-0 - DEFB $00 ;;jump-true - DEFB $08 ;;to L373D, GRE.8 + DEFB #34 ;;stk-data + DEFB #38 ;;Exponent: #88, Bytes: 1 + DEFB #00 ;;(+00,+00,+00) + DEFB #03 ;;subtract + DEFB #01 ;;exchange + DEFB #31 ;;duplicate + DEFB #34 ;;stk-data + DEFB #F0 ;;Exponent: #80, Bytes: 4 + DEFB #4C,#CC,#CC,#CD ;; + DEFB #03 ;;subtract + DEFB #37 ;;greater-0 + DEFB #00 ;;jump-true + DEFB #08 ;;to L373D, GRE.8 - DEFB $01 ;;exchange - DEFB $A1 ;;stk-one - DEFB $03 ;;subtract - DEFB $01 ;;exchange - DEFB $38 ;;end-calc + DEFB #01 ;;exchange + DEFB #A1 ;;stk-one + DEFB #03 ;;subtract + DEFB #01 ;;exchange + DEFB #38 ;;end-calc INC (HL) ; RST 28H ;; FP-CALC ;; GRE.8 -L373D: DEFB $01 ;;exchange - DEFB $34 ;;stk-data - DEFB $F0 ;;Exponent: $80, Bytes: 4 - DEFB $31,$72,$17,$F8 ;; - DEFB $04 ;;multiply - DEFB $01 ;;exchange - DEFB $A2 ;;stk-half - DEFB $03 ;;subtract - DEFB $A2 ;;stk-half - DEFB $03 ;;subtract - DEFB $31 ;;duplicate - DEFB $34 ;;stk-data - DEFB $32 ;;Exponent: $82, Bytes: 1 - DEFB $20 ;;(+00,+00,+00) - DEFB $04 ;;multiply - DEFB $A2 ;;stk-half - DEFB $03 ;;subtract - DEFB $8C ;;series-0C - DEFB $11 ;;Exponent: $61, Bytes: 1 - DEFB $AC ;;(+00,+00,+00) - DEFB $14 ;;Exponent: $64, Bytes: 1 - DEFB $09 ;;(+00,+00,+00) - DEFB $56 ;;Exponent: $66, Bytes: 2 - DEFB $DA,$A5 ;;(+00,+00) - DEFB $59 ;;Exponent: $69, Bytes: 2 - DEFB $30,$C5 ;;(+00,+00) - DEFB $5C ;;Exponent: $6C, Bytes: 2 - DEFB $90,$AA ;;(+00,+00) - DEFB $9E ;;Exponent: $6E, Bytes: 3 - DEFB $70,$6F,$61 ;;(+00) - DEFB $A1 ;;Exponent: $71, Bytes: 3 - DEFB $CB,$DA,$96 ;;(+00) - DEFB $A4 ;;Exponent: $74, Bytes: 3 - DEFB $31,$9F,$B4 ;;(+00) - DEFB $E7 ;;Exponent: $77, Bytes: 4 - DEFB $A0,$FE,$5C,$FC ;; - DEFB $EA ;;Exponent: $7A, Bytes: 4 - DEFB $1B,$43,$CA,$36 ;; - DEFB $ED ;;Exponent: $7D, Bytes: 4 - DEFB $A7,$9C,$7E,$5E ;; - DEFB $F0 ;;Exponent: $80, Bytes: 4 - DEFB $6E,$23,$80,$93 ;; - DEFB $04 ;;multiply - DEFB $0F ;;addition - DEFB $38 ;;end-calc +L373D: DEFB #01 ;;exchange + DEFB #34 ;;stk-data + DEFB #F0 ;;Exponent: #80, Bytes: 4 + DEFB #31,#72,#17,#F8 ;; + DEFB #04 ;;multiply + DEFB #01 ;;exchange + DEFB #A2 ;;stk-half + DEFB #03 ;;subtract + DEFB #A2 ;;stk-half + DEFB #03 ;;subtract + DEFB #31 ;;duplicate + DEFB #34 ;;stk-data + DEFB #32 ;;Exponent: #82, Bytes: 1 + DEFB #20 ;;(+00,+00,+00) + DEFB #04 ;;multiply + DEFB #A2 ;;stk-half + DEFB #03 ;;subtract + DEFB #8C ;;series-0C + DEFB #11 ;;Exponent: #61, Bytes: 1 + DEFB #AC ;;(+00,+00,+00) + DEFB #14 ;;Exponent: #64, Bytes: 1 + DEFB #09 ;;(+00,+00,+00) + DEFB #56 ;;Exponent: #66, Bytes: 2 + DEFB #DA,#A5 ;;(+00,+00) + DEFB #59 ;;Exponent: #69, Bytes: 2 + DEFB #30,#C5 ;;(+00,+00) + DEFB #5C ;;Exponent: #6C, Bytes: 2 + DEFB #90,#AA ;;(+00,+00) + DEFB #9E ;;Exponent: #6E, Bytes: 3 + DEFB #70,#6F,#61 ;;(+00) + DEFB #A1 ;;Exponent: #71, Bytes: 3 + DEFB #CB,#DA,#96 ;;(+00) + DEFB #A4 ;;Exponent: #74, Bytes: 3 + DEFB #31,#9F,#B4 ;;(+00) + DEFB #E7 ;;Exponent: #77, Bytes: 4 + DEFB #A0,#FE,#5C,#FC ;; + DEFB #EA ;;Exponent: #7A, Bytes: 4 + DEFB #1B,#43,#CA,#36 ;; + DEFB #ED ;;Exponent: #7D, Bytes: 4 + DEFB #A7,#9C,#7E,#5E ;; + DEFB #F0 ;;Exponent: #80, Bytes: 4 + DEFB #6E,#23,#80,#93 ;; + DEFB #04 ;;multiply + DEFB #0F ;;addition + DEFB #38 ;;end-calc RET ; return. @@ -17720,7 +17720,7 @@ L373D: DEFB $01 ;;exchange ;--------------------------------- ; THE 'REDUCE ARGUMENT' SUBROUTINE ;--------------------------------- -; (offset $39: 'get-argt') +; (offset #39: 'get-argt') ; ; This routine performs two functions on the angle, in radians, that forms ; the argument to the sine and cosine functions. @@ -17755,45 +17755,45 @@ L373D: DEFB $01 ;;exchange ;; get-argt L3783: RST 28H ;; FP-CALC X. - DEFB $3D ;;re-stack - DEFB $34 ;;stk-data - DEFB $EE ;;Exponent: $7E, + DEFB #3D ;;re-stack + DEFB #34 ;;stk-data + DEFB #EE ;;Exponent: #7E, ;;Bytes: 4 - DEFB $22,$F9,$83,$6E ;; X, 1/(2*PI) - DEFB $04 ;;multiply X/(2*PI) = fraction - DEFB $31 ;;duplicate - DEFB $A2 ;;stk-half - DEFB $0F ;;addition - DEFB $27 ;;int + DEFB #22,#F9,#83,#6E ;; X, 1/(2*PI) + DEFB #04 ;;multiply X/(2*PI) = fraction + DEFB #31 ;;duplicate + DEFB #A2 ;;stk-half + DEFB #0F ;;addition + DEFB #27 ;;int - DEFB $03 ;;subtract now range -.5 to .5 + DEFB #03 ;;subtract now range -.5 to .5 - DEFB $31 ;;duplicate - DEFB $0F ;;addition now range -1 to 1. - DEFB $31 ;;duplicate - DEFB $0F ;;addition now range -2 to +2. + DEFB #31 ;;duplicate + DEFB #0F ;;addition now range -1 to 1. + DEFB #31 ;;duplicate + DEFB #0F ;;addition now range -2 to +2. ; quadrant I (0 to +1) and quadrant IV (-1 to 0) are now correct. ; quadrant II ranges +1 to +2. ; quadrant III ranges -2 to -1. - DEFB $31 ;;duplicate Y, Y. - DEFB $2A ;;abs Y, abs(Y). range 1 to 2 - DEFB $A1 ;;stk-one Y, abs(Y), 1. - DEFB $03 ;;subtract Y, abs(Y)-1. range 0 to 1 - DEFB $31 ;;duplicate Y, Z, Z. - DEFB $37 ;;greater-0 Y, Z, (1/0). + DEFB #31 ;;duplicate Y, Y. + DEFB #2A ;;abs Y, abs(Y). range 1 to 2 + DEFB #A1 ;;stk-one Y, abs(Y), 1. + DEFB #03 ;;subtract Y, abs(Y)-1. range 0 to 1 + DEFB #31 ;;duplicate Y, Z, Z. + DEFB #37 ;;greater-0 Y, Z, (1/0). - DEFB $C0 ;;st-mem-0 store as possible sign + DEFB #C0 ;;st-mem-0 store as possible sign ;; for cosine function. - DEFB $00 ;;jump-true - DEFB $04 ;;to L37A1, ZPLUS with quadrants II and III. + DEFB #00 ;;jump-true + DEFB #04 ;;to L37A1, ZPLUS with quadrants II and III. ; else the angle lies in quadrant I or IV and value Y is already correct. - DEFB $02 ;;delete Y. delete the test value. - DEFB $38 ;;end-calc Y. + DEFB #02 ;;delete Y. delete the test value. + DEFB #38 ;;end-calc Y. RET ; return. with Q1 and Q4 >>> @@ -17803,20 +17803,20 @@ L3783: RST 28H ;; FP-CALC X. ; Y will hold -2 to -1 if this is quadrant III. ;; ZPLUS -L37A1: DEFB $A1 ;;stk-one Y, Z, 1. - DEFB $03 ;;subtract Y, Z-1. Q3 = 0 to -1 - DEFB $01 ;;exchange Z-1, Y. - DEFB $36 ;;less-0 Z-1, (1/0). - DEFB $00 ;;jump-true Z-1. - DEFB $02 ;;to L37A8, YNEG +L37A1: DEFB #A1 ;;stk-one Y, Z, 1. + DEFB #03 ;;subtract Y, Z-1. Q3 = 0 to -1 + DEFB #01 ;;exchange Z-1, Y. + DEFB #36 ;;less-0 Z-1, (1/0). + DEFB #00 ;;jump-true Z-1. + DEFB #02 ;;to L37A8, YNEG ;;if angle in quadrant III ; else angle is within quadrant II (-1 to 0) - DEFB $1B ;;negate range +1 to 0. + DEFB #1B ;;negate range +1 to 0. ;; YNEG -L37A8: DEFB $38 ;;end-calc quadrants II and III correct. +L37A8: DEFB #38 ;;end-calc quadrants II and III correct. RET ; return. @@ -17824,7 +17824,7 @@ L37A8: DEFB $38 ;;end-calc quadrants II and III correct. ;---------------------- ; THE 'COSINE' FUNCTION ;---------------------- -; (offset $20: 'cos') +; (offset #20: 'cos') ; Cosines are calculated as the sine of the opposite angle rectifying the ; sign depending on the quadrant rules. ; @@ -17850,27 +17850,27 @@ L37A8: DEFB $38 ;;end-calc quadrants II and III correct. ;; cos L37AA: RST 28H ;; FP-CALC angle in radians. - DEFB $39 ;;get-argt X reduce -1 to +1 + DEFB #39 ;;get-argt X reduce -1 to +1 - DEFB $2A ;;abs ABS X. 0 to 1 - DEFB $A1 ;;stk-one ABS X, 1. - DEFB $03 ;;subtract now opposite angle + DEFB #2A ;;abs ABS X. 0 to 1 + DEFB #A1 ;;stk-one ABS X, 1. + DEFB #03 ;;subtract now opposite angle ;; although sign is -ve. - DEFB $E0 ;;get-mem-0 fetch the sign indicator - DEFB $00 ;;jump-true - DEFB $06 ;;fwd to L37B7, C-ENT + DEFB #E0 ;;get-mem-0 fetch the sign indicator + DEFB #00 ;;jump-true + DEFB #06 ;;fwd to L37B7, C-ENT ;;forward to common code if in QII or QIII. - DEFB $1B ;;negate else make sign +ve. - DEFB $33 ;;jump - DEFB $03 ;;fwd to L37B7, C-ENT + DEFB #1B ;;negate else make sign +ve. + DEFB #33 ;;jump + DEFB #03 ;;fwd to L37B7, C-ENT ;; with quadrants I and IV. ;-------------------- ; THE 'SINE' FUNCTION ;-------------------- -; (offset $1F: 'sin') +; (offset #1F: 'sin') ; This is a fundamental transcendental function from which others such as cos ; and tan are directly, or indirectly, derived. ; It uses the series generator to produce Chebyshev polynomials. @@ -17889,39 +17889,39 @@ L37AA: RST 28H ;; FP-CALC angle in radians. ;; sin L37B5: RST 28H ;; FP-CALC angle in radians - DEFB $39 ;;get-argt reduce - sign now correct. + DEFB #39 ;;get-argt reduce - sign now correct. ;; C-ENT -L37B7: DEFB $31 ;;duplicate - DEFB $31 ;;duplicate - DEFB $04 ;;multiply - DEFB $31 ;;duplicate - DEFB $0F ;;addition - DEFB $A1 ;;stk-one - DEFB $03 ;;subtract +L37B7: DEFB #31 ;;duplicate + DEFB #31 ;;duplicate + DEFB #04 ;;multiply + DEFB #31 ;;duplicate + DEFB #0F ;;addition + DEFB #A1 ;;stk-one + DEFB #03 ;;subtract - DEFB $86 ;;series-06 - DEFB $14 ;;Exponent: $64, Bytes: 1 - DEFB $E6 ;;(+00,+00,+00) - DEFB $5C ;;Exponent: $6C, Bytes: 2 - DEFB $1F,$0B ;;(+00,+00) - DEFB $A3 ;;Exponent: $73, Bytes: 3 - DEFB $8F,$38,$EE ;;(+00) - DEFB $E9 ;;Exponent: $79, Bytes: 4 - DEFB $15,$63,$BB,$23 ;; - DEFB $EE ;;Exponent: $7E, Bytes: 4 - DEFB $92,$0D,$CD,$ED ;; - DEFB $F1 ;;Exponent: $81, Bytes: 4 - DEFB $23,$5D,$1B,$EA ;; - DEFB $04 ;;multiply - DEFB $38 ;;end-calc + DEFB #86 ;;series-06 + DEFB #14 ;;Exponent: #64, Bytes: 1 + DEFB #E6 ;;(+00,+00,+00) + DEFB #5C ;;Exponent: #6C, Bytes: 2 + DEFB #1F,#0B ;;(+00,+00) + DEFB #A3 ;;Exponent: #73, Bytes: 3 + DEFB #8F,#38,#EE ;;(+00) + DEFB #E9 ;;Exponent: #79, Bytes: 4 + DEFB #15,#63,#BB,#23 ;; + DEFB #EE ;;Exponent: #7E, Bytes: 4 + DEFB #92,#0D,#CD,#ED ;; + DEFB #F1 ;;Exponent: #81, Bytes: 4 + DEFB #23,#5D,#1B,#EA ;; + DEFB #04 ;;multiply + DEFB #38 ;;end-calc RET ; return. ;----------------------- ; THE 'TANGENT' FUNCTION ;----------------------- -; (offset $21: 'tan') +; (offset #21: 'tan') ; ; Evaluates tangent x as sin(x) / cos(x). ; @@ -17944,19 +17944,19 @@ L37B7: DEFB $31 ;;duplicate ;; tan L37DA: RST 28H ;; FP-CALC x. - DEFB $31 ;;duplicate x, x. - DEFB $1F ;;sin x, sin x. - DEFB $01 ;;exchange sin x, x. - DEFB $20 ;;cos sin x, cos x. - DEFB $05 ;;division sin x/cos x (= tan x). - DEFB $38 ;;end-calc tan x. + DEFB #31 ;;duplicate x, x. + DEFB #1F ;;sin x, sin x. + DEFB #01 ;;exchange sin x, x. + DEFB #20 ;;cos sin x, cos x. + DEFB #05 ;;division sin x/cos x (= tan x). + DEFB #38 ;;end-calc tan x. RET ; return. ;---------------------- ; THE 'ARCTAN' FUNCTION ;---------------------- -; (Offset $24: 'atn') +; (Offset #24: 'atn') ; the inverse tangent function with the result in radians. ; This is a fundamental transcendental function from which others such as asn ; and acs are directly, or indirectly, derived. @@ -17965,66 +17965,66 @@ L37DA: RST 28H ;; FP-CALC x. ;; atn L37E2: CALL L3297 ; routine re-stack LD A,(HL) ; fetch exponent byte. - CP $81 ; compare to that for 'one' + CP #81 ; compare to that for 'one' JR C,L37F8 ; forward, if less, to SMALL RST 28H ;; FP-CALC - DEFB $A1 ;;stk-one - DEFB $1B ;;negate - DEFB $01 ;;exchange - DEFB $05 ;;division - DEFB $31 ;;duplicate - DEFB $36 ;;less-0 - DEFB $A3 ;;stk-pi/2 - DEFB $01 ;;exchange - DEFB $00 ;;jump-true - DEFB $06 ;;to L37FA, CASES + DEFB #A1 ;;stk-one + DEFB #1B ;;negate + DEFB #01 ;;exchange + DEFB #05 ;;division + DEFB #31 ;;duplicate + DEFB #36 ;;less-0 + DEFB #A3 ;;stk-pi/2 + DEFB #01 ;;exchange + DEFB #00 ;;jump-true + DEFB #06 ;;to L37FA, CASES - DEFB $1B ;;negate - DEFB $33 ;;jump - DEFB $03 ;;to L37FA, CASES + DEFB #1B ;;negate + DEFB #33 ;;jump + DEFB #03 ;;to L37FA, CASES ;; SMALL L37F8: RST 28H ;; FP-CALC - DEFB $A0 ;;stk-zero + DEFB #A0 ;;stk-zero ;; CASES -L37FA: DEFB $01 ;;exchange - DEFB $31 ;;duplicate - DEFB $31 ;;duplicate - DEFB $04 ;;multiply - DEFB $31 ;;duplicate - DEFB $0F ;;addition - DEFB $A1 ;;stk-one - DEFB $03 ;;subtract - DEFB $8C ;;series-0C - DEFB $10 ;;Exponent: $60, Bytes: 1 - DEFB $B2 ;;(+00,+00,+00) - DEFB $13 ;;Exponent: $63, Bytes: 1 - DEFB $0E ;;(+00,+00,+00) - DEFB $55 ;;Exponent: $65, Bytes: 2 - DEFB $E4,$8D ;;(+00,+00) - DEFB $58 ;;Exponent: $68, Bytes: 2 - DEFB $39,$BC ;;(+00,+00) - DEFB $5B ;;Exponent: $6B, Bytes: 2 - DEFB $98,$FD ;;(+00,+00) - DEFB $9E ;;Exponent: $6E, Bytes: 3 - DEFB $00,$36,$75 ;;(+00) - DEFB $A0 ;;Exponent: $70, Bytes: 3 - DEFB $DB,$E8,$B4 ;;(+00) - DEFB $63 ;;Exponent: $73, Bytes: 2 - DEFB $42,$C4 ;;(+00,+00) - DEFB $E6 ;;Exponent: $76, Bytes: 4 - DEFB $B5,$09,$36,$BE ;; - DEFB $E9 ;;Exponent: $79, Bytes: 4 - DEFB $36,$73,$1B,$5D ;; - DEFB $EC ;;Exponent: $7C, Bytes: 4 - DEFB $D8,$DE,$63,$BE ;; - DEFB $F0 ;;Exponent: $80, Bytes: 4 - DEFB $61,$A1,$B3,$0C ;; - DEFB $04 ;;multiply - DEFB $0F ;;addition - DEFB $38 ;;end-calc +L37FA: DEFB #01 ;;exchange + DEFB #31 ;;duplicate + DEFB #31 ;;duplicate + DEFB #04 ;;multiply + DEFB #31 ;;duplicate + DEFB #0F ;;addition + DEFB #A1 ;;stk-one + DEFB #03 ;;subtract + DEFB #8C ;;series-0C + DEFB #10 ;;Exponent: #60, Bytes: 1 + DEFB #B2 ;;(+00,+00,+00) + DEFB #13 ;;Exponent: #63, Bytes: 1 + DEFB #0E ;;(+00,+00,+00) + DEFB #55 ;;Exponent: #65, Bytes: 2 + DEFB #E4,#8D ;;(+00,+00) + DEFB #58 ;;Exponent: #68, Bytes: 2 + DEFB #39,#BC ;;(+00,+00) + DEFB #5B ;;Exponent: #6B, Bytes: 2 + DEFB #98,#FD ;;(+00,+00) + DEFB #9E ;;Exponent: #6E, Bytes: 3 + DEFB #00,#36,#75 ;;(+00) + DEFB #A0 ;;Exponent: #70, Bytes: 3 + DEFB #DB,#E8,#B4 ;;(+00) + DEFB #63 ;;Exponent: #73, Bytes: 2 + DEFB #42,#C4 ;;(+00,+00) + DEFB #E6 ;;Exponent: #76, Bytes: 4 + DEFB #B5,#09,#36,#BE ;; + DEFB #E9 ;;Exponent: #79, Bytes: 4 + DEFB #36,#73,#1B,#5D ;; + DEFB #EC ;;Exponent: #7C, Bytes: 4 + DEFB #D8,#DE,#63,#BE ;; + DEFB #F0 ;;Exponent: #80, Bytes: 4 + DEFB #61,#A1,#B3,#0C ;; + DEFB #04 ;;multiply + DEFB #0F ;;addition + DEFB #38 ;;end-calc RET ; return. @@ -18032,7 +18032,7 @@ L37FA: DEFB $01 ;;exchange ;---------------------- ; THE 'ARCSIN' FUNCTION ;---------------------- -; (Offset $22: 'asn') +; (Offset #22: 'asn') ; the inverse sine function with result in radians. ; derived from arctan function above. ; Error A unless the argument is between -1 and +1 inclusive. @@ -18067,20 +18067,20 @@ L37FA: DEFB $01 ;;exchange ;; asn L3833: RST 28H ;; FP-CALC x. - DEFB $31 ;;duplicate x, x. - DEFB $31 ;;duplicate x, x, x. - DEFB $04 ;;multiply x, x*x. - DEFB $A1 ;;stk-one x, x*x, 1. - DEFB $03 ;;subtract x, x*x-1. - DEFB $1B ;;negate x, 1-x*x. - DEFB $28 ;;sqr x, sqr(1-x*x) = y - DEFB $A1 ;;stk-one x, y, 1. - DEFB $0F ;;addition x, y+1. - DEFB $05 ;;division x/y+1. - DEFB $24 ;;atn a/2 (half the angle) - DEFB $31 ;;duplicate a/2, a/2. - DEFB $0F ;;addition a. - DEFB $38 ;;end-calc a. + DEFB #31 ;;duplicate x, x. + DEFB #31 ;;duplicate x, x, x. + DEFB #04 ;;multiply x, x*x. + DEFB #A1 ;;stk-one x, x*x, 1. + DEFB #03 ;;subtract x, x*x-1. + DEFB #1B ;;negate x, 1-x*x. + DEFB #28 ;;sqr x, sqr(1-x*x) = y + DEFB #A1 ;;stk-one x, y, 1. + DEFB #0F ;;addition x, y+1. + DEFB #05 ;;division x/y+1. + DEFB #24 ;;atn a/2 (half the angle) + DEFB #31 ;;duplicate a/2, a/2. + DEFB #0F ;;addition a. + DEFB #38 ;;end-calc a. RET ; return. @@ -18088,7 +18088,7 @@ L3833: RST 28H ;; FP-CALC x. ;------------------------- ; THE 'ARCCOS' FUNCTION ;------------------------- -; (Offset $23: 'acs') +; (Offset #23: 'acs') ; the inverse cosine function with the result in radians. ; Error A unless the argument is between -1 and +1. ; Result in range 0 to pi. @@ -18115,11 +18115,11 @@ L3833: RST 28H ;; FP-CALC x. ;; acs L3843: RST 28H ;; FP-CALC x. - DEFB $22 ;;asn asn(x). - DEFB $A3 ;;stk-pi/2 asn(x), pi/2. - DEFB $03 ;;subtract asn(x) - pi/2. - DEFB $1B ;;negate pi/2 -asn(x) = acs(x). - DEFB $38 ;;end-calc acs(x). + DEFB #22 ;;asn asn(x). + DEFB #A3 ;;stk-pi/2 asn(x), pi/2. + DEFB #03 ;;subtract asn(x) - pi/2. + DEFB #1B ;;negate pi/2 -asn(x) = acs(x). + DEFB #38 ;;end-calc acs(x). RET ; return. @@ -18127,7 +18127,7 @@ L3843: RST 28H ;; FP-CALC x. ; -------------------------- ; THE 'SQUARE ROOT' FUNCTION ; -------------------------- -; (Offset $28: 'sqr') +; (Offset #28: 'sqr') ; This routine is remarkable only in its brevity - 7 bytes. ; It wasn't written here but in the ZX81 where the programmers had to squeeze ; a bulky operating sytem into an 8K ROM. It simply calculates @@ -18137,19 +18137,19 @@ L3843: RST 28H ;; FP-CALC x. ;; sqr L384A: RST 28H ;; FP-CALC - DEFB $31 ;;duplicate - DEFB $30 ;;not - DEFB $00 ;;jump-true - DEFB $1E ;;to L386C, LAST + DEFB #31 ;;duplicate + DEFB #30 ;;not + DEFB #00 ;;jump-true + DEFB #1E ;;to L386C, LAST - DEFB $A2 ;;stk-half - DEFB $38 ;;end-calc + DEFB #A2 ;;stk-half + DEFB #38 ;;end-calc ; ------------------------------ ; THE 'EXPONENTIATION' OPERATION ; ------------------------------ -; (Offset $06: 'to-power') +; (Offset #06: 'to-power') ; This raises the first number X to the power of the second number Y. ; As with the ZX80, ; 0 ^ 0 = 1. @@ -18159,17 +18159,17 @@ L384A: RST 28H ;; FP-CALC ;; to-power L3851: RST 28H ;; FP-CALC X, Y. - DEFB $01 ;;exchange Y, X. - DEFB $31 ;;duplicate Y, X, X. - DEFB $30 ;;not Y, X, (1/0). - DEFB $00 ;;jump-true - DEFB $07 ;;to L385D, XISO if X is zero. + DEFB #01 ;;exchange Y, X. + DEFB #31 ;;duplicate Y, X, X. + DEFB #30 ;;not Y, X, (1/0). + DEFB #00 ;;jump-true + DEFB #07 ;;to L385D, XISO if X is zero. ; else X is non-zero. Function 'ln' will catch a negative value of X. - DEFB $25 ;;ln Y, LN X. - DEFB $04 ;;multiply Y * LN X. - DEFB $38 ;;end-calc + DEFB #25 ;;ln Y, LN X. + DEFB #04 ;;multiply Y * LN X. + DEFB #38 ;;end-calc JP L36C4 ; jump back to EXP routine -> @@ -18179,35 +18179,35 @@ L3851: RST 28H ;; FP-CALC X, Y. ; begin by deleting the known zero to leave Y the power factor. ;; XISO -L385D: DEFB $02 ;;delete Y. - DEFB $31 ;;duplicate Y, Y. - DEFB $30 ;;not Y, (1/0). - DEFB $00 ;;jump-true - DEFB $09 ;;to L386A, ONE if Y is zero. +L385D: DEFB #02 ;;delete Y. + DEFB #31 ;;duplicate Y, Y. + DEFB #30 ;;not Y, (1/0). + DEFB #00 ;;jump-true + DEFB #09 ;;to L386A, ONE if Y is zero. - DEFB $A0 ;;stk-zero Y, 0. - DEFB $01 ;;exchange 0, Y. - DEFB $37 ;;greater-0 0, (1/0). - DEFB $00 ;;jump-true 0. - DEFB $06 ;;to L386C, LAST if Y was any positive + DEFB #A0 ;;stk-zero Y, 0. + DEFB #01 ;;exchange 0, Y. + DEFB #37 ;;greater-0 0, (1/0). + DEFB #00 ;;jump-true 0. + DEFB #06 ;;to L386C, LAST if Y was any positive ;; number. ; else force division by zero thereby raising an Arithmetic overflow error. ; There are some one and two-byte alternatives but perhaps the most formal ; might have been to use end-calc; rst 08; defb 05. - DEFB $A1 ;;stk-one 0, 1. - DEFB $01 ;;exchange 1, 0. - DEFB $05 ;;division 1/0 ouch! + DEFB #A1 ;;stk-one 0, 1. + DEFB #01 ;;exchange 1, 0. + DEFB #05 ;;division 1/0 ouch! ; --- ;; ONE -L386A: DEFB $02 ;;delete . - DEFB $A1 ;;stk-one 1. +L386A: DEFB #02 ;;delete . + DEFB #A1 ;;stk-one 1. ;; LAST -L386C: DEFB $38 ;;end-calc last value is 1 or 0. +L386C: DEFB #38 ;;end-calc last value is 1 or 0. RET ; return. Whew! @@ -18228,7 +18228,7 @@ L386C: DEFB $38 ;;end-calc last value is 1 or 0. ;; KEYS L386E: PUSH IX - BIT 4,(IY+$01) ; [FLAGS] Test if in 128K mode + BIT 4,(IY+#01) ; [FLAGS] Test if in 128K mode JR Z,L3879 ; Z=in 48K mode CALL L3A42 ; Attempt to scan the keypad @@ -18245,17 +18245,17 @@ L3879: CALL L02BF ; Scan the keyboard ; In this way the state of the other three outputs are maintained when the state of the LSB of L is changed and sent out to register 14 of the AY-3-8912. ;; READ_OUTPUTS -L387F: LD C,$FD ; FFFD = Address of the - LD D,$FF ; command register (register 7) - LD E,$BF ; BFFD = Address of the +L387F: LD C,#FD ; FFFD = Address of the + LD D,#FF ; command register (register 7) + LD E,#BF ; BFFD = Address of the LD B,D ; data register (register 14) - LD A,$07 + LD A,#07 OUT (C),A ; Select command register IN H,(C) ; Read its status - LD A,$0E + LD A,#0E OUT (C),A ; Select data register IN A,(C) ; Read its status - OR $F0 ; Mask off the input lines + OR #F0 ; Mask off the input lines LD L,A ; L=state of output lines at the RET ; keypad socket @@ -18266,7 +18266,7 @@ L387F: LD C,$FD ; FFFD = Address of the ;; SET_REG14 L3896: LD B,D - LD A,$0E + LD A,#0E OUT (C),A ; Select the data register LD B,E OUT (C),L ; Send L out to the data register @@ -18279,7 +18279,7 @@ L3896: LD B,D ;; GET_REG14 L389F: LD B,D - LD A,$0E + LD A,#0E OUT (C),A ; Select the data register IN A,(C) ; Read the input line RET @@ -18290,7 +18290,7 @@ L389F: LD B,D ;; RESET_LINE L38A7: LD A,L - AND $FE ; Reset bit 0 of L + AND #FE ; Reset bit 0 of L LD L,A JR L3896 ; Send out L to the data register @@ -18300,7 +18300,7 @@ L38A7: LD A,L ;; SET_LINE L38AD: LD A,L - OR $01 ; Set bit 0 of L + OR #01 ; Set bit 0 of L LD L,A JR L3896 ; Send out L to the data register @@ -18320,7 +18320,7 @@ L38B3: DJNZ L38B3 ;; DELAY2 L38B6: PUSH BC - LD B,$10 + LD B,#10 CALL L38B3 ; Inner delay of 135 T-States POP BC DJNZ L38B6 @@ -18336,7 +18336,7 @@ L38B6: PUSH BC L38C0: PUSH BC CALL L389F ; Read the state of the input line POP BC - AND $20 ; Test bit 5, the input line + AND #20 ; Test bit 5, the input line JR Z,L38CB ; Exit if input line found low DJNZ L38C0 ; Repeat until timeout expires @@ -18352,7 +18352,7 @@ L38CB: RET L38CC: PUSH BC CALL L389F ; Read the state of the input line POP BC - AND $20 ; Test bit 5, the input line + AND #20 ; Test bit 5, the input line JR NZ,L38D7 ; Exit if input line found low DJNZ L38CC ; Repeat until timeout expires @@ -18366,7 +18366,7 @@ L38D7: RET ;; READ_STATUS L38D8: CALL L387F ; Read the output lines - LD B,$01 ; Read in one bit + LD B,#01 ; Read in one bit JR L38E4 ; ---------------- @@ -18377,13 +18377,13 @@ L38D8: CALL L387F ; Read the output lines ;; READ_NIBBLE L38DF: CALL L387F ; Read the state of the output lines - LD B,$04 ; Read in four bits + LD B,#04 ; Read in four bits ;; READ_BIT L38E4: PUSH BC CALL L389F ; Read the input line from the keypad POP BC - AND $20 ; This line should initially be high + AND #20 ; This line should initially be high JR Z,L392D ; Z=read in a 0, there must be an error XOR A ; The bits read in will be stored in register A @@ -18393,17 +18393,17 @@ L38EE: PUSH BC ; Preserve the loop count and any bits PUSH AF ; read in so far CALL L38AD ; Set the output line high - LD B,$A3 ; Monitor for 17609 T-states for the + LD B,#A3 ; Monitor for 17609 T-states for the CALL L38C0 ; input line to go low JR NZ,L392B ; NZ=the line did not go low CALL L38A7 ; Set the output line low JR L3901 ; Insert a delay of 12 T-states -L38FF: DEFB $FF, $FF +L38FF: DEFB #FF, #FF ;; BL_CONTINUE -L3901: LD B,$2B ; Delay for 564 T-states +L3901: LD B,#2B ; Delay for 564 T-states CALL L38B3 CALL L389F ; Read in the bit value BIT 5,A @@ -18423,12 +18423,12 @@ L3914: RRA ; Shift the carry bit into bit 0 of A PUSH AF ; Save bits read in CALL L38AD ; Set the output line high - LD B,$26 ; Delay for 499 T-states + LD B,#26 ; Delay for 499 T-states CALL L38B3 CALL L38A7 ; Set the output line low - LD B,$23 ; Delay for 460 T-states + LD B,#23 ; Delay for 460 T-states CALL L38B3 POP AF ; Retrieve read in bits @@ -18451,7 +18451,7 @@ L392B: POP AF L392D: CALL L38AD ; Set the output line high XOR A ; Clear FLAGS nibble - LD ($5B88),A ; [FLAGS/ROW3] + LD (#5B88),A ; [FLAGS/ROW3] INC A ; Return zero flag reset SCF @@ -18476,60 +18476,60 @@ L392D: CALL L38AD ; Set the output line high ;; ATTEMPT_POLL L3938: CALL L387F ; Read the output line states - LD A,($5B88) ; [FLAGS/ROW3] Has communications already been - AND $80 ; established with the keypad? + LD A,(#5B88) ; [FLAGS/ROW3] Has communications already been + AND #80 ; established with the keypad? JR NZ,L3999 ; NZ=yes, so skip the poll CALL L389F ; Read the input line - AND $20 ; It should be high initially + AND #20 ; It should be high initially JR Z,L392D ; Z=error, input line found low - LD A,($5B88) ; [FLAGS/ROW3] Test if poll counter already zero thus + LD A,(#5B88) ; [FLAGS/ROW3] Test if poll counter already zero thus AND A ; indicating a previous comms error JR NZ,L395A ; NZ=ready to poll the keypad INC A ; Indicate comms not established - LD ($5B88),A ; [FLAGS/ROW3] - LD A,$4C ; Reset the poll counter - LD ($5B89),A ; [ROW2/ROW1] + LD (#5B88),A ; [FLAGS/ROW3] + LD A,#4C ; Reset the poll counter + LD (#5B89),A ; [ROW2/ROW1] JR L399C ; Exit the routine ;;POLL_KEYPAD -L395A: LD A,($5B89) ; [ROW2/ROW1] Decrement the poll counter +L395A: LD A,(#5B89) ; [ROW2/ROW1] Decrement the poll counter DEC A - LD ($5B89),A ; [ROW2/ROW1] + LD (#5B89),A ; [ROW2/ROW1] JR NZ,L399C ; Exit the routine if it is not yet zero ; The poll counter has reached zero so a poll of the keypad can now occur. XOR A - LD ($5B88),A ; [FLAGS/ROW3] Indicate that a poll can occur - LD ($5B89),A ; [ROW2/ROW1] - LD ($5B8A),A ; [ROW4/ROW5] Clear all the row nibble stores + LD (#5B88),A ; [FLAGS/ROW3] Indicate that a poll can occur + LD (#5B89),A ; [ROW2/ROW1] + LD (#5B8A),A ; [ROW4/ROW5] Clear all the row nibble stores CALL L38A7 ; Set the output line low - LD B,$21 ; Wait up to 3569 T-States for the + LD B,#21 ; Wait up to 3569 T-States for the CALL L38C0 ; input line to go low JR NZ,L392D ; NZ=line did not go low CALL L38AD ; Set the output line high - LD B,$24 ; Wait up to 3893 T-States for the + LD B,#24 ; Wait up to 3893 T-States for the CALL L38CC ; input line to go high JR Z,L392D ; NZ=line did not go high CALL L38A7 ; Set the output line low - LD B,$0F + LD B,#0F CALL L38B6 ; Delay for 4070 T-States CALL L38DF ; Read in a nibble of data JR NZ,L392D ; NZ=error occurred when reading in nibble SET 7,A ; Set bit 7 - AND $F0 ; Keep only the upper four bits + AND #F0 ; Keep only the upper four bits ; (Bit 6 will be set if poll successful) - LD ($5B88),A ; [FLAGS/ROW3] Store the flags nibble + LD (#5B88),A ; [FLAGS/ROW3] Store the flags nibble XOR A SRL A ; Exit: Zero flag set, Carry flag reset RET @@ -18553,15 +18553,15 @@ L399C: XOR A ; Poll counter not zero ;; KEYPAD_SCAN L39A0: CALL L3938 ; Try to poll the keypad - LD A,($5B88) ; [FLAGS/ROW3] Test the flags nibble + LD A,(#5B88) ; [FLAGS/ROW3] Test the flags nibble CPL - AND $C0 ; Bits 6 and 7 must be set in FLAGS + AND #C0 ; Bits 6 and 7 must be set in FLAGS RET NZ ; NZ=poll was not successful ; The poll was successful so now read in data for the five keypad rows. - LD IX,$5B8A ; [ROW4/ROW5] - LD B,$05 ; The five rows + LD IX,#5B8A ; [ROW4/ROW5] + LD B,#05 ; The five rows ;; KS_LOOP L39B0: PUSH BC ; Save counter @@ -18578,7 +18578,7 @@ L39B0: PUSH BC ; Save counter POP BC ; Fetch the nibble loop counter PUSH BC LD C,A ; Move the nibble read in to C - LD A,(IX+$00) ; Fetch the nibble store + LD A,(IX+#00) ; Fetch the nibble store BIT 0,B ; Test if an upper or lower nibble JR Z,L39D6 ; Z=upper nibble @@ -18586,15 +18586,15 @@ L39B0: PUSH BC ; Save counter SRL C SRL C SRL C - AND $F0 ; Mask off the lower nibble of the + AND #F0 ; Mask off the lower nibble of the JR L39D8 ; nibble store ;; KS_UPPER -L39D6: AND $0F ; Mask off the upper nibble of the nibble store +L39D6: AND #0F ; Mask off the upper nibble of the nibble store ;; KS_STORE L39D8: OR C ; Combine the existing and new - LD (IX+$00),A ; nibbles and store them + LD (IX+#00),A ; nibbles and store them ;; KS_NEXT L39DC: POP BC ; Retrieve the row counter @@ -18608,13 +18608,13 @@ L39E3: DJNZ L39B0 ; Repeat for the next keypad row ; All five rows have now been read so compose a unique code for the key pressed. - LD E,$80 ; Signal no key press found yet - LD IX,$5B88 ; [FLAGS/ROW3] - LD HL,$3A3F ; Point to the key mask data - LD B,$03 ; Scan three nibbles + LD E,#80 ; Signal no key press found yet + LD IX,#5B88 ; [FLAGS/ROW3] + LD HL,#3A3F ; Point to the key mask data + LD B,#03 ; Scan three nibbles ;; GEN_LOOP -L39F0: LD A,(IX+$00) ; Fetch a pair of nibbles +L39F0: LD A,(IX+#00) ; Fetch a pair of nibbles AND (HL) ; This will mask off the FLAGS nibble and the SHIFT/0 key JR Z,L3A17 ; Z=no key pressed in these nibbles @@ -18627,14 +18627,14 @@ L39F0: LD A,(IX+$00) ; Fetch a pair of nibbles LD A,B ; Move loop counter to A JR L3A01 ; A delay of 12 T-States -L39FF: DEFB $FF, $FF ; Unused locations +L39FF: DEFB #FF, #FF ; Unused locations ;; GEN_CONT L3A01: DEC A ; These lines of code generate base SLA A ; values of 7, 15 and 23 for the three SLA A ; nibble stores 5B88, 5B89 & 5B8A. SLA A - OR $07 + OR #07 LD B,A ; B=(loop counter-1)*8+7 POP AF ; Fetch the byte of key press data @@ -18661,7 +18661,7 @@ L3A17: INC IX ; Point to the next nibble store JR NZ,L3A27 ; NZ=no keys were pressed LD A,E ; Copy the key code - AND $FC ; Test for the '.' key (E=1) + AND #FC ; Test for the '.' key (E=1) JR Z,L3A27 ; Z='.' key pressed DEC E @@ -18670,22 +18670,22 @@ L3A17: INC IX ; Point to the next nibble store ; The E register now holds a unique key code value between 1 and 17. ;; GEN_POINT -L3A27: LD A,($5B8A) ; [ROW4/ROW5] Test if the SHIFT key was pressed - AND $08 +L3A27: LD A,(#5B8A) ; [ROW4/ROW5] Test if the SHIFT key was pressed + AND #08 JR Z,L3A34 ; Z=the SHIFT key was not pressed ; The SHIFT key was pressed or no key was pressed. LD A,E ; Fetch the key code - AND $7F ; Mask off 'no key pressed' bit - ADD A,$12 ; Add on a shift offset of 12 + AND #7F ; Mask off 'no key pressed' bit + ADD A,#12 ; Add on a shift offset of 12 LD E,A ; Add a base offset of 5A to all key codes. Note that no key press will result in a key code of DA. This is the only code with bit 7 set and so will be detected later. ;; GEN_NOSHIFT L3A34: LD A,E - ADD A,$5A ; Add a base offset of 5A + ADD A,#5A ; Add a base offset of 5A LD E,A ; Return key codes in range 5B - 7D XOR A RET ; Exit: Zero flag set, key found OK @@ -18706,7 +18706,7 @@ L3A3C: XOR A ; Exit: Zero flag reset indicating an ; ---------------- ;; KEY_MASKS -L3A3F: DEFB $0F, $FF, $F2 ; Key mask data +L3A3F: DEFB #0F, #FF, #F2 ; Key mask data ; --------------- ; READ THE KEYPAD @@ -18736,23 +18736,23 @@ L3A3F: DEFB $0F, $FF, $F2 ; Key mask data ; decrement the KSTATE system variable Call Counters. The keypad routine 'knows' of the existence of keyboard key codes but the reverse is not true. ;; KEYPAD -L3A42: LD E,$80 ; Signal no key pressed - LD A,($5C78) ; [FRAMES] - AND $01 ; Scan the keypad every other +L3A42: LD E,#80 ; Signal no key pressed + LD A,(#5C78) ; [FRAMES] + AND #01 ; Scan the keypad every other JR NZ,L3A4F ; interrupt CALL L39A0 RET NZ ; NZ=no valid key pressed ;; KP_CHECK -L3A4F: LD HL,$5C00 ; [KSTATE0] Test the first KSTATE variable +L3A4F: LD HL,#5C00 ; [KSTATE0] Test the first KSTATE variable ;; KP_LOOP L3A52: BIT 7,(HL) ; Is the set free? JR NZ,L3A62 ; NZ=yes LD A,(HL) ; Fetch the un-decoded key value - CP $5B ; Is it a keyboard code? + CP #5B ; Is it a keyboard code? JR C,L3A62 ; C=yes, so do not decrement counter INC HL @@ -18760,11 +18760,11 @@ L3A52: BIT 7,(HL) ; Is the set free? DEC HL JR NZ,L3A62 ; If the counter reaches zero, then ; signal the set is free - LD (HL),$FF + LD (HL),#FF ;; KP_CH_SET L3A62: LD A,L ; Jump back and test the second set if - LD HL,$5C04 ; [KSTATE4] not yet considered + LD HL,#5C04 ; [KSTATE4] not yet considered CP L JR NZ,L3A52 @@ -18772,12 +18772,12 @@ L3A62: LD A,L ; Jump back and test the second set if RET NZ ; return if invalid LD A,E ; Test if the key in the first set is being - LD HL,$5C00 ; [KSTATE0] repeated + LD HL,#5C00 ; [KSTATE0] repeated CP (HL) JR Z,L3A9E ; Jump if being repeated EX DE,HL ; Save the address of KSTATE0 - LD HL,$5C04 ; [KSTATE4] Test if the key in the second set is + LD HL,#5C04 ; [KSTATE4] Test if the key in the second set is CP (HL) ; being repeated JR Z,L3A9E ; Jump if being repeated @@ -18794,10 +18794,10 @@ L3A62: LD A,L ; Jump back and test the second set if L3A83: LD E,A ; Pass the key code to the E register LD (HL),A ; and to KSTATE0/4 INC HL - LD (HL),$0A ; Set the '10 Call Counter' to 10 + LD (HL),#0A ; Set the '10 Call Counter' to 10 INC HL - LD A,($5C09) ; [REPDEL] Fetch the initial repeat delay + LD A,(#5C09) ; [REPDEL] Fetch the initial repeat delay SRL A ; Divide delay by two LD (HL),A ; Store the repeat delay INC HL @@ -18809,8 +18809,8 @@ L3A83: LD E,A ; Pass the key code to the E register ;; KP_END L3A94: LD A,E - LD ($5C08),A ; [LAST_K] Store the key value in LAST_K - LD HL,$5C3B ; FLAGS + LD (#5C08),A ; [LAST_K] Store the key value in LAST_K + LD HL,#5C3B ; FLAGS SET 5,(HL) ; Signal a new key pressed RET @@ -18820,12 +18820,12 @@ L3A94: LD A,E ;; KP_REPEAT L3A9E: INC HL - LD (HL),$0A ; Reset the '10 Call Counter' to 10 + LD (HL),#0A ; Reset the '10 Call Counter' to 10 INC HL DEC (HL) ; Decrement the repeat delay RET NZ ; Return if not zero - LD A,($5C0A) ; [REPPER] The subsequent repeat delay is + LD A,(#5C0A) ; [REPPER] The subsequent repeat delay is SRL A ; divided by two and stored LD (HL),A INC HL @@ -18839,13 +18839,13 @@ L3A9E: INC HL ;; KP_TEST L3AAE: LD A,E - LD HL,$5B66 ; FLAGS3 Test if in BASIC or EDIT mode + LD HL,#5B66 ; FLAGS3 Test if in BASIC or EDIT mode BIT 0,(HL) JR Z,L3ABC ; Z=EDIT mode ; Test key codes when in BASIC/CALCULATOR mode - CP $6D ; Test for shifted keys + CP #6D ; Test for shifted keys JR NC,L3AD4 ; and signal an error if found ;; KPT_OK @@ -18855,18 +18855,18 @@ L3ABA: XOR A ; Signal valid key code ; Test key codes when in EDIT/MENU mode. ;; KPT_EDIT -L3ABC: CP $80 ; Test for no key press +L3ABC: CP #80 ; Test for no key press JR NC,L3AD4 ; NC=no key press - CP $6C ; Test for SHIFT on its own + CP #6C ; Test for SHIFT on its own JR NZ,L3ABA ; NZ=valid key code -L3AC4: DEFB $00, $00, $00 ; Delay for 64 T-States - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00 +L3AC4: DEFB #00, #00, #00 ; Delay for 64 T-States + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00 ;; KPT_INVALID L3AD4: XOR A ; Signal invalid key code @@ -18880,11 +18880,11 @@ L3AD4: XOR A ; Signal invalid key code ;; KP_DECODE L3AD7: PUSH HL ; Save the KSTATE pointer LD A,E - SUB $5B ; Reduce the key code range to - LD D,$00 ; 00 - 22 and transfer to DE + SUB #5B ; Reduce the key code range to + LD D,#00 ; 00 - 22 and transfer to DE LD E,A - LD HL,$5B66 ; FLAGS3 Test if in EDIT or BASIC mode + LD HL,#5B66 ; FLAGS3 Test if in EDIT or BASIC mode BIT 0,(HL) JR Z,L3AEA ; Z=EDIT/MENU mode @@ -18897,7 +18897,7 @@ L3AD7: PUSH HL ; Save the KSTATE pointer ;; KPD_EDIT L3AEA: LD HL,L3B25 ; Use Table 4 for unshifted key - CP $11 ; presses + CP #11 ; presses JR C,L3B0F ; Deal with shifted keys in EDIT/MENU mode. @@ -18906,24 +18906,24 @@ L3AEA: LD HL,L3B25 ; Use Table 4 for unshifted key ; it actually performs no function when editing a BASIC program. LD HL,L3B21 - CP $15 ; Test for SHIFT 1 + CP #15 ; Test for SHIFT 1 JR Z,L3B0F - CP $16 ; Test for SHIFT 2 + CP #16 ; Test for SHIFT 2 JR Z,L3B0F JR L3B01 ; Delay for 12 T-States -L3AFE: DEFB $00, $FF, $FF ; Unused locations +L3AFE: DEFB #00, #FF, #FF ; Unused locations ;; KPD_CONT -L3B01: CP $17 ; Test for SHIFT 3 +L3B01: CP #17 ; Test for SHIFT 3 JR Z,L3B0F ; Use Table 2 with SHIFT 4 (delete to beginning of word) and SHIFT 5 (delete to end of word). LD HL,L3B18 - CP $21 ; Test for SHIFT 4 and above + CP #21 ; Test for SHIFT 4 and above JR NC,L3B0F ;Use Table 1 for all other shifted key presses. @@ -18941,77 +18941,77 @@ L3B0F: ADD HL,DE ; Look up the key value ; -------------------------------- ;; KPD_TABLE1 -L3B13: DEFB $2E, $0D, $33 ; '.', ENTER, 3 - DEFB $32, $31 ; 2, 1 +L3B13: DEFB #2E, #0D, #33 ; '.', ENTER, 3 + DEFB #32, #31 ; 2, 1 ;; KPD_TABLE2 -L3B18: DEFB $29, $28, $2A ; ), (, * - DEFB $2F, $2D, $39 ; /, - , 9 - DEFB $38, $37, $2B ; 8, 7, + +L3B18: DEFB #29, #28, #2A ; ), (, * + DEFB #2F, #2D, #39 ; /, - , 9 + DEFB #38, #37, #2B ; 8, 7, + ;; KPD_TABLE3 -L3B21: DEFB $36, $35, $34 ; 6, 5, 4 - DEFB $30 ; 0 +L3B21: DEFB #36, #35, #34 ; 6, 5, 4 + DEFB #30 ; 0 ;; KPD_TABLE4 -L3B25: DEFB $A5, $0D, $A6 ; Bottom, ENTER, Top - DEFB $A7, $A8, $A9 ; End of line, Start of line, TOGGLE - DEFB $AA, $0B, $0C ; DEL right, Up, DEL - DEFB $07, $09, $0A ; CMND, Right, Down - DEFB $08, $AC, $AD ; Left, Down ten, Up ten - DEFB $AE, $AF ; End word, Beginning of word - DEFB $B0, $B1, $B2 ; DEL to end of line, DEL to start of line, SHIFT TOGGLE - DEFB $B3, $B4 ; DEL to end of word, DEL to beginning of word +L3B25: DEFB #A5, #0D, #A6 ; Bottom, ENTER, Top + DEFB #A7, #A8, #A9 ; End of line, Start of line, TOGGLE + DEFB #AA, #0B, #0C ; DEL right, Up, DEL + DEFB #07, #09, #0A ; CMND, Right, Down + DEFB #08, #AC, #AD ; Left, Down ten, Up ten + DEFB #AE, #AF ; End word, Beginning of word + DEFB #B0, #B1, #B2 ; DEL to end of line, DEL to start of line, SHIFT TOGGLE + DEFB #B3, #B4 ; DEL to end of word, DEL to beginning of word ; ----------------------------- ; PRINT NEW ERROR MESSAGE PATCH ; ----------------------------- -L3B3B: BIT 4,(IY+$01) ; FLAGS 3 - In 128K mode? +L3B3B: BIT 4,(IY+#01) ; FLAGS 3 - In 128K mode? JR NZ,L3B46 ; NZ=128K mode ; In 48K mode XOR A ; Replicate code from standard ROM that the patch over-wrote - LD DE,$1536 + LD DE,#1536 RET ; In 128K mode -L3B46: LD HL,$010F ; Vector table entry in Editor ROM -> JP $03A2 +L3B46: LD HL,#010F ; Vector table entry in Editor ROM -> JP #03A2 ; Return to Editor ROM at address in HL L3B49: EX (SP),HL ; Change the return address - JP $5B00 ; Page Editor ROM and return to the address on the stack + JP #5B00 ; Page Editor ROM and return to the address on the stack ; ------------------------------------- ; STATEMENT INTERPRETATION RETURN PATCH ; ------------------------------------- -L3B4D: BIT 4,(IY+$01) ; In 128K mode? +L3B4D: BIT 4,(IY+#01) ; In 128K mode? JR NZ,L3B58 ; NZ=128K mode ; In 48K mode - BIT 7,(IY+$0A) ; replicate code from standard ROM that the patch over-wrote + BIT 7,(IY+#0A) ; replicate code from standard ROM that the patch over-wrote RET ; In 128K mode -L3B58: LD HL,$0112 ; Handle in Editor ROM by jumping to Vector table entry in Editor ROM -> JP #182A +L3B58: LD HL,#0112 ; Handle in Editor ROM by jumping to Vector table entry in Editor ROM -> JP #182A JR L3B49 ; -------------------------- ; GO TO NEXT STATEMENT PATCH ; -------------------------- -L3B5D: BIT 4,(IY+$01) ; In 128K mode? +L3B5D: BIT 4,(IY+#01) ; In 128K mode? JR NZ,L3B67 ; NZ=128K mode ; In 48K mode RST 18H ; replicate code from standard ROM that the patch over-wrote - CP $0D + CP #0D RET ; In 128K mode -L3B67: LD HL,$0115 ; Handle in Editor ROM by jumping to Vector table entry in Editor ROM -> JP #18A8 +L3B67: LD HL,#0115 ; Handle in Editor ROM by jumping to Vector table entry in Editor ROM -> JP #18A8 JR L3B49 ; -------------------------------------- @@ -19020,7 +19020,7 @@ L3B67: LD HL,$0115 ; Handle in Editor ROM by jumping to Vector tabl ;; KEYSCAN2 L3B6C: CALL L028E ; KEYSCAN Scan the keyboard - LD C,$00 + LD C,#00 JR NZ,L3B80 ; NZ=multiple keys CALL L031E ; K_TEST @@ -19032,7 +19032,7 @@ L3B6C: CALL L028E ; KEYSCAN Scan the keyboard JP L2657 ; S_CONT Get string and continue scanning ;; KPI_SCAN -L3B80: BIT 4,(IY+$01) ; 128K mode? +L3B80: BIT 4,(IY+#01) ; 128K mode? JP Z,L2660 ; S_IK$_STK Z=no, stack keyboard code DI ; Disable interrupts whilst scanning @@ -19048,27 +19048,27 @@ L3B80: BIT 4,(IY+$01) ; 128K mode? JP L2657 ; S_CONT Get string and continue scanning ;; KPI_INVALID -L3B9A: LD C,$00 ; Signal no key, i.e. length=0 +L3B9A: LD C,#00 ; Signal no key, i.e. length=0 JP L2660 ; S_IK$_STK ; --------------------- ; PRINT TOKEN/UDG PATCH ; --------------------- -L3B9F: CP $A3 ; SPECTRUM (T) +L3B9F: CP #A3 ; SPECTRUM (T) JR Z,L3BAF - CP $A4 ; PLAY (U) + CP #A4 ; PLAY (U) JR Z,L3BAF ; In 48K mode here -L3BA7: SUB $A5 ; Check as per original ROM - JP NC,$0B5F +L3BA7: SUB #A5 ; Check as per original ROM + JP NC,#0B5F - JP $0B56 ; Rejoin original ROM routine + JP #0B56 ; Rejoin original ROM routine -L3BAF: BIT 4,(IY+$01) ; FLAGS3 - Bit 4=1 if in 128K mode +L3BAF: BIT 4,(IY+#01) ; FLAGS3 - Bit 4=1 if in 128K mode JR Z,L3BA7 ; Rejoin code for when in 48K mode ; In 128K mode here @@ -19076,14 +19076,14 @@ L3BAF: BIT 4,(IY+$01) ; FLAGS3 - Bit 4=1 if in 128K mode LD DE,L3BC9 PUSH DE ; Stack return address - SUB $A3 ; Check whether the SPECTRUM token + SUB #A3 ; Check whether the SPECTRUM token LD DE,L3BD2 ; SPECTRUM token JR Z,L3BC3 LD DE,L3BDA ; PLAY token -L3BC3: LD A,$04 ; Signal not RND, INKEY$ or PI so that a trailing space is printed +L3BC3: LD A,#04 ; Signal not RND, INKEY$ or PI so that a trailing space is printed PUSH AF JP L0C17 ; Rejoin printing routine PO-TABLE+3 @@ -19091,10 +19091,10 @@ L3BC3: LD A,$04 ; Signal not RND, INKEY$ or PI so that a trailin L3BC9: SCF ; Return as if no trailing space - BIT 1,(IY+$01) ; Test if printer is in use + BIT 1,(IY+#01) ; Test if printer is in use RET NZ ; NZ=printer in use - JP $0B03 ; PO-FETCH - Return via Position Fetch routine + JP #0B03 ; PO-FETCH - Return via Position Fetch routine L3BD2: DC "SPECTRUM" ; SPECTRUM token L3BDA: DC "PLAY" ; PLAY token @@ -19102,17 +19102,17 @@ L3BDA: DC "PLAY" ; PLAY token ;; KP_SCAN2 L3BDE: JP L3C01 ; This is not called from either ROM. It can be used to scan the keypad. -L3BE1: DEFB $00, $00, $00 ; Unused locations - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $00, $00, $00 - DEFB $FF, $FF +L3BE1: DEFB #00, #00, #00 ; Unused locations + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #00, #00, #00 + DEFB #FF, #FF ;; KP_SCAN L3C01: JP L39A0 ; This was to be called via the vector table in the EDITOR ROM but due to a programming error it never gets called. @@ -19135,26 +19135,26 @@ L3C0D: JP L3C10 ; shown the year '1986' in varying ink colours. This leads to a display that shows all possible ink colours on all possible paper colours. ;; TV_TUNER -L3C10: LD A,$7F ; Test for the BREAK key - IN A,($FE) +L3C10: LD A,#7F ; Test for the BREAK key + IN A,(#FE) RRA RET C ; C=SPACE not pressed - LD A,$FE - IN A,($FE) + LD A,#FE + IN A,(#FE) RRA RET C ; C=SPACE not pressed - LD A,$07 - OUT ($FE),A ; Set the border to white + LD A,#07 + OUT (#FE),A ; Set the border to white - LD A,$02 ; Open channel 2 (main screen) - CALL $1601 + LD A,#02 ; Open channel 2 (main screen) + CALL #1601 XOR A - LD ($5C3C),A ; [TV_FLAG] Signal using main screen + LD (#5C3C),A ; [TV_FLAG] Signal using main screen - LD A,$16 ; Print character 'AT' + LD A,#16 ; Print character 'AT' RST 10H XOR A ; Print character '0' @@ -19163,7 +19163,7 @@ L3C10: LD A,$7F ; Test for the BREAK key XOR A ; Print character '0' RST 10H - LD E,$08 ; Number of characters per colour + LD E,#08 ; Number of characters per colour LD B,E ; Paper counter + 1 LD D,B ; Ink counter + 1 @@ -19175,7 +19175,7 @@ L3C34: LD A,B ; Calculate the paper colour RL A ADD A,D ; Add the ink colour DEC A - LD ($5C8F),A ; [ATTR_T] Store as temporary attribute value + LD (#5C8F),A ; [ATTR_T] Store as temporary attribute value LD HL,L3C8F ; TVT_DATA Point to the 'year' data LD C,E ; Get number of characters to print @@ -19193,18 +19193,18 @@ L3C45: LD A,(HL) ; Fetch a character from the data DEC D ; Next ink colour JR NZ,L3C34 ; Produce next row with new ink colour - LD HL,$4800 ; Point to 2nd third of display file + LD HL,#4800 ; Point to 2nd third of display file LD D,H LD E,L INC DE ; Point to the next display cell XOR A LD (HL),A ; Clear first display cell - LD BC,$0FFF + LD BC,#0FFF LDIR ; Clear lower 2 thirds of display file EX DE,HL ; HL points to start of attributes file - LD DE,$5900 ; Point to 2nd third of attributes file - LD BC,$0200 + LD DE,#5900 ; Point to 2nd third of attributes file + LD BC,#0200 LDIR ; Copy screen attributes ; Now that the display has been constructed, produce a continuous cycle of a 440 Hz tone for 1 second followed by a period of silence for 1 second (actually 962ms). @@ -19212,11 +19212,11 @@ L3C45: LD A,(HL) ; Fetch a character from the data DI ; Disable interrupts so that a pure tone can be generated ;; TVT_TONE -L3C68: LD DE,$0370 ; DE=twice the tone frequency in Hz - LD L,$07 ; Border colour of white +L3C68: LD DE,#0370 ; DE=twice the tone frequency in Hz + LD L,#07 ; Border colour of white ;; TVT_DURATION -L3C6D: LD BC,$0099 ; Delay for 950.4us +L3C6D: LD BC,#0099 ; Delay for 950.4us ;; TVT_PERIOD L3C70: DEC BC @@ -19225,9 +19225,9 @@ L3C70: DEC BC JR NZ,L3C70 LD A,L - XOR $10 ; Toggle the speaker output whilst + XOR #10 ; Toggle the speaker output whilst LD L,A ; preserving the border colour - OUT ($FE),A + OUT (#FE),A DEC DE ; Generate the tone for 1 second LD A,D @@ -19236,7 +19236,7 @@ L3C70: DEC BC ; At this point the speaker is turned off, so delay for 1 second. - LD BC,$0000 ; Delay for 480.4us + LD BC,#0000 ; Delay for 480.4us ;; TVT_DELAY1 L3C83: DEC BC @@ -19253,10 +19253,10 @@ L3C88: DEC BC ; Delay for 480.4us JR L3C68 ; Repeat the tone cycle ;; TVT_DATA -L3C8F: DEFB $13, $00 ; Bright, off - DEFB $31, $39 ; '1', '9' - DEFB $13, $01 ; Bright, on - DEFB $38, $36 ; '8', '6' +L3C8F: DEFB #13, #00 ; Bright, off + DEFB #31, #39 ; '1', '9' + DEFB #13, #01 ; Bright, on + DEFB #38, #36 ; '8', '6' L3C97: ; ------ ; UNUSED @@ -19295,7 +19295,7 @@ JMP_EX: PUSH HL RET ; ЂЎЇЂр т ;< < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < <; - BLOCK $3D00-$,00 ;15616 + BLOCK #3D00-$,00 ;15616 ; ------------------------------- ; THE 'ZX SPECTRUM CHARACTER SET' @@ -19303,7 +19303,7 @@ JMP_EX: PUSH HL ;; font ;; char-set -; $20 - Character: ' ' CHR$(32) +; #20 - Character: ' ' CHR$(32) L3D00: DEFB %00000000 DEFB %00000000 @@ -19314,7 +19314,7 @@ L3D00: DEFB %00000000 DEFB %00000000 DEFB %00000000 -; $21 - Character: '!' CHR$(33) +; #21 - Character: '!' CHR$(33) DEFB %00000000 DEFB %00010000 @@ -19325,7 +19325,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $22 - Character: '"' CHR$(34) +; #22 - Character: '"' CHR$(34) DEFB %00000000 DEFB %00100100 @@ -19336,7 +19336,7 @@ L3D00: DEFB %00000000 DEFB %00000000 DEFB %00000000 -; $23 - Character: '#' CHR$(35) +; #23 - Character: '#' CHR$(35) DEFB %00000000 DEFB %00100100 @@ -19347,7 +19347,7 @@ L3D00: DEFB %00000000 DEFB %00100100 DEFB %00000000 -; $24 - Character: '$' CHR$(36) +; #24 - Character: '$' CHR$(36) DEFB %00000000 DEFB %00001000 @@ -19358,7 +19358,7 @@ L3D00: DEFB %00000000 DEFB %00111110 DEFB %00001000 -; $25 - Character: '%' CHR$(37) +; #25 - Character: '%' CHR$(37) DEFB %00000000 DEFB %01100010 @@ -19369,7 +19369,7 @@ L3D00: DEFB %00000000 DEFB %01000110 DEFB %00000000 -; $26 - Character: '&' CHR$(38) +; #26 - Character: '&' CHR$(38) DEFB %00000000 DEFB %00010000 @@ -19380,7 +19380,7 @@ L3D00: DEFB %00000000 DEFB %00111010 DEFB %00000000 -; $27 - Character: ''' CHR$(39) +; #27 - Character: ''' CHR$(39) DEFB %00000000 DEFB %00001000 @@ -19391,7 +19391,7 @@ L3D00: DEFB %00000000 DEFB %00000000 DEFB %00000000 -; $28 - Character: '(' CHR$(40) +; #28 - Character: '(' CHR$(40) DEFB %00000000 DEFB %00000100 @@ -19402,7 +19402,7 @@ L3D00: DEFB %00000000 DEFB %00000100 DEFB %00000000 -; $29 - Character: ')' CHR$(41) +; #29 - Character: ')' CHR$(41) DEFB %00000000 DEFB %00100000 @@ -19413,7 +19413,7 @@ L3D00: DEFB %00000000 DEFB %00100000 DEFB %00000000 -; $2A - Character: '*' CHR$(42) +; #2A - Character: '*' CHR$(42) DEFB %00000000 DEFB %00000000 @@ -19424,7 +19424,7 @@ L3D00: DEFB %00000000 DEFB %00010100 DEFB %00000000 -; $2B - Character: '+' CHR$(43) +; #2B - Character: '+' CHR$(43) DEFB %00000000 DEFB %00000000 @@ -19435,7 +19435,7 @@ L3D00: DEFB %00000000 DEFB %00001000 DEFB %00000000 -; $2C - Character: ',' CHR$(44) +; #2C - Character: ',' CHR$(44) DEFB %00000000 DEFB %00000000 @@ -19446,7 +19446,7 @@ L3D00: DEFB %00000000 DEFB %00001000 DEFB %00010000 -; $2D - Character: '-' CHR$(45) +; #2D - Character: '-' CHR$(45) DEFB %00000000 DEFB %00000000 @@ -19457,7 +19457,7 @@ L3D00: DEFB %00000000 DEFB %00000000 DEFB %00000000 -; $2E - Character: '.' CHR$(46) +; #2E - Character: '.' CHR$(46) DEFB %00000000 DEFB %00000000 @@ -19468,7 +19468,7 @@ L3D00: DEFB %00000000 DEFB %00011000 DEFB %00000000 -; $2F - Character: '/' CHR$(47) +; #2F - Character: '/' CHR$(47) DEFB %00000000 DEFB %00000000 @@ -19479,7 +19479,7 @@ L3D00: DEFB %00000000 DEFB %00100000 DEFB %00000000 -; $30 - Character: '0' CHR$(48) +; #30 - Character: '0' CHR$(48) DEFB %00000000 DEFB %00111100 @@ -19490,7 +19490,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $31 - Character: '1' CHR$(49) +; #31 - Character: '1' CHR$(49) DEFB %00000000 DEFB %00011000 @@ -19501,7 +19501,7 @@ L3D00: DEFB %00000000 DEFB %00111110 DEFB %00000000 -; $32 - Character: '2' CHR$(50) +; #32 - Character: '2' CHR$(50) DEFB %00000000 DEFB %00111100 @@ -19512,7 +19512,7 @@ L3D00: DEFB %00000000 DEFB %01111110 DEFB %00000000 -; $33 - Character: '3' CHR$(51) +; #33 - Character: '3' CHR$(51) DEFB %00000000 DEFB %00111100 @@ -19523,7 +19523,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $34 - Character: '4' CHR$(52) +; #34 - Character: '4' CHR$(52) DEFB %00000000 DEFB %00001000 @@ -19534,7 +19534,7 @@ L3D00: DEFB %00000000 DEFB %00001000 DEFB %00000000 -; $35 - Character: '5' CHR$(53) +; #35 - Character: '5' CHR$(53) DEFB %00000000 DEFB %01111110 @@ -19545,7 +19545,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $36 - Character: '6' CHR$(54) +; #36 - Character: '6' CHR$(54) DEFB %00000000 DEFB %00111100 @@ -19556,7 +19556,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $37 - Character: '7' CHR$(55) +; #37 - Character: '7' CHR$(55) DEFB %00000000 DEFB %01111110 @@ -19567,7 +19567,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $38 - Character: '8' CHR$(56) +; #38 - Character: '8' CHR$(56) DEFB %00000000 DEFB %00111100 @@ -19578,7 +19578,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $39 - Character: '9' CHR$(57) +; #39 - Character: '9' CHR$(57) DEFB %00000000 DEFB %00111100 @@ -19589,7 +19589,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $3A - Character: ':' CHR$(58) +; #3A - Character: ':' CHR$(58) DEFB %00000000 DEFB %00000000 @@ -19600,7 +19600,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $3B - Character: ';' CHR$(59) +; #3B - Character: ';' CHR$(59) DEFB %00000000 DEFB %00000000 @@ -19611,7 +19611,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00100000 -; $3C - Character: '<' CHR$(60) +; #3C - Character: '<' CHR$(60) DEFB %00000000 DEFB %00000000 @@ -19622,7 +19622,7 @@ L3D00: DEFB %00000000 DEFB %00000100 DEFB %00000000 -; $3D - Character: '=' CHR$(61) +; #3D - Character: '=' CHR$(61) DEFB %00000000 DEFB %00000000 @@ -19633,7 +19633,7 @@ L3D00: DEFB %00000000 DEFB %00000000 DEFB %00000000 -; $3E - Character: '>' CHR$(62) +; #3E - Character: '>' CHR$(62) DEFB %00000000 DEFB %00000000 @@ -19644,7 +19644,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $3F - Character: '?' CHR$(63) +; #3F - Character: '?' CHR$(63) DEFB %00000000 DEFB %00111100 @@ -19655,7 +19655,7 @@ L3D00: DEFB %00000000 DEFB %00001000 DEFB %00000000 -; $40 - Character: '@' CHR$(64) +; #40 - Character: '@' CHR$(64) DEFB %00000000 DEFB %00111100 @@ -19666,7 +19666,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $41 - Character: 'A' CHR$(65) +; #41 - Character: 'A' CHR$(65) DEFB %00000000 DEFB %00111100 @@ -19677,7 +19677,7 @@ L3D00: DEFB %00000000 DEFB %01000010 DEFB %00000000 -; $42 - Character: 'B' CHR$(66) +; #42 - Character: 'B' CHR$(66) DEFB %00000000 DEFB %01111100 @@ -19688,7 +19688,7 @@ L3D00: DEFB %00000000 DEFB %01111100 DEFB %00000000 -; $43 - Character: 'C' CHR$(67) +; #43 - Character: 'C' CHR$(67) DEFB %00000000 DEFB %00111100 @@ -19699,7 +19699,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $44 - Character: 'D' CHR$(68) +; #44 - Character: 'D' CHR$(68) DEFB %00000000 DEFB %01111000 @@ -19710,7 +19710,7 @@ L3D00: DEFB %00000000 DEFB %01111000 DEFB %00000000 -; $45 - Character: 'E' CHR$(69) +; #45 - Character: 'E' CHR$(69) DEFB %00000000 DEFB %01111110 @@ -19721,7 +19721,7 @@ L3D00: DEFB %00000000 DEFB %01111110 DEFB %00000000 -; $46 - Character: 'F' CHR$(70) +; #46 - Character: 'F' CHR$(70) DEFB %00000000 DEFB %01111110 @@ -19732,7 +19732,7 @@ L3D00: DEFB %00000000 DEFB %01000000 DEFB %00000000 -; $47 - Character: 'G' CHR$(71) +; #47 - Character: 'G' CHR$(71) DEFB %00000000 DEFB %00111100 @@ -19743,7 +19743,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $48 - Character: 'H' CHR$(72) +; #48 - Character: 'H' CHR$(72) DEFB %00000000 DEFB %01000010 @@ -19754,7 +19754,7 @@ L3D00: DEFB %00000000 DEFB %01000010 DEFB %00000000 -; $49 - Character: 'I' CHR$(73) +; #49 - Character: 'I' CHR$(73) DEFB %00000000 DEFB %00111110 @@ -19765,7 +19765,7 @@ L3D00: DEFB %00000000 DEFB %00111110 DEFB %00000000 -; $4A - Character: 'J' CHR$(74) +; #4A - Character: 'J' CHR$(74) DEFB %00000000 DEFB %00000010 @@ -19776,7 +19776,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $4B - Character: 'K' CHR$(75) +; #4B - Character: 'K' CHR$(75) DEFB %00000000 DEFB %01000100 @@ -19787,7 +19787,7 @@ L3D00: DEFB %00000000 DEFB %01000010 DEFB %00000000 -; $4C - Character: 'L' CHR$(76) +; #4C - Character: 'L' CHR$(76) DEFB %00000000 DEFB %01000000 @@ -19798,7 +19798,7 @@ L3D00: DEFB %00000000 DEFB %01111110 DEFB %00000000 -; $4D - Character: 'M' CHR$(77) +; #4D - Character: 'M' CHR$(77) DEFB %00000000 DEFB %01000010 @@ -19809,7 +19809,7 @@ L3D00: DEFB %00000000 DEFB %01000010 DEFB %00000000 -; $4E - Character: 'N' CHR$(78) +; #4E - Character: 'N' CHR$(78) DEFB %00000000 DEFB %01000010 @@ -19820,7 +19820,7 @@ L3D00: DEFB %00000000 DEFB %01000010 DEFB %00000000 -; $4F - Character: 'O' CHR$(79) +; #4F - Character: 'O' CHR$(79) DEFB %00000000 DEFB %00111100 @@ -19831,7 +19831,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $50 - Character: 'P' CHR$(80) +; #50 - Character: 'P' CHR$(80) DEFB %00000000 DEFB %01111100 @@ -19842,7 +19842,7 @@ L3D00: DEFB %00000000 DEFB %01000000 DEFB %00000000 -; $51 - Character: 'Q' CHR$(81) +; #51 - Character: 'Q' CHR$(81) DEFB %00000000 DEFB %00111100 @@ -19853,7 +19853,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $52 - Character: 'R' CHR$(82) +; #52 - Character: 'R' CHR$(82) DEFB %00000000 DEFB %01111100 @@ -19864,7 +19864,7 @@ L3D00: DEFB %00000000 DEFB %01000010 DEFB %00000000 -; $53 - Character: 'S' CHR$(83) +; #53 - Character: 'S' CHR$(83) DEFB %00000000 DEFB %00111100 @@ -19875,7 +19875,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $54 - Character: 'T' CHR$(84) +; #54 - Character: 'T' CHR$(84) DEFB %00000000 DEFB %11111110 @@ -19886,7 +19886,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $55 - Character: 'U' CHR$(85) +; #55 - Character: 'U' CHR$(85) DEFB %00000000 DEFB %01000010 @@ -19897,7 +19897,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $56 - Character: 'V' CHR$(86) +; #56 - Character: 'V' CHR$(86) DEFB %00000000 DEFB %01000010 @@ -19908,7 +19908,7 @@ L3D00: DEFB %00000000 DEFB %00011000 DEFB %00000000 -; $57 - Character: 'W' CHR$(87) +; #57 - Character: 'W' CHR$(87) DEFB %00000000 DEFB %01000010 @@ -19919,7 +19919,7 @@ L3D00: DEFB %00000000 DEFB %00100100 DEFB %00000000 -; $58 - Character: 'X' CHR$(88) +; #58 - Character: 'X' CHR$(88) DEFB %00000000 DEFB %01000010 @@ -19930,7 +19930,7 @@ L3D00: DEFB %00000000 DEFB %01000010 DEFB %00000000 -; $59 - Character: 'Y' CHR$(89) +; #59 - Character: 'Y' CHR$(89) DEFB %00000000 DEFB %10000010 @@ -19941,7 +19941,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $5A - Character: 'Z' CHR$(90) +; #5A - Character: 'Z' CHR$(90) DEFB %00000000 DEFB %01111110 @@ -19952,7 +19952,7 @@ L3D00: DEFB %00000000 DEFB %01111110 DEFB %00000000 -; $5B - Character: '[' CHR$(91) +; #5B - Character: '[' CHR$(91) DEFB %00000000 DEFB %00001110 @@ -19963,7 +19963,7 @@ L3D00: DEFB %00000000 DEFB %00001110 DEFB %00000000 -; $5C - Character: '\' CHR$(92) +; #5C - Character: '\' CHR$(92) DEFB %00000000 DEFB %00000000 @@ -19974,7 +19974,7 @@ L3D00: DEFB %00000000 DEFB %00000100 DEFB %00000000 -; $5D - Character: ']' CHR$(93) +; #5D - Character: ']' CHR$(93) DEFB %00000000 DEFB %01110000 @@ -19985,7 +19985,7 @@ L3D00: DEFB %00000000 DEFB %01110000 DEFB %00000000 -; $5E - Character: '^' CHR$(94) +; #5E - Character: '^' CHR$(94) DEFB %00000000 DEFB %00010000 @@ -19996,7 +19996,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $5F - Character: '_' CHR$(95) +; #5F - Character: '_' CHR$(95) DEFB %00000000 DEFB %00000000 @@ -20007,7 +20007,7 @@ L3D00: DEFB %00000000 DEFB %00000000 DEFB %11111111 -; $60 - Character: 'ukp' CHR$(96) +; #60 - Character: 'ukp' CHR$(96) DEFB %00000000 DEFB %00011100 @@ -20018,7 +20018,7 @@ L3D00: DEFB %00000000 DEFB %01111110 DEFB %00000000 -; $61 - Character: 'a' CHR$(97) +; #61 - Character: 'a' CHR$(97) DEFB %00000000 DEFB %00000000 @@ -20029,7 +20029,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $62 - Character: 'b' CHR$(98) +; #62 - Character: 'b' CHR$(98) DEFB %00000000 DEFB %00100000 @@ -20040,7 +20040,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $63 - Character: 'c' CHR$(99) +; #63 - Character: 'c' CHR$(99) DEFB %00000000 DEFB %00000000 @@ -20051,7 +20051,7 @@ L3D00: DEFB %00000000 DEFB %00011100 DEFB %00000000 -; $64 - Character: 'd' CHR$(100) +; #64 - Character: 'd' CHR$(100) DEFB %00000000 DEFB %00000100 @@ -20062,7 +20062,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $65 - Character: 'e' CHR$(101) +; #65 - Character: 'e' CHR$(101) DEFB %00000000 DEFB %00000000 @@ -20073,7 +20073,7 @@ L3D00: DEFB %00000000 DEFB %00111100 DEFB %00000000 -; $66 - Character: 'f' CHR$(102) +; #66 - Character: 'f' CHR$(102) DEFB %00000000 DEFB %00001100 @@ -20084,7 +20084,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $67 - Character: 'g' CHR$(103) +; #67 - Character: 'g' CHR$(103) DEFB %00000000 DEFB %00000000 @@ -20095,7 +20095,7 @@ L3D00: DEFB %00000000 DEFB %00000100 DEFB %00111000 -; $68 - Character: 'h' CHR$(104) +; #68 - Character: 'h' CHR$(104) DEFB %00000000 DEFB %01000000 @@ -20106,7 +20106,7 @@ L3D00: DEFB %00000000 DEFB %01000100 DEFB %00000000 -; $69 - Character: 'i' CHR$(105) +; #69 - Character: 'i' CHR$(105) DEFB %00000000 DEFB %00010000 @@ -20117,7 +20117,7 @@ L3D00: DEFB %00000000 DEFB %00111000 DEFB %00000000 -; $6A - Character: 'j' CHR$(106) +; #6A - Character: 'j' CHR$(106) DEFB %00000000 DEFB %00000100 @@ -20128,7 +20128,7 @@ L3D00: DEFB %00000000 DEFB %00100100 DEFB %00011000 -; $6B - Character: 'k' CHR$(107) +; #6B - Character: 'k' CHR$(107) DEFB %00000000 DEFB %00100000 @@ -20139,7 +20139,7 @@ L3D00: DEFB %00000000 DEFB %00100100 DEFB %00000000 -; $6C - Character: 'l' CHR$(108) +; #6C - Character: 'l' CHR$(108) DEFB %00000000 DEFB %00010000 @@ -20150,7 +20150,7 @@ L3D00: DEFB %00000000 DEFB %00001100 DEFB %00000000 -; $6D - Character: 'm' CHR$(109) +; #6D - Character: 'm' CHR$(109) DEFB %00000000 DEFB %00000000 @@ -20161,7 +20161,7 @@ L3D00: DEFB %00000000 DEFB %01010100 DEFB %00000000 -; $6E - Character: 'n' CHR$(110) +; #6E - Character: 'n' CHR$(110) DEFB %00000000 DEFB %00000000 @@ -20172,7 +20172,7 @@ L3D00: DEFB %00000000 DEFB %01000100 DEFB %00000000 -; $6F - Character: 'o' CHR$(111) +; #6F - Character: 'o' CHR$(111) DEFB %00000000 DEFB %00000000 @@ -20183,7 +20183,7 @@ L3D00: DEFB %00000000 DEFB %00111000 DEFB %00000000 -; $70 - Character: 'p' CHR$(112) +; #70 - Character: 'p' CHR$(112) DEFB %00000000 DEFB %00000000 @@ -20194,7 +20194,7 @@ L3D00: DEFB %00000000 DEFB %01000000 DEFB %01000000 -; $71 - Character: 'q' CHR$(113) +; #71 - Character: 'q' CHR$(113) DEFB %00000000 DEFB %00000000 @@ -20205,7 +20205,7 @@ L3D00: DEFB %00000000 DEFB %00000100 DEFB %00000110 -; $72 - Character: 'r' CHR$(114) +; #72 - Character: 'r' CHR$(114) DEFB %00000000 DEFB %00000000 @@ -20216,7 +20216,7 @@ L3D00: DEFB %00000000 DEFB %00100000 DEFB %00000000 -; $73 - Character: 's' CHR$(115) +; #73 - Character: 's' CHR$(115) DEFB %00000000 DEFB %00000000 @@ -20227,7 +20227,7 @@ L3D00: DEFB %00000000 DEFB %01111000 DEFB %00000000 -; $74 - Character: 't' CHR$(116) +; #74 - Character: 't' CHR$(116) DEFB %00000000 DEFB %00010000 @@ -20238,7 +20238,7 @@ L3D00: DEFB %00000000 DEFB %00001100 DEFB %00000000 -; $75 - Character: 'u' CHR$(117) +; #75 - Character: 'u' CHR$(117) DEFB %00000000 DEFB %00000000 @@ -20249,7 +20249,7 @@ L3D00: DEFB %00000000 DEFB %00111000 DEFB %00000000 -; $76 - Character: 'v' CHR$(118) +; #76 - Character: 'v' CHR$(118) DEFB %00000000 DEFB %00000000 @@ -20260,7 +20260,7 @@ L3D00: DEFB %00000000 DEFB %00010000 DEFB %00000000 -; $77 - Character: 'w' CHR$(119) +; #77 - Character: 'w' CHR$(119) DEFB %00000000 DEFB %00000000 @@ -20271,7 +20271,7 @@ L3D00: DEFB %00000000 DEFB %00101000 DEFB %00000000 -; $78 - Character: 'x' CHR$(120) +; #78 - Character: 'x' CHR$(120) DEFB %00000000 DEFB %00000000 @@ -20282,7 +20282,7 @@ L3D00: DEFB %00000000 DEFB %01000100 DEFB %00000000 -; $79 - Character: 'y' CHR$(121) +; #79 - Character: 'y' CHR$(121) DEFB %00000000 DEFB %00000000 @@ -20293,7 +20293,7 @@ L3D00: DEFB %00000000 DEFB %00000100 DEFB %00111000 -; $7A - Character: 'z' CHR$(122) +; #7A - Character: 'z' CHR$(122) DEFB %00000000 DEFB %00000000 @@ -20304,7 +20304,7 @@ L3D00: DEFB %00000000 DEFB %01111100 DEFB %00000000 -; $7B - Character: '{' CHR$(123) +; #7B - Character: '{' CHR$(123) DEFB %00000000 DEFB %00001110 @@ -20315,7 +20315,7 @@ L3D00: DEFB %00000000 DEFB %00001110 DEFB %00000000 -; $7C - Character: '|' CHR$(124) +; #7C - Character: '|' CHR$(124) DEFB %00000000 DEFB %00001000 @@ -20326,7 +20326,7 @@ L3D00: DEFB %00000000 DEFB %00001000 DEFB %00000000 -; $7D - Character: '}' CHR$(125) +; #7D - Character: '}' CHR$(125) DEFB %00000000 DEFB %01110000 @@ -20337,7 +20337,7 @@ L3D00: DEFB %00000000 DEFB %01110000 DEFB %00000000 -; $7E - Character: '~' CHR$(126) +; #7E - Character: '~' CHR$(126) DEFB %00000000 DEFB %00010100 @@ -20348,7 +20348,7 @@ L3D00: DEFB %00000000 DEFB %00000000 DEFB %00000000 -; $7F - Character: '(c)' CHR$(127) +; #7F - Character: '(c)' CHR$(127) DEFB %00111100 DEFB %01000010 diff --git a/Shared_Includes b/Shared_Includes index 63faf9f..a0e68ce 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 63faf9f0823649cfb52e9fcaad430170a05b31a7 +Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1 diff --git a/TRDOS/TR_HDD_4.ASZ b/TRDOS/TR_HDD_4.ASZ index 0a155d6..1f777ab 100644 --- a/TRDOS/TR_HDD_4.ASZ +++ b/TRDOS/TR_HDD_4.ASZ @@ -241,29 +241,6 @@ RESTORE_CURRENT_DIR: ;ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл BOOT_PART_2: INCBIN 'build/boot.bin',248,181 .SIZE EQU $-BOOT_PART_2 -; -; vROM_BOOT: DI -; LD HL,BOOT_PART_1 -; LD DE,#5D3B -; LD BC,BOOT_PART_1.SIZE -; LDIR -; LD HL,BOOT_PART_2 -; LD BC,BOOT_PART_2.SIZE -; LDIR -; ; -; EI -; ; -; LD HL,#5EC9 -; LD (ZX_VARS.E_LINE),HL -; JP AUTO_012A -; ; -; ; RST RST20 ; ст ­Є. ЂЂЎЄ Ђ ЁуфЅр рЅЄ ЊтЈрЎЂ ­Јя -; ; DW #5D65 -; ; RET -; ; -; ; LD HL,#5D65 -; ; PUSH HL -; ; JP CMD_RETURN ;ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл DISPLAY "TR_HDD_4.ASZ size: ",/A,$-File_Start DISPLAY "===================================================="