Patch 8kbasic for AS Macro Assembler
authorSergey Kiselev <skiselev@gmail.com>
Wed, 22 Sep 2021 19:04:10 +0000 (12:04 -0700)
committerSergey Kiselev <skiselev@gmail.com>
Wed, 22 Sep 2021 19:04:10 +0000 (12:04 -0700)
software/8kbasic/8kbasic.asm

index adebe32..2cb6019 100644 (file)
@@ -93,17 +93,21 @@ PT_SUPP     EQU             0               ;1=ENABLE PAPER-TAPE SUPPPORT IN CONSOLE OUTPUT
 IMSAI  EQU             0               ;1=ENABLE IMSAI CASSETTE STORAGE COMMANDS
 ;
 
-       IF ROMSTRT = 0x8000     ;IF TESTING IN RAM, DON'T DESTROY MON85 VARS
+       IF ROMSTRT = 8000H      ;IF TESTING IN RAM, DON'T DESTROY MON85 VARS
 MON85  EQU             1               ;1=LEAVE MON85 RAM INTACT (DEBUGGING)
        ELSE
 MON85  EQU             0
        ENDIF
 
-       IF ACIA
-ACIAINI        EQU             1               ;Set to "1" to initialize the ACIA.
+       IF ROMSTRT = 0          ;INITIALIZE SERIAL PORT IF BASIC AT RESET VECTOR
+ACIAINI        EQU             1               ;1=INITALIZE ACIA
+UARTINI        EQU             1               ;1=INITALIZE UART
        ELSE
-ACIAINI        EQU             0
+ACIAINI        EQU             0               ;1=INITALIZE ACIA
+UARTINI        EQU             0               ;1=INITALIZE UART
        ENDIF
+       
+
 ;
 ; CPM EQUATES
 ;
@@ -117,21 +121,19 @@ CSTAT   EQU     3       ;OFFSET OF CONSOLE STATUS
 ;
 
 RUBOUT EQU             07FH    ;RUBOUT CHARACTER
-       IF ROMSTRT != 0
-FATAL   EQU     0CDH    ;OPCODE FOR FATAL ERROR IS "CALL" TO RST6
-       ELSE
+       IF ROMSTRT = 0
 FATAL   EQU     0F7H    ;OPCODE FOR FATAL IS RST 6
+       ELSE
+FATAL   EQU     0CDH    ;OPCODE FOR FATAL ERROR IS "CALL" TO RST6
        ENDIF
 ;
 BASIC:
-       IF !CPM
+       IF CPM = 0
         ORG     ROMSTRT
         LXI     H,RAM+1024
         MVI     A,0AEH  ;START OF INIT SEQUENCE
         JMP     INIT1   ;FINISH INIT
-       ENDIF
-;
-       IF CPM
+       ELSE
         ORG     TBASE
         JMP     INITC   ;USE TEMPORARY CODE AT END
        ENDIF
@@ -162,10 +164,10 @@ TSTC:   MOV     A,M     ;LOAD THE BYTE AT (H,L)
 RST2:
 COMP:   PUSH    B       ;SAVE B,C
         MVI     B,0     ;INIT COUNT
-       IF ROMSTRT != 0
-COMP1: CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 COMP1:  RST     1       ;SKIP SPACES
+       ELSE
+COMP1: CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         LDAX    D       ;GET CHAR TO MATCH WITH
         JMP     COMP2   ;CONTINUE ELSEWHERE
@@ -216,13 +218,13 @@ PRERR:  XTHL            ;SAVE HL, GET ERROR CODE PTR
         PUSH    D
         PUSH    B
         JMP     ERROR   ;CONTINUE
-       IF ROMSTRT != 0
-               DB              0,0             ;FILL IN SPACE TILL NEXT VECTOR
-       ELSE
+       IF ROMSTRT = 0
                DW              0,0             ;FILL IN SPACE TILL NEXT VECTOR
+       ELSE
+               DB              0,0             ;FILL IN SPACE TILL NEXT VECTOR
        ENDIF
 ;
-        IF !CPM
+        IF CPM = 0
         ORG     ROMSTRT+59      ;LEAVE 3 BYTES FOR DDT
         ENDIF
 ;
@@ -235,9 +237,9 @@ RST4A:
 RST4B:  DAD     D       ;BUMP H,L
         POP     D       ;RESTORE D,E
         RET             ;RETURN
-        DB      'COPYRIGHT (C)1977'
-        DB      'IMSAI MFG CORP'
-        DB      'SAN LEANDRO CA 94577 USA'
+        DB      "COPYRIGHT (C)1977"
+        DB      "IMSAI MFG CORP"
+        DB      "SAN LEANDRO CA 94577 USA"
 ;
 ; INITIALIZATION ROUTINE
 ; DETERMINE MEMORY SIZE.
@@ -246,8 +248,8 @@ RST4B:  DAD     D       ;BUMP H,L
 ; INIT SIO BOARD
 ;
 INIT1:
-       IF  NOT CPM
-       IF      UART
+       IF CPM = 0
+       IF UART = 1
 UARTB  EQU     08H             ;Base IO address of 8251 UART (IO)
 UARTD  EQU     UARTB           ;Data address
 UARTC  EQU     UARTB+1         ;Control address
@@ -256,6 +258,7 @@ UARTS       EQU     UARTB+1         ;Status address
 RX_MASK        EQU     00000010B       ;RXRDY flag bit in status byte
 TX_MASK        EQU     00000001B       ;TXRDY flag bit in status byte
 
+       IF UARTINI = 1
                ; Initialize the 8251 UART
                ; Must force setup mode with 3 consecutive NULL characters
                MVI             A,0             ; Insure not setup mode
@@ -266,7 +269,7 @@ TX_MASK     EQU     00000001B       ;TXRDY flag bit in status byte
                MVI             A,040H  ; Return to setup mode
                OUT             UARTC   ; write it
                ;Issue Mode Set
-       IF MSTRCLK      ;4.9152MHz Clock Source Selected
+       IF MSTRCLK = 1  ;4.9152MHz Clock Source Selected
                MVI             A,04EH  ; 8 data, 1 stop, x16 @ 4.5192MHz
        ELSE            ;3.6864MHz Clock Source Selected
                MVI             A,04DH  ; 8 data, 1 stop, x1 @ 3.6864MHz
@@ -277,8 +280,9 @@ TX_MASK     EQU     00000001B       ;TXRDY flag bit in status byte
                OUT             UARTC   ; Write it
                ;
        ENDIF
+       ENDIF
 ;
-       IF      ACIA
+       IF ACIA = 1
 ACIAB  EQU             0xC0    ;Base I/O address of ACIA
 ACIAC  EQU             ACIAB   ;ACIA Control address
 ACIAS  EQU             ACIAB   ;ACIA Status address
@@ -287,17 +291,17 @@ ACIAD     EQU             ACIAB+1 ;ACIA Data address
 TX_MASK        EQU      00000010B      ;ACIA TDRE bit
 RX_MASK        EQU      00000001B      ;ACIA RXRF bit
 
-       IF ACIAINI
+       IF ACIAINI = 1
                ;Initialize the 6850 ACIA
                MVI             A,003H  ;Master RESET first!
                OUT             ACIAC
-               IF MSTRCLK      ;4.9152MHz Clock Source Selected
+       IF MSTRCLK = 1  ;4.9152MHz Clock Source Selected
                MVI             A,016H  ;divide by 64 for 38400 Bd, 8 bit, no parity, 1 stop bit, no IRQ
-               ELSE            ;3.6864MHz Clock Source Selected
+       ELSE            ;3.6864MHz Clock Source Selected
                MVI             A,015H  ;divide by 16 for 115200 Bd, 8 bit, no parity, 1 stop bit, no IRQ
-               ENDIF
+       ENDIF
                OUT             ACIAC
-               ENDIF
+       ENDIF
        ENDIF
        ENDIF
 ;
@@ -314,10 +318,10 @@ INIT2:  MOV     A,M     ;GET A BYTE FROM MEMORY
                ; JQ - ADDED SO AS NOT TO OVERWRITE MON85 VARIABLES WHILE DEBUGGING
                IF MON85
                MOV             A,H             ;CHECK FOR END OF RAM HARDWALL
-               CPI             H(RAMEND)
+               CPI             RAMEND >> 8
                JNZ             INIT2   ;NOT HARDWARE, LOOP
                MOV             A,L
-               CPI             L(RAMEND)
+               CPI             RAMEND & 0FFH
                JNZ             INIT2   ;NOT HARDWARE, LOOP
                ELSE
         JNC     INIT2   ;LOOP
@@ -331,13 +335,13 @@ INIT3:  SPHL            ;SET STACK POINTER TO END OF MEMORY
 ; SOFTWARE WRITE PROTECT OF FIRST 9K OF RAM.
 ;
 ; BUT NO PROTECT UNDER CPM OR FOR 8K (EPROM) VERSION
-        IF      LARGE AND NOT CPM
+       IF LARGE = 1 && CPM = 0
         MVI     A,2     ;SET PROTECT OF FIRST 1K BLOCK
 PROTC:  OUT     0FEH    ;SEND IT
         ADI     4       ;ADDRESS NEXT 1K BLOCK
         CPI     26H     ;STOP AFTER 9 BLOCKS
         JNZ     PROTC   ;CONTINUE TO PROTECT
-        ENDIF
+    ENDIF
         XRA     A       ;GET A ZERO IN A
         PUSH    PSW     ;SET STACK 1 LEVEL DEEP WITHOUT A GOSUB
         LXI     H,0     ;CLEAR H,L
@@ -348,9 +352,9 @@ PROTC:  OUT     0FEH    ;SEND IT
         MVI     B,8     ;LOAD COUNT
         CALL    COPYD   ;COPY TO TRND<X> IN RAM TABLE
         MVI     M,2     ;SET RANDOM SWITCH
-        IF      CPM
+    IF CPM = 1
         CALL    NEW0    ;AUTOMATIC "NEW"
-        ENDIF
+       ENDIF
         LXI     H,VERS  ;POINT VERSION MESSAGE
 RDYM:   CALL    TERMM   ;WRITE IT
 ;
@@ -494,10 +498,10 @@ NEW     EQU     $
         PUSH    H       ;SAE PTR
         LXI     H,GETCM ;MAKE SUBROUTINE
         XTHL            ;RESTORE H
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;GET 1ST NON-BLANK CHAR AFTER 'NEW'
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         SBI     '*'     ;TEST
         JZ      NEW1    ;BRIF PROGRAM CLEAR ONLY
