diff --git a/BASIC_CBM2_1982-11-19/bas128 b/BASIC_CBM2_1982-11-19/bas128 index 0bd7f6b..0be3a6b 100644 --- a/BASIC_CBM2_1982-11-19/bas128 +++ b/BASIC_CBM2_1982-11-19/bas128 @@ -1,7 +1,7 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) +CC1 =0 ;64K VERSION(ON=$01) CC2 =$02 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC3 =0 ;192K VERSION(ON=$04) +CC4 =0 ;256K VERSION(ON=$08) .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1982-11-19/bas192 b/BASIC_CBM2_1982-11-19/bas192 index 1474f41..a789319 100644 --- a/BASIC_CBM2_1982-11-19/bas192 +++ b/BASIC_CBM2_1982-11-19/bas192 @@ -1,7 +1,7 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) +CC1 =0 ;64K VERSION(ON=$01) +CC2 =0 ;128K VERSION(ON=$02) CC3 =$04 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC4 =0 ;256K VERSION(ON=$08) .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1982-11-19/bas256 b/BASIC_CBM2_1982-11-19/bas256 index dc8a11c..b5b93de 100644 --- a/BASIC_CBM2_1982-11-19/bas256 +++ b/BASIC_CBM2_1982-11-19/bas256 @@ -1,7 +1,7 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) +CC1 =0 ;64K VERSION(ON=$01) +CC2 =0 ;128K VERSION(ON=$02) +CC3 =0 ;192K VERSION(ON=$04) CC4 =$08 ;256K VERSION(ON=$08) .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1982-11-19/bas64 b/BASIC_CBM2_1982-11-19/bas64 index d3aa6bc..d062bf9 100644 --- a/BASIC_CBM2_1982-11-19/bas64 +++ b/BASIC_CBM2_1982-11-19/bas64 @@ -1,7 +1,7 @@ ; CONDITIONAL ASSEMBLY CONSTANTS CC1 =$01 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC2 =0 ;128K VERSION(ON=$02) +CC3 =0 ;192K VERSION(ON=$04) +CC4 =0 ;256K VERSION(ON=$08) .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1982-11-19/basic b/BASIC_CBM2_1982-11-19/basic index e88ea2d..71b798d 100644 --- a/BASIC_CBM2_1982-11-19/basic +++ b/BASIC_CBM2_1982-11-19/basic @@ -94,41 +94,41 @@ ADDPR8 =ADDPR4+ADDPR4 STKEND =$1FB ;FIRST BYTE USED FOR STACK CLMWID =10 PI =$FF -STRSIZ =4 ;# OF LOCS PER STR DESCRIPTOR -PTRSIZ =3 ;# OF LOCS PER POINTER -NUMTMP =3 ;# OF STRING TEMPORARIES +STRSIZ =4 ;# OF LOCS PER STR DESCRIPTOR +PTRSIZ =3 ;# OF LOCS PER POINTER +NUMTMP =3 ;# OF STRING TEMPORARIES .SKI 3 ; BANK EQUATES SYSBNK =$0F ;SYSTEM BANK# MXBANK =SYSBNK+1 ;1ST BANK OUT OF RANGE - .IFN CC1 < -TXTBNK =0 ;TEXT BANK *ONE* -VARBNK =0 ;SIMPLE VARIABLE BANK -ARYBNK =0 ;ARRAY BANK -STRBNK =0 ;STRING BANK +.IFN CC1 < +TXTBNK =0 ;TEXT BANK *ONE* +VARBNK =0 ;SIMPLE VARIABLE BANK +ARYBNK =0 ;ARRAY BANK +STRBNK =0 ;STRING BANK > - .IFN CC2 < -TXTBNK =0 ;TEXT BANK *TWO* -VARBNK =1 ;SIMPLE VARIABLE BANK -ARYBNK =1 ;ARRAY BANK -STRBNK =1 ;STRING BANK +.IFN CC2 < +TXTBNK =0 ;TEXT BANK *TWO* +VARBNK =1 ;SIMPLE VARIABLE BANK +ARYBNK =1 ;ARRAY BANK +STRBNK =1 ;STRING BANK > - .IFN CC3 < -TXTBNK =0 ;TEXT BANK *THREE* -VARBNK =2 ;SIMPLE VARIABLE BANK -ARYBNK =1 ;ARRAY BANK -STRBNK =2 ;STRING BANK +.IFN CC3 < +TXTBNK =0 ;TEXT BANK *THREE* +VARBNK =2 ;SIMPLE VARIABLE BANK +ARYBNK =1 ;ARRAY BANK +STRBNK =2 ;STRING BANK > - .IFN CC4 < -TXTBNK =1 ;TEXT BANK *FOUR* -VARBNK =3 ;SIMPLE VARIABLE BANK -ARYBNK =2 ;ARRAY BANK -STRBNK =4 ;STRING BANK +.IFN CC4 < +TXTBNK =1 ;TEXT BANK *FOUR* +VARBNK =3 ;SIMPLE VARIABLE BANK +ARYBNK =2 ;ARRAY BANK +STRBNK =4 ;STRING BANK > .SKI 4 ; DOS INTERFACE EQUATES. DOSFNL =16+2 ;FILENAME LENGTH -DOSDSK =8 ;DISK DEVICE # +DOSDSK =8 ;DISK DEVICE # DOSLFN =14 ;DOS INTERNAL LOGICAL FILE NUMBER DOSCTL =21 ;DOS DIRECTORY LINES BEFORE PROMPT DOSLST =DOSFNL+DOSFNL+DOSFNL+16 ;(DOSFNL+2)*3+10 --TRANSMIT BUFFER LENGTH @@ -147,7 +147,7 @@ DOSLST =DOSFNL+DOSFNL+DOSFNL+16 ;(DOSFNL+2)*3+10 --TRANSMIT BUFFER LENGTH .LIB STRNG2 ;.LIB RENUMBER .LIB DELETE - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < .LIB USING > .LIB BUTES1 diff --git a/BASIC_CBM2_1982-11-19/bdefine b/BASIC_CBM2_1982-11-19/bdefine index e312588..cd8d687 100644 --- a/BASIC_CBM2_1982-11-19/bdefine +++ b/BASIC_CBM2_1982-11-19/bdefine @@ -1,6 +1,6 @@ .PAG 'BDEFINE' ; PAGE ZERO STORAGE DEFINITIONS - *=0 + *=0 ; E6509 *=*+1 ;EXECUTION BANK I6509 *=*+1 ;INDIRECTION BANK @@ -13,7 +13,7 @@ TMTEN *=*+1 ; FORM *=*+PTRSIZ ;FORMAT POINTER ; -INTEGR ;ONE-BYTE INTEGER FROM QINT +INTEGR ;ONE-BYTE INTEGER FROM QINT CHARAC *=*+1 ;A DELIMITING CHAR ENDCHR *=*+1 ;OTHER DELIMITING CHAR COUNT *=*+1 ;GENERAL COUNTER @@ -23,22 +23,22 @@ XCNT *=*+1 ;DOS LOOP COUNTER ; DIMFLG, VALTYP AND INTFLG MUST BE ; CONSECUTIVE LOCATIONS. DIMFLG *=*+1 ;IN GETTING A POINTER TO A VARIABLE -; IT IS IMPORTANT TO REMEMBER WHETHER -; IT IS BEING DONE FOR DIM OR NOT. +; IT IS IMPORTANT TO REMEMBER WHETHER +; IT IS BEING DONE FOR DIM OR NOT. VALTYP *=*+1 ;THE TYPE INDICATOR 0=NUMERIC, 1=STRING INTFLG *=*+1 ;TELLS IF INTEGER ; -GARBFL ;WHETHER TO DO GARBAGE COLLECTION +GARBFL ;WHETHER TO DO GARBAGE COLLECTION DORES *=*+1 ;WHETHER CAN OR CAN'T CRUNCH RES'D WORD. -; TURNED ON WHEN DATA BEING SCANNED BY -; CRUNCH SO UNQUOTED STRS WON'T BE CRUNCHED. +; TURNED ON WHEN DATA BEING SCANNED BY +; CRUNCH SO UNQUOTED STRS WON'T BE CRUNCHED. ; SUBFLG *=*+1 ;FLAG WHETHER SUB'D VARIABLE ALLOWED. -; FOR AND USER-DEFINED FUNCTION POINTER -; FETCHING TURN THIS ON BEFORE CALLING -; PTRGET SO ARRAYS WON'T BE DETECTED. -; STKINI AND PTRGET CLEAR IT. -; ALSO DISALLOWS INTEGERS THERE. +; FOR AND USER-DEFINED FUNCTION POINTER +; FETCHING TURN THIS ON BEFORE CALLING +; PTRGET SO ARRAYS WON'T BE DETECTED. +; STKINI AND PTRGET CLEAR IT. +; ALSO DISALLOWS INTEGERS THERE. ; INPFLG *=*+1 ;FLAGS WHETHER WE ARE DOING INPUT OR READ. ; @@ -61,7 +61,7 @@ INDEX2 *=*+PTRSIZ ;DIRECT CELLS FOR 2ND INDEXING USAGE ; RESHO *=*+1 ;RESULT OF MULTIPLIER AND DIVIDER RESMOH *=*+1 -ADDEND ;TEMP USED BY UMULT +ADDEND ;TEMP USED BY UMULT RESMO *=*+1 RESLO *=*+1 *=*+1 ;OVERFLOW PREVIOUS CELLS @@ -98,8 +98,8 @@ RESLO *=*+1 ; MEMTOP (STRS) ; TXTTAB *=*+2 ;POINTER TO BEGINNING OF TEXT AND -; DOESN'T CHANGE AFTER BEING SETUP -; BY INIT +; DOESN'T CHANGE AFTER BEING SETUP +; BY INIT ; TXTEND *=*+2 ;POINTER TO END OF TEXT (EXCEPT 64K) ; @@ -120,28 +120,28 @@ MEMTOP *=*+PTRSIZ ;HIGHEST LOCATION IN MEMORY ; LINE NUMBERS AND TEXTUAL POINTERS CURLIN *=*+2 ;CURRENT LINE NUMBER OLDLIN *=*+2 ;OLD LINE NUMBER (SETUP BY STOP OR -; END IN A PROGRAM) +; END IN A PROGRAM) OLDTXT *=*+PTRSIZ ;OLD TEXT POINTER ; DATLIN *=*+2 ;DATA LINE NUMBER DATPTR *=*+2 ;POINTER TO DATA. INITIALIZED TO POINT -; AT THE ZERO INFRONT OF (TXTTAB) BY -; CLR COMMAND. -; UPDATED BY EXECUTION OF A READ. +; AT THE ZERO INFRONT OF (TXTTAB) BY +; CLR COMMAND. +; UPDATED BY EXECUTION OF A READ. INPPTR *=*+2 ;REMEMBERS WHERE INPUT IS COMING FROM. .SKI 4 ; STUFF USED IN EVALUATIONS ; VARNAM *=*+2 ;VARIABLE'S NAME ; -FDECPT ;POINTER INTO POWER OF TENS TABLE. +FDECPT ;POINTER INTO POWER OF TENS TABLE. VARPNT *=*+PTRSIZ ;POINTER TO VARIABLE IN MEMORY ; -FORPNT ;A VARIABLE'S POINTER FOR FOR LOOPS -; AND LET STATEMENTS (3 BYTES). +FORPNT ;A VARIABLE'S POINTER FOR FOR LOOPS +; AND LET STATEMENTS (3 BYTES). LSTPNT *=*+PTRSIZ ;POINTER TO LIST STRING (3 BYTES). ; -VARTXT ;SAVE CURRENT TXTPTR ON READ. +VARTXT ;SAVE CURRENT TXTPTR ON READ. OPPTR *=*+PTRSIZ ;POINTER TO CURRENT OP'S ENTRY IN OPTAB. ; OPMASK *=*+1 ;MASK CREATED BY CURRENT OPERATION. @@ -149,8 +149,8 @@ OPMASK *=*+1 ;MASK CREATED BY CURRENT OPERATION. ; TEMPORARY FLOATING RESULT REGISTERS (5BYTES EACH): ; TEMPF1,TEMPF2,TEMPF3 ; -TEMPF3 ;TEMP FLOAT REG -GRBPNT ;POINTER USED IN GARBAGE COLLECTION. +TEMPF3 ;TEMP FLOAT REG +GRBPNT ;POINTER USED IN GARBAGE COLLECTION. DEFPNT *=*+PTRSIZ ;POINTER USED IN FUNCTION DEFINITION. ; DSCPNT *=*+PTRSIZ ;POINTER TO A STRING DESCRIPTOR. @@ -158,24 +158,24 @@ DSCPNT *=*+PTRSIZ ;POINTER TO A STRING DESCRIPTOR. JMPER *=*+2 ;THREE BYTES LONG OLDOV *=*+1 ;THE OLD OVERFLOW. ; -TEMPF1 ;TEMP FLOAT REG -PTARG1=TEMPF1 ;MULTIPLY DEF'D FOR USE BY INSTR$ -PTARG2=TEMPF1+3 -STR1=TEMPF1+6 -STR2=TEMPF1+10 -TMPPOS=TEMPF1+14 -POSITN=TEMPF1+15 -MATCH=TEMPF1+16 -ARYPNT ;POINTER USED IN ARRAY BUILDING. +TEMPF1 ;TEMP FLOAT REG +PTARG1 =TEMPF1 ;MULTIPLY DEF'D FOR USE BY INSTR$ +PTARG2 =TEMPF1+3 +STR1 =TEMPF1+6 +STR2 =TEMPF1+10 +TMPPOS =TEMPF1+14 +POSITN =TEMPF1+15 +MATCH =TEMPF1+16 +ARYPNT ;POINTER USED IN ARRAY BUILDING. HIGHDS *=*+PTRSIZ ;DESTINATION OF HIGHEST ELEMENT IN BLT. HIGHTR *=*+PTRSIZ ;SOURCE OF HIGHEST ELEMENT TO MOVE. ; -TEMPF2 ;TEMP FLOAT REG (5BYTES) +TEMPF2 ;TEMP FLOAT REG (5BYTES) LOWDS *=*+1 ;LOCATION OF LAST BYTE TRANSFERED (3 BYTES). DECCNT *=*+1 ;NUMBER OF PLACES BEFORE DECIMAL POINT. TENEXP *=*+1 ;BASE TEN EXPONENT ; -GRBTOP ;POINTER USED IN GARBAGE COLLECTION.(3 BYTES) +GRBTOP ;POINTER USED IN GARBAGE COLLECTION.(3 BYTES) LOWTR *=*+1 ;LAST THING TO MOVE IN BLT (3 BYTES). DPTFLG *=*+1 ;HAS A DPT BEEN INPUT EXPSGN *=*+1 ;SIGN OF EXPONENT @@ -187,19 +187,19 @@ FAC FACEXP *=*+1 FACHO *=*+1 ;MOST SIGNIFICANT BYTE OF MANTISSA. FACMOH *=*+1 -INDICE ;USED BY QINT. +INDICE ;USED BY QINT. FACMO *=*+1 FACLO *=*+1 FACSGN *=*+1 -DEGREE ;COUNT USED BY POLYNOMIALS. +DEGREE ;COUNT USED BY POLYNOMIALS. SGNFLG *=*+1 BITS *=*+1 ;CELL FOR SHIFTR TO USE. .SKI 4 ; THE FLOATING ARGUMENT (UNPACKED) -T1=* ;TEMPORARIES --USES FP BUFFER -T2=T1+1 -T3=T1+2 -T4=T1+3 +T1 =* ;TEMPORARIES --USES FP BUFFER +T2 =T1+1 +T3 =T1+2 +T4 =T1+3 ; ARGEXP *=*+1 ARGHO *=*+1 @@ -212,16 +212,16 @@ ARISGN *=*+1 ;A SIGN REFLECTING THE RESULT FACOV *=*+1 ;OVERFLOW BYTE OF THE FAC *=*+1 .SKI 4 -STRNG2 ;-> TO STR OR DESC -POLYPT ;-> TO POLYNOMIAL COEFFICIENTS -CURTOL ;ABSOLUTE LINEAR INDEX IS FORMED HERE +STRNG2 ;-> TO STR OR DESC +POLYPT ;-> TO POLYNOMIAL COEFFICIENTS +CURTOL ;ABSOLUTE LINEAR INDEX IS FORMED HERE FBUFPT *=*+PTRSIZ ;-> INTO FBUFFR USED BY FOUT TXTPTR *=*+PTRSIZ ;POINTER TO CURRENT TERM BUFFPT *=*+PTRSIZ ;^INPUT BUFFER ; -NOZE ;USING'S LEADING ZERO COUNTER +NOZE ;USING'S LEADING ZERO COUNTER PARSTS *=*+1 ;DOS STD PARSER WORD -POINT ;USING'S POINTER TO DECIMAL POINT +POINT ;USING'S POINTER TO DECIMAL POINT PARSTX *=*+1 ;DOS AUX PARSER WORD ; SEEDPT *=*+2 @@ -237,7 +237,7 @@ ERRNUM *=*+1 ; * =$200 FBUFFR -VSPBUF ;BUFFER USED TO INTERFACE WITH VSP +VSPBUF ;BUFFER USED TO INTERFACE WITH VSP *=*+16 ;RESERVE 16 BYTES FOR FILENAME 1 DOSF1L *=*+1 ;DOS FILE NAME 1 LENGTH DOSDS1 *=*+1 ;DOS DISK DRIVE 1 @@ -262,12 +262,12 @@ DOSDID *=*+2 ;DOS DISK IDENTIFIER (2 CHARS) DIDCHK *=*+1 ;DOS DID FLAG ; DOSSTR *=*+1 ;DOS OUTPUT STRING BUFFER -DOSSPC=*-FBUFFR ;SPACED USED BY DOS ROUTINES +DOSSPC =*-FBUFFR ;SPACED USED BY DOS ROUTINES .SKI 4 * =*+46 ; ; -TRMPOS ;CURSOR COLUMN ON CRT +TRMPOS ;CURSOR COLUMN ON CRT ANDMSK *=*+1 ;MASK USED BY WAIT EORMSK *=*+1 ;MASK USED BY WAIT ; @@ -277,7 +277,7 @@ DOMASK TANSGN *=*+1 ;USED IN DETERMINING SIGN OF TAN ; LDAABS *=*+1 ;LDA ABS ROUTINE (SEE INITAT) -TTTEMP ;TEMPORARY STORE +TTTEMP ;TEMPORARY STORE LDAADR *=*+2 ;MODIFIABLE ADDRESS *=*+1 ;RETURN OPCODE .SKI 3 diff --git a/BASIC_CBM2_1982-11-19/butes1 b/BASIC_CBM2_1982-11-19/butes1 index 0a71c7d..ac03e9d 100644 --- a/BASIC_CBM2_1982-11-19/butes1 +++ b/BASIC_CBM2_1982-11-19/butes1 @@ -10,79 +10,79 @@ STXTPT LDA #TXTBNK STA TXTPTR+1 RTS .SKIP 4 -GETNUM JSR GETPIN ;GET POSITIVE INTEGER -COMBYT JSR CHKCOM - JMP GETBYT -; -GTBYTC JSR CHRGET -GETBYT JSR FRMNUM -CONINT JSR POSINT - LDX FACMO - BNE FCER1 - LDX FACLO - JMP CHRGOT +GETNUM JSR GETPIN ;GET POSITIVE INTEGER +COMBYT JSR CHKCOM + JMP GETBYT +; +GTBYTC JSR CHRGET +GETBYT JSR FRMNUM +CONINT JSR POSINT + LDX FACMO + BNE FCER1 + LDX FACLO + JMP CHRGOT .SKIP 4 -GETPIN JSR FRMNUM ;EVALUATE THE FORMULA -GETADR LDA FACSGN - BMI FCER1 - LDA FACEXP - CMP #145 - BCS FCER1 - JSR QINT - LDA FACMO - LDY FACMO+1 - STY POKER - STA POKER+1 +GETPIN JSR FRMNUM ;EVALUATE THE FORMULA +GETADR LDA FACSGN + BMI FCER1 + LDA FACEXP + CMP #145 + BCS FCER1 + JSR QINT + LDA FACMO + LDY FACMO+1 + STY POKER + STA POKER+1 RTS ; -FCER1 JMP FCERR +FCER1 JMP FCERR .SKIP 4 ; THESE ROUTINES CHECK FOR CERTAIN 'VALTYP' ; (C) IS NOT PRESERVED. -FRMNUM JSR FRMEVL +FRMNUM JSR FRMEVL CHKNUM CLC .BYTE $24 CHKSTR SEC -CHKVAL BIT VALTYP - BMI DOCSTR - BCS CHKERR +CHKVAL BIT VALTYP + BMI DOCSTR + BCS CHKERR CHKOK RTS ; -DOCSTR BCS CHKOK -CHKERR LDX #ERRTM - JMP ERROR +DOCSTR BCS CHKOK +CHKERR LDX #ERRTM + JMP ERROR .SKIP 4 ; ; PRINT THE STR WHOSE DESCRIPTOR IS -> BY FACMO STRPRT - JSR FREFAC ;RETURN TEMP -> + JSR FREFAC ;RETURN TEMP -> TAX ;PUT COUNT INTO COUNTER - LDY #0 + LDY #0 INX - JSR MAPINX + JSR MAPINX ; ; OUTPUT X CHARACTERS TO DEVICE STRP2 DEX - BEQ STRP3 + BEQ STRP3 LDA (INDEX)Y - JSR OCHR ;OUTPUT ONE CHAR + JSR OCHR ;OUTPUT ONE CHAR INY - JMP STRP2 ;NEXT -STRP3 JMP MAPTXT + JMP STRP2 ;NEXT +STRP3 JMP MAPTXT ; ; OUTPUT SPACE OSPC - LDA CHANNL - BEQ CRTSKP - LDA #' ' + LDA CHANNL + BEQ CRTSKP + LDA #' ' .BYTE $2C ;EAT NEXT TWO BYTES -CRTSKP LDA #29 +CRTSKP LDA #29 .BYTE $2C ;EAT NEXT TWO BYTES -OUTQST LDA #'?' +OUTQST LDA #'?' ; ; OUTPUT ONE CHARACTER TO DEVICE -OCHR JSR BSOUT ;OUTPUT CHARACTER - AND #$FF +OCHR JSR BSOUT ;OUTPUT CHARACTER + AND #$FF RTS .PAGE 'DOS UTILITY ROUTINES.' ; -MGM 7/23/79- @@ -178,367 +178,367 @@ OCHR JSR BSOUT ;OUTPUT CHARACTER DOSTBL .BYTE $02,$00,$FF,$FF,DOSLFN,DOSDSK,$6F .SKIP 2 DOSPAR - LDA #0 + LDA #0 ; -DOSPRS ;SPECIAL ERROR FLAG ENTRY - LDX #$FF ;NO AUX OPTIONS! -DOSPRX ;SPEC AUX ERROR FLAG ENTRY +DOSPRS ;SPECIAL ERROR FLAG ENTRY + LDX #$FF ;NO AUX OPTIONS! +DOSPRX ;SPEC AUX ERROR FLAG ENTRY PHA ;SAVE ERROR FLAGS TXA PHA - LDA #0 - STA PARSTS - STA PARSTX + LDA #0 + STA PARSTS + STA PARSTX .SKI 1 - LDX #DOSSPC-1 ;CLEAR DOS SCRATCH AREA -DOS01 STA FBUFFR,X + LDX #DOSSPC-1 ;CLEAR DOS SCRATCH AREA +DOS01 STA FBUFFR,X DEX - BNE DOS01 - LDX #DOSSA-DOSOFL ;SET SOME DEFAULTS FROM TABLE -DOS02 LDA DOSTBL,X - STA DOSOFL,X + BNE DOS01 + LDX #DOSSA-DOSOFL ;SET SOME DEFAULTS FROM TABLE +DOS02 LDA DOSTBL,X + STA DOSOFL,X DEX - BPL DOS02 - LDX DFBANK - STX DOSBNK + BPL DOS02 + LDX DFBANK + STX DOSBNK ; - JSR CHRGOT ;GET CURRENT CHR - BNE PARSE1 ;IF NOT END OF STATEMENT + JSR CHRGOT ;GET CURRENT CHR + BNE PARSE1 ;IF NOT END OF STATEMENT ; DONE PLA ;GET AUX ERROR FLAG - AND PARSTX ; REPEATED,ILLEGAL PARAMS? - BNE DN20 + AND PARSTX ; REPEATED,ILLEGAL PARAMS? + BNE DN20 PLA ;GET ERROR FLAGS - JSR PRMRPT - LDA PARSTS - LDX PARSTX + JSR PRMRPT + LDA PARSTS + LDX PARSTX RTS -DN20 JMP SNERR -; -PARSE1 CMP #'#' - BEQ LOGADR ;IF LOGICAL FILE NUMBER - CMP #'W' - BEQ RECLEN ;IF RECORD LENGTH - CMP #'L' - BEQ RECLEN ;IF RECORD LENGTH - CMP #'R' - BNE DOS5 ;IF NOT ???? - JSR CHRGET ;MOVE ON - JMP DELIM1 -; -DOS5 CMP #'D' - BEQ DRV1 - CMP #TKON ;"ON" TOKEN - BEQ ON1 - CMP #'B' - BEQ BANK1 - CMP #'U' - BEQ UNIT1 - CMP #'P' - BEQ DOFFL1 - CMP #'I' - BNE DOS10 ;IF NOT IDENTIFIER - JMP IDENT -; -DOS10 CMP #'"' - BEQ NAME11 - CMP #'(' - BEQ NAME11 - JMP SNERR +DN20 JMP SNERR +; +PARSE1 CMP #'#' + BEQ LOGADR ;IF LOGICAL FILE NUMBER + CMP #'W' + BEQ RECLEN ;IF RECORD LENGTH + CMP #'L' + BEQ RECLEN ;IF RECORD LENGTH + CMP #'R' + BNE DOS5 ;IF NOT ???? + JSR CHRGET ;MOVE ON + JMP DELIM1 +; +DOS5 CMP #'D' + BEQ DRV1 + CMP #TKON ;"ON" TOKEN + BEQ ON1 + CMP #'B' + BEQ BANK1 + CMP #'U' + BEQ UNIT1 + CMP #'P' + BEQ DOFFL1 + CMP #'I' + BNE DOS10 ;IF NOT IDENTIFIER + JMP IDENT +; +DOS10 CMP #'"' + BEQ NAME11 + CMP #'(' + BEQ NAME11 + JMP SNERR .SKIP 4 LOGADR - LDA #4 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #0 - BEQ QTYER2 ;IF ILLEGAL VALUE - STX DOSLA - LDA #4 ;SET LOGICAL ADDRESS FLAG - JMP DEL1 ;GET NEXT PARAMETER + LDA #4 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #0 + BEQ QTYER2 ;IF ILLEGAL VALUE + STX DOSLA + LDA #4 ;SET LOGICAL ADDRESS FLAG + JMP DEL1 ;GET NEXT PARAMETER .SKIP 4 RECLEN TAX ;SAVE CHAR - LDA #$40 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - CPX #'W' - BNE RECOO - JSR CHRGET - JMP RECON ;SET PARSTS -RECOO JSR GETVAL - CPX #0 - BEQ QTYER2 ;ZERO ILLEGAL DOSRCL - CPX #255 - BEQ QTYER2 ;ILLEGAL DOSRCL - STX DOSRCL ;STORE PARCEL + LDA #$40 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + CPX #'W' + BNE RECOO + JSR CHRGET + JMP RECON ;SET PARSTS +RECOO JSR GETVAL + CPX #0 + BEQ QTYER2 ;ZERO ILLEGAL DOSRCL + CPX #255 + BEQ QTYER2 ;ILLEGAL DOSRCL + STX DOSRCL ;STORE PARCEL ; RECON - LDA #$40 ;SET DOSRCL FLAG & - JMP DEL1 + LDA #$40 ;SET DOSRCL FLAG & + JMP DEL1 ; -DOFFL1 JMP DOFFL +DOFFL1 JMP DOFFL ; -NAME11 JMP NAME1 +NAME11 JMP NAME1 ; -ON1 JSR ON - JMP DEL1 +ON1 JSR ON + JMP DEL1 ; -UNIT1 JSR UNIT ;DO UNIT# PARSING - JMP DEL1 +UNIT1 JSR UNIT ;DO UNIT# PARSING + JMP DEL1 ; -BANK1 JSR BANK - JMP DEL1 +BANK1 JSR BANK + JMP DEL1 .SKIP 4 DRV1 - LDA #$10 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #2 - BCS QTYER2 ;ILLEGAL DRV# IF >1 - STX DOSDS1 - STX DOSDS2 - LDA #$10 - JMP DEL1 -; -QTYER2 JMP QTYERR + LDA #$10 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #2 + BCS QTYER2 ;ILLEGAL DRV# IF >1 + STX DOSDS1 + STX DOSDS2 + LDA #$10 + JMP DEL1 +; +QTYER2 JMP QTYERR .SKIP 4 -IDENT LDA DIDCHK - BEQ IDCON ;ONLY 1 DOSDID ALLOWED - JMP SNERR -; -DOFFL LDA #$02 ;CHK AUX STATUS - JSR PRXRPT - JSR GETOFF ;GET OFFSET VALUE - STY DOSOFL - STA DOSOFL+1 - LDA #$02 +IDENT LDA DIDCHK + BEQ IDCON ;ONLY 1 DOSDID ALLOWED + JMP SNERR +; +DOFFL LDA #$02 ;CHK AUX STATUS + JSR PRXRPT + JSR GETOFF ;GET OFFSET VALUE + STY DOSOFL + STA DOSOFL+1 + LDA #$02 DLIMX1 ORA PARSTX ;SET AUX STATUS BITS - STA PARSTX - JMP DELIM1 ;TRY FOR NXT PARAM + STA PARSTX + JMP DELIM1 ;TRY FOR NXT PARAM ; -DOFFH LDA #$04 - JSR PRXRPT - JSR GETOFF - STY DOSOFH - STA DOSOFH+1 - LDA #$04 - JMP DLIMX1 ;SET AUX STATUS +DOFFH LDA #$04 + JSR PRXRPT + JSR GETOFF + STY DOSOFH + STA DOSOFH+1 + LDA #$04 + JMP DLIMX1 ;SET AUX STATUS ; IDCON - JSR CHRGET ;GET NEXT CHARACTER - STA DOSDID ;M(TXTPTR => DOSDID - JSR CHRGET - STA DOSDID+1 - LDA #$FF - STA DIDCHK ;SET DOSDID FLAG & - JSR CHRGET ;CONTINUE - JMP DELIM1 + JSR CHRGET ;GET NEXT CHARACTER + STA DOSDID ;M(TXTPTR => DOSDID + JSR CHRGET + STA DOSDID+1 + LDA #$FF + STA DIDCHK ;SET DOSDID FLAG & + JSR CHRGET ;CONTINUE + JMP DELIM1 .SKIP 4 NAME1 - LDA #1 ;NAME1 ALLWD ONLY ONCE - JSR NEWNAM ;DO NAME PARSING - STA DOSF1L - STA XCNT ;SAVE TEMP VALUE - LDA #FBUFFR - STA DOSF1A+1 - LDA #SYSBNK ; SET TO SYSTEM BANK - STA DOSF1B -; - LDY #0 - JSR MAPINX + LDA #1 ;NAME1 ALLWD ONLY ONCE + JSR NEWNAM ;DO NAME PARSING + STA DOSF1L + STA XCNT ;SAVE TEMP VALUE + LDA #FBUFFR + STA DOSF1A+1 + LDA #SYSBNK ; SET TO SYSTEM BANK + STA DOSF1B +; + LDY #0 + JSR MAPINX LOOP6 LDA (INDEX)Y - STA FBUFFR,Y ; SET CHAR IN BUFFER + STA FBUFFR,Y ; SET CHAR IN BUFFER INY - CPY XCNT - BCC LOOP6 ;IF NOT FULL NAME - JSR MAPTXT - LDA #1 ;SET NAME1 FLAG + CPY XCNT + BCC LOOP6 ;IF NOT FULL NAME + JSR MAPTXT + LDA #1 ;SET NAME1 FLAG ; DEL1 - ORA PARSTS - STA PARSTS + ORA PARSTS + STA PARSTS ; DELIM1 - JSR CHRGOT - BNE NXXX -DONE1 JMP DONE ;/<> => DONE -; -NXXX CMP #',' - BNE NEXT6 - JSR CHRGET - JMP PARSE1 -; -NEXT6 CMP #TKON - BNE NEXT6A - JMP ON1 -NEXT6A CMP #TKTO ;"TO" TOKEN - BEQ NEXT6B - JMP SNERR ;SNTAX ERROR + JSR CHRGOT + BNE NXXX +DONE1 JMP DONE ;/<> => DONE +; +NXXX CMP #',' + BNE NEXT6 + JSR CHRGET + JMP PARSE1 +; +NEXT6 CMP #TKON + BNE NEXT6A + JMP ON1 +NEXT6A CMP #TKTO ;"TO" TOKEN + BEQ NEXT6B + JMP SNERR ;SNTAX ERROR ; ; IF "TO" IS NOT FOLLOWED BY AN OFFSET PARAM, ; THEN DO FILE2 PARAMS. OTHERWISE, DO HIGH ; OFFSET AND CONTINUE WITH FILE0 OPTIONS. -NEXT6B JSR CHRGET - CMP #'P' - BNE PARS22 - JMP DOFFH -; -; -PARSE2 JSR CHRGET -PARS22 CMP #'D' - BEQ DRV2 - CMP #TKON ;"ON" TOKEN - BEQ ON2 - CMP #'U' - BEQ UNIT2 - CMP #'"' - BEQ NAME2 - CMP #'(' - BEQ NAME2 +NEXT6B JSR CHRGET + CMP #'P' + BNE PARS22 + JMP DOFFH +; +; +PARSE2 JSR CHRGET +PARS22 CMP #'D' + BEQ DRV2 + CMP #TKON ;"ON" TOKEN + BEQ ON2 + CMP #'U' + BEQ UNIT2 + CMP #'"' + BEQ NAME2 + CMP #'(' + BEQ NAME2 ; DRV2 - LDA #$20 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #2 - BCS QTYERR ;ILLEGAL DRIVE # - STX DOSDS2 - LDA #$20 - JMP DEL2 + LDA #$20 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #2 + BCS QTYERR ;ILLEGAL DRIVE # + STX DOSDS2 + LDA #$20 + JMP DEL2 ; -ON2 JSR ON - JMP DEL2 +ON2 JSR ON + JMP DEL2 ; -UNIT2 JSR UNIT ;DO UNIT# PARSING - JMP DEL2 +UNIT2 JSR UNIT ;DO UNIT# PARSING + JMP DEL2 ; NAME2 - LDA #2 ;NAME2 ALLOWED ONLY ONCE - JSR NEWNAM - STA DOSF2L - STX DOSF2A - STY DOSF2A+1 - LDA INDEX1+2 ; GET STRNG BANK# - STA DOSF2B - LDA #2 ;SET FILENAME2 FLAG & + LDA #2 ;NAME2 ALLOWED ONLY ONCE + JSR NEWNAM + STA DOSF2L + STX DOSF2A + STY DOSF2A+1 + LDA INDEX1+2 ; GET STRNG BANK# + STA DOSF2B + LDA #2 ;SET FILENAME2 FLAG & ; DEL2 - ORA PARSTS ;SET FLAG IN STATUS - STA PARSTS - JSR CHRGOT - BEQ DONE1 ;DONE ON /<> - CMP #',' - BEQ PARSE2 - CMP #TKON ;"ON" TOKEN - BEQ ON2 - CMP #'U' - BEQ UNIT2 - JMP SNERR + ORA PARSTS ;SET FLAG IN STATUS + STA PARSTS + JSR CHRGOT + BEQ DONE1 ;DONE ON /<> + CMP #',' + BEQ PARSE2 + CMP #TKON ;"ON" TOKEN + BEQ ON2 + CMP #'U' + BEQ UNIT2 + JMP SNERR .SKIP 4 -QTYERR LDX #ERRFC - JMP ERROR ;"ILLEGAL QUANTITY" +QTYERR LDX #ERRFC + JMP ERROR ;"ILLEGAL QUANTITY" ; -ON JSR CHRGET - CMP #'U' - BEQ UNIT ;IF CHARACTER IS A "U" - CMP #'B' - BEQ BANK - JMP SNERR +ON JSR CHRGET + CMP #'U' + BEQ UNIT ;IF CHARACTER IS A "U" + CMP #'B' + BEQ BANK + JMP SNERR ; UNIT - JSR GETVAL - CPX #32 - BCS QTYERR ;ERROR IF >31 - CPX #3 - BCC QTYERR ;ERROR IF <3 - STX DOSFA - LDA #8 + JSR GETVAL + CPX #32 + BCS QTYERR ;ERROR IF >31 + CPX #3 + BCC QTYERR ;ERROR IF <3 + STX DOSFA + LDA #8 RTS ; BANK - LDA #$01 ;REPEATED PARAM? - JSR PRXRPT - JSR GETVAL - CPX #MXBANK ;BANK TOO LARGE? - BCS QTYERR - STX DOSBNK - LDA #$01 - ORA PARSTX ;SET BNK BIT IN AUX STATUS - STA PARSTX - LDA #0 ; .A=STD STATUS WRD, NO BITS TO SET + LDA #$01 ;REPEATED PARAM? + JSR PRXRPT + JSR GETVAL + CPX #MXBANK ;BANK TOO LARGE? + BCS QTYERR + STX DOSBNK + LDA #$01 + ORA PARSTX ;SET BNK BIT IN AUX STATUS + STA PARSTX + LDA #0 ; .A=STD STATUS WRD, NO BITS TO SET RTS ; NEWNAM - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR SAV13 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR SAV13 TAX ;SAVE LENGTH OF STRING - BEQ QTYERR ;IF LENGTH = 0 - LDY #0 - JSR SAV12 - CMP #'@' - BNE LENCHK - LDA #$80 - JSR PRMRPT - LDA PARSTS - ORA #$80 ;SET "@" FLAG - STA PARSTS + BEQ QTYERR ;IF LENGTH = 0 + LDY #0 + JSR SAV12 + CMP #'@' + BNE LENCHK + LDA #$80 + JSR PRMRPT + LDA PARSTS + ORA #$80 ;SET "@" FLAG + STA PARSTS DEX ;DECREMENT LENGTH - INC INDEX1 ;INCREMENT PAST "@" - BNE LENCHK ;IF NO CARRY - INC INDEX1+1 + INC INDEX1 ;INCREMENT PAST "@" + BNE LENCHK ;IF NO CARRY + INC INDEX1+1 ; LENCHK TXA - CMP #17 - BCS ERRLEN ;IF LENGTH < 17 - LDX INDEX1 - LDY INDEX1+1 + CMP #17 + BCS ERRLEN ;IF LENGTH < 17 + LDX INDEX1 + LDY INDEX1+1 RTS ; -ERRLEN LDX #ERRLS - JMP ERROR ;FILENAME TOO LONG +ERRLEN LDX #ERRLS + JMP ERROR ;FILENAME TOO LONG .SKIP 4 -GETVAL ;GET NEXTVALUE ROUTINE - JSR CHRGET ;GET NXT CHR -GTVL2 BEQ SNER ;IF END OF STATEMENT - BCC GTVL5 ;CAN BE NUMERIC - JSR CHKOPN ;OR A "(" - JSR GETBYT ;ANYTHING ELSE IS AN ERROR - JMP CHKCLS ;NEED CLOSING ")" +GETVAL ;GET NEXTVALUE ROUTINE + JSR CHRGET ;GET NXT CHR +GTVL2 BEQ SNER ;IF END OF STATEMENT + BCC GTVL5 ;CAN BE NUMERIC + JSR CHKOPN ;OR A "(" + JSR GETBYT ;ANYTHING ELSE IS AN ERROR + JMP CHKCLS ;NEED CLOSING ")" ; -GTVL5 JMP GETBYT ;EVALUATE IT +GTVL5 JMP GETBYT ;EVALUATE IT ; ; GET NEXT 2BYTE EXPR ROUTINE ; EXIT: .A,.Y (HIGH,LOW) VALUE ; -GETOFF JSR CHRGET ;GET NXT CHR - BEQ SNER ;IF END OF STATEMENT - BCC GTFF5 ;CAN BE NUM. CONST - JSR CHKOPN ;OR A "(" - JSR GETPIN ;EXPR - JSR CHKCLS ;NEED CLOSING ")" - LDY POKER - LDA POKER+1 +GETOFF JSR CHRGET ;GET NXT CHR + BEQ SNER ;IF END OF STATEMENT + BCC GTFF5 ;CAN BE NUM. CONST + JSR CHKOPN ;OR A "(" + JSR GETPIN ;EXPR + JSR CHKCLS ;NEED CLOSING ")" + LDY POKER + LDA POKER+1 RTS ; -GTFF5 JMP GETPIN ;EVALUATE IT +GTFF5 JMP GETPIN ;EVALUATE IT .SKIP 4 ; PRMRPT CHECKS FOR A REPEATED PARAMETER. ; ; ENTRY A CONTAINS PARSTS FLAG TO CHECK. PRMRPT - AND PARSTS ;AND WITH PARSTS - BNE SNER ;IF BIT PREVIOUSLY SET + AND PARSTS ;AND WITH PARSTS + BNE SNER ;IF BIT PREVIOUSLY SET RTS ; ; PRXRPT CHECKS FOR A REPEATED PARAMETER. ; ; ENTRY A CONTAINS PARSTX FLAG TO CHECK. PRXRPT - AND PARSTX ;AND WITH PARSTX - BNE SNER ;IF BIT PREVIOUSLY SET + AND PARSTX ;AND WITH PARSTX + BNE SNER ;IF BIT PREVIOUSLY SET RTS -SNER JMP SNERR ;JUMP SYSTAN ERROR +SNER JMP SNERR ;JUMP SYSTAN ERROR .END diff --git a/BASIC_CBM2_1982-11-19/butes2 b/BASIC_CBM2_1982-11-19/butes2 index 46d2b87..13ddf8d 100644 --- a/BASIC_CBM2_1982-11-19/butes2 +++ b/BASIC_CBM2_1982-11-19/butes2 @@ -43,7 +43,7 @@ XFN2 =$F2 ;SENDS FILENAME2 ; ; TABLD - TOKEN TABLE DEFINITIONS ; -TABLD ;USED TO BUILD DISK COMMAND STRINGS +TABLD ;USED TO BUILD DISK COMMAND STRINGS FCLR =*-TABLD FCLRM1 =FCLR-1 .BYT 'I',XD1 @@ -444,7 +444,7 @@ FLPINT CHRGET JMP (ICHRGE) CHRGOT JMP (ICHRGO) .SKI 2 - .IFN CC1 < +.IFN CC1 < NCHRGE INC TXTPTR ;INCREMENT TEXT POINTER BNE NCHRGO ;IF NO CARRY INTO MSB @@ -466,7 +466,7 @@ QNUM SBC #$D0 ;$100-'0' QNRTS RTS > - .IFE CC1 < +.IFE CC1 < NCHRGO JSR CHRMAP JMP CHRG20 NCHRGE diff --git a/BASIC_CBM2_1982-11-19/bverbs1 b/BASIC_CBM2_1982-11-19/bverbs1 index df817a0..551b8cd 100644 --- a/BASIC_CBM2_1982-11-19/bverbs1 +++ b/BASIC_CBM2_1982-11-19/bverbs1 @@ -107,13 +107,13 @@ SCRTCH LDA #0 CLC LDA TXTTAB ADC #2 - .IFN CC1 < +.IFN CC1 < STA VARTAB LDA TXTTAB+1 ADC #0 STA VARTAB+1 > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < STA TXTEND LDA TXTTAB+1 ADC #0 @@ -145,19 +145,19 @@ CLRPU LDA PUDEFS,X JSR CLALL LDA VARTAB LDY VARTAB+1 - .IFN CC4 < +.IFN CC4 < STA VAREND ;ONLY 256K STY VAREND+1 > - .IFN CC1+CC2+CC3 < +.IFN CC1+CC2+CC3 < STA STREND ;EXCEPT 256K STY STREND+1 > - .IFN CC1+CC2 < +.IFN CC1+CC2 < STA ARYTAB ;ONLY 64K,128K STY ARYTAB+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYTAB ;ONLY 192K,256K LDY ARYTAB+1 STA ARYEND @@ -169,7 +169,7 @@ FLOAD JSR RESTOR ; RESET STK, CLEAR OLTXT AND CURRENT CHANNEL STKINI LDX #0 STX TEMPPT - PLA + PLA TAY PLA ;GET CALLERS ADDRESS LDX #$FE ;RESET STACK (LEAVE $01FF FREE) @@ -320,19 +320,19 @@ LOOPDN TXA ;CY=1 JMP FRMNUM .PAG RESTOR BEQ RESTO1 ;NO ARGUMENT..SET POINTER TO START OF TEXT - JSR GETPIN ;GET LINE # - STY LINNUM ;STORE < OF ARG - STA LINNUM+1 ;STORE > OF ARG - JSR MAPTXT - JSR FNDLIN ;POINT TO LINK OF ARG. LINE # - BCC RESERR ;LINE NOT FOUND - LDA LOWTR ;FNDLIN'S RESULT - SBC #1 - STA DATPTR - LDA LOWTR+1 - SBC #0 - STA DATPTR+1 - RTS + JSR GETPIN ;GET LINE # + STY LINNUM ;STORE < OF ARG + STA LINNUM+1 ;STORE > OF ARG + JSR MAPTXT + JSR FNDLIN ;POINT TO LINK OF ARG. LINE # + BCC RESERR ;LINE NOT FOUND + LDA LOWTR ;FNDLIN'S RESULT + SBC #1 + STA DATPTR + LDA LOWTR+1 + SBC #0 + STA DATPTR+1 + RTS RESTO1 SEC LDA TXTTAB SBC #1 @@ -342,7 +342,7 @@ RESTO1 SEC STA DATPTR+1 RUNM10 RTS RESERR LDX #ERRUS ;UNDEF'D STATEMENT - JMP ERROR + JMP ERROR ; ; PROCESS STOP VERB STOP BCS STPZ2 @@ -468,7 +468,7 @@ GO JSR CHRGOT ; PROCESS GOTO VERB GOTO JSR LINGET -GOTO0 ;ALWAYS GOTO0=GOTO+3 +GOTO0 ;ALWAYS GOTO0=GOTO+3 JSR REMN GOTO1 SEC LDA CURLIN @@ -493,7 +493,7 @@ LUKALL JSR FNDLNC LDA LOWTR+1 SBC #0 STA TXTPTR+1 - JMP RUNMOD ;PUT INTO RUN MODE + JMP RUNMOD ;PUT INTO RUN MODE .SKIP ; PROCESS RETURN VERB RETURN BNE ADDRTS @@ -551,14 +551,14 @@ REMER LDA TXTPTR+2 REMTXT JMP MAPTXT .SKI 4 TRAP JSR ERRDIR ;NO DIRECT MODE ALLOWED - JSR CHRGOT ;LOOK FOR ARGUMENT - BEQ TRAP1 ;NULL MEANS NO ARG. - JSR GETPIN ;GET WHAT SHOULD BE A LINE NUMBER - STY TRAPNO ;LO BYTE OF ARGUMENT + JSR CHRGOT ;LOOK FOR ARGUMENT + BEQ TRAP1 ;NULL MEANS NO ARG. + JSR GETPIN ;GET WHAT SHOULD BE A LINE NUMBER + STY TRAPNO ;LO BYTE OF ARGUMENT .BYT $2C ;EAT 2 TRAP1 LDA #$FF ;FLAG NO TRAP - STA TRAPNO+1 - RTS + STA TRAPNO+1 + RTS .SKI 4 ONGOTO JSR GETBYT PHA @@ -645,107 +645,107 @@ COPSTR PLA JMP INPCOM ; RESUME JSR ERRDIR ;NO DIRECT MODE - LDX ERRLIN+1 ;IS THERE AN ERROR TO RESUME FRON? - INX - BEQ RESCNT ;CAN'T RESUME! - JSR CHRGOT ;LOOK FOR ARGUMENTS - BEQ RESSWP ;NO ARG'S...RESTART ERR'D LINE - BCC RESNUM ;NUMERIC ARGUMENT - CMP #TKNEXT ;ONLY OTHER CHOICE IS 'NEXT' - BNE RESSNR ;IF NOT, SYNTAX ERROR -; - JSR RESSWP ;RESUME EXECUTION WITH NEXT STM'T - JSR MAPTXT - LDY #0 - LDA (TXTPTR)Y - BNE RESUM2 ;MUST BE A ':' - INY ;MUST BE A NULL,GET NEXT LINE - LDA (TXTPTR)Y ;MAKE SURE ITS NOT END-OF-TEXT - BNE RESUM1 - INY - LDA (TXTPTR)Y - BNE RESUM1 - JMP READY ;2 NULLS, EOT. BYE! + LDX ERRLIN+1 ;IS THERE AN ERROR TO RESUME FRON? + INX + BEQ RESCNT ;CAN'T RESUME! + JSR CHRGOT ;LOOK FOR ARGUMENTS + BEQ RESSWP ;NO ARG'S...RESTART ERR'D LINE + BCC RESNUM ;NUMERIC ARGUMENT + CMP #TKNEXT ;ONLY OTHER CHOICE IS 'NEXT' + BNE RESSNR ;IF NOT, SYNTAX ERROR +; + JSR RESSWP ;RESUME EXECUTION WITH NEXT STM'T + JSR MAPTXT + LDY #0 + LDA (TXTPTR)Y + BNE RESUM2 ;MUST BE A ':' + INY ;MUST BE A NULL,GET NEXT LINE + LDA (TXTPTR)Y ;MAKE SURE ITS NOT END-OF-TEXT + BNE RESUM1 + INY + LDA (TXTPTR)Y + BNE RESUM1 + JMP READY ;2 NULLS, EOT. BYE! RESUM1 LDY #3 ;NEW LINE, UPDATE POINTERS - LDA (TXTPTR)Y - STA CURLIN - INY - LDA (TXTPTR)Y - STA CURLIN+1 - JSR ADDON + LDA (TXTPTR)Y + STA CURLIN + INY + LDA (TXTPTR)Y + STA CURLIN+1 + JSR ADDON RESUM2 JSR CHRGET ;SKIP OVER THIS CHARACTER, INTO BODY OF STATEMENT - JMP DATA ;ADVANCE UNTIL NULL OR ':', THEN RTS + JMP DATA ;ADVANCE UNTIL NULL OR ':', THEN RTS ; RESNUM JSR GETPIN ;GET ADDRESS - STA LINNUM+1 - JSR RESEND - JSR MAPTXT - JMP LUK4IT + STA LINNUM+1 + JSR RESEND + JSR MAPTXT + JMP LUK4IT ; RESSWP LDX #1 RESUM0 LDA ERRLIN,X - STA CURLIN,X - LDA ERRTXT,X - STA TXTPTR,X - DEX - BPL RESUM0 + STA CURLIN,X + LDA ERRTXT,X + STA TXTPTR,X + DEX + BPL RESUM0 RESEND LDX #$FF - STX XCNT - STX ERRLIN - STX ERRLIN+1 ;FLAG 'NO FURTHER RESUMES UNTIL NEXT ERROR' - LDX TMPTRP ;RESTORE TRAP LINE TO ALLOW TRAPS AGAIN - STX TRAPNO+1 - RTS + STX XCNT + STX ERRLIN + STX ERRLIN+1 ;FLAG 'NO FURTHER RESUMES UNTIL NEXT ERROR' + LDX TMPTRP ;RESTORE TRAP LINE TO ALLOW TRAPS AGAIN + STX TRAPNO+1 + RTS ; RESSNR JMP SNERR RESCNT LDX #ERRCR - JMP ERROR + JMP ERROR .PAG 'DISPOSE' DISPOS CMP #TKFOR - BEQ DISPO0 - CMP #TKGOSU - BNE RESSNR ;NOT NEXT OR GOSUB IS SYNTAX ERROR + BEQ DISPO0 + CMP #TKGOSU + BNE RESSNR ;NOT NEXT OR GOSUB IS SYNTAX ERROR DISPO0 STA OLDTOK - JSR ERRDIR - TSX - INX - INX ;LOOK PAST RETURN TO NEWSTT - TXA - TAY + JSR ERRDIR + TSX + INX + INX ;LOOK PAST RETURN TO NEWSTT + TXA + TAY DISPO1 TYA ;Y==>X - TAX - CPY #$FF ;STACK EMPTY? - BEQ DISERR ;YES... - LDA 257,X - CMP #TKFOR - BNE DISPO2 - TXA ;STACK ENTRY IS A FOR LOOP, 19 BYTES. - ADC #18 ;+ 1 IN CARRY - JMP DISPO3 + TAX + CPY #$FF ;STACK EMPTY? + BEQ DISERR ;YES... + LDA 257,X + CMP #TKFOR + BNE DISPO2 + TXA ;STACK ENTRY IS A FOR LOOP, 19 BYTES. + ADC #18 ;+ 1 IN CARRY + JMP DISPO3 DISPO2 - TXA ;STACK ENTRY IS GOSUB, 5 BYTES. - CLC - ADC #7 + TXA ;STACK ENTRY IS GOSUB, 5 BYTES. + CLC + ADC #7 DISPO3 - BCS DISERR ;STACK UNDERFLOW... - TAY - LDA 257,X - CMP OLDTOK - BNE DISPO1 ;KEEP LOOKING - BEQ DISPO5 + BCS DISERR ;STACK UNDERFLOW... + TAY + LDA 257,X + CMP OLDTOK + BNE DISPO1 ;KEEP LOOKING + BEQ DISPO5 DISPO4 LDX DSPTMP DISPO5 LDA 256,X ;SHIFT STACK DOWN - STA 256,Y - DEY - DEX - STX DSPTMP ;DONE WHEN X=S - TSX - CPX DSPTMP - BNE DISPO4 - TYA ;S <== Y - TAX - TXS - JMP CHRGET ;ADVANCE PAST MODIFIER, DO RTS + STA 256,Y + DEY + DEX + STX DSPTMP ;DONE WHEN X=S + TSX + CPX DSPTMP + BNE DISPO4 + TYA ;S <== Y + TAX + TXS + JMP CHRGET ;ADVANCE PAST MODIFIER, DO RTS DISERR LDX #ERRDI - JMP ERROR + JMP ERROR .END diff --git a/BASIC_CBM2_1982-11-19/bverbs2 b/BASIC_CBM2_1982-11-19/bverbs2 index 973acbd..ca44e51 100644 --- a/BASIC_CBM2_1982-11-19/bverbs2 +++ b/BASIC_CBM2_1982-11-19/bverbs2 @@ -21,7 +21,7 @@ NEWCHR JSR CHRGOT ;REGET LAST CHAR ; ; PROCESS PRINT VERB PRINT BEQ OCRLF ;TERMINATOR SO TYPE CR/LF - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < CMP #TKUSIN BNE PRINTC JMP USING ;IF USING @@ -29,7 +29,7 @@ PRINT BEQ OCRLF ;TERMINATOR SO TYPE CR/LF ; ; HERE AFTER SEEING TAB(X) OR , OR ; ; IN WHICH ASE A TERMIATOR DOES NOT -; MEAN TYPE A CR/LF BUT JUST RTS. +; MEAN TYPE A CR/LF BUT JUST RTS. PRINTC BEQ OCRLFX CMP #TKTAB BEQ TABER ;IF TAB FUNCTION @@ -358,9 +358,9 @@ TRMOK LDA TXTPTR TRMNOK LDA INPFLG BEQ TRMNO1 ;IF INPUT TRY AGAIN BPL SNERR6 ;GET STMT, ISSUE SYNTAX ERR -;;BMI GETDTL -;;LDY #255 ;MAKE IT LOOK DIRECT -;;BNE STCURL ;ALWAYS GOES +;; BMI GETDTL +;; LDY #255 ;MAKE IT LOOK DIRECT +;; BNE STCURL ;ALWAYS GOES GETDTL LDA DATLIN ;GET DATA LINE NUMBER LDY DATLIN+1 STCURL STA CURLIN ;MAKE IT CURRENT LINE @@ -499,7 +499,7 @@ KEYGO SAV13 JSR FRMEVL JMP FRESTR .PAG -CVERF ;PROCESS VERIFY VERB +CVERF ;PROCESS VERIFY VERB LDA #ERRVR ;SET MESSAGE TABLE POINTER PHA LDA #$80 ;SET VERIFY FLAG @@ -513,7 +513,7 @@ CLOAD LDA #0 ;SET LOAD FLAG JSR LDVER ;LOAD/VERIFY ROUTINE ; -LOADCK ;ENTRY FROM DLOAD +LOADCK ;ENTRY FROM DLOAD BEQ CLF1 ;IF DIRECT MODE JSR LNKPRG ;RELINK JSR STXTPT ;POINT TXTPTR TO NULL BYTE @@ -523,11 +523,11 @@ CLF1 LDA TTTEMP ;GET BANK OF END OF LOAD CMP #TXTBNK BNE CLD4 ;BAD, OUT OF TEXT MEMORY - .IFN CC1 < +.IFN CC1 < STX VARTAB ;SAVE NEW TEXT END(64K) STY VARTAB+1 > - .IFE CC1 < +.IFE CC1 < STX TXTEND ;SAVE NEW TEXT END(128,192,256K) STY TXTEND+1 > @@ -550,10 +550,10 @@ CLD3 JMP FINI ;RELINK, SET END OF TEXT AND GOTO MAIN LOOP ; CLD4 - .IFN CC1 < +.IFN CC1 < LDX ERROM ;64K > - .IFE CC1 < +.IFE CC1 < LDX ERROT ;EXCEPT 64K > BNE CLD3 ;ALWAYS @@ -579,7 +579,7 @@ LVR1 JSR LOAD ;REQUEST LOAD FROM KERNAL BCS LDSVER ;IF LOAD/VERIFY ERROR STA TTTEMP ;SAVE BANK OF END OF LOAD - JMP TDM ;GET DIRECT MODE + JMP TDM ;GET DIRECT MODE .SKI 4 ; PROCESS BASIC SAVE COMMAND. ; @@ -593,11 +593,11 @@ SAVENP STX HIGHDS STY HIGHDS+1 STA HIGHDS+2 - .IFN CC1 < +.IFN CC1 < LDX VARTAB ; 64K LDY VARTAB+1 ;HIGHTR IS END VECTOR > - .IFE CC1 < +.IFE CC1 < LDX TXTEND ; EXCEPT 64K LDY TXTEND+1 ;HIGHTR IS END VECTOR > diff --git a/BASIC_CBM2_1982-11-19/bverbs3 b/BASIC_CBM2_1982-11-19/bverbs3 index 3cabffa..a668451 100644 --- a/BASIC_CBM2_1982-11-19/bverbs3 +++ b/BASIC_CBM2_1982-11-19/bverbs3 @@ -9,94 +9,94 @@ ; ERRORS, CHECKS FOR OUT OF RANGE VALUES, AND SETS ; VARIABLES IN THE ZERO-PAGE TO BE PASSED TO THE DISK ; MESSAGE GENERATOR (DMG). -DCAT ;CATALOG A DEVICE (==DIRECTORY) - JSR DOSPAR ;PARSE THE LINE - LDA PARSTS ;CHECK OPTIONS - AND #$E6 - BEQ *+5 - JMP SNERR - LDY #TCAT ;TABLE OFFSET - LDX #1 ;JUST $ - LDA PARSTS ;CHK FOR DEFAULT - AND #$11 ;NO DRIVE? - BEQ DCAT2 +DCAT ;CATALOG A DEVICE (==DIRECTORY) + JSR DOSPAR ;PARSE THE LINE + LDA PARSTS ;CHECK OPTIONS + AND #$E6 + BEQ *+5 + JMP SNERR + LDY #TCAT ;TABLE OFFSET + LDX #1 ;JUST $ + LDA PARSTS ;CHK FOR DEFAULT + AND #$11 ;NO DRIVE? + BEQ DCAT2 LSR A - BCC DCAT1 ;JUST DRIVE + BCC DCAT1 ;JUST DRIVE INX ;DRIVE AND FILENAME INX DCAT1 INX DCAT2 TXA ;A NOW HAS LENGTH - JSR SENDP ;BUILD - LDA #DOSCTL - STA XCNT ;MAX LINES BEFORE PROMPT - LDY #$60 ;SA, LOAD FLOPPY - JSR OCHANL ;OPEN SPECIAL CHANNEL - LDY #3 ;LOOP COUNTER + JSR SENDP ;BUILD + LDA #DOSCTL + STA XCNT ;MAX LINES BEFORE PROMPT + LDY #$60 ;SA, LOAD FLOPPY + JSR OCHANL ;OPEN SPECIAL CHANNEL + LDY #3 ;LOOP COUNTER ; GET LENGTH IN BLOCKS -DCAT3 STY T3 ;SAVE COUNTER - LDX #DOSLFN - JSR CHKIN ;OPEN FOR INPUT - JSR BASIN ;GET CHAR - STA T4 - JSR READST - BNE DCAT10 ;IF BAD STATUS - JSR BASIN ;GET CHAR - STA T4+1 - JSR READST - BNE DCAT10 ;IF BAD STATUS - LDY T3 +DCAT3 STY T3 ;SAVE COUNTER + LDX #DOSLFN + JSR CHKIN ;OPEN FOR INPUT + JSR BASIN ;GET CHAR + STA T4 + JSR READST + BNE DCAT10 ;IF BAD STATUS + JSR BASIN ;GET CHAR + STA T4+1 + JSR READST + BNE DCAT10 ;IF BAD STATUS + LDY T3 DEY - BNE DCAT3 ;IF NOT DONE + BNE DCAT3 ;IF NOT DONE ; ; OUTPUT BLOCKS NUMBER - LDX T4 - LDA T4+1 - JSR LINPRT ;OUTPUT NUMBER - LDA #' ' - JSR BSOUT ;OUTPUT A SPACE + LDX T4 + LDA T4+1 + JSR LINPRT ;OUTPUT NUMBER + LDA #' ' + JSR BSOUT ;OUTPUT A SPACE ; ; LOOP READING NAME AND OUTPUT -DCAT4 JSR BASIN ;GET CHAR +DCAT4 JSR BASIN ;GET CHAR PHA ;SAVE CHAR - JSR READST ;GET STATUS - BNE DCAT9 ;IF BAD STATUS + JSR READST ;GET STATUS + BNE DCAT9 ;IF BAD STATUS PLA ;GET BACK CHAR - BEQ DCAT5 ;IF EOL - JSR BSOUT ;ECHO CHAR - JMP DCAT4 ;CONTINUE TO PROCESS NAME + BEQ DCAT5 ;IF EOL + JSR BSOUT ;ECHO CHAR + JMP DCAT4 ;CONTINUE TO PROCESS NAME ; ; HERE ON END OF NAME -DCAT5 DEC XCNT ;DECREMENT MAX LINES COUNTER - LDA #CR - JSR BSOUT ;OUTPUT NEW LINE - JSR CLRCH ;CLOSE +DCAT5 DEC XCNT ;DECREMENT MAX LINES COUNTER + LDA #CR + JSR BSOUT ;OUTPUT NEW LINE + JSR CLRCH ;CLOSE ; ; CHECK FOR SUSPEND OR HALT - JSR KSTOP ;GET STATUS OF STOP KEY - BEQ DCAT10 ;IF STOP REQUEST - LDA XCNT ;LINES - BNE DCAT6 ;IF NOT MAX LINES - LDA #DOSCTL - STA XCNT ;RESET COUNTER - LDX #MREMSG - JSR MSG ;PROMPT USER - JMP DCAT7 ;WAIT FOR GO + JSR KSTOP ;GET STATUS OF STOP KEY + BEQ DCAT10 ;IF STOP REQUEST + LDA XCNT ;LINES + BNE DCAT6 ;IF NOT MAX LINES + LDA #DOSCTL + STA XCNT ;RESET COUNTER + LDX #MREMSG + JSR MSG ;PROMPT USER + JMP DCAT7 ;WAIT FOR GO ; -DCAT6 JSR GETIN ;GET CHAR FROM KEYBOARD - BEQ DCAT8 ;IF NOTHING - CMP #' ' - BNE DCAT8 ;IF NOT SPACE BAR -DCAT7 JSR GETIN ;SUSPEND WAITING FOR KEY - BEQ DCAT7 ;IF NO KEY - SUSPEND +DCAT6 JSR GETIN ;GET CHAR FROM KEYBOARD + BEQ DCAT8 ;IF NOTHING + CMP #' ' + BNE DCAT8 ;IF NOT SPACE BAR +DCAT7 JSR GETIN ;SUSPEND WAITING FOR KEY + BEQ DCAT7 ;IF NO KEY - SUSPEND ; ; PROCESS NEXT -DCAT8 LDY #2 ;PERFORM 2 TIMES - BNE DCAT3 ;JMP +DCAT8 LDY #2 ;PERFORM 2 TIMES + BNE DCAT3 ;JMP ; DCAT9 PLA ;CLEAN UP STK -DCAT10 JSR CLRCH - LDA #DOSLFN - JMP CLOSE ;CLOSE SPECIAL CHANNEL +DCAT10 JSR CLRCH + LDA #DOSLFN + JMP CLOSE ;CLOSE SPECIAL CHANNEL .SKI 3 ; OPEN CHANNEL 14 FOR SPECIAL PURPOSES ; ENTER: .Y=SA @@ -107,299 +107,299 @@ DCAT10 JSR CLRCH OCHANL LDX DOSFA BNE OCHL10 LDX #8 ;USE DEFAULT OF 8 -OCHL10 LDA #DOSLFN ;LFN - JSR SETLFS ;SET FILE PARAMETERS - JMP OPEN ;OPEN IT... +OCHL10 LDA #DOSLFN ;LFN + JSR SETLFS ;SET FILE PARAMETERS + JMP OPEN ;OPEN IT... .PAGE ; DOPEN CODE DFN(,T(,R)) DOPEN - LDA #$22 ;SET ERROR FLAG - JSR SAV9 - LDY #TOPN ;FCB FORMAT POINTER - LDX #4 ;NORMAL LENGTH - BIT PARSTS ;RELATIVE RECORD - BVC DOP2 ;IF NOT RANDOM ACCESS - LDX #8 ;RANDOM ACCESS LENGTH - BNE DOP2 ;ALWAY JUMP + LDA #$22 ;SET ERROR FLAG + JSR SAV9 + LDY #TOPN ;FCB FORMAT POINTER + LDX #4 ;NORMAL LENGTH + BIT PARSTS ;RELATIVE RECORD + BVC DOP2 ;IF NOT RANDOM ACCESS + LDX #8 ;RANDOM ACCESS LENGTH + BNE DOP2 ;ALWAY JUMP .SKIP 4 ; APPEND CODE APPEND - LDA #$E2 ;SET ERROR FLAGS - JSR SAV9 ;CHK REQ'D PARMS - LDY #TAPN ;TABLD INDEX - LDX #5 ;LENGTH + LDA #$E2 ;SET ERROR FLAGS + JSR SAV9 ;CHK REQ'D PARMS + LDY #TAPN ;TABLD INDEX + LDX #5 ;LENGTH ; DOP2 TXA ;SET LENGTH INTO A - JSR SENDP - JMP OPEN -SAV9 JSR DOSPRS ;PARSE THE LINE - JSR CHK6 ;CHK REQ'D PARMS - JMP FNDSCA + JSR SENDP + JMP OPEN +SAV9 JSR DOSPRS ;PARSE THE LINE + JSR CHK6 ;CHK REQ'D PARMS + JMP FNDSCA .SKIP 4 ; CLOSE DISK FILE DCLOSE - LDA #$F3 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR OLDCLR - LDA PARSTS ;ANY LA GIVEN? - AND #$04 - BEQ DCLALL ;NO.... - LDA DOSLA - JMP CLOSE ;CLOSE FILE + LDA #$F3 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR OLDCLR + LDA PARSTS ;ANY LA GIVEN? + AND #$04 + BEQ DCLALL ;NO.... + LDA DOSLA + JMP CLOSE ;CLOSE FILE ; DCLALL - LDA DOSFA ;GET DISK # - JMP CLALL ;CLOSE ALL UNITS + LDA DOSFA ;GET DISK # + JMP CLALL ;CLOSE ALL UNITS .SKIP 4 ; DSAVE DFN DSAVE - LDA #$66 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR SAV20 - JMP SAVENP -SAV20 JSR CHK2 - LDY #TOPN ;TABLE OFFSET -SAV21 LDA #4 ;LENGTH - JMP SENDP + LDA #$66 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR SAV20 + JMP SAVENP +SAV20 JSR CHK2 + LDY #TOPN ;TABLE OFFSET +SAV21 LDA #4 ;LENGTH + JMP SENDP .SKIP 4 ; DLOAD DFN DLOAD - LDA #$E6 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR SAV20 - LDA #0 ;SET LOAD FLAG - JSR LOADNP ;PERFORM LOAD NO PARSE - JMP LOADCK ;GO TO LOAD CHECKING + LDA #$E6 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR SAV20 + LDA #0 ;SET LOAD FLAG + JSR LOADNP ;PERFORM LOAD NO PARSE + JMP LOADCK ;GO TO LOAD CHECKING .SKIP 4 ; BANK DFN CHBANK - JSR GETBYT - CPX #MXBANK ;TOO LARGE? - BCS XBKERR - STX DFBANK + JSR GETBYT + CPX #MXBANK ;TOO LARGE? + BCS XBKERR + STX DFBANK BSVRTS RTS -XBKERR JMP FCERR ;ILLEGAL QUANTITY +XBKERR JMP FCERR ;ILLEGAL QUANTITY .SKIP 4 ; BSAVE DFN BSAVE - LDA #$66 ;STD ERROR FLAG - LDX #$F8 ;AUXILIARY ERROR FLAG - JSR DOSPRX ;PARSE OPTIONS - JSR SAV20;CHECK REQ PARAMS DONE - .IFN NKRNL < - LDX DOSOFL ;START ADDR - LDY DOSOFL+1 - LDA DOSBNK - STX HIGHDS - STY HIGHDS+1 - STA HIGHDS+2 - LDX DOSOFH ;END ADDR - LDY DOSOFH+1 - JMP SAVENB + LDA #$66 ;STD ERROR FLAG + LDX #$F8 ;AUXILIARY ERROR FLAG + JSR DOSPRX ;PARSE OPTIONS + JSR SAV20 ;CHECK REQ PARAMS DONE +.IFN NKRNL < + LDX DOSOFL ;START ADDR + LDY DOSOFL+1 + LDA DOSBNK + STX HIGHDS + STY HIGHDS+1 + STA HIGHDS+2 + LDX DOSOFH ;END ADDR + LDY DOSOFH+1 + JMP SAVENB > .SKIP 4 ; BLOAD DFN BLOAD - LDA #$E6 ;STD ERROR FLAG - LDX #$FC ;AUX ERROR FLAG - JSR DOSPRX ;PARSE OPTIONS - JSR SAV20 - .IFN NKRNL < - LDA DOSBNK ;BIT7 IS CLEAR(=>LOAD) - LDX DOSOFL ;START ADDR - LDY DOSOFL+1 - JSR LOAD - BCC BSVRTS ;DONE - JMP LDSVER ;ERROR IN LOAD + LDA #$E6 ;STD ERROR FLAG + LDX #$FC ;AUX ERROR FLAG + JSR DOSPRX ;PARSE OPTIONS + JSR SAV20 +.IFN NKRNL < + LDA DOSBNK ;BIT7 IS CLEAR(=>LOAD) + LDX DOSOFL ;START ADDR + LDY DOSOFL+1 + JSR LOAD + BCC BSVRTS ;DONE + JMP LDSVER ;ERROR IN LOAD > - .IFE NKRNL < +.IFE NKRNL < RTS > .SKIP 4 ; NDDN (,ID) FORMAT - JSR DOSPAR ;PARSE THE LINE - JSR CHK1 ;CHECK PARAMETER ERRORS - AND #$11 - CMP #$11 - BEQ FRMT2 ;IF REQUIRED PARAMETERS NOT PRESENT - JMP SNERR + JSR DOSPAR ;PARSE THE LINE + JSR CHK1 ;CHECK PARAMETER ERRORS + AND #$11 + CMP #$11 + BEQ FRMT2 ;IF REQUIRED PARAMETERS NOT PRESENT + JMP SNERR ; -FRMT2 JSR DCLALL ;CLOSE ALL FILES - JSR RUSURE ;R-U-SURE PRPT - BCS BSVRTS ;IF NO AND DIRECT MODE - LDY #THED ;TABLD INDEX - LDA #4 ;LENGTH - LDX DOSDID ;CHECK FOR DISKID - BEQ FRMT6 - LDA #6 ;LENGTH WITH ID -FRMT6 JSR TRANS ;BUILD AND SEND +FRMT2 JSR DCLALL ;CLOSE ALL FILES + JSR RUSURE ;R-U-SURE PRPT + BCS BSVRTS ;IF NO AND DIRECT MODE + LDY #THED ;TABLD INDEX + LDA #4 ;LENGTH + LDX DOSDID ;CHECK FOR DISKID + BEQ FRMT6 + LDA #6 ;LENGTH WITH ID +FRMT6 JSR TRANS ;BUILD AND SEND ; - JSR ERRCHL ;GET ERROR STATUS - JSR TDM ;TEST DIRECT MODE - BNE BSVRTS ;IF DIRECT MODE - JSR MAPSTR + JSR ERRCHL ;GET ERROR STATUS + JSR TDM ;TEST DIRECT MODE + BNE BSVRTS ;IF DIRECT MODE + JSR MAPSTR ; - LDY #0 + LDY #0 LDA (DSDESC+1)Y - CMP #'2' - BCS FRMT8 ;IF ERROR OCCURED - JMP MAPTXT + CMP #'2' + BCS FRMT8 ;IF ERROR OCCURED + JMP MAPTXT ; FRMT8 - LDX #MSG31 ;? BAD DISK - JMP ERROR + LDX #MSG31 ;? BAD DISK + JMP ERROR .SKIP 4 ; SCRATCH SDFN SCRATC - JSR DOSPAR ;PARSE THE LINE - JSR CHK1 - JSR RUSURE ;CHECK DIRECT AND ASK USER - BCS ZXIT ;IF NO AND DIRECT MODE - LDY #TSCR ;OFFSET - LDA #4 ;LENGTH - JSR TRANS - JSR ERRCHL ;READ ERROR CHANNEL - JSR TDM ;TEST DIRECT MODE - BNE ZXIT ;IF DIRECT MODE - LDA #CR - JSR BSOUT ;OUTPUT CR - JSR MAPSTR - LDY #0 ;CLR TO READ ERRCHL + JSR DOSPAR ;PARSE THE LINE + JSR CHK1 + JSR RUSURE ;CHECK DIRECT AND ASK USER + BCS ZXIT ;IF NO AND DIRECT MODE + LDY #TSCR ;OFFSET + LDA #4 ;LENGTH + JSR TRANS + JSR ERRCHL ;READ ERROR CHANNEL + JSR TDM ;TEST DIRECT MODE + BNE ZXIT ;IF DIRECT MODE + LDA #CR + JSR BSOUT ;OUTPUT CR + JSR MAPSTR + LDY #0 ;CLR TO READ ERRCHL SCTC1 LDA (DSDESC+1)Y ;GET MESG - BEQ SCTC2 ;IF END OF ERROR MESSAGE - JSR BSOUT + BEQ SCTC2 ;IF END OF ERROR MESSAGE + JSR BSOUT INY - BNE SCTC1 ;ALWAYS + BNE SCTC1 ;ALWAYS ; -SCTC2 LDA #CR - JSR BSOUT ;OUTPUT CR - JSR MAPTXT +SCTC2 LDA #CR + JSR BSOUT ;OUTPUT CR + JSR MAPTXT ZXIT RTS .SKIP 4 ; RECORD - RANDOM RECORD ACCESS. RECORD - LDA #01 ;DEFAULT POS = 1 - STA DOSRCL - JSR CHRGOT - LDA #'#' - JSR SYNCHR ;NEXT CHARACTER = "#" - JSR GTVL2 ;GET NEXT VALUE - CPX #0 - BEQ REC4 ;CANNOT BE ZERO - STX DOSLA ;SAVE LOGICAL ADDRESS - JSR CHKCOM ;CHECK FOR "," - BEQ REC5 ;IF END OF STATEMENT - BCC REC1 ;IF NUMERIC - JSR CHKOPN ;CHECK FOR "(" - JSR GETPIN ;GET POSITIVE INTEGER - JSR CHKCLS - JMP REC2 + LDA #01 ;DEFAULT POS = 1 + STA DOSRCL + JSR CHRGOT + LDA #'#' + JSR SYNCHR ;NEXT CHARACTER = "#" + JSR GTVL2 ;GET NEXT VALUE + CPX #0 + BEQ REC4 ;CANNOT BE ZERO + STX DOSLA ;SAVE LOGICAL ADDRESS + JSR CHKCOM ;CHECK FOR "," + BEQ REC5 ;IF END OF STATEMENT + BCC REC1 ;IF NUMERIC + JSR CHKOPN ;CHECK FOR "(" + JSR GETPIN ;GET POSITIVE INTEGER + JSR CHKCLS + JMP REC2 ; -REC1 JSR GETPIN ;GET POSITIVE INTEGER +REC1 JSR GETPIN ;GET POSITIVE INTEGER ; -REC2 JSR CHRGOT ;SEE WHAT IS NEXT - BEQ REC3 ;IF END OF STATEMENT - JSR CHKCOM ;CHECK FOR "," - BEQ REC5 ;IF END OF STATEMENT - JSR GTVL2 - CPX #0 - BEQ REC4 ;IF OUT OF RANGE - CPX #$FF - BEQ REC4 ;IF OUT OF RANGE - STX DOSRCL ;SAVE BYTE POSITION (POS) - JSR CHRGOT - BNE REC5 ;IF NOT END OF STATEMENT +REC2 JSR CHRGOT ;SEE WHAT IS NEXT + BEQ REC3 ;IF END OF STATEMENT + JSR CHKCOM ;CHECK FOR "," + BEQ REC5 ;IF END OF STATEMENT + JSR GTVL2 + CPX #0 + BEQ REC4 ;IF OUT OF RANGE + CPX #$FF + BEQ REC4 ;IF OUT OF RANGE + STX DOSRCL ;SAVE BYTE POSITION (POS) + JSR CHRGOT + BNE REC5 ;IF NOT END OF STATEMENT ; REC3 - LDA DOSLA ;GET LOGICAL ADDRESS - JSR LKUPLA ;LOGICAL TO PHYSICAL MAP - BCS REC6 ;IF FILE NOT FOUND - STY DOSSA ;SAVE SECONDARY ADDRESS - JSR SETLFS ;SET UP LA, FA - JSR OLDCLR ;CLEAR DISK STATUS - LDY #TREC ;SET POINTER - LDA #4 ;PROCESS FIVE BYTES - BNE TRANS ;TRANSFER ON CHANNEL 15 + LDA DOSLA ;GET LOGICAL ADDRESS + JSR LKUPLA ;LOGICAL TO PHYSICAL MAP + BCS REC6 ;IF FILE NOT FOUND + STY DOSSA ;SAVE SECONDARY ADDRESS + JSR SETLFS ;SET UP LA, FA + JSR OLDCLR ;CLEAR DISK STATUS + LDY #TREC ;SET POINTER + LDA #4 ;PROCESS FIVE BYTES + BNE TRANS ;TRANSFER ON CHANNEL 15 ; -REC4 JMP QTYERR +REC4 JMP QTYERR ; -REC5 JMP SNERR ;SYNTAX ERROR +REC5 JMP SNERR ;SYNTAX ERROR ; REC6 - LDX #MS3 ;FILE NOT FOUND ERR - JMP ERROR + LDX #MS3 ;FILE NOT FOUND ERR + JMP ERROR .SKIP 4 DCLEAR - JSR DOSPAR ;PARSE THE LINE - LDY #TCLR ;SET CODE - LDA #2 - BNE TRANS + JSR DOSPAR ;PARSE THE LINE + LDY #TCLR ;SET CODE + LDA #2 + BNE TRANS .SKIP 4 ; COLLECT V COLECT - JSR DOSPAR ;PARSE THE LINE - JSR CHK3 ;CHK OPT PARMS - JSR DCLALL ;CLOSE ALL FILES - LDY #TCOLL ;TABLD OFFSET - LDX #1 ;LENGTH - LDA PARSTS - AND #$10 - BEQ CLCT2 + JSR DOSPAR ;PARSE THE LINE + JSR CHK3 ;CHK OPT PARMS + JSR DCLALL ;CLOSE ALL FILES + LDY #TCOLL ;TABLD OFFSET + LDX #1 ;LENGTH + LDA PARSTS + AND #$10 + BEQ CLCT2 INX ;INCLUDE DRIVE CLCT2 TXA ;PLACE IN A - BNE TRANS ;ALWAYS (X <> 0) + BNE TRANS ;ALWAYS (X <> 0) .SKIP 4 ; COPY ROUTINES CDDDFN=SDSFN DCOPY - JSR DOSPAR ;PARSE THE LINE - AND #$30 - CMP #$30 ;CHK REQ'D PARMS - BNE DCPY2 - LDA PARSTS - AND #$C7 - BEQ DCPY4 -DCPY2 LDA PARSTS - JSR CHK4 - LDA PARSTS -DCPY4 LDY #TCOPY ;TABLD OFFSET - LDA #8 ;LENGTH - BNE TRANS ;GO DO IT + JSR DOSPAR ;PARSE THE LINE + AND #$30 + CMP #$30 ;CHK REQ'D PARMS + BNE DCPY2 + LDA PARSTS + AND #$C7 + BEQ DCPY4 +DCPY2 LDA PARSTS + JSR CHK4 + LDA PARSTS +DCPY4 LDY #TCOPY ;TABLD OFFSET + LDA #8 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; CONCAT ROUTINES CONCAT - JSR DOSPAR ;PARSE THE LINE - JSR CHK4 - LDY #TCONC ;OFFSET - LDA #12 ;LENGTH - BNE TRANS ;GO DO IT + JSR DOSPAR ;PARSE THE LINE + JSR CHK4 + LDY #TCONC ;OFFSET + LDA #12 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; RENAME RDDDFN=SDSFN RENAME - LDA #$E4 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR CHK5 - LDY #TREN ;OFFSET - LDA #8 ;LENGTH - BNE TRANS ;GO DO IT + LDA #$E4 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR CHK5 + LDY #TREN ;OFFSET + LDA #8 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; BACKUP D
= BACKUP - LDA #$C7 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - AND #$30 ;REQ'D PARMS - CMP #$30 - BEQ BUP1 ;IF SYNTAX ERROR - JMP SNERR ;SYNTAX ERROR + LDA #$C7 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + AND #$30 ;REQ'D PARMS + CMP #$30 + BEQ BUP1 ;IF SYNTAX ERROR + JMP SNERR ;SYNTAX ERROR ; BUP1 - JSR DCLALL ;CLOSE DISK - LDY #TBAK - LDA #4 ;LENGTH + JSR DCLALL ;CLOSE DISK + LDY #TBAK + LDA #4 ;LENGTH .SKIP 4 ; TRANS SUBROUTINE TRANS - JSR SENDP ;BUILD STRING TO OUTPUT - JMP KTRANS ;SEND IT... + JSR SENDP ;BUILD STRING TO OUTPUT + JMP KTRANS ;SEND IT... .END diff --git a/BASIC_CBM2_1982-11-19/contrl b/BASIC_CBM2_1982-11-19/contrl index fc3db4a..d7ecb1e 100644 --- a/BASIC_CBM2_1982-11-19/contrl +++ b/BASIC_CBM2_1982-11-19/contrl @@ -6,33 +6,33 @@ OMERR LDX #ERROM ;OUT OF MEMORY ERROR JMP (IERROR) NERROR STX ERRNUM ;SAVE ERROR INDEX - CPX #ERRUS ;DON'T TRAP UNDEFINED STATEMENT ERRORS - BEQ ERRISD - JSR TSTDIR ;DON'T TRAP IF IN DIRECT MODE - BEQ ERRISD - LDY TRAPNO+1 ;IS TRAP VECTOR SET? - INY - BEQ ERRISD ;NOT IF $FF - DEY ;RESTORE TRAPNO+1 - STY LINNUM+1 - STY TMPTRP ;SAVE UNTIL A RESUME IS EXECUTED - LDY TRAPNO ;FINISH VECTOR - STY LINNUM - LDY #$FF - STY TRAPNO+1 ;MARKS NO MORE TRAPS UNTIL A 'RESUME' OR 'TRAP' - LDY CURLIN - STY ERRLIN - LDY CURLIN+1 - STY ERRLIN+1 - LDA OLDTXT - STA ERRTXT - LDA OLDTXT+1 - STA ERRTXT+1 - LDX OLDSTK - TXS - JSR MAPTXT ;MAKE SURE WE'RE IN TEXT - JSR LUK4IT ;SET UP POINTERS - JMP NEWSTT ;AND GOTO THAT LINE + CPX #ERRUS ;DON'T TRAP UNDEFINED STATEMENT ERRORS + BEQ ERRISD + JSR TSTDIR ;DON'T TRAP IF IN DIRECT MODE + BEQ ERRISD + LDY TRAPNO+1 ;IS TRAP VECTOR SET? + INY + BEQ ERRISD ;NOT IF $FF + DEY ;RESTORE TRAPNO+1 + STY LINNUM+1 + STY TMPTRP ;SAVE UNTIL A RESUME IS EXECUTED + LDY TRAPNO ;FINISH VECTOR + STY LINNUM + LDY #$FF + STY TRAPNO+1 ;MARKS NO MORE TRAPS UNTIL A 'RESUME' OR 'TRAP' + LDY CURLIN + STY ERRLIN + LDY CURLIN+1 + STY ERRLIN+1 + LDA OLDTXT + STA ERRTXT + LDA OLDTXT+1 + STA ERRTXT+1 + LDX OLDSTK + TXS + JSR MAPTXT ;MAKE SURE WE'RE IN TEXT + JSR LUK4IT ;SET UP POINTERS + JMP NEWSTT ;AND GOTO THAT LINE ERRISD LDA CHANNL BEQ ERROR2 ;CLOSE NON-TERMINAL CHANNEL. JSR CLRCH ;CLOSE IT @@ -77,7 +77,7 @@ NMAIN LDX #255 STX CURLIN+1 STX ERRLIN - STX ERRLIN+1 ;FLAG NO ERRORS YET + STX ERRLIN+1 ;FLAG NO ERRORS YET STX ERRNUM BCC MAIN1 ;IF LINE NUMBER JSR CRUNCH @@ -93,10 +93,10 @@ MAIN1 LDY #1 LDA (LOWTR)Y STA INDEX1+1 - .IFN CC1 < +.IFN CC1 < LDA VARTAB ;TEXT END (64K) > - .IFE CC1 < +.IFE CC1 < LDA TXTEND ;TEXT END (EXCEPT 64K) > STA INDEX1 @@ -108,7 +108,7 @@ MAIN1 SBC LOWTR EOR #$FF ; MAKE IT NEGATIVE CLC - .IFN CC1 < +.IFN CC1 < ADC VARTAB ;COMPUTE NEW TEXT END STA VARTAB STA INDEX2 ;SET LOW OF XFER TO @@ -116,7 +116,7 @@ MAIN1 ADC #255 STA VARTAB+1 ;COMPUTE HIGH OF TEXT END > - .IFE CC1 < +.IFE CC1 < ADC TXTEND ;COMPUTE NEW TEXT END STA TXTEND STA INDEX2 ;SET LOW OF XFER TO @@ -128,10 +128,10 @@ MAIN1 TAX SEC LDA LOWTR - .IFN CC1 < +.IFN CC1 < SBC VARTAB ;COMPUTE OFFSET > - .IFE CC1 < +.IFE CC1 < SBC TXTEND > TAY @@ -160,11 +160,11 @@ NODEL JSR CLEARC NODELE CLC ;NO...SOMETHING TO INSERT ; - .IFN CC1 < +.IFN CC1 < LDA VARTAB LDY VARTAB+1 > - .IFE CC1 < +.IFE CC1 < LDA TXTEND LDY TXTEND+1 > @@ -184,10 +184,10 @@ NODELC STA HIGHDS ;DESTINATION OF TOP ;LOW BLOCK ADDRESS IS LOWTR ;WHERE IT WAS LEFT IN THE CALL TO FNDLIN ; - .IFN CC1 < +.IFN CC1 < JSR BLTU > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < JSR BLTUT > ; @@ -218,7 +218,7 @@ NODELC STA HIGHDS ;DESTINATION OF TOP BCC MAIN2 INC LOWTR+1 MAIN2 - .IFN CC1 < +.IFN CC1 < LDA STREND ; 64K ONLY LDY STREND+1 STA VARTAB @@ -232,18 +232,18 @@ MAIN2 STOLOP LDA (TXTPTR)Y STA (LOWTR)Y DEY - DEC COUNT - BNE STOLOP + DEC COUNT + BNE STOLOP FINI JSR LNKPRG - JSR RUNC - JMP MAIN + JSR RUNC + JMP MAIN ; LNKPRG - LDA TXTTAB + LDA TXTTAB LDY TXTTAB+1 STA INDEX STY INDEX+1 - CLC + CLC CHEAD LDY #0 LDA (INDEX)Y ;CHECK FOR NULL LINK BNE CHEA3 @@ -273,11 +273,11 @@ LNKRTS CLC ADC #2 BCC *+3 INY - .IFN CC1 < +.IFN CC1 < STA VAREND STY VAREND+1 > - .IFE CC1 < +.IFE CC1 < STA TXTEND STY TXTEND+1 > @@ -398,8 +398,8 @@ NSTT1 JSR TSTDIR ;ARE WE IN DIRECT MODE? LDY TXTPTR+1 STA OLDTXT STY OLDTXT+1 - TSX - STX OLDSTK ;SAVE IN CASE OF ERROR + TSX + STX OLDSTK ;SAVE IN CASE OF ERROR ; NSTT2 LDY #0 @@ -508,7 +508,7 @@ CMPFOR CMP 260,X LDA FORPNT CMP 258,X BEQ FFRTS -ADDFRS TXA +ADDFRS TXA CLC ADC #FORSIZ TAX @@ -547,7 +547,7 @@ FFRTS RTS ; BLTUT: TEXT END ; BLTUV: VARIABLE END (STREND OR VAREND) ; - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < BLTUT JSR REASNT STA TXTEND ;SET NEW END OF TEXT STY TXTEND+1 @@ -556,23 +556,23 @@ BLTUT JSR REASNT ; BLTUV JSR REASON > - .IFN CC2 < +.IFN CC2 < STA STREND ;128K VERSION STY STREND+1 JSR MAPVAR > - .IFN CC3 < +.IFN CC3 < STA STREND ;192K VERSION STY STREND+1 RTS ; NOTHING TO MOVE > - .IFN CC4 < +.IFN CC4 < STA VAREND ;256K VERSION STY VAREND+1 RTS ; NOTHING TO MOVE > BLTU - .IFN CC1 < +.IFN CC1 < JSR REASON ;64K VERSION STA STREND STY STREND+1 @@ -638,7 +638,7 @@ OSERR LDX #ERROS ;OUT OF STACK SPACE ERROR JMP ERROR .SKI 4 REASON - .IFN CC1+CC2+CC3 < +.IFN CC1+CC2+CC3 < CPY FRETOP+1 BCC REARTS BNE TRYMOR @@ -666,7 +666,7 @@ REASTO PLA CMP FRETOP BCC REARTS > - .IFN CC4 < +.IFN CC4 < CPY HIGHST+1 BCC REARTS BNE OMERRC @@ -675,7 +675,7 @@ REASTO PLA > OMERRC JMP OMERR ;OUT OF MEMORY ERROR REARTS RTS - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < .SKIP 2 REASNT CPY BUFFPT+1 BCC REARTS @@ -685,7 +685,7 @@ REASNT CPY BUFFPT+1 OMERRT LDX #ERROT JMP ERROR > - .IFN CC3+CC4 < +.IFN CC3+CC4 < .SKIP 2 REASNA CPY HIGHST+1 BCC REARTS diff --git a/BASIC_CBM2_1982-11-19/init b/BASIC_CBM2_1982-11-19/init index 0506f3c..5c96622 100644 --- a/BASIC_CBM2_1982-11-19/init +++ b/BASIC_CBM2_1982-11-19/init @@ -27,13 +27,13 @@ INITOP TXA SBC # TYA SBC #>BUFSIZ STA BUFFPT+1 - .IFN CC1 < +.IFN CC1 < TAY > ; @@ -74,7 +74,7 @@ ITP06 ; STX MEMTOP ;TOP OF STR BANK STY MEMTOP+1 - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < ; ; STORE A NON-ZERO BYTE PRECEDING INPUT BUFFER FOR INPUT CMD ; @@ -132,7 +132,7 @@ RSEED .BYT $80,$4F,$C7,$52,$58,',' ; CODE IS ALL IN RAM. INIT JSR INITV ;INIT VECTORS -INIT0 ;ALWAYS INIT0 AFTER VECTOR INITIALIZATION +INIT0 ;ALWAYS INIT0 AFTER VECTOR INITIALIZATION LDX #2 ;INIT USR INIT05 LDA BJMPS,X STA USRPOK,X @@ -160,7 +160,7 @@ INIT10 LDA INITAT-1,X ; (ONLY FOR AREAS WHICH START IN A NEW BANK. ; BOTTOM AND TOP LIMITS WILL BE THE SAME IN EACH ; BANK.) - .IFN CC4 < +.IFN CC4 < INX ;256K VERSION STX VARTAB LDX #$80 ;FIXED LOWER LIMIT OF $8000 @@ -168,15 +168,15 @@ INIT10 LDA INITAT-1,X > SEC ;GET BOTTOM OF MEMORY JSR MEMBOT - .IFN CC4 < +.IFN CC4 < STX STREND ;256K VERSION STY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < STX ARYTAB ;192K, 256K VERSIONS STY ARYTAB+1 > - .IFN CC2+CC3 < +.IFN CC2+CC3 < STX VARTAB ;128K, 192K VERSIONS STY VARTAB+1 > @@ -202,16 +202,16 @@ INIT20 .SKI 4 SIGNON .BYT CLRSCR,'*** COMMODORE BASIC ' - .IFN CC1 < +.IFN CC1 < .BYT '64' > - .IFN CC2 < +.IFN CC2 < .BYT '128' > - .IFN CC3 < +.IFN CC3 < .BYT '256' > - .IFN CC4 < +.IFN CC4 < .BYT '256' > .BYT ', V4.0 ***',CR,CR,0 diff --git a/BASIC_CBM2_1982-11-19/math1 b/BASIC_CBM2_1982-11-19/math1 index 4a0d650..8c602d1 100644 --- a/BASIC_CBM2_1982-11-19/math1 +++ b/BASIC_CBM2_1982-11-19/math1 @@ -56,7 +56,7 @@ ENDREL LDX OPMASK STA INDEX1 ASL A ADC INDEX1 - TAY + TAY QPREC PLA CMP OPTAB,Y BCS QCHNUM @@ -321,11 +321,11 @@ GOOO JMP MOVFUM ; FAC <- USER MEM ; ; PREVENT TI AS A USER-DEFD VAR -; CPX #'T' -; BNE QSTATV ;IF NOT 'T' -; CPY #'I' -; BNE GOMOVF ;IF 'T' BUT NOT 'TI' -; JMP SNERR +; CPX #'T' +; BNE QSTATV ;IF NOT 'T' +; CPY #'I' +; BNE GOMOVF ;IF 'T' BUT NOT 'TI' +; JMP SNERR ; QSTATV CPX #'S' BNE QERLIN ;IF NOT 'S' @@ -335,17 +335,17 @@ QSTATV CPX #'S' JMP FLOAT ; QERLIN CPX #'E - BNE QDSAV - CPY #'R - BEQ GNUMER - CPY #'L - BNE QDSAV - LDA ERRLIN+1 - LDY ERRLIN - JMP NOSFLT ;PRINT 2 BYTES + BNE QDSAV + CPY #'R + BEQ GNUMER + CPY #'L + BNE QDSAV + LDA ERRLIN+1 + LDY ERRLIN + JMP NOSFLT ;PRINT 2 BYTES GNUMER LDA ERRNUM - LSR A ;DIVIDE BY 2 - JMP FLOAT ;PRINT 1 BYTE + LSR A ;DIVIDE BY 2 + JMP FLOAT ;PRINT 1 BYTE ; QDSAV CPX #'D' BNE GOMOVF ;IF NOT 'D' @@ -388,8 +388,8 @@ TKERD2=TKERRD+TKERRD JSR CHKSTR PLA TKINT2=TKINST+TKINST - CMP # - .IFN CC3 < +.IFN CC3 < CPX STREND+1 ;192K BNE LOPFN CMP STREND ;192K > - .IFN CC1+CC2 < +.IFN CC1+CC2 < CPX ARYTAB+1 ;64K OR 128K BNE LOPFN CMP ARYTAB ;64K OR 128K @@ -636,20 +636,20 @@ NOTEVL LDA VARNAM BNE QSTAVR CPY #$C9 ;'I'+$80 BEQ LDZR -;; CPY #'I' -;; BNE QSTAVR -;;GOBADV JMP SNERR +;; CPY #'I' +;; BNE QSTAVR +;;GOBADV JMP SNERR ; QSTAVR CMP #'S' BNE QERAVR CPY #'T' BEQ GOBADV QERAVR CMP #'E - BNE QDSVAR - CPY #'R - BEQ GOBADV - CPY #'L - BEQ GOBADV + BNE QDSVAR + CPY #'R + BEQ GOBADV + CPY #'L + BEQ GOBADV ; QDSVAR CMP #'D' ;DISK STATUS? BNE VAROK @@ -658,15 +658,15 @@ QDSVAR CMP #'D' ;DISK STATUS? CPY #$D3 ;'S'+$80 BEQ GOBADV ;CANNOT MODIFY DS$ VAROK - .IFN CC4 < +.IFN CC4 < LDA VAREND ;END OF SIMPLE VARS (256K) LDY VAREND+1 > - .IFN CC3 < +.IFN CC3 < LDA STREND ;END OF SIMPLE VARS (192K) LDY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < STA LOWTR ;^TO START OF NEW VARIABLE STY LOWTR+1 CLC @@ -675,7 +675,7 @@ VAROK INY GOBLT JSR BLTUV ;ENOUGH ROOM? > - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA ARYTAB ;END OF SIMPLE VARS (64K,128K) LDY ARYTAB+1 STA LOWTR @@ -691,13 +691,13 @@ GOBLT JSR BLTUV ;ENOUGH ROOM? NOTEVE STA HIGHDS STY HIGHDS+1 > - .IFN CC1 < +.IFN CC1 < JSR BLTU ;64K > - .IFN CC2 < +.IFN CC2 < JSR BLTUV ;128K > - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA HIGHDS ;64K OR 128K LDY HIGHDS+1 INY @@ -765,8 +765,8 @@ GOGO JSR MAPVAR INY LDA (INDEX1)Y STA I6509 ;BANK SET FOR GETTING STRINGS -; FIX BACKWARDS POINTER BY ADDING -; THE MOVE LENGTH TO IT +; FIX BACKWARDS POINTER BY ADDING +; THE MOVE LENGTH TO IT CLC LDY #$00 LDA (HIGHTR)Y @@ -776,7 +776,7 @@ GOGO JSR MAPVAR LDA (HIGHTR)Y ADC #$00 STA (HIGHTR)Y ;DONE WITH THIS STR. -; FIX THE NEXT STRING IN THE ARRAY +; FIX THE NEXT STRING IN THE ARRAY DVARTS LDA #STRSIZ CLC ADC INDEX1 diff --git a/BASIC_CBM2_1982-11-19/math2 b/BASIC_CBM2_1982-11-19/math2 index f63362f..803de7a 100644 --- a/BASIC_CBM2_1982-11-19/math2 +++ b/BASIC_CBM2_1982-11-19/math2 @@ -89,21 +89,21 @@ INDLOP LDA VARNAM+1 LDA ARYTAB+1 LOPFDA STX LOWTR STA LOWTR+1 - .IFN CC1+CC2 < +.IFN CC1+CC2 < CMP STREND+1 ;64K,128K > - .IFN CC3+CC4 < +.IFN CC3+CC4 < CMP ARYEND+1 ;192K,256K > BNE LOPFDV - .IFN CC1+CC2 < +.IFN CC1+CC2 < CPX STREND ;64K,128K > - .IFN CC3+CC4 < +.IFN CC3+CC4 < CPX ARYEND ;192K,256K > BEQ NOTFDD -LOPFDV JSR MAPARY +LOPFDV JSR MAPARY LDY #0 LDA (LOWTR)Y INY @@ -119,7 +119,7 @@ NMARY1 INY TAX INY LDA (LOWTR)Y - JSR MAPTXT + JSR MAPTXT ADC LOWTR+1 BCC LOPFDA BSERR LDX #ERRBS @@ -127,12 +127,12 @@ BSERR LDX #ERRBS FCERR LDX #ERRFC ERRGO3 JMP ERROR ; -GOTARY JSR MAPTXT +GOTARY JSR MAPTXT LDX #ERRDD LDA DIMFLG BNE ERRGO3 JSR FMAPTR - JSR MAPARY + JSR MAPARY LDY #4 LDA (LOWTR)Y CMP COUNT @@ -163,13 +163,13 @@ GOTARY JSR MAPTXT ; INDEX INTO THE VAR AS IF IT WERE FOUND ON THE ; INITIAL SEARCH NOTFDD JSR FMAPTR - .IFN CC1+CC2 < +.IFN CC1+CC2 < JSR REASON > - .IFN CC3+CC4 < +.IFN CC3+CC4 < JSR REASNA > - JSR MAPARY + JSR MAPARY LDY #0 STY CURTOL+1 LDA VARNAM ;STOR NAME, CALC ELT SIZE @@ -222,18 +222,18 @@ NOTDIM INY INY BEQ OMERR1 GREASE - JSR MAPTXT - .IFN CC1+CC2 < + JSR MAPTXT +.IFN CC1+CC2 < JSR REASON ;64K OR 128K VERSIONS STA STREND STY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < JSR REASNA ;192K OR 256K VERSIONS STA ARYEND STY ARYEND+1 > - JSR MAPARY + JSR MAPARY LDA #0 INC CURTOL+1 LDY CURTOL @@ -247,19 +247,19 @@ DECCUR BNE ZERITA INC ARYPNT+1 SEC - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA STREND ;64K OR 128K VERSIONS > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYEND ;192K OR 256K VERSIONS > SBC LOWTR LDY #2 STA (LOWTR)Y - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA STREND+1 ;64K OR 128K VERSIONS > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYEND+1 ;192K OR 256K VERSIONS > INY @@ -286,10 +286,10 @@ INLPNM STA CURTOL+1 BEQ INLPN0 BCS INLPN1 BSERR7 JMP BSERR - .IFN CC1+CC2 < +.IFN CC1+CC2 < OMERR1 JMP OMERR > - .IFN CC3+CC4 < +.IFN CC3+CC4 < OMERR1 JMP OMERRA > ; @@ -332,9 +332,9 @@ STOML1 STX ADDEND STA VARPNT+1 TAY LDA VARPNT - LDX #ARYBNK + LDX #ARYBNK STX VARPNT+2 -DIMRTS JMP MAPTXT +DIMRTS JMP MAPTXT .PAG ; TWO BYTE UNSIGNED INTEGER MULTIPLY. ; FOR MULTIPLY DIMENSIONED ARRAYS. @@ -397,7 +397,7 @@ FREF10 JSR CONINT ;.X := BANK# CPX #TXTBNK BNE FREF80 - .IFN CC1 < +.IFN CC1 < FREFST JSR GARBA2 ;COMPRESS OUT GARBAGE STRINGS SEC @@ -407,7 +407,7 @@ FREFST LDA FRETOP+1 SBC STREND+1 > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < SEC LDA BUFFPT SBC TXTEND @@ -417,11 +417,11 @@ FREFST > JMP NOSFLT FREF80 - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < CPX #VARBNK BNE FREF70 > - .IFN CC2+CC3 < +.IFN CC2+CC3 < FREFST JSR GARBA2 ;COMPRESS OUT GARBAGE STRINGS SEC @@ -432,7 +432,7 @@ FREFST SBC STREND+1 JMP NOSFLT > - .IFN CC4 < +.IFN CC4 < SEC LDA HIGHST SBC VAREND @@ -442,7 +442,7 @@ FREFST JMP NOSFLT > FREF70 - .IFN CC3+CC4 < +.IFN CC3+CC4 < CPX #ARYBNK BNE FREF60 SEC @@ -454,7 +454,7 @@ FREF70 JMP NOSFLT > FREF60 - .IFN CC4 < +.IFN CC4 < FREFST CPX #STRBNK BNE FREF50 @@ -536,7 +536,7 @@ TSTDIR LDA CURLIN+1 ; TDM =TSTDIR .SKI 4 -GETFNM ; GET A PTR TO A FUNCTION NAME +GETFNM ; GET A PTR TO A FUNCTION NAME LDA #TKFN ; MUST START WITH FN JSR SYNCHR ORA #$80 ; .A<-1ST CHAR OF FN NAME+$80 @@ -562,7 +562,7 @@ FNDOER JSR GETFNM STA DEFPNT+1 PLA STA DEFPNT+2 - STA I6509 + STA I6509 LDY #2 ; VARPNT <- PTR FOR FORMAL PARAM LDA (DEFPNT)Y STA VARPNT @@ -575,7 +575,7 @@ FNDOER JSR GETFNM INY LDA (DEFPNT)Y STA VARPNT+2 - STA I6509 + STA I6509 FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM PHA DEY @@ -587,14 +587,14 @@ FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM PHA LDA TXTPTR PHA - LDA DEFPNT+2 - STA I6509 + LDA DEFPNT+2 + STA I6509 LDA (DEFPNT)Y ;TEXT PTR <- PTR TO FTN BODY TEXT STA TXTPTR INY LDA (DEFPNT)Y STA TXTPTR+1 - JSR MAPTXT + JSR MAPTXT LDA VARPNT+2 ; STACK <- PTR TO FORMAL PARAM PHA LDA VARPNT+1 @@ -625,8 +625,8 @@ FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM ; TO THE TEXT FOR THE FTN BODY (2 BYTES) AND A PTR ; TO THE DATA AREA OF THE FORMAL PARAMETER (3 BYTES) ; -DEFFIN LDA DEFPNT+2 - STA I6509 +DEFFIN LDA DEFPNT+2 + STA I6509 LDY #0 PLA STA (DEFPNT)Y @@ -642,7 +642,7 @@ DEFFIN LDA DEFPNT+2 PLA INY STA (DEFPNT)Y - JMP MAPTXT + JMP MAPTXT .SKI 3 PEEK LDA POKER+1 PHA @@ -650,8 +650,8 @@ PEEK LDA POKER+1 PHA JSR GETADR LDX I6509 - LDA DFBANK - STA I6509 + LDA DFBANK + STA I6509 LDY #0 LDA (POKER)Y TAY @@ -856,7 +856,7 @@ ROLSHF ROR 2,X SHFTRT CLC RTS .SKI 4 -FONE .BYT $81,0,0,0,0 +FONE .BYT $81, 0, 0, 0, 0 LOGCN2 .BYT $03,$7F,$5E,$56 .BYT $CB,$79,$80,$13 .BYT $9B,$0B,$64,$80 @@ -864,6 +864,6 @@ LOGCN2 .BYT $03,$7F,$5E,$56 .BYT $82,$38,$AA,$3B,$20 SQR05 .BYT $80,$35,$04,$F3,$34 SQR20 .BYT $81,$35,$04,$F3,$34 -NEGHLF .BYT $80,$80,0,0,0 +NEGHLF .BYT $80,$80, 0, 0, 0 LOG2 .BYT $80,$31,$72,$17,$F8 .END diff --git a/BASIC_CBM2_1982-11-19/math3 b/BASIC_CBM2_1982-11-19/math3 index 4c15099..faa3874 100644 --- a/BASIC_CBM2_1982-11-19/math3 +++ b/BASIC_CBM2_1982-11-19/math3 @@ -107,7 +107,7 @@ UCNUPK STX I6509 STA ARGHO DEY LDA (INDEX1)Y - JSR MAPTXT + JSR MAPTXT STA ARGEXP LDA FACEXP RTS @@ -273,7 +273,7 @@ MOVFUM STA INDEX1 LDA (INDEX1)Y STA FACEXP STY FACOV - JMP MAPTXT + JMP MAPTXT ; ; MOV2F: TEMP2F <- FAC ; MOV1F: TEMP1F <- FAC @@ -317,7 +317,7 @@ MOV001 STA I6509 LDA FACEXP STA (INDEX)Y STY FACOV - JMP MAPTXT + JMP MAPTXT ; ; MOVFA: FAC <- ARG REGISTER ; MOVAF: ARG <- FAC REGISTER @@ -382,31 +382,31 @@ ABS LSR FACSGN FCOMP STA INDEX2 FCOMPN STY INDEX2+1 ; ENTER W/VALUE ON STACK ("NEXT") LDY #0 - JSR FCINX2 + JSR FCINX2 INY TAX BEQ SIGN - JSR FCINX2 + JSR FCINX2 EOR FACSGN BMI FCSIGN CPX FACEXP BNE FCOMPC - JSR FCINX2 + JSR FCINX2 ORA #$80 CMP FACHO BNE FCOMPC INY - JSR FCINX2 + JSR FCINX2 CMP FACMOH BNE FCOMPC INY - JSR FCINX2 + JSR FCINX2 CMP FACMO BNE FCOMPC INY LDA #$7F CMP FACOV - JSR FCINX2 + JSR FCINX2 SBC FACLO BEQ QINTRT FCOMPC LDA FACSGN @@ -414,7 +414,7 @@ FCOMPC LDA FACSGN EOR #$FF FCOMPD JMP FCOMPS .SKIP 2 -FCINX2 JSR MAPSYS +FCINX2 JSR MAPSYS LDA (INDEX2)Y - JMP MAPTXT + JMP MAPTXT .END diff --git a/BASIC_CBM2_1982-11-19/math4 b/BASIC_CBM2_1982-11-19/math4 index 77e3d59..a7b0574 100644 --- a/BASIC_CBM2_1982-11-19/math4 +++ b/BASIC_CBM2_1982-11-19/math4 @@ -47,13 +47,13 @@ CLRFAC STA FACHO STA FACMOH STA FACMO STA FACLO - TAY + TAY INTRTS RTS .PAG ; NUMBER INPUT IS LEFT IN FAC. ; AT ENTRY TXTPTR -> TO THE 1ST CHAR IN A TEXT BUF. ; THE 1ST CHAR IS ALSO IN ACC. FIN PACKS THE DIGITS -; INTO THE FAC AS AN INTEGER AND KEEPS TRACK OF WHERE +; INTO THE FAC AS AN INTEGER AND KEEPS TRACK OF WHERE ; THE DECIMAL POINT IS. DPTFLG TELLS WHETHER A DP HAS ; BEEN SEEN. DCCNT IS THE NUMBER OF DIGITS AFTER THE ; DP. AT THE END DCCNT AND THE EXP ARE USED TO @@ -152,10 +152,10 @@ MLEX10 ASL A CLC LDY #0 STA TTTEMP - LDA TXTPTR+2 + LDA TXTPTR+2 STA I6509 LDA (TXTPTR)Y - JSR MAPTXT + JSR MAPTXT ADC TTTEMP SEC SBC #'0 @@ -372,21 +372,21 @@ FOUTBL .BYT $FF,$FF,$FF,$FF ;-1 ; FDCEND -; .BYT $FF,$DF,$0A,$80 ;-216,000 FOR TIME CONVERTER -; .BYT $00,$03,$4B,$C0 ;216,000 -; .BYT $FF,$FF,$73,$60 ;-36000 -; .BYT $00,$00,$0E,$10 ;3600 -; .BYT $FF,$FF,$FD,$A8 ;-600 -; .BYT $00,$00,$00,$3C ;60 +; .BYT $FF,$DF,$0A,$80 ;-216,000 FOR TIME CONVERTER +; .BYT $00,$03,$4B,$C0 ;216,000 +; .BYT $FF,$FF,$73,$60 ;-36000 +; .BYT $00,$00,$0E,$10 ;3600 +; .BYT $FF,$FF,$FD,$A8 ;-600 +; .BYT $00,$00,$00,$3C ;60 ;TIMEND .PAG -SQR ;SQUARE ROOT FUNCTION SQR(A) -; USES SQR(A) == A**0.5 +SQR ;SQUARE ROOT FUNCTION SQR(A) +; USES SQR(A) == A**0.5 JSR MOVAF LDA #FHALF JSR MOVFM -; JMP FPWRT ;LAST THING FETCHED IS FACEXP INTO ACCX +; JMP FPWRT ;LAST THING FETCHED IS FACEXP INTO ACCX ; ; EXPONENTATION X**Y ; IF Y = 0 THEN RESULTS = 1. @@ -435,7 +435,7 @@ NEGOP LDA FACEXP NEGRTS RTS .PAG LOGEB2 .BYT $81,$38,$AA,$3B,$29 ;LOG(E) BASE 2 -EXPCON .BYT 7,$71,$34,$58,$3E +EXPCON .BYT 7,$71,$34,$58,$3E .BYT $56,$74,$16,$7E .BYT $B3,$1B,$77,$2F .BYT $EE,$E3,$85,$7A @@ -444,7 +444,7 @@ EXPCON .BYT 7,$71,$34,$58,$3E .BYT $0A,$7E,$75,$FD .BYT $E7,$C6,$80,$31 .BYT $72,$18,$10,$81 - .BYT 0,0,0,0 + .BYT 0, 0, 0, 0 .SKI 4 ; MULTIPLY BY LOG(E) BASE 2. EXP LDA # - .IFE CC1 < +.IFE CC1 < INC TXTEND > BNE AD7714 - .IFN CC1 < +.IFN CC1 < INC VARTAB+1 > - .IFE CC1 < +.IFE CC1 < INC TXTEND+1 > AD7714 RTS @@ -240,24 +240,24 @@ AD7714 RTS AD7715 JSR AD7726 DEC ARGMO JSR AD7545 - .IFN CC1 < +.IFN CC1 < LDA VARTAB > - .IFE CC1 < +.IFE CC1 < LDA TXTEND > BNE AD7723 - .IFN CC1 < +.IFN CC1 < DEC VARTAB+1 > - .IFE CC1 < +.IFE CC1 < DEC TXTEND+1 > AD7723 - .IFN CC1 < +.IFN CC1 < DEC VARTAB > - .IFE CC1 < +.IFE CC1 < DEC TXTEND > RTS @@ -304,17 +304,17 @@ AD7529 LDA TXTPTR STA INDEX1 LDA TXTPTR+1 STA INDEX1+1 - .IFN CC1 < +.IFN CC1 < LDA VARTAB > - .IFE CC1 < +.IFE CC1 < LDA TXTEND > STA INDEX2 - .IFN CC1 < +.IFN CC1 < LDA VARTAB+1 > - .IFE CC1 < +.IFE CC1 < LDA TXTEND+1 > STA INDEX2+1 @@ -359,19 +359,19 @@ SUBCLR JSR LNKPRG LDX INDEX1+1 CLC ADC #$02 - .IFN CC1 < +.IFN CC1 < STA VARTAB > - .IFE CC1 < +.IFE CC1 < STA TXTEND > BCC AD72B6 INX AD72B6 - .IFN CC1 < +.IFN CC1 < STX VARTAB+1 > - .IFE CC1 < +.IFE CC1 < STX TXTEND+1 > JSR RUNC diff --git a/BASIC_CBM2_1982-11-19/strng1 b/BASIC_CBM2_1982-11-19/strng1 index 8c9edba..789f9d3 100644 --- a/BASIC_CBM2_1982-11-19/strng1 +++ b/BASIC_CBM2_1982-11-19/strng1 @@ -340,7 +340,7 @@ INPCOM .SKIP 2 GETSPT LDY FACMO+2 ;DESCR PTR FOR TEMP? - .IFN CC1+CC2+CC3 < +.IFN CC1+CC2+CC3 < CPY #VARBNK ; NO, IF VARBNK & < STREND BNE DNTCPY LDY FACMO+1 ;DESCR PTR FOR TEMP? @@ -351,7 +351,7 @@ GETSPT CMP STREND BCC COPY > - .IFN CC4 < +.IFN CC4 < CPY #VARBNK ; NO, IF IN VARBNK BEQ COPY > diff --git a/BASIC_CBM2_1982-11-19/strng2 b/BASIC_CBM2_1982-11-19/strng2 index 2894baf..08577a3 100644 --- a/BASIC_CBM2_1982-11-19/strng2 +++ b/BASIC_CBM2_1982-11-19/strng2 @@ -16,14 +16,14 @@ CAT STA STRNG1+1 PLA STA STRNG1+2 - STA I6509 + STA I6509 LDY #0 LDA (STRNG1)Y ; LEN1+LEN2<256 ? STA TTTEMP - LDA FACMO+2 - STA I6509 + LDA FACMO+2 + STA I6509 LDA (FACMO)Y - JSR MAPTXT + JSR MAPTXT CLC ADC TTTEMP BCC SIZEOK @@ -77,7 +77,7 @@ RLEFT BCC RLEFT1 LDA (DSCPNT)Y TAX TYA -RLEFT1 JSR MAPTXT +RLEFT1 JSR MAPTXT PHA ; STARTING OFFSET RLEFT2 TXA ; LENGTH RLEFT3 PHA @@ -113,9 +113,9 @@ RIGHTD JSR PREAM JMP RLEFT ; SAV17 JSR CHRGOT - CMP #')' - BEQ SAV18 - JMP COMBYT ;CHECK FOR COMMA AND GET A BYTE + CMP #')' + BEQ SAV18 + JMP COMBYT ;CHECK FOR COMMA AND GET A BYTE MIDD LDA #$FF STA FACLO JSR SAV17 @@ -128,9 +128,9 @@ MID2 JSR PREAM PHA CLC LDX #0 - JSR MAPDSP + JSR MAPDSP LDA (DSCPNT)Y - JSR MAPTXT + JSR MAPTXT STA TTTEMP PLA SBC TTTEMP @@ -202,11 +202,11 @@ VAL1 LDX TXTPTR ;STRNG2 := TXTPTR LDY TXTPTR+1 STX STRNG2 STY STRNG2+1 - LDY TXTPTR+2 - STY STRNG2+2 - LDX INDEX1+2 + LDY TXTPTR+2 + STY STRNG2+2 + LDX INDEX1+2 STX TXTPTR+2 ;TXTPTR := INDEX1 (START OF STR) - STX I6509 + STX I6509 LDX INDEX1 STX TXTPTR CLC @@ -222,73 +222,73 @@ VAL2 STX INDEX2+1 PHA TYA STA (INDEX2)Y - JSR MAPTXT + JSR MAPTXT JSR CHRGOT JSR FIN JSR MAPSTR ;RESTORE BYTE AT END OF STR (ALWAYS IN STR BANK) PLA LDY #0 STA (INDEX2)Y - JSR MAPTXT + JSR MAPTXT ST2TXT LDX STRNG2 ;RESTORE TEXT POINTER LDY STRNG2+1 - LDA STRNG2+2 + LDA STRNG2+2 STX TXTPTR STY TXTPTR+1 - STA TXTPTR+2 + STA TXTPTR+2 RTS .SKIP 4 ERRD PLA ;TRASH OLD TOKEN FROM ISFUN - JSR PARCHK - JSR CHKNUM ;CHECK FOR NUMERIC ARGUMENT - JSR CONINT ;GET INTEGER ARG. IN X - TXA - ASL A - CMP #ERRBLN ;CHECK VALUE AGAINST LENGTH OF ERROR POINTER LIST - BCS GOFUC - TAY - LDA EBASE,Y ;GET ADDRESS OF MESSAGE - STA INDEX2 ;AND CREATE A TEMP DESCRIPTOR POINTING TO IT - LDA EBASE+1,Y - STA INDEX2+1 - JSR MAPSYS - LDY #$FF - LDX #0 + JSR PARCHK + JSR CHKNUM ;CHECK FOR NUMERIC ARGUMENT + JSR CONINT ;GET INTEGER ARG. IN X + TXA + ASL A + CMP #ERRBLN ;CHECK VALUE AGAINST LENGTH OF ERROR POINTER LIST + BCS GOFUC + TAY + LDA EBASE,Y ;GET ADDRESS OF MESSAGE + STA INDEX2 ;AND CREATE A TEMP DESCRIPTOR POINTING TO IT + LDA EBASE+1,Y + STA INDEX2+1 + JSR MAPSYS + LDY #$FF + LDX #0 ERFLP1 INY ;COUNT # OF CHARACTERS IN MESSAGE - LDA (INDEX2)Y - BEQ ERRD1 ;QUIT WHEN THE END IS FOUND - CMP #$20 ;DON'T COUNT NON-PRINTERS - BCC ERFLP1 - INX ;IT'S A PRINTER, SO COUNT IT! - BNE ERFLP1 ;ALWAYS + LDA (INDEX2)Y + BEQ ERRD1 ;QUIT WHEN THE END IS FOUND + CMP #$20 ;DON'T COUNT NON-PRINTERS + BCC ERFLP1 + INX ;IT'S A PRINTER, SO COUNT IT! + BNE ERFLP1 ;ALWAYS ERRD1 TXA - JSR STRSPA ;RESERVE A STRING - LDY #$FF - LDX #0 + JSR STRSPA ;RESERVE A STRING + LDY #$FF + LDX #0 ERFLP2 INY - JSR MAPSYS - LDA (INDEX2)Y - BEQ ERRD2 ;DONE IF NULL - CMP #$20 - BCC ERFLP2 - JSR SWAPXY - JSR MAPDST - STA (DSCTMP+1)Y - JSR SWAPXY - INX - BNE ERFLP2 ;ALWAYS + JSR MAPSYS + LDA (INDEX2)Y + BEQ ERRD2 ;DONE IF NULL + CMP #$20 + BCC ERFLP2 + JSR SWAPXY + JSR MAPDST + STA (DSCTMP+1)Y + JSR SWAPXY + INX + BNE ERFLP2 ;ALWAYS ERRD2 JSR MAPTXT - JMP PUTNEW + JMP PUTNEW ; SWAPXY PHA - TXA - PHA - TYA - TAX - PLA - TAY - PLA - RTS + TXA + PHA + TYA + TAX + PLA + TAY + PLA + RTS .SKI 5 ; TIME IS PASSED TO AND FROM THE SYSTEM IN ALL THREE ; REGISTERS IN THE FOLLOWING WAY: @@ -348,22 +348,22 @@ LKT50 STA TMHOUR STY INDEX1+1 LDY #STRBNK ;BANK FOR RECENT ALLOCATION STY INDEX1+2 - STY I6509 + STY I6509 TAY ; .Y = 8 -; PUT IN THE NULL TERMINATOR +; PUT IN THE NULL TERMINATOR DEY LDA #0 STA (INDEX1)Y DEY -; DO TENTHS, CONVERT TO ASCII +; DO TENTHS, CONVERT TO ASCII LDA TMTEN CLC ADC #'0' STA (INDEX1)Y DEY -; .Y INDEX TO PLACE FOR NEXT DIGIT -; .X INDEX TO NEXT BYTE CONTAINING 2 PACKED -; BCD DIGITS(REL TO TMHOUR) +; .Y INDEX TO PLACE FOR NEXT DIGIT +; .X INDEX TO NEXT BYTE CONTAINING 2 PACKED +; BCD DIGITS(REL TO TMHOUR) LDX #2 GTI70 LDA TMHOUR,X ;DO LOW DIGIT FIRST @@ -419,7 +419,7 @@ MKTI10 BNE MKTI10 JSR TIMNUM ;GET TENTHS STA TMTEN -; ADJUST 24 HR CLOCK, SETTING P.M. IF NEEDED +; ADJUST 24 HR CLOCK, SETTING P.M. IF NEEDED LDA TMHOUR CMP #$12 ; HR >= 12? BCC MKTI50 @@ -511,7 +511,7 @@ TRYAG4 CPY STREND+1 BCC GARBAG STRFRE STA FRESPC STY FRESPC+1 - JSR MAPSTR + JSR MAPSTR LDY #$02 ;FLAG STRING AS GARB. LDA #$FF ;GARBAGE FLAG STA (INDEX1)Y @@ -520,7 +520,7 @@ STRFRE STA FRESPC DEY PLA ;LENGTH STA (INDEX1)Y - JSR MAPTXT + JSR MAPTXT LDX FRESPC LDY FRESPC+1 STX FRETOP @@ -548,87 +548,87 @@ GRBG99 ; INSTRUCTION IS USED. ; GARBA2 - LDY #$00 ;SET UP FLAG - STY HIGHDS - LDA MEMTOP ;GET TOP OF MEMORY - LDY MEMTOP+1 - STA GRBTOP ;SET BOTH POINTERS - STA GRBPNT - STA FRESPC - STY GRBTOP+1 - STY GRBPNT+1 - STY FRESPC+1 + LDY #$00 ;SET UP FLAG + STY HIGHDS + LDA MEMTOP ;GET TOP OF MEMORY + LDY MEMTOP+1 + STA GRBTOP ;SET BOTH POINTERS + STA GRBPNT + STA FRESPC + STY GRBTOP+1 + STY GRBPNT+1 + STY FRESPC+1 ; ; DO WHILE (GRBPNT <> FRETOP) ; GLOOP - JSR CHKGRB ;CHECK GARBAGE STRING - BNE COL01 ;IF NOT GARBAGE STRING -COL00A LDY #0 ;GET LENGTH - JSR MAPSTR + JSR CHKGRB ;CHECK GARBAGE STRING + BNE COL01 ;IF NOT GARBAGE STRING +COL00A LDY #0 ;GET LENGTH + JSR MAPSTR LDA (GRBPNT)Y - JSR MOVPNT ;MOVE GRBPNT TO NEXT + JSR MOVPNT ;MOVE GRBPNT TO NEXT SEC - ROR HIGHDS ;INDICATE GARBAGE STRING FOUND - BNE GLOOP ;ALWAYS + ROR HIGHDS ;INDICATE GARBAGE STRING FOUND + BNE GLOOP ;ALWAYS ; COL01 - BIT HIGHDS - BPL COL03 ;IF GARBARE STRING NOT FOUND - LDX #$00 - STX HIGHDS ;CLEAR INDICATOR + BIT HIGHDS + BPL COL03 ;IF GARBARE STRING NOT FOUND + LDX #$00 + STX HIGHDS ;CLEAR INDICATOR ; ; MOVE A STRING OVER GARBAGE ; -COL02 LDY #$02 ;MOVE THE LINK BYTES - JSR MAPSTR +COL02 LDY #$02 ;MOVE THE LINK BYTES + JSR MAPSTR COL02A LDA (GRBPNT)Y STA (GRBTOP)Y DEY - BPL COL02A + BPL COL02A ; INY - JSR MAPINX - JSR SAV7 + JSR MAPINX + JSR SAV7 TXA ;PUT LENGTH-1 IN .Y TAY - JSR MAPSTR + JSR MAPSTR ; GLOP1 DEY LDA (GRBPNT)Y STA (GRBTOP)Y DEX - BNE GLOP1 + BNE GLOP1 ; - JSR MAPINX - LDY #$02 ;FIX THE DESCRIPTOR -COL02B LDA GRBTOP-1,Y + JSR MAPINX + LDY #$02 ;FIX THE DESCRIPTOR +COL02B LDA GRBTOP-1,Y STA (INDEX1)Y DEY - BNE COL02B - .IFN GDEBUG < + BNE COL02B +.IFN GDEBUG < JSR GRBPRI ;GARBAGE DEBUG > - LDA GRBPNT ;CHECK POINTER - LDY GRBPNT+1 - JSR CHKGRB ;CHECK GARBAGE STRING - BEQ COL00A ;IF GARBAGE STRING FOUND - BNE COL02 ;ALWAYS -; -COL03 JSR MAPINX - LDY #$00 ;SKIP OVER GOOD STRINGS + LDA GRBPNT ;CHECK POINTER + LDY GRBPNT+1 + JSR CHKGRB ;CHECK GARBAGE STRING + BEQ COL00A ;IF GARBAGE STRING FOUND + BNE COL02 ;ALWAYS +; +COL03 JSR MAPINX + LDY #$00 ;SKIP OVER GOOD STRINGS JSR SAV7 JMP GLOOP SAV7 LDA (INDEX1)Y TAX - JSR MOVTOP - STA FRESPC - STY FRESPC+1 + JSR MOVTOP + STA FRESPC + STY FRESPC+1 TXA - JMP MOVPNT - .IFN GDEBUG < - JSR GRBPRI ;GARBAGE DEBUG + JMP MOVPNT +.IFN GDEBUG < + JSR GRBPRI ;GARBAGE DEBUG > .SKIP 4 ; SUBROUTINES USED FOR GARBAGE COLLECTION @@ -642,64 +642,64 @@ SAV7 LDA (INDEX1)Y ; EXIT TO CFRE4. ; CARRY CLEAR Y,A <> FRETOP. CHKGRB - CPY FRETOP+1 ;END OF STRINGS ? - BCC CFRE4 - BNE CFRE1 ;IF NOT EQUAL - CMP FRETOP - BEQ CFRE4 - BCC CFRE4 + CPY FRETOP+1 ;END OF STRINGS ? + BCC CFRE4 + BNE CFRE1 ;IF NOT EQUAL + CMP FRETOP + BEQ CFRE4 + BCC CFRE4 ; CFRE1 - BIT HIGHDS ;CHECK FLAG - BMI CFRE2 ;IF EMPTY STRING FOUND - LDA #PTRSIZ ;SKIP POINTERS PAST - JSR MOVTOP ;MOVE TOP POINTER -CFRE2 LDA #PTRSIZ ;SKIP POINTERS PAST - JSR MOVPNT ;MOVE POINTERS - LDY #$02 - JSR MAPSTR + BIT HIGHDS ;CHECK FLAG + BMI CFRE2 ;IF EMPTY STRING FOUND + LDA #PTRSIZ ;SKIP POINTERS PAST + JSR MOVTOP ;MOVE TOP POINTER +CFRE2 LDA #PTRSIZ ;SKIP POINTERS PAST + JSR MOVPNT ;MOVE POINTERS + LDY #$02 + JSR MAPSTR LDA (GRBPNT)Y ;GARBAGE ? - CMP #$FF - BNE CFRE3 ;IF NOT GARBAGE STRING + CMP #$FF + BNE CFRE3 ;IF NOT GARBAGE STRING RTS ; CFRE3 LDA (GRBPNT)Y ;TO LINK BYTES - STA INDEX1,Y + STA INDEX1,Y DEY - BPL CFRE3 ;IF THREE BYTES NOT MOVED + BPL CFRE3 ;IF THREE BYTES NOT MOVED RTS ; CFRE4 JSR MAPTXT ; RESTORE I6509 PLA ;THROW AWAY RETURN ADDRESS PLA - LDA FRESPC ;FIX FRETOP AND FRESPC - LDY FRESPC+1 - STA FRETOP - STY FRETOP+1 + LDA FRESPC ;FIX FRETOP AND FRESPC + LDY FRESPC+1 + STA FRETOP + STY FRETOP+1 RTS .SKIP 4 -MOVPNT EOR #$FF ;COMP AND ADD +MOVPNT EOR #$FF ;COMP AND ADD SEC - ADC GRBPNT - LDY GRBPNT+1 - BCS MOV00 + ADC GRBPNT + LDY GRBPNT+1 + BCS MOV00 DEY -MOV00 STA GRBPNT - STY GRBPNT+1 +MOV00 STA GRBPNT + STY GRBPNT+1 RTS .SKIP 4 -MOVTOP EOR #$FF ;COMP AND ADD +MOVTOP EOR #$FF ;COMP AND ADD SEC - ADC GRBTOP - LDY GRBTOP+1 - BCS MOV01 + ADC GRBTOP + LDY GRBTOP+1 + BCS MOV01 DEY -MOV01 STA GRBTOP - STY GRBTOP+1 +MOV01 STA GRBTOP + STY GRBTOP+1 RTS - .IFN GDEBUG < +.IFN GDEBUG < .SKIP 3 PUTSPC LDA #' ' @@ -791,95 +791,95 @@ GPR10 INFCER JMP FCERR INSTRG LDX #2 INCOP1 LDA FACMO,X ;SAVE POINTER TO TEMPORARY DESCRIPTOR - STA TMPDES,X - DEX - BPL INCOP1 - JSR FRMEVL ;GET NEXT ARG. - JSR CHKSTR ;MUST BE STRING - LDX #2 + STA TMPDES,X + DEX + BPL INCOP1 + JSR FRMEVL ;GET NEXT ARG. + JSR CHKSTR ;MUST BE STRING + LDX #2 INCOP2 LDA FACMO,X ;AND SAVE IT, TOO - STA TMPDES+3,X - DEX - BPL INCOP2 + STA TMPDES+3,X + DEX + BPL INCOP2 ; - LDX #1 - STX FACLO ;IF NO STARTING POSITION IS GIVEN, 1 IS ASSUMED - JSR SAV17 + LDX #1 + STX FACLO ;IF NO STARTING POSITION IS GIVEN, 1 IS ASSUMED + JSR SAV17 INST1 JSR CHKCLS - LDX FACLO - BEQ INFCER ;S.A. OF 0 IS AN ERROR - DEX - STX POSITN + LDX FACLO + BEQ INFCER ;S.A. OF 0 IS AN ERROR + DEX + STX POSITN ; - LDX #5 ;MOVE POINTERS TO TEMP DESCRIPTORS TO ZERO PAGE + LDX #5 ;MOVE POINTERS TO TEMP DESCRIPTORS TO ZERO PAGE INST2 LDA TMPDES,X - STA PTARG1,X - DEX - BPL INST2 + STA PTARG1,X + DEX + BPL INST2 ; - LDA PTARG1+2 ;NOW MOVE IN THE DESCRIPTORS - STA I6509 - LDY #3 + LDA PTARG1+2 ;NOW MOVE IN THE DESCRIPTORS + STA I6509 + LDY #3 INST3 LDA (PTARG1)Y - STA STR1,Y - DEY - BPL INST3 + STA STR1,Y + DEY + BPL INST3 ; - LDA PTARG2+2 - STA I6509 - LDY #3 + LDA PTARG2+2 + STA I6509 + LDY #3 INST4 LDA (PTARG2)Y - STA STR2,Y - DEY - BPL INST4 + STA STR2,Y + DEY + BPL INST4 ; - LDA STR2 ;CHECK IF STRING 2 IS NULL - BEQ INSTNF ;IF SO, RETURN ZERO + LDA STR2 ;CHECK IF STRING 2 IS NULL + BEQ INSTNF ;IF SO, RETURN ZERO ; - LDA STR1+3 - STA I6509 + LDA STR1+3 + STA I6509 INST5 LDA #0 - STA MATCH - CLC - LDA STR2 ;LENGTH OF STRING 2 - ADC POSITN - BCS INSTNF ;TOO LONG, NOT FOUND - CMP STR1 ;SEE IF > LENGTH OF STRING 1 - BCC INST6 ;< LEN. STRING 1 - BNE INSTNF ;MUST BE >, NOT FOUND + STA MATCH + CLC + LDA STR2 ;LENGTH OF STRING 2 + ADC POSITN + BCS INSTNF ;TOO LONG, NOT FOUND + CMP STR1 ;SEE IF > LENGTH OF STRING 1 + BCC INST6 ;< LEN. STRING 1 + BNE INSTNF ;MUST BE >, NOT FOUND INST6 LDY MATCH - CPY STR2 ;IF MATCH LEN. = STR. LEN, THEN FOUND - BEQ INSTFD - TYA - CLC - ADC POSITN ;COMPARE STRING1(S+P+M) WITH STRING2(M) - TAY - LDA (STR1+1)Y - STA TMPPOS - LDY MATCH - LDA (STR2+1)Y - CMP TMPPOS - BEQ INST7 - INC POSITN ;NOT THE SAME, START OVER FROM NEXT POSITION - BNE INST5 ;ALWAYS + CPY STR2 ;IF MATCH LEN. = STR. LEN, THEN FOUND + BEQ INSTFD + TYA + CLC + ADC POSITN ;COMPARE STRING1(S+P+M) WITH STRING2(M) + TAY + LDA (STR1+1)Y + STA TMPPOS + LDY MATCH + LDA (STR2+1)Y + CMP TMPPOS + BEQ INST7 + INC POSITN ;NOT THE SAME, START OVER FROM NEXT POSITION + BNE INST5 ;ALWAYS INST7 INC MATCH ;COUNT CHARACTERS THAT MATCH - BNE INST6 ;ALWAYS + BNE INST6 ;ALWAYS ; INSTFD INC POSITN - LDA POSITN + LDA POSITN .BYT $2C INSTNF LDA #0 - PHA - LDA TMPDES+3 ;FREE TEMP DESCRIPTORS - LDY TMPDES+4 - LDX TMPDES+5 - JSR FRETMP - LDA TMPDES - LDY TMPDES+1 - LDX TMPDES+2 - JSR FRETMP - JSR MAPTXT - PLA ;SEND RESULT BACK AS AN INTEGER - TAY - JMP SNGFLT + PHA + LDA TMPDES+3 ;FREE TEMP DESCRIPTORS + LDY TMPDES+4 + LDX TMPDES+5 + JSR FRETMP + LDA TMPDES + LDY TMPDES+1 + LDX TMPDES+2 + JSR FRETMP + JSR MAPTXT + PLA ;SEND RESULT BACK AS AN INTEGER + TAY + JMP SNGFLT .END diff --git a/BASIC_CBM2_1982-11-19/sysvec b/BASIC_CBM2_1982-11-19/sysvec index ac5a576..917455c 100644 --- a/BASIC_CBM2_1982-11-19/sysvec +++ b/BASIC_CBM2_1982-11-19/sysvec @@ -1,5 +1,5 @@ .PAGE 'INTERFACE JUMP VECTORS.' - *=VECORG + *=VECORG ; IOINIT *=*+3 ;I/O INITIALIZATION CINT *=*+3 ;SCREEN INITIALIZATION diff --git a/BASIC_CBM2_1982-11-19/tokens b/BASIC_CBM2_1982-11-19/tokens index 0587c38..f83a1ae 100644 --- a/BASIC_CBM2_1982-11-19/tokens +++ b/BASIC_CBM2_1982-11-19/tokens @@ -1,12 +1,12 @@ .PAGE 'TABLES, RESERVED WORDS, AND ERROR TEXTS' - *= CODFWA + *= CODFWA ; ; ENTRY NAME AND ENTRY POINT JUMP BENTRY JMP INIT ;ENTRY POINT FOR START - JMP WARM ;WARM START RE-ENTRY POINT - .BYTE $C3,$C2,$CD,'8' ;CMB8 ($80 OR'D IN 1ST 3 CHARS) - .IFN CC2 < - .BYTE ' ' + JMP WARM ;WARM START RE-ENTRY POINT + .BYTE $C3,$C2,$CD,'8' ;CMB8 ($80 OR'D IN 1ST 3 CHARS) +.IFN CC2 < + .BYTE ' ' .SKI 3 ; VSP ROM INDIRECT TABLE (PETII BASIC ONLY) ; @@ -102,10 +102,10 @@ STMDSP .WORD TRAP-1 .WORD RESUME-1 .WORD DISPOS-1 - .IFN CC1+CC2 < +.IFN CC1+CC2 < .WORD PUCTRL-1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < .WORD PUCTRL-1 > .SKIP 4 @@ -319,7 +319,7 @@ TKINST=TKERRD+1 ;> .BYTE 0 ;END OF RESERVED WORD LIST .PAGE 'ERROR MESSAGE ADDRESS TABLE.' -EBASE ;BASE FOR ERROR MESSAGES +EBASE ;BASE FOR ERROR MESSAGES ; ; MS0 =*-EBASE @@ -412,11 +412,11 @@ ERRCR =*-EBASE ERRDI =*-EBASE .WORD AERDI ERRBLN=*-EBASE - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < ERROT =*-EBASE .WORD AEROT > - .IFN CC3+CC4 < +.IFN CC3+CC4 < ERROA =*-EBASE .WORD AEROA > @@ -433,7 +433,7 @@ AMS6 .BYTE 'NOT INPUT FILE',0 AMS7 .BYTE 'NOT OUTPUT FILE',0 AMS8 .BYTE 'MISSING FILE NAME',0 AMS9 .BYTE 'ILLEGAL DEVICE ' - .BYTE 'NUMBER',0 + .BYTE 'NUMBER',0 ; ; BASIC ERROR MESSAGES. ; @@ -471,12 +471,12 @@ AEXI .BYTE 'EXTRA IGNORED',CR,0 ATRY .BYTE 'REDO FROM START',CR,0 AREMSG .BYTE 'MORE',CR,0 AEROS .BYTE 'OUT OF STACK',0 - .IFN CC2+CC3+CC4 < -AEROT .BYTE 'OUT OF TEXT',0 +.IFN CC2+CC3+CC4 < +AEROT .BYTE 'OUT OF TEXT',0 > - .IFN CC3+CC4 < -AEROA .BYTE 'OUT OF ARRAY SPACE',0 +.IFN CC3+CC4 < +AEROA .BYTE 'OUT OF ARRAY SPACE',0 > -AERCR .BYTE 'UNABLE TO RESUME',0 -AERDI .BYTE 'UNABLE TO DISPOSE',0 +AERCR .BYTE 'UNABLE TO RESUME',0 +AERDI .BYTE 'UNABLE TO DISPOSE',0 .END diff --git a/BASIC_CBM2_1982-11-19/using b/BASIC_CBM2_1982-11-19/using index f00b9be..9dfa62e 100644 --- a/BASIC_CBM2_1982-11-19/using +++ b/BASIC_CBM2_1982-11-19/using @@ -89,7 +89,7 @@ REAY JSR CHRGOT ;GET OLD CHARACTER JSR MAPTXT JSR FRETMP JSR CHRGOT - CMP #'; ;SEMI-COLON? + CMP #'; ;SEMI-COLON? BEQ NOCR ;BRANCH IF YES JMP OCRLF ;END OF PRINT USING NOCR JMP CHRGET ;RTS TO BASIC diff --git a/BASIC_CBM2_1983-05-31/basic b/BASIC_CBM2_1983-05-31/basic index 98e95a9..cd9bd19 100644 --- a/BASIC_CBM2_1983-05-31/basic +++ b/BASIC_CBM2_1983-05-31/basic @@ -94,32 +94,32 @@ ADDPR8 =ADDPR4+ADDPR4 STKEND =$1FB ;FIRST BYTE USED FOR STACK CLMWID =10 PI =$FF -STRSIZ =4 ;# OF LOCS PER STR DESCRIPTOR -PTRSIZ =3 ;# OF LOCS PER POINTER -NUMTMP =3 ;# OF STRING TEMPORARIES +STRSIZ =4 ;# OF LOCS PER STR DESCRIPTOR +PTRSIZ =3 ;# OF LOCS PER POINTER +NUMTMP =3 ;# OF STRING TEMPORARIES .SKI 3 ; BANK EQUATES SYSBNK =$0F ;SYSTEM BANK# MXBANK =SYSBNK+1 ;1ST BANK OUT OF RANGE - .IFN CC1 < +.IFN CC1 < TXTBNK =0+BF ;TEXT BANK *ONE* VARBNK =0+BF ;SIMPLE VARIABLE BANK ARYBNK =0+BF ;ARRAY BANK STRBNK =0+BF ;STRING BANK > - .IFN CC2 < +.IFN CC2 < TXTBNK =0+BF ;TEXT BANK *TWO* VARBNK =1+BF ;SIMPLE VARIABLE BANK ARYBNK =1+BF ;ARRAY BANK STRBNK =1+BF ;STRING BANK > - .IFN CC3 < +.IFN CC3 < TXTBNK =0+BF ;TEXT BANK *THREE* VARBNK =2+BF+BF ;SIMPLE VARIABLE BANK ARYBNK =1+BF ;ARRAY BANK STRBNK =2+BF+BF ;STRING BANK > - .IFN CC4 < +.IFN CC4 < TXTBNK =0+BF ;TEXT BANK *FOUR* VARBNK =3 ;SIMPLE VARIABLE BANK ARYBNK =1+BF ;ARRAY BANK @@ -128,7 +128,7 @@ STRBNK =2+BF+BF ;STRING BANK .SKI 4 ; DOS INTERFACE EQUATES. DOSFNL =16+2 ;FILENAME LENGTH -DOSDSK =8 ;DISK DEVICE # +DOSDSK =8 ;DISK DEVICE # DOSLFN =14 ;DOS INTERNAL LOGICAL FILE NUMBER DOSCTL =21 ;DOS DIRECTORY LINES BEFORE PROMPT DOSLST =DOSFNL+DOSFNL+DOSFNL+16 ;(DOSFNL+2)*3+10 --TRANSMIT BUFFER LENGTH @@ -147,7 +147,7 @@ DOSLST =DOSFNL+DOSFNL+DOSFNL+16 ;(DOSFNL+2)*3+10 --TRANSMIT BUFFER LENGTH .LIB STRNG2 ;.LIB RENUMBER .LIB DELETE - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < .LIB USING > .LIB BUTES1 diff --git a/BASIC_CBM2_1983-05-31/bdefine b/BASIC_CBM2_1983-05-31/bdefine index 54ab3ba..87ffbd6 100644 --- a/BASIC_CBM2_1983-05-31/bdefine +++ b/BASIC_CBM2_1983-05-31/bdefine @@ -1,6 +1,6 @@ .PAG 'BDEFINE' ; PAGE ZERO STORAGE DEFINITIONS - *=0 + *=0 ; E6509 *=*+1 ;EXECUTION BANK I6509 *=*+1 ;INDIRECTION BANK @@ -13,7 +13,7 @@ TMTEN *=*+1 ; FORM *=*+PTRSIZ ;FORMAT POINTER ; -INTEGR ;ONE-BYTE INTEGER FROM QINT +INTEGR ;ONE-BYTE INTEGER FROM QINT CHARAC *=*+1 ;A DELIMITING CHAR ENDCHR *=*+1 ;OTHER DELIMITING CHAR COUNT *=*+1 ;GENERAL COUNTER @@ -23,22 +23,22 @@ XCNT *=*+1 ;DOS LOOP COUNTER ; DIMFLG, VALTYP AND INTFLG MUST BE ; CONSECUTIVE LOCATIONS. DIMFLG *=*+1 ;IN GETTING A POINTER TO A VARIABLE -; IT IS IMPORTANT TO REMEMBER WHETHER -; IT IS BEING DONE FOR DIM OR NOT. +; IT IS IMPORTANT TO REMEMBER WHETHER +; IT IS BEING DONE FOR DIM OR NOT. VALTYP *=*+1 ;THE TYPE INDICATOR 0=NUMERIC, 1=STRING INTFLG *=*+1 ;TELLS IF INTEGER ; -GARBFL ;WHETHER TO DO GARBAGE COLLECTION +GARBFL ;WHETHER TO DO GARBAGE COLLECTION DORES *=*+1 ;WHETHER CAN OR CAN'T CRUNCH RES'D WORD. -; TURNED ON WHEN DATA BEING SCANNED BY -; CRUNCH SO UNQUOTED STRS WON'T BE CRUNCHED. +; TURNED ON WHEN DATA BEING SCANNED BY +; CRUNCH SO UNQUOTED STRS WON'T BE CRUNCHED. ; SUBFLG *=*+1 ;FLAG WHETHER SUB'D VARIABLE ALLOWED. -; FOR AND USER-DEFINED FUNCTION POINTER -; FETCHING TURN THIS ON BEFORE CALLING -; PTRGET SO ARRAYS WON'T BE DETECTED. -; STKINI AND PTRGET CLEAR IT. -; ALSO DISALLOWS INTEGERS THERE. +; FOR AND USER-DEFINED FUNCTION POINTER +; FETCHING TURN THIS ON BEFORE CALLING +; PTRGET SO ARRAYS WON'T BE DETECTED. +; STKINI AND PTRGET CLEAR IT. +; ALSO DISALLOWS INTEGERS THERE. ; INPFLG *=*+1 ;FLAGS WHETHER WE ARE DOING INPUT OR READ. ; @@ -61,7 +61,7 @@ INDEX2 *=*+PTRSIZ ;DIRECT CELLS FOR 2ND INDEXING USAGE ; RESHO *=*+1 ;RESULT OF MULTIPLIER AND DIVIDER RESMOH *=*+1 -ADDEND ;TEMP USED BY UMULT +ADDEND ;TEMP USED BY UMULT RESMO *=*+1 RESLO *=*+1 *=*+1 ;OVERFLOW PREVIOUS CELLS @@ -98,8 +98,8 @@ RESLO *=*+1 ; MEMTOP (STRS) ; TXTTAB *=*+2 ;POINTER TO BEGINNING OF TEXT AND -; DOESN'T CHANGE AFTER BEING SETUP -; BY INIT +; DOESN'T CHANGE AFTER BEING SETUP +; BY INIT ; TXTEND *=*+2 ;POINTER TO END OF TEXT (EXCEPT 64K) ; @@ -120,28 +120,28 @@ MEMTOP *=*+PTRSIZ ;HIGHEST LOCATION IN MEMORY ; LINE NUMBERS AND TEXTUAL POINTERS CURLIN *=*+2 ;CURRENT LINE NUMBER OLDLIN *=*+2 ;OLD LINE NUMBER (SETUP BY STOP OR -; END IN A PROGRAM) +; END IN A PROGRAM) OLDTXT *=*+PTRSIZ ;OLD TEXT POINTER ; DATLIN *=*+2 ;DATA LINE NUMBER DATPTR *=*+2 ;POINTER TO DATA. INITIALIZED TO POINT -; AT THE ZERO INFRONT OF (TXTTAB) BY -; CLR COMMAND. -; UPDATED BY EXECUTION OF A READ. +; AT THE ZERO INFRONT OF (TXTTAB) BY +; CLR COMMAND. +; UPDATED BY EXECUTION OF A READ. INPPTR *=*+2 ;REMEMBERS WHERE INPUT IS COMING FROM. .SKI 4 ; STUFF USED IN EVALUATIONS ; VARNAM *=*+2 ;VARIABLE'S NAME ; -FDECPT ;POINTER INTO POWER OF TENS TABLE. +FDECPT ;POINTER INTO POWER OF TENS TABLE. VARPNT *=*+PTRSIZ ;POINTER TO VARIABLE IN MEMORY ; -FORPNT ;A VARIABLE'S POINTER FOR FOR LOOPS -; AND LET STATEMENTS (3 BYTES). +FORPNT ;A VARIABLE'S POINTER FOR FOR LOOPS +; AND LET STATEMENTS (3 BYTES). LSTPNT *=*+PTRSIZ ;POINTER TO LIST STRING (3 BYTES). ; -VARTXT ;SAVE CURRENT TXTPTR ON READ. +VARTXT ;SAVE CURRENT TXTPTR ON READ. OPPTR *=*+PTRSIZ ;POINTER TO CURRENT OP'S ENTRY IN OPTAB. ; OPMASK *=*+1 ;MASK CREATED BY CURRENT OPERATION. @@ -149,8 +149,8 @@ OPMASK *=*+1 ;MASK CREATED BY CURRENT OPERATION. ; TEMPORARY FLOATING RESULT REGISTERS (5BYTES EACH): ; TEMPF1,TEMPF2,TEMPF3 ; -TEMPF3 ;TEMP FLOAT REG -GRBPNT ;POINTER USED IN GARBAGE COLLECTION. +TEMPF3 ;TEMP FLOAT REG +GRBPNT ;POINTER USED IN GARBAGE COLLECTION. DEFPNT *=*+PTRSIZ ;POINTER USED IN FUNCTION DEFINITION. ; DSCPNT *=*+PTRSIZ ;POINTER TO A STRING DESCRIPTOR. @@ -158,24 +158,24 @@ DSCPNT *=*+PTRSIZ ;POINTER TO A STRING DESCRIPTOR. JMPER *=*+2 ;THREE BYTES LONG OLDOV *=*+1 ;THE OLD OVERFLOW. ; -TEMPF1 ;TEMP FLOAT REG -PTARG1=TEMPF1 ;MULTIPLY DEF'D FOR USE BY INSTR$ -PTARG2=TEMPF1+3 -STR1=TEMPF1+6 -STR2=TEMPF1+10 -TMPPOS=TEMPF1+14 -POSITN=TEMPF1+15 -MATCH=TEMPF1+16 +TEMPF1 ;TEMP FLOAT REG +PTARG1 =TEMPF1 ;MULTIPLY DEF'D FOR USE BY INSTR$ +PTARG2 =TEMPF1+3 +STR1 =TEMPF1+6 +STR2 =TEMPF1+10 +TMPPOS =TEMPF1+14 +POSITN =TEMPF1+15 +MATCH =TEMPF1+16 ARYPNT ;POINTER USED IN ARRAY BUILDING. HIGHDS *=*+PTRSIZ ;DESTINATION OF HIGHEST ELEMENT IN BLT. HIGHTR *=*+PTRSIZ ;SOURCE OF HIGHEST ELEMENT TO MOVE. ; -TEMPF2 ;TEMP FLOAT REG (5BYTES) +TEMPF2 ;TEMP FLOAT REG (5BYTES) LOWDS *=*+1 ;LOCATION OF LAST BYTE TRANSFERED (3 BYTES). DECCNT *=*+1 ;NUMBER OF PLACES BEFORE DECIMAL POINT. TENEXP *=*+1 ;BASE TEN EXPONENT ; -GRBTOP ;POINTER USED IN GARBAGE COLLECTION.(3 BYTES) +GRBTOP ;POINTER USED IN GARBAGE COLLECTION.(3 BYTES) LOWTR *=*+1 ;LAST THING TO MOVE IN BLT (3 BYTES). DPTFLG *=*+1 ;HAS A DPT BEEN INPUT EXPSGN *=*+1 ;SIGN OF EXPONENT @@ -187,19 +187,19 @@ FAC FACEXP *=*+1 FACHO *=*+1 ;MOST SIGNIFICANT BYTE OF MANTISSA. FACMOH *=*+1 -INDICE ;USED BY QINT. +INDICE ;USED BY QINT. FACMO *=*+1 FACLO *=*+1 FACSGN *=*+1 -DEGREE ;COUNT USED BY POLYNOMIALS. +DEGREE ;COUNT USED BY POLYNOMIALS. SGNFLG *=*+1 BITS *=*+1 ;CELL FOR SHIFTR TO USE. .SKI 4 ; THE FLOATING ARGUMENT (UNPACKED) -T1=* ;TEMPORARIES --USES FP BUFFER -T2=T1+1 -T3=T1+2 -T4=T1+3 +T1 =* ;TEMPORARIES --USES FP BUFFER +T2 =T1+1 +T3 =T1+2 +T4 =T1+3 ; ARGEXP *=*+1 ARGHO *=*+1 @@ -212,16 +212,16 @@ ARISGN *=*+1 ;A SIGN REFLECTING THE RESULT FACOV *=*+1 ;OVERFLOW BYTE OF THE FAC *=*+1 .SKI 4 -STRNG2 ;-> TO STR OR DESC -POLYPT ;-> TO POLYNOMIAL COEFFICIENTS -CURTOL ;ABSOLUTE LINEAR INDEX IS FORMED HERE +STRNG2 ;-> TO STR OR DESC +POLYPT ;-> TO POLYNOMIAL COEFFICIENTS +CURTOL ;ABSOLUTE LINEAR INDEX IS FORMED HERE FBUFPT *=*+PTRSIZ ;-> INTO FBUFFR USED BY FOUT TXTPTR *=*+PTRSIZ ;POINTER TO CURRENT TERM BUFFPT *=*+PTRSIZ ;^INPUT BUFFER ; -NOZE ;USING'S LEADING ZERO COUNTER +NOZE ;USING'S LEADING ZERO COUNTER PARSTS *=*+1 ;DOS STD PARSER WORD -POINT ;USING'S POINTER TO DECIMAL POINT +POINT ;USING'S POINTER TO DECIMAL POINT PARSTX *=*+1 ;DOS AUX PARSER WORD ; SEEDPT *=*+2 @@ -237,7 +237,7 @@ ERRNUM *=*+1 ; * =$200 FBUFFR -VSPBUF ;BUFFER USED TO INTERFACE WITH VSP +VSPBUF ;BUFFER USED TO INTERFACE WITH VSP *=*+16 ;RESERVE 16 BYTES FOR FILENAME 1 DOSF1L *=*+1 ;DOS FILE NAME 1 LENGTH DOSDS1 *=*+1 ;DOS DISK DRIVE 1 @@ -262,12 +262,12 @@ DOSDID *=*+2 ;DOS DISK IDENTIFIER (2 CHARS) DIDCHK *=*+1 ;DOS DID FLAG ; DOSSTR *=*+1 ;DOS OUTPUT STRING BUFFER -DOSSPC=*-FBUFFR ;SPACED USED BY DOS ROUTINES +DOSSPC =*-FBUFFR ;SPACED USED BY DOS ROUTINES .SKI 4 * =*+46 ; ; -TRMPOS ;CURSOR COLUMN ON CRT +TRMPOS ;CURSOR COLUMN ON CRT ANDMSK *=*+1 ;MASK USED BY WAIT EORMSK *=*+1 ;MASK USED BY WAIT ; @@ -278,7 +278,7 @@ DOMASK TANSGN *=*+1 ;USED IN DETERMINING SIGN OF TAN ; LDAABS *=*+1 ;LDA ABS ROUTINE (SEE INITAT) -TTTEMP ;TEMPORARY STORE +TTTEMP ;TEMPORARY STORE LDAADR *=*+2 ;MODIFIABLE ADDRESS *=*+1 ;RETURN OPCODE .SKI 3 @@ -341,7 +341,7 @@ HIGHST *=*+2 ;MAX OFFSET FOR ANY USER BANK ; ; MSIISM *=*+1 ;USED TO SAVE LENGTH OF STRING TO BE ADDED IN GARB COLLECT -NEWSYS= $FF6C +NEWSYS = $FF6C ; .SKI 4 .END diff --git a/BASIC_CBM2_1983-05-31/butes1 b/BASIC_CBM2_1983-05-31/butes1 index 9f887e2..40b9252 100644 --- a/BASIC_CBM2_1983-05-31/butes1 +++ b/BASIC_CBM2_1983-05-31/butes1 @@ -10,80 +10,80 @@ STXTPT LDA #TXTBNK STA TXTPTR+1 RTS .SKIP 4 -GETNUM JSR GETPIN ;GET POSITIVE INTEGER -COMBYT JSR CHKCOM - JMP GETBYT -; -GTBYTC JSR CHRGET -GETBYT JSR FRMNUM -CONINT JSR POSINT - LDX FACMO - BNE FCER1 - LDX FACLO - JMP CHRGOT +GETNUM JSR GETPIN ;GET POSITIVE INTEGER +COMBYT JSR CHKCOM + JMP GETBYT +; +GTBYTC JSR CHRGET +GETBYT JSR FRMNUM +CONINT JSR POSINT + LDX FACMO + BNE FCER1 + LDX FACLO + JMP CHRGOT .SKIP 4 -GETPIN JSR FRMNUM ;EVALUATE THE FORMULA -GETADR LDA FACSGN - BMI FCER1 - LDA FACEXP - CMP #145 - BCS FCER1 - JSR QINT - LDA FACMO - LDY FACMO+1 - STY POKER - STA POKER+1 +GETPIN JSR FRMNUM ;EVALUATE THE FORMULA +GETADR LDA FACSGN + BMI FCER1 + LDA FACEXP + CMP #145 + BCS FCER1 + JSR QINT + LDA FACMO + LDY FACMO+1 + STY POKER + STA POKER+1 RTS ; -BJMPS ;REFERENCED IN INITIALIZATION ROUTINE -FCER1 JMP FCERR +BJMPS ;REFERENCED IN INITIALIZATION ROUTINE +FCER1 JMP FCERR .SKIP 4 ; THESE ROUTINES CHECK FOR CERTAIN 'VALTYP' ; (C) IS NOT PRESERVED. -FRMNUM JSR FRMEVL +FRMNUM JSR FRMEVL CHKNUM CLC .BYTE $24 CHKSTR SEC -CHKVAL BIT VALTYP - BMI DOCSTR - BCS CHKERR +CHKVAL BIT VALTYP + BMI DOCSTR + BCS CHKERR CHKOK RTS ; -DOCSTR BCS CHKOK -CHKERR LDX #ERRTM - JMP ERROR +DOCSTR BCS CHKOK +CHKERR LDX #ERRTM + JMP ERROR .SKIP 4 ; ; PRINT THE STR WHOSE DESCRIPTOR IS -> BY FACMO STRPRT - JSR FREFAC ;RETURN TEMP -> + JSR FREFAC ;RETURN TEMP -> TAX ;PUT COUNT INTO COUNTER - LDY #0 + LDY #0 INX - JSR MAPINX + JSR MAPINX ; ; OUTPUT X CHARACTERS TO DEVICE STRP2 DEX - BEQ STRP3 + BEQ STRP3 LDA (INDEX)Y - JSR OCHR ;OUTPUT ONE CHAR + JSR OCHR ;OUTPUT ONE CHAR INY - JMP STRP2 ;NEXT -STRP3 JMP MAPTXT + JMP STRP2 ;NEXT +STRP3 JMP MAPTXT ; ; OUTPUT SPACE OSPC - LDA CHANNL - BEQ CRTSKP - LDA #' ' + LDA CHANNL + BEQ CRTSKP + LDA #' ' .BYTE $2C ;EAT NEXT TWO BYTES -CRTSKP LDA #29 +CRTSKP LDA #29 .BYTE $2C ;EAT NEXT TWO BYTES -OUTQST LDA #'?' +OUTQST LDA #'?' ; ; OUTPUT ONE CHARACTER TO DEVICE -OCHR JSR BSOUT ;OUTPUT CHARACTER - AND #$FF +OCHR JSR BSOUT ;OUTPUT CHARACTER + AND #$FF RTS .PAGE 'DOS UTILITY ROUTINES.' ; -MGM 7/23/79- @@ -179,366 +179,366 @@ OCHR JSR BSOUT ;OUTPUT CHARACTER DOSTBL .BYTE $FF,$FF,$FF,$FF,DOSLFN,DOSDSK,$6F .SKIP 2 DOSPAR - LDA #0 + LDA #0 ; -DOSPRS ;SPECIAL ERROR FLAG ENTRY - LDX #$FF ;NO AUX OPTIONS! -DOSPRX ;SPEC AUX ERROR FLAG ENTRY +DOSPRS ;SPECIAL ERROR FLAG ENTRY + LDX #$FF ;NO AUX OPTIONS! +DOSPRX ;SPEC AUX ERROR FLAG ENTRY PHA ;SAVE ERROR FLAGS TXA PHA - LDA #0 - STA PARSTS - STA PARSTX + LDA #0 + STA PARSTS + STA PARSTX .SKI 1 - LDX #DOSSPC-1 ;CLEAR DOS SCRATCH AREA -DOS01 STA FBUFFR,X + LDX #DOSSPC-1 ;CLEAR DOS SCRATCH AREA +DOS01 STA FBUFFR,X DEX - BNE DOS01 - LDX #DOSSA-DOSOFL ;SET SOME DEFAULTS FROM TABLE -DOS02 LDA DOSTBL,X - STA DOSOFL,X + BNE DOS01 + LDX #DOSSA-DOSOFL ;SET SOME DEFAULTS FROM TABLE +DOS02 LDA DOSTBL,X + STA DOSOFL,X DEX - BPL DOS02 - LDX DFBANK - STX DOSBNK + BPL DOS02 + LDX DFBANK + STX DOSBNK ; - JSR CHRGOT ;GET CURRENT CHR - BNE PARSE1 ;IF NOT END OF STATEMENT + JSR CHRGOT ;GET CURRENT CHR + BNE PARSE1 ;IF NOT END OF STATEMENT ; DONE PLA ;GET AUX ERROR FLAG - AND PARSTX ; REPEATED,ILLEGAL PARAMS? - BNE DN20 + AND PARSTX ; REPEATED,ILLEGAL PARAMS? + BNE DN20 PLA ;GET ERROR FLAGS - JSR PRMRPT - LDA PARSTS - LDX PARSTX + JSR PRMRPT + LDA PARSTS + LDX PARSTX RTS ; -PARSE1 CMP #'#' - BEQ LOGADR ;IF LOGICAL FILE NUMBER - CMP #'W' - BEQ RECLEN ;IF RECORD LENGTH - CMP #'L' - BEQ RECLEN ;IF RECORD LENGTH - CMP #'R' - BNE DOS5 ;IF NOT ???? - JSR CHRGET ;MOVE ON - JMP DELIM1 -; -ON1 JSR ON -SAV60 JMP DEL1 -; -UNIT1 JSR UNIT ;DO UNIT# PARSING - BNE SAV60 ;ALWAYS -; -BANK1 JSR BANK - BEQ SAV60 ;ALWAYS +PARSE1 CMP #'#' + BEQ LOGADR ;IF LOGICAL FILE NUMBER + CMP #'W' + BEQ RECLEN ;IF RECORD LENGTH + CMP #'L' + BEQ RECLEN ;IF RECORD LENGTH + CMP #'R' + BNE DOS5 ;IF NOT ???? + JSR CHRGET ;MOVE ON + JMP DELIM1 +; +ON1 JSR ON +SAV60 JMP DEL1 +; +UNIT1 JSR UNIT ;DO UNIT# PARSING + BNE SAV60 ;ALWAYS +; +BANK1 JSR BANK + BEQ SAV60 ;ALWAYS .SKIP 4 -DOS5 CMP #'D' - BEQ DRV1 - CMP #TKON ;"ON" TOKEN - BEQ ON1 - CMP #'B' - BEQ BANK1 - CMP #'U' - BEQ UNIT1 - CMP #'P' - BEQ DOFFL - CMP #'I' - BNE DOS10 ;IF NOT IDENTIFIER - BEQ IDENT +DOS5 CMP #'D' + BEQ DRV1 + CMP #TKON ;"ON" TOKEN + BEQ ON1 + CMP #'B' + BEQ BANK1 + CMP #'U' + BEQ UNIT1 + CMP #'P' + BEQ DOFFL + CMP #'I' + BNE DOS10 ;IF NOT IDENTIFIER + BEQ IDENT ; .SKIP 4 LOGADR - LDA #4 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #0 - BEQ QTYER2 ;IF ILLEGAL VALUE - STX DOSLA - LDA #4 ;SET LOGICAL ADDRESS FLAG - BNE SAV60 ;GET NEXT PARAMETER -DN20 JMP SNERR + LDA #4 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #0 + BEQ QTYER2 ;IF ILLEGAL VALUE + STX DOSLA + LDA #4 ;SET LOGICAL ADDRESS FLAG + BNE SAV60 ;GET NEXT PARAMETER +DN20 JMP SNERR .SKIP 4 RECLEN TAX ;SAVE CHAR - LDA #$40 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - CPX #'W' - BNE RECOO - JSR CHRGET - JMP RECON ;SET PARSTS -RECOO JSR GETVAL - CPX #0 - BEQ QTYER2 ;ZERO ILLEGAL DOSRCL - CPX #255 - BEQ QTYER2 ;ILLEGAL DOSRCL - STX DOSRCL ;STORE PARCEL + LDA #$40 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + CPX #'W' + BNE RECOO + JSR CHRGET + JMP RECON ;SET PARSTS +RECOO JSR GETVAL + CPX #0 + BEQ QTYER2 ;ZERO ILLEGAL DOSRCL + CPX #255 + BEQ QTYER2 ;ILLEGAL DOSRCL + STX DOSRCL ;STORE PARCEL ; RECON - LDA #$40 ;SET DOSRCL FLAG & - BNE TACKY1 + LDA #$40 ;SET DOSRCL FLAG & + BNE TACKY1 ; -DOS10 CMP #'"' - BEQ NAME1 - CMP #'(' - BEQ NAME1 - BNE DN20 +DOS10 CMP #'"' + BEQ NAME1 + CMP #'(' + BEQ NAME1 + BNE DN20 ; .SKIP 4 DRV1 - LDA #$10 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #2 - BCS QTYER2 ;ILLEGAL DRV# IF >1 - STX DOSDS1 - STX DOSDS2 - LDA #$10 -TACKY1 BNE DEL1 -; -QTYER2 JMP QTYERR + LDA #$10 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #2 + BCS QTYER2 ;ILLEGAL DRV# IF >1 + STX DOSDS1 + STX DOSDS2 + LDA #$10 +TACKY1 BNE DEL1 +; +QTYER2 JMP QTYERR .SKIP 4 -IDENT LDA DIDCHK - BEQ IDCON ;ONLY 1 DOSDID ALLOWED - BNE DN20 -; -DOFFL LDA #$02 ;CHK AUX STATUS - JSR PRXRPT - JSR GETOFF ;GET OFFSET VALUE - STY DOSOFL - STA DOSOFL+1 - LDA #$02 +IDENT LDA DIDCHK + BEQ IDCON ;ONLY 1 DOSDID ALLOWED + BNE DN20 +; +DOFFL LDA #$02 ;CHK AUX STATUS + JSR PRXRPT + JSR GETOFF ;GET OFFSET VALUE + STY DOSOFL + STA DOSOFL+1 + LDA #$02 DLIMX1 ORA PARSTX ;SET AUX STATUS BITS - STA PARSTX - BNE DELIM1 ;TRY FOR NXT PARAM + STA PARSTX + BNE DELIM1 ;TRY FOR NXT PARAM ; -DOFFH LDA #$04 - JSR PRXRPT - JSR GETOFF - STY DOSOFH - STA DOSOFH+1 - LDA #$04 - BNE DLIMX1 ;SET AUX STATUS +DOFFH LDA #$04 + JSR PRXRPT + JSR GETOFF + STY DOSOFH + STA DOSOFH+1 + LDA #$04 + BNE DLIMX1 ;SET AUX STATUS ; IDCON - JSR CHRGET ;GET NEXT CHARACTER - STA DOSDID ;M(TXTPTR => DOSDID - JSR CHRGET - STA DOSDID+1 - LDA #$FF - STA DIDCHK ;SET DOSDID FLAG & - JSR CHRGET ;CONTINUE - JMP DELIM1 + JSR CHRGET ;GET NEXT CHARACTER + STA DOSDID ;M(TXTPTR => DOSDID + JSR CHRGET + STA DOSDID+1 + LDA #$FF + STA DIDCHK ;SET DOSDID FLAG & + JSR CHRGET ;CONTINUE + JMP DELIM1 .SKIP 4 NAME1 - LDA #1 ;NAME1 ALLWD ONLY ONCE - JSR NEWNAM ;DO NAME PARSING - STA DOSF1L - STA XCNT ;SAVE TEMP VALUE - LDA #FBUFFR - STA DOSF1A+1 - LDA #SYSBNK ; SET TO SYSTEM BANK - STA DOSF1B -; - LDY #0 - JSR MAPINX + LDA #1 ;NAME1 ALLWD ONLY ONCE + JSR NEWNAM ;DO NAME PARSING + STA DOSF1L + STA XCNT ;SAVE TEMP VALUE + LDA #FBUFFR + STA DOSF1A+1 + LDA #SYSBNK ; SET TO SYSTEM BANK + STA DOSF1B +; + LDY #0 + JSR MAPINX LOOP6 LDA (INDEX)Y - STA FBUFFR,Y ; SET CHAR IN BUFFER + STA FBUFFR,Y ; SET CHAR IN BUFFER INY - CPY XCNT - BCC LOOP6 ;IF NOT FULL NAME - JSR MAPTXT - LDA #1 ;SET NAME1 FLAG + CPY XCNT + BCC LOOP6 ;IF NOT FULL NAME + JSR MAPTXT + LDA #1 ;SET NAME1 FLAG ; DEL1 - ORA PARSTS - STA PARSTS + ORA PARSTS + STA PARSTS ; DELIM1 - JSR CHRGOT - BNE NXXX -DONE1 JMP DONE ;/<> => DONE + JSR CHRGOT + BNE NXXX +DONE1 JMP DONE ;/<> => DONE ; -NEXT6 CMP #TKON - BNE NEXT6A - JMP ON1 -NEXT6A CMP #TKTO ;"TO" TOKEN - BEQ NEXT6B - BNE SAV61 ;SNTAX ERROR +NEXT6 CMP #TKON + BNE NEXT6A + JMP ON1 +NEXT6A CMP #TKTO ;"TO" TOKEN + BEQ NEXT6B + BNE SAV61 ;SNTAX ERROR ; ; IF "TO" IS NOT FOLLOWED BY AN OFFSET PARAM, ; THEN DO FILE2 PARAMS. OTHERWISE, DO HIGH ; OFFSET AND CONTINUE WITH FILE0 OPTIONS. -NEXT6B JSR CHRGET - CMP #'P' - BNE PARS22 - BEQ DOFFH -; -NXXX CMP #',' - BNE NEXT6 - JSR CHRGET - JMP PARSE1 -; -PARSE2 JSR CHRGET -PARS22 CMP #'D' - BEQ DRV2 - CMP #TKON ;"ON" TOKEN - BEQ ON2 - CMP #'U' - BEQ UNIT2 - CMP #'"' - BEQ NAME2 - CMP #'(' - BEQ NAME2 +NEXT6B JSR CHRGET + CMP #'P' + BNE PARS22 + BEQ DOFFH +; +NXXX CMP #',' + BNE NEXT6 + JSR CHRGET + JMP PARSE1 +; +PARSE2 JSR CHRGET +PARS22 CMP #'D' + BEQ DRV2 + CMP #TKON ;"ON" TOKEN + BEQ ON2 + CMP #'U' + BEQ UNIT2 + CMP #'"' + BEQ NAME2 + CMP #'(' + BEQ NAME2 ; DRV2 - LDA #$20 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #2 - BCS QTYERR ;ILLEGAL DRIVE # - STX DOSDS2 - LDA #$20 - BNE DEL2 + LDA #$20 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #2 + BCS QTYERR ;ILLEGAL DRIVE # + STX DOSDS2 + LDA #$20 + BNE DEL2 ; -ON2 JSR ON - JMP DEL2 +ON2 JSR ON + JMP DEL2 ; -UNIT2 JSR UNIT ;DO UNIT# PARSING - BNE DEL2 ;ALWAYS +UNIT2 JSR UNIT ;DO UNIT# PARSING + BNE DEL2 ;ALWAYS ; NAME2 - LDA #2 ;NAME2 ALLOWED ONLY ONCE - JSR NEWNAM - STA DOSF2L - STX DOSF2A - STY DOSF2A+1 - LDA INDEX1+2 ; GET STRNG BANK# - STA DOSF2B - LDA #2 ;SET FILENAME2 FLAG & + LDA #2 ;NAME2 ALLOWED ONLY ONCE + JSR NEWNAM + STA DOSF2L + STX DOSF2A + STY DOSF2A+1 + LDA INDEX1+2 ; GET STRNG BANK# + STA DOSF2B + LDA #2 ;SET FILENAME2 FLAG & ; DEL2 - ORA PARSTS ;SET FLAG IN STATUS - STA PARSTS - JSR CHRGOT - BEQ DONE1 ;DONE ON /<> - CMP #',' - BEQ PARSE2 - CMP #TKON ;"ON" TOKEN - BEQ ON2 - CMP #'U' - BEQ UNIT2 + ORA PARSTS ;SET FLAG IN STATUS + STA PARSTS + JSR CHRGOT + BEQ DONE1 ;DONE ON /<> + CMP #',' + BEQ PARSE2 + CMP #TKON ;"ON" TOKEN + BEQ ON2 + CMP #'U' + BEQ UNIT2 SAV61 - BNE SNER + BNE SNER .SKIP 4 QTYERR - JMP FCERR ;"ILLEGAL QUANTITY" + JMP FCERR ;"ILLEGAL QUANTITY" ; -ON JSR CHRGET - CMP #'U' - BEQ UNIT ;IF CHARACTER IS A "U" - CMP #'B' - BEQ BANK - BNE SNER +ON JSR CHRGET + CMP #'U' + BEQ UNIT ;IF CHARACTER IS A "U" + CMP #'B' + BEQ BANK + BNE SNER ; UNIT - JSR GETVAL - CPX #32 - BCS QTYERR ;ERROR IF >31 - CPX #3 - BCC QTYERR ;ERROR IF <3 - STX DOSFA - LDA #8 + JSR GETVAL + CPX #32 + BCS QTYERR ;ERROR IF >31 + CPX #3 + BCC QTYERR ;ERROR IF <3 + STX DOSFA + LDA #8 RTS ; BANK - LDA #$01 ;REPEATED PARAM? - JSR PRXRPT - JSR GETVAL - CPX #MXBANK ;BANK TOO LARGE? - BCS QTYERR - STX DOSBNK - LDA #$01 - ORA PARSTX ;SET BNK BIT IN AUX STATUS - STA PARSTX - LDA #0 ; .A=STD STATUS WRD, NO BITS TO SET + LDA #$01 ;REPEATED PARAM? + JSR PRXRPT + JSR GETVAL + CPX #MXBANK ;BANK TOO LARGE? + BCS QTYERR + STX DOSBNK + LDA #$01 + ORA PARSTX ;SET BNK BIT IN AUX STATUS + STA PARSTX + LDA #0 ; .A=STD STATUS WRD, NO BITS TO SET RTS ; -SNER JMP SNERR ;JUMP SYSTAN ERROR +SNER JMP SNERR ;JUMP SYSTAN ERROR ; NEWNAM - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR SAV13 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR SAV13 TAX ;SAVE LENGTH OF STRING - BEQ QTYERR ;IF LENGTH = 0 - LDY #0 - JSR SAV12 - CMP #'@' - BNE LENCHK - LDA #$80 - JSR PRMRPT - LDA PARSTS - ORA #$80 ;SET "@" FLAG - STA PARSTS + BEQ QTYERR ;IF LENGTH = 0 + LDY #0 + JSR SAV12 + CMP #'@' + BNE LENCHK + LDA #$80 + JSR PRMRPT + LDA PARSTS + ORA #$80 ;SET "@" FLAG + STA PARSTS DEX ;DECREMENT LENGTH - INC INDEX1 ;INCREMENT PAST "@" - BNE LENCHK ;IF NO CARRY - INC INDEX1+1 + INC INDEX1 ;INCREMENT PAST "@" + BNE LENCHK ;IF NO CARRY + INC INDEX1+1 ; LENCHK TXA - CMP #17 - BCS ERRLEN ;IF LENGTH < 17 - LDX INDEX1 - LDY INDEX1+1 + CMP #17 + BCS ERRLEN ;IF LENGTH < 17 + LDX INDEX1 + LDY INDEX1+1 RTS ; -ERRLEN LDX #ERRLS - JMP ERROR ;FILENAME TOO LONG +ERRLEN LDX #ERRLS + JMP ERROR ;FILENAME TOO LONG .SKIP 4 -GETVAL ;GET NEXTVALUE ROUTINE - JSR CHRGET ;GET NXT CHR -GTVL2 BEQ SNER ;IF END OF STATEMENT - BCC GTVL5 ;CAN BE NUMERIC - JSR CHKOPN ;OR A "(" - JSR GETBYT ;ANYTHING ELSE IS AN ERROR - JMP CHKCLS ;NEED CLOSING ")" +GETVAL ;GET NEXTVALUE ROUTINE + JSR CHRGET ;GET NXT CHR +GTVL2 BEQ SNER ;IF END OF STATEMENT + BCC GTVL5 ;CAN BE NUMERIC + JSR CHKOPN ;OR A "(" + JSR GETBYT ;ANYTHING ELSE IS AN ERROR + JMP CHKCLS ;NEED CLOSING ")" ; -GTVL5 JMP GETBYT ;EVALUATE IT +GTVL5 JMP GETBYT ;EVALUATE IT ; ; GET NEXT 2BYTE EXPR ROUTINE ; EXIT: .A,.Y (HIGH,LOW) VALUE ; -GETOFF JSR CHRGET ;GET NXT CHR - BEQ SNER ;IF END OF STATEMENT - BCC GTFF5 ;CAN BE NUM. CONST - JSR CHKOPN ;OR A "(" - JSR GETPIN ;EXPR - JSR CHKCLS ;NEED CLOSING ")" - LDY POKER - LDA POKER+1 +GETOFF JSR CHRGET ;GET NXT CHR + BEQ SNER ;IF END OF STATEMENT + BCC GTFF5 ;CAN BE NUM. CONST + JSR CHKOPN ;OR A "(" + JSR GETPIN ;EXPR + JSR CHKCLS ;NEED CLOSING ")" + LDY POKER + LDA POKER+1 RTS ; -GTFF5 JMP GETPIN ;EVALUATE IT +GTFF5 JMP GETPIN ;EVALUATE IT .SKIP 4 ; PRMRPT CHECKS FOR A REPEATED PARAMETER. ; ; ENTRY A CONTAINS PARSTS FLAG TO CHECK. PRMRPT - AND PARSTS ;AND WITH PARSTS - BNE SNER ;IF BIT PREVIOUSLY SET + AND PARSTS ;AND WITH PARSTS + BNE SNER ;IF BIT PREVIOUSLY SET RTS ; ; PRXRPT CHECKS FOR A REPEATED PARAMETER. ; ; ENTRY A CONTAINS PARSTX FLAG TO CHECK. PRXRPT - AND PARSTX ;AND WITH PARSTX - BNE SNER ;IF BIT PREVIOUSLY SET + AND PARSTX ;AND WITH PARSTX + BNE SNER ;IF BIT PREVIOUSLY SET RTS .END diff --git a/BASIC_CBM2_1983-05-31/butes2 b/BASIC_CBM2_1983-05-31/butes2 index 7ec00ce..5df5ed6 100644 --- a/BASIC_CBM2_1983-05-31/butes2 +++ b/BASIC_CBM2_1983-05-31/butes2 @@ -43,7 +43,7 @@ XFN2 =$F2 ;SENDS FILENAME2 ; ; TABLD - TOKEN TABLE DEFINITIONS ; -TABLD ;USED TO BUILD DISK COMMAND STRINGS +TABLD ;USED TO BUILD DISK COMMAND STRINGS FCLR =*-TABLD FCLRM1 =FCLR-1 .BYT 'I',XD1 @@ -83,9 +83,9 @@ FREC =*-TABLD ; ; ENTRY A NUMBER OF BYTES IN FORMAT. ; Y --> TABLD ENTRY. -SAV20 JSR CHK2 - LDY #TOPN ;TABLE OFFSET -SAV21 LDA #4 ;LENGTH +SAV20 JSR CHK2 + LDY #TOPN ;TABLE OFFSET +SAV21 LDA #4 ;LENGTH SENDP STA XCNT ;SAVE NUMBER OF STRING BYTES LDA TABFCB,Y ;GET POINTER INTO TABLD @@ -432,7 +432,7 @@ FLPINT CHRGET JMP (ICHRGE) CHRGOT JMP (ICHRGO) .SKI 2 - .IFN CC1 < +.IFN CC1 < NCHRGE INC TXTPTR ;INCREMENT TEXT POINTER BNE NCHRGO ;IF NO CARRY INTO MSB @@ -454,7 +454,7 @@ QNUM SBC #$D0 ;$100-'0' QNRTS RTS > - .IFE CC1 < +.IFE CC1 < NCHRGO JSR CHRMAP JMP CHRG20 NCHRGE diff --git a/BASIC_CBM2_1983-05-31/bverbs1 b/BASIC_CBM2_1983-05-31/bverbs1 index 6828f99..d59adb7 100644 --- a/BASIC_CBM2_1983-05-31/bverbs1 +++ b/BASIC_CBM2_1983-05-31/bverbs1 @@ -107,13 +107,13 @@ SCRTCH LDA #0 CLC LDA TXTTAB ADC #2 - .IFN CC1 < +.IFN CC1 < STA VARTAB LDA TXTTAB+1 ADC #0 STA VARTAB+1 > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < STA TXTEND LDA TXTTAB+1 ADC #0 @@ -145,19 +145,19 @@ CLRPU LDA PUDEFS,X JSR CLALL LDA VARTAB LDY VARTAB+1 - .IFN CC4 < +.IFN CC4 < STA VAREND ;ONLY 256K STY VAREND+1 > - .IFN CC1+CC2+CC3 < +.IFN CC1+CC2+CC3 < STA STREND ;EXCEPT 256K STY STREND+1 > - .IFN CC1+CC2 < +.IFN CC1+CC2 < STA ARYTAB ;ONLY 64K,128K STY ARYTAB+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYTAB ;ONLY 192K,256K LDY ARYTAB+1 STA ARYEND @@ -169,7 +169,7 @@ FLOAD JSR RESTO1 ; RESET STK, CLEAR OLTXT AND CURRENT CHANNEL STKINI LDX #0 STX TEMPPT - PLA + PLA TAY PLA ;GET CALLERS ADDRESS LDX #$FE ;RESET STACK (LEAVE $01FF FREE) @@ -319,19 +319,19 @@ LOOPDN TXA ;CY=1 JMP FRMNUM .PAG RESTOR BEQ RESTO1 ;NO ARGUMENT..SET POINTER TO START OF TEXT - JSR GETPIN ;GET LINE # - STY LINNUM ;STORE < OF ARG - STA LINNUM+1 ;STORE > OF ARG - JSR MAPTXT - JSR FNDLIN ;POINT TO LINK OF ARG. LINE # - BCC RESERR ;LINE NOT FOUND - LDA LOWTR ;FNDLIN'S RESULT - SBC #1 - STA DATPTR - LDA LOWTR+1 - SBC #0 - STA DATPTR+1 - RTS + JSR GETPIN ;GET LINE # + STY LINNUM ;STORE < OF ARG + STA LINNUM+1 ;STORE > OF ARG + JSR MAPTXT + JSR FNDLIN ;POINT TO LINK OF ARG. LINE # + BCC RESERR ;LINE NOT FOUND + LDA LOWTR ;FNDLIN'S RESULT + SBC #1 + STA DATPTR + LDA LOWTR+1 + SBC #0 + STA DATPTR+1 + RTS RESTO1 SEC LDA TXTTAB SBC #1 @@ -351,16 +351,16 @@ STPZ2 BNE CONTX ; HERE IF STOP KEY DEPRESSED WHILE RUNNING ; ENTER: CY=0 => NO BREAK MESSAGE DESIRED STOPC PHP ;ENTERED FROM LIST OR NEWSTT - LDY TRAPNO+1 ;TEST IF ERROR TRAPPING ON - INY - BEQ SA ;BRANCH IF NOT + LDY TRAPNO+1 ;TEST IF ERROR TRAPPING ON + INY + BEQ SA ;BRANCH IF NOT UNSTOP - JSR KSTOP ;DON'T GO ON TILL STOP KEY NO LONGER DEPRESSED - BEQ UNSTOP - LDX #$1C ;OTHERWISE LOAD 'BREAK' ERROR NUMBER - JMP ERROR ;AND ERROR ROUTINE WILL GOTO ERROR TRAPPING + JSR KSTOP ;DON'T GO ON TILL STOP KEY NO LONGER DEPRESSED + BEQ UNSTOP + LDX #$1C ;OTHERWISE LOAD 'BREAK' ERROR NUMBER + JMP ERROR ;AND ERROR ROUTINE WILL GOTO ERROR TRAPPING SA PLP - PHA + PHA PHA ;....PUSH DUMMY RETURN TO BE DISCARDED STOPD PHP ; SAVE CY FLAG JSR TSTDIR ;IN DIRECT MODE? @@ -476,7 +476,7 @@ GO JSR CHRGOT ; PROCESS GOTO VERB GOTO JSR LINGET -GOTO0 ;ALWAYS GOTO0=GOTO+3 +GOTO0 ;ALWAYS GOTO0=GOTO+3 JSR REMN GOTO1 SEC LDA CURLIN @@ -501,7 +501,7 @@ LUKALL JSR FNDLNC LDA LOWTR+1 SBC #0 STA TXTPTR+1 - JMP RUNMOD ;PUT INTO RUN MODE + JMP RUNMOD ;PUT INTO RUN MODE .SKIP ; PROCESS RETURN VERB RETURN BNE ADDRTS @@ -559,14 +559,14 @@ REMER LDA TXTPTR+2 REMTXT JMP MAPTXT .SKI 4 TRAP JSR ERRDIR ;NO DIRECT MODE ALLOWED - JSR CHRGOT ;LOOK FOR ARGUMENT - BEQ TRAP1 ;NULL MEANS NO ARG. - JSR GETPIN ;GET WHAT SHOULD BE A LINE NUMBER - STY TRAPNO ;LO BYTE OF ARGUMENT + JSR CHRGOT ;LOOK FOR ARGUMENT + BEQ TRAP1 ;NULL MEANS NO ARG. + JSR GETPIN ;GET WHAT SHOULD BE A LINE NUMBER + STY TRAPNO ;LO BYTE OF ARGUMENT .BYT $2C ;EAT 2 TRAP1 LDA #$FF ;FLAG NO TRAP - STA TRAPNO+1 - RTS + STA TRAPNO+1 + RTS .SKI 4 ONGOTO JSR GETBYT PHA @@ -652,96 +652,96 @@ COPSTR PLA JMP INPCOM ; RESUME JSR ERRDIR ;NO DIRECT MODE - LDX ERRLIN+1 ;IS THERE AN ERROR TO RESUME FRON? - INX - BEQ RESCNT ;CAN'T RESUME! - JSR CHRGOT ;LOOK FOR ARGUMENTS - BEQ RESSWP ;NO ARG'S...RESTART ERR'D LINE - BCC RESNUM ;NUMERIC ARGUMENT - CMP #TKNEXT ;ONLY OTHER CHOICE IS 'NEXT' + LDX ERRLIN+1 ;IS THERE AN ERROR TO RESUME FRON? + INX + BEQ RESCNT ;CAN'T RESUME! + JSR CHRGOT ;LOOK FOR ARGUMENTS + BEQ RESSWP ;NO ARG'S...RESTART ERR'D LINE + BCC RESNUM ;NUMERIC ARGUMENT + CMP #TKNEXT ;ONLY OTHER CHOICE IS 'NEXT' GOOOS - BNE RESSNR ;IF NOT, SYNTAX ERROR -; - JSR RESSWP ;RESUME EXECUTION WITH NEXT STM'T - JSR MAPTXT - LDY #0 - LDA (TXTPTR)Y - BNE RESUM2 ;MUST BE A ':' - INY ;MUST BE A NULL,GET NEXT LINE - JSR SAV42 - JSR ADDON + BNE RESSNR ;IF NOT, SYNTAX ERROR +; + JSR RESSWP ;RESUME EXECUTION WITH NEXT STM'T + JSR MAPTXT + LDY #0 + LDA (TXTPTR)Y + BNE RESUM2 ;MUST BE A ':' + INY ;MUST BE A NULL,GET NEXT LINE + JSR SAV42 + JSR ADDON RESUM2 JSR CHRGET ;SKIP OVER THIS CHARACTER, INTO BODY OF STATEMENT - JMP DATA ;ADVANCE UNTIL NULL OR ':', THEN RTS + JMP DATA ;ADVANCE UNTIL NULL OR ':', THEN RTS ; RESNUM JSR GETPIN ;GET ADDRESS - STA LINNUM+1 - JSR RESEND - JSR MAPTXT - JMP LUK4IT + STA LINNUM+1 + JSR RESEND + JSR MAPTXT + JMP LUK4IT ; RESSWP LDX #1 RESUM0 LDA ERRLIN,X - STA CURLIN,X - LDA ERRTXT,X - STA TXTPTR,X - DEX - BPL RESUM0 + STA CURLIN,X + LDA ERRTXT,X + STA TXTPTR,X + DEX + BPL RESUM0 RESEND LDX #$FF - STX XCNT - STX ERRLIN - STX ERRLIN+1 ;FLAG 'NO FURTHER RESUMES UNTIL NEXT ERROR' - LDX TMPTRP ;RESTORE TRAP LINE TO ALLOW TRAPS AGAIN - STX TRAPNO+1 - RTS + STX XCNT + STX ERRLIN + STX ERRLIN+1 ;FLAG 'NO FURTHER RESUMES UNTIL NEXT ERROR' + LDX TMPTRP ;RESTORE TRAP LINE TO ALLOW TRAPS AGAIN + STX TRAPNO+1 + RTS ; RESCNT LDX #ERRCR - JMP ERROR + JMP ERROR .PAG 'DISPOSE' DISPOS CMP #TKFOR - BEQ DISPO0 - CMP #TKGOSU - BNE GOOOS ;NOT NEXT OR GOSUB IS SYNTAX ERROR + BEQ DISPO0 + CMP #TKGOSU + BNE GOOOS ;NOT NEXT OR GOSUB IS SYNTAX ERROR DISPO0 STA OLDTOK - JSR ERRDIR - TSX - INX - INX ;LOOK PAST RETURN TO NEWSTT - TXA - TAY + JSR ERRDIR + TSX + INX + INX ;LOOK PAST RETURN TO NEWSTT + TXA + TAY DISPO1 TYA ;Y==>X - TAX - CPY #$FF ;STACK EMPTY? - BEQ DISERR ;YES... - LDA 257,X - CMP #TKFOR - BNE DISPO2 - TXA ;STACK ENTRY IS A FOR LOOP, 19 BYTES. - ADC #18 ;+ 1 IN CARRY - JMP DISPO3 + TAX + CPY #$FF ;STACK EMPTY? + BEQ DISERR ;YES... + LDA 257,X + CMP #TKFOR + BNE DISPO2 + TXA ;STACK ENTRY IS A FOR LOOP, 19 BYTES. + ADC #18 ;+ 1 IN CARRY + JMP DISPO3 DISPO2 - TXA ;STACK ENTRY IS GOSUB, 5 BYTES. - CLC - ADC #7 + TXA ;STACK ENTRY IS GOSUB, 5 BYTES. + CLC + ADC #7 DISPO3 - BCS DISERR ;STACK UNDERFLOW... - TAY - LDA 257,X - CMP OLDTOK - BNE DISPO1 ;KEEP LOOKING - BEQ DISPO5 + BCS DISERR ;STACK UNDERFLOW... + TAY + LDA 257,X + CMP OLDTOK + BNE DISPO1 ;KEEP LOOKING + BEQ DISPO5 DISPO4 LDX DSPTMP DISPO5 LDA 256,X ;SHIFT STACK DOWN - STA 256,Y - DEY - DEX - STX DSPTMP ;DONE WHEN X=S - TSX - CPX DSPTMP - BNE DISPO4 - TYA ;S <== Y - TAX - TXS - JMP CHRGET ;ADVANCE PAST MODIFIER, DO RTS + STA 256,Y + DEY + DEX + STX DSPTMP ;DONE WHEN X=S + TSX + CPX DSPTMP + BNE DISPO4 + TYA ;S <== Y + TAX + TXS + JMP CHRGET ;ADVANCE PAST MODIFIER, DO RTS DISERR LDX #ERRDI - JMP ERROR + JMP ERROR .END diff --git a/BASIC_CBM2_1983-05-31/bverbs2 b/BASIC_CBM2_1983-05-31/bverbs2 index 8c8a671..88c58f7 100644 --- a/BASIC_CBM2_1983-05-31/bverbs2 +++ b/BASIC_CBM2_1983-05-31/bverbs2 @@ -22,7 +22,7 @@ NEWCHR JSR CHRGOT ;REGET LAST CHAR ; ; PROCESS PRINT VERB PRINT BEQ OCRLF ;TERMINATOR SO TYPE CR/LF - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < CMP #TKUSIN BNE PRINTC JMP USING ;IF USING @@ -30,7 +30,7 @@ PRINT BEQ OCRLF ;TERMINATOR SO TYPE CR/LF ; ; HERE AFTER SEEING TAB(X) OR , OR ; ; IN WHICH ASE A TERMIATOR DOES NOT -; MEAN TYPE A CR/LF BUT JUST RTS. +; MEAN TYPE A CR/LF BUT JUST RTS. PRINTC BEQ OCRLFX CMP #TKTAB BEQ TABER ;IF TAB FUNCTION @@ -348,9 +348,9 @@ TRMOK LDA TXTPTR TRMNOK LDA INPFLG BEQ TRMNO1 ;IF INPUT TRY AGAIN BPL SNERR6 ;GET STMT, ISSUE SYNTAX ERR -;;BMI GETDTL -;;LDY #255 ;MAKE IT LOOK DIRECT -;;BNE STCURL ;ALWAYS GOES +;; BMI GETDTL +;; LDY #255 ;MAKE IT LOOK DIRECT +;; BNE STCURL ;ALWAYS GOES GETDTL LDA DATLIN ;GET DATA LINE NUMBER LDY DATLIN+1 STCURL STA CURLIN ;MAKE IT CURRENT LINE @@ -497,14 +497,14 @@ KEY40 CMP #21 LDA # - .IFE CC1 < +.IFE CC1 < STX TXTEND ;SAVE NEW TEXT END(128,192,256K) STY TXTEND+1 > @@ -555,10 +555,10 @@ CLD3 JMP FINI ;RELINK, SET END OF TEXT AND GOTO MAIN LOOP ; CLD4 - .IFN CC1 < +.IFN CC1 < LDX ERROM ;64K > - .IFE CC1 < +.IFE CC1 < LDX ERROT ;EXCEPT 64K > BNE CLD3 ;ALWAYS @@ -584,7 +584,7 @@ LVR1 JSR LOAD ;REQUEST LOAD FROM KERNAL BCS LDSVER ;IF LOAD/VERIFY ERROR STA TTTEMP ;SAVE BANK OF END OF LOAD - JMP TDM ;GET DIRECT MODE + JMP TDM ;GET DIRECT MODE .SKI 4 ; PROCESS BASIC SAVE COMMAND. ; @@ -598,11 +598,11 @@ SAVENP STX HIGHDS STY HIGHDS+1 STA HIGHDS+2 - .IFN CC1 < +.IFN CC1 < LDX VARTAB ; 64K LDY VARTAB+1 ;HIGHTR IS END VECTOR > - .IFE CC1 < +.IFE CC1 < LDX TXTEND ; EXCEPT 64K LDY TXTEND+1 ;HIGHTR IS END VECTOR > diff --git a/BASIC_CBM2_1983-05-31/bverbs3 b/BASIC_CBM2_1983-05-31/bverbs3 index c5ab279..9f13cef 100644 --- a/BASIC_CBM2_1983-05-31/bverbs3 +++ b/BASIC_CBM2_1983-05-31/bverbs3 @@ -9,100 +9,100 @@ ; ERRORS, CHECKS FOR OUT OF RANGE VALUES, AND SETS ; VARIABLES IN THE ZERO-PAGE TO BE PASSED TO THE DISK ; MESSAGE GENERATOR (DMG). -DCAT ;CATALOG A DEVICE (==DIRECTORY) - JSR DOSPAR ;PARSE THE LINE - LDA PARSTS ;CHECK OPTIONS - AND #$E6 - BEQ *+5 - JMP SNERR - LDY #TCAT ;TABLE OFFSET - LDX #1 ;JUST $ - LDA PARSTS ;CHK FOR DEFAULT - AND #$11 ;NO DRIVE? - BEQ DCAT2 +DCAT ;CATALOG A DEVICE (==DIRECTORY) + JSR DOSPAR ;PARSE THE LINE + LDA PARSTS ;CHECK OPTIONS + AND #$E6 + BEQ *+5 + JMP SNERR + LDY #TCAT ;TABLE OFFSET + LDX #1 ;JUST $ + LDA PARSTS ;CHK FOR DEFAULT + AND #$11 ;NO DRIVE? + BEQ DCAT2 LSR A - BCC DCAT1 ;JUST DRIVE + BCC DCAT1 ;JUST DRIVE INX ;DRIVE AND FILENAME INX DCAT1 INX DCAT2 TXA ;A NOW HAS LENGTH - JSR SENDP ;BUILD - LDA #DOSCTL - STA XCNT ;MAX LINES BEFORE PROMPT - LDY #$60 ;SA, LOAD FLOPPY - JSR OCHANL ;OPEN SPECIAL CHANNEL - LDY #3 ;LOOP COUNTER + JSR SENDP ;BUILD + LDA #DOSCTL + STA XCNT ;MAX LINES BEFORE PROMPT + LDY #$60 ;SA, LOAD FLOPPY + JSR OCHANL ;OPEN SPECIAL CHANNEL + LDY #3 ;LOOP COUNTER ; GET LENGTH IN BLOCKS -DCAT3 STY T3 ;SAVE COUNTER - LDX #DOSLFN - JSR CHKIN ;OPEN FOR INPUT - JSR BASIN ;GET CHAR - STA T4 - JSR READST - BNE DCAT10 ;IF BAD STATUS - JSR BASIN ;GET CHAR - STA T4+1 - JSR READST - BNE DCAT10 ;IF BAD STATUS - LDY T3 +DCAT3 STY T3 ;SAVE COUNTER + LDX #DOSLFN + JSR CHKIN ;OPEN FOR INPUT + JSR BASIN ;GET CHAR + STA T4 + JSR READST + BNE DCAT10 ;IF BAD STATUS + JSR BASIN ;GET CHAR + STA T4+1 + JSR READST + BNE DCAT10 ;IF BAD STATUS + LDY T3 DEY - BNE DCAT3 ;IF NOT DONE + BNE DCAT3 ;IF NOT DONE ; ; OUTPUT BLOCKS NUMBER - JSR DCAT0 ;CLEAR CHANNEL RESTORE OUTPUT DEVICE - LDX T4 - LDA T4+1 - JSR LINPRT ;OUTPUT NUMBER - LDA #' ' - JSR BSOUT ;OUTPUT A SPACE + JSR DCAT0 ;CLEAR CHANNEL RESTORE OUTPUT DEVICE + LDX T4 + LDA T4+1 + JSR LINPRT ;OUTPUT NUMBER + LDA #' ' + JSR BSOUT ;OUTPUT A SPACE ; ; LOOP READING NAME AND OUTPUT DCAT4 JSR CLRCH ;CLEAR CHANNEL DEFAULT INPUT IS DISK LDX #DOSLFN JSR CHKIN - JSR BASIN ;GET CHAR + JSR BASIN ;GET CHAR PHA ;SAVE CHAR - JSR READST ;GET STATUS - BNE DCAT9 ;IF BAD STATUS + JSR READST ;GET STATUS + BNE DCAT9 ;IF BAD STATUS JSR DCAT0 ;CLEAR CHANNEL RESTORE OUTPUT DEVICE PLA ;GET BACK CHAR - BEQ DCAT5 ;IF EOL - JSR BSOUT ;ECHO CHAR - BCC DCAT4 ;CONTINUE TO PROCESS NAME + BEQ DCAT5 ;IF EOL + JSR BSOUT ;ECHO CHAR + BCC DCAT4 ;CONTINUE TO PROCESS NAME ; ; HERE ON END OF NAME -DCAT5 DEC XCNT ;DECREMENT MAX LINES COUNTER - LDA #CR - JSR BSOUT ;OUTPUT NEW LINE - JSR CLRCH ;CLOSE +DCAT5 DEC XCNT ;DECREMENT MAX LINES COUNTER + LDA #CR + JSR BSOUT ;OUTPUT NEW LINE + JSR CLRCH ;CLOSE ; ; CHECK FOR SUSPEND OR HALT - JSR KSTOP ;GET STATUS OF STOP KEY - BEQ DCAT10 ;IF STOP REQUEST - LDA XCNT ;LINES - BNE DCAT8 ;IF NOT MAX LINES - LDA #DOSCTL - STA XCNT ;RESET COUNTER + JSR KSTOP ;GET STATUS OF STOP KEY + BEQ DCAT10 ;IF STOP REQUEST + LDA XCNT ;LINES + BNE DCAT8 ;IF NOT MAX LINES + LDA #DOSCTL + STA XCNT ;RESET COUNTER JSR TSTDIR ;DON'T PROMPT UNLESS IN DIRECT MODE BNE DCAT8 LDX CHANNL ;OR IF NOT WRITING TO SCREEN CPX #0 BNE DCAT8 - LDX #MREMSG - JSR MSG ;PROMPT USER - ;WAIT FOR GO + LDX #MREMSG + JSR MSG ;PROMPT USER +; WAIT FOR GO ; -DCAT7 JSR GETIN ;SUSPEND WAITING FOR KEY - BEQ DCAT7 ;IF NO KEY - SUSPEND +DCAT7 JSR GETIN ;SUSPEND WAITING FOR KEY + BEQ DCAT7 ;IF NO KEY - SUSPEND ; ; PROCESS NEXT -DCAT8 LDY #2 ;PERFORM 2 TIMES - BNE DCAT3 ;JMP +DCAT8 LDY #2 ;PERFORM 2 TIMES + BNE DCAT3 ;JMP ; DCAT9 PLA ;CLEAN UP STK -DCAT10 JSR CLRCH - LDA #DOSLFN - JSR CLOSE ;CLOSE SPECIAL CHANNEL +DCAT10 JSR CLRCH + LDA #DOSLFN + JSR CLOSE ;CLOSE SPECIAL CHANNEL DCAT0 JSR CLRCH LDX DOLU BEQ GOORAT @@ -117,36 +117,36 @@ DCAT0 JSR CLRCH OCHANL LDX DOSFA BNE OCHL10 LDX #8 ;USE DEFAULT OF 8 -OCHL10 LDA #DOSLFN ;LFN - JSR SETLFS ;SET FILE PARAMETERS +OCHL10 LDA #DOSLFN ;LFN + JSR SETLFS ;SET FILE PARAMETERS JSR CLRCH ;UNLISTEN DEFAULT OUT - JMP OPEN ;OPEN IT... + JMP OPEN ;OPEN IT... .PAGE ; DOPEN CODE DFN(,T(,R)) DOPEN - LDA #$22 ;SET ERROR FLAG - JSR SAV9 - LDY #TOPN ;FCB FORMAT POINTER - LDX #4 ;NORMAL LENGTH - BIT PARSTS ;RELATIVE RECORD - BVC DOP2 ;IF NOT RANDOM ACCESS - LDX #8 ;RANDOM ACCESS LENGTH - BNE DOP2 ;ALWAY JUMP + LDA #$22 ;SET ERROR FLAG + JSR SAV9 + LDY #TOPN ;FCB FORMAT POINTER + LDX #4 ;NORMAL LENGTH + BIT PARSTS ;RELATIVE RECORD + BVC DOP2 ;IF NOT RANDOM ACCESS + LDX #8 ;RANDOM ACCESS LENGTH + BNE DOP2 ;ALWAY JUMP .SKIP 4 ; APPEND CODE APPEND - LDA #$E2 ;SET ERROR FLAGS - JSR SAV9 ;CHK REQ'D PARMS - LDY #TAPN ;TABLD INDEX - LDX #5 ;LENGTH + LDA #$E2 ;SET ERROR FLAGS + JSR SAV9 ;CHK REQ'D PARMS + LDY #TAPN ;TABLD INDEX + LDX #5 ;LENGTH ; DOP2 TXA ;SET LENGTH INTO A - JSR SENDP + JSR SENDP JMP GLOBTT ; -SAV9 JSR DOSPRS ;PARSE THE LINE - JSR CHK6 ;CHK REQ'D PARMS +SAV9 JSR DOSPRS ;PARSE THE LINE + JSR CHK6 ;CHK REQ'D PARMS ; FIND AN AVAILABLE SECONDARY ADDRESS FNDSCA LDY #$61 @@ -164,268 +164,268 @@ FSCA20 LDX #MS1 ;TOO MANY FILES OPEN .PAG ; CLOSE DISK FILE DCLOSE - LDA #$F3 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR OLDCLR - LDA PARSTS ;ANY LA GIVEN? - AND #$04 - BEQ DCLALL ;NO.... - LDA DOSLA - JMP CLOSE ;CLOSE FILE + LDA #$F3 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR OLDCLR + LDA PARSTS ;ANY LA GIVEN? + AND #$04 + BEQ DCLALL ;NO.... + LDA DOSLA + JMP CLOSE ;CLOSE FILE ; DCLALL - LDA DOSFA ;GET DISK # - JMP PATCH3 ;CLOSE ALL UNITS*****DEVICE IN .A ONLY****** + LDA DOSFA ;GET DISK # + JMP PATCH3 ;CLOSE ALL UNITS*****DEVICE IN .A ONLY****** .SKIP 4 ; DSAVE DFN DSAVE - LDA #$66 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR SAV20 - JMP SAVENP + LDA #$66 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR SAV20 + JMP SAVENP .SKIP 4 ; DLOAD DFN DLOAD - LDA #$E6 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR SAV20 - LDA #0 ;SET LOAD FLAG - JSR LOADNP ;PERFORM LOAD NO PARSE - JMP LOADCK ;GO TO LOAD CHECKING + LDA #$E6 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR SAV20 + LDA #0 ;SET LOAD FLAG + JSR LOADNP ;PERFORM LOAD NO PARSE + JMP LOADCK ;GO TO LOAD CHECKING .SKIP 4 ; BANK DFN CHBANK - JSR GETBYT - CPX #MXBANK ;TOO LARGE? - BCS XBKERR - STX DFBANK + JSR GETBYT + CPX #MXBANK ;TOO LARGE? + BCS XBKERR + STX DFBANK BSVRTS RTS -XBKERR JMP FCERR ;ILLEGAL QUANTITY +XBKERR JMP FCERR ;ILLEGAL QUANTITY .SKIP 4 ; BSAVE DFN BSAVE - LDA #$66 ;STD ERROR FLAG - LDX #$F8 ;AUXILIARY ERROR FLAG - JSR DOSPRX ;PARSE OPTIONS - JSR SAV20;CHECK REQ PARAMS DONE - .IFN NKRNL < - LDX DOSOFL ;START ADDR - LDY DOSOFL+1 - LDA DOSBNK - STX HIGHDS - STY HIGHDS+1 - STA HIGHDS+2 - LDX DOSOFH ;END ADDR - LDY DOSOFH+1 - JMP SAVENB + LDA #$66 ;STD ERROR FLAG + LDX #$F8 ;AUXILIARY ERROR FLAG + JSR DOSPRX ;PARSE OPTIONS + JSR SAV20 ;CHECK REQ PARAMS DONE +.IFN NKRNL < + LDX DOSOFL ;START ADDR + LDY DOSOFL+1 + LDA DOSBNK + STX HIGHDS + STY HIGHDS+1 + STA HIGHDS+2 + LDX DOSOFH ;END ADDR + LDY DOSOFH+1 + JMP SAVENB > .SKIP 4 ; BLOAD DFN BLOAD - LDA #$E6 ;STD ERROR FLAG - LDX #$FC ;AUX ERROR FLAG - JSR DOSPRX ;PARSE OPTIONS - JSR SAV20 - .IFN NKRNL < - LDA DOSBNK ;BIT7 IS CLEAR(=>LOAD) + LDA #$E6 ;STD ERROR FLAG + LDX #$FC ;AUX ERROR FLAG + JSR DOSPRX ;PARSE OPTIONS + JSR SAV20 +.IFN NKRNL < + LDA DOSBNK ;BIT7 IS CLEAR(=>LOAD) CLC - LDX DOSOFL ;START ADDR - LDY DOSOFL+1 - JSR LOAD - BCC BSVRTS ;DONE -;JMP LDSVER ;ERROR IN LOAD + LDX DOSOFL ;START ADDR + LDY DOSOFL+1 + JSR LOAD + BCC BSVRTS ;DONE +; JMP LDSVER ;ERROR IN LOAD > - .IFE NKRNL < +.IFE NKRNL < RTS > .SKIP 4 ; NDDN (,ID) FORMAT - JSR DOSPAR ;PARSE THE LINE - JSR CHK1 ;CHECK PARAMETER ERRORS - AND #$11 - CMP #$11 - BNE REC5 ;IF REQUIRED PARAMETERS NOT PRESENT + JSR DOSPAR ;PARSE THE LINE + JSR CHK1 ;CHECK PARAMETER ERRORS + AND #$11 + CMP #$11 + BNE REC5 ;IF REQUIRED PARAMETERS NOT PRESENT ; -FRMT2 JSR DCLALL ;CLOSE ALL FILES - JSR RUSURE ;R-U-SURE PRPT - BCS BSVRTS ;IF NO AND DIRECT MODE - LDY #THED ;TABLD INDEX - LDA #4 ;LENGTH - LDX DOSDID ;CHECK FOR DISKID - BEQ FRMT6 - LDA #6 ;LENGTH WITH ID -FRMT6 JSR TRANS ;BUILD AND SEND +FRMT2 JSR DCLALL ;CLOSE ALL FILES + JSR RUSURE ;R-U-SURE PRPT + BCS BSVRTS ;IF NO AND DIRECT MODE + LDY #THED ;TABLD INDEX + LDA #4 ;LENGTH + LDX DOSDID ;CHECK FOR DISKID + BEQ FRMT6 + LDA #6 ;LENGTH WITH ID +FRMT6 JSR TRANS ;BUILD AND SEND ; - JSR ERRCHL ;GET ERROR STATUS - JSR TDM ;TEST DIRECT MODE - BNE BSVRTS ;IF DIRECT MODE - JSR MAPSTR + JSR ERRCHL ;GET ERROR STATUS + JSR TDM ;TEST DIRECT MODE + BNE BSVRTS ;IF DIRECT MODE + JSR MAPSTR ; - LDY #0 + LDY #0 LDA (DSDESC+1)Y - CMP #'2' - BCS FRMT8 ;IF ERROR OCCURED - JMP MAPTXT + CMP #'2' + BCS FRMT8 ;IF ERROR OCCURED + JMP MAPTXT ; FRMT8 - LDX #MSG31 ;? BAD DISK - JMP ERROR + LDX #MSG31 ;? BAD DISK + JMP ERROR .SKIP 4 ; SCRATCH SDFN SCRATC - JSR DOSPAR ;PARSE THE LINE - JSR CHK1 - JSR RUSURE ;CHECK DIRECT AND ASK USER - BCS ZXIT ;IF NO AND DIRECT MODE - LDY #TSCR ;OFFSET - LDA #4 ;LENGTH - JSR TRANS - JSR ERRCHL ;READ ERROR CHANNEL - JSR TDM ;TEST DIRECT MODE - BNE ZXIT ;IF DIRECT MODE - LDA #CR - JSR BSOUT ;OUTPUT CR - JSR MAPSTR - LDY #0 ;CLR TO READ ERRCHL + JSR DOSPAR ;PARSE THE LINE + JSR CHK1 + JSR RUSURE ;CHECK DIRECT AND ASK USER + BCS ZXIT ;IF NO AND DIRECT MODE + LDY #TSCR ;OFFSET + LDA #4 ;LENGTH + JSR TRANS + JSR ERRCHL ;READ ERROR CHANNEL + JSR TDM ;TEST DIRECT MODE + BNE ZXIT ;IF DIRECT MODE + LDA #CR + JSR BSOUT ;OUTPUT CR + JSR MAPSTR + LDY #0 ;CLR TO READ ERRCHL SCTC1 LDA (DSDESC+1)Y ;GET MESG - BEQ SCTC2 ;IF END OF ERROR MESSAGE - JSR BSOUT + BEQ SCTC2 ;IF END OF ERROR MESSAGE + JSR BSOUT INY - BNE SCTC1 ;ALWAYS + BNE SCTC1 ;ALWAYS ; -SCTC2 LDA #CR - JSR BSOUT ;OUTPUT CR - JSR MAPTXT +SCTC2 LDA #CR + JSR BSOUT ;OUTPUT CR + JSR MAPTXT ZXIT RTS .SKIP 4 -REC5 JMP SNERR ;SYNTAX ERROR +REC5 JMP SNERR ;SYNTAX ERROR ; ; RECORD - RANDOM RECORD ACCESS. RECORD - LDA #01 ;DEFAULT POS = 1 - STA DOSRCL - JSR CHRGOT - LDA #'#' - JSR SYNCHR ;NEXT CHARACTER = "#" - JSR GTVL2 ;GET NEXT VALUE - CPX #0 - BEQ REC4 ;CANNOT BE ZERO - STX DOSLA ;SAVE LOGICAL ADDRESS - JSR CHKCOM ;CHECK FOR "," - BEQ REC5 ;IF END OF STATEMENT - BCC REC1 ;IF NUMERIC - JSR CHKOPN ;CHECK FOR "(" - JSR GETPIN ;GET POSITIVE INTEGER - JSR CHKCLS - JMP REC2 + LDA #01 ;DEFAULT POS = 1 + STA DOSRCL + JSR CHRGOT + LDA #'#' + JSR SYNCHR ;NEXT CHARACTER = "#" + JSR GTVL2 ;GET NEXT VALUE + CPX #0 + BEQ REC4 ;CANNOT BE ZERO + STX DOSLA ;SAVE LOGICAL ADDRESS + JSR CHKCOM ;CHECK FOR "," + BEQ REC5 ;IF END OF STATEMENT + BCC REC1 ;IF NUMERIC + JSR CHKOPN ;CHECK FOR "(" + JSR GETPIN ;GET POSITIVE INTEGER + JSR CHKCLS + JMP REC2 ; -REC4 JMP QTYERR +REC4 JMP QTYERR ; REC6 - LDX #MS3 ;FILE NOT FOUND ERR - JMP ERROR + LDX #MS3 ;FILE NOT FOUND ERR + JMP ERROR ; -REC1 JSR GETPIN ;GET POSITIVE INTEGER +REC1 JSR GETPIN ;GET POSITIVE INTEGER ; -REC2 JSR CHRGOT ;SEE WHAT IS NEXT - BEQ REC3 ;IF END OF STATEMENT - JSR CHKCOM ;CHECK FOR "," - BEQ REC5 ;IF END OF STATEMENT - JSR GTVL2 - CPX #0 - BEQ REC4 ;IF OUT OF RANGE - CPX #$FF - BEQ REC4 ;IF OUT OF RANGE - STX DOSRCL ;SAVE BYTE POSITION (POS) - JSR CHRGOT -GAAA BNE REC5 ;IF NOT END OF STATEMENT +REC2 JSR CHRGOT ;SEE WHAT IS NEXT + BEQ REC3 ;IF END OF STATEMENT + JSR CHKCOM ;CHECK FOR "," + BEQ REC5 ;IF END OF STATEMENT + JSR GTVL2 + CPX #0 + BEQ REC4 ;IF OUT OF RANGE + CPX #$FF + BEQ REC4 ;IF OUT OF RANGE + STX DOSRCL ;SAVE BYTE POSITION (POS) + JSR CHRGOT +GAAA BNE REC5 ;IF NOT END OF STATEMENT ; REC3 - LDA DOSLA ;GET LOGICAL ADDRESS - JSR LKUPLA ;LOGICAL TO PHYSICAL MAP - BCS REC6 ;IF FILE NOT FOUND - STY DOSSA ;SAVE SECONDARY ADDRESS - STX DOSFA - JSR SETLFS ;SET UP LA, FA - JSR OLDCLR ;CLEAR DISK STATUS - LDY #TREC ;SET POINTER - LDA #4 ;PROCESS FIVE BYTES - BNE TRANS ;TRANSFER ON CHANNEL 15 + LDA DOSLA ;GET LOGICAL ADDRESS + JSR LKUPLA ;LOGICAL TO PHYSICAL MAP + BCS REC6 ;IF FILE NOT FOUND + STY DOSSA ;SAVE SECONDARY ADDRESS + STX DOSFA + JSR SETLFS ;SET UP LA, FA + JSR OLDCLR ;CLEAR DISK STATUS + LDY #TREC ;SET POINTER + LDA #4 ;PROCESS FIVE BYTES + BNE TRANS ;TRANSFER ON CHANNEL 15 .SKIP 4 DCLEAR - JSR DOSPAR ;PARSE THE LINE - LDY #TCLR ;SET CODE - LDA #2 - BNE TRANS + JSR DOSPAR ;PARSE THE LINE + LDY #TCLR ;SET CODE + LDA #2 + BNE TRANS .SKIP 4 ; COLLECT V COLECT - JSR DOSPAR ;PARSE THE LINE - JSR CHK3 ;CHK OPT PARMS - JSR DCLALL ;CLOSE ALL FILES - LDY #TCOLL ;TABLD OFFSET - LDX #1 ;LENGTH - LDA PARSTS - AND #$10 - BEQ CLCT2 + JSR DOSPAR ;PARSE THE LINE + JSR CHK3 ;CHK OPT PARMS + JSR DCLALL ;CLOSE ALL FILES + LDY #TCOLL ;TABLD OFFSET + LDX #1 ;LENGTH + LDA PARSTS + AND #$10 + BEQ CLCT2 INX ;INCLUDE DRIVE CLCT2 TXA ;PLACE IN A - BNE TRANS ;ALWAYS (X <> 0) + BNE TRANS ;ALWAYS (X <> 0) .SKIP 4 ; COPY ROUTINES CDDDFN=SDSFN DCOPY - JSR DOSPAR ;PARSE THE LINE - AND #$30 - CMP #$30 ;CHK REQ'D PARMS - BNE DCPY2 - LDA PARSTS - AND #$C7 - BEQ DCPY4 -DCPY2 LDA PARSTS - JSR CHK4 - LDA PARSTS -DCPY4 LDY #TCOPY ;TABLD OFFSET - LDA #8 ;LENGTH - BNE TRANS ;GO DO IT + JSR DOSPAR ;PARSE THE LINE + AND #$30 + CMP #$30 ;CHK REQ'D PARMS + BNE DCPY2 + LDA PARSTS + AND #$C7 + BEQ DCPY4 +DCPY2 LDA PARSTS + JSR CHK4 + LDA PARSTS +DCPY4 LDY #TCOPY ;TABLD OFFSET + LDA #8 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; CONCAT ROUTINES CONCAT - JSR DOSPAR ;PARSE THE LINE - JSR CHK4 - LDY #TCONC ;OFFSET - LDA #12 ;LENGTH - BNE TRANS ;GO DO IT + JSR DOSPAR ;PARSE THE LINE + JSR CHK4 + LDY #TCONC ;OFFSET + LDA #12 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; RENAME RDDDFN=SDSFN RENAME - LDA #$E4 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR CHK5 - LDY #TREN ;OFFSET - LDA #8 ;LENGTH - BNE TRANS ;GO DO IT + LDA #$E4 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR CHK5 + LDY #TREN ;OFFSET + LDA #8 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; BACKUP D
= BACKUP - LDA #$C7 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - AND #$30 ;REQ'D PARMS - CMP #$30 - BNE GAAA ;IF SYNTAX ERROR - JSR RUSURE ;TEST FOR DIRECT MODE AND SEND MESSAGE - BCC BUP1 ;IF RUN MODE OR NOT 'YES' + LDA #$C7 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + AND #$30 ;REQ'D PARMS + CMP #$30 + BNE GAAA ;IF SYNTAX ERROR + JSR RUSURE ;TEST FOR DIRECT MODE AND SEND MESSAGE + BCC BUP1 ;IF RUN MODE OR NOT 'YES' RTS BUP1 - JSR DCLALL ;CLOSE DISK - LDY #TBAK - LDA #4 ;LENGTH + JSR DCLALL ;CLOSE DISK + LDY #TBAK + LDA #4 ;LENGTH .SKIP 4 ; TRANS SUBROUTINE TRANS - JSR SENDP ;BUILD STRING TO OUTPUT + JSR SENDP ;BUILD STRING TO OUTPUT JSR CLRCH SEC - JSR OPN10 ;SEND IT... + JSR OPN10 ;SEND IT... JMP DCAT0 .END diff --git a/BASIC_CBM2_1983-05-31/cbm128 b/BASIC_CBM2_1983-05-31/cbm128 index 073ff90..d1d56b0 100644 --- a/BASIC_CBM2_1983-05-31/cbm128 +++ b/BASIC_CBM2_1983-05-31/cbm128 @@ -1,8 +1,8 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) +CC1 =0 ;64K VERSION(ON=$01) CC2 =$02 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC3 =0 ;192K VERSION(ON=$04) +CC4 =0 ;256K VERSION(ON=$08) BF=1 .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1983-05-31/cbm256 b/BASIC_CBM2_1983-05-31/cbm256 index 0a5a6d5..d103204 100644 --- a/BASIC_CBM2_1983-05-31/cbm256 +++ b/BASIC_CBM2_1983-05-31/cbm256 @@ -1,7 +1,7 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) +CC1 =0 ;64K VERSION(ON=$01) +CC2 =0 ;128K VERSION(ON=$02) +CC3 =0 ;192K VERSION(ON=$04) CC4 =$08 ;256K VERSION(ON=$08) BF=1 .SKI 4 diff --git a/BASIC_CBM2_1983-05-31/contrl b/BASIC_CBM2_1983-05-31/contrl index a83fd2a..dea2c8b 100644 --- a/BASIC_CBM2_1983-05-31/contrl +++ b/BASIC_CBM2_1983-05-31/contrl @@ -6,33 +6,33 @@ OMERR LDX #ERROM ;OUT OF MEMORY ERROR JMP (IERROR) NERROR STX ERRNUM ;SAVE ERROR INDEX - CPX #ERRUS ;DON'T TRAP UNDEFINED STATEMENT ERRORS - BEQ ERRISD - JSR TSTDIR ;DON'T TRAP IF IN DIRECT MODE - BEQ ERRISD - LDY TRAPNO+1 ;IS TRAP VECTOR SET? - INY - BEQ ERRISD ;NOT IF $FF - DEY ;RESTORE TRAPNO+1 - STY LINNUM+1 - STY TMPTRP ;SAVE UNTIL A RESUME IS EXECUTED - LDY TRAPNO ;FINISH VECTOR - STY LINNUM - LDY #$FF - STY TRAPNO+1 ;MARKS NO MORE TRAPS UNTIL A 'RESUME' OR 'TRAP' - LDX #1 + CPX #ERRUS ;DON'T TRAP UNDEFINED STATEMENT ERRORS + BEQ ERRISD + JSR TSTDIR ;DON'T TRAP IF IN DIRECT MODE + BEQ ERRISD + LDY TRAPNO+1 ;IS TRAP VECTOR SET? + INY + BEQ ERRISD ;NOT IF $FF + DEY ;RESTORE TRAPNO+1 + STY LINNUM+1 + STY TMPTRP ;SAVE UNTIL A RESUME IS EXECUTED + LDY TRAPNO ;FINISH VECTOR + STY LINNUM + LDY #$FF + STY TRAPNO+1 ;MARKS NO MORE TRAPS UNTIL A 'RESUME' OR 'TRAP' + LDX #1 SOTS - LDA CURLIN,X - STA ERRLIN,X - LDA OLDTXT,X - STA ERRTXT,X - DEX - BPL SOTS - LDX OLDSTK - TXS - JSR MAPTXT ;MAKE SURE WE'RE IN TEXT - JSR LUK4IT ;SET UP POINTERS - JMP NSTT9 ;AND GOTO THAT LINE + LDA CURLIN,X + STA ERRLIN,X + LDA OLDTXT,X + STA ERRTXT,X + DEX + BPL SOTS + LDX OLDSTK + TXS + JSR MAPTXT ;MAKE SURE WE'RE IN TEXT + JSR LUK4IT ;SET UP POINTERS + JMP NSTT9 ;AND GOTO THAT LINE ERRISD LDA CHANNL BEQ ERROR2 ;CLOSE NON-TERMINAL CHANNEL. JSR CLRCH ;CLOSE IT @@ -70,7 +70,7 @@ NMAIN LDX #255 STX CURLIN+1 STX ERRLIN - STX ERRLIN+1 ;FLAG NO ERRORS YET + STX ERRLIN+1 ;FLAG NO ERRORS YET STX ERRNUM JSR INLIN ;GET A LINE FROM TERMINAL STA TXTPTR ;TXTPTR:=^TO INPUT BUFFER @@ -93,10 +93,10 @@ MAIN1 LDY #1 LDA (LOWTR)Y STA INDEX1+1 - .IFN CC1 < +.IFN CC1 < LDA VARTAB ;TEXT END (64K) > - .IFE CC1 < +.IFE CC1 < LDA TXTEND ;TEXT END (EXCEPT 64K) > STA INDEX1 @@ -108,7 +108,7 @@ MAIN1 SBC LOWTR EOR #$FF ; MAKE IT NEGATIVE CLC - .IFN CC1 < +.IFN CC1 < ADC VARTAB ;COMPUTE NEW TEXT END STA VARTAB STA INDEX2 ;SET LOW OF XFER TO @@ -116,7 +116,7 @@ MAIN1 ADC #255 STA VARTAB+1 ;COMPUTE HIGH OF TEXT END > - .IFE CC1 < +.IFE CC1 < ADC TXTEND ;COMPUTE NEW TEXT END STA TXTEND STA INDEX2 ;SET LOW OF XFER TO @@ -128,10 +128,10 @@ MAIN1 TAX SEC LDA LOWTR - .IFN CC1 < +.IFN CC1 < SBC VARTAB ;COMPUTE OFFSET > - .IFE CC1 < +.IFE CC1 < SBC TXTEND > TAY @@ -160,11 +160,11 @@ NODEL JSR CLEARC NODELE CLC ;NO...SOMETHING TO INSERT ; - .IFN CC1 < +.IFN CC1 < LDA VARTAB LDY VARTAB+1 > - .IFE CC1 < +.IFE CC1 < LDA TXTEND LDY TXTEND+1 > @@ -184,10 +184,10 @@ NODELC STA HIGHDS ;DESTINATION OF TOP ;LOW BLOCK ADDRESS IS LOWTR ;WHERE IT WAS LEFT IN THE CALL TO FNDLIN ; - .IFN CC1 < +.IFN CC1 < JSR BLTU > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < JSR BLTUT > ; @@ -218,7 +218,7 @@ NODELC STA HIGHDS ;DESTINATION OF TOP BCC MAIN2 INC LOWTR+1 MAIN2 - .IFN CC1 < +.IFN CC1 < LDA STREND ; 64K ONLY LDY STREND+1 STA VARTAB @@ -232,18 +232,18 @@ MAIN2 STOLOP LDA (TXTPTR)Y STA (LOWTR)Y DEY - DEC COUNT - BNE STOLOP + DEC COUNT + BNE STOLOP FINI JSR LNKPRG - JSR RUNC - JMP MAIN + JSR RUNC + JMP MAIN ; LNKPRG - LDA TXTTAB + LDA TXTTAB LDY TXTTAB+1 STA INDEX STY INDEX+1 - CLC + CLC CHEAD LDY #0 LDA (INDEX)Y ;CHECK FOR NULL LINK BNE CHEA3 @@ -273,11 +273,11 @@ LNKRTS CLC ADC #2 BCC *+3 INY - .IFN CC1 < +.IFN CC1 < STA VAREND STY VAREND+1 > - .IFE CC1 < +.IFE CC1 < STA TXTEND STY TXTEND+1 > @@ -408,13 +408,13 @@ NSTT1 JSR TSTDIR ;ARE WE IN DIRECT MODE? ; IN RUN MODE... ; SAVE TXTPTR FOR CONT COMMAND ; -NSTT9 ;ENTRY POINT FOR ERROR TRAPPING +NSTT9 ;ENTRY POINT FOR ERROR TRAPPING LDA TXTPTR LDY TXTPTR+1 STA OLDTXT STY OLDTXT+1 - TSX - STX OLDSTK ;SAVE IN CASE OF ERROR + TSX + STX OLDSTK ;SAVE IN CASE OF ERROR ; NSTT2 LDY #0 @@ -511,7 +511,7 @@ CMPFOR CMP 260,X LDA FORPNT CMP 258,X BEQ FFRTS -ADDFRS TXA +ADDFRS TXA CLC ADC #FORSIZ TAX @@ -550,7 +550,7 @@ FFRTS RTS ; BLTUT: TEXT END ; BLTUV: VARIABLE END (STREND OR VAREND) ; - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < BLTUT JSR REASNT STA TXTEND ;SET NEW END OF TEXT STY TXTEND+1 @@ -559,23 +559,23 @@ BLTUT JSR REASNT ; BLTUV JSR REASON > - .IFN CC2 < +.IFN CC2 < STA STREND ;128K VERSION STY STREND+1 JSR MAPVAR > - .IFN CC3 < +.IFN CC3 < STA STREND ;192K VERSION STY STREND+1 RTS ; NOTHING TO MOVE > - .IFN CC4 < +.IFN CC4 < STA VAREND ;256K VERSION STY VAREND+1 RTS ; NOTHING TO MOVE > BLTU - .IFN CC1 < +.IFN CC1 < JSR REASON ;64K VERSION STA STREND STY STREND+1 @@ -641,7 +641,7 @@ OSERR LDX #ERROS ;OUT OF STACK SPACE ERROR JMP ERROR .SKI 4 REASON - .IFN CC1+CC2+CC3 < +.IFN CC1+CC2+CC3 < CPY FRETOP+1 BCC REARTS BNE TRYMOR @@ -669,7 +669,7 @@ REASTO PLA CMP FRETOP BCC REARTS > - .IFN CC4 < +.IFN CC4 < CPY HIGHST+1 BCC REARTS BNE OMERRC @@ -679,13 +679,13 @@ REASTO PLA OMERRC JMP OMERR ;OUT OF MEMORY ERROR ; SAV73 - JSR PTRGET + JSR PTRGET SAV74 - STA FORPNT - STY FORPNT+1 - STX FORPNT+2 + STA FORPNT + STY FORPNT+1 + STX FORPNT+2 REARTS RTS - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < .SKIP 2 REASNT CPY BUFFPT+1 BCC REARTS @@ -695,7 +695,7 @@ REASNT CPY BUFFPT+1 OMERRT LDX #ERROT JMP ERROR > - .IFN CC3+CC4 < +.IFN CC3+CC4 < .SKIP 2 REASNA CPY HIGHST+1 BCC REARTS diff --git a/BASIC_CBM2_1983-05-31/init b/BASIC_CBM2_1983-05-31/init index 3e3277b..8027b9f 100644 --- a/BASIC_CBM2_1983-05-31/init +++ b/BASIC_CBM2_1983-05-31/init @@ -27,13 +27,13 @@ INITOP TXA SBC # TYA SBC #>BUFSIZ STA BUFFPT+1 - .IFN CC1 < +.IFN CC1 < TAY > ; @@ -74,7 +74,7 @@ ITP06 ; STX MEMTOP ;TOP OF STR BANK STY MEMTOP+1 - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < ; ; STORE A NON-ZERO BYTE PRECEDING INPUT BUFFER FOR INPUT CMD ; @@ -132,7 +132,7 @@ RSEED .BYT $80,$4F,$C7,$52,$58,',' ; CODE IS ALL IN RAM. INIT JSR INITV ;INIT VECTORS -INIT0 ;ALWAYS INIT0 AFTER VECTOR INITIALIZATION +INIT0 ;ALWAYS INIT0 AFTER VECTOR INITIALIZATION LDX #2 ;INIT USR INIT05 LDA BJMPS,X STA USRPOK,X @@ -161,7 +161,7 @@ INIT10 LDA INITAT-1,X ; (ONLY FOR AREAS WHICH START IN A NEW BANK. ; BOTTOM AND TOP LIMITS WILL BE THE SAME IN EACH ; BANK.) - .IFN CC4 < +.IFN CC4 < INX ;256K VERSION STX VARTAB LDX #$80 ;FIXED LOWER LIMIT OF $8000 @@ -169,15 +169,15 @@ INIT10 LDA INITAT-1,X > SEC ;GET BOTTOM OF MEMORY JSR MEMBOT - .IFN CC4 < +.IFN CC4 < STX STREND ;256K VERSION STY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < STX ARYTAB ;192K, 256K VERSIONS STY ARYTAB+1 > - .IFN CC2+CC3 < +.IFN CC2+CC3 < STX VARTAB ;128K, 192K VERSIONS STY VARTAB+1 > @@ -207,16 +207,16 @@ INIT20 .SKI 4 SIGNON .BYT CLRSCR,'*** COMMODORE BASIC ' - .IFN CC1 < +.IFN CC1 < .BYT '64' > - .IFN CC2 < +.IFN CC2 < .BYT '128' > - .IFN CC3 < +.IFN CC3 < .BYT '256' > - .IFN CC4 < +.IFN CC4 < .BYT '256' > .BYT ', V4.0 ***',CR,CR,0 diff --git a/BASIC_CBM2_1983-05-31/math1 b/BASIC_CBM2_1983-05-31/math1 index e815f13..7a9ad32 100644 --- a/BASIC_CBM2_1983-05-31/math1 +++ b/BASIC_CBM2_1983-05-31/math1 @@ -1,5 +1,5 @@ .PAGE 'MATH CRACKING ROUTINES.' -FORFIX ;EMPTY SPACE FOR FUTURE FIXES +FORFIX ;EMPTY SPACE FOR FUTURE FIXES .BYT $FF ;CHECK SUM BYTE ; PATCH1 JSR OLDCLR ;CLEAR DISK STATUS FOR PRINTN & CMD @@ -8,12 +8,12 @@ PATCH2 JSR OLDCLR ;CLEAR DISK STATUS FOR INPUTN & GET JMP CHKOUT PATCH3 SEC ;CLOSE ALL FILES ASSOCIATED WITH DEVICE IN .A JMP KCLALL - .BYT $FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .SKI 2 + .BYT $FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +.SKI 2 ; THE FORMULA EVALUATOR STARTS WITH (TXTPTR) -> TO ; THE 1ST CHAR OF THE FORMULA. ; AT THE END (TXTPTR) -> TO THE TERMINATOR. @@ -71,7 +71,7 @@ ENDREL LDX OPMASK STA INDEX1 ASL A ADC INDEX1 - TAY + TAY QPREC PLA CMP OPTAB,Y BCS QCHNUM @@ -336,11 +336,11 @@ GOOO JMP MOVFUM ; FAC <- USER MEM ; ; PREVENT TI AS A USER-DEFD VAR -; CPX #'T' -; BNE QSTATV ;IF NOT 'T' -; CPY #'I' -; BNE GOMOVF ;IF 'T' BUT NOT 'TI' -; JMP SNERR +; CPX #'T' +; BNE QSTATV ;IF NOT 'T' +; CPY #'I' +; BNE GOMOVF ;IF 'T' BUT NOT 'TI' +; JMP SNERR ; QSTATV CPX #'S' BNE QERLIN ;IF NOT 'S' @@ -350,17 +350,17 @@ QSTATV CPX #'S' JMP FLOAT ; QERLIN CPX #'E - BNE QDSAV - CPY #'R - BEQ GNUMER - CPY #'L - BNE QDSAV - LDA ERRLIN+1 - LDY ERRLIN - JMP NOSFLT ;PRINT 2 BYTES + BNE QDSAV + CPY #'R + BEQ GNUMER + CPY #'L + BNE QDSAV + LDA ERRLIN+1 + LDY ERRLIN + JMP NOSFLT ;PRINT 2 BYTES GNUMER LDA ERRNUM - LSR A ;DIVIDE BY 2 - JMP FLOAT ;PRINT 1 BYTE + LSR A ;DIVIDE BY 2 + JMP FLOAT ;PRINT 1 BYTE ; QDSAV CPX #'D' BNE GOMOVF ;IF NOT 'D' @@ -403,8 +403,8 @@ TKERD2=TKERRD+TKERRD JSR CHKSTR PLA TKINT2=TKINST+TKINST - CMP # - .IFN CC3 < +.IFN CC3 < CPX STREND+1 ;192K BNE LOPFN CMP STREND ;192K > - .IFN CC1+CC2 < +.IFN CC1+CC2 < CPX ARYTAB+1 ;64K OR 128K BNE LOPFN CMP ARYTAB ;64K OR 128K @@ -651,20 +651,20 @@ NOTEVL LDA VARNAM BNE QSTAVR CPY #$C9 ;'I'+$80 BEQ LDZR -;; CPY #'I' -;; BNE QSTAVR -;;GOBADV JMP SNERR +;; CPY #'I' +;; BNE QSTAVR +;;GOBADV JMP SNERR ; QSTAVR CMP #'S' BNE QERAVR CPY #'T' BEQ GOBADV QERAVR CMP #'E - BNE QDSVAR - CPY #'R - BEQ GOBADV - CPY #'L - BEQ GOBADV + BNE QDSVAR + CPY #'R + BEQ GOBADV + CPY #'L + BEQ GOBADV ; QDSVAR CMP #'D' ;DISK STATUS? BNE VAROK @@ -673,15 +673,15 @@ QDSVAR CMP #'D' ;DISK STATUS? CPY #$D3 ;'S'+$80 BEQ GOBADV ;CANNOT MODIFY DS$ VAROK - .IFN CC4 < +.IFN CC4 < LDA VAREND ;END OF SIMPLE VARS (256K) LDY VAREND+1 > - .IFN CC3 < +.IFN CC3 < LDA STREND ;END OF SIMPLE VARS (192K) LDY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < STA LOWTR ;^TO START OF NEW VARIABLE STY LOWTR+1 CLC @@ -690,7 +690,7 @@ VAROK INY GOBLT JSR BLTUV ;ENOUGH ROOM? > - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA ARYTAB ;END OF SIMPLE VARS (64K,128K) LDY ARYTAB+1 STA LOWTR @@ -706,13 +706,13 @@ GOBLT JSR BLTUV ;ENOUGH ROOM? NOTEVE STA HIGHDS STY HIGHDS+1 > - .IFN CC1 < +.IFN CC1 < JSR BLTU ;64K > - .IFN CC2 < +.IFN CC2 < JSR BLTUV ;128K > - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA HIGHDS ;64K OR 128K LDY HIGHDS+1 INY @@ -780,8 +780,8 @@ GOGO JSR MAPVAR INY LDA (INDEX1)Y STA I6509 ;BANK SET FOR GETTING STRINGS -; FIX BACKWARDS POINTER BY ADDING -; THE MOVE LENGTH TO IT +; FIX BACKWARDS POINTER BY ADDING +; THE MOVE LENGTH TO IT CLC LDY #$00 LDA (HIGHTR)Y @@ -791,7 +791,7 @@ GOGO JSR MAPVAR LDA (HIGHTR)Y ADC #$00 STA (HIGHTR)Y ;DONE WITH THIS STR. -; FIX THE NEXT STRING IN THE ARRAY +; FIX THE NEXT STRING IN THE ARRAY DVARTS LDA #STRSIZ CLC ADC INDEX1 diff --git a/BASIC_CBM2_1983-05-31/math2 b/BASIC_CBM2_1983-05-31/math2 index b3d36b2..7ec49a6 100644 --- a/BASIC_CBM2_1983-05-31/math2 +++ b/BASIC_CBM2_1983-05-31/math2 @@ -88,21 +88,21 @@ INDLOP LDA VARNAM+1 LDA ARYTAB+1 LOPFDA STX LOWTR STA LOWTR+1 - .IFN CC1+CC2 < +.IFN CC1+CC2 < CMP STREND+1 ;64K,128K > - .IFN CC3+CC4 < +.IFN CC3+CC4 < CMP ARYEND+1 ;192K,256K > BNE LOPFDV - .IFN CC1+CC2 < +.IFN CC1+CC2 < CPX STREND ;64K,128K > - .IFN CC3+CC4 < +.IFN CC3+CC4 < CPX ARYEND ;192K,256K > BEQ NOTFDD -LOPFDV JSR MAPARY +LOPFDV JSR MAPARY LDY #0 LDA (LOWTR)Y INY @@ -118,7 +118,7 @@ NMARY1 INY TAX INY LDA (LOWTR)Y - JSR MAPTXT + JSR MAPTXT ADC LOWTR+1 BCC LOPFDA BSERR LDX #ERRBS @@ -126,18 +126,18 @@ BSERR LDX #ERRBS FCERR LDX #ERRFC ERRGO3 JMP ERROR ; -GOTARY JSR MAPTXT +GOTARY JSR MAPTXT LDX #ERRDD LDA DIMFLG BNE ERRGO3 JSR FMAPTR - JSR MAPARY + JSR MAPARY LDY #4 LDA (LOWTR)Y CMP COUNT BNE BSERR JMP GETDEF ;GETDEF EXPECTS I6509 SET TO ARYBNK -SAV44 BPL SAV45; FLOAT: SIZE=5 +SAV44 BPL SAV45 ; FLOAT: SIZE=5 DEX LDA VARNAM BPL SAV45 ; STRING:SIZE=4 @@ -169,13 +169,13 @@ SAV45 RTS ; INDEX INTO THE VAR AS IF IT WERE FOUND ON THE ; INITIAL SEARCH NOTFDD JSR FMAPTR - .IFN CC1+CC2 < +.IFN CC1+CC2 < JSR REASON > - .IFN CC3+CC4 < +.IFN CC3+CC4 < JSR REASNA > - JSR MAPARY + JSR MAPARY LDY #0 STY CURTOL+1 LDA VARNAM ;STOR NAME, CALC ELT SIZE @@ -223,18 +223,18 @@ NOTDIM INY INY BEQ OMERR1 GREASE - JSR MAPTXT - .IFN CC1+CC2 < + JSR MAPTXT +.IFN CC1+CC2 < JSR REASON ;64K OR 128K VERSIONS STA STREND STY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < JSR REASNA ;192K OR 256K VERSIONS STA ARYEND STY ARYEND+1 > - JSR MAPARY + JSR MAPARY LDA #0 INC CURTOL+1 LDY CURTOL @@ -248,19 +248,19 @@ DECCUR BNE ZERITA INC ARYPNT+1 SEC - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA STREND ;64K OR 128K VERSIONS > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYEND ;192K OR 256K VERSIONS > SBC LOWTR LDY #2 STA (LOWTR)Y - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA STREND+1 ;64K OR 128K VERSIONS > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYEND+1 ;192K OR 256K VERSIONS > INY @@ -287,10 +287,10 @@ INLPNM STA CURTOL+1 BEQ INLPN0 BCS INLPN1 BSERR7 JMP BSERR - .IFN CC1+CC2 < +.IFN CC1+CC2 < OMERR1 JMP OMERR > - .IFN CC3+CC4 < +.IFN CC3+CC4 < OMERR1 JMP OMERRA > ; @@ -328,9 +328,9 @@ ADDIND ADC INDICE+1 STA VARPNT+1 TAY LDA VARPNT - LDX #ARYBNK + LDX #ARYBNK STX VARPNT+2 -DIMRTS JMP MAPTXT +DIMRTS JMP MAPTXT .PAG ; TWO BYTE UNSIGNED INTEGER MULTIPLY. ; FOR MULTIPLY DIMENSIONED ARRAYS. @@ -394,7 +394,7 @@ FREF10 JSR CONINT ;.X := BANK# CPX #TXTBNK BNE FREF80 - .IFN CC1 < +.IFN CC1 < FREFST JSR GARBA2 ;COMPRESS OUT GARBAGE STRINGS SEC @@ -404,7 +404,7 @@ FREFST LDA FRETOP+1 SBC STREND+1 > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < SEC LDA BUFFPT SBC TXTEND @@ -414,11 +414,11 @@ FREFST > JMP NOSFLT FREF80 - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < CPX #VARBNK BNE FREF70 > - .IFN CC2+CC3 < +.IFN CC2+CC3 < FREFST JSR GARBA2 ;COMPRESS OUT GARBAGE STRINGS SEC @@ -429,7 +429,7 @@ FREFST SBC STREND+1 JMP NOSFLT > - .IFN CC4 < +.IFN CC4 < SEC LDA HIGHST SBC VAREND @@ -439,7 +439,7 @@ FREFST JMP NOSFLT > FREF70 - .IFN CC3+CC4 < +.IFN CC3+CC4 < CPX #ARYBNK BNE FREF60 SEC @@ -451,7 +451,7 @@ FREF70 JMP NOSFLT > FREF60 - .IFN CC4 < +.IFN CC4 < FREFST CPX #STRBNK BNE FREF50 @@ -533,7 +533,7 @@ TSTDIR LDA CURLIN+1 ; TDM =TSTDIR .SKI 4 -GETFNM ; GET A PTR TO A FUNCTION NAME +GETFNM ; GET A PTR TO A FUNCTION NAME LDA #TKFN ; MUST START WITH FN JSR SYNCHR ORA #$80 ; .A<-1ST CHAR OF FN NAME+$80 @@ -559,7 +559,7 @@ FNDOER JSR GETFNM STA DEFPNT+1 PLA STA DEFPNT+2 - STA I6509 + STA I6509 LDY #2 ; VARPNT <- PTR FOR FORMAL PARAM LDA (DEFPNT)Y STA VARPNT @@ -572,7 +572,7 @@ FNDOER JSR GETFNM INY LDA (DEFPNT)Y STA VARPNT+2 - STA I6509 + STA I6509 FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM PHA DEY @@ -584,14 +584,14 @@ FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM PHA LDA TXTPTR PHA - LDA DEFPNT+2 - STA I6509 + LDA DEFPNT+2 + STA I6509 LDA (DEFPNT)Y ;TEXT PTR <- PTR TO FTN BODY TEXT STA TXTPTR INY LDA (DEFPNT)Y STA TXTPTR+1 - JSR MAPTXT + JSR MAPTXT LDA VARPNT+2 ; STACK <- PTR TO FORMAL PARAM PHA LDA VARPNT+1 @@ -622,8 +622,8 @@ FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM ; TO THE TEXT FOR THE FTN BODY (2 BYTES) AND A PTR ; TO THE DATA AREA OF THE FORMAL PARAMETER (3 BYTES) ; -DEFFIN LDA DEFPNT+2 - STA I6509 +DEFFIN LDA DEFPNT+2 + STA I6509 LDY #0 PLA STA (DEFPNT)Y @@ -639,7 +639,7 @@ DEFFIN LDA DEFPNT+2 PLA INY STA (DEFPNT)Y - JMP MAPTXT + JMP MAPTXT .SKI 3 PEEK LDA POKER+1 PHA @@ -647,8 +647,8 @@ PEEK LDA POKER+1 PHA JSR GETADR LDX I6509 - LDA DFBANK - STA I6509 + LDA DFBANK + STA I6509 LDY #0 LDA (POKER)Y TAY @@ -671,12 +671,12 @@ FSUBT JSR SAV41 JMP FADDT ; SAV75 - LDY BUFFPT+1 - LDX BUFFPT - BNE SAV76 - DEY + LDY BUFFPT+1 + LDX BUFFPT + BNE SAV76 + DEY SAV76 - DEX + DEX ZERRTS RTS ; FADD5 JSR SHIFTR @@ -856,7 +856,7 @@ ROLSHF ROR 2,X SHFTRT CLC RTS .SKI 4 -FONE .BYT $81,0,0,0,0 +FONE .BYT $81, 0, 0, 0, 0 LOGCN2 .BYT $03,$7F,$5E,$56 .BYT $CB,$79,$80,$13 .BYT $9B,$0B,$64,$80 @@ -864,6 +864,6 @@ LOGCN2 .BYT $03,$7F,$5E,$56 .BYT $82,$38,$AA,$3B,$20 SQR05 .BYT $80,$35,$04,$F3,$34 SQR20 .BYT $81,$35,$04,$F3,$34 -NEGHLF .BYT $80,$80,0,0,0 +NEGHLF .BYT $80,$80, 0, 0, 0 LOG2 .BYT $80,$31,$72,$17,$F8 .END diff --git a/BASIC_CBM2_1983-05-31/math3 b/BASIC_CBM2_1983-05-31/math3 index 2dae38b..c22d65c 100644 --- a/BASIC_CBM2_1983-05-31/math3 +++ b/BASIC_CBM2_1983-05-31/math3 @@ -102,7 +102,7 @@ UCNUPK STX I6509 STA ARGHO DEY LDA (INDEX1)Y - JSR MAPTXT + JSR MAPTXT STA ARGEXP LDA FACEXP RTS @@ -222,7 +222,7 @@ DIVNRM ASL A ASL A STA FACOV PLP -; JMP MOVFR +; JMP MOVFR .PAG ; FLOATING PT MOVE ROUTINES ; @@ -266,7 +266,7 @@ MOVFUM STA INDEX1 LDA (INDEX1)Y STA FACEXP STY FACOV - JMP MAPTXT + JMP MAPTXT ; ; MOV2F: TEMP2F <- FAC ; MOV1F: TEMP1F <- FAC @@ -310,7 +310,7 @@ MOV001 STA I6509 LDA FACEXP STA (INDEX)Y STY FACOV - JMP MAPTXT + JMP MAPTXT ; ; MOVFA: FAC <- ARG REGISTER ; MOVAF: ARG <- FAC REGISTER @@ -375,31 +375,31 @@ ABS LSR FACSGN FCOMP STA INDEX2 FCOMPN STY INDEX2+1 ; ENTER W/VALUE ON STACK ("NEXT") LDY #0 - JSR FCINX2 + JSR FCINX2 INY TAX BEQ SIGN - JSR FCINX2 + JSR FCINX2 EOR FACSGN BMI FCSIGN CPX FACEXP BNE FCOMPC - JSR FCINX2 + JSR FCINX2 ORA #$80 CMP FACHO BNE FCOMPC INY - JSR FCINX2 + JSR FCINX2 CMP FACMOH BNE FCOMPC INY - JSR FCINX2 + JSR FCINX2 CMP FACMO BNE FCOMPC INY LDA #$7F CMP FACOV - JSR FCINX2 + JSR FCINX2 SBC FACLO BEQ QINTRT FCOMPC LDA FACSGN @@ -407,7 +407,7 @@ FCOMPC LDA FACSGN EOR #$FF FCOMPD JMP FCOMPS .SKIP 2 -FCINX2 JSR MAPSYS +FCINX2 JSR MAPSYS LDA (INDEX2)Y - JMP MAPTXT + JMP MAPTXT .END diff --git a/BASIC_CBM2_1983-05-31/math4 b/BASIC_CBM2_1983-05-31/math4 index 0b0c847..da37cfa 100644 --- a/BASIC_CBM2_1983-05-31/math4 +++ b/BASIC_CBM2_1983-05-31/math4 @@ -47,13 +47,13 @@ CLRFAC STA FACHO STA FACMOH STA FACMO STA FACLO - TAY + TAY INTRTS RTS .PAG ; NUMBER INPUT IS LEFT IN FAC. ; AT ENTRY TXTPTR -> TO THE 1ST CHAR IN A TEXT BUF. ; THE 1ST CHAR IS ALSO IN ACC. FIN PACKS THE DIGITS -; INTO THE FAC AS AN INTEGER AND KEEPS TRACK OF WHERE +; INTO THE FAC AS AN INTEGER AND KEEPS TRACK OF WHERE ; THE DECIMAL POINT IS. DPTFLG TELLS WHETHER A DP HAS ; BEEN SEEN. DCCNT IS THE NUMBER OF DIGITS AFTER THE ; DP. AT THE END DCCNT AND THE EXP ARE USED TO @@ -152,10 +152,10 @@ MLEX10 ASL A CLC LDY #0 STA TTTEMP - LDA TXTPTR+2 + LDA TXTPTR+2 STA I6509 LDA (TXTPTR)Y - JSR MAPTXT + JSR MAPTXT ADC TTTEMP SEC SBC #'0 @@ -356,7 +356,7 @@ FOUT17 LDA #0 STA FBUFFR,Y FOUT20 RTS .SKI 4 -N32768 .BYT $90 ;MUST STAY WITH FHALF AND ZERO +N32768 .BYT $90 ;MUST STAY WITH FHALF AND ZERO FHALF .BYT $80,0 ZERO .BYT 0,0,0 ; @@ -373,21 +373,21 @@ FOUTBL .BYT $FF,$FF,$FF,$FF ;-1 ; FDCEND -; .BYT $FF,$DF,$0A,$80 ;-216,000 FOR TIME CONVERTER -; .BYT $00,$03,$4B,$C0 ;216,000 -; .BYT $FF,$FF,$73,$60 ;-36000 -; .BYT $00,$00,$0E,$10 ;3600 -; .BYT $FF,$FF,$FD,$A8 ;-600 -; .BYT $00,$00,$00,$3C ;60 +; .BYT $FF,$DF,$0A,$80 ;-216,000 FOR TIME CONVERTER +; .BYT $00,$03,$4B,$C0 ;216,000 +; .BYT $FF,$FF,$73,$60 ;-36000 +; .BYT $00,$00,$0E,$10 ;3600 +; .BYT $FF,$FF,$FD,$A8 ;-600 +; .BYT $00,$00,$00,$3C ;60 ;TIMEND .PAG -SQR ;SQUARE ROOT FUNCTION SQR(A) -; USES SQR(A) == A**0.5 +SQR ;SQUARE ROOT FUNCTION SQR(A) +; USES SQR(A) == A**0.5 JSR MOVAF LDA #FHALF JSR MOVFM -; JMP FPWRT ;LAST THING FETCHED IS FACEXP INTO ACCX +; JMP FPWRT ;LAST THING FETCHED IS FACEXP INTO ACCX ; ; EXPONENTATION X**Y ; IF Y = 0 THEN RESULTS = 1. @@ -436,7 +436,7 @@ SAV41 LDA FACSGN NEGRTS RTS .PAG LOGEB2 .BYT $81,$38,$AA,$3B,$29 ;LOG(E) BASE 2 -EXPCON .BYT 7,$71,$34,$58,$3E +EXPCON .BYT 7,$71,$34,$58,$3E .BYT $56,$74,$16,$7E .BYT $B3,$1B,$77,$2F .BYT $EE,$E3,$85,$7A @@ -445,7 +445,7 @@ EXPCON .BYT 7,$71,$34,$58,$3E .BYT $0A,$7E,$75,$FD .BYT $E7,$C6,$80,$31 .BYT $72,$18,$10,$81 - .BYT 0,0,0,0 + .BYT 0, 0, 0, 0 .SKI 4 ; MULTIPLY BY LOG(E) BASE 2. EXP LDA # - .IFE CC1 < +.IFE CC1 < INC TXTEND > BNE AD7714 - .IFN CC1 < +.IFN CC1 < INC VARTAB+1 > - .IFE CC1 < +.IFE CC1 < INC TXTEND+1 > AD7714 RTS @@ -240,24 +240,24 @@ AD7714 RTS AD7715 JSR AD7726 DEC ARGMO JSR AD7545 - .IFN CC1 < +.IFN CC1 < LDA VARTAB > - .IFE CC1 < +.IFE CC1 < LDA TXTEND > BNE AD7723 - .IFN CC1 < +.IFN CC1 < DEC VARTAB+1 > - .IFE CC1 < +.IFE CC1 < DEC TXTEND+1 > AD7723 - .IFN CC1 < +.IFN CC1 < DEC VARTAB > - .IFE CC1 < +.IFE CC1 < DEC TXTEND > RTS @@ -304,17 +304,17 @@ AD7529 LDA TXTPTR STA INDEX1 LDA TXTPTR+1 STA INDEX1+1 - .IFN CC1 < +.IFN CC1 < LDA VARTAB > - .IFE CC1 < +.IFE CC1 < LDA TXTEND > STA INDEX2 - .IFN CC1 < +.IFN CC1 < LDA VARTAB+1 > - .IFE CC1 < +.IFE CC1 < LDA TXTEND+1 > STA INDEX2+1 @@ -359,19 +359,19 @@ SUBCLR JSR LNKPRG LDX INDEX1+1 CLC ADC #$02 - .IFN CC1 < +.IFN CC1 < STA VARTAB > - .IFE CC1 < +.IFE CC1 < STA TXTEND > BCC AD72B6 INX AD72B6 - .IFN CC1 < +.IFN CC1 < STX VARTAB+1 > - .IFE CC1 < +.IFE CC1 < STX TXTEND+1 > JSR RUNC diff --git a/BASIC_CBM2_1983-05-31/strng1 b/BASIC_CBM2_1983-05-31/strng1 index d81857b..d9727f2 100644 --- a/BASIC_CBM2_1983-05-31/strng1 +++ b/BASIC_CBM2_1983-05-31/strng1 @@ -33,7 +33,7 @@ STR010 LDA FBUFFR,Y BNE STR010 ; STR020 TYA ;LENGTH TO .A - JSR STRSPA + JSR STRSPA STY I6509 ; ;MOVE FROM FBUFFR TO (DSCTMP) @@ -127,7 +127,7 @@ SOTL STY INDEX,X DEX BPL SOTL -GLGR ;ENTRY POINT FROM LEFTD +GLGR ;ENTRY POINT FROM LEFTD JSR MOVDO ; COPY IT TO END OF STRING AREA ; PUTNEW LDY TEMPPT @@ -339,7 +339,7 @@ INPCOM .SKIP 2 GETSPT LDY FACMO+2 ;DESCR PTR FOR TEMP? - .IFN CC1+CC2 < +.IFN CC1+CC2 < CPY #VARBNK ; NO, IF VARBNK & < STREND BNE DNTCPY LDY FACMO+1 ;DESCR PTR FOR TEMP? @@ -350,7 +350,7 @@ GETSPT CMP STREND BCC COPY > - .IFN CC3 < +.IFN CC3 < CPY #ARYBNK ; NOT IF IN ARRAY BANK BEQ COPY CPY #VARBNK ; NOT IF VARBNK & < STREND @@ -363,7 +363,7 @@ GETSPT CMP STREND BCC COPY > - .IFN CC4 < +.IFN CC4 < CPY #VARBNK ; NO, IF IN VARBNK BEQ COPY CPY #ARYBNK ; OR ARRAY BANK @@ -457,7 +457,7 @@ SUMP BPL SUMP JSR STRADJ ;POINT TO OLD STRING BCC FNK05 ;IN TEXT DO NOT FIX -;JMP MKGARB ;MARK AS GARBAGE +; JMP MKGARB ;MARK AS GARBAGE .SKIP 3 ; MARK THE STRING AS GARBAGE ; ENTER: INDEX POINTS TO STR LINK BYTES @@ -505,10 +505,10 @@ STRADJ JSR MAPTXT PLA ;LO SADJ3 -;CPX FRETOP+1 -;BCC SADJ8 -;CMP FRETOP -;BCC SADJ8 +; CPX FRETOP+1 +; BCC SADJ8 +; CMP FRETOP +; BCC SADJ8 CPY DSDESC+3 ;IS IT DS$ STRING? BNE SADJ4 CPX DSDESC+2 diff --git a/BASIC_CBM2_1983-05-31/strng2 b/BASIC_CBM2_1983-05-31/strng2 index 7b5f690..a46fb5a 100644 --- a/BASIC_CBM2_1983-05-31/strng2 +++ b/BASIC_CBM2_1983-05-31/strng2 @@ -16,14 +16,14 @@ CAT STA STRNG1+1 PLA STA STRNG1+2 - STA I6509 + STA I6509 LDY #0 LDA (STRNG1)Y ; LEN1+LEN2<256 ? STA TTTEMP - LDA FACMO+2 - STA I6509 + LDA FACMO+2 + STA I6509 LDA (FACMO)Y - JSR MAPTXT + JSR MAPTXT CLC ADC TTTEMP BCC SIZEOK @@ -77,7 +77,7 @@ RLEFT BCC RLEFT1 LDA (DSCPNT)Y TAX TYA -RLEFT1 JSR MAPTXT +RLEFT1 JSR MAPTXT PHA ; STARTING OFFSET RLEFT2 TXA ; LENGTH RLEFT3 PHA @@ -109,9 +109,9 @@ RIGHTD JSR PREAM JMP RLEFT ; SAV17 JSR CHRGOT - CMP #')' - BEQ SAV18 - JMP COMBYT ;CHECK FOR COMMA AND GET A BYTE + CMP #')' + BEQ SAV18 + JMP COMBYT ;CHECK FOR COMMA AND GET A BYTE MIDD LDA #$FF STA FACLO JSR SAV17 @@ -124,9 +124,9 @@ MID2 JSR PREAM PHA CLC LDX #0 - JSR MAPDSP + JSR MAPDSP LDA (DSCPNT)Y - JSR MAPTXT + JSR MAPTXT STA TTTEMP PLA SBC TTTEMP @@ -200,9 +200,9 @@ TRUG STY STRNG2,X DEX BPL TRUG - LDX INDEX1+2 + LDX INDEX1+2 STX TXTPTR+2 ;TXTPTR := INDEX1 (START OF STR) - STX I6509 + STX I6509 LDX INDEX1 STX TXTPTR CLC @@ -218,69 +218,69 @@ VAL2 STX INDEX2+1 PHA TYA STA (INDEX2)Y - JSR MAPTXT + JSR MAPTXT JSR CHRGOT JSR FIN JSR MAPSTR ;RESTORE BYTE AT END OF STR (ALWAYS IN STR BANK) PLA LDY #0 STA (INDEX2)Y - JSR MAPTXT + JSR MAPTXT ST2TXT LDX STRNG2 ;RESTORE TEXT POINTER LDY STRNG2+1 - LDA STRNG2+2 + LDA STRNG2+2 STX TXTPTR STY TXTPTR+1 - STA TXTPTR+2 + STA TXTPTR+2 RTS .SKIP 4 ERRD PLA ;TRASH OLD TOKEN FROM ISFUN - JSR PARCHK - JSR CHKNUM ;CHECK FOR NUMERIC ARGUMENT - JSR CONINT ;GET INTEGER ARG. IN X - TXA - ASL A - CMP #ERRBLN ;CHECK VALUE AGAINST LENGTH OF ERROR POINTER LIST - BCS GOFUC - TAY - LDA EBASE,Y ;GET ADDRESS OF MESSAGE - STA INDEX2 ;AND CREATE A TEMP DESCRIPTOR POINTING TO IT - LDA EBASE+1,Y - STA INDEX2+1 - JSR MAPSYS - LDY #$FF - LDX #0 + JSR PARCHK + JSR CHKNUM ;CHECK FOR NUMERIC ARGUMENT + JSR CONINT ;GET INTEGER ARG. IN X + TXA + ASL A + CMP #ERRBLN ;CHECK VALUE AGAINST LENGTH OF ERROR POINTER LIST + BCS GOFUC + TAY + LDA EBASE,Y ;GET ADDRESS OF MESSAGE + STA INDEX2 ;AND CREATE A TEMP DESCRIPTOR POINTING TO IT + LDA EBASE+1,Y + STA INDEX2+1 + JSR MAPSYS + LDY #$FF + LDX #0 ERFLP1 INY ;COUNT # OF CHARACTERS IN MESSAGE - LDA (INDEX2)Y - BEQ ERRD1 ;QUIT WHEN THE END IS FOUND - CMP #$20 ;DON'T COUNT NON-PRINTERS - BCC ERFLP1 - INX ;IT'S A PRINTER, SO COUNT IT! - BNE ERFLP1 ;ALWAYS + LDA (INDEX2)Y + BEQ ERRD1 ;QUIT WHEN THE END IS FOUND + CMP #$20 ;DON'T COUNT NON-PRINTERS + BCC ERFLP1 + INX ;IT'S A PRINTER, SO COUNT IT! + BNE ERFLP1 ;ALWAYS ERRD1 TXA - JSR STRSPA ;RESERVE A STRING - LDY #$FF - LDX #0 + JSR STRSPA ;RESERVE A STRING + LDY #$FF + LDX #0 ERFLP2 INY - JSR MAPSYS - LDA (INDEX2)Y - BEQ ERRD2 ;DONE IF NULL - CMP #$20 - BCC ERFLP2 - STY TTTEMP ;SAVE .Y - PHA - TXA ;MOVE .X TO .Y - TAY - PLA - JSR MAPDST - STA (DSCTMP+1)Y - TYA ;MOVE .Y BACK TO .X - TAX - LDY TTTEMP ;RESTORE .Y - INX - BNE ERFLP2 ;ALWAYS + JSR MAPSYS + LDA (INDEX2)Y + BEQ ERRD2 ;DONE IF NULL + CMP #$20 + BCC ERFLP2 + STY TTTEMP ;SAVE .Y + PHA + TXA ;MOVE .X TO .Y + TAY + PLA + JSR MAPDST + STA (DSCTMP+1)Y + TYA ;MOVE .Y BACK TO .X + TAX + LDY TTTEMP ;RESTORE .Y + INX + BNE ERFLP2 ;ALWAYS ERRD2 JSR MAPTXT - JMP PUTNEW + JMP PUTNEW .SKI 5 ; TIME IS PASSED TO AND FROM THE SYSTEM IN ALL THREE ; REGISTERS IN THE FOLLOWING WAY: @@ -340,22 +340,22 @@ LKT50 STA TMHOUR STY INDEX1+1 LDY #STRBNK ;BANK FOR RECENT ALLOCATION STY INDEX1+2 - STY I6509 + STY I6509 TAY ; .Y = 8 -; PUT IN THE NULL TERMINATOR +; PUT IN THE NULL TERMINATOR DEY LDA #0 STA (INDEX1)Y DEY -; DO TENTHS, CONVERT TO ASCII +; DO TENTHS, CONVERT TO ASCII LDA TMTEN CLC ADC #'0' STA (INDEX1)Y DEY -; .Y INDEX TO PLACE FOR NEXT DIGIT -; .X INDEX TO NEXT BYTE CONTAINING 2 PACKED -; BCD DIGITS(REL TO TMHOUR) +; .Y INDEX TO PLACE FOR NEXT DIGIT +; .X INDEX TO NEXT BYTE CONTAINING 2 PACKED +; BCD DIGITS(REL TO TMHOUR) LDX #2 GTI70 LDA TMHOUR,X ;DO LOW DIGIT FIRST @@ -422,7 +422,7 @@ MKTMC LDA #0 MKTMD STA TMTEN -; ADJUST 24 HR CLOCK, SETTING P.M. IF NEEDED +; ADJUST 24 HR CLOCK, SETTING P.M. IF NEEDED LDA TMHOUR CMP #$12 ; HR >= 12? BCC MKTI50 @@ -514,7 +514,7 @@ TRYAG4 CPY STREND+1 BCC GARBAG STRFRE STA FRESPC STY FRESPC+1 - JSR MAPSTR + JSR MAPSTR LDY #$02 ;FLAG STRING AS GARB. LDA #$FF ;GARBAGE FLAG STA (INDEX1)Y @@ -523,7 +523,7 @@ STRFRE STA FRESPC DEY PLA ;LENGTH STA (INDEX1)Y - JSR MAPTXT + JSR MAPTXT LDX FRESPC LDY FRESPC+1 STX FRETOP @@ -550,15 +550,15 @@ GRBG99 ; INSTRUCTION IS USED. ; GARBA2 - LDA #STRBNK ;SET INDIRECTION TO STRING BANK + LDA #STRBNK ;SET INDIRECTION TO STRING BANK STA $1 - LDA TEMPPT ;GET # OF TEMPORARY STRINGS - BEQ NAA ;SKIP IF NONE -LA ;CREATE A BACK POINTER ON CURRENT TEMPORARY STRINGS - PHA ;SAVE # OF TEMPS + LDA TEMPPT ;GET # OF TEMPORARY STRINGS + BEQ NAA ;SKIP IF NONE +LA ;CREATE A BACK POINTER ON CURRENT TEMPORARY STRINGS + PHA ;SAVE # OF TEMPS JSR SLR1 ;PUT ADDRESS OF TEMPORARY STRING'S BACK POINTER IN TEMPF2 TYA .Y NOW POINTS TO WHICH TEMPORARY DESCRIPTOR - ;GET LOCATION OF TEMP DESCRIPTOR +; GET LOCATION OF TEMP DESCRIPTOR CLC ADC TEMPST LDY #0 @@ -574,88 +574,88 @@ LA ;CREATE A BACK POINTER ON CURRENT TEMPORARY STRINGS SEC SBC #4 BNE LA ;REPEAT IF THIS WAS NOT LAST TEMPORARY -NAA ;MAIN BODY OF GARBAGE COLLECT - LDY #$00 ;SET UP FLAG - STY HIGHDS - LDA MEMTOP ;GET TOP OF MEMORY - LDY MEMTOP+1 - STA GRBTOP ;SET BOTH POINTERS - STA GRBPNT - STA FRESPC - STY GRBTOP+1 - STY GRBPNT+1 - STY FRESPC+1 +NAA ;MAIN BODY OF GARBAGE COLLECT + LDY #$00 ;SET UP FLAG + STY HIGHDS + LDA MEMTOP ;GET TOP OF MEMORY + LDY MEMTOP+1 + STA GRBTOP ;SET BOTH POINTERS + STA GRBPNT + STA FRESPC + STY GRBTOP+1 + STY GRBPNT+1 + STY FRESPC+1 ; ; DO WHILE (GRBPNT <> FRETOP) ; GLOOP - JSR CHKGRB ;CHECK GARBAGE STRING - BNE COL01 ;IF NOT GARBAGE STRING -COL00A LDY #0 ;GET LENGTH - JSR MAPSTR + JSR CHKGRB ;CHECK GARBAGE STRING + BNE COL01 ;IF NOT GARBAGE STRING +COL00A LDY #0 ;GET LENGTH + JSR MAPSTR LDA (GRBPNT)Y - JSR MOVPNT ;MOVE GRBPNT TO NEXT + JSR MOVPNT ;MOVE GRBPNT TO NEXT SEC - ROR HIGHDS ;INDICATE GARBAGE STRING FOUND - BNE GLOOP ;ALWAYS + ROR HIGHDS ;INDICATE GARBAGE STRING FOUND + BNE GLOOP ;ALWAYS ; COL01 - BIT HIGHDS - BPL COL03 ;IF GARBARE STRING NOT FOUND - LDX #$00 - STX HIGHDS ;CLEAR INDICATOR + BIT HIGHDS + BPL COL03 ;IF GARBARE STRING NOT FOUND + LDX #$00 + STX HIGHDS ;CLEAR INDICATOR ; ; MOVE A STRING OVER GARBAGE ; -COL02 LDY #$02 ;MOVE THE LINK BYTES - JSR MAPSTR +COL02 LDY #$02 ;MOVE THE LINK BYTES + JSR MAPSTR COL02A LDA (GRBPNT)Y STA (GRBTOP)Y DEY - BPL COL02A + BPL COL02A ; - JSR SAV7 + JSR SAV7 TXA ;PUT LENGTH-1 IN .Y TAY - JSR MAPSTR + JSR MAPSTR ; GLOP1 DEY LDA (GRBPNT)Y STA (GRBTOP)Y DEX - BNE GLOP1 + BNE GLOP1 ; - JSR MAPINX - LDY #$02 ;FIX THE DESCRIPTOR -COL02B LDA GRBTOP-1,Y + JSR MAPINX + LDY #$02 ;FIX THE DESCRIPTOR +COL02B LDA GRBTOP-1,Y STA (INDEX1)Y DEY - BNE COL02B - .IFN GDEBUG < + BNE COL02B +.IFN GDEBUG < JSR GRBPRI ;GARBAGE DEBUG > - LDA GRBPNT ;CHECK POINTER - LDY GRBPNT+1 - JSR CHKGRB ;CHECK GARBAGE STRING - BEQ COL00A ;IF GARBAGE STRING FOUND - BNE COL02 ;ALWAYS + LDA GRBPNT ;CHECK POINTER + LDY GRBPNT+1 + JSR CHKGRB ;CHECK GARBAGE STRING + BEQ COL00A ;IF GARBAGE STRING FOUND + BNE COL02 ;ALWAYS ; COL03 JSR SAV7 JMP GLOOP ; SAV7 LDY #0 ;SKIP OVER STRING BODY - JSR MAPINX + JSR MAPINX LDA (INDEX1)Y TAX - JSR MOVTOP - STA FRESPC - STY FRESPC+1 + JSR MOVTOP + STA FRESPC + STY FRESPC+1 TXA - JMP MOVPNT - .IFN GDEBUG < - JSR GRBPRI ;GARBAGE DEBUG + JMP MOVPNT +.IFN GDEBUG < + JSR GRBPRI ;GARBAGE DEBUG > .SKIP 4 ; SUBROUTINES USED FOR GARBAGE COLLECTION @@ -669,39 +669,39 @@ SAV7 LDY #0 ;SKIP OVER STRING BODY ; EXIT TO CFRE4. ; CARRY CLEAR Y,A <> FRETOP. CHKGRB - CPY FRETOP+1 ;END OF STRINGS ? - BCC CFRE4 - BNE CFRE1 ;IF NOT EQUAL - CMP FRETOP - BEQ CFRE4 - BCC CFRE4 + CPY FRETOP+1 ;END OF STRINGS ? + BCC CFRE4 + BNE CFRE1 ;IF NOT EQUAL + CMP FRETOP + BEQ CFRE4 + BCC CFRE4 ; CFRE1 - BIT HIGHDS ;CHECK FLAG - BMI CFRE2 ;IF EMPTY STRING FOUND - LDA #PTRSIZ ;SKIP POINTERS PAST - JSR MOVTOP ;MOVE TOP POINTER -CFRE2 LDA #PTRSIZ ;SKIP POINTERS PAST - JSR MOVPNT ;MOVE POINTERS - LDY #$02 - JSR MAPSTR + BIT HIGHDS ;CHECK FLAG + BMI CFRE2 ;IF EMPTY STRING FOUND + LDA #PTRSIZ ;SKIP POINTERS PAST + JSR MOVTOP ;MOVE TOP POINTER +CFRE2 LDA #PTRSIZ ;SKIP POINTERS PAST + JSR MOVPNT ;MOVE POINTERS + LDY #$02 + JSR MAPSTR LDA (GRBPNT)Y ;GARBAGE ? - CMP #$FF - BNE CFRE3 ;IF NOT GARBAGE STRING + CMP #$FF + BNE CFRE3 ;IF NOT GARBAGE STRING RTS ; CFRE3 LDA (GRBPNT)Y ;TO LINK BYTES - STA INDEX1,Y + STA INDEX1,Y DEY - BPL CFRE3 ;IF THREE BYTES NOT MOVED + BPL CFRE3 ;IF THREE BYTES NOT MOVED RTS ; -CFRE4 ;MARK TEMPORARY STRINGS AS GARBAGE AND EXIT - LDA TEMPPT ;GET # OF TEMPORARY STRINGS - BEQ NAA2 ;SKIP IF NONE -FA ;MARK CURRENT TEMPORARY STRINGS AS GARBAGE - PHA ;SAVE # OF TEMPS +CFRE4 ;MARK TEMPORARY STRINGS AS GARBAGE AND EXIT + LDA TEMPPT ;GET # OF TEMPORARY STRINGS + BEQ NAA2 ;SKIP IF NONE +FA ;MARK CURRENT TEMPORARY STRINGS AS GARBAGE + PHA ;SAVE # OF TEMPS JSR SLR1 ;PUT ADDRESS OF TEMPORARY STRING'S BACK POINTER IN TEMPF2 LDA (TEMPST),Y ;GET STRING LENGTH LDY #0 ;SET UP INDEX @@ -717,53 +717,53 @@ FA ;MARK CURRENT TEMPORARY STRINGS AS GARBAGE SBC #4 BNE FA ;REPEAT IF THIS WAS NOT LAST TEMPORARY NAA2 - JSR MAPTXT ; RESTORE I6509 + JSR MAPTXT ; RESTORE I6509 PLA ;THROW AWAY RETURN ADDRESS PLA - LDA FRESPC ;FIX FRETOP AND FRESPC - LDY FRESPC+1 - STA FRETOP - STY FRETOP+1 + LDA FRESPC ;FIX FRETOP AND FRESPC + LDY FRESPC+1 + STA FRETOP + STY FRETOP+1 RTS .SKIP 2 -SLR1 ; +SLR1 ; TAY DEY DEY - LDA (TEMPST),Y ;GET HIGH BYTE OF ADDRESS - STA TEMPF2+1 ;AND SAVE IT + LDA (TEMPST),Y ;GET HIGH BYTE OF ADDRESS + STA TEMPF2+1 ;AND SAVE IT DEY - LDA (TEMPST),Y ;GET LOW BYTE OF ADDRESS + LDA (TEMPST),Y ;GET LOW BYTE OF ADDRESS STA TEMPF2 ;AND SAVE IT DEY - LDA (TEMPST),Y ;GET LENGTH OF STRING + LDA (TEMPST),Y ;GET LENGTH OF STRING CLC - ADC TEMPF2 ;AND ADJUST TEMPF2 TO POINT TO BACK POINTER - STA TEMPF2 ;RATHER THAN BODY OF THE STRING + ADC TEMPF2 ;AND ADJUST TEMPF2 TO POINT TO BACK POINTER + STA TEMPF2 ;RATHER THAN BODY OF THE STRING BCC SLR2 INC TEMPF2+1 SLR2 RTS .SKIP 4 -MOVPNT EOR #$FF ;COMP AND ADD +MOVPNT EOR #$FF ;COMP AND ADD SEC - ADC GRBPNT - LDY GRBPNT+1 - BCS MOV00 + ADC GRBPNT + LDY GRBPNT+1 + BCS MOV00 DEY -MOV00 STA GRBPNT - STY GRBPNT+1 +MOV00 STA GRBPNT + STY GRBPNT+1 RTS .SKIP 4 -MOVTOP EOR #$FF ;COMP AND ADD +MOVTOP EOR #$FF ;COMP AND ADD SEC - ADC GRBTOP - LDY GRBTOP+1 - BCS MOV01 + ADC GRBTOP + LDY GRBTOP+1 + BCS MOV01 DEY -MOV01 STA GRBTOP - STY GRBTOP+1 +MOV01 STA GRBTOP + STY GRBTOP+1 RTS - .IFN GDEBUG < +.IFN GDEBUG < .SKIP 3 PUTSPC LDA #' ' @@ -855,95 +855,95 @@ GPR10 INFCER JMP FCERR INSTRG LDX #2 INCOP1 LDA FACMO,X ;SAVE POINTER TO TEMPORARY DESCRIPTOR - STA TMPDES,X - DEX - BPL INCOP1 - JSR FRMEVL ;GET NEXT ARG. - JSR CHKSTR ;MUST BE STRING - LDX #2 + STA TMPDES,X + DEX + BPL INCOP1 + JSR FRMEVL ;GET NEXT ARG. + JSR CHKSTR ;MUST BE STRING + LDX #2 INCOP2 LDA FACMO,X ;AND SAVE IT, TOO - STA TMPDES+3,X - DEX - BPL INCOP2 + STA TMPDES+3,X + DEX + BPL INCOP2 ; - LDX #1 - STX FACLO ;IF NO STARTING POSITION IS GIVEN, 1 IS ASSUMED - JSR SAV17 + LDX #1 + STX FACLO ;IF NO STARTING POSITION IS GIVEN, 1 IS ASSUMED + JSR SAV17 INST1 JSR CHKCLS - LDX FACLO - BEQ INFCER ;S.A. OF 0 IS AN ERROR - DEX - STX POSITN + LDX FACLO + BEQ INFCER ;S.A. OF 0 IS AN ERROR + DEX + STX POSITN ; - LDX #5 ;MOVE POINTERS TO TEMP DESCRIPTORS TO ZERO PAGE + LDX #5 ;MOVE POINTERS TO TEMP DESCRIPTORS TO ZERO PAGE INST2 LDA TMPDES,X - STA PTARG1,X - DEX - BPL INST2 + STA PTARG1,X + DEX + BPL INST2 ; - LDA PTARG1+2 ;NOW MOVE IN THE DESCRIPTORS - STA I6509 - LDY #3 + LDA PTARG1+2 ;NOW MOVE IN THE DESCRIPTORS + STA I6509 + LDY #3 INST3 LDA (PTARG1)Y - STA STR1,Y - DEY - BPL INST3 + STA STR1,Y + DEY + BPL INST3 ; - LDA PTARG2+2 - STA I6509 - LDY #3 + LDA PTARG2+2 + STA I6509 + LDY #3 INST4 LDA (PTARG2)Y - STA STR2,Y - DEY - BPL INST4 + STA STR2,Y + DEY + BPL INST4 ; - LDA STR2 ;CHECK IF STRING 2 IS NULL - BEQ INSTNF ;IF SO, RETURN ZERO + LDA STR2 ;CHECK IF STRING 2 IS NULL + BEQ INSTNF ;IF SO, RETURN ZERO ; - LDA STR1+3 - STA I6509 + LDA STR1+3 + STA I6509 INST5 LDA #0 - STA MATCH - CLC - LDA STR2 ;LENGTH OF STRING 2 - ADC POSITN - BCS INSTNF ;TOO LONG, NOT FOUND - CMP STR1 ;SEE IF > LENGTH OF STRING 1 - BCC INST6 ;< LEN. STRING 1 - BNE INSTNF ;MUST BE >, NOT FOUND + STA MATCH + CLC + LDA STR2 ;LENGTH OF STRING 2 + ADC POSITN + BCS INSTNF ;TOO LONG, NOT FOUND + CMP STR1 ;SEE IF > LENGTH OF STRING 1 + BCC INST6 ;< LEN. STRING 1 + BNE INSTNF ;MUST BE >, NOT FOUND INST6 LDY MATCH - CPY STR2 ;IF MATCH LEN. = STR. LEN, THEN FOUND - BEQ INSTFD - TYA - CLC - ADC POSITN ;COMPARE STRING1(S+P+M) WITH STRING2(M) - TAY - LDA (STR1+1)Y - STA TMPPOS - LDY MATCH - LDA (STR2+1)Y - CMP TMPPOS - BEQ INST7 - INC POSITN ;NOT THE SAME, START OVER FROM NEXT POSITION - BNE INST5 ;ALWAYS + CPY STR2 ;IF MATCH LEN. = STR. LEN, THEN FOUND + BEQ INSTFD + TYA + CLC + ADC POSITN ;COMPARE STRING1(S+P+M) WITH STRING2(M) + TAY + LDA (STR1+1)Y + STA TMPPOS + LDY MATCH + LDA (STR2+1)Y + CMP TMPPOS + BEQ INST7 + INC POSITN ;NOT THE SAME, START OVER FROM NEXT POSITION + BNE INST5 ;ALWAYS INST7 INC MATCH ;COUNT CHARACTERS THAT MATCH - BNE INST6 ;ALWAYS + BNE INST6 ;ALWAYS ; INSTFD INC POSITN - LDA POSITN + LDA POSITN .BYT $2C INSTNF LDA #0 - PHA - LDA TMPDES+3 ;FREE TEMP DESCRIPTORS - LDY TMPDES+4 - LDX TMPDES+5 - JSR FRETMP - LDA TMPDES - LDY TMPDES+1 - LDX TMPDES+2 - JSR FRETMP - JSR MAPTXT - PLA ;SEND RESULT BACK AS AN INTEGER - TAY - JMP SNGFLT + PHA + LDA TMPDES+3 ;FREE TEMP DESCRIPTORS + LDY TMPDES+4 + LDX TMPDES+5 + JSR FRETMP + LDA TMPDES + LDY TMPDES+1 + LDX TMPDES+2 + JSR FRETMP + JSR MAPTXT + PLA ;SEND RESULT BACK AS AN INTEGER + TAY + JMP SNGFLT .END diff --git a/BASIC_CBM2_1983-05-31/sysvec b/BASIC_CBM2_1983-05-31/sysvec index ac5a576..917455c 100644 --- a/BASIC_CBM2_1983-05-31/sysvec +++ b/BASIC_CBM2_1983-05-31/sysvec @@ -1,5 +1,5 @@ .PAGE 'INTERFACE JUMP VECTORS.' - *=VECORG + *=VECORG ; IOINIT *=*+3 ;I/O INITIALIZATION CINT *=*+3 ;SCREEN INITIALIZATION diff --git a/BASIC_CBM2_1983-05-31/tokens b/BASIC_CBM2_1983-05-31/tokens index 0587c38..f83a1ae 100644 --- a/BASIC_CBM2_1983-05-31/tokens +++ b/BASIC_CBM2_1983-05-31/tokens @@ -1,12 +1,12 @@ .PAGE 'TABLES, RESERVED WORDS, AND ERROR TEXTS' - *= CODFWA + *= CODFWA ; ; ENTRY NAME AND ENTRY POINT JUMP BENTRY JMP INIT ;ENTRY POINT FOR START - JMP WARM ;WARM START RE-ENTRY POINT - .BYTE $C3,$C2,$CD,'8' ;CMB8 ($80 OR'D IN 1ST 3 CHARS) - .IFN CC2 < - .BYTE ' ' + JMP WARM ;WARM START RE-ENTRY POINT + .BYTE $C3,$C2,$CD,'8' ;CMB8 ($80 OR'D IN 1ST 3 CHARS) +.IFN CC2 < + .BYTE ' ' .SKI 3 ; VSP ROM INDIRECT TABLE (PETII BASIC ONLY) ; @@ -102,10 +102,10 @@ STMDSP .WORD TRAP-1 .WORD RESUME-1 .WORD DISPOS-1 - .IFN CC1+CC2 < +.IFN CC1+CC2 < .WORD PUCTRL-1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < .WORD PUCTRL-1 > .SKIP 4 @@ -319,7 +319,7 @@ TKINST=TKERRD+1 ;> .BYTE 0 ;END OF RESERVED WORD LIST .PAGE 'ERROR MESSAGE ADDRESS TABLE.' -EBASE ;BASE FOR ERROR MESSAGES +EBASE ;BASE FOR ERROR MESSAGES ; ; MS0 =*-EBASE @@ -412,11 +412,11 @@ ERRCR =*-EBASE ERRDI =*-EBASE .WORD AERDI ERRBLN=*-EBASE - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < ERROT =*-EBASE .WORD AEROT > - .IFN CC3+CC4 < +.IFN CC3+CC4 < ERROA =*-EBASE .WORD AEROA > @@ -433,7 +433,7 @@ AMS6 .BYTE 'NOT INPUT FILE',0 AMS7 .BYTE 'NOT OUTPUT FILE',0 AMS8 .BYTE 'MISSING FILE NAME',0 AMS9 .BYTE 'ILLEGAL DEVICE ' - .BYTE 'NUMBER',0 + .BYTE 'NUMBER',0 ; ; BASIC ERROR MESSAGES. ; @@ -471,12 +471,12 @@ AEXI .BYTE 'EXTRA IGNORED',CR,0 ATRY .BYTE 'REDO FROM START',CR,0 AREMSG .BYTE 'MORE',CR,0 AEROS .BYTE 'OUT OF STACK',0 - .IFN CC2+CC3+CC4 < -AEROT .BYTE 'OUT OF TEXT',0 +.IFN CC2+CC3+CC4 < +AEROT .BYTE 'OUT OF TEXT',0 > - .IFN CC3+CC4 < -AEROA .BYTE 'OUT OF ARRAY SPACE',0 +.IFN CC3+CC4 < +AEROA .BYTE 'OUT OF ARRAY SPACE',0 > -AERCR .BYTE 'UNABLE TO RESUME',0 -AERDI .BYTE 'UNABLE TO DISPOSE',0 +AERCR .BYTE 'UNABLE TO RESUME',0 +AERDI .BYTE 'UNABLE TO DISPOSE',0 .END diff --git a/BASIC_CBM2_1983-05-31/using b/BASIC_CBM2_1983-05-31/using index 67fa6d5..82aac4c 100644 --- a/BASIC_CBM2_1983-05-31/using +++ b/BASIC_CBM2_1983-05-31/using @@ -92,7 +92,7 @@ REAY JSR CHRGOT ;GET OLD CHARACTER JSR MAPTXT JSR FRETMP JSR CHRGOT - CMP #'; ;SEMI-COLON? + CMP #'; ;SEMI-COLON? BEQ NOCR ;BRANCH IF YES JMP OCRLF ;END OF PRINT USING ; @@ -423,15 +423,15 @@ AFRM JSR SAV1 BMI BOUT ;YES, DO A FILL CHAR LDA PUCOMA JMP OUT ;NO,...OUTPUT A COMMA CHAR - ; +; BOUT LDA BLFD JMP OUT - ; +; PUNT CMP #'. ;DECIMAL POINT? BNE AFPLUS LDA PUDOT ;YES... JMP OUT - ; +; ZEROT LDA NOZE ;# OF ZEROS BEQ LZER DEC NOZE ;COUNT LEADING ZEROS @@ -441,7 +441,7 @@ ZEROT LDA NOZE ;# OF ZEROS ROR DOLR ;CLEAR DOLLAR FLAG LDA PUMONY JMP OUTS ;OUTPUT MONEY SYMBOL - ; +; AFPLUS CMP #'+ ;PLUS? BEQ ISPL ;YES... CMP #'- ;MINUS? @@ -466,12 +466,12 @@ MOUT JSR CDOUT ;OUTPUT SIGN EXP JSR CDOUT ;OUTPUT FIRST DIG EXP LDY ENDFD JMP TELX - ; +; ISPL1 LDA SNO ;POSITIVE? BMI BOUT ;YES...OUT BLANK OR * ISPL LDA SNO ;OUTPUT SGN JMP OUT - ; +; PNDD LDA SWE ;# OF BLANKS BEQ ZEROT DEC SWE ;COUNT ! @@ -485,7 +485,7 @@ TAT JSR SAV1 JSR CDOUT ;OUT BLANK OR * INY JMP TAT - ; +; CDOUT JSR OCHR ;CHAR OUT DEC CFORM ;COUNT IT GOOOP RTS diff --git a/BASIC_CBM2_1984-01-04/basic b/BASIC_CBM2_1984-01-04/basic index edbf64f..707144e 100644 --- a/BASIC_CBM2_1984-01-04/basic +++ b/BASIC_CBM2_1984-01-04/basic @@ -99,32 +99,32 @@ ADDPR8 =ADDPR4+ADDPR4 STKEND =$1FB ;FIRST BYTE USED FOR STACK CLMWID =10 PI =$FF -STRSIZ =4 ;# OF LOCS PER STR DESCRIPTOR -PTRSIZ =3 ;# OF LOCS PER POINTER -NUMTMP =3 ;# OF STRING TEMPORARIES +STRSIZ =4 ;# OF LOCS PER STR DESCRIPTOR +PTRSIZ =3 ;# OF LOCS PER POINTER +NUMTMP =3 ;# OF STRING TEMPORARIES .SKI 3 ; BANK EQUATES SYSBNK =$0F ;SYSTEM BANK# MXBANK =SYSBNK+1 ;1ST BANK OUT OF RANGE - .IFN CC1 < +.IFN CC1 < TXTBNK =0+BF ;TEXT BANK *ONE* VARBNK =0+BF ;SIMPLE VARIABLE BANK ARYBNK =0+BF ;ARRAY BANK STRBNK =0+BF ;STRING BANK > - .IFN CC2 < +.IFN CC2 < TXTBNK =0+BF ;TEXT BANK *TWO* VARBNK =1+BF ;SIMPLE VARIABLE BANK ARYBNK =1+BF ;ARRAY BANK STRBNK =1+BF ;STRING BANK > - .IFN CC3 < +.IFN CC3 < TXTBNK =0+BF ;TEXT BANK *THREE* VARBNK =2+BF+BF ;SIMPLE VARIABLE BANK ARYBNK =1+BF ;ARRAY BANK STRBNK =2+BF+BF ;STRING BANK > - .IFN CC4 < +.IFN CC4 < TXTBNK =0+BF ;TEXT BANK *FOUR* VARBNK =3 ;SIMPLE VARIABLE BANK ARYBNK =1+BF ;ARRAY BANK @@ -133,7 +133,7 @@ STRBNK =2+BF+BF ;STRING BANK .SKI 4 ; DOS INTERFACE EQUATES. DOSFNL =16+2 ;FILENAME LENGTH -DOSDSK =8 ;DISK DEVICE # +DOSDSK =8 ;DISK DEVICE # DOSLFN =14 ;DOS INTERNAL LOGICAL FILE NUMBER DOSCTL =21 ;DOS DIRECTORY LINES BEFORE PROMPT DOSLST =DOSFNL+DOSFNL+DOSFNL+16 ;(DOSFNL+2)*3+10 --TRANSMIT BUFFER LENGTH @@ -152,7 +152,7 @@ DOSLST =DOSFNL+DOSFNL+DOSFNL+16 ;(DOSFNL+2)*3+10 --TRANSMIT BUFFER LENGTH .LIB STRNG2 ;.LIB RENUMBER .LIB DELETE - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < .LIB USING > .LIB BUTES1 diff --git a/BASIC_CBM2_1984-01-04/bdefine b/BASIC_CBM2_1984-01-04/bdefine index 54ab3ba..87ffbd6 100644 --- a/BASIC_CBM2_1984-01-04/bdefine +++ b/BASIC_CBM2_1984-01-04/bdefine @@ -1,6 +1,6 @@ .PAG 'BDEFINE' ; PAGE ZERO STORAGE DEFINITIONS - *=0 + *=0 ; E6509 *=*+1 ;EXECUTION BANK I6509 *=*+1 ;INDIRECTION BANK @@ -13,7 +13,7 @@ TMTEN *=*+1 ; FORM *=*+PTRSIZ ;FORMAT POINTER ; -INTEGR ;ONE-BYTE INTEGER FROM QINT +INTEGR ;ONE-BYTE INTEGER FROM QINT CHARAC *=*+1 ;A DELIMITING CHAR ENDCHR *=*+1 ;OTHER DELIMITING CHAR COUNT *=*+1 ;GENERAL COUNTER @@ -23,22 +23,22 @@ XCNT *=*+1 ;DOS LOOP COUNTER ; DIMFLG, VALTYP AND INTFLG MUST BE ; CONSECUTIVE LOCATIONS. DIMFLG *=*+1 ;IN GETTING A POINTER TO A VARIABLE -; IT IS IMPORTANT TO REMEMBER WHETHER -; IT IS BEING DONE FOR DIM OR NOT. +; IT IS IMPORTANT TO REMEMBER WHETHER +; IT IS BEING DONE FOR DIM OR NOT. VALTYP *=*+1 ;THE TYPE INDICATOR 0=NUMERIC, 1=STRING INTFLG *=*+1 ;TELLS IF INTEGER ; -GARBFL ;WHETHER TO DO GARBAGE COLLECTION +GARBFL ;WHETHER TO DO GARBAGE COLLECTION DORES *=*+1 ;WHETHER CAN OR CAN'T CRUNCH RES'D WORD. -; TURNED ON WHEN DATA BEING SCANNED BY -; CRUNCH SO UNQUOTED STRS WON'T BE CRUNCHED. +; TURNED ON WHEN DATA BEING SCANNED BY +; CRUNCH SO UNQUOTED STRS WON'T BE CRUNCHED. ; SUBFLG *=*+1 ;FLAG WHETHER SUB'D VARIABLE ALLOWED. -; FOR AND USER-DEFINED FUNCTION POINTER -; FETCHING TURN THIS ON BEFORE CALLING -; PTRGET SO ARRAYS WON'T BE DETECTED. -; STKINI AND PTRGET CLEAR IT. -; ALSO DISALLOWS INTEGERS THERE. +; FOR AND USER-DEFINED FUNCTION POINTER +; FETCHING TURN THIS ON BEFORE CALLING +; PTRGET SO ARRAYS WON'T BE DETECTED. +; STKINI AND PTRGET CLEAR IT. +; ALSO DISALLOWS INTEGERS THERE. ; INPFLG *=*+1 ;FLAGS WHETHER WE ARE DOING INPUT OR READ. ; @@ -61,7 +61,7 @@ INDEX2 *=*+PTRSIZ ;DIRECT CELLS FOR 2ND INDEXING USAGE ; RESHO *=*+1 ;RESULT OF MULTIPLIER AND DIVIDER RESMOH *=*+1 -ADDEND ;TEMP USED BY UMULT +ADDEND ;TEMP USED BY UMULT RESMO *=*+1 RESLO *=*+1 *=*+1 ;OVERFLOW PREVIOUS CELLS @@ -98,8 +98,8 @@ RESLO *=*+1 ; MEMTOP (STRS) ; TXTTAB *=*+2 ;POINTER TO BEGINNING OF TEXT AND -; DOESN'T CHANGE AFTER BEING SETUP -; BY INIT +; DOESN'T CHANGE AFTER BEING SETUP +; BY INIT ; TXTEND *=*+2 ;POINTER TO END OF TEXT (EXCEPT 64K) ; @@ -120,28 +120,28 @@ MEMTOP *=*+PTRSIZ ;HIGHEST LOCATION IN MEMORY ; LINE NUMBERS AND TEXTUAL POINTERS CURLIN *=*+2 ;CURRENT LINE NUMBER OLDLIN *=*+2 ;OLD LINE NUMBER (SETUP BY STOP OR -; END IN A PROGRAM) +; END IN A PROGRAM) OLDTXT *=*+PTRSIZ ;OLD TEXT POINTER ; DATLIN *=*+2 ;DATA LINE NUMBER DATPTR *=*+2 ;POINTER TO DATA. INITIALIZED TO POINT -; AT THE ZERO INFRONT OF (TXTTAB) BY -; CLR COMMAND. -; UPDATED BY EXECUTION OF A READ. +; AT THE ZERO INFRONT OF (TXTTAB) BY +; CLR COMMAND. +; UPDATED BY EXECUTION OF A READ. INPPTR *=*+2 ;REMEMBERS WHERE INPUT IS COMING FROM. .SKI 4 ; STUFF USED IN EVALUATIONS ; VARNAM *=*+2 ;VARIABLE'S NAME ; -FDECPT ;POINTER INTO POWER OF TENS TABLE. +FDECPT ;POINTER INTO POWER OF TENS TABLE. VARPNT *=*+PTRSIZ ;POINTER TO VARIABLE IN MEMORY ; -FORPNT ;A VARIABLE'S POINTER FOR FOR LOOPS -; AND LET STATEMENTS (3 BYTES). +FORPNT ;A VARIABLE'S POINTER FOR FOR LOOPS +; AND LET STATEMENTS (3 BYTES). LSTPNT *=*+PTRSIZ ;POINTER TO LIST STRING (3 BYTES). ; -VARTXT ;SAVE CURRENT TXTPTR ON READ. +VARTXT ;SAVE CURRENT TXTPTR ON READ. OPPTR *=*+PTRSIZ ;POINTER TO CURRENT OP'S ENTRY IN OPTAB. ; OPMASK *=*+1 ;MASK CREATED BY CURRENT OPERATION. @@ -149,8 +149,8 @@ OPMASK *=*+1 ;MASK CREATED BY CURRENT OPERATION. ; TEMPORARY FLOATING RESULT REGISTERS (5BYTES EACH): ; TEMPF1,TEMPF2,TEMPF3 ; -TEMPF3 ;TEMP FLOAT REG -GRBPNT ;POINTER USED IN GARBAGE COLLECTION. +TEMPF3 ;TEMP FLOAT REG +GRBPNT ;POINTER USED IN GARBAGE COLLECTION. DEFPNT *=*+PTRSIZ ;POINTER USED IN FUNCTION DEFINITION. ; DSCPNT *=*+PTRSIZ ;POINTER TO A STRING DESCRIPTOR. @@ -158,24 +158,24 @@ DSCPNT *=*+PTRSIZ ;POINTER TO A STRING DESCRIPTOR. JMPER *=*+2 ;THREE BYTES LONG OLDOV *=*+1 ;THE OLD OVERFLOW. ; -TEMPF1 ;TEMP FLOAT REG -PTARG1=TEMPF1 ;MULTIPLY DEF'D FOR USE BY INSTR$ -PTARG2=TEMPF1+3 -STR1=TEMPF1+6 -STR2=TEMPF1+10 -TMPPOS=TEMPF1+14 -POSITN=TEMPF1+15 -MATCH=TEMPF1+16 +TEMPF1 ;TEMP FLOAT REG +PTARG1 =TEMPF1 ;MULTIPLY DEF'D FOR USE BY INSTR$ +PTARG2 =TEMPF1+3 +STR1 =TEMPF1+6 +STR2 =TEMPF1+10 +TMPPOS =TEMPF1+14 +POSITN =TEMPF1+15 +MATCH =TEMPF1+16 ARYPNT ;POINTER USED IN ARRAY BUILDING. HIGHDS *=*+PTRSIZ ;DESTINATION OF HIGHEST ELEMENT IN BLT. HIGHTR *=*+PTRSIZ ;SOURCE OF HIGHEST ELEMENT TO MOVE. ; -TEMPF2 ;TEMP FLOAT REG (5BYTES) +TEMPF2 ;TEMP FLOAT REG (5BYTES) LOWDS *=*+1 ;LOCATION OF LAST BYTE TRANSFERED (3 BYTES). DECCNT *=*+1 ;NUMBER OF PLACES BEFORE DECIMAL POINT. TENEXP *=*+1 ;BASE TEN EXPONENT ; -GRBTOP ;POINTER USED IN GARBAGE COLLECTION.(3 BYTES) +GRBTOP ;POINTER USED IN GARBAGE COLLECTION.(3 BYTES) LOWTR *=*+1 ;LAST THING TO MOVE IN BLT (3 BYTES). DPTFLG *=*+1 ;HAS A DPT BEEN INPUT EXPSGN *=*+1 ;SIGN OF EXPONENT @@ -187,19 +187,19 @@ FAC FACEXP *=*+1 FACHO *=*+1 ;MOST SIGNIFICANT BYTE OF MANTISSA. FACMOH *=*+1 -INDICE ;USED BY QINT. +INDICE ;USED BY QINT. FACMO *=*+1 FACLO *=*+1 FACSGN *=*+1 -DEGREE ;COUNT USED BY POLYNOMIALS. +DEGREE ;COUNT USED BY POLYNOMIALS. SGNFLG *=*+1 BITS *=*+1 ;CELL FOR SHIFTR TO USE. .SKI 4 ; THE FLOATING ARGUMENT (UNPACKED) -T1=* ;TEMPORARIES --USES FP BUFFER -T2=T1+1 -T3=T1+2 -T4=T1+3 +T1 =* ;TEMPORARIES --USES FP BUFFER +T2 =T1+1 +T3 =T1+2 +T4 =T1+3 ; ARGEXP *=*+1 ARGHO *=*+1 @@ -212,16 +212,16 @@ ARISGN *=*+1 ;A SIGN REFLECTING THE RESULT FACOV *=*+1 ;OVERFLOW BYTE OF THE FAC *=*+1 .SKI 4 -STRNG2 ;-> TO STR OR DESC -POLYPT ;-> TO POLYNOMIAL COEFFICIENTS -CURTOL ;ABSOLUTE LINEAR INDEX IS FORMED HERE +STRNG2 ;-> TO STR OR DESC +POLYPT ;-> TO POLYNOMIAL COEFFICIENTS +CURTOL ;ABSOLUTE LINEAR INDEX IS FORMED HERE FBUFPT *=*+PTRSIZ ;-> INTO FBUFFR USED BY FOUT TXTPTR *=*+PTRSIZ ;POINTER TO CURRENT TERM BUFFPT *=*+PTRSIZ ;^INPUT BUFFER ; -NOZE ;USING'S LEADING ZERO COUNTER +NOZE ;USING'S LEADING ZERO COUNTER PARSTS *=*+1 ;DOS STD PARSER WORD -POINT ;USING'S POINTER TO DECIMAL POINT +POINT ;USING'S POINTER TO DECIMAL POINT PARSTX *=*+1 ;DOS AUX PARSER WORD ; SEEDPT *=*+2 @@ -237,7 +237,7 @@ ERRNUM *=*+1 ; * =$200 FBUFFR -VSPBUF ;BUFFER USED TO INTERFACE WITH VSP +VSPBUF ;BUFFER USED TO INTERFACE WITH VSP *=*+16 ;RESERVE 16 BYTES FOR FILENAME 1 DOSF1L *=*+1 ;DOS FILE NAME 1 LENGTH DOSDS1 *=*+1 ;DOS DISK DRIVE 1 @@ -262,12 +262,12 @@ DOSDID *=*+2 ;DOS DISK IDENTIFIER (2 CHARS) DIDCHK *=*+1 ;DOS DID FLAG ; DOSSTR *=*+1 ;DOS OUTPUT STRING BUFFER -DOSSPC=*-FBUFFR ;SPACED USED BY DOS ROUTINES +DOSSPC =*-FBUFFR ;SPACED USED BY DOS ROUTINES .SKI 4 * =*+46 ; ; -TRMPOS ;CURSOR COLUMN ON CRT +TRMPOS ;CURSOR COLUMN ON CRT ANDMSK *=*+1 ;MASK USED BY WAIT EORMSK *=*+1 ;MASK USED BY WAIT ; @@ -278,7 +278,7 @@ DOMASK TANSGN *=*+1 ;USED IN DETERMINING SIGN OF TAN ; LDAABS *=*+1 ;LDA ABS ROUTINE (SEE INITAT) -TTTEMP ;TEMPORARY STORE +TTTEMP ;TEMPORARY STORE LDAADR *=*+2 ;MODIFIABLE ADDRESS *=*+1 ;RETURN OPCODE .SKI 3 @@ -341,7 +341,7 @@ HIGHST *=*+2 ;MAX OFFSET FOR ANY USER BANK ; ; MSIISM *=*+1 ;USED TO SAVE LENGTH OF STRING TO BE ADDED IN GARB COLLECT -NEWSYS= $FF6C +NEWSYS = $FF6C ; .SKI 4 .END diff --git a/BASIC_CBM2_1984-01-04/butes1 b/BASIC_CBM2_1984-01-04/butes1 index 9f887e2..40b9252 100644 --- a/BASIC_CBM2_1984-01-04/butes1 +++ b/BASIC_CBM2_1984-01-04/butes1 @@ -10,80 +10,80 @@ STXTPT LDA #TXTBNK STA TXTPTR+1 RTS .SKIP 4 -GETNUM JSR GETPIN ;GET POSITIVE INTEGER -COMBYT JSR CHKCOM - JMP GETBYT -; -GTBYTC JSR CHRGET -GETBYT JSR FRMNUM -CONINT JSR POSINT - LDX FACMO - BNE FCER1 - LDX FACLO - JMP CHRGOT +GETNUM JSR GETPIN ;GET POSITIVE INTEGER +COMBYT JSR CHKCOM + JMP GETBYT +; +GTBYTC JSR CHRGET +GETBYT JSR FRMNUM +CONINT JSR POSINT + LDX FACMO + BNE FCER1 + LDX FACLO + JMP CHRGOT .SKIP 4 -GETPIN JSR FRMNUM ;EVALUATE THE FORMULA -GETADR LDA FACSGN - BMI FCER1 - LDA FACEXP - CMP #145 - BCS FCER1 - JSR QINT - LDA FACMO - LDY FACMO+1 - STY POKER - STA POKER+1 +GETPIN JSR FRMNUM ;EVALUATE THE FORMULA +GETADR LDA FACSGN + BMI FCER1 + LDA FACEXP + CMP #145 + BCS FCER1 + JSR QINT + LDA FACMO + LDY FACMO+1 + STY POKER + STA POKER+1 RTS ; -BJMPS ;REFERENCED IN INITIALIZATION ROUTINE -FCER1 JMP FCERR +BJMPS ;REFERENCED IN INITIALIZATION ROUTINE +FCER1 JMP FCERR .SKIP 4 ; THESE ROUTINES CHECK FOR CERTAIN 'VALTYP' ; (C) IS NOT PRESERVED. -FRMNUM JSR FRMEVL +FRMNUM JSR FRMEVL CHKNUM CLC .BYTE $24 CHKSTR SEC -CHKVAL BIT VALTYP - BMI DOCSTR - BCS CHKERR +CHKVAL BIT VALTYP + BMI DOCSTR + BCS CHKERR CHKOK RTS ; -DOCSTR BCS CHKOK -CHKERR LDX #ERRTM - JMP ERROR +DOCSTR BCS CHKOK +CHKERR LDX #ERRTM + JMP ERROR .SKIP 4 ; ; PRINT THE STR WHOSE DESCRIPTOR IS -> BY FACMO STRPRT - JSR FREFAC ;RETURN TEMP -> + JSR FREFAC ;RETURN TEMP -> TAX ;PUT COUNT INTO COUNTER - LDY #0 + LDY #0 INX - JSR MAPINX + JSR MAPINX ; ; OUTPUT X CHARACTERS TO DEVICE STRP2 DEX - BEQ STRP3 + BEQ STRP3 LDA (INDEX)Y - JSR OCHR ;OUTPUT ONE CHAR + JSR OCHR ;OUTPUT ONE CHAR INY - JMP STRP2 ;NEXT -STRP3 JMP MAPTXT + JMP STRP2 ;NEXT +STRP3 JMP MAPTXT ; ; OUTPUT SPACE OSPC - LDA CHANNL - BEQ CRTSKP - LDA #' ' + LDA CHANNL + BEQ CRTSKP + LDA #' ' .BYTE $2C ;EAT NEXT TWO BYTES -CRTSKP LDA #29 +CRTSKP LDA #29 .BYTE $2C ;EAT NEXT TWO BYTES -OUTQST LDA #'?' +OUTQST LDA #'?' ; ; OUTPUT ONE CHARACTER TO DEVICE -OCHR JSR BSOUT ;OUTPUT CHARACTER - AND #$FF +OCHR JSR BSOUT ;OUTPUT CHARACTER + AND #$FF RTS .PAGE 'DOS UTILITY ROUTINES.' ; -MGM 7/23/79- @@ -179,366 +179,366 @@ OCHR JSR BSOUT ;OUTPUT CHARACTER DOSTBL .BYTE $FF,$FF,$FF,$FF,DOSLFN,DOSDSK,$6F .SKIP 2 DOSPAR - LDA #0 + LDA #0 ; -DOSPRS ;SPECIAL ERROR FLAG ENTRY - LDX #$FF ;NO AUX OPTIONS! -DOSPRX ;SPEC AUX ERROR FLAG ENTRY +DOSPRS ;SPECIAL ERROR FLAG ENTRY + LDX #$FF ;NO AUX OPTIONS! +DOSPRX ;SPEC AUX ERROR FLAG ENTRY PHA ;SAVE ERROR FLAGS TXA PHA - LDA #0 - STA PARSTS - STA PARSTX + LDA #0 + STA PARSTS + STA PARSTX .SKI 1 - LDX #DOSSPC-1 ;CLEAR DOS SCRATCH AREA -DOS01 STA FBUFFR,X + LDX #DOSSPC-1 ;CLEAR DOS SCRATCH AREA +DOS01 STA FBUFFR,X DEX - BNE DOS01 - LDX #DOSSA-DOSOFL ;SET SOME DEFAULTS FROM TABLE -DOS02 LDA DOSTBL,X - STA DOSOFL,X + BNE DOS01 + LDX #DOSSA-DOSOFL ;SET SOME DEFAULTS FROM TABLE +DOS02 LDA DOSTBL,X + STA DOSOFL,X DEX - BPL DOS02 - LDX DFBANK - STX DOSBNK + BPL DOS02 + LDX DFBANK + STX DOSBNK ; - JSR CHRGOT ;GET CURRENT CHR - BNE PARSE1 ;IF NOT END OF STATEMENT + JSR CHRGOT ;GET CURRENT CHR + BNE PARSE1 ;IF NOT END OF STATEMENT ; DONE PLA ;GET AUX ERROR FLAG - AND PARSTX ; REPEATED,ILLEGAL PARAMS? - BNE DN20 + AND PARSTX ; REPEATED,ILLEGAL PARAMS? + BNE DN20 PLA ;GET ERROR FLAGS - JSR PRMRPT - LDA PARSTS - LDX PARSTX + JSR PRMRPT + LDA PARSTS + LDX PARSTX RTS ; -PARSE1 CMP #'#' - BEQ LOGADR ;IF LOGICAL FILE NUMBER - CMP #'W' - BEQ RECLEN ;IF RECORD LENGTH - CMP #'L' - BEQ RECLEN ;IF RECORD LENGTH - CMP #'R' - BNE DOS5 ;IF NOT ???? - JSR CHRGET ;MOVE ON - JMP DELIM1 -; -ON1 JSR ON -SAV60 JMP DEL1 -; -UNIT1 JSR UNIT ;DO UNIT# PARSING - BNE SAV60 ;ALWAYS -; -BANK1 JSR BANK - BEQ SAV60 ;ALWAYS +PARSE1 CMP #'#' + BEQ LOGADR ;IF LOGICAL FILE NUMBER + CMP #'W' + BEQ RECLEN ;IF RECORD LENGTH + CMP #'L' + BEQ RECLEN ;IF RECORD LENGTH + CMP #'R' + BNE DOS5 ;IF NOT ???? + JSR CHRGET ;MOVE ON + JMP DELIM1 +; +ON1 JSR ON +SAV60 JMP DEL1 +; +UNIT1 JSR UNIT ;DO UNIT# PARSING + BNE SAV60 ;ALWAYS +; +BANK1 JSR BANK + BEQ SAV60 ;ALWAYS .SKIP 4 -DOS5 CMP #'D' - BEQ DRV1 - CMP #TKON ;"ON" TOKEN - BEQ ON1 - CMP #'B' - BEQ BANK1 - CMP #'U' - BEQ UNIT1 - CMP #'P' - BEQ DOFFL - CMP #'I' - BNE DOS10 ;IF NOT IDENTIFIER - BEQ IDENT +DOS5 CMP #'D' + BEQ DRV1 + CMP #TKON ;"ON" TOKEN + BEQ ON1 + CMP #'B' + BEQ BANK1 + CMP #'U' + BEQ UNIT1 + CMP #'P' + BEQ DOFFL + CMP #'I' + BNE DOS10 ;IF NOT IDENTIFIER + BEQ IDENT ; .SKIP 4 LOGADR - LDA #4 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #0 - BEQ QTYER2 ;IF ILLEGAL VALUE - STX DOSLA - LDA #4 ;SET LOGICAL ADDRESS FLAG - BNE SAV60 ;GET NEXT PARAMETER -DN20 JMP SNERR + LDA #4 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #0 + BEQ QTYER2 ;IF ILLEGAL VALUE + STX DOSLA + LDA #4 ;SET LOGICAL ADDRESS FLAG + BNE SAV60 ;GET NEXT PARAMETER +DN20 JMP SNERR .SKIP 4 RECLEN TAX ;SAVE CHAR - LDA #$40 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - CPX #'W' - BNE RECOO - JSR CHRGET - JMP RECON ;SET PARSTS -RECOO JSR GETVAL - CPX #0 - BEQ QTYER2 ;ZERO ILLEGAL DOSRCL - CPX #255 - BEQ QTYER2 ;ILLEGAL DOSRCL - STX DOSRCL ;STORE PARCEL + LDA #$40 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + CPX #'W' + BNE RECOO + JSR CHRGET + JMP RECON ;SET PARSTS +RECOO JSR GETVAL + CPX #0 + BEQ QTYER2 ;ZERO ILLEGAL DOSRCL + CPX #255 + BEQ QTYER2 ;ILLEGAL DOSRCL + STX DOSRCL ;STORE PARCEL ; RECON - LDA #$40 ;SET DOSRCL FLAG & - BNE TACKY1 + LDA #$40 ;SET DOSRCL FLAG & + BNE TACKY1 ; -DOS10 CMP #'"' - BEQ NAME1 - CMP #'(' - BEQ NAME1 - BNE DN20 +DOS10 CMP #'"' + BEQ NAME1 + CMP #'(' + BEQ NAME1 + BNE DN20 ; .SKIP 4 DRV1 - LDA #$10 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #2 - BCS QTYER2 ;ILLEGAL DRV# IF >1 - STX DOSDS1 - STX DOSDS2 - LDA #$10 -TACKY1 BNE DEL1 -; -QTYER2 JMP QTYERR + LDA #$10 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #2 + BCS QTYER2 ;ILLEGAL DRV# IF >1 + STX DOSDS1 + STX DOSDS2 + LDA #$10 +TACKY1 BNE DEL1 +; +QTYER2 JMP QTYERR .SKIP 4 -IDENT LDA DIDCHK - BEQ IDCON ;ONLY 1 DOSDID ALLOWED - BNE DN20 -; -DOFFL LDA #$02 ;CHK AUX STATUS - JSR PRXRPT - JSR GETOFF ;GET OFFSET VALUE - STY DOSOFL - STA DOSOFL+1 - LDA #$02 +IDENT LDA DIDCHK + BEQ IDCON ;ONLY 1 DOSDID ALLOWED + BNE DN20 +; +DOFFL LDA #$02 ;CHK AUX STATUS + JSR PRXRPT + JSR GETOFF ;GET OFFSET VALUE + STY DOSOFL + STA DOSOFL+1 + LDA #$02 DLIMX1 ORA PARSTX ;SET AUX STATUS BITS - STA PARSTX - BNE DELIM1 ;TRY FOR NXT PARAM + STA PARSTX + BNE DELIM1 ;TRY FOR NXT PARAM ; -DOFFH LDA #$04 - JSR PRXRPT - JSR GETOFF - STY DOSOFH - STA DOSOFH+1 - LDA #$04 - BNE DLIMX1 ;SET AUX STATUS +DOFFH LDA #$04 + JSR PRXRPT + JSR GETOFF + STY DOSOFH + STA DOSOFH+1 + LDA #$04 + BNE DLIMX1 ;SET AUX STATUS ; IDCON - JSR CHRGET ;GET NEXT CHARACTER - STA DOSDID ;M(TXTPTR => DOSDID - JSR CHRGET - STA DOSDID+1 - LDA #$FF - STA DIDCHK ;SET DOSDID FLAG & - JSR CHRGET ;CONTINUE - JMP DELIM1 + JSR CHRGET ;GET NEXT CHARACTER + STA DOSDID ;M(TXTPTR => DOSDID + JSR CHRGET + STA DOSDID+1 + LDA #$FF + STA DIDCHK ;SET DOSDID FLAG & + JSR CHRGET ;CONTINUE + JMP DELIM1 .SKIP 4 NAME1 - LDA #1 ;NAME1 ALLWD ONLY ONCE - JSR NEWNAM ;DO NAME PARSING - STA DOSF1L - STA XCNT ;SAVE TEMP VALUE - LDA #FBUFFR - STA DOSF1A+1 - LDA #SYSBNK ; SET TO SYSTEM BANK - STA DOSF1B -; - LDY #0 - JSR MAPINX + LDA #1 ;NAME1 ALLWD ONLY ONCE + JSR NEWNAM ;DO NAME PARSING + STA DOSF1L + STA XCNT ;SAVE TEMP VALUE + LDA #FBUFFR + STA DOSF1A+1 + LDA #SYSBNK ; SET TO SYSTEM BANK + STA DOSF1B +; + LDY #0 + JSR MAPINX LOOP6 LDA (INDEX)Y - STA FBUFFR,Y ; SET CHAR IN BUFFER + STA FBUFFR,Y ; SET CHAR IN BUFFER INY - CPY XCNT - BCC LOOP6 ;IF NOT FULL NAME - JSR MAPTXT - LDA #1 ;SET NAME1 FLAG + CPY XCNT + BCC LOOP6 ;IF NOT FULL NAME + JSR MAPTXT + LDA #1 ;SET NAME1 FLAG ; DEL1 - ORA PARSTS - STA PARSTS + ORA PARSTS + STA PARSTS ; DELIM1 - JSR CHRGOT - BNE NXXX -DONE1 JMP DONE ;/<> => DONE + JSR CHRGOT + BNE NXXX +DONE1 JMP DONE ;/<> => DONE ; -NEXT6 CMP #TKON - BNE NEXT6A - JMP ON1 -NEXT6A CMP #TKTO ;"TO" TOKEN - BEQ NEXT6B - BNE SAV61 ;SNTAX ERROR +NEXT6 CMP #TKON + BNE NEXT6A + JMP ON1 +NEXT6A CMP #TKTO ;"TO" TOKEN + BEQ NEXT6B + BNE SAV61 ;SNTAX ERROR ; ; IF "TO" IS NOT FOLLOWED BY AN OFFSET PARAM, ; THEN DO FILE2 PARAMS. OTHERWISE, DO HIGH ; OFFSET AND CONTINUE WITH FILE0 OPTIONS. -NEXT6B JSR CHRGET - CMP #'P' - BNE PARS22 - BEQ DOFFH -; -NXXX CMP #',' - BNE NEXT6 - JSR CHRGET - JMP PARSE1 -; -PARSE2 JSR CHRGET -PARS22 CMP #'D' - BEQ DRV2 - CMP #TKON ;"ON" TOKEN - BEQ ON2 - CMP #'U' - BEQ UNIT2 - CMP #'"' - BEQ NAME2 - CMP #'(' - BEQ NAME2 +NEXT6B JSR CHRGET + CMP #'P' + BNE PARS22 + BEQ DOFFH +; +NXXX CMP #',' + BNE NEXT6 + JSR CHRGET + JMP PARSE1 +; +PARSE2 JSR CHRGET +PARS22 CMP #'D' + BEQ DRV2 + CMP #TKON ;"ON" TOKEN + BEQ ON2 + CMP #'U' + BEQ UNIT2 + CMP #'"' + BEQ NAME2 + CMP #'(' + BEQ NAME2 ; DRV2 - LDA #$20 - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR GETVAL - CPX #2 - BCS QTYERR ;ILLEGAL DRIVE # - STX DOSDS2 - LDA #$20 - BNE DEL2 + LDA #$20 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR GETVAL + CPX #2 + BCS QTYERR ;ILLEGAL DRIVE # + STX DOSDS2 + LDA #$20 + BNE DEL2 ; -ON2 JSR ON - JMP DEL2 +ON2 JSR ON + JMP DEL2 ; -UNIT2 JSR UNIT ;DO UNIT# PARSING - BNE DEL2 ;ALWAYS +UNIT2 JSR UNIT ;DO UNIT# PARSING + BNE DEL2 ;ALWAYS ; NAME2 - LDA #2 ;NAME2 ALLOWED ONLY ONCE - JSR NEWNAM - STA DOSF2L - STX DOSF2A - STY DOSF2A+1 - LDA INDEX1+2 ; GET STRNG BANK# - STA DOSF2B - LDA #2 ;SET FILENAME2 FLAG & + LDA #2 ;NAME2 ALLOWED ONLY ONCE + JSR NEWNAM + STA DOSF2L + STX DOSF2A + STY DOSF2A+1 + LDA INDEX1+2 ; GET STRNG BANK# + STA DOSF2B + LDA #2 ;SET FILENAME2 FLAG & ; DEL2 - ORA PARSTS ;SET FLAG IN STATUS - STA PARSTS - JSR CHRGOT - BEQ DONE1 ;DONE ON /<> - CMP #',' - BEQ PARSE2 - CMP #TKON ;"ON" TOKEN - BEQ ON2 - CMP #'U' - BEQ UNIT2 + ORA PARSTS ;SET FLAG IN STATUS + STA PARSTS + JSR CHRGOT + BEQ DONE1 ;DONE ON /<> + CMP #',' + BEQ PARSE2 + CMP #TKON ;"ON" TOKEN + BEQ ON2 + CMP #'U' + BEQ UNIT2 SAV61 - BNE SNER + BNE SNER .SKIP 4 QTYERR - JMP FCERR ;"ILLEGAL QUANTITY" + JMP FCERR ;"ILLEGAL QUANTITY" ; -ON JSR CHRGET - CMP #'U' - BEQ UNIT ;IF CHARACTER IS A "U" - CMP #'B' - BEQ BANK - BNE SNER +ON JSR CHRGET + CMP #'U' + BEQ UNIT ;IF CHARACTER IS A "U" + CMP #'B' + BEQ BANK + BNE SNER ; UNIT - JSR GETVAL - CPX #32 - BCS QTYERR ;ERROR IF >31 - CPX #3 - BCC QTYERR ;ERROR IF <3 - STX DOSFA - LDA #8 + JSR GETVAL + CPX #32 + BCS QTYERR ;ERROR IF >31 + CPX #3 + BCC QTYERR ;ERROR IF <3 + STX DOSFA + LDA #8 RTS ; BANK - LDA #$01 ;REPEATED PARAM? - JSR PRXRPT - JSR GETVAL - CPX #MXBANK ;BANK TOO LARGE? - BCS QTYERR - STX DOSBNK - LDA #$01 - ORA PARSTX ;SET BNK BIT IN AUX STATUS - STA PARSTX - LDA #0 ; .A=STD STATUS WRD, NO BITS TO SET + LDA #$01 ;REPEATED PARAM? + JSR PRXRPT + JSR GETVAL + CPX #MXBANK ;BANK TOO LARGE? + BCS QTYERR + STX DOSBNK + LDA #$01 + ORA PARSTX ;SET BNK BIT IN AUX STATUS + STA PARSTX + LDA #0 ; .A=STD STATUS WRD, NO BITS TO SET RTS ; -SNER JMP SNERR ;JUMP SYSTAN ERROR +SNER JMP SNERR ;JUMP SYSTAN ERROR ; NEWNAM - JSR PRMRPT ;CHECK FOR REPEATED PARAMETER - JSR SAV13 + JSR PRMRPT ;CHECK FOR REPEATED PARAMETER + JSR SAV13 TAX ;SAVE LENGTH OF STRING - BEQ QTYERR ;IF LENGTH = 0 - LDY #0 - JSR SAV12 - CMP #'@' - BNE LENCHK - LDA #$80 - JSR PRMRPT - LDA PARSTS - ORA #$80 ;SET "@" FLAG - STA PARSTS + BEQ QTYERR ;IF LENGTH = 0 + LDY #0 + JSR SAV12 + CMP #'@' + BNE LENCHK + LDA #$80 + JSR PRMRPT + LDA PARSTS + ORA #$80 ;SET "@" FLAG + STA PARSTS DEX ;DECREMENT LENGTH - INC INDEX1 ;INCREMENT PAST "@" - BNE LENCHK ;IF NO CARRY - INC INDEX1+1 + INC INDEX1 ;INCREMENT PAST "@" + BNE LENCHK ;IF NO CARRY + INC INDEX1+1 ; LENCHK TXA - CMP #17 - BCS ERRLEN ;IF LENGTH < 17 - LDX INDEX1 - LDY INDEX1+1 + CMP #17 + BCS ERRLEN ;IF LENGTH < 17 + LDX INDEX1 + LDY INDEX1+1 RTS ; -ERRLEN LDX #ERRLS - JMP ERROR ;FILENAME TOO LONG +ERRLEN LDX #ERRLS + JMP ERROR ;FILENAME TOO LONG .SKIP 4 -GETVAL ;GET NEXTVALUE ROUTINE - JSR CHRGET ;GET NXT CHR -GTVL2 BEQ SNER ;IF END OF STATEMENT - BCC GTVL5 ;CAN BE NUMERIC - JSR CHKOPN ;OR A "(" - JSR GETBYT ;ANYTHING ELSE IS AN ERROR - JMP CHKCLS ;NEED CLOSING ")" +GETVAL ;GET NEXTVALUE ROUTINE + JSR CHRGET ;GET NXT CHR +GTVL2 BEQ SNER ;IF END OF STATEMENT + BCC GTVL5 ;CAN BE NUMERIC + JSR CHKOPN ;OR A "(" + JSR GETBYT ;ANYTHING ELSE IS AN ERROR + JMP CHKCLS ;NEED CLOSING ")" ; -GTVL5 JMP GETBYT ;EVALUATE IT +GTVL5 JMP GETBYT ;EVALUATE IT ; ; GET NEXT 2BYTE EXPR ROUTINE ; EXIT: .A,.Y (HIGH,LOW) VALUE ; -GETOFF JSR CHRGET ;GET NXT CHR - BEQ SNER ;IF END OF STATEMENT - BCC GTFF5 ;CAN BE NUM. CONST - JSR CHKOPN ;OR A "(" - JSR GETPIN ;EXPR - JSR CHKCLS ;NEED CLOSING ")" - LDY POKER - LDA POKER+1 +GETOFF JSR CHRGET ;GET NXT CHR + BEQ SNER ;IF END OF STATEMENT + BCC GTFF5 ;CAN BE NUM. CONST + JSR CHKOPN ;OR A "(" + JSR GETPIN ;EXPR + JSR CHKCLS ;NEED CLOSING ")" + LDY POKER + LDA POKER+1 RTS ; -GTFF5 JMP GETPIN ;EVALUATE IT +GTFF5 JMP GETPIN ;EVALUATE IT .SKIP 4 ; PRMRPT CHECKS FOR A REPEATED PARAMETER. ; ; ENTRY A CONTAINS PARSTS FLAG TO CHECK. PRMRPT - AND PARSTS ;AND WITH PARSTS - BNE SNER ;IF BIT PREVIOUSLY SET + AND PARSTS ;AND WITH PARSTS + BNE SNER ;IF BIT PREVIOUSLY SET RTS ; ; PRXRPT CHECKS FOR A REPEATED PARAMETER. ; ; ENTRY A CONTAINS PARSTX FLAG TO CHECK. PRXRPT - AND PARSTX ;AND WITH PARSTX - BNE SNER ;IF BIT PREVIOUSLY SET + AND PARSTX ;AND WITH PARSTX + BNE SNER ;IF BIT PREVIOUSLY SET RTS .END diff --git a/BASIC_CBM2_1984-01-04/butes2 b/BASIC_CBM2_1984-01-04/butes2 index 7ec00ce..5df5ed6 100644 --- a/BASIC_CBM2_1984-01-04/butes2 +++ b/BASIC_CBM2_1984-01-04/butes2 @@ -43,7 +43,7 @@ XFN2 =$F2 ;SENDS FILENAME2 ; ; TABLD - TOKEN TABLE DEFINITIONS ; -TABLD ;USED TO BUILD DISK COMMAND STRINGS +TABLD ;USED TO BUILD DISK COMMAND STRINGS FCLR =*-TABLD FCLRM1 =FCLR-1 .BYT 'I',XD1 @@ -83,9 +83,9 @@ FREC =*-TABLD ; ; ENTRY A NUMBER OF BYTES IN FORMAT. ; Y --> TABLD ENTRY. -SAV20 JSR CHK2 - LDY #TOPN ;TABLE OFFSET -SAV21 LDA #4 ;LENGTH +SAV20 JSR CHK2 + LDY #TOPN ;TABLE OFFSET +SAV21 LDA #4 ;LENGTH SENDP STA XCNT ;SAVE NUMBER OF STRING BYTES LDA TABFCB,Y ;GET POINTER INTO TABLD @@ -432,7 +432,7 @@ FLPINT CHRGET JMP (ICHRGE) CHRGOT JMP (ICHRGO) .SKI 2 - .IFN CC1 < +.IFN CC1 < NCHRGE INC TXTPTR ;INCREMENT TEXT POINTER BNE NCHRGO ;IF NO CARRY INTO MSB @@ -454,7 +454,7 @@ QNUM SBC #$D0 ;$100-'0' QNRTS RTS > - .IFE CC1 < +.IFE CC1 < NCHRGO JSR CHRMAP JMP CHRG20 NCHRGE diff --git a/BASIC_CBM2_1984-01-04/bverbs1 b/BASIC_CBM2_1984-01-04/bverbs1 index 6828f99..d59adb7 100644 --- a/BASIC_CBM2_1984-01-04/bverbs1 +++ b/BASIC_CBM2_1984-01-04/bverbs1 @@ -107,13 +107,13 @@ SCRTCH LDA #0 CLC LDA TXTTAB ADC #2 - .IFN CC1 < +.IFN CC1 < STA VARTAB LDA TXTTAB+1 ADC #0 STA VARTAB+1 > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < STA TXTEND LDA TXTTAB+1 ADC #0 @@ -145,19 +145,19 @@ CLRPU LDA PUDEFS,X JSR CLALL LDA VARTAB LDY VARTAB+1 - .IFN CC4 < +.IFN CC4 < STA VAREND ;ONLY 256K STY VAREND+1 > - .IFN CC1+CC2+CC3 < +.IFN CC1+CC2+CC3 < STA STREND ;EXCEPT 256K STY STREND+1 > - .IFN CC1+CC2 < +.IFN CC1+CC2 < STA ARYTAB ;ONLY 64K,128K STY ARYTAB+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYTAB ;ONLY 192K,256K LDY ARYTAB+1 STA ARYEND @@ -169,7 +169,7 @@ FLOAD JSR RESTO1 ; RESET STK, CLEAR OLTXT AND CURRENT CHANNEL STKINI LDX #0 STX TEMPPT - PLA + PLA TAY PLA ;GET CALLERS ADDRESS LDX #$FE ;RESET STACK (LEAVE $01FF FREE) @@ -319,19 +319,19 @@ LOOPDN TXA ;CY=1 JMP FRMNUM .PAG RESTOR BEQ RESTO1 ;NO ARGUMENT..SET POINTER TO START OF TEXT - JSR GETPIN ;GET LINE # - STY LINNUM ;STORE < OF ARG - STA LINNUM+1 ;STORE > OF ARG - JSR MAPTXT - JSR FNDLIN ;POINT TO LINK OF ARG. LINE # - BCC RESERR ;LINE NOT FOUND - LDA LOWTR ;FNDLIN'S RESULT - SBC #1 - STA DATPTR - LDA LOWTR+1 - SBC #0 - STA DATPTR+1 - RTS + JSR GETPIN ;GET LINE # + STY LINNUM ;STORE < OF ARG + STA LINNUM+1 ;STORE > OF ARG + JSR MAPTXT + JSR FNDLIN ;POINT TO LINK OF ARG. LINE # + BCC RESERR ;LINE NOT FOUND + LDA LOWTR ;FNDLIN'S RESULT + SBC #1 + STA DATPTR + LDA LOWTR+1 + SBC #0 + STA DATPTR+1 + RTS RESTO1 SEC LDA TXTTAB SBC #1 @@ -351,16 +351,16 @@ STPZ2 BNE CONTX ; HERE IF STOP KEY DEPRESSED WHILE RUNNING ; ENTER: CY=0 => NO BREAK MESSAGE DESIRED STOPC PHP ;ENTERED FROM LIST OR NEWSTT - LDY TRAPNO+1 ;TEST IF ERROR TRAPPING ON - INY - BEQ SA ;BRANCH IF NOT + LDY TRAPNO+1 ;TEST IF ERROR TRAPPING ON + INY + BEQ SA ;BRANCH IF NOT UNSTOP - JSR KSTOP ;DON'T GO ON TILL STOP KEY NO LONGER DEPRESSED - BEQ UNSTOP - LDX #$1C ;OTHERWISE LOAD 'BREAK' ERROR NUMBER - JMP ERROR ;AND ERROR ROUTINE WILL GOTO ERROR TRAPPING + JSR KSTOP ;DON'T GO ON TILL STOP KEY NO LONGER DEPRESSED + BEQ UNSTOP + LDX #$1C ;OTHERWISE LOAD 'BREAK' ERROR NUMBER + JMP ERROR ;AND ERROR ROUTINE WILL GOTO ERROR TRAPPING SA PLP - PHA + PHA PHA ;....PUSH DUMMY RETURN TO BE DISCARDED STOPD PHP ; SAVE CY FLAG JSR TSTDIR ;IN DIRECT MODE? @@ -476,7 +476,7 @@ GO JSR CHRGOT ; PROCESS GOTO VERB GOTO JSR LINGET -GOTO0 ;ALWAYS GOTO0=GOTO+3 +GOTO0 ;ALWAYS GOTO0=GOTO+3 JSR REMN GOTO1 SEC LDA CURLIN @@ -501,7 +501,7 @@ LUKALL JSR FNDLNC LDA LOWTR+1 SBC #0 STA TXTPTR+1 - JMP RUNMOD ;PUT INTO RUN MODE + JMP RUNMOD ;PUT INTO RUN MODE .SKIP ; PROCESS RETURN VERB RETURN BNE ADDRTS @@ -559,14 +559,14 @@ REMER LDA TXTPTR+2 REMTXT JMP MAPTXT .SKI 4 TRAP JSR ERRDIR ;NO DIRECT MODE ALLOWED - JSR CHRGOT ;LOOK FOR ARGUMENT - BEQ TRAP1 ;NULL MEANS NO ARG. - JSR GETPIN ;GET WHAT SHOULD BE A LINE NUMBER - STY TRAPNO ;LO BYTE OF ARGUMENT + JSR CHRGOT ;LOOK FOR ARGUMENT + BEQ TRAP1 ;NULL MEANS NO ARG. + JSR GETPIN ;GET WHAT SHOULD BE A LINE NUMBER + STY TRAPNO ;LO BYTE OF ARGUMENT .BYT $2C ;EAT 2 TRAP1 LDA #$FF ;FLAG NO TRAP - STA TRAPNO+1 - RTS + STA TRAPNO+1 + RTS .SKI 4 ONGOTO JSR GETBYT PHA @@ -652,96 +652,96 @@ COPSTR PLA JMP INPCOM ; RESUME JSR ERRDIR ;NO DIRECT MODE - LDX ERRLIN+1 ;IS THERE AN ERROR TO RESUME FRON? - INX - BEQ RESCNT ;CAN'T RESUME! - JSR CHRGOT ;LOOK FOR ARGUMENTS - BEQ RESSWP ;NO ARG'S...RESTART ERR'D LINE - BCC RESNUM ;NUMERIC ARGUMENT - CMP #TKNEXT ;ONLY OTHER CHOICE IS 'NEXT' + LDX ERRLIN+1 ;IS THERE AN ERROR TO RESUME FRON? + INX + BEQ RESCNT ;CAN'T RESUME! + JSR CHRGOT ;LOOK FOR ARGUMENTS + BEQ RESSWP ;NO ARG'S...RESTART ERR'D LINE + BCC RESNUM ;NUMERIC ARGUMENT + CMP #TKNEXT ;ONLY OTHER CHOICE IS 'NEXT' GOOOS - BNE RESSNR ;IF NOT, SYNTAX ERROR -; - JSR RESSWP ;RESUME EXECUTION WITH NEXT STM'T - JSR MAPTXT - LDY #0 - LDA (TXTPTR)Y - BNE RESUM2 ;MUST BE A ':' - INY ;MUST BE A NULL,GET NEXT LINE - JSR SAV42 - JSR ADDON + BNE RESSNR ;IF NOT, SYNTAX ERROR +; + JSR RESSWP ;RESUME EXECUTION WITH NEXT STM'T + JSR MAPTXT + LDY #0 + LDA (TXTPTR)Y + BNE RESUM2 ;MUST BE A ':' + INY ;MUST BE A NULL,GET NEXT LINE + JSR SAV42 + JSR ADDON RESUM2 JSR CHRGET ;SKIP OVER THIS CHARACTER, INTO BODY OF STATEMENT - JMP DATA ;ADVANCE UNTIL NULL OR ':', THEN RTS + JMP DATA ;ADVANCE UNTIL NULL OR ':', THEN RTS ; RESNUM JSR GETPIN ;GET ADDRESS - STA LINNUM+1 - JSR RESEND - JSR MAPTXT - JMP LUK4IT + STA LINNUM+1 + JSR RESEND + JSR MAPTXT + JMP LUK4IT ; RESSWP LDX #1 RESUM0 LDA ERRLIN,X - STA CURLIN,X - LDA ERRTXT,X - STA TXTPTR,X - DEX - BPL RESUM0 + STA CURLIN,X + LDA ERRTXT,X + STA TXTPTR,X + DEX + BPL RESUM0 RESEND LDX #$FF - STX XCNT - STX ERRLIN - STX ERRLIN+1 ;FLAG 'NO FURTHER RESUMES UNTIL NEXT ERROR' - LDX TMPTRP ;RESTORE TRAP LINE TO ALLOW TRAPS AGAIN - STX TRAPNO+1 - RTS + STX XCNT + STX ERRLIN + STX ERRLIN+1 ;FLAG 'NO FURTHER RESUMES UNTIL NEXT ERROR' + LDX TMPTRP ;RESTORE TRAP LINE TO ALLOW TRAPS AGAIN + STX TRAPNO+1 + RTS ; RESCNT LDX #ERRCR - JMP ERROR + JMP ERROR .PAG 'DISPOSE' DISPOS CMP #TKFOR - BEQ DISPO0 - CMP #TKGOSU - BNE GOOOS ;NOT NEXT OR GOSUB IS SYNTAX ERROR + BEQ DISPO0 + CMP #TKGOSU + BNE GOOOS ;NOT NEXT OR GOSUB IS SYNTAX ERROR DISPO0 STA OLDTOK - JSR ERRDIR - TSX - INX - INX ;LOOK PAST RETURN TO NEWSTT - TXA - TAY + JSR ERRDIR + TSX + INX + INX ;LOOK PAST RETURN TO NEWSTT + TXA + TAY DISPO1 TYA ;Y==>X - TAX - CPY #$FF ;STACK EMPTY? - BEQ DISERR ;YES... - LDA 257,X - CMP #TKFOR - BNE DISPO2 - TXA ;STACK ENTRY IS A FOR LOOP, 19 BYTES. - ADC #18 ;+ 1 IN CARRY - JMP DISPO3 + TAX + CPY #$FF ;STACK EMPTY? + BEQ DISERR ;YES... + LDA 257,X + CMP #TKFOR + BNE DISPO2 + TXA ;STACK ENTRY IS A FOR LOOP, 19 BYTES. + ADC #18 ;+ 1 IN CARRY + JMP DISPO3 DISPO2 - TXA ;STACK ENTRY IS GOSUB, 5 BYTES. - CLC - ADC #7 + TXA ;STACK ENTRY IS GOSUB, 5 BYTES. + CLC + ADC #7 DISPO3 - BCS DISERR ;STACK UNDERFLOW... - TAY - LDA 257,X - CMP OLDTOK - BNE DISPO1 ;KEEP LOOKING - BEQ DISPO5 + BCS DISERR ;STACK UNDERFLOW... + TAY + LDA 257,X + CMP OLDTOK + BNE DISPO1 ;KEEP LOOKING + BEQ DISPO5 DISPO4 LDX DSPTMP DISPO5 LDA 256,X ;SHIFT STACK DOWN - STA 256,Y - DEY - DEX - STX DSPTMP ;DONE WHEN X=S - TSX - CPX DSPTMP - BNE DISPO4 - TYA ;S <== Y - TAX - TXS - JMP CHRGET ;ADVANCE PAST MODIFIER, DO RTS + STA 256,Y + DEY + DEX + STX DSPTMP ;DONE WHEN X=S + TSX + CPX DSPTMP + BNE DISPO4 + TYA ;S <== Y + TAX + TXS + JMP CHRGET ;ADVANCE PAST MODIFIER, DO RTS DISERR LDX #ERRDI - JMP ERROR + JMP ERROR .END diff --git a/BASIC_CBM2_1984-01-04/bverbs2 b/BASIC_CBM2_1984-01-04/bverbs2 index 8c8a671..88c58f7 100644 --- a/BASIC_CBM2_1984-01-04/bverbs2 +++ b/BASIC_CBM2_1984-01-04/bverbs2 @@ -22,7 +22,7 @@ NEWCHR JSR CHRGOT ;REGET LAST CHAR ; ; PROCESS PRINT VERB PRINT BEQ OCRLF ;TERMINATOR SO TYPE CR/LF - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < CMP #TKUSIN BNE PRINTC JMP USING ;IF USING @@ -30,7 +30,7 @@ PRINT BEQ OCRLF ;TERMINATOR SO TYPE CR/LF ; ; HERE AFTER SEEING TAB(X) OR , OR ; ; IN WHICH ASE A TERMIATOR DOES NOT -; MEAN TYPE A CR/LF BUT JUST RTS. +; MEAN TYPE A CR/LF BUT JUST RTS. PRINTC BEQ OCRLFX CMP #TKTAB BEQ TABER ;IF TAB FUNCTION @@ -348,9 +348,9 @@ TRMOK LDA TXTPTR TRMNOK LDA INPFLG BEQ TRMNO1 ;IF INPUT TRY AGAIN BPL SNERR6 ;GET STMT, ISSUE SYNTAX ERR -;;BMI GETDTL -;;LDY #255 ;MAKE IT LOOK DIRECT -;;BNE STCURL ;ALWAYS GOES +;; BMI GETDTL +;; LDY #255 ;MAKE IT LOOK DIRECT +;; BNE STCURL ;ALWAYS GOES GETDTL LDA DATLIN ;GET DATA LINE NUMBER LDY DATLIN+1 STCURL STA CURLIN ;MAKE IT CURRENT LINE @@ -497,14 +497,14 @@ KEY40 CMP #21 LDA # - .IFE CC1 < +.IFE CC1 < STX TXTEND ;SAVE NEW TEXT END(128,192,256K) STY TXTEND+1 > @@ -555,10 +555,10 @@ CLD3 JMP FINI ;RELINK, SET END OF TEXT AND GOTO MAIN LOOP ; CLD4 - .IFN CC1 < +.IFN CC1 < LDX ERROM ;64K > - .IFE CC1 < +.IFE CC1 < LDX ERROT ;EXCEPT 64K > BNE CLD3 ;ALWAYS @@ -584,7 +584,7 @@ LVR1 JSR LOAD ;REQUEST LOAD FROM KERNAL BCS LDSVER ;IF LOAD/VERIFY ERROR STA TTTEMP ;SAVE BANK OF END OF LOAD - JMP TDM ;GET DIRECT MODE + JMP TDM ;GET DIRECT MODE .SKI 4 ; PROCESS BASIC SAVE COMMAND. ; @@ -598,11 +598,11 @@ SAVENP STX HIGHDS STY HIGHDS+1 STA HIGHDS+2 - .IFN CC1 < +.IFN CC1 < LDX VARTAB ; 64K LDY VARTAB+1 ;HIGHTR IS END VECTOR > - .IFE CC1 < +.IFE CC1 < LDX TXTEND ; EXCEPT 64K LDY TXTEND+1 ;HIGHTR IS END VECTOR > diff --git a/BASIC_CBM2_1984-01-04/bverbs3 b/BASIC_CBM2_1984-01-04/bverbs3 index c5ab279..9f13cef 100644 --- a/BASIC_CBM2_1984-01-04/bverbs3 +++ b/BASIC_CBM2_1984-01-04/bverbs3 @@ -9,100 +9,100 @@ ; ERRORS, CHECKS FOR OUT OF RANGE VALUES, AND SETS ; VARIABLES IN THE ZERO-PAGE TO BE PASSED TO THE DISK ; MESSAGE GENERATOR (DMG). -DCAT ;CATALOG A DEVICE (==DIRECTORY) - JSR DOSPAR ;PARSE THE LINE - LDA PARSTS ;CHECK OPTIONS - AND #$E6 - BEQ *+5 - JMP SNERR - LDY #TCAT ;TABLE OFFSET - LDX #1 ;JUST $ - LDA PARSTS ;CHK FOR DEFAULT - AND #$11 ;NO DRIVE? - BEQ DCAT2 +DCAT ;CATALOG A DEVICE (==DIRECTORY) + JSR DOSPAR ;PARSE THE LINE + LDA PARSTS ;CHECK OPTIONS + AND #$E6 + BEQ *+5 + JMP SNERR + LDY #TCAT ;TABLE OFFSET + LDX #1 ;JUST $ + LDA PARSTS ;CHK FOR DEFAULT + AND #$11 ;NO DRIVE? + BEQ DCAT2 LSR A - BCC DCAT1 ;JUST DRIVE + BCC DCAT1 ;JUST DRIVE INX ;DRIVE AND FILENAME INX DCAT1 INX DCAT2 TXA ;A NOW HAS LENGTH - JSR SENDP ;BUILD - LDA #DOSCTL - STA XCNT ;MAX LINES BEFORE PROMPT - LDY #$60 ;SA, LOAD FLOPPY - JSR OCHANL ;OPEN SPECIAL CHANNEL - LDY #3 ;LOOP COUNTER + JSR SENDP ;BUILD + LDA #DOSCTL + STA XCNT ;MAX LINES BEFORE PROMPT + LDY #$60 ;SA, LOAD FLOPPY + JSR OCHANL ;OPEN SPECIAL CHANNEL + LDY #3 ;LOOP COUNTER ; GET LENGTH IN BLOCKS -DCAT3 STY T3 ;SAVE COUNTER - LDX #DOSLFN - JSR CHKIN ;OPEN FOR INPUT - JSR BASIN ;GET CHAR - STA T4 - JSR READST - BNE DCAT10 ;IF BAD STATUS - JSR BASIN ;GET CHAR - STA T4+1 - JSR READST - BNE DCAT10 ;IF BAD STATUS - LDY T3 +DCAT3 STY T3 ;SAVE COUNTER + LDX #DOSLFN + JSR CHKIN ;OPEN FOR INPUT + JSR BASIN ;GET CHAR + STA T4 + JSR READST + BNE DCAT10 ;IF BAD STATUS + JSR BASIN ;GET CHAR + STA T4+1 + JSR READST + BNE DCAT10 ;IF BAD STATUS + LDY T3 DEY - BNE DCAT3 ;IF NOT DONE + BNE DCAT3 ;IF NOT DONE ; ; OUTPUT BLOCKS NUMBER - JSR DCAT0 ;CLEAR CHANNEL RESTORE OUTPUT DEVICE - LDX T4 - LDA T4+1 - JSR LINPRT ;OUTPUT NUMBER - LDA #' ' - JSR BSOUT ;OUTPUT A SPACE + JSR DCAT0 ;CLEAR CHANNEL RESTORE OUTPUT DEVICE + LDX T4 + LDA T4+1 + JSR LINPRT ;OUTPUT NUMBER + LDA #' ' + JSR BSOUT ;OUTPUT A SPACE ; ; LOOP READING NAME AND OUTPUT DCAT4 JSR CLRCH ;CLEAR CHANNEL DEFAULT INPUT IS DISK LDX #DOSLFN JSR CHKIN - JSR BASIN ;GET CHAR + JSR BASIN ;GET CHAR PHA ;SAVE CHAR - JSR READST ;GET STATUS - BNE DCAT9 ;IF BAD STATUS + JSR READST ;GET STATUS + BNE DCAT9 ;IF BAD STATUS JSR DCAT0 ;CLEAR CHANNEL RESTORE OUTPUT DEVICE PLA ;GET BACK CHAR - BEQ DCAT5 ;IF EOL - JSR BSOUT ;ECHO CHAR - BCC DCAT4 ;CONTINUE TO PROCESS NAME + BEQ DCAT5 ;IF EOL + JSR BSOUT ;ECHO CHAR + BCC DCAT4 ;CONTINUE TO PROCESS NAME ; ; HERE ON END OF NAME -DCAT5 DEC XCNT ;DECREMENT MAX LINES COUNTER - LDA #CR - JSR BSOUT ;OUTPUT NEW LINE - JSR CLRCH ;CLOSE +DCAT5 DEC XCNT ;DECREMENT MAX LINES COUNTER + LDA #CR + JSR BSOUT ;OUTPUT NEW LINE + JSR CLRCH ;CLOSE ; ; CHECK FOR SUSPEND OR HALT - JSR KSTOP ;GET STATUS OF STOP KEY - BEQ DCAT10 ;IF STOP REQUEST - LDA XCNT ;LINES - BNE DCAT8 ;IF NOT MAX LINES - LDA #DOSCTL - STA XCNT ;RESET COUNTER + JSR KSTOP ;GET STATUS OF STOP KEY + BEQ DCAT10 ;IF STOP REQUEST + LDA XCNT ;LINES + BNE DCAT8 ;IF NOT MAX LINES + LDA #DOSCTL + STA XCNT ;RESET COUNTER JSR TSTDIR ;DON'T PROMPT UNLESS IN DIRECT MODE BNE DCAT8 LDX CHANNL ;OR IF NOT WRITING TO SCREEN CPX #0 BNE DCAT8 - LDX #MREMSG - JSR MSG ;PROMPT USER - ;WAIT FOR GO + LDX #MREMSG + JSR MSG ;PROMPT USER +; WAIT FOR GO ; -DCAT7 JSR GETIN ;SUSPEND WAITING FOR KEY - BEQ DCAT7 ;IF NO KEY - SUSPEND +DCAT7 JSR GETIN ;SUSPEND WAITING FOR KEY + BEQ DCAT7 ;IF NO KEY - SUSPEND ; ; PROCESS NEXT -DCAT8 LDY #2 ;PERFORM 2 TIMES - BNE DCAT3 ;JMP +DCAT8 LDY #2 ;PERFORM 2 TIMES + BNE DCAT3 ;JMP ; DCAT9 PLA ;CLEAN UP STK -DCAT10 JSR CLRCH - LDA #DOSLFN - JSR CLOSE ;CLOSE SPECIAL CHANNEL +DCAT10 JSR CLRCH + LDA #DOSLFN + JSR CLOSE ;CLOSE SPECIAL CHANNEL DCAT0 JSR CLRCH LDX DOLU BEQ GOORAT @@ -117,36 +117,36 @@ DCAT0 JSR CLRCH OCHANL LDX DOSFA BNE OCHL10 LDX #8 ;USE DEFAULT OF 8 -OCHL10 LDA #DOSLFN ;LFN - JSR SETLFS ;SET FILE PARAMETERS +OCHL10 LDA #DOSLFN ;LFN + JSR SETLFS ;SET FILE PARAMETERS JSR CLRCH ;UNLISTEN DEFAULT OUT - JMP OPEN ;OPEN IT... + JMP OPEN ;OPEN IT... .PAGE ; DOPEN CODE DFN(,T(,R)) DOPEN - LDA #$22 ;SET ERROR FLAG - JSR SAV9 - LDY #TOPN ;FCB FORMAT POINTER - LDX #4 ;NORMAL LENGTH - BIT PARSTS ;RELATIVE RECORD - BVC DOP2 ;IF NOT RANDOM ACCESS - LDX #8 ;RANDOM ACCESS LENGTH - BNE DOP2 ;ALWAY JUMP + LDA #$22 ;SET ERROR FLAG + JSR SAV9 + LDY #TOPN ;FCB FORMAT POINTER + LDX #4 ;NORMAL LENGTH + BIT PARSTS ;RELATIVE RECORD + BVC DOP2 ;IF NOT RANDOM ACCESS + LDX #8 ;RANDOM ACCESS LENGTH + BNE DOP2 ;ALWAY JUMP .SKIP 4 ; APPEND CODE APPEND - LDA #$E2 ;SET ERROR FLAGS - JSR SAV9 ;CHK REQ'D PARMS - LDY #TAPN ;TABLD INDEX - LDX #5 ;LENGTH + LDA #$E2 ;SET ERROR FLAGS + JSR SAV9 ;CHK REQ'D PARMS + LDY #TAPN ;TABLD INDEX + LDX #5 ;LENGTH ; DOP2 TXA ;SET LENGTH INTO A - JSR SENDP + JSR SENDP JMP GLOBTT ; -SAV9 JSR DOSPRS ;PARSE THE LINE - JSR CHK6 ;CHK REQ'D PARMS +SAV9 JSR DOSPRS ;PARSE THE LINE + JSR CHK6 ;CHK REQ'D PARMS ; FIND AN AVAILABLE SECONDARY ADDRESS FNDSCA LDY #$61 @@ -164,268 +164,268 @@ FSCA20 LDX #MS1 ;TOO MANY FILES OPEN .PAG ; CLOSE DISK FILE DCLOSE - LDA #$F3 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR OLDCLR - LDA PARSTS ;ANY LA GIVEN? - AND #$04 - BEQ DCLALL ;NO.... - LDA DOSLA - JMP CLOSE ;CLOSE FILE + LDA #$F3 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR OLDCLR + LDA PARSTS ;ANY LA GIVEN? + AND #$04 + BEQ DCLALL ;NO.... + LDA DOSLA + JMP CLOSE ;CLOSE FILE ; DCLALL - LDA DOSFA ;GET DISK # - JMP PATCH3 ;CLOSE ALL UNITS*****DEVICE IN .A ONLY****** + LDA DOSFA ;GET DISK # + JMP PATCH3 ;CLOSE ALL UNITS*****DEVICE IN .A ONLY****** .SKIP 4 ; DSAVE DFN DSAVE - LDA #$66 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR SAV20 - JMP SAVENP + LDA #$66 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR SAV20 + JMP SAVENP .SKIP 4 ; DLOAD DFN DLOAD - LDA #$E6 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR SAV20 - LDA #0 ;SET LOAD FLAG - JSR LOADNP ;PERFORM LOAD NO PARSE - JMP LOADCK ;GO TO LOAD CHECKING + LDA #$E6 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR SAV20 + LDA #0 ;SET LOAD FLAG + JSR LOADNP ;PERFORM LOAD NO PARSE + JMP LOADCK ;GO TO LOAD CHECKING .SKIP 4 ; BANK DFN CHBANK - JSR GETBYT - CPX #MXBANK ;TOO LARGE? - BCS XBKERR - STX DFBANK + JSR GETBYT + CPX #MXBANK ;TOO LARGE? + BCS XBKERR + STX DFBANK BSVRTS RTS -XBKERR JMP FCERR ;ILLEGAL QUANTITY +XBKERR JMP FCERR ;ILLEGAL QUANTITY .SKIP 4 ; BSAVE DFN BSAVE - LDA #$66 ;STD ERROR FLAG - LDX #$F8 ;AUXILIARY ERROR FLAG - JSR DOSPRX ;PARSE OPTIONS - JSR SAV20;CHECK REQ PARAMS DONE - .IFN NKRNL < - LDX DOSOFL ;START ADDR - LDY DOSOFL+1 - LDA DOSBNK - STX HIGHDS - STY HIGHDS+1 - STA HIGHDS+2 - LDX DOSOFH ;END ADDR - LDY DOSOFH+1 - JMP SAVENB + LDA #$66 ;STD ERROR FLAG + LDX #$F8 ;AUXILIARY ERROR FLAG + JSR DOSPRX ;PARSE OPTIONS + JSR SAV20 ;CHECK REQ PARAMS DONE +.IFN NKRNL < + LDX DOSOFL ;START ADDR + LDY DOSOFL+1 + LDA DOSBNK + STX HIGHDS + STY HIGHDS+1 + STA HIGHDS+2 + LDX DOSOFH ;END ADDR + LDY DOSOFH+1 + JMP SAVENB > .SKIP 4 ; BLOAD DFN BLOAD - LDA #$E6 ;STD ERROR FLAG - LDX #$FC ;AUX ERROR FLAG - JSR DOSPRX ;PARSE OPTIONS - JSR SAV20 - .IFN NKRNL < - LDA DOSBNK ;BIT7 IS CLEAR(=>LOAD) + LDA #$E6 ;STD ERROR FLAG + LDX #$FC ;AUX ERROR FLAG + JSR DOSPRX ;PARSE OPTIONS + JSR SAV20 +.IFN NKRNL < + LDA DOSBNK ;BIT7 IS CLEAR(=>LOAD) CLC - LDX DOSOFL ;START ADDR - LDY DOSOFL+1 - JSR LOAD - BCC BSVRTS ;DONE -;JMP LDSVER ;ERROR IN LOAD + LDX DOSOFL ;START ADDR + LDY DOSOFL+1 + JSR LOAD + BCC BSVRTS ;DONE +; JMP LDSVER ;ERROR IN LOAD > - .IFE NKRNL < +.IFE NKRNL < RTS > .SKIP 4 ; NDDN (,ID) FORMAT - JSR DOSPAR ;PARSE THE LINE - JSR CHK1 ;CHECK PARAMETER ERRORS - AND #$11 - CMP #$11 - BNE REC5 ;IF REQUIRED PARAMETERS NOT PRESENT + JSR DOSPAR ;PARSE THE LINE + JSR CHK1 ;CHECK PARAMETER ERRORS + AND #$11 + CMP #$11 + BNE REC5 ;IF REQUIRED PARAMETERS NOT PRESENT ; -FRMT2 JSR DCLALL ;CLOSE ALL FILES - JSR RUSURE ;R-U-SURE PRPT - BCS BSVRTS ;IF NO AND DIRECT MODE - LDY #THED ;TABLD INDEX - LDA #4 ;LENGTH - LDX DOSDID ;CHECK FOR DISKID - BEQ FRMT6 - LDA #6 ;LENGTH WITH ID -FRMT6 JSR TRANS ;BUILD AND SEND +FRMT2 JSR DCLALL ;CLOSE ALL FILES + JSR RUSURE ;R-U-SURE PRPT + BCS BSVRTS ;IF NO AND DIRECT MODE + LDY #THED ;TABLD INDEX + LDA #4 ;LENGTH + LDX DOSDID ;CHECK FOR DISKID + BEQ FRMT6 + LDA #6 ;LENGTH WITH ID +FRMT6 JSR TRANS ;BUILD AND SEND ; - JSR ERRCHL ;GET ERROR STATUS - JSR TDM ;TEST DIRECT MODE - BNE BSVRTS ;IF DIRECT MODE - JSR MAPSTR + JSR ERRCHL ;GET ERROR STATUS + JSR TDM ;TEST DIRECT MODE + BNE BSVRTS ;IF DIRECT MODE + JSR MAPSTR ; - LDY #0 + LDY #0 LDA (DSDESC+1)Y - CMP #'2' - BCS FRMT8 ;IF ERROR OCCURED - JMP MAPTXT + CMP #'2' + BCS FRMT8 ;IF ERROR OCCURED + JMP MAPTXT ; FRMT8 - LDX #MSG31 ;? BAD DISK - JMP ERROR + LDX #MSG31 ;? BAD DISK + JMP ERROR .SKIP 4 ; SCRATCH SDFN SCRATC - JSR DOSPAR ;PARSE THE LINE - JSR CHK1 - JSR RUSURE ;CHECK DIRECT AND ASK USER - BCS ZXIT ;IF NO AND DIRECT MODE - LDY #TSCR ;OFFSET - LDA #4 ;LENGTH - JSR TRANS - JSR ERRCHL ;READ ERROR CHANNEL - JSR TDM ;TEST DIRECT MODE - BNE ZXIT ;IF DIRECT MODE - LDA #CR - JSR BSOUT ;OUTPUT CR - JSR MAPSTR - LDY #0 ;CLR TO READ ERRCHL + JSR DOSPAR ;PARSE THE LINE + JSR CHK1 + JSR RUSURE ;CHECK DIRECT AND ASK USER + BCS ZXIT ;IF NO AND DIRECT MODE + LDY #TSCR ;OFFSET + LDA #4 ;LENGTH + JSR TRANS + JSR ERRCHL ;READ ERROR CHANNEL + JSR TDM ;TEST DIRECT MODE + BNE ZXIT ;IF DIRECT MODE + LDA #CR + JSR BSOUT ;OUTPUT CR + JSR MAPSTR + LDY #0 ;CLR TO READ ERRCHL SCTC1 LDA (DSDESC+1)Y ;GET MESG - BEQ SCTC2 ;IF END OF ERROR MESSAGE - JSR BSOUT + BEQ SCTC2 ;IF END OF ERROR MESSAGE + JSR BSOUT INY - BNE SCTC1 ;ALWAYS + BNE SCTC1 ;ALWAYS ; -SCTC2 LDA #CR - JSR BSOUT ;OUTPUT CR - JSR MAPTXT +SCTC2 LDA #CR + JSR BSOUT ;OUTPUT CR + JSR MAPTXT ZXIT RTS .SKIP 4 -REC5 JMP SNERR ;SYNTAX ERROR +REC5 JMP SNERR ;SYNTAX ERROR ; ; RECORD - RANDOM RECORD ACCESS. RECORD - LDA #01 ;DEFAULT POS = 1 - STA DOSRCL - JSR CHRGOT - LDA #'#' - JSR SYNCHR ;NEXT CHARACTER = "#" - JSR GTVL2 ;GET NEXT VALUE - CPX #0 - BEQ REC4 ;CANNOT BE ZERO - STX DOSLA ;SAVE LOGICAL ADDRESS - JSR CHKCOM ;CHECK FOR "," - BEQ REC5 ;IF END OF STATEMENT - BCC REC1 ;IF NUMERIC - JSR CHKOPN ;CHECK FOR "(" - JSR GETPIN ;GET POSITIVE INTEGER - JSR CHKCLS - JMP REC2 + LDA #01 ;DEFAULT POS = 1 + STA DOSRCL + JSR CHRGOT + LDA #'#' + JSR SYNCHR ;NEXT CHARACTER = "#" + JSR GTVL2 ;GET NEXT VALUE + CPX #0 + BEQ REC4 ;CANNOT BE ZERO + STX DOSLA ;SAVE LOGICAL ADDRESS + JSR CHKCOM ;CHECK FOR "," + BEQ REC5 ;IF END OF STATEMENT + BCC REC1 ;IF NUMERIC + JSR CHKOPN ;CHECK FOR "(" + JSR GETPIN ;GET POSITIVE INTEGER + JSR CHKCLS + JMP REC2 ; -REC4 JMP QTYERR +REC4 JMP QTYERR ; REC6 - LDX #MS3 ;FILE NOT FOUND ERR - JMP ERROR + LDX #MS3 ;FILE NOT FOUND ERR + JMP ERROR ; -REC1 JSR GETPIN ;GET POSITIVE INTEGER +REC1 JSR GETPIN ;GET POSITIVE INTEGER ; -REC2 JSR CHRGOT ;SEE WHAT IS NEXT - BEQ REC3 ;IF END OF STATEMENT - JSR CHKCOM ;CHECK FOR "," - BEQ REC5 ;IF END OF STATEMENT - JSR GTVL2 - CPX #0 - BEQ REC4 ;IF OUT OF RANGE - CPX #$FF - BEQ REC4 ;IF OUT OF RANGE - STX DOSRCL ;SAVE BYTE POSITION (POS) - JSR CHRGOT -GAAA BNE REC5 ;IF NOT END OF STATEMENT +REC2 JSR CHRGOT ;SEE WHAT IS NEXT + BEQ REC3 ;IF END OF STATEMENT + JSR CHKCOM ;CHECK FOR "," + BEQ REC5 ;IF END OF STATEMENT + JSR GTVL2 + CPX #0 + BEQ REC4 ;IF OUT OF RANGE + CPX #$FF + BEQ REC4 ;IF OUT OF RANGE + STX DOSRCL ;SAVE BYTE POSITION (POS) + JSR CHRGOT +GAAA BNE REC5 ;IF NOT END OF STATEMENT ; REC3 - LDA DOSLA ;GET LOGICAL ADDRESS - JSR LKUPLA ;LOGICAL TO PHYSICAL MAP - BCS REC6 ;IF FILE NOT FOUND - STY DOSSA ;SAVE SECONDARY ADDRESS - STX DOSFA - JSR SETLFS ;SET UP LA, FA - JSR OLDCLR ;CLEAR DISK STATUS - LDY #TREC ;SET POINTER - LDA #4 ;PROCESS FIVE BYTES - BNE TRANS ;TRANSFER ON CHANNEL 15 + LDA DOSLA ;GET LOGICAL ADDRESS + JSR LKUPLA ;LOGICAL TO PHYSICAL MAP + BCS REC6 ;IF FILE NOT FOUND + STY DOSSA ;SAVE SECONDARY ADDRESS + STX DOSFA + JSR SETLFS ;SET UP LA, FA + JSR OLDCLR ;CLEAR DISK STATUS + LDY #TREC ;SET POINTER + LDA #4 ;PROCESS FIVE BYTES + BNE TRANS ;TRANSFER ON CHANNEL 15 .SKIP 4 DCLEAR - JSR DOSPAR ;PARSE THE LINE - LDY #TCLR ;SET CODE - LDA #2 - BNE TRANS + JSR DOSPAR ;PARSE THE LINE + LDY #TCLR ;SET CODE + LDA #2 + BNE TRANS .SKIP 4 ; COLLECT V COLECT - JSR DOSPAR ;PARSE THE LINE - JSR CHK3 ;CHK OPT PARMS - JSR DCLALL ;CLOSE ALL FILES - LDY #TCOLL ;TABLD OFFSET - LDX #1 ;LENGTH - LDA PARSTS - AND #$10 - BEQ CLCT2 + JSR DOSPAR ;PARSE THE LINE + JSR CHK3 ;CHK OPT PARMS + JSR DCLALL ;CLOSE ALL FILES + LDY #TCOLL ;TABLD OFFSET + LDX #1 ;LENGTH + LDA PARSTS + AND #$10 + BEQ CLCT2 INX ;INCLUDE DRIVE CLCT2 TXA ;PLACE IN A - BNE TRANS ;ALWAYS (X <> 0) + BNE TRANS ;ALWAYS (X <> 0) .SKIP 4 ; COPY ROUTINES CDDDFN=SDSFN DCOPY - JSR DOSPAR ;PARSE THE LINE - AND #$30 - CMP #$30 ;CHK REQ'D PARMS - BNE DCPY2 - LDA PARSTS - AND #$C7 - BEQ DCPY4 -DCPY2 LDA PARSTS - JSR CHK4 - LDA PARSTS -DCPY4 LDY #TCOPY ;TABLD OFFSET - LDA #8 ;LENGTH - BNE TRANS ;GO DO IT + JSR DOSPAR ;PARSE THE LINE + AND #$30 + CMP #$30 ;CHK REQ'D PARMS + BNE DCPY2 + LDA PARSTS + AND #$C7 + BEQ DCPY4 +DCPY2 LDA PARSTS + JSR CHK4 + LDA PARSTS +DCPY4 LDY #TCOPY ;TABLD OFFSET + LDA #8 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; CONCAT ROUTINES CONCAT - JSR DOSPAR ;PARSE THE LINE - JSR CHK4 - LDY #TCONC ;OFFSET - LDA #12 ;LENGTH - BNE TRANS ;GO DO IT + JSR DOSPAR ;PARSE THE LINE + JSR CHK4 + LDY #TCONC ;OFFSET + LDA #12 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; RENAME RDDDFN=SDSFN RENAME - LDA #$E4 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - JSR CHK5 - LDY #TREN ;OFFSET - LDA #8 ;LENGTH - BNE TRANS ;GO DO IT + LDA #$E4 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + JSR CHK5 + LDY #TREN ;OFFSET + LDA #8 ;LENGTH + BNE TRANS ;GO DO IT .SKIP 4 ; BACKUP D
= BACKUP - LDA #$C7 ;SET ERROR FLAGS - JSR DOSPRS ;PARSE THE LINE - AND #$30 ;REQ'D PARMS - CMP #$30 - BNE GAAA ;IF SYNTAX ERROR - JSR RUSURE ;TEST FOR DIRECT MODE AND SEND MESSAGE - BCC BUP1 ;IF RUN MODE OR NOT 'YES' + LDA #$C7 ;SET ERROR FLAGS + JSR DOSPRS ;PARSE THE LINE + AND #$30 ;REQ'D PARMS + CMP #$30 + BNE GAAA ;IF SYNTAX ERROR + JSR RUSURE ;TEST FOR DIRECT MODE AND SEND MESSAGE + BCC BUP1 ;IF RUN MODE OR NOT 'YES' RTS BUP1 - JSR DCLALL ;CLOSE DISK - LDY #TBAK - LDA #4 ;LENGTH + JSR DCLALL ;CLOSE DISK + LDY #TBAK + LDA #4 ;LENGTH .SKIP 4 ; TRANS SUBROUTINE TRANS - JSR SENDP ;BUILD STRING TO OUTPUT + JSR SENDP ;BUILD STRING TO OUTPUT JSR CLRCH SEC - JSR OPN10 ;SEND IT... + JSR OPN10 ;SEND IT... JMP DCAT0 .END diff --git a/BASIC_CBM2_1984-01-04/cbm128 b/BASIC_CBM2_1984-01-04/cbm128 index 073ff90..d1d56b0 100644 --- a/BASIC_CBM2_1984-01-04/cbm128 +++ b/BASIC_CBM2_1984-01-04/cbm128 @@ -1,8 +1,8 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) +CC1 =0 ;64K VERSION(ON=$01) CC2 =$02 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC3 =0 ;192K VERSION(ON=$04) +CC4 =0 ;256K VERSION(ON=$08) BF=1 .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1984-01-04/cbm128no b/BASIC_CBM2_1984-01-04/cbm128no index 5dca730..40db7c2 100644 --- a/BASIC_CBM2_1984-01-04/cbm128no +++ b/BASIC_CBM2_1984-01-04/cbm128no @@ -1,10 +1,10 @@ ;PUT"@0:CBM128NO" .OPT NOLIST ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) +CC1 =0 ;64K VERSION(ON=$01) CC2 =$02 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC3 =0 ;192K VERSION(ON=$04) +CC4 =0 ;256K VERSION(ON=$08) BF=1 .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1984-01-04/cbm192 b/BASIC_CBM2_1984-01-04/cbm192 index 3ee830c..439471d 100644 --- a/BASIC_CBM2_1984-01-04/cbm192 +++ b/BASIC_CBM2_1984-01-04/cbm192 @@ -1,8 +1,8 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) +CC1 =0 ;64K VERSION(ON=$01) +CC2 =0 ;128K VERSION(ON=$02) CC3 =$04 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC4 =0 ;256K VERSION(ON=$08) BF=1 .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1984-01-04/cbm192no b/BASIC_CBM2_1984-01-04/cbm192no index b292ddd..4e453ea 100644 --- a/BASIC_CBM2_1984-01-04/cbm192no +++ b/BASIC_CBM2_1984-01-04/cbm192no @@ -1,9 +1,9 @@ .OPT NOLIST ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) +CC1 =0 ;64K VERSION(ON=$01) +CC2 =0 ;128K VERSION(ON=$02) CC3 =$04 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC4 =0 ;256K VERSION(ON=$08) BF=1 .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1984-01-04/cbm256 b/BASIC_CBM2_1984-01-04/cbm256 index 0a5a6d5..d103204 100644 --- a/BASIC_CBM2_1984-01-04/cbm256 +++ b/BASIC_CBM2_1984-01-04/cbm256 @@ -1,7 +1,7 @@ ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) +CC1 =0 ;64K VERSION(ON=$01) +CC2 =0 ;128K VERSION(ON=$02) +CC3 =0 ;192K VERSION(ON=$04) CC4 =$08 ;256K VERSION(ON=$08) BF=1 .SKI 4 diff --git a/BASIC_CBM2_1984-01-04/cbm256no b/BASIC_CBM2_1984-01-04/cbm256no index 5b732b5..b81e7ea 100644 --- a/BASIC_CBM2_1984-01-04/cbm256no +++ b/BASIC_CBM2_1984-01-04/cbm256no @@ -1,9 +1,9 @@ ;PUT"@0:CBM256NO .OPT NOLIST ; CONDITIONAL ASSEMBLY CONSTANTS -CC1 =0 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) +CC1 =0 ;64K VERSION(ON=$01) +CC2 =0 ;128K VERSION(ON=$02) +CC3 =0 ;192K VERSION(ON=$04) CC4 =$08 ;256K VERSION(ON=$08) BF=1 .SKI 4 diff --git a/BASIC_CBM2_1984-01-04/cbm64 b/BASIC_CBM2_1984-01-04/cbm64 index 4e7b6a8..40d84ce 100644 --- a/BASIC_CBM2_1984-01-04/cbm64 +++ b/BASIC_CBM2_1984-01-04/cbm64 @@ -1,8 +1,8 @@ ; CONDITIONAL ASSEMBLY CONSTANTS CC1 =$01 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC2 =0 ;128K VERSION(ON=$02) +CC3 =0 ;192K VERSION(ON=$04) +CC4 =0 ;256K VERSION(ON=$08) BF=1 .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1984-01-04/cbm64no b/BASIC_CBM2_1984-01-04/cbm64no index 6fb9942..e8ba479 100644 --- a/BASIC_CBM2_1984-01-04/cbm64no +++ b/BASIC_CBM2_1984-01-04/cbm64no @@ -1,9 +1,9 @@ .OPT NOLIST ; CONDITIONAL ASSEMBLY CONSTANTS CC1 =$01 ;64K VERSION(ON=$01) -CC2 =0 ;128K VERSION(ON=$02) -CC3 =0 ;192K VERSION(ON=$04) -CC4 =0 ;256K VERSION(ON=$08) +CC2 =0 ;128K VERSION(ON=$02) +CC3 =0 ;192K VERSION(ON=$04) +CC4 =0 ;256K VERSION(ON=$08) BF=1 .SKI 4 .FIL BASIC diff --git a/BASIC_CBM2_1984-01-04/contrl b/BASIC_CBM2_1984-01-04/contrl index f0ba56e..e14ee2f 100644 --- a/BASIC_CBM2_1984-01-04/contrl +++ b/BASIC_CBM2_1984-01-04/contrl @@ -6,33 +6,33 @@ OMERR LDX #ERROM ;OUT OF MEMORY ERROR JMP (IERROR) NERROR STX ERRNUM ;SAVE ERROR INDEX - CPX #ERRUS ;DON'T TRAP UNDEFINED STATEMENT ERRORS - BEQ ERRISD - JSR TSTDIR ;DON'T TRAP IF IN DIRECT MODE - BEQ ERRISD - LDY TRAPNO+1 ;IS TRAP VECTOR SET? - INY - BEQ ERRISD ;NOT IF $FF - DEY ;RESTORE TRAPNO+1 - STY LINNUM+1 - STY TMPTRP ;SAVE UNTIL A RESUME IS EXECUTED - LDY TRAPNO ;FINISH VECTOR - STY LINNUM - LDY #$FF - STY TRAPNO+1 ;MARKS NO MORE TRAPS UNTIL A 'RESUME' OR 'TRAP' - LDX #1 + CPX #ERRUS ;DON'T TRAP UNDEFINED STATEMENT ERRORS + BEQ ERRISD + JSR TSTDIR ;DON'T TRAP IF IN DIRECT MODE + BEQ ERRISD + LDY TRAPNO+1 ;IS TRAP VECTOR SET? + INY + BEQ ERRISD ;NOT IF $FF + DEY ;RESTORE TRAPNO+1 + STY LINNUM+1 + STY TMPTRP ;SAVE UNTIL A RESUME IS EXECUTED + LDY TRAPNO ;FINISH VECTOR + STY LINNUM + LDY #$FF + STY TRAPNO+1 ;MARKS NO MORE TRAPS UNTIL A 'RESUME' OR 'TRAP' + LDX #1 SOTS - LDA CURLIN,X - STA ERRLIN,X - LDA OLDTXT,X - STA ERRTXT,X - DEX - BPL SOTS - LDX OLDSTK - TXS - JSR MAPTXT ;MAKE SURE WE'RE IN TEXT - JSR LUK4IT ;SET UP POINTERS - JMP NSTT9 ;AND GOTO THAT LINE + LDA CURLIN,X + STA ERRLIN,X + LDA OLDTXT,X + STA ERRTXT,X + DEX + BPL SOTS + LDX OLDSTK + TXS + JSR MAPTXT ;MAKE SURE WE'RE IN TEXT + JSR LUK4IT ;SET UP POINTERS + JMP NSTT9 ;AND GOTO THAT LINE ERRISD LDA CHANNL BEQ ERROR2 ;CLOSE NON-TERMINAL CHANNEL. JSR CLRCH ;CLOSE IT @@ -70,7 +70,7 @@ NMAIN LDX #255 STX CURLIN+1 STX ERRLIN - STX ERRLIN+1 ;FLAG NO ERRORS YET + STX ERRLIN+1 ;FLAG NO ERRORS YET STX ERRNUM JSR INLIN ;GET A LINE FROM TERMINAL STA TXTPTR ;TXTPTR:=^TO INPUT BUFFER @@ -93,10 +93,10 @@ MAIN1 LDY #1 LDA (LOWTR)Y STA INDEX1+1 - .IFN CC1 < +.IFN CC1 < LDA VARTAB ;TEXT END (64K) > - .IFE CC1 < +.IFE CC1 < LDA TXTEND ;TEXT END (EXCEPT 64K) > STA INDEX1 @@ -108,7 +108,7 @@ MAIN1 SBC LOWTR EOR #$FF ; MAKE IT NEGATIVE CLC - .IFN CC1 < +.IFN CC1 < ADC VARTAB ;COMPUTE NEW TEXT END STA VARTAB STA INDEX2 ;SET LOW OF XFER TO @@ -116,7 +116,7 @@ MAIN1 ADC #255 STA VARTAB+1 ;COMPUTE HIGH OF TEXT END > - .IFE CC1 < +.IFE CC1 < ADC TXTEND ;COMPUTE NEW TEXT END STA TXTEND STA INDEX2 ;SET LOW OF XFER TO @@ -128,10 +128,10 @@ MAIN1 TAX SEC LDA LOWTR - .IFN CC1 < +.IFN CC1 < SBC VARTAB ;COMPUTE OFFSET > - .IFE CC1 < +.IFE CC1 < SBC TXTEND > TAY @@ -160,11 +160,11 @@ NODEL JSR CLEARC NODELE CLC ;NO...SOMETHING TO INSERT ; - .IFN CC1 < +.IFN CC1 < LDA VARTAB LDY VARTAB+1 > - .IFE CC1 < +.IFE CC1 < LDA TXTEND LDY TXTEND+1 > @@ -184,10 +184,10 @@ NODELC STA HIGHDS ;DESTINATION OF TOP ;LOW BLOCK ADDRESS IS LOWTR ;WHERE IT WAS LEFT IN THE CALL TO FNDLIN ; - .IFN CC1 < +.IFN CC1 < JSR BLTU > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < JSR BLTUT > ; @@ -218,7 +218,7 @@ NODELC STA HIGHDS ;DESTINATION OF TOP BCC MAIN2 INC LOWTR+1 MAIN2 - .IFN CC1 < +.IFN CC1 < LDA STREND ; 64K ONLY LDY STREND+1 STA VARTAB @@ -232,18 +232,18 @@ MAIN2 STOLOP LDA (TXTPTR)Y STA (LOWTR)Y DEY - DEC COUNT - BNE STOLOP + DEC COUNT + BNE STOLOP FINI JSR LNKPRG - JSR RUNC - JMP MAIN + JSR RUNC + JMP MAIN ; LNKPRG - LDA TXTTAB + LDA TXTTAB LDY TXTTAB+1 STA INDEX STY INDEX+1 - CLC + CLC CHEAD LDY #0 LDA (INDEX)Y ;CHECK FOR NULL LINK BNE CHEA3 @@ -273,11 +273,11 @@ LNKRTS CLC ADC #2 BCC *+3 INY - .IFN CC1 < +.IFN CC1 < STA VAREND STY VAREND+1 > - .IFE CC1 < +.IFE CC1 < STA TXTEND STY TXTEND+1 > @@ -408,13 +408,13 @@ NSTT1 JSR TSTDIR ;ARE WE IN DIRECT MODE? ; IN RUN MODE... ; SAVE TXTPTR FOR CONT COMMAND ; -NSTT9 ;ENTRY POINT FOR ERROR TRAPPING +NSTT9 ;ENTRY POINT FOR ERROR TRAPPING LDA TXTPTR LDY TXTPTR+1 STA OLDTXT STY OLDTXT+1 - TSX - STX OLDSTK ;SAVE IN CASE OF ERROR + TSX + STX OLDSTK ;SAVE IN CASE OF ERROR ; NSTT2 LDY #0 @@ -511,7 +511,7 @@ CMPFOR CMP 260,X LDA FORPNT CMP 258,X BEQ FFRTS -ADDFRS TXA +ADDFRS TXA CLC ADC #FORSIZ TAX @@ -550,7 +550,7 @@ FFRTS RTS ; BLTUT: TEXT END ; BLTUV: VARIABLE END (STREND OR VAREND) ; - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < BLTUT JSR REASNT STA TXTEND ;SET NEW END OF TEXT STY TXTEND+1 @@ -559,23 +559,23 @@ BLTUT JSR REASNT ; BLTUV JSR REASON > - .IFN CC2 < +.IFN CC2 < STA STREND ;128K VERSION STY STREND+1 JSR MAPVAR > - .IFN CC3 < +.IFN CC3 < STA STREND ;192K VERSION STY STREND+1 RTS ; NOTHING TO MOVE > - .IFN CC4 < +.IFN CC4 < STA VAREND ;256K VERSION STY VAREND+1 RTS ; NOTHING TO MOVE > BLTU - .IFN CC1 < +.IFN CC1 < JSR REASON ;64K VERSION STA STREND STY STREND+1 @@ -641,7 +641,7 @@ OSERR LDX #ERROS ;OUT OF STACK SPACE ERROR JMP ERROR .SKI 4 REASON - .IFN CC1+CC2+CC3 < +.IFN CC1+CC2+CC3 < CPY FRETOP+1 BCC REARTS BNE TRYMOR @@ -669,7 +669,7 @@ REASTO PLA CMP FRETOP BCC REARTS > - .IFN CC4 < +.IFN CC4 < CPY HIGHST+1 BCC REARTS BNE OMERRC @@ -679,13 +679,13 @@ REASTO PLA OMERRC JMP OMERR ;OUT OF MEMORY ERROR ; SAV73 - JSR PTRGET + JSR PTRGET SAV74 - STA FORPNT - STY FORPNT+1 - STX FORPNT+2 + STA FORPNT + STY FORPNT+1 + STX FORPNT+2 REARTS RTS - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < .SKIP 2 REASNT CPY BUFFPT+1 BCC REARTS @@ -695,7 +695,7 @@ REASNT CPY BUFFPT+1 OMERRT LDX #ERROT JMP ERROR > - .IFN CC3+CC4 < +.IFN CC3+CC4 < .SKIP 2 REASNA CPY HIGHST+1 BCC REARTS diff --git a/BASIC_CBM2_1984-01-04/init b/BASIC_CBM2_1984-01-04/init index 3e3277b..8027b9f 100644 --- a/BASIC_CBM2_1984-01-04/init +++ b/BASIC_CBM2_1984-01-04/init @@ -27,13 +27,13 @@ INITOP TXA SBC # TYA SBC #>BUFSIZ STA BUFFPT+1 - .IFN CC1 < +.IFN CC1 < TAY > ; @@ -74,7 +74,7 @@ ITP06 ; STX MEMTOP ;TOP OF STR BANK STY MEMTOP+1 - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < ; ; STORE A NON-ZERO BYTE PRECEDING INPUT BUFFER FOR INPUT CMD ; @@ -132,7 +132,7 @@ RSEED .BYT $80,$4F,$C7,$52,$58,',' ; CODE IS ALL IN RAM. INIT JSR INITV ;INIT VECTORS -INIT0 ;ALWAYS INIT0 AFTER VECTOR INITIALIZATION +INIT0 ;ALWAYS INIT0 AFTER VECTOR INITIALIZATION LDX #2 ;INIT USR INIT05 LDA BJMPS,X STA USRPOK,X @@ -161,7 +161,7 @@ INIT10 LDA INITAT-1,X ; (ONLY FOR AREAS WHICH START IN A NEW BANK. ; BOTTOM AND TOP LIMITS WILL BE THE SAME IN EACH ; BANK.) - .IFN CC4 < +.IFN CC4 < INX ;256K VERSION STX VARTAB LDX #$80 ;FIXED LOWER LIMIT OF $8000 @@ -169,15 +169,15 @@ INIT10 LDA INITAT-1,X > SEC ;GET BOTTOM OF MEMORY JSR MEMBOT - .IFN CC4 < +.IFN CC4 < STX STREND ;256K VERSION STY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < STX ARYTAB ;192K, 256K VERSIONS STY ARYTAB+1 > - .IFN CC2+CC3 < +.IFN CC2+CC3 < STX VARTAB ;128K, 192K VERSIONS STY VARTAB+1 > @@ -207,16 +207,16 @@ INIT20 .SKI 4 SIGNON .BYT CLRSCR,'*** COMMODORE BASIC ' - .IFN CC1 < +.IFN CC1 < .BYT '64' > - .IFN CC2 < +.IFN CC2 < .BYT '128' > - .IFN CC3 < +.IFN CC3 < .BYT '256' > - .IFN CC4 < +.IFN CC4 < .BYT '256' > .BYT ', V4.0 ***',CR,CR,0 diff --git a/BASIC_CBM2_1984-01-04/math1 b/BASIC_CBM2_1984-01-04/math1 index f2e0509..2d6e8ab 100644 --- a/BASIC_CBM2_1984-01-04/math1 +++ b/BASIC_CBM2_1984-01-04/math1 @@ -1,5 +1,5 @@ .PAGE 'MATH CRACKING ROUTINES.' -FORFIX ;EMPTY SPACE FOR FUTURE FIXES +FORFIX ;EMPTY SPACE FOR FUTURE FIXES .BYT $FF ;CHECK SUM BYTE ; PATCH1 JSR OLDCLR ;CLEAR DISK STATUS FOR PRINTN & CMD @@ -8,12 +8,12 @@ PATCH2 JSR OLDCLR ;CLEAR DISK STATUS FOR INPUTN & GET JMP CHKIN PATCH3 SEC ;CLOSE ALL FILES ASSOCIATED WITH DEVICE IN .A JMP KCLALL - .BYT $FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .SKI 2 + .BYT $FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF + .BYT $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF +.SKI 2 ; THE FORMULA EVALUATOR STARTS WITH (TXTPTR) -> TO ; THE 1ST CHAR OF THE FORMULA. ; AT THE END (TXTPTR) -> TO THE TERMINATOR. @@ -71,7 +71,7 @@ ENDREL LDX OPMASK STA INDEX1 ASL A ADC INDEX1 - TAY + TAY QPREC PLA CMP OPTAB,Y BCS QCHNUM @@ -336,11 +336,11 @@ GOOO JMP MOVFUM ; FAC <- USER MEM ; ; PREVENT TI AS A USER-DEFD VAR -; CPX #'T' -; BNE QSTATV ;IF NOT 'T' -; CPY #'I' -; BNE GOMOVF ;IF 'T' BUT NOT 'TI' -; JMP SNERR +; CPX #'T' +; BNE QSTATV ;IF NOT 'T' +; CPY #'I' +; BNE GOMOVF ;IF 'T' BUT NOT 'TI' +; JMP SNERR ; QSTATV CPX #'S' BNE QERLIN ;IF NOT 'S' @@ -350,17 +350,17 @@ QSTATV CPX #'S' JMP FLOAT ; QERLIN CPX #'E - BNE QDSAV - CPY #'R - BEQ GNUMER - CPY #'L - BNE QDSAV - LDA ERRLIN+1 - LDY ERRLIN - JMP NOSFLT ;PRINT 2 BYTES + BNE QDSAV + CPY #'R + BEQ GNUMER + CPY #'L + BNE QDSAV + LDA ERRLIN+1 + LDY ERRLIN + JMP NOSFLT ;PRINT 2 BYTES GNUMER LDA ERRNUM - LSR A ;DIVIDE BY 2 - JMP FLOAT ;PRINT 1 BYTE + LSR A ;DIVIDE BY 2 + JMP FLOAT ;PRINT 1 BYTE ; QDSAV CPX #'D' BNE GOMOVF ;IF NOT 'D' @@ -403,8 +403,8 @@ TKERD2=TKERRD+TKERRD JSR CHKSTR PLA TKINT2=TKINST+TKINST - CMP # - .IFN CC3 < +.IFN CC3 < CPX STREND+1 ;192K BNE LOPFN CMP STREND ;192K > - .IFN CC1+CC2 < +.IFN CC1+CC2 < CPX ARYTAB+1 ;64K OR 128K BNE LOPFN CMP ARYTAB ;64K OR 128K @@ -651,20 +651,20 @@ NOTEVL LDA VARNAM BNE QSTAVR CPY #$C9 ;'I'+$80 BEQ LDZR -;; CPY #'I' -;; BNE QSTAVR -;;GOBADV JMP SNERR +;; CPY #'I' +;; BNE QSTAVR +;;GOBADV JMP SNERR ; QSTAVR CMP #'S' BNE QERAVR CPY #'T' BEQ GOBADV QERAVR CMP #'E - BNE QDSVAR - CPY #'R - BEQ GOBADV - CPY #'L - BEQ GOBADV + BNE QDSVAR + CPY #'R + BEQ GOBADV + CPY #'L + BEQ GOBADV ; QDSVAR CMP #'D' ;DISK STATUS? BNE VAROK @@ -673,15 +673,15 @@ QDSVAR CMP #'D' ;DISK STATUS? CPY #$D3 ;'S'+$80 BEQ GOBADV ;CANNOT MODIFY DS$ VAROK - .IFN CC4 < +.IFN CC4 < LDA VAREND ;END OF SIMPLE VARS (256K) LDY VAREND+1 > - .IFN CC3 < +.IFN CC3 < LDA STREND ;END OF SIMPLE VARS (192K) LDY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < STA LOWTR ;^TO START OF NEW VARIABLE STY LOWTR+1 CLC @@ -690,7 +690,7 @@ VAROK INY GOBLT JSR BLTUV ;ENOUGH ROOM? > - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA ARYTAB ;END OF SIMPLE VARS (64K,128K) LDY ARYTAB+1 STA LOWTR @@ -706,13 +706,13 @@ GOBLT JSR BLTUV ;ENOUGH ROOM? NOTEVE STA HIGHDS STY HIGHDS+1 > - .IFN CC1 < +.IFN CC1 < JSR BLTU ;64K > - .IFN CC2 < +.IFN CC2 < JSR BLTUV ;128K > - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA HIGHDS ;64K OR 128K LDY HIGHDS+1 INY @@ -780,8 +780,8 @@ GOGO JSR MAPVAR INY LDA (INDEX1)Y STA I6509 ;BANK SET FOR GETTING STRINGS -; FIX BACKWARDS POINTER BY ADDING -; THE MOVE LENGTH TO IT +; FIX BACKWARDS POINTER BY ADDING +; THE MOVE LENGTH TO IT CLC LDY #$00 LDA (HIGHTR)Y @@ -791,7 +791,7 @@ GOGO JSR MAPVAR LDA (HIGHTR)Y ADC #$00 STA (HIGHTR)Y ;DONE WITH THIS STR. -; FIX THE NEXT STRING IN THE ARRAY +; FIX THE NEXT STRING IN THE ARRAY DVARTS LDA #STRSIZ CLC ADC INDEX1 diff --git a/BASIC_CBM2_1984-01-04/math2 b/BASIC_CBM2_1984-01-04/math2 index b3d36b2..7ec49a6 100644 --- a/BASIC_CBM2_1984-01-04/math2 +++ b/BASIC_CBM2_1984-01-04/math2 @@ -88,21 +88,21 @@ INDLOP LDA VARNAM+1 LDA ARYTAB+1 LOPFDA STX LOWTR STA LOWTR+1 - .IFN CC1+CC2 < +.IFN CC1+CC2 < CMP STREND+1 ;64K,128K > - .IFN CC3+CC4 < +.IFN CC3+CC4 < CMP ARYEND+1 ;192K,256K > BNE LOPFDV - .IFN CC1+CC2 < +.IFN CC1+CC2 < CPX STREND ;64K,128K > - .IFN CC3+CC4 < +.IFN CC3+CC4 < CPX ARYEND ;192K,256K > BEQ NOTFDD -LOPFDV JSR MAPARY +LOPFDV JSR MAPARY LDY #0 LDA (LOWTR)Y INY @@ -118,7 +118,7 @@ NMARY1 INY TAX INY LDA (LOWTR)Y - JSR MAPTXT + JSR MAPTXT ADC LOWTR+1 BCC LOPFDA BSERR LDX #ERRBS @@ -126,18 +126,18 @@ BSERR LDX #ERRBS FCERR LDX #ERRFC ERRGO3 JMP ERROR ; -GOTARY JSR MAPTXT +GOTARY JSR MAPTXT LDX #ERRDD LDA DIMFLG BNE ERRGO3 JSR FMAPTR - JSR MAPARY + JSR MAPARY LDY #4 LDA (LOWTR)Y CMP COUNT BNE BSERR JMP GETDEF ;GETDEF EXPECTS I6509 SET TO ARYBNK -SAV44 BPL SAV45; FLOAT: SIZE=5 +SAV44 BPL SAV45 ; FLOAT: SIZE=5 DEX LDA VARNAM BPL SAV45 ; STRING:SIZE=4 @@ -169,13 +169,13 @@ SAV45 RTS ; INDEX INTO THE VAR AS IF IT WERE FOUND ON THE ; INITIAL SEARCH NOTFDD JSR FMAPTR - .IFN CC1+CC2 < +.IFN CC1+CC2 < JSR REASON > - .IFN CC3+CC4 < +.IFN CC3+CC4 < JSR REASNA > - JSR MAPARY + JSR MAPARY LDY #0 STY CURTOL+1 LDA VARNAM ;STOR NAME, CALC ELT SIZE @@ -223,18 +223,18 @@ NOTDIM INY INY BEQ OMERR1 GREASE - JSR MAPTXT - .IFN CC1+CC2 < + JSR MAPTXT +.IFN CC1+CC2 < JSR REASON ;64K OR 128K VERSIONS STA STREND STY STREND+1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < JSR REASNA ;192K OR 256K VERSIONS STA ARYEND STY ARYEND+1 > - JSR MAPARY + JSR MAPARY LDA #0 INC CURTOL+1 LDY CURTOL @@ -248,19 +248,19 @@ DECCUR BNE ZERITA INC ARYPNT+1 SEC - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA STREND ;64K OR 128K VERSIONS > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYEND ;192K OR 256K VERSIONS > SBC LOWTR LDY #2 STA (LOWTR)Y - .IFN CC1+CC2 < +.IFN CC1+CC2 < LDA STREND+1 ;64K OR 128K VERSIONS > - .IFN CC3+CC4 < +.IFN CC3+CC4 < LDA ARYEND+1 ;192K OR 256K VERSIONS > INY @@ -287,10 +287,10 @@ INLPNM STA CURTOL+1 BEQ INLPN0 BCS INLPN1 BSERR7 JMP BSERR - .IFN CC1+CC2 < +.IFN CC1+CC2 < OMERR1 JMP OMERR > - .IFN CC3+CC4 < +.IFN CC3+CC4 < OMERR1 JMP OMERRA > ; @@ -328,9 +328,9 @@ ADDIND ADC INDICE+1 STA VARPNT+1 TAY LDA VARPNT - LDX #ARYBNK + LDX #ARYBNK STX VARPNT+2 -DIMRTS JMP MAPTXT +DIMRTS JMP MAPTXT .PAG ; TWO BYTE UNSIGNED INTEGER MULTIPLY. ; FOR MULTIPLY DIMENSIONED ARRAYS. @@ -394,7 +394,7 @@ FREF10 JSR CONINT ;.X := BANK# CPX #TXTBNK BNE FREF80 - .IFN CC1 < +.IFN CC1 < FREFST JSR GARBA2 ;COMPRESS OUT GARBAGE STRINGS SEC @@ -404,7 +404,7 @@ FREFST LDA FRETOP+1 SBC STREND+1 > - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < SEC LDA BUFFPT SBC TXTEND @@ -414,11 +414,11 @@ FREFST > JMP NOSFLT FREF80 - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < CPX #VARBNK BNE FREF70 > - .IFN CC2+CC3 < +.IFN CC2+CC3 < FREFST JSR GARBA2 ;COMPRESS OUT GARBAGE STRINGS SEC @@ -429,7 +429,7 @@ FREFST SBC STREND+1 JMP NOSFLT > - .IFN CC4 < +.IFN CC4 < SEC LDA HIGHST SBC VAREND @@ -439,7 +439,7 @@ FREFST JMP NOSFLT > FREF70 - .IFN CC3+CC4 < +.IFN CC3+CC4 < CPX #ARYBNK BNE FREF60 SEC @@ -451,7 +451,7 @@ FREF70 JMP NOSFLT > FREF60 - .IFN CC4 < +.IFN CC4 < FREFST CPX #STRBNK BNE FREF50 @@ -533,7 +533,7 @@ TSTDIR LDA CURLIN+1 ; TDM =TSTDIR .SKI 4 -GETFNM ; GET A PTR TO A FUNCTION NAME +GETFNM ; GET A PTR TO A FUNCTION NAME LDA #TKFN ; MUST START WITH FN JSR SYNCHR ORA #$80 ; .A<-1ST CHAR OF FN NAME+$80 @@ -559,7 +559,7 @@ FNDOER JSR GETFNM STA DEFPNT+1 PLA STA DEFPNT+2 - STA I6509 + STA I6509 LDY #2 ; VARPNT <- PTR FOR FORMAL PARAM LDA (DEFPNT)Y STA VARPNT @@ -572,7 +572,7 @@ FNDOER JSR GETFNM INY LDA (DEFPNT)Y STA VARPNT+2 - STA I6509 + STA I6509 FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM PHA DEY @@ -584,14 +584,14 @@ FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM PHA LDA TXTPTR PHA - LDA DEFPNT+2 - STA I6509 + LDA DEFPNT+2 + STA I6509 LDA (DEFPNT)Y ;TEXT PTR <- PTR TO FTN BODY TEXT STA TXTPTR INY LDA (DEFPNT)Y STA TXTPTR+1 - JSR MAPTXT + JSR MAPTXT LDA VARPNT+2 ; STACK <- PTR TO FORMAL PARAM PHA LDA VARPNT+1 @@ -622,8 +622,8 @@ FNDO50 LDA (VARPNT)Y ; PUSH OLD VALUE OF FORMAL PARAM ; TO THE TEXT FOR THE FTN BODY (2 BYTES) AND A PTR ; TO THE DATA AREA OF THE FORMAL PARAMETER (3 BYTES) ; -DEFFIN LDA DEFPNT+2 - STA I6509 +DEFFIN LDA DEFPNT+2 + STA I6509 LDY #0 PLA STA (DEFPNT)Y @@ -639,7 +639,7 @@ DEFFIN LDA DEFPNT+2 PLA INY STA (DEFPNT)Y - JMP MAPTXT + JMP MAPTXT .SKI 3 PEEK LDA POKER+1 PHA @@ -647,8 +647,8 @@ PEEK LDA POKER+1 PHA JSR GETADR LDX I6509 - LDA DFBANK - STA I6509 + LDA DFBANK + STA I6509 LDY #0 LDA (POKER)Y TAY @@ -671,12 +671,12 @@ FSUBT JSR SAV41 JMP FADDT ; SAV75 - LDY BUFFPT+1 - LDX BUFFPT - BNE SAV76 - DEY + LDY BUFFPT+1 + LDX BUFFPT + BNE SAV76 + DEY SAV76 - DEX + DEX ZERRTS RTS ; FADD5 JSR SHIFTR @@ -856,7 +856,7 @@ ROLSHF ROR 2,X SHFTRT CLC RTS .SKI 4 -FONE .BYT $81,0,0,0,0 +FONE .BYT $81, 0, 0, 0, 0 LOGCN2 .BYT $03,$7F,$5E,$56 .BYT $CB,$79,$80,$13 .BYT $9B,$0B,$64,$80 @@ -864,6 +864,6 @@ LOGCN2 .BYT $03,$7F,$5E,$56 .BYT $82,$38,$AA,$3B,$20 SQR05 .BYT $80,$35,$04,$F3,$34 SQR20 .BYT $81,$35,$04,$F3,$34 -NEGHLF .BYT $80,$80,0,0,0 +NEGHLF .BYT $80,$80, 0, 0, 0 LOG2 .BYT $80,$31,$72,$17,$F8 .END diff --git a/BASIC_CBM2_1984-01-04/math3 b/BASIC_CBM2_1984-01-04/math3 index 2dae38b..c22d65c 100644 --- a/BASIC_CBM2_1984-01-04/math3 +++ b/BASIC_CBM2_1984-01-04/math3 @@ -102,7 +102,7 @@ UCNUPK STX I6509 STA ARGHO DEY LDA (INDEX1)Y - JSR MAPTXT + JSR MAPTXT STA ARGEXP LDA FACEXP RTS @@ -222,7 +222,7 @@ DIVNRM ASL A ASL A STA FACOV PLP -; JMP MOVFR +; JMP MOVFR .PAG ; FLOATING PT MOVE ROUTINES ; @@ -266,7 +266,7 @@ MOVFUM STA INDEX1 LDA (INDEX1)Y STA FACEXP STY FACOV - JMP MAPTXT + JMP MAPTXT ; ; MOV2F: TEMP2F <- FAC ; MOV1F: TEMP1F <- FAC @@ -310,7 +310,7 @@ MOV001 STA I6509 LDA FACEXP STA (INDEX)Y STY FACOV - JMP MAPTXT + JMP MAPTXT ; ; MOVFA: FAC <- ARG REGISTER ; MOVAF: ARG <- FAC REGISTER @@ -375,31 +375,31 @@ ABS LSR FACSGN FCOMP STA INDEX2 FCOMPN STY INDEX2+1 ; ENTER W/VALUE ON STACK ("NEXT") LDY #0 - JSR FCINX2 + JSR FCINX2 INY TAX BEQ SIGN - JSR FCINX2 + JSR FCINX2 EOR FACSGN BMI FCSIGN CPX FACEXP BNE FCOMPC - JSR FCINX2 + JSR FCINX2 ORA #$80 CMP FACHO BNE FCOMPC INY - JSR FCINX2 + JSR FCINX2 CMP FACMOH BNE FCOMPC INY - JSR FCINX2 + JSR FCINX2 CMP FACMO BNE FCOMPC INY LDA #$7F CMP FACOV - JSR FCINX2 + JSR FCINX2 SBC FACLO BEQ QINTRT FCOMPC LDA FACSGN @@ -407,7 +407,7 @@ FCOMPC LDA FACSGN EOR #$FF FCOMPD JMP FCOMPS .SKIP 2 -FCINX2 JSR MAPSYS +FCINX2 JSR MAPSYS LDA (INDEX2)Y - JMP MAPTXT + JMP MAPTXT .END diff --git a/BASIC_CBM2_1984-01-04/math4 b/BASIC_CBM2_1984-01-04/math4 index e1443df..71ab99a 100644 --- a/BASIC_CBM2_1984-01-04/math4 +++ b/BASIC_CBM2_1984-01-04/math4 @@ -47,13 +47,13 @@ CLRFAC STA FACHO STA FACMOH STA FACMO STA FACLO - TAY + TAY INTRTS RTS .PAG ; NUMBER INPUT IS LEFT IN FAC. ; AT ENTRY TXTPTR -> TO THE 1ST CHAR IN A TEXT BUF. ; THE 1ST CHAR IS ALSO IN ACC. FIN PACKS THE DIGITS -; INTO THE FAC AS AN INTEGER AND KEEPS TRACK OF WHERE +; INTO THE FAC AS AN INTEGER AND KEEPS TRACK OF WHERE ; THE DECIMAL POINT IS. DPTFLG TELLS WHETHER A DP HAS ; BEEN SEEN. DCCNT IS THE NUMBER OF DIGITS AFTER THE ; DP. AT THE END DCCNT AND THE EXP ARE USED TO @@ -152,10 +152,10 @@ MLEX10 ASL A CLC LDY #0 STA TTTEMP - LDA TXTPTR+2 + LDA TXTPTR+2 STA I6509 LDA (TXTPTR)Y - JSR MAPTXT + JSR MAPTXT ADC TTTEMP SEC SBC #'0 @@ -356,7 +356,7 @@ FOUT17 LDA #0 STA FBUFFR,Y FOUT20 RTS .SKI 4 -N32768 .BYT $90 ;MUST STAY WITH FHALF AND ZERO +N32768 .BYT $90 ;MUST STAY WITH FHALF AND ZERO FHALF .BYT $80,0 ZERO .BYT 0,0,0 ; @@ -373,21 +373,21 @@ FOUTBL .BYT $FF,$FF,$FF,$FF ;-1 ; FDCEND -; .BYT $FF,$DF,$0A,$80 ;-216,000 FOR TIME CONVERTER -; .BYT $00,$03,$4B,$C0 ;216,000 -; .BYT $FF,$FF,$73,$60 ;-36000 -; .BYT $00,$00,$0E,$10 ;3600 -; .BYT $FF,$FF,$FD,$A8 ;-600 -; .BYT $00,$00,$00,$3C ;60 +; .BYT $FF,$DF,$0A,$80 ;-216,000 FOR TIME CONVERTER +; .BYT $00,$03,$4B,$C0 ;216,000 +; .BYT $FF,$FF,$73,$60 ;-36000 +; .BYT $00,$00,$0E,$10 ;3600 +; .BYT $FF,$FF,$FD,$A8 ;-600 +; .BYT $00,$00,$00,$3C ;60 ;TIMEND .PAG -SQR ;SQUARE ROOT FUNCTION SQR(A) -; USES SQR(A) == A**0.5 +SQR ;SQUARE ROOT FUNCTION SQR(A) +; USES SQR(A) == A**0.5 JSR MOVAF LDA #FHALF JSR MOVFM -; JMP FPWRT ;LAST THING FETCHED IS FACEXP INTO ACCX +; JMP FPWRT ;LAST THING FETCHED IS FACEXP INTO ACCX ; ; EXPONENTATION X**Y ; IF Y = 0 THEN RESULTS = 1. @@ -436,7 +436,7 @@ SAV41 LDA FACSGN NEGRTS RTS .PAG LOGEB2 .BYT $81,$38,$AA,$3B,$29 ;LOG(E) BASE 2 -EXPCON .BYT 7,$71,$34,$58,$3E +EXPCON .BYT 7,$71,$34,$58,$3E .BYT $56,$74,$16,$7E .BYT $B3,$1B,$77,$2F .BYT $EE,$E3,$85,$7A @@ -445,7 +445,7 @@ EXPCON .BYT 7,$71,$34,$58,$3E .BYT $0A,$7E,$75,$FD .BYT $E7,$C6,$80,$31 .BYT $72,$18,$10,$81 - .BYT 0,0,0,0 + .BYT 0, 0, 0, 0 .SKI 4 ; MULTIPLY BY LOG(E) BASE 2. EXP LDA # - .IFE CC1 < +.IFE CC1 < INC TXTEND > BNE AD7714 - .IFN CC1 < +.IFN CC1 < INC VARTAB+1 > - .IFE CC1 < +.IFE CC1 < INC TXTEND+1 > AD7714 RTS @@ -240,24 +240,24 @@ AD7714 RTS AD7715 JSR AD7726 DEC ARGMO JSR AD7545 - .IFN CC1 < +.IFN CC1 < LDA VARTAB > - .IFE CC1 < +.IFE CC1 < LDA TXTEND > BNE AD7723 - .IFN CC1 < +.IFN CC1 < DEC VARTAB+1 > - .IFE CC1 < +.IFE CC1 < DEC TXTEND+1 > AD7723 - .IFN CC1 < +.IFN CC1 < DEC VARTAB > - .IFE CC1 < +.IFE CC1 < DEC TXTEND > RTS @@ -304,17 +304,17 @@ AD7529 LDA TXTPTR STA INDEX1 LDA TXTPTR+1 STA INDEX1+1 - .IFN CC1 < +.IFN CC1 < LDA VARTAB > - .IFE CC1 < +.IFE CC1 < LDA TXTEND > STA INDEX2 - .IFN CC1 < +.IFN CC1 < LDA VARTAB+1 > - .IFE CC1 < +.IFE CC1 < LDA TXTEND+1 > STA INDEX2+1 @@ -359,19 +359,19 @@ SUBCLR JSR LNKPRG LDX INDEX1+1 CLC ADC #$02 - .IFN CC1 < +.IFN CC1 < STA VARTAB > - .IFE CC1 < +.IFE CC1 < STA TXTEND > BCC AD72B6 INX AD72B6 - .IFN CC1 < +.IFN CC1 < STX VARTAB+1 > - .IFE CC1 < +.IFE CC1 < STX TXTEND+1 > JSR RUNC diff --git a/BASIC_CBM2_1984-01-04/strng1 b/BASIC_CBM2_1984-01-04/strng1 index 5db933d..d9727f2 100644 --- a/BASIC_CBM2_1984-01-04/strng1 +++ b/BASIC_CBM2_1984-01-04/strng1 @@ -1,7 +1,7 @@ -.PAG 'STRING UTILITY ROUTINES' -; PUCTRL TAKES ASSIGNS VALUES FOR THE PRINT USING -; CHARACTERS (FILL,COMMA,DOT,DOLLAR) FROM A USER -; STRING. +.PAGE 'STRING UTILITY ROUTINES' +; PUCTRL TAKES ASSIGNS VALUES FOR THE PRINT USING +; CHARACTERS (FILL,COMMA,DOT,DOLLAR) FROM A USER +; STRING. PUCTRL JSR SAV13 JSR MAPINX ;.A=LEN, INDEX=^STRING TAY @@ -10,15 +10,15 @@ PUCTRL JSR SAV13 BCC PUC50 ;LEN < #PU CHARS LDY #PUMONY-PUCHRS+1 ;LEN >= #PU CHARS PUC50 DEY -PUC60 LDA (INDEX),Y +PUC60 LDA (INDEX)Y STA PUCHRS,Y DEY BPL PUC60 PUCBYE JMP MAPTXT .SKI 5 -; THE STR$ FNC TAKES A NUMBER AND GIVES A STRING -; WITH THE CHARS THE OUTPUT OF THE # WOULD HAVE -; GIVEN. +; THE STR$ FNC TAKES A NUMBER AND GIVES A STRING +; WITH THE CHARS THE OUTPUT OF THE # WOULD HAVE +; GIVEN. STRD JSR CHKNUM JSR FOUT PLA @@ -41,67 +41,67 @@ STR020 TYA ;LENGTH TO .A LDY #0 STR030 LDA FBUFFR,Y BEQ STR040 - STA (DSCTMP+1),Y + STA (DSCTMP+1)Y INY BNE STR030 STR040 JSR MAPTXT JMP PUTNEW -.SKI 4 -; GET STRING SPACE FOR THE CREATION OF A STRING -; AND CREATE A DESCRIPTOR FOR IT IN DSCTMP +.SKIP 4 +; GET STRING SPACE FOR THE CREATION OF A STRING +; AND CREATE A DESCRIPTOR FOR IT IN DSCTMP ; -; ENTER: STRINI - FACMO CONTAINS DESCRIPTOR PTR -; - .A = LENGTH -; STRSPA - .A = LENGTH +; ENTER: STRINI - FACMO CONTAINS DESCRIPTOR PTR +; - .A = LENGTH +; STRSPA - .A = LENGTH ; STRINI LDX FACMO+2 STX DSCPNT+2 LDX FACMO LDY FACMO+1 - STX DSCPNT ;DSCPNT <- DESCRIPTOR PTR + STX DSCPNT ; DSCPNT <- DESCRIPTOR PTR STY DSCPNT+1 -STRSPA JSR GETSPA ;ALLOCATE SPACE - STA DSCTMP ;LENGTH - STX DSCTMP+1 ;PTR TO STRING +STRSPA JSR GETSPA ; ALLOCATE SPACE + STA DSCTMP ; LENGTH + STX DSCTMP+1 ; PTR TO STRING STY DSCTMP+2 LDY #STRBNK ;STRING BANK# STY DSCTMP+3 ATN4 RTS -.PAG -; GET STRING SPACE FOR THE CREATION OF A STRING. -; SPACE IS ALLOCATED AND A COPY IS MADE OF THIS -; SUBSTRING. A TEMPORARY DESCRIPTOR IS MADE. -; EXIT: STRNG1 = PTR TO START OF STRING -; STRNG2 = PTR TO 1ST CHAR PAST TERMINATOR -; FACMO = DESCRIPTOR PTR FOR COPY +.PAGE +; GET STRING SPACE FOR THE CREATION OF A STRING. +; SPACE IS ALLOCATED AND A COPY IS MADE OF THIS +; SUBSTRING. A TEMPORARY DESCRIPTOR IS MADE. +; EXIT: STRNG1 = PTR TO START OF STRING +; STRNG2 = PTR TO 1ST CHAR PAST TERMINATOR +; FACMO = DESCRIPTOR PTR FOR COPY ; -; STRLIT,STRLT2: A STRING IS SEARCHED UNTIL THE END -; IS REACHED OR A MATCHING TERMINATING CHAR -; IS FOUND. THIS SUBSTRING IS COPIED TO A -; NEW TEMPORARY STRING. -; ENTER: .A,.Y = PTR TO STRING -; .X = STRING BANK# +; STRLIT,STRLT2: A STRING IS SEARCHED UNTIL THE END +; IS REACHED OR A MATCHING TERMINATING CHAR +; IS FOUND. THIS SUBSTRING IS COPIED TO A +; NEW TEMPORARY STRING. +; ENTER: .A,.Y = PTR TO STRING +; .X = STRING BANK# ; -; PUTNEW: TEMP DESCRIPTOR DSCTMP IS PUT ON THE -; DESCR "STACK" AND FACMO IS ITS DESC PTR. +; PUTNEW: TEMP DESCRIPTOR DSCTMP IS PUT ON THE +; DESCR "STACK" AND FACMO IS ITS DESC PTR. ; STRLIT PHA LDA #34 ;SET TERMINATORS STA CHARAC STA ENDCHR PLA -STRLT2 STA STRNG1 ;STRNG1<-PTR TO STRING +STRLT2 STA STRNG1 ; STRNG1<-PTR TO STRING STY STRNG1+1 STX STRNG1+2 STX I6509 - STA DSCTMP+1 ;DITTO.. + STA DSCTMP+1 ; DITTO.. STY DSCTMP+2 STX DSCTMP+3 STX STRNG2+2 LDY #$FF -STRGET INY ;SKIM OVER STRING - LDA (STRNG1),Y +STRGET INY ; SKIM OVER STRING + LDA (STRNG1)Y BEQ STRFI1 CMP CHARAC BEQ STRFIN @@ -113,34 +113,34 @@ STRFI1 CLC STRFI2 JSR MAPTXT STY DSCTMP TYA - ADC STRNG1 ;STRNG2 <- PTR TO END OF STRING + ADC STRNG1 ; STRNG2 <- PTR TO END OF STRING STA STRNG2 LDX STRNG1+1 BCC STRST2 INX STRST2 STX STRNG2+1 - TYA ;.A <- LENGTH - JSR STRINI ;ALLOCATE SPACE + TYA ; .A <- LENGTH + JSR STRINI ; ALLOCATE SPACE LDX #2 SOTL LDY STRNG1,X STY INDEX,X DEX BPL SOTL -GLGR ;ENTRY POINT FROM LEFTD - JSR MOVDO ;COPY IT TO END OF STRING AREA +GLGR ;ENTRY POINT FROM LEFTD + JSR MOVDO ; COPY IT TO END OF STRING AREA ; PUTNEW LDY TEMPPT CPY #STRSIZ+STRSIZ+STRSIZ BNE PUTNW1 LDX #ERRST JMP ERROR -; COMPUTE ADDRESS OF THIS TEMP DESCRIPTOR -; AND TEMPPT BECOMES OFFSET TO NEXT DESCRIPTOR. -; TWO DESCR POINTERS: -; FACMO,LASTPT <- TEMPST+TEMPPT -; AND: -; TEMPPT <- TEMPPT+STRSIZ +; COMPUTE ADDRESS OF THIS TEMP DESCRIPTOR +; AND TEMPPT BECOMES OFFSET TO NEXT DESCRIPTOR. +; TWO DESCR POINTERS: +; FACMO,LASTPT <- TEMPST+TEMPPT +; AND: +; TEMPPT <- TEMPPT+STRSIZ ; PUTNW1 LDA #STRBNK ;TEMP STR DESCRS ARE IN STR BANK @@ -149,7 +149,7 @@ PUTNW1 LDX #0 ;MOVE LEN,PTR,BANK BYTES PUTNWL LDA DSCTMP,X - STA (TEMPST),Y ;LENGTH + STA (TEMPST)Y ;LENGTH INY INX CPX #STRSIZ @@ -171,61 +171,61 @@ PUTNW2 LDY #0 STY FACOV DEY - STY VALTYP ;$FF IS STRING TYPE + STY VALTYP ; $FF IS STRING TYPE RTS -.SKI 3 +.SKIP 3 ; -; MOVE A STRING TO TOP OF FREE SPACE -; ENTER: MOVINS - STRNG1 IS SRC DESCRIPTOR PTR -; MOVDO - INDEX = PTR TO SRC STRING -; .A = LENGTH -; EXIT: INDEX = PTR TO SOURCE -; FRESPC = PTR TO DST LINK BYTES +; MOVE A STRING TO TOP OF FREE SPACE +; ENTER: MOVINS - STRNG1 IS SRC DESCRIPTOR PTR +; MOVDO - INDEX = PTR TO SRC STRING +; .A = LENGTH +; EXIT: INDEX = PTR TO SOURCE +; FRESPC = PTR TO DST LINK BYTES ; MOVINS LDA STRNG1+2 STA I6509 LDY #0 - LDA (STRNG1),Y ;GET LENGTH,PTR VIA DESCR PTR + LDA (STRNG1)Y ; GET LENGTH,PTR VIA DESCR PTR TAX INY - LDA (STRNG1),Y ;INDEX<-PTR TO STRING + LDA (STRNG1)Y ;INDEX<-PTR TO STRING STA INDEX INY - LDA (STRNG1),Y + LDA (STRNG1)Y STA INDEX+1 INY - LDA (STRNG1),Y + LDA (STRNG1)Y STA INDEX+2 TXA MOVDO TAY BEQ MVDONE PHA LDX #STRBNK -MOVLP DEY ;MOVE THE STRING +MOVLP DEY ; MOVE THE STRING LDA INDEX+2 STA I6509 - LDA (INDEX),Y + LDA (INDEX)Y STX I6509 - STA (FRESPC),Y + STA (FRESPC)Y TYA BNE MOVLP PLA MVDONE JSR MAPTXT - CLC ;ADJUST FRESPC PTR + CLC ; ADJUST FRESPC PTR ADC FRESPC STA FRESPC BCC MVSTRT INC FRESPC+1 MVSTRT RTS .PAG -; GIVEN A STRING DESCRIPTOR POINTER, DETERMINE IF IT -; CAN BE FREED AND DO SO. +; GIVEN A STRING DESCRIPTOR POINTER, DETERMINE IF IT +; CAN BE FREED AND DO SO. ; -; EXIT: .A = LENGTH -; INDEX = PTR TO STRING +; EXIT: .A = LENGTH +; INDEX = PTR TO STRING ; FRESTR JSR CHKSTR -FREFAC LDA FACMO ;DESCPTR PTR +FREFAC LDA FACMO ; DESCPTR PTR LDY FACMO+1 LDX FACMO+2 FRETMP JSR SAV10 @@ -234,7 +234,7 @@ FRETMP JSR SAV10 BCC FRE02 ;LITERAL NO FIX JSR MKGARB ;MARK IT AS GARBAGE PHA ;SAVE LENGTH ON STACK -; +; EOR #$FF ;PUT INDEX BACK SEC ;TO FIRST BYTE ADC INDEX @@ -246,18 +246,18 @@ RES00 STA INDEX TAX ;LO INTO X PLA ;PULL LENGTH FROM STACK LDY INDEX+2 ;EQUAL TO FRETOP? - CPY #STRBNK ;BANK + CPY #STRBNK ; BANK BNE FRERTS LDY INDEX+1 - CPY FRETOP+1 ;PTR(HI) + CPY FRETOP+1 ; PTR(HI) BNE FRERTS - CPX FRETOP ;PTR(LO) + CPX FRETOP ; PTR(LO) BNE FRERTS -; -; STRING WAS LAST INTO STRING SPACE -; SAVE GARBAGE COLLECTION SOME TIME -; BY FREEING UP. (LENGTH + PTRSIZ) -; +; +; STRING WAS LAST INTO STRING SPACE +; SAVE GARBAGE COLLECTION SOME TIME +; BY FREEING UP. (LENGTH + PTRSIZ) +; PHA ;SAVE LENGTH ON STACK CLC ADC FRETOP @@ -270,21 +270,21 @@ FRE01 CLC INC FRETOP+1 FREPLA PLA ;PULL LENGTH OFF STACK RTS -; INDEX IS DESCRIPTO PTR. SET UP RETURN VALUES -; AS IF STRING HAD BEEN MARKED AS GARBAGE, AS IN ABOVE. +; INDEX IS DESCRIPTO PTR. SET UP RETURN VALUES +; AS IF STRING HAD BEEN MARKED AS GARBAGE, AS IN ABOVE. ; FRE02 JSR MAPINX ;SET BANK TO INDEX+2 LDY #$00 ;SET UP .A AND INDEX - LDA (INDEX),Y ;LENGTH + LDA (INDEX)Y ;LENGTH PHA INY - LDA (INDEX),Y ;POINTER LO + LDA (INDEX)Y ;POINTER LO PHA INY - LDA (INDEX),Y ;POINTER HI + LDA (INDEX)Y ;POINTER HI TAX INY - LDA (INDEX),Y ;POINTER BANK + LDA (INDEX)Y ;POINTER BANK STA INDEX+2 STX INDEX+1 JSR MAPTXT @@ -292,11 +292,11 @@ FRE02 JSR MAPINX ;SET BANK TO INDEX+2 STA INDEX PLA ;GET BACK LENGTH RTS -.SKI 3 -; IF THE DESCRIPTOR POINTER IS ON THE TOP OF -; STRING DESCRIPTOR STACK, POP IT OFF. -; ENTER: .A,.Y = DESCRIPTOR PTR -; .X = BANK# +.SKIP 3 +; IF THE DESCRIPTOR POINTER IS ON THE TOP OF +; STRING DESCRIPTOR STACK, POP IT OFF. +; ENTER: .A,.Y = DESCRIPTOR PTR +; .X = BANK# ; SAV10 STA INDEX STY INDEX+1 @@ -318,29 +318,29 @@ FRET10 SEC STA TEMPPT LDY #0 FRERTS RTS -.PAG 'STRING ASSIGNMENT' -.SKI 1 -; INPCOM PERFORM THE ASSIGNMENT OF A STRING VALUE -; TO A STRING VARIABLE. +.PAGE 'STRING ASSIGNMENT' +.SKIP 1 +; INPCOM PERFORM THE ASSIGNMENT OF A STRING VALUE +; TO A STRING VARIABLE. ; -; ENTER: FORPNT = PTR TO LHS VAR'S DATA MEMORY -; FACMO = DESCRIPTOR PTR TO RHS STRING VAL +; ENTER: FORPNT = PTR TO LHS VAR'S DATA MEMORY +; FACMO = DESCRIPTOR PTR TO RHS STRING VAL ; -; FORPNT IS CHECKED TO SEE IF IT DS$. SPECIAL CODE -; HANDLES DS$ ASSIGNMENTS. ALSO, IF THE RHS VALUE IS -; NOT A TEMPORARY RESULT (I.E., DESCRIPTOR PTR POINTS -; TO THE SYMBOL TABLES), A COPY OF THE VALUE IS MADE. +; FORPNT IS CHECKED TO SEE IF IT DS$. SPECIAL CODE +; HANDLES DS$ ASSIGNMENTS. ALSO, IF THE RHS VALUE IS +; NOT A TEMPORARY RESULT (I.E., DESCRIPTOR PTR POINTS +; TO THE SYMBOL TABLES), A COPY OF THE VALUE IS MADE. ; INPCOM LDY FORPNT+2 CPY #SYSBNK BNE GETSPT - JMP MKTIME ;SEE PTRGET, => TI$ -.SKI 2 + JMP MKTIME ; SEE PTRGET, => TI$ +.SKIP 2 GETSPT LDY FACMO+2 ;DESCR PTR FOR TEMP? - .IFN CC1+CC2 < - CPY #VARBNK ;NO, IF VARBNK & < STREND +.IFN CC1+CC2 < + CPY #VARBNK ; NO, IF VARBNK & < STREND BNE DNTCPY LDY FACMO+1 ;DESCR PTR FOR TEMP? CPY STREND+1 ;MAKE A COPY, IF NOT... @@ -350,10 +350,10 @@ GETSPT CMP STREND BCC COPY > - .IFN CC3 < - CPY #ARYBNK ;NOT IF IN ARRAY BANK +.IFN CC3 < + CPY #ARYBNK ; NOT IF IN ARRAY BANK BEQ COPY - CPY #VARBNK ;NOT IF VARBNK & < STREND + CPY #VARBNK ; NOT IF VARBNK & < STREND BNE DNTCPY LDY FACMO+1 ;DESCR PTR FOR TEMP? CPY STREND+1 ;MAKE A COPY, IF NOT... @@ -363,10 +363,10 @@ GETSPT CMP STREND BCC COPY > - .IFN CC4 < - CPY #VARBNK ;NO, IF IN VARBNK +.IFN CC4 < + CPY #VARBNK ; NO, IF IN VARBNK BEQ COPY - CPY #ARYBNK ;OR ARRAY BANK + CPY #ARYBNK ; OR ARRAY BANK BEQ COPY > DNTCPY LDA FACMO @@ -383,20 +383,20 @@ DCOP02 JSR FIXOLD ;FIX OLD... LDX FORPNT+2 LDY #STRSIZ-1 DCOP01 JSR MAPDSP - LDA (DSCPNT),Y ;SET THE DESCRIPTOR + LDA (DSCPNT)Y ;SET THE DESCRIPTOR STX I6509 - STA (FORPNT),Y + STA (FORPNT)Y DEY BPL DCOP01 JMP MAPTXT -.SKI 3 -; MAKE A COPY OF THE SOURCE VALUE. -; DO THE ASSIGNMENT OF THE DUPLICATE. +.SKIP 3 +; MAKE A COPY OF THE SOURCE VALUE. +; DO THE ASSIGNMENT OF THE DUPLICATE. ; COPY LDA FACMO+2 STA I6509 LDY #0 - LDA (FACMO),Y + LDA (FACMO)Y JSR MAPTXT JSR STRINI ;COPY SRC VALUE: MAKE SPACE FOR IT LDX #2 @@ -415,39 +415,39 @@ SOTH JSR STRADD ;SET UP INDEX BCC COPY02 ;?FIX BACK LINKS JSR BCKLNK ;LINK NEW -COPY02 JSR FIXOLD ;FIX OLD... +COPY02 JSR FIXOLD ; FIX OLD... LDY #STRSIZ-1 ;FIX VAR'S DESCRIPTOR LDA FORPNT+2 STA I6509 COPY01 LDA DSCTMP,Y - STA (FORPNT),Y + STA (FORPNT)Y DEY BPL COPY01 JMP MAPTXT -.SKI 3 +.SKIP 3 ; -; FIX THE NEW STRING BY SETTING ITS BACK LINK -; BYTES TO POINT TO THE DESTINATION DESCRIPTOR. +; FIX THE NEW STRING BY SETTING ITS BACK LINK +; BYTES TO POINT TO THE DESTINATION DESCRIPTOR. ; -; ENTER: FORPNT = DESCR PTR FOR DEST +; ENTER: FORPNT = DESCR PTR FOR DEST ; BCKLNK JSR MAPINX LDY #$00 LDA FORPNT ;PUT IN BACKWARDS LINK - STA (INDEX),Y + STA (INDEX)Y INY LDA FORPNT+1 - STA (INDEX),Y + STA (INDEX)Y INY ;BANK NUMBER LDA FORPNT+2 - STA (INDEX),Y + STA (INDEX)Y JMP MAPTXT -.SKI 3 -; IF THE DESTINATION HAS AN OLD VALUE, FREE IT -; AND MARK IT AS GARBAGE. +.SKIP 3 +; IF THE DESTINATION HAS AN OLD VALUE, FREE IT +; AND MARK IT AS GARBAGE. ; -; ENTER: FORPNT=DEST DESCRIPTOR PTR +; ENTER: FORPNT=DEST DESCRIPTOR PTR ; FIXOLD LDX #2 SUMP @@ -457,58 +457,58 @@ SUMP BPL SUMP JSR STRADJ ;POINT TO OLD STRING BCC FNK05 ;IN TEXT DO NOT FIX -;JMP MKGARB ;MARK AS GARBAGE -.SKI 3 -; MARK THE STRING AS GARBAGE -; ENTER: INDEX POINTS TO STR LINK BYTES -; .X = LENGTH -; EXIT: .X,.A = LENGTH -; .Y = 0 -; INDEX UNCHANGED +; JMP MKGARB ;MARK AS GARBAGE +.SKIP 3 +; MARK THE STRING AS GARBAGE +; ENTER: INDEX POINTS TO STR LINK BYTES +; .X = LENGTH +; EXIT: .X,.A = LENGTH +; .Y = 0 +; INDEX UNCHANGED MKGARB JSR MAPINX ;BANK <= INDEX+2 LDY #2 LDA #$FF - STA (INDEX),Y ;MARK BANK# + STA (INDEX)Y ;MARK BANK# DEY - STA (INDEX),Y ;MARK BACK LINK(HI) AS JUNK + STA (INDEX)Y ;MARK BACK LINK(HI) AS JUNK DEY TXA - STA (INDEX),Y ;BACK LINK(LO)=LEN + STA (INDEX)Y ;BACK LINK(LO)=LEN JMP MAPTXT -.SKI 4 -; TAKES THE POINTER INDEX WHICH POINTS TO A DESCRIPTOR -; AND INDEXES TO THE DESCIPTORS STRING DATA. -; IF NO ACTION TO TAKE, (DS$ STRING OR ZERO LENGTH STRING) -; WE RETURN WITH CARRY CLEAR; OTHERWISE WE RETURN WITH -; THE POINTER SET TO THE LINK BYTES IN THE STRING -; THE LENGTH IN .A AND THE CARRY SET. +.SKIP 4 +; TAKES THE POINTER INDEX WHICH POINTS TO A DESCRIPTOR +; AND INDEXES TO THE DESCIPTORS STRING DATA. +; IF NO ACTION TO TAKE, (DS$ STRING OR ZERO LENGTH STRING) +; WE RETURN WITH CARRY CLEAR; OTHERWISE WE RETURN WITH +; THE POINTER SET TO THE LINK BYTES IN THE STRING +; THE LENGTH IN .A AND THE CARRY SET. ; -; STRADJ - USE INDEX AS DESCRIPTOR PTR -; STRADD - USE DSCTMP AS DESCRIPTOR +; STRADJ - USE INDEX AS DESCRIPTOR PTR +; STRADD - USE DSCTMP AS DESCRIPTOR ; STRADJ JSR MAPINX LDY #$00 - LDA (INDEX),Y ;PUSH LENGTH ON STACK + LDA (INDEX)Y ;PUSH LENGTH ON STACK PHA BEQ SADJ8 ;LENGTH 0 DO NOTHING INY - LDA (INDEX),Y ;PUSH LO BYTE + LDA (INDEX)Y ;PUSH LO BYTE PHA INY - LDA (INDEX),Y ;HIGH BYTE IN .X + LDA (INDEX)Y ;HIGH BYTE IN .X TAX INY - LDA (INDEX),Y ;BANK IN .Y + LDA (INDEX)Y ;BANK IN .Y TAY JSR MAPTXT PLA ;LO SADJ3 -;CPX FRETOP+1 -;BCC SADJ8 -;CMP FRETOP -;BCC SADJ8 +; CPX FRETOP+1 +; BCC SADJ8 +; CMP FRETOP +; BCC SADJ8 CPY DSDESC+3 ;IS IT DS$ STRING? BNE SADJ4 CPX DSDESC+2 @@ -528,7 +528,7 @@ SADJ8 JSR MAPTXT PLA ;CLEAN UP STACK CLC RTS -.SKI 2 +.SKIP 2 STRADD LDA DSCTMP PHA ;LENGTH ON STACK diff --git a/BASIC_CBM2_1984-01-04/strng2 b/BASIC_CBM2_1984-01-04/strng2 index 8499dc2..8d5037e 100644 --- a/BASIC_CBM2_1984-01-04/strng2 +++ b/BASIC_CBM2_1984-01-04/strng2 @@ -1,92 +1,92 @@ -.PAG 'STRING FUNCTIONS' -; CONCATENATE TWO STRINGS +.PAGE 'STRING FUNCTIONS' +; CONCATENATE TWO STRINGS ; CAT LDA FACMO+2 ;PUSH DESCR PTR (BANK#) PHA - LDA FACMO+1 ;(PTR) + LDA FACMO+1 ; (PTR) PHA LDA FACMO PHA - JSR EVAL ;DO 2ND OPERAND - JSR CHKSTR ;MUST BE STRING VALUE + JSR EVAL ; DO 2ND OPERAND + JSR CHKSTR ; MUST BE STRING VALUE PLA STA STRNG1 ;STRNG1 <- DESCR PTR FOR 1ST OPND PLA STA STRNG1+1 PLA STA STRNG1+2 - STA I6509 + STA I6509 LDY #0 - LDA (STRNG1),Y ;LEN1+LEN2<256 ? + LDA (STRNG1)Y ; LEN1+LEN2<256 ? STA TTTEMP - LDA FACMO+2 - STA I6509 - LDA (FACMO),Y - JSR MAPTXT + LDA FACMO+2 + STA I6509 + LDA (FACMO)Y + JSR MAPTXT CLC ADC TTTEMP BCC SIZEOK JMP ERRLEN ; -SIZEOK JSR STRINI ;ALLOCATE FOR RESULT - JSR MOVINS ;COPY 1ST OPERAND +SIZEOK JSR STRINI ; ALLOCATE FOR RESULT + JSR MOVINS ; COPY 1ST OPERAND JSR SAV47 - JSR MOVDO ;APPEND 2ND STRING - LDA STRNG1 ;DESCRIPTOR PTR FOR RESULT + JSR MOVDO ; APPEND 2ND STRING + LDA STRNG1 ; DESCRIPTOR PTR FOR RESULT LDY STRNG1+1 LDX STRNG1+2 JSR FRETMP JSR PUTNEW JMP TSTOP -SAV47 LDA DSCPNT ;DESCR PTR 2ND OPND +SAV47 LDA DSCPNT ; DESCR PTR 2ND OPND LDY DSCPNT+1 LDX DSCPNT+2 - JMP FRETMP ;SETS UP INDEX1! -.SKI 3 + JMP FRETMP ; SETS UP INDEX1! +.SKIP 3 ; -; CHR$ FUNCTION +; CHR$ FUNCTION ; CHRD JSR CONINT - TXA ;.A <- PARAMETER VALUE + TXA ; .A <- PARAMETER VALUE PHA LDA #1 - JSR STRSPA ;SPACE FOR 1 CHAR + JSR STRSPA ; SPACE FOR 1 CHAR JSR MAPDST ;BANK:=DSCTMP+3 PLA LDY #0 - STA (DSCTMP+1),Y ;STORE THE CHAR + STA (DSCTMP+1)Y ; STORE THE CHAR CHRD2 JSR MAPTXT PLA PLA - JMP PUTNEW ;ANOTHER TMP DESCR... -.SKI 3 + JMP PUTNEW ; ANOTHER TMP DESCR... +.SKIP 3 ; -; LEFT$, RIGHT$, MID$ FUNCTIONS +; LEFT$, RIGHT$, MID$ FUNCTIONS ; LEFTD JSR PREAM PHA JSR MAPDSP ;SET BANK - LDA (DSCPNT),Y + LDA (DSCPNT)Y STA TTTEMP PLA CMP TTTEMP TYA -; IF 2ND PARAM>LENGTH, USE LENGTH INSTEAD +; IF 2ND PARAM>LENGTH, USE LENGTH INSTEAD RLEFT BCC RLEFT1 - LDA (DSCPNT),Y + LDA (DSCPNT)Y TAX TYA -RLEFT1 JSR MAPTXT - PHA ;STARTING OFFSET -RLEFT2 TXA ;LENGTH +RLEFT1 JSR MAPTXT + PHA ; STARTING OFFSET +RLEFT2 TXA ; LENGTH RLEFT3 PHA - JSR STRSPA ;GET SPACE FOR RESULT + JSR STRSPA ; GET SPACE FOR RESULT JSR SAV47 PLA TAY PLA -; ADD OFFSET. INDEX WILL POINT TO 1ST DESIRED CHAR. +; ADD OFFSET. INDEX WILL POINT TO 1ST DESIRED CHAR. JSR SAV15 PULMOR TYA JMP GLGR ;MOVDO FOLLOWED BY PUTNEW @@ -100,12 +100,12 @@ SAV16 RTS RIGHTD JSR PREAM PHA JSR MAPDSP ;SET BANK - LDA (DSCPNT),Y + LDA (DSCPNT)Y STA TTTEMP PLA CLC - SBC TTTEMP ;PLACES-LENGTH - EOR #$FF ;IF CY, THEN LENGTH WILL BE USED + SBC TTTEMP ; PLACES-LENGTH + EOR #$FF ; IF CY, THEN LENGTH WILL BE USED JMP RLEFT ; SAV17 JSR CHRGOT @@ -119,39 +119,39 @@ MIDD LDA #$FF MID2 JSR PREAM BEQ GOFUC DEX - TXA ;1ST POS = 1ST OPND - 1 + TXA ; 1ST POS = 1ST OPND - 1 PHA PHA CLC LDX #0 - JSR MAPDSP - LDA (DSCPNT),Y - JSR MAPTXT + JSR MAPDSP + LDA (DSCPNT)Y + JSR MAPTXT STA TTTEMP PLA SBC TTTEMP -; LENGTH OF RESULT = 0, IF 1ST POS > LEN STR OPND -; = MIN(LEN STR OPND - 1ST POS, 3RD OPND) +; LENGTH OF RESULT = 0, IF 1ST POS > LEN STR OPND +; = MIN(LEN STR OPND - 1ST POS, 3RD OPND) BCS RLEFT2 EOR #$FF CMP FACLO BCC RLEFT3 LDA FACLO BCS RLEFT3 -; EXIT PREAM: .X=.A=2ND PARAM VAL -; .Y=0 -; DSCPNT SET UP FOR 1ST OPND +; EXIT PREAM: .X=.A=2ND PARAM VAL +; .Y=0 +; DSCPNT SET UP FOR 1ST OPND ; -PREAM JSR CHKCLS ;')'? +PREAM JSR CHKCLS ; ')'? PLA TAY PLA - STA JMPER+1 ;POP RETURN + STA JMPER+1 ; POP RETURN ; -; POP OFF: RETURN FROM CALLER OF PREAM (SEE ISFUN -; SHOULD GO BACK TO EVAL INSTEAD.) -; .X<-STACK (2ND PARAM, BYTE VAL) -; DSCPNT<-STACK (DESCRP PTR 1ST OPND) +; POP OFF: RETURN FROM CALLER OF PREAM (SEE ISFUN +; SHOULD GO BACK TO EVAL INSTEAD.) +; .X<-STACK (2ND PARAM, BYTE VAL) +; DSCPNT<-STACK (DESCRP PTR 1ST OPND) ; PUSH BACK RETURN TO CALLER OF PREAM. PLA PLA @@ -200,9 +200,9 @@ TRUG STY STRNG2,X DEX BPL TRUG - LDX INDEX1+2 + LDX INDEX1+2 STX TXTPTR+2 ;TXTPTR := INDEX1 (START OF STR) - STX I6509 + STX I6509 LDX INDEX1 STX TXTPTR CLC @@ -214,26 +214,26 @@ TRUG INX VAL2 STX INDEX2+1 LDY #0 - LDA (INDEX2),Y + LDA (INDEX2)Y PHA TYA - STA (INDEX2),Y - JSR MAPTXT + STA (INDEX2)Y + JSR MAPTXT JSR CHRGOT JSR FIN JSR MAPSTR ;RESTORE BYTE AT END OF STR (ALWAYS IN STR BANK) PLA LDY #0 - STA (INDEX2),Y - JSR MAPTXT + STA (INDEX2)Y + JSR MAPTXT ST2TXT LDX STRNG2 ;RESTORE TEXT POINTER LDY STRNG2+1 - LDA STRNG2+2 + LDA STRNG2+2 STX TXTPTR STY TXTPTR+1 - STA TXTPTR+2 + STA TXTPTR+2 RTS -.SKI 4 +.SKIP 4 ERRD PLA ;TRASH OLD TOKEN FROM ISFUN JSR PARCHK JSR CHKNUM ;CHECK FOR NUMERIC ARGUMENT @@ -251,7 +251,7 @@ ERRD PLA ;TRASH OLD TOKEN FROM ISFUN LDY #$FF LDX #0 ERFLP1 INY ;COUNT # OF CHARACTERS IN MESSAGE - LDA (INDEX2),Y + LDA (INDEX2)Y BEQ ERRD1 ;QUIT WHEN THE END IS FOUND CMP #$20 ;DON'T COUNT NON-PRINTERS BCC ERFLP1 @@ -263,7 +263,7 @@ ERRD1 TXA LDX #0 ERFLP2 INY JSR MAPSYS - LDA (INDEX2),Y + LDA (INDEX2)Y BEQ ERRD2 ;DONE IF NULL CMP #$20 BCC ERFLP2 @@ -273,7 +273,7 @@ ERFLP2 INY TAY PLA JSR MAPDST - STA (DSCTMP+1),Y + STA (DSCTMP+1)Y TYA ;MOVE .Y BACK TO .X TAX LDY TTTEMP ;RESTORE .Y @@ -282,20 +282,20 @@ ERFLP2 INY ERRD2 JSR MAPTXT JMP PUTNEW .SKI 5 -; TIME IS PASSED TO AND FROM THE SYSTEM IN ALL THREE -; REGISTERS IN THE FOLLOWING WAY: +; TIME IS PASSED TO AND FROM THE SYSTEM IN ALL THREE +; REGISTERS IN THE FOLLOWING WAY: ; -; .A (TENTH BIT 0) (SECONDS) -; .X (TENTH BIT 1) (MINUTES) -; .Y (AM/PM BIT) (TENTH BITS 3,2) (HOURS) +; .A (TENTH BIT 0) (SECONDS) +; .X (TENTH BIT 1) (MINUTES) +; .Y (AM/PM BIT) (TENTH BITS 3,2) (HOURS) ; -; THE HOURS, MINUTES, AND SECONDS ARE BCD DIGITS AND -; THE TENTHS DIGIT IS STORED IN THE UNUSED BITS OF THEM. +; THE HOURS, MINUTES, AND SECONDS ARE BCD DIGITS AND +; THE TENTHS DIGIT IS STORED IN THE UNUSED BITS OF THEM. ; -; GETTIM: GET THE TIME IN THE REGISTERS AND UNPACK -; INTO TMHOUR,TMMIN,TMSEC,TMTEN +; GETTIM: GET THE TIME IN THE REGISTERS AND UNPACK +; INTO TMHOUR,TMMIN,TMSEC,TMTEN ; -; PUTS UNPACKED TIME INTO A STRING. +; PUTS UNPACKED TIME INTO A STRING. ; GETTIM JSR RDTIM PHA ;SAVE 10TH BIT 0 @@ -321,41 +321,41 @@ LKT50 STA TMHOUR STA TMTEN TYA ROL A ;PM BIT - ROL A ;10TH BIT 3 + ROL A ; 10TH BIT 3 ROL TMTEN - ROL A ;10TH BIT 2 + ROL A ; 10TH BIT 2 ROL TMTEN TXA - ROL A ;10TH BIT 1 + ROL A ; 10TH BIT 1 ROL TMTEN - LSR A ;MINUTES + LSR A ; MINUTES STA TMMIN PLA - ROL A ;10TH BIT 0 + ROL A ; 10TH BIT 0 ROL TMTEN -.SKI 2 +.SKIP 2 LDA #8 ;STRING SPACE FOR 7 CHARS & 1 NULL JSR GETSPA STX INDEX1 ;INDEX1<- POINTER TO STR SPACE STY INDEX1+1 LDY #STRBNK ;BANK FOR RECENT ALLOCATION STY INDEX1+2 - STY I6509 - TAY ;.Y = 8 -; PUT IN THE NULL TERMINATOR + STY I6509 + TAY ; .Y = 8 +; PUT IN THE NULL TERMINATOR DEY LDA #0 - STA (INDEX1),Y + STA (INDEX1)Y DEY -; DO TENTHS, CONVERT TO ASCII +; DO TENTHS, CONVERT TO ASCII LDA TMTEN CLC ADC #'0' - STA (INDEX1),Y + STA (INDEX1)Y DEY -; .Y INDEX TO PLACE FOR NEXT DIGIT -; .X INDEX TO NEXT BYTE CONTAINING 2 PACKED -; BCD DIGITS(REL TO TMHOUR) +; .Y INDEX TO PLACE FOR NEXT DIGIT +; .X INDEX TO NEXT BYTE CONTAINING 2 PACKED +; BCD DIGITS(REL TO TMHOUR) LDX #2 GTI70 LDA TMHOUR,X ;DO LOW DIGIT FIRST @@ -363,7 +363,7 @@ GTI70 AND #$0F CLC ADC #'0' - STA (INDEX1),Y + STA (INDEX1)Y DEY ;NOW DO HIGH DIGIT PLA AND #$70 @@ -372,7 +372,7 @@ GTI70 LSR A LSR A ADC #'0' - STA (INDEX1),Y + STA (INDEX1)Y DEY DEX BPL GTI70 @@ -380,9 +380,9 @@ GTI70 LDY INDEX1+1 LDX INDEX1+2 JMP STRLIT -.PAG 'TI$ ROUTINES' -; TI$ IS ASSIGNED A VALUE FROM A STRING WHOSE DESCRIPTOR -; IS STORED IN FAC. +.PAGE 'TI$ ROUTINES' +; TI$ IS ASSIGNED A VALUE FROM A STRING WHOSE DESCRIPTOR +; IS STORED IN FAC. ; MKTIME JSR FREFAC @@ -395,14 +395,14 @@ MKTMB LDY #0 ;INX REG FOR PACKED DIGITS STY FBUFPT ;INX FOR UNPACKED CHARS ; -; LOOP AROUND HERE THREE TIMES TO GET HOURS, MINUTES, -; AND SECONDS. TWO BCD DIGITS ARE PACKED INTO EACH BYTE -; INDEXED BY "INDEX2" AND .Y. EXPECTS TMHOUR, TMMIN, -; TMSEC TO BE STORED CONSECUTIVELY. +; LOOP AROUND HERE THREE TIMES TO GET HOURS, MINUTES, +; AND SECONDS. TWO BCD DIGITS ARE PACKED INTO EACH BYTE +; INDEXED BY "INDEX2" AND .Y. EXPECTS TMHOUR, TMMIN, +; TMSEC TO BE STORED CONSECUTIVELY. ; MKTI10 JSR TIMNUM ;GET DIGIT - ASL A ;MOVE DIGIT INTO HIGH NIBBLE + ASL A ; MOVE DIGIT INTO HIGH NIBBLE ASL A ASL A ASL A @@ -422,9 +422,9 @@ MKTMC LDA #0 MKTMD STA TMTEN -; ADJUST 24 HR CLOCK, SETTING P.M. IF NEEDED +; ADJUST 24 HR CLOCK, SETTING P.M. IF NEEDED LDA TMHOUR - CMP #$12 ;HR >= 12? + CMP #$12 ; HR >= 12? BCC MKTI50 SEI SED ;DECIMAL MATH @@ -455,13 +455,13 @@ MKTI50 PLA CLC ;C-CLR => SET TIME-OF-DAY JMP SETTIM ;SET TIME AS SPECIFIED -.SKI 5 -; TIMNUM GETS NEXT DIGIT -; USES INDEX2 AS BASE PTR, .Y<=FBUFPT TO GET ASCII DIGIT -; USES FBUFPT+1 AS TEMP FOR PRESERVING .Y -; EXIT: .Y UNCHANGED -; .A = UNASCIIED DIGIT VALUE -; FBUFPT=FBUFPT+1 +.SKIP 5 +; TIMNUM GETS NEXT DIGIT +; USES INDEX2 AS BASE PTR, .Y<=FBUFPT TO GET ASCII DIGIT +; USES FBUFPT+1 AS TEMP FOR PRESERVING .Y +; EXIT: .Y UNCHANGED +; .A = UNASCIIED DIGIT VALUE +; FBUFPT=FBUFPT+1 ; TIMNUM STY FBUFPT+1 @@ -474,15 +474,15 @@ TIMNUM LDY FBUFPT+1 RTS FCERR2 JMP FCERR -.PAG 'GARBAGE COLLECTION' -; GET SPACE FOR CHAR STRING. -; NOTE MAY FORCE GARBAGE COLLECTION -; -; ENTRY AC = # OF CHARS -; EXIT PTR IN Y,X OTHERWISE -; BLOWS OFF TO 'OUT OF STRING SPACE' ERROR -; ALSO PRESERVES AC AND SETS FRESPC= -; Y,X= ->AT SPACE. +.PAGE 'GARBAGE COLLECTION' +; GET SPACE FOR CHAR STRING. +; NOTE MAY FORCE GARBAGE COLLECTION +; +; ENTRY AC = # OF CHARS +; EXIT PTR IN Y,X OTHERWISE +; BLOWS OFF TO 'OUT OF STRING SPACE' ERROR +; ALSO PRESERVES AC AND SETS FRESPC= +; Y,X= ->AT SPACE. GETSPA LSR GARBFL TRYAG2 TAX ;SAVE IN X ALSO @@ -514,16 +514,16 @@ TRYAG4 CPY STREND+1 BCC GARBAG STRFRE STA FRESPC STY FRESPC+1 - JSR MAPSTR + JSR MAPSTR LDY #$02 ;FLAG STRING AS GARB. LDA #$FF ;GARBAGE FLAG - STA (INDEX1),Y + STA (INDEX1)Y DEY - STA (INDEX1),Y ;FLAG + STA (INDEX1)Y ;FLAG DEY PLA ;LENGTH - STA (INDEX1),Y - JSR MAPTXT + STA (INDEX1)Y + JSR MAPTXT LDX FRESPC LDY FRESPC+1 STX FRETOP @@ -542,19 +542,19 @@ GARBAG ; GRBG99 JMP OMERR ;OUT OF MEMORY -.PAG -; ROUTINE LOOKS FOR AND SQUASHES OUT ANY UNUSED STRING -; SPACE IT FINDS. THUS RETURNING THE SPACE FOR FUTURE -; USE BY THE STRING ROUTINES. -; GARBA2 IS CALLED ONLY WHEN BASIC NEEDS SPACE OR A FRE -; INSTRUCTION IS USED. +.PAGE +; ROUTINE LOOKS FOR AND SQUASHES OUT ANY UNUSED STRING +; SPACE IT FINDS. THUS RETURNING THE SPACE FOR FUTURE +; USE BY THE STRING ROUTINES. +; GARBA2 IS CALLED ONLY WHEN BASIC NEEDS SPACE OR A FRE +; INSTRUCTION IS USED. ; GARBA2 LDA #STRBNK ;SET INDIRECTION TO STRING BANK STA $1 LDA TEMPPT ;GET # OF TEMPORARY STRINGS BEQ NAA ;SKIP IF NONE -LA ;CREATE A BACK POINTER ON CURRENT TEMPORARY STRINGS +LA ;CREATE A BACK POINTER ON CURRENT TEMPORARY STRINGS PHA ;SAVE # OF TEMPS JMP PSLRA ;29SEPT83 PATCH ****************** LA0 TYA ;.Y NOW POINTS TO WHICH TEMPORARY DESCRIPTOR @@ -573,7 +573,7 @@ LA1 PLA SEC SBC #4 BNE LA ;REPEAT IF THIS WAS NOT LAST TEMPORARY -NAA ;MAIN BODY OF GARBAGE COLLECT +NAA ;MAIN BODY OF GARBAGE COLLECT LDY #$00 ;SET UP FLAG STY HIGHDS LDA MEMTOP ;GET TOP OF MEMORY @@ -591,8 +591,8 @@ GLOOP JSR CHKGRB ;CHECK GARBAGE STRING BNE COL01 ;IF NOT GARBAGE STRING COL00A LDY #0 ;GET LENGTH - JSR MAPSTR - LDA (GRBPNT),Y + JSR MAPSTR + LDA (GRBPNT)Y JSR MOVPNT ;MOVE GRBPNT TO NEXT SEC ROR HIGHDS ;INDICATE GARBAGE STRING FOUND @@ -607,31 +607,31 @@ COL01 ; MOVE A STRING OVER GARBAGE ; COL02 LDY #$02 ;MOVE THE LINK BYTES - JSR MAPSTR + JSR MAPSTR COL02A - LDA (GRBPNT),Y - STA (GRBTOP),Y + LDA (GRBPNT)Y + STA (GRBTOP)Y DEY BPL COL02A ; JSR SAV7 TXA ;PUT LENGTH-1 IN .Y TAY - JSR MAPSTR + JSR MAPSTR ; GLOP1 DEY - LDA (GRBPNT),Y - STA (GRBTOP),Y + LDA (GRBPNT)Y + STA (GRBTOP)Y DEX BNE GLOP1 ; - JSR MAPINX + JSR MAPINX LDY #$02 ;FIX THE DESCRIPTOR COL02B LDA GRBTOP-1,Y - STA (INDEX1),Y + STA (INDEX1)Y DEY BNE COL02B - .IFN GDEBUG < +.IFN GDEBUG < JSR GRBPRI ;GARBAGE DEBUG > LDA GRBPNT ;CHECK POINTER @@ -646,27 +646,27 @@ COL03 ; SAV7 LDY #0 ;SKIP OVER STRING BODY JSR MAPINX - LDA (INDEX1),Y + LDA (INDEX1)Y TAX JSR MOVTOP STA FRESPC STY FRESPC+1 TXA JMP MOVPNT - .IFN GDEBUG < +.IFN GDEBUG < JSR GRBPRI ;GARBAGE DEBUG > -.SKI 4 +.SKIP 4 ; SUBROUTINES USED FOR GARBAGE COLLECTION -; COMPARE FOR Y,A = FRETOP. -; ENTRY Y,A = ADDRESS OF CURRENT STRING DESCRIPTOR. -; EXIT EXIT TO CALLER IF Y,A = FRETOP. -; ELSE Z FLAG SET IF GARBAGE STRING. -; Z FLAG CLEAR IF NOT GARBAGE STRING. -; IN EITHER CASE POINTERS ARE SETUP FOR NEXT LOOP -; AND STRING MOVEMENT. -; EXIT TO CFRE4. -; CARRY CLEAR Y,A <= FRETOP. +; COMPARE FOR Y,A = FRETOP. +; ENTRY Y,A = ADDRESS OF CURRENT STRING DESCRIPTOR. +; EXIT EXIT TO CALLER IF Y,A = FRETOP. +; ELSE Z FLAG SET IF GARBAGE STRING. +; Z FLAG CLEAR IF NOT GARBAGE STRING. +; IN EITHER CASE POINTERS ARE SETUP FOR NEXT LOOP +; AND STRING MOVEMENT. +; EXIT TO CFRE4. +; CARRY CLEAR Y,A <= FRETOP. CHKGRB CPY FRETOP+1 ;END OF STRINGS ? BCC CFRE4 @@ -683,23 +683,23 @@ CFRE1 CFRE2 LDA #PTRSIZ ;SKIP POINTERS PAST JSR MOVPNT ;MOVE POINTERS LDY #$02 - JSR MAPSTR - LDA (GRBPNT),Y ;GARBAGE ? + JSR MAPSTR + LDA (GRBPNT)Y ;GARBAGE ? CMP #$FF BNE CFRE3 ;IF NOT GARBAGE STRING RTS ; CFRE3 - LDA (GRBPNT),Y ;TO LINK BYTES + LDA (GRBPNT)Y ;TO LINK BYTES STA INDEX1,Y DEY BPL CFRE3 ;IF THREE BYTES NOT MOVED RTS ; -CFRE4 ;MARK TEMPORARY STRINGS AS GARBAGE AND EXIT +CFRE4 ;MARK TEMPORARY STRINGS AS GARBAGE AND EXIT LDA TEMPPT ;GET # OF TEMPORARY STRINGS BEQ NAA2 ;SKIP IF NONE -FA ;MARK CURRENT TEMPORARY STRINGS AS GARBAGE +FA ;MARK CURRENT TEMPORARY STRINGS AS GARBAGE PHA ;SAVE # OF TEMPS JMP PSLRB ;29SEPT83 PATCH ********************** FA0 LDA (TEMPST),Y ;GET STRING LENGTH @@ -716,7 +716,7 @@ FA1 PLA SBC #4 BNE FA ;REPEAT IF THIS WAS NOT LAST TEMPORARY NAA2 - JSR MAPTXT ;RESTORE I6509 + JSR MAPTXT ; RESTORE I6509 PLA ;THROW AWAY RETURN ADDRESS PLA LDA FRESPC ;FIX FRETOP AND FRESPC @@ -724,8 +724,8 @@ NAA2 STA FRETOP STY FRETOP+1 RTS -.SKI 2 -SLR1 +.SKIP 2 +SLR1 ; TAY DEY DEY @@ -742,7 +742,7 @@ SLR1 INC TEMPF2+1 SLR2 RTS -.SKI 4 +.SKIP 4 MOVPNT EOR #$FF ;COMP AND ADD SEC ADC GRBPNT @@ -752,7 +752,7 @@ MOVPNT EOR #$FF ;COMP AND ADD MOV00 STA GRBPNT STY GRBPNT+1 RTS -.SKI 4 +.SKIP 4 MOVTOP EOR #$FF ;COMP AND ADD SEC ADC GRBTOP @@ -762,16 +762,16 @@ MOVTOP EOR #$FF ;COMP AND ADD MOV01 STA GRBTOP STY GRBTOP+1 RTS - .IFN GDEBUG < -.SKI 3 +.IFN GDEBUG < +.SKIP 3 PUTSPC LDA #' ' JMP BSOUT -.SKI 4 +.SKIP 4 ; ; PRINT A BYTE OUT IN HEX -; ENTER: .A = BYTE VALUE -; EXIT : .A UNCHANGED +; ENTER: .A = BYTE VALUE +; EXIT : .A UNCHANGED ; HXOUT PHA PHA ;DO HIGH ORDER NIBBLE @@ -792,14 +792,14 @@ HXNB CMP #$0A JMP HXN20 HXN10 ADC #$30 HXN20 JMP BSOUT -.SKI 4 +.SKIP 4 ; -; PRINT STRING POINTED TO BY GRBTOP. THIS IS A -; NON-GARBAGE STRING, WHOSE DESCRIPTOR IS POINTED -; TO BY INDEX. STRING BYTES ARE PRINTED IN HEX, -; IN CASE NON-PRINTABLE CHARS APPEAR. DUMPS: +; PRINT STRING POINTED TO BY GRBTOP. THIS IS A +; NON-GARBAGE STRING, WHOSE DESCRIPTOR IS POINTED +; TO BY INDEX. STRING BYTES ARE PRINTED IN HEX, +; IN CASE NON-PRINTABLE CHARS APPEAR. DUMPS: ; -; (STR ADDRESS) (STRING) (LINK) +; (STR ADDRESS) (STRING) (LINK) ; GRBPRI LDA GRBTOP+1 ;PRINT ADDR OF STR @@ -809,13 +809,13 @@ GRBPRI JSR PUTSPC ; PRINT STRING BODY LDY #0 - LDA (INDEX1),Y ;LENGTH + LDA (INDEX1)Y ; LENGTH TAX CMP #0 BEQ GPR10 GPR20 - LDA (GRBTOP),Y - STY RESLO ;RESLO, RESMO USED AS TEMPS + LDA (GRBTOP)Y + STY RESLO ; RESLO, RESMO USED AS TEMPS STX RESMO JSR HXOUT JSR PUTSPC @@ -827,16 +827,16 @@ GPR20 GPR10 ; PRINT OUT LINK BYTES, DESCR ADDRESS JSR PUTSPC - LDA (GRBTOP),Y + LDA (GRBTOP)Y PHA INY - LDA (GRBTOP),Y + LDA (GRBTOP)Y JSR HXOUT PLA JSR HXOUT JSR PUTSPC INY - LDA (GRBTOP),Y + LDA (GRBTOP)Y JSR HXOUT JSR PUTSPC LDA INDEX1+1 @@ -883,7 +883,7 @@ INST2 LDA TMPDES,X LDA PTARG1+2 ;NOW MOVE IN THE DESCRIPTORS STA I6509 LDY #3 -INST3 LDA (PTARG1),Y +INST3 LDA (PTARG1)Y STA STR1,Y DEY BPL INST3 @@ -891,7 +891,7 @@ INST3 LDA (PTARG1),Y LDA PTARG2+2 STA I6509 LDY #3 -INST4 LDA (PTARG2),Y +INST4 LDA (PTARG2)Y STA STR2,Y DEY BPL INST4 @@ -917,10 +917,10 @@ INST6 LDY MATCH CLC ADC POSITN ;COMPARE STRING1(S+P+M) WITH STRING2(M) TAY - LDA (STR1+1),Y + LDA (STR1+1)Y STA TMPPOS LDY MATCH - LDA (STR2+1),Y + LDA (STR2+1)Y CMP TMPPOS BEQ INST7 INC POSITN ;NOT THE SAME, START OVER FROM NEXT POSITION diff --git a/BASIC_CBM2_1984-01-04/sysvec b/BASIC_CBM2_1984-01-04/sysvec index ac5a576..917455c 100644 --- a/BASIC_CBM2_1984-01-04/sysvec +++ b/BASIC_CBM2_1984-01-04/sysvec @@ -1,5 +1,5 @@ .PAGE 'INTERFACE JUMP VECTORS.' - *=VECORG + *=VECORG ; IOINIT *=*+3 ;I/O INITIALIZATION CINT *=*+3 ;SCREEN INITIALIZATION diff --git a/BASIC_CBM2_1984-01-04/tokens b/BASIC_CBM2_1984-01-04/tokens index 0587c38..f83a1ae 100644 --- a/BASIC_CBM2_1984-01-04/tokens +++ b/BASIC_CBM2_1984-01-04/tokens @@ -1,12 +1,12 @@ .PAGE 'TABLES, RESERVED WORDS, AND ERROR TEXTS' - *= CODFWA + *= CODFWA ; ; ENTRY NAME AND ENTRY POINT JUMP BENTRY JMP INIT ;ENTRY POINT FOR START - JMP WARM ;WARM START RE-ENTRY POINT - .BYTE $C3,$C2,$CD,'8' ;CMB8 ($80 OR'D IN 1ST 3 CHARS) - .IFN CC2 < - .BYTE ' ' + JMP WARM ;WARM START RE-ENTRY POINT + .BYTE $C3,$C2,$CD,'8' ;CMB8 ($80 OR'D IN 1ST 3 CHARS) +.IFN CC2 < + .BYTE ' ' .SKI 3 ; VSP ROM INDIRECT TABLE (PETII BASIC ONLY) ; @@ -102,10 +102,10 @@ STMDSP .WORD TRAP-1 .WORD RESUME-1 .WORD DISPOS-1 - .IFN CC1+CC2 < +.IFN CC1+CC2 < .WORD PUCTRL-1 > - .IFN CC3+CC4 < +.IFN CC3+CC4 < .WORD PUCTRL-1 > .SKIP 4 @@ -319,7 +319,7 @@ TKINST=TKERRD+1 ;> .BYTE 0 ;END OF RESERVED WORD LIST .PAGE 'ERROR MESSAGE ADDRESS TABLE.' -EBASE ;BASE FOR ERROR MESSAGES +EBASE ;BASE FOR ERROR MESSAGES ; ; MS0 =*-EBASE @@ -412,11 +412,11 @@ ERRCR =*-EBASE ERRDI =*-EBASE .WORD AERDI ERRBLN=*-EBASE - .IFN CC2+CC3+CC4 < +.IFN CC2+CC3+CC4 < ERROT =*-EBASE .WORD AEROT > - .IFN CC3+CC4 < +.IFN CC3+CC4 < ERROA =*-EBASE .WORD AEROA > @@ -433,7 +433,7 @@ AMS6 .BYTE 'NOT INPUT FILE',0 AMS7 .BYTE 'NOT OUTPUT FILE',0 AMS8 .BYTE 'MISSING FILE NAME',0 AMS9 .BYTE 'ILLEGAL DEVICE ' - .BYTE 'NUMBER',0 + .BYTE 'NUMBER',0 ; ; BASIC ERROR MESSAGES. ; @@ -471,12 +471,12 @@ AEXI .BYTE 'EXTRA IGNORED',CR,0 ATRY .BYTE 'REDO FROM START',CR,0 AREMSG .BYTE 'MORE',CR,0 AEROS .BYTE 'OUT OF STACK',0 - .IFN CC2+CC3+CC4 < -AEROT .BYTE 'OUT OF TEXT',0 +.IFN CC2+CC3+CC4 < +AEROT .BYTE 'OUT OF TEXT',0 > - .IFN CC3+CC4 < -AEROA .BYTE 'OUT OF ARRAY SPACE',0 +.IFN CC3+CC4 < +AEROA .BYTE 'OUT OF ARRAY SPACE',0 > -AERCR .BYTE 'UNABLE TO RESUME',0 -AERDI .BYTE 'UNABLE TO DISPOSE',0 +AERCR .BYTE 'UNABLE TO RESUME',0 +AERDI .BYTE 'UNABLE TO DISPOSE',0 .END diff --git a/BASIC_CBM2_1984-01-04/using b/BASIC_CBM2_1984-01-04/using index 849f220..2e49d19 100644 --- a/BASIC_CBM2_1984-01-04/using +++ b/BASIC_CBM2_1984-01-04/using @@ -92,7 +92,7 @@ REAY JSR CHRGOT ;GET OLD CHARACTER JSR MAPTXT JSR FRETMP JSR CHRGOT - CMP #'; ;SEMI-COLON? + CMP #'; ;SEMI-COLON? BEQ NOCR ;BRANCH IF YES JMP OCRLF ;END OF PRINT USING ; @@ -424,15 +424,15 @@ AFRM JSR SAV1 BMI BOUT ;YES, DO A FILL CHAR LDA PUCOMA JMP OUT ;NO,...OUTPUT A COMMA CHAR - ; +; BOUT LDA BLFD JMP OUT - ; +; PUNT CMP #'. ;DECIMAL POINT? BNE AFPLUS LDA PUDOT ;YES... JMP OUT - ; +; ZEROT LDA NOZE ;# OF ZEROS BEQ LZER DEC NOZE ;COUNT LEADING ZEROS @@ -442,7 +442,7 @@ ZEROT LDA NOZE ;# OF ZEROS ROR DOLR ;CLEAR DOLLAR FLAG LDA PUMONY JMP OUTS ;OUTPUT MONEY SYMBOL - ; +; AFPLUS CMP #'+ ;PLUS? BEQ ISPL ;YES... CMP #'- ;MINUS? @@ -467,12 +467,12 @@ MOUT JSR CDOUT ;OUTPUT SIGN EXP JSR CDOUT ;OUTPUT FIRST DIG EXP LDY ENDFD JMP TELX - ; +; ISPL1 LDA SNO ;POSITIVE? BMI BOUT ;YES...OUT BLANK OR * ISPL LDA SNO ;OUTPUT SGN JMP OUT - ; +; PNDD LDA SWE ;# OF BLANKS BEQ ZEROT DEC SWE ;COUNT ! @@ -486,7 +486,7 @@ TAT JSR SAV1 JSR CDOUT ;OUT BLANK OR * INY JMP TAT - ; +; CDOUT JSR OCHR ;CHAR OUT DEC CFORM ;COUNT IT GOOOP RTS