; ; PARAMETERS OF THE ASSEMBLER ; SYMSIZ = 8 ;MAX NUMBER OF CHARACTERS IN A SYMBOL FNSIZE = 18 ;MAX LENGTH OF A FILE NAME STRING STRMAX = 120 ;MAX LENGTH OF QUOTED STRING LINLEN = 100 ;MAX LENGTH OF AN INPUT LINE PRTLEN = 80 ;PRINT LINE WIDTH BUFLEN = 256+6 ;MAX SIZE OUTPUT RECORD CWIDTH = SYMSIZ+9 ; TAB = $7F EOL = $9B ; ; REGISTERS ON ZERO PAGE ; DOSVEC = $0A ; ORG $0080 TEXTP DS 2 ;ADDRESS OF TEXT BUFFER TABPTR DS 2 ;ADDRESS OF OPCODE ENTRY ENDSTAB DS 2 ;ADDRESS OF END OF SYMTAB PASSNO DS 1 ;CURRENT ASSEMBLER PASS OPCODE DS 1 ;OPCODE VALUE VALUE DS 2 ;VALUE OF OPERAND SECVAL DS 2 OPER DS 1 SVAL DS 2 ;SYMBOL VALUE SFLGS DS 1 ;SYMBOL FLAGS ; BIT 7=UNDEFINED ; BIT 6=GLOBAL ; BIT 5=0 ; BIT 4=0 ; BIT 3-1=ORG COUNT ; BIT 0=UNUSED SLEN DS 1 PARENS DS 1 TEMP DS 2 ;GENERAL TEMPORARIES CNT = TEMP MODE DS 1 ;ADDRESSING MODE OFFSET ISVAL DS 1 ;FLAG (NONZERO -> LABEL=VALUE) LEN DS 2 ;LENGTH OF CURRENT INSTRUCTION ADRERR DS 1 ;ADDRESS ERROR FIELD TXTPTR DS 1 ;CURRENT TEXT BYTE OFFSET OBJPTR DS 1 ;NEXT BYTE IN OBJECT BUFFER FILE DS 1 ;IOCB USED CURRENTLY FOR INPUT SYMBOL DS SYMSIZ ;RESERVE 9 BYTES FOR THE SYMBOL DS 1 PC DS 2 ;CURRENT VALUE OF * HIGHP DS 2 LOWP DS 2 OPRSP DS 1 ;OPERATOR STACK POINTER OPDSP DS 1 ;OPERAND STACK POINTER FUNC DS 1 ;HIGH/LOW FUNCTION FLAG ; FR0 = $D4 FR1 = $E0 INBUFF = $F3 ; RUNVEC = $02E0 INIVEC = $02E2 ; ORG $0340 DS 2 ICMD DS 1 ISTAT DS 1 IBUF DS 2 DS 2 ILEN DS 2 IAUX DS 2 DS 2 DS 2 ; FASCII = $D8E6 IFP = $D9AA CIOV = $E456