@@ -627,10 +631,10 @@ RUN2:   LDA     RUNSW   ;GET RUN TYPE
         INX     H       ;POINT 1ST PGM BYTE
 ;
 ; ENTER HERE TO DO IMMEDIATE COMMAND
-       IF ROMSTRT != 0
-RUN3:  CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 RUN3:   RST     1       ;SKIP BLANKS
+       ELSE
+RUN3:  CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
 RUN4:   SHLD    ADDR1   ;SAVE ADDR
         CALL    TSTCC   ;GO SEE IF CONTROL-C OR O
@@ -672,10 +676,10 @@ LIST    EQU     $
 ; DUMP THE SOURCE PROGRAM TO TTY OR PAPER TAPE
 ;
 ;
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         LXI     D,0     ;GET A ZERO IN D
         XCHG            ;FLIP TO H,L
@@ -692,18 +696,18 @@ LIST    EQU     $
         SHLD    LINEL   ;SAVE IT
         SHLD    LINEH   ;SAME
         XCHG            ;RESTORE H,L
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     ','     ;TEST IF COMMA
         JNZ     LIST1   ;BRIF NOT
         INX     H       ;POINT NEXT
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON-BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    PACK    ;ELSE, GO GET THE NUMBER
         MOV     H,B     ;COPY TO
@@ -840,10 +844,10 @@ PRINT   EQU     $
         XRA     A       ;CLEAR REG A
 PRIN4:  STA     PRSW    ;SET SW TO SAY CRLF AT END OF LINE
         LXI     D,IOBUF ;POINT BUFFER
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NEXT FIELD
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    TSTEL   ;TEST IF END OF STMT
         JZ      PRINC   ;BRIF IT IS
@@ -854,10 +858,10 @@ PRIN4:  STA     PRSW    ;SET SW TO SAY CRLF AT END OF LINE
         PUSH    D       ;SAVE D,E
         PUSH    H       ;SAVE H,L
         LXI     D,TABLI ;POINT LITERAL
-       IF ROMSTRT != 0
-               CALL    RST2    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO SEE IF TAB(XX)
+       ELSE
+               CALL    RST2    ;CALL TO RAM ADDRESS
        ENDIF
         JZ      PRINA   ;BRIF IS
         POP     H       ;ELSE, RESTORE H,L
@@ -950,32 +954,32 @@ FOR     EQU     $
         CALL    SEARC   ;GO LOCATE NAME
         XCHG            ;PUT ADDR IN H,L
         SHLD    ADDR1   ;SAVE ADDR
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         POP     H       ;RESTORE POINTER TO STMT
         LXI     D,TOLIT ;GET LIT ADDR
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     SNERR   ;BRIF ERROR
         CALL    EXPR    ;GO EVALUATE TO-EXPR
         PUSH    H       ;SAVE H,L
         LXI     H,TVAR1 ;POINT 'TO' VALUE
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LXI     H,ONE   ;POINT CONSTANT: 1
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     H       ;GET H,L
         MOV     A,M     ;GET THE CHAR
@@ -983,10 +987,10 @@ FOR     EQU     $
         JZ      FOR2    ;BRIF NO STEP
         PUSH    H       ;RE-SAVE
         LXI     D,STEPL ;TEST FOR LIT 'STEP'
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      FOR1    ;BRIF STEP
         POP     H       ;RESTORE H,L
@@ -995,10 +999,10 @@ FOR1:   POP     D       ;POP OFF THE STACK
         CALL    EXPR    ;GO EVALUATE EXPRESSION
 FOR2:   PUSH    H       ;SAVE H,L TO END OF STATEMENT
         LXI     H,TVAR2 ;POINT STEP VALUE
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         POP     H       ;RESTORE H,L
         CALL    EOL     ;ERROR IF NOT END-OF-LINE
@@ -1008,10 +1012,10 @@ FOR2:   PUSH    H       ;SAVE H,L TO END OF STATEMENT
         CALL    FTEST   ;GET STATUS OF FACC
         PUSH    PSW     ;SAVE A,STATUS
         LXI     H,TVAR1 ;GET END VALUE
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     PSW     ;RESTORE STATUS
         JP      FOR4    ;BRIF FOR IS POSITIVE
@@ -1046,10 +1050,10 @@ FOR6:   MOV     A,M     ;GET 1ST BYTE OF TABLE VARIABLE
         CMP     E       ;TEST IF EQUAL
         JZ      FOR8    ;BRIF EQUAL
 FOR7:
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      14
         INR     C       ;COUNT IT
@@ -1066,29 +1070,29 @@ FOR8:   MOV     A,C     ;GET UDPATE COUNT
         INX     H       ;POINT NEXT
         PUSH    H       ;SAVE H,L
         LXI     H,TVAR2 ;POINT STEP VALUE
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     H       ;RESTORE H,L
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         PUSH    H       ;SAVE H,L
         LXI     H,TVAR1 ;POINT 'TO' VALUE
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     H       ;RESTORE H,L
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         XCHG            ;FLIP/FLOP
         LHLD    ENDLI   ;GET END ADDR
@@ -1117,28 +1121,28 @@ FOR9:   LHLD    STMT    ;GET ADDRESS OF STATMENT
         ORA     A       ;SEE IF END OF PGM
         JZ      NXERR   ;BRIF IT IS
         SHLD    STMT    ;SAVE ADDRESS
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      3
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP SPACES
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         LXI     D,NEXTL ;POINT 'NEXT'
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     FOR9    ;LOOP IF NOT
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP SPACES
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         LDA     INDX+1  ;GET FIRST CHAR
         CMP     M       ;COMPARE
@@ -1149,10 +1153,10 @@ FOR9:   LHLD    STMT    ;GET ADDRESS OF STATMENT
         JZ      FORA    ;BRIF IT IS
         CMP     M       ;COMPARE THE TWO
         JNZ     FOR9    ;BRIF NOT EQUAL
-       IF ROMSTRT != 0
-FORA:  CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 FORA:   RST     1       ;SKIP TO END (HOPEFULLY)
+       ELSE
+FORA:  CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         MOV     A,M     ;GET THE NON BLANK
         ORA     A       ;SEE IF END
@@ -1179,10 +1183,10 @@ IFSTM   EQU     $
         CALL    COPYD   ;GO MOVE IT
         JMP     IF2     ;GO AROUND
 IF1:    LXI     H,TVAR1 ;GET ADDR OF TEMP STORAGE
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
 IF2:    POP     H       ;RESTORE H,L
         XRA     A       ;CLEAR A
@@ -1228,46 +1232,46 @@ IF6:    MOV     A,C     ;GET REL CODE
         RAR             ;TEST BIT D0
         JNC     IF8     ;BRIF NO EQUAL TEST
         CALL    FTEST   ;GET STATUS OF FACC
-        JZ      TRUE    ;BRIF LEFT=RIGHT
+        JZ      TRU     ;BRIF LEFT=RIGHT
 IF8:    LDA     REL     ;LOAD RELATION
         ANI     02H     ;MASK IT
         JZ      IF9     ;BRIF NO >
         CALL    FTEST   ;GET STATUS OF FACC
-        JM      TRUE    ;BRIF GT
+        JM      TRU     ;BRIF GT
 IF9:    LDA     REL     ;LOAD RELATION
         ANI     04H     ;MASK IT
-        JZ      FALSE   ;BRIF NO <
+        JZ      FALS    ;BRIF NO <
         CALL    FTEST   ;GET STATUS OF FACC
-        JM      FALSE   ;BRIF GT
-        JZ      FALSE   ;BRIF ZERO (NOT EQUAL)
-TRUE:   LHLD    ADDR1   ;GET POINTER TO STATEMENT
+        JM      FALS    ;BRIF GT
+        JZ      FALS    ;BRIF ZERO (NOT EQUAL)
+TRU   LHLD    ADDR1   ;GET POINTER TO STATEMENT
         LXI     D,GOTOL ;POINT 'GO TO'
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      GOTO    ;BRIF IF ... GOTO NN
         LHLD    ADDR1   ;GET POINTER TO STATEMENT
         LXI     D,GOSBL ;POINT LITERAL
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      GOSUB   ;BRIF IF ... GOSUB NN
         LHLD    ADDR1   ;GET POINTER TO STATEMENT
         LXI     D,THENL ;GET ADDR 'THEN'
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     SNERR   ;BRIF ERROR
         CALL    NUMER   ;TEST IF NUMERIC
         JZ      GOTO    ;BRIF IT IS
         JMP     RUN4    ;ELSE, MAY BE ANY STMT
-FALSE   EQU     RUN
+FALS    EQU     RUN
 IFF:    LXI     H,IOBUF ;POINT PRIOR
         MOV     B,M     ;GET LEN
         LXI     D,STRIN ;POINT THIS
@@ -1302,8 +1306,8 @@ IFK:    MOV     A,B     ;GET LEFT LEN
         MVI     B,1     ;SET SW= EQUAL
 IFL:    LDA     REL     ;GET RELATION
         ANA     B       ;AND WITH RESULT
-        JZ      FALSE   ;BRIF FALSE
-        JMP     TRUE    ;ELSE, TRUE
+        JZ      FALS    ;BRIF FALSE
+        JMP     TRU     ;ELSE, TRUE
 IFM:    MVI     B,2     ;SET CODE
         JMP     IFL     ;JUMP
 IFN:    MVI     B,4     ;SET CODE
@@ -1316,10 +1320,10 @@ LET     EQU     $
         CALL    GETS8   ;GO GET ADDRESS OF VARIABLE
         PUSH    B       ;SAVE NAME
         PUSH    D       ;SAVE ADDRESS
-       IF ROMSTRT != 0
-               CALL    RST1    ;GET NEXT NON-BLANK CHAR
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;GET NEXT NON-BLANK CHAR
+       ELSE
+               CALL    RST1    ;GET NEXT NON-BLANK CHAR
        ENDIF
         CPI     '='     ;TEST FOR EQUAL SIGN
         JZ      LET1    ;BRIF IS
@@ -1340,10 +1344,10 @@ LET1:   INX     H       ;POINT NEXT
         JM      LET2    ;BRIF STRING
         CPI     0E3H    ;TEST IF NUMERIC
         JNZ     SNERR   ;BRIF MIXED MODE
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         JMP     RUN     ;CONTINUE
 LET2:   CPI     0E7H    ;TEST IF STRING
@@ -1409,10 +1413,10 @@ LET7:   CMA             ;1'S COMPLEMENT
         MOV     M,B     ;STORE HI LEN
         DCX     H       ;POINT NEXT
         MOV     M,C     ;STORE LO LEN
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      3
         DAD     B       ;COMPUTE END OF ENTRY
@@ -1455,10 +1459,10 @@ NEXT1:  MOV     A,M     ;GET 1ST BYTE
         CMP     E       ;COMPARE
         JZ      NEXT3   ;BRIF EQUAL
 NEXT2:
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      13
         DCR     B       ;DECR COUNT
@@ -1473,26 +1477,26 @@ NEXT3:  LDA     FORNE   ;GET ORIG COUNT
         CALL    SEARC   ;GO GET ADDR OF INDEX
         XCHG            ;PUT TO H,L
         SHLD    ADDR1   ;SAVR IT
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     H       ;GET H,L (TBL)
         PUSH    H       ;RE-SAVE
         CALL    FADD    ;ADD STEP VALUE
         LXI     H,TVAR1 ;POINT TEMP AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         POP     H       ;GET H,L (TBL)
         PUSH    H       ;RE-SAVE
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      4
         CALL    FSUB    ;SUBTRACT TO VALUE
@@ -1512,10 +1516,10 @@ NEXT7:  LXI     H,FORNE ;GET ADDR TABLE
 NEXT5:  ORA     A       ;TEST SIGN OF DIFFERENCE
         JM      NEXT7   ;BRIF END OF LOOP
 NEXT6:  POP     H       ;GET PTR TO TBL
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      8
         MOV     D,M     ;GET HI BYTE
@@ -1533,16 +1537,16 @@ NEXT6:  POP     H       ;GET PTR TO TBL
         INX     H       ;POINT LINE NUM
         SHLD    LINE    ;SAVE ADDR LINE
         LXI     H,TVAR1 ;POINT UPDTED VALUE
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         LHLD    ADDR1   ;GET ADDR OF INDEX
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         JMP     RUN     ;CONTINUE WITH STMT AFTER FOR
 INPUT   EQU     $
@@ -1553,10 +1557,10 @@ INPUT   EQU     $
 ;
         LXI     D,LLINE ;POINT 'LINE'
         PUSH    H       ;SAVE H,L ADDR
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      INPL    ;BRIF EQUAL
         POP     D       ;ELSE, RESTORE H,L ADDR
@@ -1564,10 +1568,10 @@ INPUT   EQU     $
         SHLD    ADDR1   ;SAVE ADDR
         MVI     M,0     ;MARK BUFFER EMPTY
         XCHG            ;FLIP/BACK
-       IF ROMSTRT != 0
-INPU1: CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 INPU1:  RST     1       ;SKIP SPACES
+       ELSE
+INPU1: CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     27H     ;TEST IF QUOTE
         JZ      INPU2   ;BRIF IS
@@ -1587,10 +1591,10 @@ INPU4:  INX     H       ;SKIP TRAILING QUOTE
         MVI     M,0FEH  ;MARK END
         CALL    TERMO   ;GO PRINT PROMPT
         XCHG            ;GET H,L
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     ','     ;TEST IF COMMA
         JZ      INPU5   ;BRIF IS
@@ -1607,19 +1611,19 @@ INPU6:  CALL    GETS8   ;GO GET VAR ADDR
         JZ      INPU7   ;BRIF CONTINUE FROM PREV
         MVI     A,'?'   ;LOAD PROMPT
         CALL    TERMI   ;GO READ FROM TTY
-       IF ROMSTRT != 0
-INPU7: CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 INPU7:  RST     1       ;SKIP SPACES
+       ELSE
+INPU7: CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         MOV     A,C     ;GET LO NAME
         ORA     A       ;TEST IT
         JM      INPUA   ;BRIF STRING
         CALL    FIN     ;GO CONVERT TO FLOATING
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP SPACES
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     ','     ;TEST IF COMMA
         JZ      INPU8   ;BRIF IS
@@ -1627,10 +1631,10 @@ INPU7:  RST     1       ;SKIP SPACES
         JNZ     CVERR   ;BRIF ERROR
 INPU8:  SHLD    ADDR1   ;SAVE ADDRESS
         POP     H       ;GET VAR ADDR
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
 INPU9:  POP     H       ;RESTORE STMT POINTER
         MOV     A,M     ;GET CHAR
@@ -1684,10 +1688,10 @@ READ    EQU     $
 ;
 ; STMT: READ VAR [,VAR ...]
 ;
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP BLANKS
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    GETS8   ;GET VAR ADDR
         PUSH    H       ;SAVE H,L
@@ -1701,17 +1705,17 @@ READ1:  MOV     A,M     ;LOAD LEN
         SHLD    DATAP   ;SAVE ADDR
         ORA     A       ;TEST IF END OF PGM
         JZ      DAERR   ;BRIF OUT OF DATA
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      3
         LXI     D,DATAL ;POINT 'DATA'
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      READ2   ;BRIF IT IS DATA STMT
         LHLD    DATAP   ;GET ADDR START
@@ -1719,10 +1723,10 @@ READ1:  MOV     A,M     ;LOAD LEN
         MVI     D,0     ;CLEAR D
         DAD     D       ;POINT NEXT STMT
         JMP     READ1   ;LOOP NEXT STMT
-       IF ROMSTRT != 0
-READ2: CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 READ2:  RST     1       ;SKIP SPACES
+       ELSE
+READ2: CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         MOV     A,C     ;LOAD LO NAME
         ORA     A       ;TEST IT
@@ -1734,10 +1738,10 @@ READ2:  RST     1       ;SKIP SPACES
         INX     H       ;POINT NEXT
 READ3:  SHLD    DATAP   ;SAVE ADDRESS
         POP     H       ;RESTORE ADDR OF VAR
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
 READ4:  POP     H       ;RESTORE POINTER TO STM
         MOV     A,M     ;GET THE CHAR
@@ -1842,18 +1846,18 @@ ON      EQU     $
         STA     REL     ;TURN OFF SWITCH
         LXI     D,GOTOL ;POINT LITERAL
         PUSH    H       ;SAVE H,L ADDRESS
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      ON3     ;BRIF ON...GOTO
         POP     H       ;ELSE, RESTORE H,L
         LXI     D,GOSBL ;POINT LITERAL
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     SNERR   ;BRIF ERROR
         MVI     A,1     ;GET ON SETTING
@@ -1863,10 +1867,10 @@ ON3:    POP     D       ;ADJUST STACK
 ON3A:   MOV     A,C     ;GET COUNT
         ORA     A       ;TEST IT
         JZ      ON6     ;BRIF VALUE 1
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;ELSE, SKIP BLANKS
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         ORA     A       ;TEST IF END OF LINE
         JZ      SNERR   ;BRIF IS
@@ -1912,10 +1916,10 @@ CHANG   EQU     $
         CALL    SEARC   ;GET ADDR
         PUSH    D       ;SAVE IT
         LXI     D,TOLIT ;POINT 'TO'
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     SNERR   ;BRIF ERROR
         CALL    VAR     ;GET NEXT VARIABLE
@@ -1923,12 +1927,12 @@ CHANG   EQU     $
         ORI     80H     ;SET MASK FOR ARRAY
         MOV     D,A     ;REPLACE
         CALL    SEARC   ;GET ADDRESS
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -11 AND 0FFH
+        DB      -11
         POP     D       ;GET PTR TO STMT
         XCHG            ;FLIP
         CALL    EOL     ;NEXT MUST BE E-O-L
@@ -1942,17 +1946,17 @@ CHA1:   PUSH    B       ;SAVE CTR
         PUSH    H       ;SAVE ADDR NUM
         CALL    FDEC    ;CONVERT TO F.P.
         POP     H       ;GET ADDR
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
-       ENDIF
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
        ELSE
+               CALL    RST3    ;GO STORE THE VALUE
+       ENDIF
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -8 AND 0FFH
+        DB      -8
         POP     D       ;RESTORE STRING
         POP     B       ;AND CTR
         INX     D       ;POINT NEXT CHAR
@@ -1966,18 +1970,18 @@ CHA2:   MOV     A,D     ;GET HI NAME
         ORI     80H     ;MAKE ARRAY NAME
         MOV     D,A     ;SAVE
         CALL    SEARC   ;GET ADDR
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -11 AND 0FFH
+        DB      -11
         XTHL            ;SAVE ON STACK
         LXI     D,TOLIT ;POINT 'TO'
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     SNERR   ;BRIF ERROR
         CALL    VAR     ;GET NAME
@@ -1990,17 +1994,17 @@ CHA2:   MOV     A,D     ;GET HI NAME
         PUSH    D       ;SAVE D,E
         LXI     D,STRIN ;POINT STRING BUFFER
         PUSH    D       ;SAVE IT
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
-       ENDIF
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
        ELSE
+               CALL    RST5    ;LOAD IT
+       ENDIF
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -8 AND 0FFH
+        DB      -8
         PUSH    H       ;SAVE H,L
         CALL    FBIN    ;CONVERT
         POP     H       ;RESTORE
@@ -2011,17 +2015,17 @@ CHA3:   STAX    D       ;PUT TO STRING
         INX     D       ;POINT NEXT STR LOC.
         PUSH    B       ;SAVE CTRS
         PUSH    D       ;AND AD^DR
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
-       ENDIF
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
        ELSE
+               CALL    RST5    ;LOAD IT
+       ENDIF
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -8 AND 0FFH
+        DB      -8
         PUSH    H       ;AND H ADDR
         CALL    FBIN    ;CONVERT
         POP     H       ;RESTORE H,L
@@ -2173,10 +2177,10 @@ SIN1:   POP     PSW     ;COMPLEMENT SIGN FOR EACH PI SUB'D
 ; INIT REGISTERS
 ;
         LXI     H,TEMP1 ;POINT IT
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LDA     FACC    ;GET SIGN&EXPONENT
         CALL    FEXP    ;EXPAND EXPON.
@@ -2189,10 +2193,10 @@ SIN1:   POP     PSW     ;COMPLEMENT SIGN FOR EACH PI SUB'D
 SIN3A:  LXI     H,HALFP ;POINT PI/2
         CALL    FDIV    ;COMPUTE X/PI/2
         LXI     H,TEMP2 ;POINT T2
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LXI     H,TEMP2 ;POINT BACK
         CALL    FMUL    ;COMPUTE SQUARE
@@ -2211,10 +2215,10 @@ SIN3A:  LXI     H,HALFP ;POINT PI/2
 ;
 EVPS:   PUSH    H       ;SAVE POINTER TO COEFFICIENTS
         LXI     H,TEMP3 ;SAVE FACC
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         POP     H       ;RESTORE H
         PUSH    H
@@ -2224,12 +2228,12 @@ EVPS1:  PUSH    H       ;SAVE PTR TO NEXT COEFFICIENT
         LXI     H,TEMP3 ;POINTER TO X^N
 EVPS2:  CALL    FMUL    ;FACC*X^N->FACC
         POP     H       ;COEFFICENT PTR
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -4 AND 0FFH
+        DB      -4
         MOV     A,M     ;GET EXPONENT
         DCR     A       ;TEST FOR 1
         JNZ     EVPS1   ;BRIF NOT 1
@@ -2260,23 +2264,23 @@ TAN     EQU     $
 ;          COS(X)
 ;
         LXI     H,TEMP4 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         CALL    COS     ;COMPUTE COS(X)
         LXI     H,TEMP7 ;SAVE COS(X)->TEMP7
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LXI     H,TEMP4 ;MOVE X->FACC
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
 
         CALL    SIN     ;COMPUTE SINE
@@ -2297,34 +2301,34 @@ ATN     EQU     $
 ATN1:   LXI     H,ONE   ;POINT: 1
         CALL    FADD    ;GO ADD
         LXI     H,TEMP1 ;POINT SAVE
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LXI     H,TWO   ;POINT: 2
         CALL    FSUB    ;GO SUBTRACT
         LXI     H,TEMP1 ;POINT SAVED
         CALL    FDIV    ;DIVIDE
         LXI     H,TEMP2 ;POINT SAVE
-       IF ROMSTRT != 0
-               CALL    RST3    ;SAVE X'=(X-1)/(X+1)
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;SAVE X'=(X-1)/(X+1)
+       ELSE
+               CALL    RST3    ;SAVE X'=(X-1)/(X+1)
        ENDIF
         LXI     H,QTRPI ;X'+PI/4 -> TEMP1
         CALL    FADD
         LXI     H,TEMP1
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         PUSH    H       ;SAVE PTR TO TEMP2
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     H
         CALL    FMUL    ;FACC=X'*X'
@@ -2341,10 +2345,10 @@ LN      EQU     $
         JM      ZMERR   ;LN(-X)=NO NO
         JZ      ZMERR   ;LN(0)=NO NO ALSO
         LXI     H,TEMP2 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LDA     FACC    ;GET EXPON
         CALL    FEXP    ;EXPAND TO 8 BITS
@@ -2360,15 +2364,15 @@ LN1:    SBI     1       ;MINUS ONE
 LN2:    LXI     H,LN2C  ;POINT LN(2)
         CALL    FMUL    ;MULTIPLY
         LXI     H,TEMP1 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
-       ENDIF
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
        ELSE
+               CALL    RST3    ;GO STORE THE VALUE
+       ENDIF
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         MVI     A,1     ;GET EXPONENT: 1
         STA     FACC    ;ADJUST TO RANGE (1,2)
@@ -2400,16 +2404,16 @@ EXP     EQU     $
         CALL    NEG     ;ELSE, REVERSE SIGN
         CALL    EXP1    ;COMPUTE POSITIVE EXP
         LXI     H,TEMP1 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LXI     H,ONE   ;POINT 1
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
 
         LXI     H,TEMP1 ;POINT PREV
@@ -2418,22 +2422,22 @@ EXP     EQU     $
 EXP1:   LXI     H,LN2E  ;POINT LN BASE 2 OF E
         CALL    FMUL    ;FACC=X*(LN2E)
         LXI     H,TEMP3 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         CALL    INT     ;FACC=INT(X*LN2E)
         LXI     H,TEMP4 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
-       ENDIF
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
        ELSE
+               CALL    RST3    ;GO STORE THE VALUE
+       ENDIF
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LDA     FACC    ;GET THE EXPONENT COUNT
         MOV     B,A     ;SAVE COUNT IN B
@@ -2446,27 +2450,27 @@ ELOOP:  RLC             ;ROTATE LEFT
         MVI     A,80H   ;LOAD CONSTANT
         STA     TEMP4+1 ;STORE AS MANTISSA
         LXI     H,ONE   ;1 -> TEMP1, TEMP2
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
 
         LXI     H,TEMP1
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
-       ENDIF
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
        ELSE
-        RST     3       ;GO STORE THE VALUE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD TEMP3=INT(X*LN2E)
+       IF ROMSTRT = 0
+        RST     3       ;GO STORE THE VALUE
        ELSE
+               CALL    RST3    ;GO STORE THE VALUE
+       ENDIF
+       IF ROMSTRT = 0
         RST     5       ;LOAD TEMP3=INT(X*LN2E)
+       ELSE
+               CALL    RST5    ;LOAD TEMP3=INT(X*LN2E)
        ENDIF
         LXI     H,TEMP5 ;GET FACC=FP(X*LN2E)
         CALL    FSUB
@@ -2502,10 +2506,10 @@ SGN     EQU     $
 SGN1:   ORI     1       ;CREATE EXPONENT
         PUSH    PSW     ;SAVE IT
         LXI     H,ONE   ;GET ADDRESS OF CONSTANT 1
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     PSW     ;RESTORE SIGN
         STA     FACC    ;SET THE SIGN
@@ -2572,10 +2576,10 @@ SQR     EQU     $
         XRA     A       ;GET A ZERO
         STA     FACC    ;PUT ARG IN RANGE [.5, 1]
         LXI     H,TEMP2 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
 ;
 ; INITIAL APPROXIMATION 0.41730759 + 0.59016206 * MANTISSA
@@ -2585,10 +2589,10 @@ SQR     EQU     $
         LXI     H,SQC2  ;PINT .4173
         CALL    FADD    ;GO ADD
         LXI     H,TEMP1 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
 ;
 ; NEWTON'S METHOD OF ITERATION TO THE APPROXIMATE
@@ -2596,10 +2600,10 @@ SQR     EQU     $
 ;
         CALL    SQR1    ;FIRST ITERATION
         LXI     H,TEMP1 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         CALL    SQR1    ;SECOND ITERATION
 ;
@@ -2617,10 +2621,10 @@ SQR     EQU     $
 ; TO THE SQUARE ROOT FUNCTION
 ;
 SQR1:   LXI     H,TEMP2 ;POINT MANTISSA
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         LXI     H,TEMP1 ;POINT PREV GUESS
         CALL    FDIV    ;FORM MANT/TEMP1
@@ -2649,10 +2653,10 @@ RND     EQU     $
 ;
 ;
         LXI     H,TEMP7 ;SAVE ARG
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         MVI     B,4     ;LOOP CTR
         LXI     H,FACC  ;POINT FLOAT ACCUM
@@ -2827,12 +2831,12 @@ CONC6:  MOV     A,M     ;GET A BYTE
         DCR     C       ;SUBT CTR
         JNZ     CONC6   ;LOOP
         POP     H       ;RESTORE H,L
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -7 AND 0FFH
+        DB      -7
         MVI     A,4     ;DELETE 4 BYTES
         CALL    SQUIS   ;GO COMPRESS
         JMP     EVAL    ;CONTINUE EVALUATION
@@ -3135,17 +3139,17 @@ FN2:    MOV     A,M     ;LOAD LEN TO NEXT STMT
         ORA     A       ;TEST IF AT END
         JZ      SNERR   ;BRIF FN NOT FOUND
         PUSH    H       ;SAVE PTR
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      3
         LXI     D,DEFLI ;LITERAL
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     FN3     ;BRIF NOT EQUAL
         PUSH    B       ;SAVE TEST NAME
@@ -3163,10 +3167,10 @@ FN3:    POP     H       ;GET OLD PTR
         DAD     D       ;POINT NEXT STMT
         JMP     FN2     ;LOOP
 FN4:    POP     D       ;ADJUST STACK
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP BLANKS
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     '('     ;TEST IF OPEN PAREN
         JNZ     SNERR   ;BRIF NOT
@@ -3189,18 +3193,18 @@ FN4:    POP     D       ;ADJUST STACK
         MOV     A,M     ;GET LO ADDR
         STAX    D       ;PUT TO TABLE
         POP     H       ;RESTORE PTR TO STMT
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP BLANKS
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     ')'     ;TEST IF CLOSE PAREN
         JNZ     SNERR   ;BRIF NOT
         INX     H       ;SKIP IT
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP BLANKS
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     '='     ;TEST IF EQUAL SIGN
         JNZ     SNERR   ;BRIF NOT
@@ -3230,10 +3234,10 @@ FN4:    POP     D       ;ADJUST STACK
         POP     D       ;GET D,E
         DCX     H       ;POINT 2ND BYTE FOLLOWING OP
         SHLD    ADDR2   ;SAVE IT
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      5
         SHLD    ADDR1   ;SAVE ADDR
@@ -3259,10 +3263,10 @@ EXPR    EQU     $
         XCHG            ;RESTORE H,L
 ;
 LOOKD   EQU     $       ;LOOK FOR CON, VAR, OR FUNCTION
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON-BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    NUMER   ;GO TEST IF NUMERIC
         JNZ     LDALP   ;BRIF NOT
@@ -3286,10 +3290,10 @@ LDALP:  CPI     '.'     ;SEE IF LEADING DECIMAL POINT
         JNZ     LDFN    ;BRIF NOT
         INX     H       ;POINT NEXT
         MOV     C,A     ;SAVE THE CHAR
-       IF ROMSTRT != 0
-LDV1:  CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 LDV1:   RST     1       ;GET NEXT CHAR
+       ELSE
+LDV1:  CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     '$'     ;TEST IF STRING
         PUSH    PSW     ;SAVE STATUS
@@ -3298,10 +3302,10 @@ LDV1:   RST     1       ;GET NEXT CHAR
         ORI     80H     ;SET STRING
         MOV     C,A     ;SAVE IT
         INX     H       ;SKIP $
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP SPACES
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
 LDV2:   CPI     '('     ;TEST IF PAREN
         JZ      LDV2A   ;BRIF IS
@@ -3328,28 +3332,28 @@ LDFN1:  DCX     H       ;POINT BACK TO 1ST
         JZ      LDFN1   ;LOOP IF TRUE
         PUSH    H       ;SAVE H,L
         LXI     D,RNDLI ;POINT LITERAL
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      LDRND   ;BRIF FND
         POP     H       ;GET H,L
         PUSH    H       ;RESAVE
         LXI     D,FNLIT ;POINT LITERAL
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      FNL     ;BRIF IS
         POP     H       ;GET H,L
         PUSH    H       ;RESAVE
         LXI     D,PILIT ;POINT LIT
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JZ      LDPI    ;BRIF PI
 FUNC0:  POP     H       ;GET H,L
@@ -3362,10 +3366,10 @@ FUNC0:  POP     H       ;GET H,L
         INX     D       ;POINT NEXT
         LDAX    D       ;GET HI BYTE
         MOV     B,A     ;SAVE IT (B,C = ADDR OF FUNC)
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;GET 1ST NON-BLANK CHAR AFTER 'NEW'
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     '('     ;TEST FOR OPEN PAREN
         JNZ     SNERR   ;BRIF MISSING PAREN
@@ -3395,10 +3399,10 @@ FNL:    POP     D       ;DUMMY RESET STACK POINTER
         MVI     M,0CFH  ;MOVE CODE
 FNL3:   SHLD    EXPRS   ;SAVE POINTER
         XCHG            ;GET H,L
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;GET NEXT CHAR
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     '('     ;TEST IF OPEN PAREN
         JNZ     SNERR   ;BRIF NOT
@@ -3407,10 +3411,10 @@ LDRND:  CPI     '('     ;TEST IF RND(X)
         JZ      FUNC0   ;BRIF IS
         PUSH    H       ;ELSE, SAVE H,L
         LXI     H,ONE   ;USE RANGE (0,1)
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         CALL    RND     ;GO GET RANDOM NUMBER
         POP     H       ;RESTORE H,L
@@ -3514,10 +3518,10 @@ CERCE:  XCHG            ;SAVE H,L
         SHLD    EXPRS   ;SAVE ADDR
         XCHG            ;RESTORE H,L
         JMP     SKPP    ;GO SKIP CHAR
-       IF ROMSTRT != 0
-LOOKO: CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
 LOOKO:  RST     1       ;SKIP BLANKS
+       ELSE
+LOOKO: CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CPI     '+'     ;TEST IF PLUS
         MVI     B,21H   ;CODE
@@ -3566,12 +3570,12 @@ OPLP2:  INR     D       ;BUMP BYTE COUNT
         CMP     C       ;PRECEDENCE REDUCTION?
         JNC     INS     ;IF NC, YES, INSERT 05
         LHLD    EXPRS   ;NO, INSERT OPCODE BEFORE VAR AT END
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -3 AND 0FFH
+        DB      -3
         MVI     D,4     ;BYTE COUNT
         MOV     E,B     ;INSERT THIS OP CODE
 INS:    MOV     B,E     ;SAVE FOR BRANCH AFTER INSERTION
@@ -3664,10 +3668,10 @@ EV3     EQU     $       ;FUNCTIONS RETURN HERE
         DAD     SP      ;GET STACK ADDR
         PUSH    B       ;SAVE CTRS
         PUSH    H       ;SAVE ADDR
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         MVI     A,0E3H  ;TYPE=NUM
 EV3A:   POP     D       ;GET ADDR IN STACK
@@ -3682,12 +3686,12 @@ EV3A:   POP     D       ;GET ADDR IN STACK
         INX     H       ;POINT TYPE
         MOV     A,M     ;LOAD TYPE
         MOV     B,M     ;GET TYPE
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -3 AND 0FFH
+        DB      -3
         MOV     A,B     ;LOAD TYPE
         POP     B       ;RESTORE CTRS
         ANI     18H     ;ISOLATE #ARGS
@@ -3817,30 +3821,30 @@ FADDJ:  CPI     0E7H    ;TEST IF STRINGS
         JMP     FADD    ;ELSE, GO ADD
 POWER:  PUSH    H       ;SAVE ADDR OF VAR
         LXI     H,TEMP1 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         POP     H       ;RESTORE H,L
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         CALL    FTEST   ;TEST FOR ZERO
         JZ      SGN1    ;GIVE RESULT = 1 IF POWER = 0
         LXI     H,TEMP7 ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LXI     H,TEMP1 ;POINT X
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         CALL    FTEST   ;TEST FOR ZERO
         RZ              ;0^X = 0
@@ -3850,10 +3854,10 @@ POWER:  PUSH    H       ;SAVE ADDR OF VAR
         JMP     EXP     ;GET EXP FUNC
 ; X^B = EXP(B*LN(X))
 XSQR:   LXI     H,TEMP1 ;POINT X
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         LXI     H,TEMP1 ;POINT X
         JMP     FMUL    ;TIMES X
@@ -3862,12 +3866,12 @@ EV11:   POP     H       ;GET H,L
         DCX     H       ;POINT BACK
         DCX     H       ;AND AGAIN
         CALL    GTEMP   ;GO SAVE FACC
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -7 AND 0FFH
+        DB      -7
         MVI     A,4     ;DELETE 4 BYTES
         CALL    SQUIS   ;GO COMPRESS
         JMP     EVAL    ;CONTINUE
@@ -3883,12 +3887,12 @@ EVNEG:  INX     H       ;POINT BACK TO OP
         POP     H       ;GET LOCATINO
         POP     B       ;GET CTRS
         CALL    GTEMP   ;GO STORE FACC IN STACK
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -4 AND 0FFH
+        DB      -4
 EVCOM:  MVI     A,1     ;DELETE 1 BYTE
         CALL    SQUIS   ;COMPRESS
         LXI     H,CMACT ;GET COUNT
@@ -3924,10 +3928,10 @@ EDM2A:  POP     H       ;RESTORE H,L
         RET             ;RETURN
 EDM3:   CPI     2       ;TEST IF 2
         JNZ     SNERR   ;ELSE, ERROR
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      5
         MOV     D,M     ;GET HI ADDR
@@ -3935,10 +3939,10 @@ EDM3:   CPI     2       ;TEST IF 2
         MOV     E,M     ;GET LO ADDR
         CALL    EVLD    ;LOAD THE ARG
         LXI     H,TEMP1 ;POINT AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         JMP     EDM2A   ;CONTINUE
 EDM4:   CALL    FACDE   ;CONVERT FACC TO D,E
@@ -3946,10 +3950,10 @@ EDM4:   CALL    FACDE   ;CONVERT FACC TO D,E
         POP     B
         PUSH    B       ;SAVE COL
         LXI     H,TEMP1 ;POINT 2ND ARGUMENT
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         CALL    FACDE   ;CONVERT TO D,E
         POP     B       ;GET COL
@@ -4034,10 +4038,10 @@ FIN2:   POP     PSW     ;GET SIGN
         CPI     'E'     ;TEST IF EXPONENT
         JNZ     FIN4    ;BRIF NOT
         LXI     H,FTEMP ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         POP     D       ;RESTORE PTR
         INX     D       ;SKIP 'E'
@@ -4053,10 +4057,10 @@ FIN3:   POP     B       ;POWER OF TEN
         PUSH    PSW     ;SAVE COUNT
         LXI     H,FTEMP ;RESTORE NUMBER
         PUSH    D       ;SAVE PTR
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
 FIN4:   POP     H       ;RESTORE PTR
         POP     PSW     ;RESTORE COUNT
@@ -4109,10 +4113,10 @@ FIN9:   INX     D       ;POINT NEXT
         ORA     A       ;TEST FOR OVERFLOW
         JZ      FINB    ;BRIF NO OVERFLOW
         LXI     H,FTEMP+4
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         POP     B       ;RESTORE COUNTERS
         INR     C       ;EXCESS DIGIT
@@ -4138,10 +4142,10 @@ FINB:   POP     B       ;RSTORE COUNTERS
 ; MULTIPLY FACC BY TEN
 ;
 FMTEN:  LXI     H,FTEMP+4
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         CALL    FIND    ;*2
         CALL    FIND    ;*4
@@ -4198,10 +4202,10 @@ FOUT5:  CALL    FDIV    ;DIVIDE
 FOUT6:  CPI     5       ;TEST HIGH RANGE
         JP      FOUT4   ;BRIF 5 OR GREATER
         LXI     H,FTEMP ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         LDA     FACC    ;GET EXPONENT
         CALL    FEXP    ;EXPAND
@@ -4210,10 +4214,10 @@ FOUT6:  CPI     5       ;TEST HIGH RANGE
         CPI     10      ;TEST IF DECIMAL POINT
         JM      FOUTU   ;BRIF LT
         LXI     H,FTEMP ;POINT SAVE AREA
-       IF ROMSTRT != 0
-               CALL    RST5    ;LOAD IT
-       ELSE
+       IF ROMSTRT = 0
         RST     5       ;LOAD IT
+       ELSE
+               CALL    RST5    ;LOAD IT
        ENDIF
         JMP     FOUT4   ;ONCE MORE
 FOUTU:  CALL    FOUT9   ;PUT DIGIT
@@ -4267,7 +4271,7 @@ FOUTH:  POP     H       ;GET PTR
         INR     A       ;PLUS ONE
 FOUTI:  INX     H       ;POINT NEXT
         PUSH    H       ;SAVE PTR
-        MVI     E,-1 AND 0FFH   ;INIT CTR (TENS)
+        MVI     E,-1    ;INIT CTR (TENS)
 FOUTJ:  INR     E       ;ADD ONE
         SUI     10      ;LESS 10
         JP      FOUTJ   ;LOOP
@@ -4282,7 +4286,7 @@ FOUTJ:  INR     E       ;ADD ONE
         MOV     A,D     ;GET DEC EXPON
         ORA     A       ;SET FLAGS
         JP      FOUTK   ;BRIF POS.
-        CPI     -2 AND 0FFH     ;TEST FOR MIN
+        CPI     -2      ;TEST FOR MIN
         RC              ;RETURN IF LESS THAN -2
         JMP     FOUTL   ;GO AROUND
 FOUTK:  CPI     6       ;TEST IF TOO BIG
@@ -4696,10 +4700,10 @@ GETS1:  CPI     ','     ;TEST IF COMMA
         INX     D       ;POINT NEXT
         STAX    D       ;PUT CHAR
         INX     H       ;POINT NEXT
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         JMP     GETS1   ;LOOP
 GETS2:  MOV     C,A     ;SAVE DELIM
@@ -4714,10 +4718,10 @@ GETS3:  INX     H       ;SKIP THE QUOTE
         STAX    D       ;PUT CHAR
         JMP     GETS3   ;LOOP
 GETS4:  INX     H       ;SKIP END QUOTE
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO TRAILING SPACES
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
 GETS5:  LXI     D,STRIN ;POINT BEGIN BUFFER
         MOV     A,B     ;GET COUNT
@@ -4773,12 +4777,12 @@ SUBSC   EQU     $
 ;        H HAS ADDR NAME
 ;
         PUSH    D       ;SAVE COL
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -4 AND 0FFH     ;BY FOUR
+        DB      -4      ;BY FOUR
         MOV     D,M     ;GET HI
         DCX     H       ;POINT LO
         MOV     E,M     ;GET LO
@@ -4826,12 +4830,12 @@ SUB4:   DAD     B       ;ADD TO PROD
         MOV     D,A     ;SAVE
         POP     H       ;GET ADDR (0,0)
         DAD     D       ;COMPUTE (I,J) RIGHT SIDE
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
-        DB      -4 AND 0FFH
+        DB      -4
         RET             ;RETURN
 FTEST   EQU     $
 ;
@@ -4899,7 +4903,7 @@ TERMI   EQU     $
 ; FIRST PROMPT WITH THE CHAR IN THE A REG
 ; TERMINATE THE LINE WITH A X'00'
 ; IGNORE EMPTY LINES
-; CONTROL C WILL CANCLE THE LINE
+; CONTROL C WILL CANCEL THE LINE
 ; CONTROL O WILL TOGGLE THE OUTPUT SWITCH
 ; RUBOUT WILL DELETE THE LAST CHAR INPUT
 ;
@@ -4915,18 +4919,18 @@ REIN:   LXI     H,IOBUF ;POINT TO INPUT BUFFER
         MVI     A,' '   ;GET SPACE
         CALL    TESTO   ;WRITE TO TERMINAL
 TREAD   EQU     $
-       IF !CPM
-               IF UART                 ;FOR 8251 UART
+       IF CPM = 0
+       IF UART = 1             ;FOR 8251 UART
         IN      UARTS   ;GET TTY STATUS
         ANI     RX_MASK ;TEST IF RXRDY
         JZ      TREAD   ;LOOP TIL CHAR
-               ENDIF
+       ENDIF
 
-               IF ACIA                 ;FOR MC6850 ACIA
+       IF ACIA = 1             ;FOR MC6850 ACIA
         IN      ACIAS   ;GET TTY STATUS
         ANI     RX_MASK ;TEST IF RXRDY
         JZ      TREAD   ;LOOP TIL CHAR
-               ENDIF
+       ENDIF
        ENDIF
         CALL    GETCH   ;GO READ THE CHAR
         MOV     M,A     ;PUT IN BUFFER
@@ -4952,27 +4956,25 @@ CR1:    MVI     M,0     ;MARK END
 
 TESTO   EQU     $
 
-       IF      NOT CPM
-               IF UART                 ;8251 UART SUPPORT
+       IF CPM = 0
+       IF UART = 1             ;8251 UART SUPPORT
         PUSH    PSW     ;SAVE CHAR
 TEST1:  IN      UARTS   ;GET STATUS
                ANI             TX_MASK ;TEST IF TXRDY
         JZ      TEST1   ;LOOP TILL READY
         POP     PSW     ;GET CHAR
         OUT     UARTD   ;WRITE IT
-               ENDIF
+       ENDIF
 
-               IF ACIA                         ;MC6850 ACIA SUPPORT
+       IF ACIA = 1             ;MC6850 ACIA SUPPORT
         PUSH    PSW     ;SAVE CHAR
 TEST1:  IN      ACIAS   ;GET STATUS
                ANI             TX_MASK ;TEST IF TXRDY
         JZ      TEST1   ;LOOP TILL READY
         POP     PSW     ;GET CHAR
         OUT     ACIAD   ;WRITE IT
-               ENDIF
        ENDIF
-
-       IF      CPM
+       ELSE
         PUSH    B       ;BIOS CALLS DESTROYS C,DE
         PUSH    D
         PUSH   H
@@ -4982,7 +4984,7 @@ TEST1:  IN      ACIAS   ;GET STATUS
         POP     D       ;RESTORE
         POP     B
        ENDIF
-       IF      LARGE   ;SAVE ROOM ONLY IN 8+K VERSIONS
+       IF LARGE = 1            ;SAVE ROOM ONLY IN 8+K VERSIONS
         DB      0,0,0   ;SAVE ROOM FOR CALL TO USER ROUTINE
        ENDIF
         RET             ;RETURN
@@ -4993,7 +4995,7 @@ CRLF:   MVI     A,0DH   ;LOAD A CR
         CALL    TESTO   ;WRITE IT
 ;2019-0222 - JQ - Added to increase speed of console output
 ; by bypassing paper-tape support.
-       IF      PT_SUPP ;INSERT RUBOUTS AND A PAUSE BETWEEN CR/LF COMBOS
+       IF      PT_SUPP = 1     ;INSERT RUBOUTS AND A PAUSE BETWEEN CR/LF COMBOS
         MVI     A,RUBOUT;GET RUBOUT CHAR
         MVI     B,0FAH  ;LOAD 255-RUBOUT COUNT
 PAUZ:   CALL    TESTO   ;SEND RUBOUT
@@ -5027,7 +5029,7 @@ NOTCO:  CPI     7FH     ;TEST IF RUBOUT
         CALL    TESTO   ;WRITE IT
         JMP     TREAD   ;GET REPLACEMENT CHARACTER
 NOTBS:  EQU     $
-        IF      LARGE   ;CONTROL H WORKS ONLY ON 9K VERSION
+       IF LARGE = 1   ;CONTROL H WORKS ONLY ON 9K VERSION
         CPI     8       ;TEST FOR ASCII BACKSPACE
         JNZ     NOTCH   ;BRIF NOT CONTROL H
         DCX     H       ;POINT PRIOR
@@ -5039,7 +5041,7 @@ NOTBS:  EQU     $
         CALL    TERMM   ;WRITE IT
         POP     H       ;RESTORE H,L
         JMP     TREAD   ;GET REPLACEMENT CHARACTER
-        ENDIF
+       ENDIF
 NOTCH:  LDA     TAPES   ;GET PAPER TAPE SWITCH
         RAR             ;FLAG TO CARRY
         JC      ECHO    ;NO ECHO IF TAPE
@@ -5156,25 +5158,23 @@ TSTCC   EQU     $
 ; CANCEL IF CONTROL-C
 ; TOGGLE OUTPUT SUPPRESS SW IF CONTROL-O
 ;
-       IF !CPM
-               IF UART                 ;FOR 8251 UART
+       IF CPM = 0
+       IF UART = 1             ;FOR 8251 UART
         IN      UARTS  ;GET TTY STATUS
         ANI     RX_MASK        ;MASK FOR RXRDY
         RZ              ;RETURN IF NO CHAR
 GETCH:  IN      UARTD  ;READ THE CHAR
         ANI     7FH     ;TURN OFF PARITY
-               ENDIF
+       ENDIF
 
-               IF ACIA                 ;FOR MC6850 ACIA
+       IF ACIA = 1             ;FOR MC6850 ACIA
         IN             ACIAS   ;GET TTY STATUS
         ANI            RX_MASK ;MASK FOR RXRDY
         RZ              ;RETURN IF NO CHAR
 GETCH:  IN             ACIAD   ;READ THE CHAR
         ANI            7FH     ;TURN OFF PARITY
-               ENDIF
        ENDIF
-
-       IF      CPM
+       ELSE
         ;NOTE: FOLLOWING CLOBBERS REGISTERS,
         ; PUSH AND POP IF FOUND TO CREATE BUGS.
         CALL    BTSTAT  ;CALL BIOS
@@ -5186,7 +5186,7 @@ GETCH:  PUSH    B       ;SAVE REGS - CPM CAN CLOBBER
         POP     H
         POP     D
         POP     B
-        ENDIF
+       ENDIF
         CPI     3       ;TEST IF CONTROL C
         JNZ     TSTC1   ;BRIF NOT
         CALL    PRCNT   ;GO PRINT ^C
@@ -5243,10 +5243,10 @@ EOL     EQU     $
 ; TESTS IF (H,L) IS END OF LINE
 ; ERROR-DL IF NOT
 ;
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    TSTEL   ;TEST IF END LINE
         JNZ     SNERR   ;ERROR IF NOT
@@ -5273,10 +5273,10 @@ NOTEO   EQU     $
 ; TEST IF (H,L) IS END OF LINE
 ; RETURN IF NOT, ERROR-DL IF IS
 ;
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    TSTEL   ;TEST IF END OF LINE
         JZ      SNERR   ;ERROR IF IS
@@ -5366,10 +5366,10 @@ GTEMP   EQU     $
         PUSH    B       ;SAVE CTRS
         PUSH    D       ;SAVE EXPR ADDR
         PUSH    H       ;SAVE TEMP ADDR
-       IF ROMSTRT != 0
-               CALL    RST3    ;GO STORE THE VALUE
-       ELSE
+       IF ROMSTRT = 0
         RST     3       ;GO STORE THE VALUE
+       ELSE
+               CALL    RST3    ;GO STORE THE VALUE
        ENDIF
         POP     D       ;RESTORE TEMP ADDR
         LHLD    SPCTR   ;GET COUNT
@@ -5433,10 +5433,10 @@ SCH1:   MOV     A,M     ;GET THE BYTE
         MOV     B,M     ;GET HI LEN
         DCX     H       ;POINT NEXT
         MOV     C,M     ;GET LO LEN
-       IF ROMSTRT != 0
-               CALL    RST4    ;ADJUST H,L
-       ELSE
+       IF ROMSTRT = 0
                RST     4       ;ADJUST H,L
+       ELSE
+               CALL    RST4    ;ADJUST H,L
        ENDIF
         DB      3
         MOV     A,M     ;LOAD 1ST CHAR
@@ -5533,29 +5533,29 @@ VAR     EQU     $
 ; PUTS THE NAME IN D,E IF FOUND
 ; ERROR SN IF NONE FOUND
 ;
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    ALPHA   ;TEST IF ALPHA
         JNZ     SNERR   ;BRIF NOT ALPHA
         MOV     D,A     ;FIRST CHAR
         MVI     E,' '   ;DEFAULT
         INX     H       ;POINT NEXT
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;GET 2ND CHAR
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    NUMER   ;TEST IF NUMERIC
         JNZ     VAR2    ;BRIF NOT NUMERIC
         MOV     E,A     ;SAVE 2ND CHAR
         INX     H       ;POINT NEXT
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
 VAR2:   CPI     '$'     ;TEST IF STRING
         JNZ     VAR3    ;BRIF NOT
@@ -5589,67 +5589,67 @@ PRLIN   EQU     $
 EM      EQU     0FEH
 ;
 ULERR:
-       IF ROMSTRT != 0
+       IF ROMSTRT = 0
+               RST     6       ;CALL ERROR ROUTINE
+        DB      "UL",EM,FATAL   ;NOTE FATAL = CODE FOR RST 6
+ZMERR   EQU     $-1             ;LOG(X<=0),SQR(-X),0 DIVIDE
+        DB      "OF",EM,FATAL
+STERR   EQU     $-1             ;ERROR IN EXPRESSION STACK
+        DB      "ST",EM,FATAL
+SNERR   EQU     $-1             ;DELIMITER ERROR
+        DB      "SN",EM,FATAL
+RTERR   EQU     $-1             ;RETURN & NO GOSUB
+        DB      "RT",EM,FATAL
+DAERR   EQU     $-1             ;OUT OF DATA
+        DB      "DA",EM,FATAL
+NXERR   EQU     $-1             ;NEXT & NO FOR / >8 FOR'S
+        DB      "NX",EM,FATAL
+CVERR   EQU     $-1             ;CONVERSION ERROR
+        DB      "CV",EM,FATAL
+CKERR   EQU     $-1             ;CHECKSUM ERROR
+        DB      "CK",EM,FATAL
+       ELSE
                CALL    RST6                    ;CALL ERROR ROUTINE
-        DB      'UL',EM
+        DB      "UL",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 ZMERR   EQU     $-3             ;LOG(X<=0),SQR(-X),0 DIVIDE
-        DB      'OF',EM
+        DB      "OF",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 STERR   EQU     $-3             ;ERROR IN EXPRESSION STACK
-        DB      'ST',EM
+        DB      "ST",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 SNERR   EQU     $-3             ;DELIMITER ERROR
-        DB      'SN',EM
+        DB      "SN",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 RTERR   EQU     $-3             ;RETURN & NO GOSUB
-        DB      'RT',EM
+        DB      "RT",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 DAERR   EQU     $-3             ;OUT OF DATA
-        DB      'DA',EM
+        DB      "DA",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 NXERR   EQU     $-3             ;NEXT & NO FOR / >8 FOR'S
-        DB      'NX',EM
+        DB      "NX",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 CVERR   EQU     $-3             ;CONVERSION ERROR
-        DB      'CV',EM
+        DB      "CV",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
 CKERR   EQU     $-3             ;CHECKSUM ERROR
-        DB      'CK',EM
+        DB      "CK",EM
                CALL    RST6                    ;CALL ERROR ROUTINE
-       ELSE
-               RST     6       ;CALL ERROR ROUTINE
-        DB      'UL',EM,FATAL   ;NOTE FATAL = CODE FOR RST 6
-ZMERR   EQU     $-1             ;LOG(X<=0),SQR(-X),0 DIVIDE
-        DB      'OF',EM,FATAL
-STERR   EQU     $-1             ;ERROR IN EXPRESSION STACK
-        DB      'ST',EM,FATAL
-SNERR   EQU     $-1             ;DELIMITER ERROR
-        DB      'SN',EM,FATAL
-RTERR   EQU     $-1             ;RETURN & NO GOSUB
-        DB      'RT',EM,FATAL
-DAERR   EQU     $-1             ;OUT OF DATA
-        DB      'DA',EM,FATAL
-NXERR   EQU     $-1             ;NEXT & NO FOR / >8 FOR'S
-        DB      'NX',EM,FATAL
-CVERR   EQU     $-1             ;CONVERSION ERROR
-        DB      'CV',EM,FATAL
-CKERR   EQU     $-1             ;CHECKSUM ERROR
-        DB      'CK',EM,FATAL
        ENDIF
 ;
 ; NON-FATAL ERRORS
 ;
 OVERR   EQU     $-1             ;OVERFLOW ERROR
-        DB      'OV',EM
+        DB      "OV",EM
         RET                     ;RETURN TO ROUTINE
 UNERR:
-       IF ROMSTRT != 0
-               CALL    RST6    ;CALL ERROR ROUTINE
-       ELSE
+       IF ROMSTRT = 0
                RST     6       ;CALL ERROR ROUTINE
+       ELSE
+               CALL    RST6    ;CALL ERROR ROUTINE
        ENDIF
-        DB      'UN',EM
+        DB      "UN",EM
         RET
 ;
 ; CONTINUATION OF ERROR MESSAGE ROUTINE (RST 6)
@@ -5764,97 +5764,97 @@ BINFL   EQU     $
 ; TABLE IS TERMINATED WITH A '00'
 ;
 FUNCT   EQU     $
-        DB      'ABS',0
+        DB      "ABS",0
         DW      ABS
         DB      0ABH
-        DB      'SQR',0
+        DB      "SQR",0
         DW      SQR
         DB      0ABH
-        DB      'INT',0
+        DB      "INT",0
         DW      INT
         DB      0ABH
-        DB      'SGN',0
+        DB      "SGN",0
         DW      SGN
         DB      0ABH
 
-;        DB      'AND',0
+;        DB      "AND",0
 ;        DW      LOGAND
 ;        DB      0ABH
 
-;        DB      'OR',0
+;        DB      "OR",0
 ;        DW      LOGOR
 ;        DB      0ABH
 
-RNDLI:  DB      'RND',0
+RNDLI:  DB      "RND",0
         DW      RND
         DB      0ABH
-        DB      'SIN',0
+        DB      "SIN",0
         DW      SIN
         DB      0ABH
-        DB      'COS',0
+        DB      "COS",0
         DW      COS
         DB      0ABH
-        DB      'TAN',0
+        DB      "TAN",0
         DW      TAN
         DB      0ABH
-        DB      'ATN',0
+        DB      "ATN",0
         DW      ATN
         DB      0ABH
-        DB      'INP',0
+        DB      "INP",0
         DW      INP
         DB      0ABH
-        DB      'LN',0
+        DB      "LN",0
         DW      LN
         DB      0ABH
-        DB      'LOG',0
+        DB      "LOG",0
         DW      LOG
         DB      0ABH
-        DB      'EXP',0
+        DB      "EXP",0
         DW      EXP
         DB      0ABH
-        DB      'POS',0
+        DB      "POS",0
         DW      POS
         DB      0ABH
-        DB      'LEN',0
+        DB      "LEN",0
         DW      LENFN
         DB      0ABH
-        DB      'CHR$',0
+        DB      "CHR$",0
         DW      CHRFN
         DB      0CBH
-        DB      'ASCII',0
+        DB      "ASCII",0
         DW      ASCII
         DB      0ABH
-        DB      'NUM$',0
+        DB      "NUM$",0
         DW      NUMFN
         DB      0CBH
-        DB      'VAL',0
+        DB      "VAL",0
         DW      VAL
         DB      0ABH
-        DB      'SPACE$',0
+        DB      "SPACE$",0
         DW      SPACE
         DB      0CBH
-        DB      'STRING$',0
+        DB      "STRING$",0
         DW      STRFN
         DB      0D3H
-        DB      'LEFT$',0
+        DB      "LEFT$",0
         DW      LEFT
         DB      0D3H
-        DB      'RIGHT$',0
+        DB      "RIGHT$",0
         DW      RIGHT
         DB      0D3H
-        DB      'MID$',0
+        DB      "MID$",0
         DW      MIDFN
         DB      0DBH
-        DB      'INSTR',0
+        DB      "INSTR",0
         DW      INSTR
         DB      0BBH
-        DB      'PEEK',0
+        DB      "PEEK",0
         DW      PEEK
         DB      0ABH
-        IF      LARGE
+       IF      LARGE = 1
         DB      0,0,0,0 ;ROOM FOR ONE MORE FUNCTION
         DB      0,0,0,0
-        ENDIF
+       ENDIF
         DB      0       ;END OF FUNCTION TABLE
 ;
 ; PROGRAM CONSTANTS
@@ -5867,31 +5867,31 @@ NRNDX:  DB      1BH,0ECH
         DB      33H,0D3H
         DB      1AH,85H
         DB      2BH,1EH
-WHATL:  DB      'WHAT',0
+WHATL:  DB      "WHAT",0
 VERS    EQU     $       ;VERSION MESSAGE
-        IF      LARGE
-        DB      0x0D,0x0A,'BASIC 9K VERS 1.42 '
-               IF ACIA
-               DB              '(6850 ACIA)'
-               ELSE
-               DB              '(8251 UART)'
-               ENDIF
+       IF LARGE = 1
+        DB      0DH,0AH,"BASIC 9K VERS 1.42 "
+       IF ACIA = 1
+               DB              "(6850 ACIA)"
+       ELSE
+               DB              "(8251 UART)"
+       ENDIF
                DB              0
 RBOUT:  DB      08H,20H,08H,0FEH ;RUBOUT SEQUENCE (9K ONLY)
-               ELSE
-        DB      0x0D,0x0A,'BASIC 8K VERS 1.42 '
-               IF ACIA
-               DB              '(6850 ACIA)'
-               ELSE
-               DB              '(8251 UART)'
-               ENDIF
+       ELSE
+        DB      0DH,0AH,"BASIC 8K VERS 1.42 "
+       IF ACIA = 1
+               DB              "(6850 ACIA)"
+       ELSE
+               DB              "(8251 UART)"
+       ENDIF
                DB              0
-        ENDIF
-LLINE:  DB      'LINE',0
-TABLI:  DB      'TAB',0
-STEPL:  DB      'STEP',0
-THENL:  DB      'THEN',0
-PILIT:  DB      'PI',0
+       ENDIF
+LLINE:  DB      "LINE",0
+TABLI:  DB      "TAB",0
+STEPL:  DB      "STEP",0
+THENL:  DB      "THEN",0
+PILIT:  DB      "PI",0
 TWO:    DB      02H,80H,00H,00H    ;CONSTANT:  2
 TEN:    DB      04H,0A0H,00H,00H   ;CONSTANT:  10
 PI:     DB      02H,0C9H,0FH,0D7H  ;CONSTANT:  3.141593
@@ -5946,11 +5946,11 @@ EXPCO:  DB      077H,0CAH,009H,0CBH  ;C=.00154143
 LNC:    DB      07FH,0DEH,05BH,0D0H     ;C=LOG BASE 10 OF E
 READY   EQU     $
         DB      0FDH
-        DB      'READY',0
+        DB      "READY",0
 STOPM   EQU     $
         DB      0FDH
-        DB      'STOP AT LINE ',0FEH
-ERRMS:  DB      ' ERROR IN LINE ',0FEH
+        DB      "STOP AT LINE ",0FEH
+ERRMS:  DB      " ERROR IN LINE ",0FEH
 ;
 ; VERB (STATEMENT/COMMAND) TABLE
 ; FORMAT IS: DB 'VERB',0
@@ -5960,106 +5960,106 @@ ERRMS:  DB      ' ERROR IN LINE ',0FEH
 ;  END OF TABLE IS MARKED BY DB 0
 ;
 JMPTB   EQU     $
-        DB      'LIST',0
+        DB      "LIST",0
         DW      LIST
-        DB      'RUN',0
+        DB      "RUN",0
         DW      RUNCM
-        DB      'XEQ',0
+        DB      "XEQ",0
         DW      XEQ
-        DB      'NEW',0
+        DB      "NEW",0
         DW      NEW
-        DB      'CON',0
+        DB      "CON",0
         DW      CONTI
        IF IMSAI
-        DB      'TAPE',0
+        DB      "TAPE",0
         DW      TAPE
-        DB      'SAVE',0
+        DB      "SAVE",0
         DW      SAVE
-KEYL:   DB      'KEY',0
+KEYL:   DB      "KEY",0
         DW      KEY
        ENDIF
-        DB      'FRE',0
+        DB      "FRE",0
         DW      FREE
-        DB      'IF',0
+        DB      "IF",0
         DW      IFSTM
-        DB      'READ',0
+        DB      "READ",0
         DW      READ
-        DB      'RESTORE',0
+        DB      "RESTORE",0
         DW      RESTO
-DATAL:  DB      'DATA',0
+DATAL:  DB      "DATA",0
         DW      RUN
-        DB      'FOR',0
+        DB      "FOR",0
         DW      FOR
-NEXTL:  DB      'NEXT',0
+NEXTL:  DB      "NEXT",0
         DW      NEXT
-GOSBL:  DB      'GOSUB',0
+GOSBL:  DB      "GOSUB",0
         DW      GOSUB
-        DB      'RETURN',0
+        DB      "RETURN",0
         DW      RETUR
-        DB      'INPUT',0
+        DB      "INPUT",0
         DW      INPUT
-        DB      'PRINT',0
+        DB      "PRINT",0
         DW      PRINT
-GOTOL:  DB      'GO'
-TOLIT:  DB      'TO',0
+GOTOL:  DB      "GO"
+TOLIT:  DB      "TO",0
         DW      GOTO
-        DB      'LET',0
+        DB      "LET",0
         DW      LET
-        DB      'STOP',0
+        DB      "STOP",0
         DW      STOP
-        DB      'END',0
+        DB      "END",0
         DW      ENDIT
-        DB      'REM',0
+        DB      "REM",0
         DW      RUN
-        DB      '!',0
+        DB      "!",0
         DW      RUN
-        DB      '?',0
+        DB      "?",0
         DW      PRINT
-        DB      'RANDOMIZE',0
+        DB      "RANDOMIZE",0
         DW      RANDO
-        DB      'ON',0
+        DB      "ON",0
         DW      ON
-        DB      'OUT',0
+        DB      "OUT",0
         DW      OUTP
-        DB      'DIM',0
+        DB      "DIM",0
         DW      DIM
-        DB      'CHANGE',0
+        DB      "CHANGE",0
         DW      CHANG
-DEFLI:  DB      'DEF'
-FNLIT:  DB      'FN',0
+DEFLI:  DB      "DEF"
+FNLIT:  DB      "FN",0
         DW      RUN
-        IF      CPM
-        DB      'DDT',0
+       IF      CPM = 1
+        DB      "DDT",0
         DW      DDT
-               ENDIF
-        DB      'BYE',0
+       ENDIF
+        DB      "BYE",0
         DW      BOOT
-        DB      'POKE',0
+        DB      "POKE",0
         DW      POKE
-        DB      'CALL',0
+        DB      "CALL",0
         DW      JUMP
-        IF      LARGE   ;INCLUDE ONLY IN 8K+ VERSION
-        DB      'EDIT',0
+        IF      LARGE = 1  ;INCLUDE ONLY IN 8K+ VERSION
+        DB      "EDIT",0
         DW      FIX
-               IF IMSAI
-        DB      'CLOAD',0
+       IF IMSAI = 1
+        DB      "CLOAD",0
         DW      CLOAD
-        DB      'CSAVE',0
+        DB      "CSAVE",0
         DW      CSAVE
-               ENDIF
+       ENDIF
         ENDIF
-        IF      HUNTER
-        DB      'BAUD',0
+       IF HUNTER = 1
+        DB      "BAUD",0
         DW      BAUD
-        ENDIF
+       ENDIF
         DB      0       ;END OF TABLE
 ;
 ; DDT COMMAND, CPM ONLY
 ;
-        IF      CPM
+       IF CPM = 1
 DDT:    RST     7
         JMP     RDY
-        ENDIF
+       ENDIF
 ;
 FACDE   EQU     $
 ;
@@ -6137,10 +6137,10 @@ SEEK1:  PUSH    H       ;SAVE ADDRESS OF STRING
         LDAX    D       ;GET BYTE FROM TABLE
         ORA     A       ;TEST IT
         JZ      SEEK3   ;BRIF END OF TABLE
-       IF ROMSTRT != 0
-               CALL    RST2    ;GO COMPARE
-       ELSE
+       IF ROMSTRT = 0
         RST     2       ;GO COMPARE
+       ELSE
+               CALL    RST2    ;GO COMPARE
        ENDIF
         JNZ     SEEK2   ;BRIF NOT FOUND
         XTHL            ;PUT CURRENT H,L ON STACK
@@ -6170,16 +6170,16 @@ SEEK3:  POP     H       ;RESTORE ORIGINAL STRING
 ; EDIT <LINE #><DELIMITER><OLD TEXT><DELIMITER><NEW TEXT>
 ;
 FIX:    EQU     $
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         CALL    PACK    ;GET LINE # IN B,C
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         SHLD    ADDR2   ;SAVE COMMAND POINTER
         CALL    LOCAT   ;SEARCH FOR LINE # IN PROGRAM
@@ -6290,7 +6290,7 @@ FIX5:   STAX    D       ;BUFFER TERMINATOR
         PUSH    H       ;SAVE IT
         JMP     EDIT2   ;PROCESS AS NEW LINE
 ;
-       IF IMSAI
+       IF IMSAI = 1
 ;
 ; TAPE CASSETTE COMMANDS
 ;
@@ -6444,10 +6444,10 @@ RECI1:  CALL    CASI    ;INPUT BYTE
 ;
 ; CSAVE COMMAND
 ;
-               IF ROMSTRT != 0
-CSAVE: CALL    RST1    ;CALL TO RAM ADDRESS
-               ELSE
+               IF ROMSTRT = 0
 CSAVE:  RST     1       ;SKIP ANY SPACES
+               ELSE
+CSAVE: CALL    RST1    ;CALL TO RAM ADDRESS
                ENDIF
         MVI     A,10H   ;ENABLE WRITE
         OUT     CASC
@@ -6577,7 +6577,7 @@ NXTR:   CALL    RECI    ;READ RECORD
         CPI     20H     ;TEST FOR NO NAME
         CNZ     TERMO   ;PRINT NAME IF THERE
         JMP     BELL
-        ENDIF
+    ENDIF
        ENDIF
 ;
 PEEK    EQU     $
@@ -6623,7 +6623,7 @@ JUMP    EQU     $
         XCHG            ;MOVE ADDRESS TO HL
         PCHL            ;EXECUTE USER'S ROUTINE
 ;
-        IF      HUNTER
+       IF HUNTER = 1
 ;
 BAUD    EQU     $
 ;
@@ -6632,10 +6632,10 @@ BAUD    EQU     $
 ;
 ; COMMAND 'BAUD <RATE>' WHERE <RATE>=110,300,1200,2400,9600
 ;
-       IF ROMSTRT != 0
-               CALL    RST1    ;CALL TO RAM ADDRESS
-       ELSE
+       IF ROMSTRT = 0
         RST     1       ;SKIP TO NON BLANK
+       ELSE
+               CALL    RST1    ;CALL TO RAM ADDRESS
        ENDIF
         LXI     D,BAUDS+6       ;POINT BAUD TABLE
         CALL    SEEK    ;GO SEARCH BAUD TABLE
@@ -6680,36 +6680,36 @@ BAUD2:  IN      TTY+1   ;READ STATUS
         ORA     A       ;TEST IT
         JZ      RUN     ;BRIF RUN MODE
         JMP     GETCM   ;BRIF IMMEDIATE MODE
-BAUDS:  DB      'BAUD',0FEH     ;BAUD MESSAGE
+BAUDS:  DB      "BAUD",0FEH     ;BAUD MESSAGE
 ;
 ; BAUD TABLE.
 ;
-B110:   DB      '110 ',0FAH,2,0
+B110:   DB      "110 ",0FAH,2,0
         DW      B110
-B300:   DB      '300 ',0FBH,0
+B300:   DB      "300 ",0FBH,0
         DW      B300
-B1200:  DB      '1200',0FAH,0
+B1200:  DB      "1200",0FAH,0
         DW      B1200
-B2400:  DB      '2400',0FAH,32,0
+B2400:  DB      "2400",0FAH,32,0
         DW      B2400
-B9600:  DB      '9600',0FAH,34,0
+B9600:  DB      "9600",0FAH,34,0
         DW      B9600
         DB      0       ;END OF BAUD TABLE
 ;
         ENDIF
 ;
-        IF      CPM     ;CPM INITIALIZATION STORES
+       IF CPM                      ;CPM INITIALIZATION STORES
                         ;...BIOS JUMP TABLE HERE
 BTSTAT: DS      3       ;JMP TO BIOS CONSOLE STATUS
 BTIN:   DS      3       ;JMP TO BIOS CONSOLE INPUT
 BTOUT:  DS      3       ;JMP TO BIOS CONSOLE OUTPUT
-        ENDIF
+    ENDIF
 ROMEND  EQU     $-1
 ;
         ORG     RAMSTRT ;RAM STARTS OF 32K BOUNDARY
-        IF      LARGE OR CPM    ;ADJUST START OF RAM IF 8+K
+       IF LARGE = 1 || CPM = 1 ;ADJUST START OF RAM IF 8+K
         ORG     RAMSTRT ;RAM STARTS OF 32K BOUNDARY
-        ENDIF
+       ENDIF
 ;
 ; ALL CODE ABOVE THIS POINT IS READ ONLY AND CAN BE PROM'ED
 ;
@@ -6780,7 +6780,7 @@ DATAP:  DS      2       ;ADDRESS OF CURRENT DATA STMT
 DATAB:  DS      2       ;ADDRESS OF DATA POOL
 PROGE:  DS      2       ;ADDRESS OF PROGRAM END
 ;
-        IF      CPM
+       IF CPM = 1
 ;TEMPORARY CODE FOR INITIALIZATION HERE
 ;
 INITC:  LHLD    BOOT+1  ;PTR TO BIOS TABLE
@@ -6810,7 +6810,7 @@ INITC:  LHLD    BOOT+1  ;PTR TO BIOS TABLE
                SHLD    31H
         LHLD    BDOS+1  ;LOCATE TOP OF RAM
         JMP     INIT1   ;CONTINUE AS IN NON-CPM VERSION
-        ENDIF
+       ENDIF
 ;
 ;
         DS      1       ;DATA STATEMENT FLAG (MUST BE HERE)