basic2.inc

     1:  
     2:  .segment "HEADER"
     3:  
     4:  BASIC_START:
     5:  
     6:  bRESTART:
     7:          .addr   LE394
     8:          .addr   LE37B
     9:          .byte   "CBMBASIC"
    10:  
    11:  ; This is the table of the entry addresses of the various
    12:  ; BASIC commands. Every address is " - 1" as this table is
    13:  ; used in pushing the address onto the stack and perfoming
    14:  ; an RTS afterwards.
    15:  
    16:  .segment "VECTORS"
    17:  
    18:          .segment "KEYWORDS"
    19:  
    20:  CONFIG_FILE=1
    21:  CONFIG_CBM_ALL=1
    22:  CONFIG_2=1
    23:  
    24:          .include "token.s"
    25:  
    26:  .segment "VECTORS"
    27:  
    28:  bSTMDSP = TOKEN_ADDRESS_TABLE
    29:  bFUNDSP = UNFNC
    30:  
    31:  
    32:  ; This is the table of the BASIC functions.
    33:  
    34:  ; This is the table of the operands. Every entry consists
    35:  ; of 3 consecutive bytes: A first byte (@?) and the address
    36:  ; of the processing function ( - 1).
    37:  
    38:  bOPTAB = MATHTBL
    39:  
    40:  ;.segment "KEYWORDS"
    41:  
    42:  bRESLST = TOKEN_NAME_TABLE
    43:  
    44:  ; This is the list of the reserved words. Every word ends
    45:  ; with the last byte having bit 7 set.
    46:  ; The list ends with the last byte being 0.
    47:  ; The complete list is not allowed to exceed 256 byte!
    48:  
    49:  TokPi      = $FF
    50:  
    51:  
    52:  .segment "ERROR"
    53:  
    54:  ; This is the table of error strings. Every entry ends with
    55:  ; bit 7 set.
    56:  
    57:  ErrTooManyFiles        =  1
    58:  ErrFileOpen            =  2
    59:  ErrFileNotOpen         =  3
    60:  ErrFileNotFound        =  4
    61:  ErrDeviceNotPresent    =  5
    62:  ErrNotInputFile        =  6
    63:  ErrNotOutputFile       =  7
    64:  ErrMissingFileName     =  8
    65:  ErrIllegalDeviceNumber =  9
    66:  ErrNextWithoutFor      = 10
    67:  ErrSyntax              = 11
    68:  ErrReturnWithoutGosub  = 12
    69:  ErrOutOfData           = 13
    70:  ErrIllegalQuantity     = 14
    71:  ErrOverflow            = 15
    72:  ErrOutOfMemory         = 16
    73:  ErrUndefinedStatement  = 17
    74:  ErrBadSubscript        = 18
    75:  ErrRedimdArray         = 19
    76:  ErrDivisionByZero      = 20
    77:  ErrIllegalDirect       = 21
    78:  ErrTypeMismatch        = 22
    79:  ErrStringTooLong       = 23
    80:  ErrFileData            = 24
    81:  ErrFormulaTooComplex   = 25
    82:  ErrCantContinue        = 26
    83:  ErrUndefdFunction      = 27
    84:  ErrVerify              = 28
    85:  ErrLoad                = 29
    86:  ErrBreak               = 30
    87:  
    88:  
    89:  bERRTAB:
    90:  StrTooManyFiles:
    91:          htasc   "TOO MANY FILES"
    92:  StrFileOpen:
    93:          htasc   "FILE OPEN"
    94:  StrFileNotOpen:
    95:          htasc   "FILE NOT OPEN"
    96:  StrFileNotFound:
    97:          htasc   "FILE NOT FOUND"
    98:  StrDeviceNotPresent:
    99:          htasc   "DEVICE NOT PRESENT"
   100:  StrNotInputFile:
   101:          htasc   "NOT INPUT FILE"
   102:  StrNotOutputFile:
   103:          htasc   "NOT OUTPUT FILE"
   104:  StrMissingFileName:
   105:          htasc   "MISSING FILE NAME"
   106:  StrIllegalDeviceNumber:
   107:          htasc   "ILLEGAL DEVICE NUMBER"
   108:  StrNextWithoutFor:
   109:          htasc   "NEXT WITHOUT FOR"
   110:  StrSyntax:
   111:          htasc   "SYNTAX"
   112:  StrReturnWithoutGosub:
   113:          htasc   "RETURN WITHOUT GOSUB"
   114:  StrOutOfData:
   115:          htasc   "OUT OF DATA"
   116:  StrIllegalQuantity:
   117:          htasc   "ILLEGAL QUANTITY"
   118:  StrOverflow:
   119:          htasc   "OVERFLOW"
   120:  StrOutOfMemory:
   121:          htasc   "OUT OF MEMORY"
   122:  StrUndefinedStatement:
   123:          htasc   "UNDEF'D STATEMENT"
   124:  StrBadSubscript:
   125:          htasc   "BAD SUBSCRIPT"
   126:  StrRedimdArray:
   127:          htasc   "REDIM'D ARRAY"
   128:  StrDivisionByZero:
   129:          htasc   "DIVISION BY ZERO"
   130:  StrIllegalDirect:
   131:          htasc   "ILLEGAL DIRECT"
   132:  StrTypeMismatch:
   133:          htasc   "TYPE MISMATCH"
   134:  StrStringTooLong:
   135:          htasc   "STRING TOO LONG"
   136:  StrFileData:
   137:          htasc   "FILE DATA"
   138:  StrFormulaTooComplex:
   139:          htasc   "FORMULA TOO COMPLEX"
   140:  StrCantContinue:
   141:          htasc   "CAN'T CONTINUE"
   142:  StrUndefdFunction:
   143:          htasc   "UNDEF'D FUNCTION"
   144:  StrVerify:
   145:          htasc   "VERIFY"
   146:  StrLoad:
   147:          htasc   "LOAD"
   148:  
   149:  ; This is the list of pointers into the error strings.
   150:  
   151:  bERRPTR:
   152:          .addr   StrTooManyFiles
   153:          .addr   StrFileOpen
   154:          .addr   StrFileNotOpen
   155:          .addr   StrFileNotFound
   156:          .addr   StrDeviceNotPresent
   157:          .addr   StrNotInputFile
   158:          .addr   StrNotOutputFile
   159:          .addr   StrMissingFileName
   160:          .addr   StrIllegalDeviceNumber
   161:          .addr   StrNextWithoutFor
   162:          .addr   StrSyntax
   163:          .addr   StrReturnWithoutGosub
   164:          .addr   StrOutOfData
   165:          .addr   StrIllegalQuantity
   166:          .addr   StrOverflow
   167:          .addr   StrOutOfMemory
   168:          .addr   StrUndefinedStatement
   169:          .addr   StrBadSubscript
   170:          .addr   StrRedimdArray
   171:          .addr   StrDivisionByZero
   172:          .addr   StrIllegalDirect
   173:          .addr   StrTypeMismatch
   174:          .addr   StrStringTooLong
   175:          .addr   StrFileData
   176:          .addr   StrFormulaTooComplex
   177:          .addr   StrCantContinue
   178:          .addr   StrUndefdFunction
   179:          .addr   StrVerify
   180:          .addr   StrLoad
   181:          .addr   StrBreak
   182:  
   183:  bOKK:   .byte   $0D,"OK",$0D,$00
   184:  
   185:  .segment "CODE"
   186:  
   187:  StrError:
   188:  .if CompileComputer >= C64_GENERAL
   189:          .byte   ' '
   190:  .else
   191:          .byte   $0D
   192:  .endif
   193:          .byte   " ERROR"
   194:          .byte   $00
   195:  
   196:  StrIn:
   197:          .byte   " IN "
   198:          .byte   $00
   199:  
   200:  StrReady:
   201:          .byte   $0D,$0A
   202:          .byte   "READY."
   203:          .byte   $0D,$0A,$00
   204:  
   205:  StrCrBreak:
   206:          .byte   $0D,$0A
   207:  StrBreak:
   208:          .byte   "BREAK"
   209:          .byte   $00
   210:  
   211:          .byte   $A0     ; @?
   212:  
   213:  ; This routine tries to find a stack entry for a
   214:  ; previous "FOR" statement.
   215:  ;
   216:  ; Input:
   217:  ;   zFORPNT/zFORPNT + 1:
   218:  ;     Contans the variable name of the variable given
   219:  ;     by the "NEXT" command.
   220:  ;     If ANY for has to be closed, zFORPNT + 1 is 0.
   221:  ;
   222:  ; Output:
   223:  ;   X:
   224:  ;      contains a pointer into the stack page
   225:  ;      where the "FOR entry" is located.
   226:  ;
   227:  ;   Z:
   228:  ;      Is set iff an entry has been found.
   229:  ;      OR the stack has been exhausted.
   230:  ;
   231:  ;   zFORPNT/zFORPNT + 1:
   232:  ;      contains the variable name of the variable
   233:  ;      being "NEXT"ed, even if no variable name
   234:  ;      was given on input.
   235:  ;
   236:  ; Remarks:
   237:  ;   This function is tricks as it also handles the
   238:  ;   FOR, GOSUB and RETURN statements. @
   239:  
   240:  bFNDFOR:
   241:          tsx
   242:          inx
   243:          inx
   244:          inx
   245:          inx
   246:  @Loop:
   247:          ; first check if there is a "FOR entry"
   248:          lda     lSTACK + 1,x
   249:          cmp     #TokFor
   250:          bne     @Ret        ; no FOR entry, return with error
   251:  
   252:          ; check if the user asked for a specific variable
   253:          lda     zFORPNT + 1
   254:          bne     @TestVar    ; yes, this, test this variable
   255:  
   256:          ; no variable name was given, just take the current
   257:          ; one out of the stack entry
   258:          lda     lSTACK + 2,x
   259:          sta     zFORPNT
   260:          lda     lSTACK + 3,x
   261:          sta     zFORPNT + 1
   262:  
   263:          ; now, test if the variable in the stack entry
   264:          ; is the right one.
   265:          ; If no variable is given, it will be the right one
   266:          ; as we just took that one out of the stack entry.
   267:  @TestVar:
   268:          cmp     lSTACK + 3,x
   269:          bne     @UnWind     ; not the same, unwind the stack
   270:          lda     zFORPNT
   271:          cmp     lSTACK + 2,x
   272:          beq     @Ret        ; ok, we found the variable, quit.
   273:  
   274:          ; we have not found the variable. Unwind the stack,
   275:          ; that is, remove the current "FOR entry" and test
   276:          ; if there is another one before that.
   277:  @UnWind:
   278:          ; add 18 to the stack pointer to skip to the next entry
   279:          txa
   280:          clc
   281:          adc     #18
   282:          tax
   283:  
   284:          ; if we did not reach the end of the stack, test the next entry
   285:          ; This one is a bit tricky. It only works as expected because
   286:          ; X has been incremented four times at the beginning of this
   287:          ; function.
   288:          bne     @Loop
   289:  
   290:  @Ret:   rts
   291:  
   292:  
   293:  bBLTU:  jsr     bREASON
   294:          sta     zSTREND
   295:          sty     zSTREND + 1
   296:  
   297:          ; Move memory around
   298:          ;
   299:          ; Input:
   300:          ;  zTEMP_5F: Old begin
   301:          ;  zTEMP_5A: Old end ( + 1)
   302:          ;  zTEMP_58: New end ( + 1)
   303:          ;
   304:          ; Remark:
   305:          ;   If both areas overlap, the new area has to be "above" the old one.
   306:          ;
   307:  MoveMem:
   308:  
   309:  @OldBegin = zTEMP_5F
   310:  @OldEndP1 = zTEMP_5A
   311:  @NewEndP1 = zTEMP_58
   312:  
   313:          ; calculate length of block to transfer
   314:          ; via subtracting Old begin from old end ( + 1).
   315:          ;
   316:          sec
   317:          lda     @OldEndP1
   318:          sbc     @OldBegin
   319:          sta     zINDEX    ; low byte of length into zIndex
   320:          tay               ; and remember it in Y, too.
   321:          lda     @OldEndP1 + 1
   322:          sbc     @OldBegin + 1
   323:          tax               ; now, the high byte of length is in X
   324:  
   325:          inx
   326:          tya               ; check low byte of length
   327:          beq     @SkipPartialPage ; is 0, thus, we do net have a partial page to process
   328:  
   329:          ; now, subtract "page hangover" (low byte of length to move)
   330:          ; from OldEndP1 and NewEndP1.
   331:          ; This way, we process this "hangover" at first. Afterwards, only complete
   332:          ; pages have to be processed.
   333:  
   334:          lda     @OldEndP1
   335:          sec
   336:          sbc     zINDEX
   337:          sta     @OldEndP1
   338:          bcs     @CalcNewEnd
   339:          dec     @OldEndP1 + 1
   340:          sec
   341:  
   342:  @CalcNewEnd:
   343:          lda     @NewEndP1
   344:          sbc     zINDEX
   345:          sta     @NewEndP1
   346:          bcs     @ProcessNextPage
   347:          dec     @NewEndP1 + 1
   348:          bcc     @ProcessNextPage    ; unconditional jump
   349:          ; --------------------------
   350:  
   351:  @Loop:
   352:          lda     (@OldEndP1),y       ; copy from old...
   353:          sta     (@NewEndP1),y       ; ... to new location
   354:  @ProcessNextPage:
   355:          dey                         ; number of bytes to process in this page
   356:          bne     @Loop               ; not zero? Then, copy memory.
   357:  
   358:          ; copy the "last" byte of each page separately
   359:          lda     (@OldEndP1),y
   360:          sta     (@NewEndP1),y
   361:  
   362:  @SkipPartialPage:
   363:          ; decrement the page numbers of source and destination
   364:          ; and check if we have more pages to process (x).
   365:  
   366:          dec     @OldEndP1 + 1
   367:          dec     @NewEndP1 + 1
   368:          dex
   369:          bne     @ProcessNextPage
   370:          rts
   371:  
   372:  
   373:          ; check if there is enough memory on the stack
   374:          ;
   375:          ; Input:
   376:          ;   A:
   377:          ;     Half of the number of bytes to check for
   378:          ;     (that is, the number of double bytes)
   379:          ;
   380:          ; Output:
   381:          ;   If this function returns, there is enough memory
   382:          ;   on the stack.
   383:          ;
   384:          ; Remark:
   385:          ;   If there is not enough memory on the stack, this
   386:          ;   function does not return, but outputs an "?OUT OF MEMORY ERROR"
   387:          ;
   388:  bGETSTK:
   389:          ; first of all, calculate how much byte we would not
   390:          asl     a        ; as we are checking for double-words, multiply with 2
   391:          adc     #$3E     ; add a "security area" (@? Why $3E = 62)
   392:          bcs     bOMERR   ; we overflowed, that is, it would not even fit into the 256 byte stack
   393:          sta     zINDEX   ; remember the value
   394:  
   395:          ; now, check if the stack pointer is higher than what we just calculated
   396:          tsx
   397:          cpx     zINDEX
   398:          bcc     bOMERR
   399:          rts
   400:  
   401:  bREASON:
   402:          cpy     zFRETOP + 1
   403:          bcc     @Ret
   404:          bne     @LA412
   405:          cmp     zFRETOP
   406:          bcc     @Ret
   407:  
   408:          ; save zTMPF1 and zTMPF2 area onto the stack
   409:  
   410:  @SAVE_AREA_SIZE = zFACEXP - zTEMPF1
   411:  
   412:  @LA412: pha
   413:          ldx     #@SAVE_AREA_SIZE - 1
   414:          tya
   415:  @LA416: pha
   416:          lda     zTEMPF1,x
   417:          dex
   418:          bpl     @LA416
   419:  
   420:          jsr     bGARBAG
   421:  
   422:          ; restore the zTMPF1 and zTMPF2 area from the stack
   423:          ldx     #-(@SAVE_AREA_SIZE - 1)
   424:  @LA421: pla
   425:          sta     zTEMPF1 + @SAVE_AREA_SIZE,x
   426:          inx
   427:          bmi     @LA421
   428:          pla
   429:          tay
   430:          pla
   431:          cpy     zFRETOP + 1
   432:          bcc     @Ret
   433:          bne     bOMERR
   434:          cmp     zFRETOP
   435:          bcs     bOMERR
   436:  @Ret:   rts
   437:  
   438:  bOMERR: ldx     #ErrOutOfMemory
   439:  bERROR: jmp     (lIERROR)       ; for the VIC - 20, this is a no-op
   440:                                  ; for the C64, only proceed if bit 7
   441:                                  ; of the error code is not set
   442:  
   443:          ; output a specific error message
   444:          ;
   445:          ; Input:
   446:          ;   X:
   447:          ;     The number of the error message
   448:          ;
   449:          ; Remark:
   450:          ;   After outputting the message, this function returns into
   451:          ;   the main BASIC loop. It never returns to its caller.
   452:          ;
   453:  ErrorOut:
   454:          txa                     ; multiply the error number with 2
   455:          asl     a               ; (this gives a pointer into the error text table)
   456:          tax
   457:          lda     bERRPTR - 2,x     ; Get the low byte
   458:          sta     zINDEX
   459:          lda     bERRPTR - 1,x     ; and the high byte into zIndex/zIndex + 1
   460:          sta     zINDEX + 1
   461:  
   462:          jsr     kCLRCHN         ; clear channel, that is, output to the screen
   463:  
   464:          lda     #0              ; make sure: we do not want to output LF after CR anymore
   465:          sta     z13
   466:          jsr     bCRDO           ; output a CR
   467:  
   468:          jsr     LAB45           ; output a question mark '?'
   469:  
   470:          ; now, output the text from the table
   471:  
   472:          ldy     #0              ; start at the first character of the text
   473:  @Loop:  lda     (zINDEX),y      ; get the next character
   474:          pha                     ; remember it
   475:          and     #$7F            ; clear bit 7 (thus, make it printable)
   476:          jsr     LAB47           ; output the character
   477:          iny                     ; proceed to the next character
   478:          pla                     ; get back the remembered character
   479:          bpl     @Loop           ; if bit 7 was not set, proceed to the next character
   480:  
   481:          jsr     LA67A           ; initialize stack pointers (hardware stack and string stack)
   482:  
   483:          ; output the text "error"
   484:  
   485:          lda     #<StrError
   486:          ldy     #>StrError
   487:  
   488:  bERRFIN:jsr     bSTROUT         ; output the text given in A/Y.a
   489:  
   490:          ldy     zCURLIN + 1     ; get high byte of current line (is $FF if in direct mode)
   491:          iny
   492:          beq     bREADY          ; it was $FF, thus, skip th next instruction
   493:          jsr     bINPRT          ; output "in line XXX"
   494:  
   495:  bREADY: lda     #<StrReady
   496:          ldy     #>StrReady
   497:          jsr     bSTROUT
   498:          lda     #$80            ; set the direct modus flag
   499:          jsr     kSETMSG
   500:  
   501:  bMAIN:  jmp     (lIMAIN)        ; points to IMAIN normally
   502:  IMAIN:  jsr     bINLIN
   503:          stx     zTXTPTR
   504:          sty     zTXTPTR + 1
   505:          jsr     zCHRGET
   506:          tax
   507:          beq     bMAIN
   508:          ldx     #$FF            ; set the line number to >= $FF00 = 65280 - as line numbers > 64999 are not allowed, this is a marker that no program is running currently
   509:          stx     zCURLIN + 1
   510:          bcc     bMAIN1
   511:          jsr     bCRUNCH
   512:          jmp     bGONE
   513:  bMAIN1: jsr     bLINGET
   514:          jsr     bCRUNCH
   515:  bINSLIN:sty     zCOUNT
   516:  
   517:          @58 = zTEMPF1 + 1
   518:          @5A = zTEMPF1 + 3
   519:  
   520:          @5F = zTEMPF2 + 3
   521:  
   522:          jsr     bFNDLIN
   523:          bcc     @LA4ED
   524:          ldy     #1
   525:          lda     (@5F),y
   526:          sta     zINDEX + 1
   527:          lda     zVARTAB
   528:          sta     zINDEX
   529:          lda     @5F + 1
   530:          sta     zINDEX2 + 1
   531:          lda     @5F
   532:          dey
   533:          sbc     (@5F),y
   534:          clc
   535:          adc     zVARTAB
   536:          sta     zVARTAB
   537:          sta     zINDEX2
   538:          lda     zVARTAB + 1
   539:          adc     #-1
   540:          sta     zVARTAB + 1
   541:          sbc     @5F + 1
   542:          tax
   543:          sec
   544:          lda     @5F
   545:          sbc     zVARTAB
   546:          tay
   547:          bcs     @LA4D7
   548:          inx
   549:          dec     zINDEX2 + 1
   550:  @LA4D7:
   551:          clc
   552:          adc     zINDEX
   553:          bcc     @LA4DF
   554:          dec     zINDEX + 1
   555:          clc
   556:  @LA4DF:
   557:          lda     (zINDEX),y
   558:          sta     (zINDEX2),y
   559:          iny
   560:          bne     @LA4DF
   561:          inc     zINDEX + 1
   562:          inc     zINDEX2 + 1
   563:          dex
   564:          bne     @LA4DF
   565:  @LA4ED:
   566:          jsr     LA659
   567:          jsr     bLINKPRG
   568:          lda     lBUF
   569:          beq     bMAIN
   570:          clc
   571:          lda     zVARTAB
   572:          sta     @5A
   573:          adc     zCOUNT
   574:          sta     @58
   575:          ldy     zVARTAB + 1
   576:          sty     @5A + 1
   577:          bcc     @LA508
   578:          iny
   579:  @LA508:
   580:          sty     @58 + 1
   581:          jsr     bBLTU
   582:          lda     zLINNUM
   583:          ldy     zLINNUM + 1
   584:          sta     lBUF - 2
   585:          sty     lBUF - 1
   586:          lda     zSTREND
   587:          ldy     zSTREND + 1
   588:          sta     zVARTAB
   589:          sty     zVARTAB + 1
   590:          ldy     zCOUNT
   591:          dey
   592:  @LA522:
   593:          lda     lBUF - 4,y
   594:          sta     (@5F),y
   595:          dey
   596:          bpl     @LA522
   597:  LA52A:  jsr     LA659
   598:          jsr     bLINKPRG
   599:          jmp     bMAIN
   600:  bLINKPRG:
   601:          lda     zTXTTAB
   602:          ldy     zTXTTAB + 1
   603:          sta     zINDEX
   604:          sty     zINDEX + 1
   605:          clc
   606:  @LA53C:
   607:          ldy     #1
   608:          lda     (zINDEX),y
   609:          beq     @Ret
   610:          ldy     #4
   611:  @LA544:
   612:          iny
   613:          lda     (zINDEX),y
   614:          bne     @LA544
   615:          iny
   616:          tya
   617:          adc     zINDEX
   618:          tax
   619:          ldy     #0
   620:          sta     (zINDEX),y
   621:          lda     zINDEX + 1
   622:          adc     #0
   623:          iny
   624:          sta     (zINDEX),y
   625:          stx     zINDEX
   626:          sta     zINDEX + 1
   627:          bcc     @LA53C
   628:  @Ret:   rts
   629:  
   630:  bINLIN: ldx     #0
   631:  @LA562: jsr     bCHIN
   632:          cmp     #ASC_CR
   633:          beq     @LA576
   634:          sta     lBUF,x
   635:          inx
   636:          cpx     #END_lBUF - lBUF
   637:          bcc     @LA562
   638:          ldx     #ErrStringTooLong
   639:          jmp     bERROR
   640:  
   641:  @LA576: jmp     bSTREND
   642:  
   643:  bCRUNCH:jmp     (lICRNCH)
   644:  LA57C:  ldx     zTXTPTR
   645:          ldy     #$04
   646:          sty     zGARBFL
   647:  LA582:  lda     lBUF,x
   648:          bpl     @LA58E
   649:          cmp     #TokPi
   650:          beq     LA5C9
   651:          inx
   652:          bne     LA582
   653:  @LA58E:
   654:          cmp     #' '
   655:          beq     LA5C9
   656:          sta     zENDCHR
   657:          cmp     #'"'
   658:          beq     LA5EE
   659:          bit     zGARBFL
   660:          bvs     LA5C9
   661:          cmp     #'?'
   662:          bne     @LA5A4
   663:          lda     #TokPrint
   664:          bne     LA5C9
   665:  @LA5A4:
   666:          cmp     #'0'
   667:          bcc     @LA5AC
   668:          cmp     #'<'
   669:          bcc     LA5C9
   670:  @LA5AC:
   671:          sty     zFBUFPT
   672:          ldy     #0
   673:          sty     zCOUNT
   674:          dey
   675:          stx     zTXTPTR
   676:          dex
   677:  LA5B6:  iny
   678:          inx
   679:  LA5B8:  lda     lBUF,x
   680:          sec
   681:          sbc     bRESLST,y
   682:          beq     LA5B6
   683:          cmp     #$80
   684:          bne     LA5F5
   685:          ora     zCOUNT
   686:  LA5C7:  ldy     zFBUFPT
   687:  LA5C9:  inx
   688:          iny
   689:          sta     lBUF - 5,y
   690:          lda     lBUF - 5,y
   691:          beq     LA609
   692:          sec
   693:          sbc     #$3A            ; ':' @?
   694:          beq     @LA5DC
   695:          cmp     #$49            ; DATA @?
   696:          bne     @LA5DE
   697:  @LA5DC:
   698:          sta     zGARBFL
   699:  @LA5DE:
   700:          sec
   701:          sbc     #$55            ; REM @?
   702:          bne     LA582
   703:  JDLA5E3:
   704:          sta     zENDCHR
   705:  LA5E5:  lda     lBUF,x
   706:          beq     LA5C9
   707:          cmp     zENDCHR
   708:          beq     LA5C9
   709:  LA5EE:  iny
   710:          sta     lBUF - 5,y
   711:          inx
   712:          bne     LA5E5
   713:  LA5F5:  ldx     zTXTPTR
   714:          inc     zCOUNT
   715:  @LA5F9: iny
   716:          lda     bRESLST - 1,y
   717:          bpl     @LA5F9
   718:          lda     bRESLST,y
   719:          bne     LA5B8
   720:          lda     lBUF,x
   721:          bpl     LA5C7
   722:  LA609:  sta     lBUF - 3,y
   723:          dec     zTXTPTR + 1     ; = 1, this is (>(lBUF - 1))
   724:          lda     #<lBUF - 1
   725:          sta     zTXTPTR
   726:          rts
   727:  
   728:  bFNDLIN:lda     zTXTTAB
   729:          ldx     zTXTTAB + 1
   730:  LA617:  ldy     #1
   731:          sta     zTEMP_5F
   732:          stx     zTEMP_5F + 1
   733:          lda     (zTEMP_5F),y
   734:          beq     @RetSuccess
   735:          iny
   736:          iny
   737:          lda     zLINNUM + 1
   738:          cmp     (zTEMP_5F),y
   739:          bcc     @Ret
   740:          beq     @LA62E
   741:          dey
   742:          bne     @LA637
   743:  @LA62E:
   744:          lda     zLINNUM
   745:          dey
   746:          cmp     (zTEMP_5F),y
   747:          bcc     @Ret
   748:          beq     @Ret
   749:  @LA637:
   750:          dey
   751:          lda     (zTEMP_5F),y
   752:          tax
   753:          dey
   754:          lda     (zTEMP_5F),y
   755:          bcs     LA617
   756:  @RetSuccess:
   757:          clc
   758:  @Ret:   rts
   759:  
   760:  RetA641 = @Ret
   761:  
   762:  bSCRTCH:bne     RetA641
   763:  LA644:  lda     #0
   764:          tay
   765:          sta     (zTXTTAB),y
   766:          iny
   767:          sta     (zTXTTAB),y
   768:          lda     zTXTTAB
   769:          clc
   770:          adc     #<2
   771:          sta     zVARTAB
   772:          lda     zTXTTAB + 1
   773:          adc     #>2
   774:          sta     zVARTAB + 1
   775:  
   776:  LA659:  jsr     bSTXPT
   777:          lda     #0
   778:  
   779:  bCLEAR: bne     RetA68D
   780:  LA660:  jsr     kCLALL
   781:  LA663:  lda     zMEMSIZ
   782:          ldy     zMEMSIZ + 1
   783:          sta     zFRETOP
   784:          sty     zFRETOP + 1
   785:          lda     zVARTAB
   786:          ldy     zVARTAB + 1
   787:          sta     zARYTAB
   788:          sty     zARYTAB + 1
   789:          sta     zSTREND
   790:          sty     zSTREND + 1
   791:  LA677:  jsr     bRESTOR
   792:  
   793:  LA67A:  ldx     #zTEMPST
   794:          stx     zTEMPPT
   795:          pla
   796:          tay
   797:          pla
   798:          ldx     #-6
   799:          txs             ; Stackpointer to $01FA
   800:          pha
   801:          tya
   802:          pha
   803:          lda     #0
   804:          sta     zOLDTXT + 1
   805:          sta     zINTALLOWED
   806:  RetA68D:
   807:          rts
   808:  
   809:  bSTXPT: clc
   810:          lda     zTXTTAB
   811:          adc     #<-1
   812:          sta     zTXTPTR
   813:          lda     zTXTTAB + 1
   814:          adc     #>-1
   815:          sta     zTXTPTR + 1
   816:          rts
   817:  
   818:  bLIST:  bcc     LA6A4
   819:          beq     LA6A4
   820:          cmp     #TokMinus
   821:          bne     RetA68D
   822:  LA6A4:
   823:          jsr     bLINGET
   824:          jsr     bFNDLIN
   825:          jsr     zCHRGOT
   826:          beq     @LA6BB
   827:          cmp     #TokMinus
   828:          bne     RetA641
   829:          jsr     zCHRGET
   830:          jsr     bLINGET
   831:          bne     RetA641
   832:  @LA6BB:
   833:          pla
   834:          pla
   835:          lda     zLINNUM
   836:          ora     zLINNUM + 1
   837:          bne     LA6C9
   838:  JDLA6C3:
   839:          lda     #-1
   840:          sta     zLINNUM
   841:          sta     zLINNUM + 1
   842:  LA6C9:  ldy     #1
   843:          sty     zGARBFL
   844:          lda     (zTEMP_5F),y
   845:          beq     LA714
   846:          jsr     bSTOP
   847:  JDLA6D4:
   848:          jsr     bCRDO
   849:          iny
   850:          lda     (zTEMP_5F),y
   851:          tax
   852:          iny
   853:          lda     (zTEMP_5F),y
   854:          cmp     zLINNUM + 1
   855:          bne     @LA6E6
   856:          cpx     zLINNUM
   857:          beq     @LA6E8
   858:  @LA6E6:  bcs     LA714
   859:  @LA6E8:  sty     zFORPNT
   860:          jsr     LBDCD
   861:          lda     #' '
   862:  LA6EF:  ldy     zFORPNT
   863:          and     #$7F
   864:  LA6F3:  jsr     LAB47
   865:          cmp     #'"'
   866:          bne     LA700
   867:          lda     zGARBFL
   868:          eor     #$FF
   869:          sta     zGARBFL
   870:  LA700:  iny
   871:          beq     LA714
   872:          lda     (zTEMP_5F),y
   873:          bne     bQPLOP
   874:          tay
   875:          lda     (zTEMP_5F),y
   876:          tax
   877:          iny
   878:          lda     (zTEMP_5F),y
   879:          stx     zTEMP_5F
   880:          sta     zTEMP_5F + 1
   881:          bne     LA6C9
   882:  LA714:
   883:  .if CompileComputer >= C64_GENERAL
   884:          jmp     ReadyVector
   885:  .else
   886:          jmp     bREADY
   887:  .endif
   888:  
   889:  bQPLOP: jmp     (lIQPLOP)
   890:  LA71A:  bpl     LA6F3
   891:          cmp     #TokPi
   892:          beq     LA6F3
   893:          bit     zGARBFL
   894:          bmi     LA6F3
   895:          sec
   896:          sbc     #$7F
   897:          tax
   898:          sty     zFORPNT
   899:          ldy     #$FF
   900:  @LA72C:
   901:          dex
   902:          beq     @LA737
   903:  @LA72F:
   904:          iny
   905:          lda     bRESLST,y
   906:          bpl     @LA72F
   907:          bmi     @LA72C
   908:  @LA737:
   909:          iny
   910:          lda     bRESLST,y
   911:          bmi     LA6EF
   912:          jsr     LAB47
   913:          bne     @LA737
   914:  
   915:  bFOR:   lda     #$80
   916:          sta     zINTALLOWED
   917:          jsr     bLET
   918:          jsr     bFNDFOR
   919:          bne     @LA753
   920:          txa
   921:          adc     #$0F
   922:          tax
   923:          txs
   924:  @LA753:
   925:          pla
   926:          pla
   927:          lda     #$09
   928:          jsr     bGETSTK
   929:          jsr     bDATAN
   930:          clc
   931:          tya
   932:          adc     zTXTPTR
   933:          pha
   934:          lda     zTXTPTR + 1
   935:          adc     #0
   936:          pha
   937:          lda     zCURLIN + 1
   938:          pha
   939:          lda     zCURLIN
   940:          pha
   941:          lda     #TokTo
   942:          jsr     LAEFF
   943:          jsr     LAD8D
   944:          jsr     bFRMNUM
   945:          lda     zFACSGN
   946:          ora     #$7F
   947:          and     zFACHO
   948:          sta     zFACHO
   949:          lda     #<@LA78B
   950:          ldy     #>@LA78B
   951:          sta     zINDEX
   952:          sty     zINDEX + 1
   953:          jmp     LAE43
   954:  
   955:  @LA78B:
   956:          lda     #<bFPTABL
   957:          ldy     #>bFPTABL
   958:          jsr     bMOVFM
   959:          jsr     zCHRGOT
   960:          cmp     #TokStep
   961:          bne     @LA79F
   962:          jsr     zCHRGET
   963:          jsr     bFRMNUM
   964:  @LA79F:
   965:          jsr     bSIGN
   966:          jsr     LAE38
   967:          lda     zFORPNT + 1
   968:          pha
   969:          lda     zFORPNT
   970:          pha
   971:          lda     #TokFor
   972:          pha
   973:  bNEWSTT:jsr     bSTOP
   974:          lda     zTXTPTR
   975:          ldy     zTXTPTR + 1
   976:          cpy     #>lBUF
   977:          nop
   978:          beq     @LA7BE
   979:          sta     zOLDTXT
   980:          sty     zOLDTXT + 1
   981:  @LA7BE:
   982:          ldy     #0
   983:          lda     (zTXTPTR),y
   984:          bne     LA807
   985:  
   986:  bCKEOL: ldy     #2
   987:          lda     (zTXTPTR),y
   988:          clc
   989:          bne     @LA7CE
   990:          jmp     LA84B
   991:  @LA7CE:
   992:          iny
   993:          lda     (zTXTPTR),y
   994:          sta     zCURLIN
   995:          iny
   996:          lda     (zTXTPTR),y
   997:          sta     zCURLIN + 1
   998:          tya
   999:          adc     zTXTPTR
  1000:          sta     zTXTPTR
  1001:          bcc     bGONE
  1002:          inc     zTXTPTR + 1
  1003:  
  1004:  bGONE:  jmp     (lIGONE)
  1005:  LA7E4:  jsr     zCHRGET
  1006:          jsr     bGONE3
  1007:          jmp     bNEWSTT
  1008:  bGONE3: beq     RetA82B
  1009:  LA7EF:  sbc     #TokEnd
  1010:          bcc     @LA804
  1011:          cmp     #TokTab - TokEnd
  1012:          bcs     LA80E
  1013:          asl     a
  1014:          tay
  1015:          lda     bSTMDSP + 1,y
  1016:          pha
  1017:          lda     bSTMDSP,y
  1018:          pha
  1019:          jmp     zCHRGET
  1020:  @LA804:
  1021:          jmp     bLET
  1022:  
  1023:  LA807:  cmp     #':'
  1024:          beq     bGONE
  1025:  LA80B:  jmp     bSYNERR
  1026:  
  1027:  LA80E:  cmp     #TokGo - $80
  1028:          bne     LA80B
  1029:          jsr     zCHRGET
  1030:          lda     #TokTo
  1031:          jsr     LAEFF
  1032:          jmp     bGOTO
  1033:  bRESTOR:sec
  1034:          lda     zTXTTAB
  1035:          sbc     #1
  1036:          ldy     zTXTTAB + 1
  1037:          bcs     LA827
  1038:          dey
  1039:  LA827:  sta     zDATPTR
  1040:          sty     zDATPTR + 1
  1041:  RetA82B:
  1042:          rts
  1043:  
  1044:  bSTOP:  jsr     kSTOP
  1045:  bSTOP2: bcs     LA832
  1046:  bEND:   clc
  1047:  LA832:  bne     RetA870
  1048:          lda     zTXTPTR
  1049:          ldy     zTXTPTR + 1
  1050:          ldx     zCURLIN + 1
  1051:          inx
  1052:          beq     @LA849
  1053:          sta     zOLDTXT
  1054:          sty     zOLDTXT + 1
  1055:          lda     zCURLIN
  1056:          ldy     zCURLIN + 1
  1057:          sta     zOLDLIN
  1058:          sty     zOLDLIN + 1
  1059:  @LA849:
  1060:          pla
  1061:          pla
  1062:  
  1063:  LA84B:  lda     #<StrCrBreak
  1064:          ldy     #>StrCrBreak
  1065:          bcc     LA854
  1066:          jmp     bERRFIN
  1067:  
  1068:  LA854:
  1069:  .if CompileComputer >= C64_GENERAL
  1070:          jmp     ReadyVector
  1071:  .else
  1072:          jmp     bREADY
  1073:  .endif
  1074:  
  1075:  bCONT:  bne     RetA870
  1076:          ldx     #ErrCantContinue
  1077:          ldy     zOLDTXT + 1
  1078:          bne     @LA862
  1079:          jmp     bERROR
  1080:  
  1081:  @LA862:
  1082:          lda     zOLDTXT
  1083:          sta     zTXTPTR
  1084:          sty     zTXTPTR + 1
  1085:          lda     zOLDLIN
  1086:          ldy     zOLDLIN + 1
  1087:          sta     zCURLIN
  1088:          sty     zCURLIN + 1
  1089:  RetA870:
  1090:          rts
  1091:  
  1092:  bRUN:   php
  1093:          lda     #0
  1094:          jsr     kSETMSG
  1095:          plp
  1096:          bne     @LA87D
  1097:          jmp     LA659
  1098:  
  1099:  @LA87D:
  1100:          jsr     LA660
  1101:          jmp     LA897
  1102:  
  1103:  bGOSUB: lda     #3              ; we want to push 3 16 bit values on the stack
  1104:          jsr     bGETSTK         ; check for enough memory on stack
  1105:          lda     zTXTPTR + 1
  1106:          pha
  1107:          lda     zTXTPTR
  1108:          pha
  1109:          lda     zCURLIN + 1
  1110:          pha
  1111:          lda     zCURLIN
  1112:          pha
  1113:          lda     #TokGosub
  1114:          pha
  1115:  
  1116:  LA897:  jsr     zCHRGOT
  1117:          jsr     bGOTO
  1118:          jmp     bNEWSTT
  1119:  
  1120:  bGOTO:  jsr     bLINGET
  1121:          jsr     LA909
  1122:          sec
  1123:          lda     zCURLIN
  1124:          sbc     zLINNUM
  1125:          lda     zCURLIN + 1
  1126:          sbc     zLINNUM + 1
  1127:          bcs     @LA8BC
  1128:          tya
  1129:          sec
  1130:          adc     zTXTPTR
  1131:          ldx     zTXTPTR + 1
  1132:          bcc     @LA8C0
  1133:          inx
  1134:          bcs     @LA8C0
  1135:  @LA8BC:
  1136:          lda     zTXTTAB
  1137:          ldx     zTXTTAB + 1
  1138:  @LA8C0:
  1139:          jsr     LA617
  1140:          bcc     LA8E3
  1141:          lda     zTEMP_5F
  1142:          sbc     #<1
  1143:          sta     zTXTPTR
  1144:          lda     zTEMP_5F + 1
  1145:          sbc     #>0
  1146:          sta     zTXTPTR + 1
  1147:  RetA8D1:
  1148:          rts
  1149:  
  1150:  bRETURN:bne     RetA8D1
  1151:          lda     #-1
  1152:          sta     zFORPNT + 1
  1153:          jsr     bFNDFOR
  1154:          txs
  1155:          cmp     #TokGosub
  1156:          beq     LA8EB
  1157:          ldx     #ErrReturnWithoutGosub
  1158:          .byte   ASM_BIT3
  1159:  LA8E3:  ldx     #ErrUndefinedStatement
  1160:          jmp     bERROR
  1161:  LA8E8:  jmp     bSYNERR
  1162:  LA8EB:  pla
  1163:          pla
  1164:          sta     zCURLIN
  1165:          pla
  1166:          sta     zCURLIN + 1
  1167:          pla
  1168:          sta     zTXTPTR
  1169:          pla
  1170:          sta     zTXTPTR + 1
  1171:  
  1172:  bDATA:  jsr     bDATAN
  1173:  LA8FB:  tya
  1174:  
  1175:  JDLA8FC:
  1176:          clc
  1177:          adc     zTXTPTR
  1178:          sta     zTXTPTR
  1179:          bcc     RetA905
  1180:          inc     zTXTPTR + 1
  1181:  RetA905:
  1182:          rts
  1183:  
  1184:  bDATAN: ldx     #':'
  1185:          .byte   ASM_BIT3
  1186:  LA909:  ldx     #0              ; end of line
  1187:          stx     zCHARAC
  1188:          ldy     #0
  1189:          sty     zENDCHR
  1190:  LA911:
  1191:          lda     zENDCHR
  1192:          ldx     zCHARAC
  1193:          sta     zCHARAC
  1194:  JDLA917:
  1195:          stx     zENDCHR
  1196:  @LA919:
  1197:          lda     (zTXTPTR),y
  1198:          beq     RetA905
  1199:          cmp     zENDCHR
  1200:          beq     RetA905
  1201:          iny
  1202:          cmp     #'"'
  1203:          bne     @LA919
  1204:          beq     LA911
  1205:          ; ----------------
  1206:  
  1207:  bIF:    jsr     bFRMEVL
  1208:          jsr     zCHRGOT
  1209:          cmp     #TokGoto
  1210:          beq     @LA937
  1211:          lda     #TokThen
  1212:          jsr     LAEFF
  1213:  @LA937:
  1214:          lda     zFACEXP
  1215:          bne     LA940
  1216:  
  1217:  bREM:   jsr     LA909
  1218:          beq     LA8FB
  1219:  LA940:  jsr     zCHRGOT
  1220:          bcs     @LA948
  1221:          jmp     bGOTO
  1222:  
  1223:  @LA948:
  1224:          jmp     bGONE3
  1225:  
  1226:  bONGOTO:jsr     LB79E
  1227:          pha
  1228:          cmp     #TokGosub
  1229:          beq     LA957
  1230:  LA953:  cmp     #TokGoto
  1231:          bne     LA8E8
  1232:  LA957:  dec     zFACHO + 3
  1233:          bne     @LA95F
  1234:          pla
  1235:          jmp     LA7EF
  1236:  @LA95F:
  1237:          jsr     zCHRGET
  1238:          jsr     bLINGET
  1239:          cmp     #','
  1240:          beq     LA957
  1241:          pla
  1242:  RetA96A:
  1243:          rts
  1244:  
  1245:  bLINGET:ldx     #0
  1246:          stx     zLINNUM
  1247:          stx     zLINNUM + 1
  1248:  @LA971:
  1249:          bcs     RetA96A
  1250:          sbc     #'0' - 1
  1251:          sta     zCHARAC
  1252:          lda     zLINNUM + 1
  1253:          sta     zINDEX
  1254:          cmp     #>6400          ; interestingly, <6400 is 0.
  1255:          bcs     LA953
  1256:          lda     zLINNUM
  1257:          asl     a
  1258:          rol     zINDEX
  1259:          asl     a
  1260:          rol     zINDEX
  1261:          adc     zLINNUM
  1262:          sta     zLINNUM
  1263:          lda     zINDEX
  1264:          adc     zLINNUM + 1
  1265:          sta     zLINNUM + 1
  1266:          asl     zLINNUM
  1267:          rol     zLINNUM + 1
  1268:          lda     zLINNUM
  1269:          adc     zCHARAC
  1270:          sta     zLINNUM
  1271:          bcc     @LA99F
  1272:          inc     zLINNUM + 1
  1273:  @LA99F:
  1274:          jsr     zCHRGET
  1275:          jmp     @LA971
  1276:  
  1277:  bLET:   jsr     bPTRGET
  1278:          sta     zFORPNT
  1279:          sty     zFORPNT + 1
  1280:          lda     #TokEqual
  1281:          jsr     LAEFF
  1282:          lda     zINTFLG
  1283:          pha
  1284:          lda     zVALTYP
  1285:          pha
  1286:          jsr     bFRMEVL
  1287:          pla
  1288:          rol     a
  1289:          jsr     LAD90
  1290:          bne     bPUTSTR
  1291:          pla
  1292:  LA9C2:  bpl     bPTFLPT
  1293:  
  1294:  bPUTINT:jsr     bROUND
  1295:          jsr     bAYINT
  1296:          ldy     #0
  1297:          lda     zFACHO + 2
  1298:          sta     (zFORPNT),y
  1299:          iny
  1300:          lda     zFACHO + 3
  1301:          sta     (zFORPNT),y
  1302:          rts
  1303:  bPTFLPT:jmp     LBBD0
  1304:  
  1305:  bPUTSTR:pla
  1306:  LA9DA:  ldy     zFORPNT + 1
  1307:          cpy     #>bTI                   ; is the variable TI$?
  1308:          bne     bGETSPT
  1309:          jsr     LB6A6
  1310:  bPUTTIM:cmp     #6
  1311:          bne     @LAA24
  1312:          ldy     #0
  1313:          sty     zFACEXP
  1314:          sty     zFACSGN
  1315:  @LA9ED:
  1316:          sty     zFBUFPT
  1317:          jsr     @LAA1D
  1318:          jsr     bMUL10
  1319:          inc     zFBUFPT
  1320:          ldy     zFBUFPT
  1321:          jsr     @LAA1D
  1322:          jsr     bMOVAF
  1323:          tax
  1324:          beq     @LAA07
  1325:          inx
  1326:          txa
  1327:          jsr     LBAED
  1328:  @LAA07:
  1329:          ldy     zFBUFPT
  1330:          iny
  1331:          cpy     #6
  1332:          bne     @LA9ED
  1333:          jsr     bMUL10
  1334:          jsr     bQINT
  1335:          ldx     zFACHO + 2
  1336:          ldy     zFACHO + 1
  1337:          lda     zFACHO + 3
  1338:          jmp     kSETTIM
  1339:  
  1340:  @LAA1D:
  1341:          lda     (zINDEX),y
  1342:          jsr     zCHRGOT_SPACE
  1343:          bcc     @LAA27
  1344:  @LAA24:
  1345:          jmp     bIQERR
  1346:  
  1347:  @LAA27:
  1348:          sbc     #'0' - 1        ; carry is already set!
  1349:          jmp     LBD7E
  1350:  
  1351:  bGETSPT:ldy     #2
  1352:          lda     (zFACHO + 2),y
  1353:          cmp     zFRETOP + 1
  1354:          bcc     @LAA4B
  1355:          bne     @LAA3D
  1356:          dey
  1357:          lda     (zFACHO + 2),y
  1358:          cmp     zFRETOP
  1359:          bcc     @LAA4B
  1360:  @LAA3D:
  1361:          ldy     zFACHO + 3
  1362:          cpy     zVARTAB + 1
  1363:          bcc     @LAA4B
  1364:          bne     @LAA52
  1365:          lda     zFACHO + 2
  1366:          cmp     zVARTAB
  1367:          bcs     @LAA52
  1368:  @LAA4B:
  1369:          lda     zFACHO + 2
  1370:          ldy     zFACHO + 3
  1371:          jmp     @LAA68
  1372:  
  1373:  @LAA52:
  1374:          ldy     #0
  1375:          lda     (zFACHO + 2),y
  1376:          jsr     LB475
  1377:          lda     zTEMP_50
  1378:          ldy     zTEMP_50 + 1
  1379:          sta     zARISGN
  1380:          sty     zFACOV
  1381:          jsr     bMOVINS
  1382:          lda     #<zFAC
  1383:          ldy     #>zFAC
  1384:  @LAA68:
  1385:          sta     zTEMP_50
  1386:          sty     zTEMP_50 + 1
  1387:          jsr     bFREFAC
  1388:          ldy     #0
  1389:          lda     (zTEMP_50),y
  1390:          sta     (zFORPNT),y
  1391:          iny
  1392:          lda     (zTEMP_50),y
  1393:          sta     (zFORPNT),y
  1394:          iny
  1395:          lda     (zTEMP_50),y
  1396:          sta     (zFORPNT),y
  1397:          rts
  1398:  
  1399:  bPRINTN:jsr     bCMD
  1400:          jmp     LABB5
  1401:  
  1402:  bCMD:   jsr     LB79E
  1403:          beq     @LAA90
  1404:          lda     #','
  1405:          jsr     LAEFF
  1406:  @LAA90:
  1407:          php
  1408:          stx     z13
  1409:          jsr     bCKOUT
  1410:          plp
  1411:          jmp     bPRINT
  1412:  
  1413:  bSTRDON:jsr     LAB21
  1414:  
  1415:  LAA9D:  jsr     zCHRGOT
  1416:  
  1417:  bPRINT: beq     bCRDO
  1418:  LAAA2:  beq     RetAAE7
  1419:          cmp     #TokTab
  1420:          beq     LAAF8
  1421:          cmp     #TokSpc
  1422:          clc
  1423:          beq     LAAF8
  1424:          cmp     #','
  1425:          beq     bCOMPRT
  1426:          cmp     #';'
  1427:          beq     LAB13
  1428:          jsr     bFRMEVL
  1429:  bVAROP: bit     zVALTYP
  1430:          bmi     bSTRDON
  1431:          jsr     bFOUT
  1432:          jsr     bSTRLIT
  1433:          jsr     LAB21
  1434:          jsr     bOUTSPC
  1435:          bne     LAA9D
  1436:  bSTREND:lda     #0
  1437:          sta     lBUF,x
  1438:          ldx     #<(lBUF - 1)
  1439:          ldy     #>(lBUF - 1)
  1440:          lda     z13
  1441:          bne     RetAAE7
  1442:  
  1443:          ; output a CR and possibly a LF
  1444:          ;
  1445:          ; Input:
  1446:          ;   none
  1447:          ;
  1448:          ; Remark:
  1449:          ;   At first, this function outputs a CR ($0D). If z13 is negative,
  1450:          ;   it outputs a LF afterwards.
  1451:          ;
  1452:  bCRDO:  lda     #ASC_CR         ; output the CR
  1453:          jsr     LAB47
  1454:          bit     z13             ; check: Shall we output a LF?
  1455:          bpl     LAAE5
  1456:          lda     #ASC_LF         ; yes, output the LF
  1457:          jsr     LAB47
  1458:  LAAE5:  eor     #$FF
  1459:  RetAAE7:
  1460:          rts
  1461:  
  1462:  bCOMPRT:sec
  1463:          jsr     kPLOT
  1464:          tya
  1465:          sec
  1466:  @LAAEE:
  1467:          sbc     #EDITOR_TAB
  1468:          bcs     @LAAEE
  1469:          eor     #$FF
  1470:          adc     #$01
  1471:          bne     LAB0E
  1472:  LAAF8:  php
  1473:          sec
  1474:          jsr     kPLOT
  1475:          sty     zTRMPOS
  1476:          jsr     bGTBYTC
  1477:          cmp     #')'
  1478:          bne     LAB5F
  1479:          plp
  1480:          bcc     LAB0F
  1481:          txa
  1482:          sbc     zTRMPOS
  1483:          bcc     LAB13
  1484:  LAB0E:  tax
  1485:  LAB0F:  inx
  1486:  LAB10:  dex
  1487:          bne     LAB19
  1488:  LAB13:  jsr     zCHRGET
  1489:          jmp     LAAA2
  1490:  
  1491:  LAB19:  jsr     bOUTSPC
  1492:          bne     LAB10
  1493:  
  1494:  bSTROUT:jsr     bSTRLIT
  1495:  
  1496:  LAB21:  jsr     LB6A6
  1497:          tax
  1498:          ldy     #0
  1499:          inx
  1500:  @LAB28:
  1501:          dex
  1502:          beq     RetAAE7
  1503:          lda     (zINDEX),y
  1504:          jsr     LAB47
  1505:          iny
  1506:          cmp     #ASC_CR
  1507:          bne     @LAB28
  1508:          jsr     LAAE5
  1509:          jmp     @LAB28
  1510:  
  1511:  bOUTSPC:lda     z13
  1512:          beq     @LAB42
  1513:          lda     #' '
  1514:          .byte   ASM_BIT3
  1515:  @LAB42:
  1516:          lda     #ASC_CURSORLEFTRIGHT
  1517:          .byte   ASM_BIT3
  1518:  
  1519:  
  1520:  LAB45:  lda     #'?'
  1521:  
  1522:  LAB47:  jsr     bCHOUT
  1523:          and     #$FF
  1524:          rts
  1525:  
  1526:  bDOAGIN:lda     zSUBFLG
  1527:          beq     LAB62
  1528:          bmi     @LAB57
  1529:          ldy     #$FF
  1530:          bne     @LAB5B
  1531:          ; ---------------
  1532:  @LAB57:
  1533:          lda     zDATLIN
  1534:          ldy     zDATLIN + 1
  1535:  @LAB5B:
  1536:          sta     zCURLIN
  1537:          sty     zCURLIN + 1
  1538:  LAB5F:  jmp     bSYNERR
  1539:  LAB62:  lda     z13
  1540:          beq     @LAB6B
  1541:          ldx     #ErrFileData
  1542:          jmp     bERROR
  1543:  
  1544:  @LAB6B:
  1545:          lda     #<StrRedoFromStart
  1546:          ldy     #>StrRedoFromStart
  1547:          jsr     bSTROUT
  1548:          lda     zOLDTXT
  1549:          ldy     zOLDTXT + 1
  1550:          sta     zTXTPTR
  1551:          sty     zTXTPTR + 1
  1552:          rts
  1553:  
  1554:  bGET:   jsr     bERRDIR
  1555:          cmp     #'#'
  1556:          bne     @LAB92
  1557:          jsr     zCHRGET
  1558:          jsr     LB79E
  1559:          lda     #','
  1560:          jsr     LAEFF
  1561:          stx     z13
  1562:          jsr     bCKIN
  1563:  @LAB92:
  1564:          ldx     #<(lBUF + 1)
  1565:          ldy     #>(lBUF + 1)
  1566:          lda     #0
  1567:          sta     lBUF + 1
  1568:          lda     #$40
  1569:          jsr     LAC0F
  1570:          ldx     z13
  1571:          bne     LABB7
  1572:          rts
  1573:  
  1574:  bINPUTN:jsr     LB79E
  1575:          lda     #','
  1576:          jsr     LAEFF
  1577:          stx     z13
  1578:          jsr     bCKIN
  1579:          jsr     LABCE
  1580:  LABB5:  lda     z13
  1581:  LABB7:  jsr     kCLRCHN
  1582:          ldx     #0
  1583:          stx     z13
  1584:          rts
  1585:  bINPUT: cmp     #'"'
  1586:          bne     LABCE
  1587:          jsr     LAEBD
  1588:          lda     #';'
  1589:          jsr     LAEFF
  1590:          jsr     LAB21
  1591:  LABCE:  jsr     bERRDIR
  1592:          lda     #','
  1593:          sta     lBUF - 1
  1594:  LABD6:  jsr     bQINLIN
  1595:          lda     z13
  1596:          beq     bBUFFUL
  1597:          jsr     kREADST
  1598:          and     #$02
  1599:          beq     bBUFFUL
  1600:          jsr     LABB5
  1601:          jmp     bDATA
  1602:  
  1603:  bBUFFUL:lda     lBUF
  1604:          bne     LAC0D
  1605:          lda     z13
  1606:          bne     LABD6
  1607:          jsr     bDATAN
  1608:          jmp     LA8FB
  1609:  
  1610:  bQINLIN:lda     z13
  1611:          bne     @LAC03
  1612:          jsr     LAB45
  1613:          jsr     bOUTSPC
  1614:  @LAC03:
  1615:          jmp     bINLIN
  1616:  
  1617:  bREAD:  ldx     zDATPTR
  1618:          ldy     zDATPTR + 1
  1619:          lda     #$98
  1620:          .byte   ASM_BIT3
  1621:  LAC0D:  lda     #0
  1622:  LAC0F:  sta     zSUBFLG
  1623:          stx     zINPPTR
  1624:          sty     zINPPTR + 1
  1625:  LAC15:  jsr     bPTRGET
  1626:          sta     zFORPNT
  1627:          sty     zFORPNT + 1
  1628:          lda     zTXTPTR
  1629:          ldy     zTXTPTR + 1
  1630:          sta     zVARTXT
  1631:          sty     zVARTXT + 1
  1632:          ldx     zINPPTR
  1633:          ldy     zINPPTR + 1
  1634:          stx     zTXTPTR
  1635:          sty     zTXTPTR + 1
  1636:          jsr     zCHRGOT
  1637:          bne     LAC51
  1638:          bit     zSUBFLG
  1639:          bvc     LAC41
  1640:  
  1641:  bRGDET: jsr     bGETIN
  1642:          sta     lBUF
  1643:          ldx     #<(lBUF - 1)
  1644:          ldy     #>(lBUF - 1)
  1645:          bne     LAC4D
  1646:  LAC41:  bmi     LACB8
  1647:          lda     z13
  1648:          bne     @LAC4A
  1649:          jsr     LAB45
  1650:  @LAC4A:
  1651:          jsr     bQINLIN
  1652:  
  1653:  LAC4D:  stx     zTXTPTR
  1654:          sty     zTXTPTR + 1
  1655:  LAC51:  jsr     zCHRGET
  1656:          bit     zVALTYP
  1657:          bpl     @LAC89
  1658:          bit     zSUBFLG
  1659:          bvc     @LAC65
  1660:          inx
  1661:          stx     zTXTPTR
  1662:          lda     #0
  1663:          sta     zCHARAC
  1664:          beq     @LAC71
  1665:  @LAC65:
  1666:          sta     zCHARAC
  1667:          cmp     #'"'
  1668:          beq     @LAC72
  1669:          lda     #':'
  1670:          sta     zCHARAC
  1671:          lda     #','
  1672:  @LAC71:
  1673:          clc
  1674:  @LAC72:
  1675:          sta     zENDCHR
  1676:          lda     zTXTPTR
  1677:          ldy     zTXTPTR + 1
  1678:          adc     #0
  1679:          bcc     @LAC7D
  1680:          iny
  1681:  @LAC7D:
  1682:          jsr     LB48D
  1683:          jsr     LB7E2
  1684:          jsr     LA9DA
  1685:          jmp     @LAC91
  1686:  @LAC89:
  1687:          jsr     bFIN
  1688:          lda     zINTFLG
  1689:          jsr     LA9C2
  1690:  @LAC91:
  1691:          jsr     zCHRGOT
  1692:          beq     @LAC9D
  1693:          cmp     #','
  1694:          beq     @LAC9D
  1695:          jmp     bDOAGIN
  1696:  
  1697:  @LAC9D:
  1698:          lda     zTXTPTR
  1699:          ldy     zTXTPTR + 1
  1700:          sta     zINPPTR
  1701:          sty     zINPPTR + 1
  1702:          lda     zVARTXT
  1703:          ldy     zVARTXT + 1
  1704:          sta     zTXTPTR
  1705:          sty     zTXTPTR + 1
  1706:          jsr     zCHRGOT
  1707:          beq     LACDF
  1708:          jsr     bCHKCMA
  1709:          jmp     LAC15
  1710:  LACB8:  jsr     bDATAN
  1711:          iny
  1712:          tax
  1713:          bne     @LACD1
  1714:          ldx     #$0D
  1715:          iny
  1716:          lda     (zTXTPTR),y
  1717:          beq     LAD32
  1718:          iny
  1719:          lda     (zTXTPTR),y
  1720:          sta     zDATLIN
  1721:          iny
  1722:          lda     (zTXTPTR),y
  1723:          iny
  1724:          sta     zDATLIN + 1
  1725:  @LACD1:
  1726:          jsr     LA8FB
  1727:          jsr     zCHRGOT
  1728:          tax
  1729:          cpx     #$83
  1730:          bne     LACB8
  1731:          jmp     LAC51
  1732:  LACDF:  lda     zINPPTR
  1733:          ldy     zINPPTR + 1
  1734:          ldx     zSUBFLG
  1735:          bpl     @LACEA
  1736:          jmp     LA827
  1737:  @LACEA:
  1738:          ldy     #0
  1739:          lda     (zINPPTR),y
  1740:          beq     @Ret
  1741:          lda     z13
  1742:          bne     @Ret
  1743:          lda     #<bEXINT
  1744:          ldy     #>bEXINT
  1745:          jmp     bSTROUT
  1746:  @Ret:   rts
  1747:  
  1748:  bEXINT: .byte   "?EXTRA IGNORED",$0D,$00
  1749:  
  1750:  StrRedoFromStart:
  1751:          .byte   "?REDO FROM START",$0D,$00
  1752:  
  1753:  bNEXT:  bne     LAD24
  1754:          ldy     #0
  1755:          beq     LAD27
  1756:  LAD24:  jsr     bPTRGET
  1757:  LAD27:  sta     zFORPNT
  1758:          sty     zFORPNT + 1
  1759:          jsr     bFNDFOR
  1760:          beq     LAD35
  1761:          ldx     #ErrNextWithoutFor
  1762:  LAD32:  jmp     bERROR
  1763:  LAD35:  txs
  1764:          txa
  1765:          clc
  1766:          adc     #$04
  1767:          pha
  1768:          adc     #$06
  1769:          sta     zINDEX2
  1770:          pla
  1771:          ldy     #$01
  1772:          jsr     bMOVFM
  1773:          tsx
  1774:          lda     lSTACK + 9,x
  1775:          sta     zFACSGN
  1776:          lda     zFORPNT
  1777:          ldy     zFORPNT + 1
  1778:          jsr     bFADD
  1779:          jsr     LBBD0
  1780:          ldy     #$01
  1781:          jsr     LBC5D
  1782:          tsx
  1783:          sec
  1784:          sbc     lSTACK + 9,x
  1785:          beq     LAD78
  1786:  bDONEXT:lda     lSTACK + 15,x
  1787:          sta     zCURLIN
  1788:          lda     lSTACK + 16,x
  1789:          sta     zCURLIN + 1
  1790:          lda     lSTACK + 18,x
  1791:          sta     zTXTPTR
  1792:          lda     lSTACK + 17,x
  1793:          sta     zTXTPTR + 1
  1794:  LAD75:  jmp     bNEWSTT
  1795:  LAD78:  txa
  1796:          adc     #17
  1797:          tax
  1798:          txs
  1799:          jsr     zCHRGOT
  1800:          cmp     #','
  1801:          bne     LAD75
  1802:          jsr     zCHRGET
  1803:          jsr     LAD24
  1804:  bFRMNUM:jsr     bFRMEVL
  1805:  LAD8D:  clc
  1806:          .byte   ASM_BIT2
  1807:  LAD8F:  sec
  1808:  LAD90:  bit     zVALTYP
  1809:          bmi     LAD97
  1810:          bcs     LAD99
  1811:  LAD96:  rts
  1812:  LAD97:  bcs     LAD96
  1813:  LAD99:  ldx     #ErrTypeMismatch
  1814:          jmp     bERROR
  1815:  bFRMEVL:ldx     zTXTPTR
  1816:          bne     LADA4
  1817:          dec     zTXTPTR + 1
  1818:  LADA4:  dec     zTXTPTR
  1819:          ldx     #0
  1820:          .byte   ASM_BIT2
  1821:  LADA9:  pha
  1822:          txa
  1823:          pha
  1824:          lda     #1
  1825:          jsr     bGETSTK
  1826:          jsr     bEVAL
  1827:          lda     #$00
  1828:          sta     zOPMASK
  1829:  LADB8:  jsr     zCHRGOT
  1830:  LADBB:  sec
  1831:          sbc     #TokGreater
  1832:          bcc     LADD7
  1833:          cmp     #TokSgn - TokGreater
  1834:          bcs     LADD7
  1835:          cmp     #TokEqual - TokGreater
  1836:          rol     a
  1837:          eor     #$01
  1838:          eor     zOPMASK
  1839:          cmp     zOPMASK
  1840:          bcc     LAE30
  1841:          sta     zOPMASK
  1842:          jsr     zCHRGET
  1843:          jmp     LADBB
  1844:  LADD7:  ldx     zOPMASK
  1845:          bne     LAE07
  1846:          bcs     LAE58
  1847:          adc     #$07
  1848:          bcc     LAE58
  1849:          adc     zVALTYP
  1850:          bne     LADE8
  1851:          jmp     bCAT
  1852:  LADE8:  adc     #-1
  1853:          sta     zINDEX
  1854:          asl     a
  1855:          adc     zINDEX
  1856:          tay
  1857:  LADF0:  pla
  1858:          cmp     bOPTAB,y
  1859:          bcs     LAE5D
  1860:          jsr     LAD8D
  1861:  LADF9:  pha
  1862:  LADFA:  jsr     LAE20
  1863:          pla
  1864:          ldy     zVARTXT
  1865:          bpl     LAE19
  1866:          tax
  1867:          beq     LAE5B
  1868:          bne     LAE66
  1869:  LAE07:  lsr     zVALTYP
  1870:          txa
  1871:          rol     a
  1872:          ldx     zTXTPTR
  1873:          bne     LAE11
  1874:          dec     zTXTPTR + 1
  1875:  LAE11:  dec     zTXTPTR
  1876:          ldy     #$1B
  1877:          sta     zOPMASK
  1878:          bne     LADF0
  1879:  LAE19:  cmp     bOPTAB,y
  1880:          bcs     LAE66
  1881:          bcc     LADF9
  1882:  LAE20:  lda     bOPTAB + 2,y
  1883:          pha
  1884:          lda     bOPTAB + 1,y
  1885:          pha
  1886:          jsr     LAE33
  1887:          lda     zOPMASK
  1888:          jmp     LADA9
  1889:  LAE30:  jmp     bSYNERR
  1890:  LAE33:  lda     zFACSGN
  1891:          ldx     bOPTAB,y
  1892:  LAE38:  tay
  1893:          pla
  1894:          sta     zINDEX
  1895:          inc     zINDEX
  1896:          pla
  1897:          sta     zINDEX + 1
  1898:          tya
  1899:          pha
  1900:  LAE43:  jsr     bROUND
  1901:          lda     zFACHO + 3
  1902:          pha
  1903:          lda     zFACHO + 2
  1904:          pha
  1905:          lda     zFACHO + 1
  1906:          pha
  1907:          lda     zFACHO
  1908:          pha
  1909:          lda     zFACEXP
  1910:          pha
  1911:          jmp     (zINDEX)
  1912:  LAE58:  ldy     #$FF
  1913:          pla
  1914:  LAE5B:  beq     LAE80
  1915:  LAE5D:  cmp     #$64
  1916:          beq     LAE64
  1917:          jsr     LAD8D
  1918:  LAE64:  sty     zVARTXT
  1919:  LAE66:  pla
  1920:          lsr     a
  1921:          sta     zTANSGN
  1922:          pla
  1923:          sta     zARGEXP
  1924:          pla
  1925:          sta     zARGHO
  1926:          pla
  1927:          sta     zARGHO + 1
  1928:          pla
  1929:          sta     zARGHO + 2
  1930:          pla
  1931:          sta     zARGHO + 3
  1932:          pla
  1933:          sta     zARGSGN
  1934:          eor     zFACSGN
  1935:          sta     zARISGN
  1936:  LAE80:  lda     zFACEXP
  1937:          rts
  1938:  bEVAL:  jmp     (lIEVAL)
  1939:  LAE86:  lda     #$00
  1940:          sta     zVALTYP
  1941:  LAE8A:  jsr     zCHRGET
  1942:          bcs     LAE92
  1943:  LAE8F:  jmp     bFIN
  1944:  LAE92:  jsr     bISLETC
  1945:          bcc     LAE9A
  1946:          jmp     bISVAR
  1947:  LAE9A:  cmp     #$FF
  1948:          bne     bQDOT
  1949:          lda     #<bPIVAL
  1950:          ldy     #>bPIVAL
  1951:          jsr     bMOVFM
  1952:          jmp     zCHRGET
  1953:  
  1954:  bPIVAL: .byte   $82,$49,$0F,$DA,$A1
  1955:  
  1956:  bQDOT:  cmp     #'.'
  1957:          beq     LAE8F
  1958:          cmp     #TokMinus
  1959:          beq     bDOMIN
  1960:          cmp     #TokPlus
  1961:          beq     LAE8A
  1962:          cmp     #'"'
  1963:          bne     LAECC
  1964:  LAEBD:  lda     zTXTPTR
  1965:          ldy     zTXTPTR + 1
  1966:          adc     #0
  1967:          bcc     LAEC6
  1968:          iny
  1969:  LAEC6:  jsr     bSTRLIT
  1970:          jmp     LB7E2
  1971:  LAECC:  cmp     #TokNot
  1972:          bne     LAEE3
  1973:          ldy     #$18
  1974:          bne     LAF0F
  1975:  bEQUOP: jsr     bAYINT
  1976:          lda     zFACHO + 3
  1977:          eor     #$FF
  1978:          tay
  1979:          lda     zFACHO + 2
  1980:          eor     #$FF
  1981:          jmp     bGIVAYF
  1982:  LAEE3:  cmp     #TokFn
  1983:          bne     LAEEA
  1984:          jmp     bFNDOER
  1985:  LAEEA:  cmp     #TokSgn
  1986:          bcc     bOARCHK
  1987:          jmp     bISFUN
  1988:  bOARCHK:jsr     bCHKopen
  1989:          jsr     bFRMEVL
  1990:  bCHKclose:
  1991:          lda     #')'
  1992:          .byte   ASM_BIT3
  1993:  bCHKopen:
  1994:          lda     #'('
  1995:          .byte   ASM_BIT3
  1996:  bCHKCMA:lda     #','
  1997:  LAEFF:  ldy     #0
  1998:          cmp     (zTXTPTR),y
  1999:          bne     bSYNERR
  2000:          jmp     zCHRGET
  2001:  bSYNERR:ldx     #ErrSyntax
  2002:          jmp     bERROR
  2003:  bDOMIN: ldy     #$15
  2004:  LAF0F:  pla
  2005:          pla
  2006:          jmp     LADFA
  2007:  bRSVVAR:sec
  2008:          lda     zFACHO + 2
  2009:          sbc     #<BASIC_START
  2010:          lda     zFACHO + 3
  2011:          sbc     #>BASIC_START
  2012:          bcc     LAF27
  2013:          lda     #<BASIC_END
  2014:          sbc     zFACHO + 2
  2015:          lda     #>BASIC_END
  2016:          sbc     zFACHO + 3
  2017:  LAF27:  rts
  2018:  bISVAR: jsr     bPTRGET
  2019:          sta     zFACHO + 2
  2020:          sty     zFACHO + 3
  2021:          ldx     zVARNAM
  2022:          ldy     zVARNAM + 1
  2023:          lda     zVALTYP
  2024:          beq     LAF5D
  2025:          lda     #0
  2026:          sta     zFACOV
  2027:          jsr     bRSVVAR
  2028:          bcc     LAF5C
  2029:          cpx     #'T'            ; "T"
  2030:          bne     LAF5C
  2031:          cpy     #'I' + $80      ; "I$"
  2032:          bne     LAF5C
  2033:  bTISASC:jsr     LAF84
  2034:          sty     zTEMP_5E
  2035:          dey
  2036:          sty     zFBUFPT
  2037:          ldy     #6
  2038:          sty     zTEMP_5D
  2039:          ldy     #$24
  2040:          jsr     bFOUTIM
  2041:          jmp     LB46F
  2042:  LAF5C:  rts
  2043:  LAF5D:  bit     zINTFLG
  2044:          bpl     LAF6E
  2045:          ldy     #0
  2046:          lda     (zFACHO + 2),y
  2047:          tax
  2048:          iny
  2049:          lda     (zFACHO + 2),y
  2050:          tay
  2051:          txa
  2052:          jmp     bGIVAYF
  2053:  LAF6E:  jsr     bRSVVAR
  2054:          bcc     LAFA0
  2055:          cpx     #'T'
  2056:          bne     LAF92
  2057:          cpy     #'I'
  2058:          bne     LAFA0
  2059:          jsr     LAF84
  2060:          tya
  2061:          ldx     #$A0
  2062:          jmp     LBC4F
  2063:  LAF84:  jsr     kRDTIM
  2064:          stx     zFACHO + 2
  2065:          sty     zFACHO + 1
  2066:          sta     zFACHO + 3
  2067:          ldy     #0
  2068:          sty     zFACHO
  2069:          rts
  2070:  LAF92:  cpx     #'S'
  2071:          bne     LAFA0
  2072:          cpy     #'T'
  2073:          bne     LAFA0
  2074:          jsr     kREADST
  2075:          jmp     LBC3C
  2076:  LAFA0:  lda     zFACHO + 2
  2077:          ldy     zFACHO + 3
  2078:          jmp     bMOVFM
  2079:  bISFUN: asl     a
  2080:          pha
  2081:          tax
  2082:          jsr     zCHRGET
  2083:          cpx     #TokRem
  2084:          bcc     bNUMFUN
  2085:  bSTRFUN:jsr     bCHKopen
  2086:          jsr     bFRMEVL
  2087:          jsr     bCHKCMA
  2088:          jsr     LAD8F
  2089:          pla
  2090:          tax
  2091:          lda     zFACHO + 3
  2092:          pha
  2093:          lda     zFACHO + 2
  2094:          pha
  2095:          txa
  2096:          pha
  2097:          jsr     LB79E
  2098:          pla
  2099:          tay
  2100:          txa
  2101:          pha
  2102:          jmp     LAFD6
  2103:  bNUMFUN:jsr     bOARCHK
  2104:          pla
  2105:          tay
  2106:  LAFD6:  lda     bFUNDSP - 2*(TokSgn - $80),y
  2107:          sta     zJMPER + 1
  2108:          lda     bFUNDSP - 2*(TokSgn - $80) + 1,y
  2109:          sta     zJMPER + 2
  2110:          jsr     zJMPER
  2111:          jmp     LAD8D
  2112:  bOROP:  ldy     #$FF
  2113:          .byte   ASM_BIT3
  2114:  TAND:   ldy     #0
  2115:          sty     zCOUNT
  2116:          jsr     bAYINT
  2117:          lda     zFACHO + 2
  2118:          eor     zCOUNT
  2119:          sta     zCHARAC
  2120:          lda     zFACHO + 3
  2121:          eor     zCOUNT
  2122:          sta     zENDCHR
  2123:          jsr     bMOVFA
  2124:          jsr     bAYINT
  2125:          lda     zFACHO + 3
  2126:          eor     zCOUNT
  2127:          and     zENDCHR
  2128:          eor     zCOUNT
  2129:          tay
  2130:          lda     zFACHO + 2
  2131:          eor     zCOUNT
  2132:          and     zCHARAC
  2133:          eor     zCOUNT
  2134:          jmp     bGIVAYF
  2135:  bDOREL: jsr     LAD90
  2136:          bcs     bSTRREL
  2137:  bNUMREL:lda     zARGSGN
  2138:          ora     #$7F
  2139:          and     zARGHO
  2140:          sta     zARGHO
  2141:          lda     #<zARG
  2142:          ldy     #>zARG
  2143:          jsr     bFCOMP
  2144:          tax
  2145:          jmp     LB061
  2146:  bSTRREL:lda     #0
  2147:          sta     zVALTYP
  2148:          dec     zOPMASK
  2149:          jsr     LB6A6
  2150:          sta     zFACEXP
  2151:          stx     zFACHO
  2152:          sty     zFACHO + 1
  2153:          lda     zARGHO + 2
  2154:          ldy     zARGHO + 3
  2155:          jsr     LB6AA
  2156:          stx     zARGHO + 2
  2157:          sty     zARGHO + 3
  2158:          tax
  2159:          sec
  2160:          sbc     zFACEXP
  2161:          beq     LB056
  2162:          lda     #1
  2163:          bcc     LB056
  2164:          ldx     zFACEXP
  2165:          lda     #$FF
  2166:  LB056:  sta     zFACSGN
  2167:          ldy     #$FF
  2168:          inx
  2169:  LB05B:  iny
  2170:          dex
  2171:          bne     LB066
  2172:          ldx     zFACSGN
  2173:  LB061:  bmi     LB072
  2174:          clc
  2175:          bcc     LB072
  2176:  LB066:  lda     (zARGHO + 2),y
  2177:          cmp     (zFACHO),y
  2178:          beq     LB05B
  2179:          ldx     #$FF
  2180:          bcs     LB072
  2181:          ldx     #$01
  2182:  LB072:  inx
  2183:          txa
  2184:          rol     a
  2185:          and     zTANSGN
  2186:          beq     LB07B
  2187:          lda     #$FF
  2188:  LB07B:  jmp     LBC3C
  2189:  bDIM:   jsr     bCHKCMA
  2190:  bDIM2:  tax
  2191:          jsr     LB090
  2192:          jsr     zCHRGOT
  2193:          bne     bDIM
  2194:          rts
  2195:  bPTRGET:ldx     #$00
  2196:          jsr     zCHRGOT
  2197:  LB090:  stx     zDIMFLG
  2198:  LB092:  sta     zVARNAM
  2199:          jsr     zCHRGOT
  2200:          jsr     bISLETC
  2201:          bcs     LB09F
  2202:  LB09C:  jmp     bSYNERR
  2203:  LB09F:  ldx     #$00
  2204:          stx     zVALTYP
  2205:          stx     zINTFLG
  2206:          jsr     zCHRGET
  2207:          bcc     LB0AF
  2208:          jsr     bISLETC
  2209:          bcc     LB0BA
  2210:  LB0AF:  tax
  2211:  LB0B0:  jsr     zCHRGET
  2212:          bcc     LB0B0
  2213:          jsr     bISLETC
  2214:          bcs     LB0B0
  2215:  LB0BA:  cmp     #'$'
  2216:          bne     LB0C4
  2217:          lda     #$FF
  2218:          sta     zVALTYP
  2219:          bne     LB0D4
  2220:  LB0C4:  cmp     #'%'
  2221:          bne     LB0DB
  2222:          lda     zINTALLOWED
  2223:          bne     LB09C
  2224:          lda     #$80
  2225:          sta     zINTFLG
  2226:          ora     zVARNAM
  2227:          sta     zVARNAM
  2228:  LB0D4:  txa
  2229:          ora     #$80
  2230:          tax
  2231:          jsr     zCHRGET
  2232:  LB0DB:  stx     zVARNAM + 1
  2233:          sec
  2234:          ora     zINTALLOWED
  2235:          sbc     #'('
  2236:          bne     bORDVAR
  2237:          jmp     bISARY
  2238:  bORDVAR:ldy     #$00
  2239:          sty     zINTALLOWED
  2240:          lda     zVARTAB
  2241:          ldx     zVARTAB + 1
  2242:  LB0EF:  stx     zTEMP_5F + 1
  2243:  LB0F1:  sta     zTEMP_5F
  2244:          cpx     zARYTAB + 1
  2245:          bne     LB0FB
  2246:          cmp     zARYTAB
  2247:          beq     bNOTFNS
  2248:  LB0FB:  lda     zVARNAM
  2249:          cmp     (zTEMP_5F),y
  2250:          bne     LB109
  2251:          lda     zVARNAM + 1
  2252:          iny
  2253:          cmp     (zTEMP_5F),y
  2254:          beq     LB185
  2255:          dey
  2256:  LB109:  clc
  2257:          lda     zTEMP_5F
  2258:          adc     #7
  2259:          bcc     LB0F1
  2260:          inx
  2261:          bne     LB0EF
  2262:  bISLETC:cmp     #'A'
  2263:          bcc     LB11C
  2264:          sbc     #'Z' + 1
  2265:          sec
  2266:          sbc     #-('Z' + 1)
  2267:  LB11C:  rts
  2268:  bNOTFNS:pla
  2269:          pha
  2270:          cmp     #$2A            ; ?
  2271:          bne     bNOTEVL
  2272:  LB123:  lda     #<bTI           ; for TI$, store the special pointer
  2273:          ldy     #>bTI           ; so it can be recognized
  2274:          rts
  2275:  bNOTEVL:lda     zVARNAM
  2276:          ldy     zVARNAM + 1
  2277:          cmp     #'T'            ; "T"
  2278:          bne     LB13B
  2279:          cpy     #'I' + $80      ; "I$"
  2280:          beq     LB123
  2281:          cpy     #'I'
  2282:          bne     LB13B
  2283:  LB138:  jmp     bSYNERR
  2284:  LB13B:  cmp     #'S'
  2285:          bne     LB143
  2286:          cpy     #'T'
  2287:          beq     LB138
  2288:  LB143:  lda     zARYTAB
  2289:          ldy     zARYTAB + 1
  2290:          sta     zTEMP_5F
  2291:          sty     zTEMP_5F + 1
  2292:          lda     zSTREND
  2293:          ldy     zSTREND + 1
  2294:          sta     zTEMP_5A
  2295:          sty     zTEMP_5A + 1
  2296:          clc
  2297:          adc     #7
  2298:          bcc     LB159
  2299:          iny
  2300:  LB159:  sta     zTEMP_58
  2301:          sty     zTEMP_58 + 1
  2302:          jsr     bBLTU
  2303:          lda     zTEMP_58
  2304:          ldy     zTEMP_58 + 1
  2305:          iny
  2306:          sta     zARYTAB
  2307:          sty     zARYTAB + 1
  2308:          ldy     #0
  2309:          lda     zVARNAM
  2310:          sta     (zTEMP_5F),y
  2311:          iny
  2312:          lda     zVARNAM + 1
  2313:          sta     (zTEMP_5F),y
  2314:          lda     #0
  2315:          iny
  2316:          sta     (zTEMP_5F),y
  2317:          iny
  2318:          sta     (zTEMP_5F),y
  2319:          iny
  2320:          sta     (zTEMP_5F),y
  2321:          iny
  2322:          sta     (zTEMP_5F),y
  2323:          iny
  2324:          sta     (zTEMP_5F),y
  2325:  LB185:  lda     zTEMP_5F
  2326:          clc
  2327:          adc     #2
  2328:          ldy     zTEMP_5F + 1
  2329:          bcc     LB18F
  2330:          iny
  2331:  LB18F:  sta     zVARPNT
  2332:          sty     zVARPNT + 1
  2333:          rts
  2334:  bARYGET:lda     zCOUNT
  2335:          asl     a
  2336:          adc     #5
  2337:          adc     zTEMP_5F
  2338:          ldy     zTEMP_5F + 1
  2339:          bcc     LB1A0
  2340:          iny
  2341:  LB1A0:  sta     zTEMP_58
  2342:          sty     zTEMP_58 + 1
  2343:          rts
  2344:  
  2345:  bN32768:.byte   $90,$80,$00,$00,$00
  2346:  
  2347:  bFACINX:jsr     bAYINT
  2348:          lda     zFACHO + 2
  2349:          ldy     zFACHO + 3
  2350:          rts
  2351:  bINTIDX:jsr     zCHRGET
  2352:          jsr     bFRMEVL
  2353:  LB1B8:  jsr     LAD8D
  2354:          lda     zFACSGN
  2355:          bmi     LB1CC
  2356:  bAYINT: lda     zFACEXP
  2357:          cmp     #$90
  2358:          bcc     LB1CE
  2359:          lda     #<bN32768
  2360:          ldy     #>bN32768
  2361:          jsr     bFCOMP
  2362:  LB1CC:  bne     bIQERR
  2363:  LB1CE:  jmp     bQINT
  2364:  bISARY: lda     zDIMFLG
  2365:          ora     zINTFLG
  2366:          pha
  2367:          lda     zVALTYP
  2368:          pha
  2369:          ldy     #0
  2370:  LB1DB:  tya
  2371:          pha
  2372:          lda     zVARNAM + 1
  2373:          pha
  2374:          lda     zVARNAM
  2375:          pha
  2376:          jsr     bINTIDX
  2377:          pla
  2378:          sta     zVARNAM
  2379:          pla
  2380:          sta     zVARNAM + 1
  2381:          pla
  2382:          tay
  2383:          tsx
  2384:          lda     lSTACK + 2,x
  2385:          pha
  2386:          lda     lSTACK + 1,x
  2387:          pha
  2388:          lda     zFACHO + 2
  2389:          sta     lSTACK + 2,x
  2390:          lda     zFACHO + 3
  2391:          sta     lSTACK + 1,x
  2392:          iny
  2393:          jsr     zCHRGOT
  2394:          cmp     #','
  2395:          beq     LB1DB
  2396:          sty     zCOUNT
  2397:          jsr     bCHKclose
  2398:          pla
  2399:          sta     zVALTYP
  2400:          pla
  2401:          sta     zINTFLG
  2402:          and     #$7F
  2403:          sta     zDIMFLG
  2404:  bFNDARY:ldx     zARYTAB
  2405:          lda     zARYTAB + 1
  2406:  LB21C:  stx     zTEMP_5F
  2407:          sta     zTEMP_5F + 1
  2408:          cmp     zSTREND + 1
  2409:          bne     LB228
  2410:          cpx     zSTREND
  2411:          beq     bNOTFDD
  2412:  LB228:  ldy     #0
  2413:          lda     (zTEMP_5F),y
  2414:          iny
  2415:          cmp     zVARNAM
  2416:          bne     LB237
  2417:          lda     zVARNAM + 1
  2418:          cmp     (zTEMP_5F),y
  2419:          beq     bRAERR
  2420:  LB237:  iny
  2421:          lda     (zTEMP_5F),y
  2422:          clc
  2423:          adc     zTEMP_5F
  2424:          tax
  2425:          iny
  2426:          lda     (zTEMP_5F),y
  2427:          adc     zTEMP_5F + 1
  2428:          bcc     LB21C
  2429:  bBSERR: ldx     #ErrBadSubscript
  2430:          .byte   ASM_BIT3
  2431:  bIQERR: ldx     #ErrIllegalQuantity
  2432:  LB24A:  jmp     bERROR
  2433:  bRAERR: ldx     #ErrRedimdArray
  2434:          lda     zDIMFLG
  2435:          bne     LB24A
  2436:          jsr     bARYGET
  2437:          lda     zCOUNT
  2438:          ldy     #4
  2439:          cmp     (zTEMP_5F),y
  2440:          bne     bBSERR
  2441:          jmp     LB2EA
  2442:  bNOTFDD:jsr     bARYGET
  2443:          jsr     bREASON
  2444:          ldy     #0
  2445:          sty     zFBUFPT + 1
  2446:          ldx     #5
  2447:          lda     zVARNAM
  2448:          sta     (zTEMP_5F),y
  2449:          bpl     LB274
  2450:          dex
  2451:  LB274:  iny
  2452:          lda     zVARNAM + 1
  2453:          sta     (zTEMP_5F),y
  2454:          bpl     LB27D
  2455:          dex
  2456:          dex
  2457:  LB27D:  stx     zFBUFPT
  2458:          lda     zCOUNT
  2459:          iny
  2460:          iny
  2461:          iny
  2462:          sta     (zTEMP_5F),y
  2463:  LB286:  ldx     #11
  2464:          lda     #0
  2465:          bit     zDIMFLG
  2466:          bvc     LB296
  2467:          pla
  2468:          clc
  2469:          adc     #1
  2470:          tax
  2471:          pla
  2472:          adc     #0
  2473:  LB296:  iny
  2474:          sta     (zTEMP_5F),y
  2475:          iny
  2476:          txa
  2477:          sta     (zTEMP_5F),y
  2478:          jsr     bUMULT
  2479:          stx     zFBUFPT
  2480:          sta     zFBUFPT + 1
  2481:          ldy     zINDEX
  2482:          dec     zCOUNT
  2483:          bne     LB286
  2484:          adc     zTEMP_58 + 1
  2485:          bcs     LB30B
  2486:          sta     zTEMP_58 + 1
  2487:          tay
  2488:          txa
  2489:          adc     zTEMP_58
  2490:          bcc     LB2B9
  2491:          iny
  2492:          beq     LB30B
  2493:  LB2B9:  jsr     bREASON
  2494:          sta     zSTREND
  2495:          sty     zSTREND + 1
  2496:          lda     #0
  2497:          inc     zFBUFPT + 1
  2498:          ldy     zFBUFPT
  2499:          beq     LB2CD
  2500:  LB2C8:  dey
  2501:          sta     (zTEMP_58),y
  2502:          bne     LB2C8
  2503:  LB2CD:  dec     zTEMP_58 + 1
  2504:          dec     zFBUFPT + 1
  2505:          bne     LB2C8
  2506:          inc     zTEMP_58 + 1
  2507:          sec
  2508:          lda     zSTREND
  2509:          sbc     zTEMP_5F
  2510:          ldy     #2
  2511:          sta     (zTEMP_5F),y
  2512:          lda     zSTREND + 1
  2513:          iny
  2514:          sbc     zTEMP_5F + 1
  2515:          sta     (zTEMP_5F),y
  2516:          lda     zDIMFLG
  2517:          bne     LB34B
  2518:          iny
  2519:  LB2EA:  lda     (zTEMP_5F),y
  2520:          sta     zCOUNT
  2521:          lda     #0
  2522:          sta     zFBUFPT
  2523:  LB2F2:  sta     zFBUFPT + 1
  2524:          iny
  2525:          pla
  2526:          tax
  2527:          sta     zFACHO + 2
  2528:          pla
  2529:          sta     zFACHO + 3
  2530:          cmp     (zTEMP_5F),y
  2531:          bcc     bINLPN2
  2532:          bne     LB308
  2533:          iny
  2534:          txa
  2535:          cmp     (zTEMP_5F),y
  2536:          bcc     LB30F
  2537:  LB308:  jmp     bBSERR
  2538:  LB30B:  jmp     bOMERR
  2539:  
  2540:  bINLPN2:iny
  2541:  LB30F:  lda     zFBUFPT + 1
  2542:          ora     zFBUFPT
  2543:          clc
  2544:          beq     LB320
  2545:          jsr     bUMULT
  2546:          txa
  2547:          adc     zFACHO + 2
  2548:          tax
  2549:          tya
  2550:          ldy     zINDEX
  2551:  LB320:  adc     zFACHO + 3
  2552:          stx     zFBUFPT
  2553:          dec     zCOUNT
  2554:          bne     LB2F2
  2555:          sta     zFBUFPT + 1
  2556:          ldx     #5
  2557:          lda     zVARNAM
  2558:          bpl     LB331
  2559:          dex
  2560:  LB331:  lda     zVARNAM + 1
  2561:          bpl     LB337
  2562:          dex
  2563:          dex
  2564:  LB337:  stx     zTEMP_28
  2565:          lda     #0
  2566:          jsr     LB355
  2567:          txa
  2568:          adc     zTEMP_58
  2569:          sta     zVARPNT
  2570:          tya
  2571:          adc     zTEMP_58 + 1
  2572:          sta     zVARPNT + 1
  2573:          tay
  2574:          lda     zVARPNT
  2575:  LB34B:  rts
  2576:  bUMULT: sty     zINDEX
  2577:          lda     (zTEMP_5F),y
  2578:          sta     zTEMP_28
  2579:          dey
  2580:          lda     (zTEMP_5F),y
  2581:  LB355:  sta     zTEMP_28 + 1
  2582:          lda     #$10
  2583:          sta     zTEMP_5D
  2584:          ldx     #0
  2585:          ldy     #0
  2586:  LB35F:  txa
  2587:          asl     a
  2588:          tax
  2589:          tya
  2590:          rol     a
  2591:          tay
  2592:          bcs     LB30B
  2593:          asl     zFBUFPT
  2594:          rol     zFBUFPT + 1
  2595:          bcc     LB378
  2596:          clc
  2597:          txa
  2598:          adc     zTEMP_28
  2599:          tax
  2600:          tya
  2601:          adc     zTEMP_28 + 1
  2602:          tay
  2603:          bcs     LB30B
  2604:  LB378:  dec     zTEMP_5D
  2605:          bne     LB35F
  2606:          rts
  2607:  bFRE:   lda     zVALTYP
  2608:          beq     LB384
  2609:          jsr     LB6A6
  2610:  LB384:  jsr     bGARBAG
  2611:          sec
  2612:          lda     zFRETOP
  2613:          sbc     zSTREND
  2614:          tay
  2615:          lda     zFRETOP + 1
  2616:          sbc     zSTREND + 1
  2617:  bGIVAYF:ldx     #0
  2618:          stx     zVALTYP
  2619:          sta     zFACHO
  2620:          sty     zFACHO + 1
  2621:          ldx     #$90
  2622:          jmp     LBC44
  2623:  bPOS:   sec
  2624:          jsr     kPLOT
  2625:  LB3A2:  lda     #0
  2626:          beq     bGIVAYF
  2627:  bERRDIR:ldx     zCURLIN + 1
  2628:          inx
  2629:          bne     LB34B
  2630:          ldx     #ErrIllegalDirect
  2631:          .byte   ASM_BIT3
  2632:  bUFERR: ldx     #ErrUndefdFunction
  2633:          jmp     bERROR
  2634:  
  2635:  bDEF:   jsr     bGETFNM
  2636:          jsr     bERRDIR
  2637:          jsr     bCHKopen
  2638:          lda     #$80
  2639:          sta     zINTALLOWED
  2640:          jsr     bPTRGET
  2641:          jsr     LAD8D
  2642:          jsr     bCHKclose
  2643:          lda     #TokEqual
  2644:          jsr     LAEFF
  2645:          pha
  2646:          lda     zVARPNT + 1
  2647:          pha
  2648:          lda     zVARPNT
  2649:          pha
  2650:          lda     zTXTPTR + 1
  2651:          pha
  2652:          lda     zTXTPTR
  2653:          pha
  2654:          jsr     bDATA
  2655:          jmp     LB44F
  2656:  bGETFNM:lda     #TokFn
  2657:          jsr     LAEFF
  2658:          ora     #$80
  2659:          sta     zINTALLOWED
  2660:          jsr     LB092
  2661:          sta     zTEMPF3
  2662:          sty     zTEMPF3 + 1
  2663:          jmp     LAD8D
  2664:  bFNDOER:jsr     bGETFNM
  2665:          lda     zTEMPF3 + 1
  2666:          pha
  2667:          lda     zTEMPF3
  2668:          pha
  2669:          jsr     bOARCHK
  2670:          jsr     LAD8D
  2671:          pla
  2672:          sta     zTEMPF3
  2673:          pla
  2674:          sta     zTEMPF3 + 1
  2675:          ldy     #2
  2676:          lda     (zTEMPF3),y
  2677:          sta     zVARPNT
  2678:          tax
  2679:          iny
  2680:          lda     (zTEMPF3),y
  2681:          beq     bUFERR
  2682:          sta     zVARPNT + 1
  2683:          iny
  2684:  LB418:  lda     (zVARPNT),y
  2685:          pha
  2686:          dey
  2687:          bpl     LB418
  2688:          ldy     zVARPNT + 1
  2689:          jsr     LBBD4
  2690:          lda     zTXTPTR + 1
  2691:          pha
  2692:          lda     zTXTPTR
  2693:          pha
  2694:          lda     (zTEMPF3),y
  2695:          sta     zTXTPTR
  2696:          iny
  2697:          lda     (zTEMPF3),y
  2698:          sta     zTXTPTR + 1
  2699:          lda     zVARPNT + 1
  2700:          pha
  2701:          lda     zVARPNT
  2702:          pha
  2703:          jsr     bFRMNUM
  2704:          pla
  2705:          sta     zTEMPF3
  2706:          pla
  2707:          sta     zTEMPF3 + 1
  2708:          jsr     zCHRGOT
  2709:          beq     LB449
  2710:          jmp     bSYNERR
  2711:  LB449:  pla
  2712:          sta     zTXTPTR
  2713:          pla
  2714:          sta     zTXTPTR + 1
  2715:  LB44F:  ldy     #0
  2716:          pla
  2717:          sta     (zTEMPF3),y
  2718:          pla
  2719:          iny
  2720:          sta     (zTEMPF3),y
  2721:          pla
  2722:          iny
  2723:          sta     (zTEMPF3),y
  2724:          pla
  2725:          iny
  2726:          sta     (zTEMPF3),y
  2727:          pla
  2728:          iny
  2729:          sta     (zTEMPF3),y
  2730:          rts
  2731:  bSTRD:  jsr     LAD8D
  2732:          ldy     #0
  2733:          jsr     LBDDF
  2734:          pla
  2735:          pla
  2736:  LB46F:  lda     #<(zASCWRK)
  2737:          ldy     #>(zASCWRK)
  2738:          beq     bSTRLIT
  2739:          ; -------------
  2740:  
  2741:  LB475:  ldx     zFACHO + 2
  2742:          ldy     zFACHO + 3
  2743:          stx     zTEMP_50
  2744:          sty     zTEMP_50 + 1
  2745:  LB47D:  jsr     bGETSPA
  2746:          stx     zFACHO
  2747:          sty     zFACHO + 1
  2748:          sta     zFACEXP
  2749:          rts
  2750:  bSTRLIT:ldx     #'"'
  2751:          stx     zCHARAC
  2752:          stx     zENDCHR
  2753:  LB48D:  sta     zARISGN
  2754:          sty     zFACOV
  2755:          sta     zFACHO
  2756:          sty     zFACHO + 1
  2757:          ldy     #-1
  2758:  LB497:  iny
  2759:          lda     (zARISGN),y
  2760:          beq     LB4A8
  2761:          cmp     zCHARAC
  2762:          beq     LB4A4
  2763:          cmp     zENDCHR
  2764:          bne     LB497
  2765:  LB4A4:  cmp     #'"'
  2766:          beq     LB4A9
  2767:  LB4A8:  clc
  2768:  LB4A9:  sty     zFACEXP
  2769:          tya
  2770:          adc     zARISGN
  2771:          sta     zFBUFPT
  2772:          ldx     zFACOV
  2773:          bcc     LB4B5
  2774:          inx
  2775:  LB4B5:  stx     zFBUFPT + 1
  2776:          lda     zFACOV
  2777:          beq     LB4BF
  2778:          cmp     #2
  2779:          bne     LB4CA
  2780:  LB4BF:  tya
  2781:          jsr     LB475
  2782:          ldx     zARISGN
  2783:          ldy     zFACOV
  2784:  JDLB4C7:
  2785:          jsr     LB688
  2786:  LB4CA:  ldx     zTEMPPT
  2787:          cpx     #zTEMPST + 9
  2788:          bne     bPUTNW1
  2789:          ldx     #ErrFormulaTooComplex
  2790:  LB4D2:  jmp     bERROR
  2791:  bPUTNW1:lda     zFACEXP
  2792:          sta     0,x
  2793:          lda     zFACHO
  2794:          sta     1,x
  2795:          lda     zFACHO + 1
  2796:          sta     2,x
  2797:          ldy     #>zTEMPST
  2798:          stx     zFACHO + 2
  2799:          sty     zFACHO + 3
  2800:          sty     zFACOV
  2801:          dey
  2802:          sty     zVALTYP
  2803:          stx     zLASTPT
  2804:          inx
  2805:          inx
  2806:          inx
  2807:          stx     zTEMPPT
  2808:          rts
  2809:  bGETSPA:lsr     zGARBFL
  2810:  LB4F6:  pha
  2811:          eor     #$FF
  2812:          sec
  2813:          adc     zFRETOP
  2814:          ldy     zFRETOP + 1
  2815:          bcs     LB501
  2816:          dey
  2817:  LB501:  cpy     zSTREND + 1
  2818:          bcc     LB516
  2819:          bne     LB50B
  2820:          cmp     zSTREND
  2821:          bcc     LB516
  2822:  LB50B:  sta     zFRETOP
  2823:          sty     zFRETOP + 1
  2824:          sta     zFRESPC
  2825:          sty     zFRESPC + 1
  2826:          tax
  2827:          pla
  2828:          rts
  2829:  LB516:  ldx     #$10
  2830:          lda     zGARBFL
  2831:          bmi     LB4D2
  2832:          jsr     bGARBAG
  2833:          lda     #$80
  2834:          sta     zGARBFL
  2835:          pla
  2836:          bne     LB4F6
  2837:  bGARBAG:ldx     zMEMSIZ
  2838:          lda     zMEMSIZ + 1
  2839:  LB52A:  stx     zFRETOP
  2840:          sta     zFRETOP + 1
  2841:          ldy     #0
  2842:          sty     zTEMPF3 + 1
  2843:          sty     zTEMPF3
  2844:          lda     zSTREND
  2845:          ldx     zSTREND + 1
  2846:          sta     zTEMP_5F
  2847:          stx     zTEMP_5F + 1
  2848:          lda     #<zTEMPST
  2849:          ldx     #>zTEMPST
  2850:          sta     zINDEX
  2851:          stx     zINDEX + 1
  2852:  LB544:  cmp     zTEMPPT
  2853:          beq     LB54D
  2854:          jsr     LB5C7
  2855:          beq     LB544
  2856:  LB54D:  lda     #$07
  2857:          sta     zFOUR6
  2858:          lda     zVARTAB
  2859:          ldx     zVARTAB + 1
  2860:          sta     zINDEX
  2861:          stx     zINDEX + 1
  2862:  LB559:  cpx     zARYTAB + 1
  2863:          bne     LB561
  2864:          cmp     zARYTAB
  2865:          beq     LB566
  2866:  LB561:  jsr     bDVARS
  2867:          beq     LB559
  2868:  LB566:  sta     zTEMP_58
  2869:          stx     zTEMP_58 + 1
  2870:          lda     #3
  2871:          sta     zFOUR6
  2872:  LB56E:  lda     zTEMP_58
  2873:          ldx     zTEMP_58 + 1
  2874:  LB572:  cpx     zSTREND + 1
  2875:          bne     LB57D
  2876:          cmp     zSTREND
  2877:          bne     LB57D
  2878:          jmp     bGRBPAS
  2879:  LB57D:  sta     zINDEX
  2880:          stx     zINDEX + 1
  2881:          ldy     #0
  2882:          lda     (zINDEX),y
  2883:          tax
  2884:          iny
  2885:          lda     (zINDEX),y
  2886:          php
  2887:          iny
  2888:          lda     (zINDEX),y
  2889:          adc     zTEMP_58
  2890:          sta     zTEMP_58
  2891:          iny
  2892:          lda     (zINDEX),y
  2893:          adc     zTEMP_58 + 1
  2894:          sta     zTEMP_58 + 1
  2895:          plp
  2896:          bpl     LB56E
  2897:          txa
  2898:          bmi     LB56E
  2899:          iny
  2900:          lda     (zINDEX),y
  2901:          ldy     #0
  2902:          asl     a
  2903:          adc     #5
  2904:          adc     zINDEX
  2905:          sta     zINDEX
  2906:          bcc     LB5AE
  2907:          inc     zINDEX + 1
  2908:  LB5AE:  ldx     zINDEX + 1
  2909:  LB5B0:  cpx     zTEMP_58 + 1
  2910:          bne     LB5B8
  2911:          cmp     zTEMP_58
  2912:          beq     LB572
  2913:  LB5B8:  jsr     LB5C7
  2914:          beq     LB5B0
  2915:  bDVARS: lda     (zINDEX),y
  2916:          bmi     LB5F6
  2917:          iny
  2918:          lda     (zINDEX),y
  2919:          bpl     LB5F6
  2920:          iny
  2921:  LB5C7:  lda     (zINDEX),y
  2922:          beq     LB5F6
  2923:          iny
  2924:          lda     (zINDEX),y
  2925:          tax
  2926:          iny
  2927:          lda     (zINDEX),y
  2928:          cmp     zFRETOP + 1
  2929:          bcc     LB5DC
  2930:          bne     LB5F6
  2931:          cpx     zFRETOP
  2932:          bcs     LB5F6
  2933:  LB5DC:  cmp     zTEMP_5F + 1
  2934:          bcc     LB5F6
  2935:          bne     LB5E6
  2936:          cpx     zTEMP_5F
  2937:          bcc     LB5F6
  2938:  LB5E6:  stx     zTEMP_5F
  2939:          sta     zTEMP_5F + 1
  2940:          lda     zINDEX
  2941:          ldx     zINDEX + 1
  2942:          sta     zTEMPF3
  2943:          stx     zTEMPF3 + 1
  2944:          lda     zFOUR6
  2945:          sta     zJMPER + 1
  2946:  LB5F6:  lda     zFOUR6
  2947:          clc
  2948:          adc     zINDEX
  2949:          sta     zINDEX
  2950:          bcc     LB601
  2951:          inc     zINDEX + 1
  2952:  LB601:  ldx     zINDEX + 1
  2953:          ldy     #0
  2954:          rts
  2955:  bGRBPAS:lda     zTEMPF3 + 1
  2956:          ora     zTEMPF3
  2957:          beq     LB601
  2958:          lda     zJMPER + 1
  2959:          and     #$04
  2960:          lsr     a
  2961:          tay
  2962:          sta     zJMPER + 1
  2963:          lda     (zTEMPF3),y
  2964:          adc     zTEMP_5F
  2965:          sta     zTEMP_5A
  2966:          lda     zTEMP_5F + 1
  2967:          adc     #0
  2968:          sta     zTEMP_5A + 1
  2969:          lda     zFRETOP
  2970:          ldx     zFRETOP + 1
  2971:          sta     zTEMP_58
  2972:          stx     zTEMP_58 + 1
  2973:          jsr     MoveMem
  2974:          ldy     zJMPER + 1
  2975:          iny
  2976:          lda     zTEMP_58
  2977:          sta     (zTEMPF3),y
  2978:          tax
  2979:          inc     zTEMP_58 + 1
  2980:          lda     zTEMP_58 + 1
  2981:          iny
  2982:          sta     (zTEMPF3),y
  2983:          jmp     LB52A
  2984:  bCAT:   lda     zFACHO + 3
  2985:          pha
  2986:          lda     zFACHO + 2
  2987:          pha
  2988:          jsr     bEVAL
  2989:          jsr     LAD8F
  2990:          pla
  2991:          sta     zARISGN
  2992:          pla
  2993:          sta     zFACOV
  2994:          ldy     #0
  2995:          lda     (zARISGN),y
  2996:          clc
  2997:          adc     (zFACHO + 2),y
  2998:          bcc     LB65D
  2999:          ldx     #ErrStringTooLong
  3000:          jmp     bERROR
  3001:  LB65D:  jsr     LB475
  3002:          jsr     bMOVINS
  3003:          lda     zTEMP_50
  3004:          ldy     zTEMP_50 + 1
  3005:          jsr     LB6AA
  3006:          jsr     LB68C
  3007:          lda     zARISGN
  3008:          ldy     zFACOV
  3009:          jsr     LB6AA
  3010:          jsr     LB4CA
  3011:          jmp     LADB8
  3012:  bMOVINS:ldy     #0
  3013:          lda     (zARISGN),y
  3014:          pha
  3015:          iny
  3016:          lda     (zARISGN),y
  3017:          tax
  3018:          iny
  3019:          lda     (zARISGN),y
  3020:          tay
  3021:          pla
  3022:  LB688:  stx     zINDEX
  3023:          sty     zINDEX + 1
  3024:  LB68C:  tay
  3025:          beq     LB699
  3026:          pha
  3027:  LB690:  dey
  3028:          lda     (zINDEX),y
  3029:          sta     (zFRESPC),y
  3030:          tya
  3031:          bne     LB690
  3032:          pla
  3033:  LB699:  clc
  3034:          adc     zFRESPC
  3035:          sta     zFRESPC
  3036:          bcc     LB6A2
  3037:          inc     zFRESPC + 1
  3038:  LB6A2:  rts
  3039:  bFRESTR:jsr     LAD8F
  3040:  LB6A6:  lda     zFACHO + 2
  3041:          ldy     zFACHO + 3
  3042:  LB6AA:  sta     zINDEX
  3043:          sty     zINDEX + 1
  3044:          jsr     bFREFAC
  3045:          php
  3046:          ldy     #0
  3047:          lda     (zINDEX),y
  3048:          pha
  3049:          iny
  3050:          lda     (zINDEX),y
  3051:          tax
  3052:          iny
  3053:          lda     (zINDEX),y
  3054:          tay
  3055:          pla
  3056:          plp
  3057:          bne     LB6D6
  3058:          cpy     zFRETOP + 1
  3059:          bne     LB6D6
  3060:          cpx     zFRETOP
  3061:          bne     LB6D6
  3062:          pha
  3063:          clc
  3064:          adc     zFRETOP
  3065:          sta     zFRETOP
  3066:          bcc     LB6D5
  3067:          inc     zFRETOP + 1
  3068:  LB6D5:  pla
  3069:  LB6D6:  stx     zINDEX
  3070:          sty     zINDEX + 1
  3071:          rts
  3072:  bFREFAC:cpy     zLASTPT + 1
  3073:          bne     LB6EB
  3074:          cmp     zLASTPT
  3075:          bne     LB6EB
  3076:          sta     zTEMPPT
  3077:          sbc     #3
  3078:          sta     zLASTPT
  3079:          ldy     #0
  3080:  LB6EB:  rts
  3081:  bCHRD:  jsr     LB7A1
  3082:          txa
  3083:          pha
  3084:          lda     #1
  3085:          jsr     LB47D
  3086:          pla
  3087:          ldy     #0
  3088:          sta     (zFACHO),y
  3089:          pla
  3090:          pla
  3091:          jmp     LB4CA
  3092:  bLEFTD: jsr     bPREAM
  3093:          cmp     (zTEMP_50),y
  3094:          tya
  3095:  LB706:  bcc     LB70C
  3096:          lda     (zTEMP_50),y
  3097:          tax
  3098:          tya
  3099:  LB70C:  pha
  3100:  LB70D:  txa
  3101:  LB70E:  pha
  3102:          jsr     LB47D
  3103:          lda     zTEMP_50
  3104:          ldy     zTEMP_50 + 1
  3105:          jsr     LB6AA
  3106:          pla
  3107:          tay
  3108:          pla
  3109:          clc
  3110:          adc     zINDEX
  3111:          sta     zINDEX
  3112:          bcc     LB725
  3113:          inc     zINDEX + 1
  3114:  LB725:  tya
  3115:          jsr     LB68C
  3116:          jmp     LB4CA
  3117:  bRIGHTD:jsr     bPREAM
  3118:          clc
  3119:          sbc     (zTEMP_50),y
  3120:          eor     #$FF
  3121:          jmp     LB706
  3122:  bMIDD:  lda     #$FF
  3123:          sta     zFACHO + 3
  3124:          jsr     zCHRGOT
  3125:          cmp     #')'
  3126:          beq     LB748
  3127:          jsr     bCHKCMA
  3128:          jsr     LB79E
  3129:  LB748:  jsr     bPREAM
  3130:          beq     LB798
  3131:          dex
  3132:          txa
  3133:          pha
  3134:          clc
  3135:          ldx     #0
  3136:          sbc     (zTEMP_50),y
  3137:          bcs     LB70D
  3138:          eor     #$FF
  3139:          cmp     zFACHO + 3
  3140:          bcc     LB70E
  3141:          lda     zFACHO + 3
  3142:          bcs     LB70E
  3143:  bPREAM: jsr     bCHKclose
  3144:          pla
  3145:          tay
  3146:          pla
  3147:          sta     zJMPER + 1
  3148:          pla
  3149:          pla
  3150:          pla
  3151:          tax
  3152:          pla
  3153:          sta     zTEMP_50
  3154:          pla
  3155:          sta     zTEMP_50 + 1
  3156:          lda     zJMPER + 1
  3157:          pha
  3158:          tya
  3159:          pha
  3160:          ldy     #0
  3161:          txa
  3162:          rts
  3163:  bLEN:   jsr     bLEN1
  3164:          jmp     LB3A2
  3165:  bLEN1:  jsr     bFRESTR
  3166:          ldx     #0
  3167:          stx     zVALTYP
  3168:          tay
  3169:          rts
  3170:  bASC:   jsr     bLEN1
  3171:          beq     LB798
  3172:          ldy     #0
  3173:          lda     (zINDEX),y
  3174:          tay
  3175:          jmp     LB3A2
  3176:  LB798:  jmp     bIQERR
  3177:  bGTBYTC:jsr     zCHRGET
  3178:  LB79E:  jsr     bFRMNUM
  3179:  LB7A1:  jsr     LB1B8
  3180:          ldx     zFACHO + 2
  3181:          bne     LB798
  3182:          ldx     zFACHO + 3
  3183:          jmp     zCHRGOT
  3184:  bVAL:   jsr     bLEN1
  3185:          bne     bSTRVAL
  3186:          jmp     LB8F7
  3187:  bSTRVAL:ldx     zTXTPTR
  3188:          ldy     zTXTPTR + 1
  3189:          stx     zFBUFPT
  3190:          sty     zFBUFPT + 1
  3191:          ldx     zINDEX
  3192:          stx     zTXTPTR
  3193:          clc
  3194:          adc     zINDEX
  3195:          sta     zINDEX2
  3196:          ldx     zINDEX + 1
  3197:          stx     zTXTPTR + 1
  3198:          bcc     LB7CD
  3199:          inx
  3200:  LB7CD:  stx     zINDEX2 + 1
  3201:          ldy     #0
  3202:          lda     (zINDEX2),y
  3203:          pha
  3204:          tya
  3205:          sta     (zINDEX2),y
  3206:          jsr     zCHRGOT
  3207:          jsr     bFIN
  3208:          pla
  3209:          ldy     #0
  3210:          sta     (zINDEX2),y
  3211:  LB7E2:  ldx     zFBUFPT
  3212:          ldy     zFBUFPT + 1
  3213:          stx     zTXTPTR
  3214:          sty     zTXTPTR + 1
  3215:          rts
  3216:  bGETNUM:jsr     bFRMNUM
  3217:          jsr     bGETADR
  3218:  LB7F1:  jsr     bCHKCMA
  3219:          jmp     LB79E
  3220:  bGETADR:lda     zFACSGN
  3221:          bmi     LB798
  3222:          lda     zFACEXP
  3223:          cmp     #$91            ; exponent for 65536
  3224:          bcs     LB798
  3225:          jsr     bQINT
  3226:          lda     zFACHO + 2
  3227:          ldy     zFACHO + 3
  3228:          sty     zLINNUM
  3229:          sta     zLINNUM + 1
  3230:          rts
  3231:  bPEEK:  lda     zLINNUM + 1
  3232:          pha
  3233:          lda     zLINNUM
  3234:          pha
  3235:          jsr     bGETADR
  3236:          ldy     #0
  3237:          lda     (zLINNUM),y
  3238:          tay
  3239:          pla
  3240:          sta     zLINNUM
  3241:          pla
  3242:          sta     zLINNUM + 1
  3243:          jmp     LB3A2
  3244:  bPOKE:  jsr     bGETNUM
  3245:          txa
  3246:          ldy     #0
  3247:          sta     (zLINNUM),y
  3248:          rts
  3249:  bWAIT:  jsr     bGETNUM
  3250:          stx     zFORPNT
  3251:          ldx     #0
  3252:          jsr     zCHRGOT
  3253:          beq     LB83C
  3254:          jsr     LB7F1
  3255:  LB83C:  stx     zFORPNT + 1
  3256:          ldy     #0
  3257:  LB840:  lda     (zLINNUM),y
  3258:          eor     zFORPNT + 1
  3259:          and     zFORPNT
  3260:          beq     LB840
  3261:  LB848:  rts
  3262:  bFADDH: lda     #<bFHALF
  3263:          ldy     #>bFHALF
  3264:          jmp     bFADD
  3265:  bFSUB:  jsr     bCONUPK
  3266:  FSUBT:  lda     zFACSGN
  3267:          eor     #$FF
  3268:          sta     zFACSGN
  3269:          eor     zARGSGN
  3270:          sta     zARISGN
  3271:          lda     zFACEXP
  3272:          jmp     FADDT
  3273:  bFADD5: jsr     LB999
  3274:          bcc     LB8A3
  3275:  bFADD:  jsr     bCONUPK
  3276:  FADDT:  bne     LB86F
  3277:          jmp     bMOVFA
  3278:  LB86F:  ldx     zFACOV
  3279:          stx     zJMPER + 2
  3280:          ldx     #zARGEXP
  3281:          lda     zARGEXP
  3282:  LB877:  tay
  3283:          beq     LB848
  3284:          sec
  3285:          sbc     zFACEXP
  3286:          beq     LB8A3
  3287:          bcc     LB893
  3288:          sty     zFACEXP
  3289:          ldy     zARGSGN
  3290:          sty     zFACSGN
  3291:          eor     #$FF
  3292:          adc     #0
  3293:          ldy     #0
  3294:          sty     zJMPER + 2
  3295:          ldx     #zFACEXP
  3296:          bne     LB897
  3297:  LB893:  ldy     #0
  3298:          sty     zFACOV
  3299:  LB897:  cmp     #$F9
  3300:          bmi     bFADD5
  3301:          tay
  3302:          lda     zFACOV
  3303:          lsr     1,x
  3304:          jsr     LB9B0
  3305:  LB8A3:  bit     zARISGN
  3306:          bpl     LB8FE
  3307:          ldy     #zFACEXP
  3308:          cpx     #zARGEXP
  3309:          beq     LB8AF
  3310:          ldy     #zARGEXP
  3311:  LB8AF:  sec
  3312:          eor     #$FF
  3313:          adc     zJMPER + 2
  3314:          sta     zFACOV
  3315:          lda     4,y
  3316:          sbc     4,x
  3317:          sta     zFACHO + 3
  3318:          lda     zADRAY1,y
  3319:          sbc     zADRAY1,x
  3320:          sta     zFACHO + 2
  3321:          lda     2,y
  3322:          sbc     2,x
  3323:          sta     zFACHO + 1
  3324:          lda     1,y
  3325:          sbc     1,x
  3326:          sta     zFACHO
  3327:  LB8D2:  bcs     LB8D7
  3328:          jsr     bNEGFAC
  3329:  LB8D7:  ldy     #0
  3330:          tya
  3331:          clc
  3332:  LB8DB:  ldx     zFACHO
  3333:          bne     LB929
  3334:          ldx     zFACHO + 1
  3335:          stx     zFACHO
  3336:          ldx     zFACHO + 2
  3337:          stx     zFACHO + 1
  3338:          ldx     zFACHO + 3
  3339:          stx     zFACHO + 2
  3340:          ldx     zFACOV
  3341:          stx     zFACHO + 3
  3342:          sty     zFACOV
  3343:          adc     #8
  3344:          cmp     #$20
  3345:          bne     LB8DB
  3346:  LB8F7:  lda     #0
  3347:  LB8F9:  sta     zFACEXP
  3348:  LB8FB:  sta     zFACSGN
  3349:          rts
  3350:  LB8FE:  adc     zJMPER + 2
  3351:          sta     zFACOV
  3352:          lda     zFACHO + 3
  3353:          adc     zARGHO + 3
  3354:          sta     zFACHO + 3
  3355:          lda     zFACHO + 2
  3356:          adc     zARGHO + 2
  3357:          sta     zFACHO + 2
  3358:          lda     zFACHO + 1
  3359:          adc     zARGHO + 1
  3360:          sta     zFACHO + 1
  3361:          lda     zFACHO
  3362:          adc     zARGHO
  3363:          sta     zFACHO
  3364:          jmp     LB936
  3365:  LB91D:  adc     #1
  3366:          asl     zFACOV
  3367:          rol     zFACHO + 3
  3368:          rol     zFACHO + 2
  3369:          rol     zFACHO + 1
  3370:          rol     zFACHO
  3371:  LB929:  bpl     LB91D
  3372:          sec
  3373:          sbc     zFACEXP
  3374:          bcs     LB8F7
  3375:          eor     #$FF
  3376:          adc     #1
  3377:          sta     zFACEXP
  3378:  LB936:  bcc     LB946
  3379:  LB938:  inc     zFACEXP
  3380:          beq     bOVERR
  3381:          ror     zFACHO
  3382:          ror     zFACHO + 1
  3383:          ror     zFACHO + 2
  3384:          ror     zFACHO + 3
  3385:          ror     zFACOV
  3386:  LB946:  rts
  3387:  bNEGFAC:lda     zFACSGN
  3388:          eor     #$FF
  3389:          sta     zFACSGN
  3390:  LB94D:  lda     zFACHO
  3391:          eor     #$FF
  3392:          sta     zFACHO
  3393:          lda     zFACHO + 1
  3394:          eor     #$FF
  3395:          sta     zFACHO + 1
  3396:          lda     zFACHO + 2
  3397:          eor     #$FF
  3398:          sta     zFACHO + 2
  3399:          lda     zFACHO + 3
  3400:          eor     #$FF
  3401:          sta     zFACHO + 3
  3402:          lda     zFACOV
  3403:          eor     #$FF
  3404:          sta     zFACOV
  3405:          inc     zFACOV
  3406:          bne     LB97D
  3407:  LB96F:  inc     zFACHO + 3
  3408:          bne     LB97D
  3409:          inc     zFACHO + 2
  3410:          bne     LB97D
  3411:          inc     zFACHO + 1
  3412:          bne     LB97D
  3413:          inc     zFACHO
  3414:  LB97D:  rts
  3415:  bOVERR: ldx     #ErrOverflow
  3416:          jmp     bERROR
  3417:  bMULSHF:ldx     #zRESHO - 1
  3418:  LB985:  ldy     4,x
  3419:          sty     zFACOV
  3420:          ldy     3,x
  3421:          sty     4,x
  3422:          ldy     2,x
  3423:          sty     3,x
  3424:          ldy     1,x
  3425:          sty     2,x
  3426:          ldy     zBITS
  3427:          sty     1,x
  3428:  LB999:  adc     #8
  3429:          bmi     LB985
  3430:          beq     LB985
  3431:          sbc     #8
  3432:          tay
  3433:          lda     zFACOV
  3434:          bcs     LB9BA
  3435:  LB9A6:  asl     1,x
  3436:          bcc     LB9AC
  3437:          inc     1,x
  3438:  LB9AC:  ror     1,x
  3439:          ror     1,x
  3440:  LB9B0:  ror     2,x
  3441:          ror     3,x
  3442:          ror     4,x
  3443:          ror     a
  3444:          iny
  3445:          bne     LB9A6
  3446:  LB9BA:  clc
  3447:          rts
  3448:  
  3449:  bFPTABL:.byte   $81,$00,$00,$00,$00 ; FP 1
  3450:  LB9C1:  .byte   $03                 ; Grade of polynomial
  3451:          .byte   $7F,$5E,$56,$CB,$79 ; .434255942
  3452:          .byte   $80,$13,$9B,$0B,$64 ; .576584541
  3453:          .byte   $80,$76,$38,$93,$16 ; .961800759
  3454:          .byte   $82,$38,$AA,$3B,$20 ; 2.88539007
  3455:  LB9D6:  .byte   $80,$35,$04,$F3,$34 ; 1 / SQR(2)
  3456:  LB9DB:  .byte   $81,$35,$04,$F3,$34 ; SQR(2)
  3457:  LB9E0:  .byte   $80,$80,$00,$00,$00 ; - 0.5
  3458:  LB9E5:  .byte   $80,$31,$72,$17,$F8 ; LOG(2)
  3459:  
  3460:  bLOG:   jsr     bSIGN
  3461:          beq     LB9F1
  3462:          bpl     LB9F4
  3463:  LB9F1:  jmp     bIQERR
  3464:  LB9F4:  lda     zFACEXP
  3465:          sbc     #$7F
  3466:          pha
  3467:          lda     #$80
  3468:          sta     zFACEXP
  3469:          lda     #<LB9D6
  3470:          ldy     #>LB9D6
  3471:          jsr     bFADD
  3472:          lda     #<LB9DB
  3473:          ldy     #>LB9DB
  3474:          jsr     bFDIVT
  3475:          lda     #<bFPTABL
  3476:          ldy     #>bFPTABL
  3477:          jsr     bFSUB
  3478:          lda     #<LB9C1
  3479:          ldy     #>LB9C1
  3480:          jsr     bPOLYX
  3481:          lda     #<LB9E0
  3482:          ldy     #>LB9E0
  3483:          jsr     bFADD
  3484:          pla
  3485:          jsr     LBD7E
  3486:          lda     #<LB9E5
  3487:          ldy     #>LB9E5
  3488:  bFMULT: jsr     bCONUPK
  3489:  FMULTT: bne     LBA30
  3490:          jmp     LBA8B
  3491:  LBA30:  jsr     bMULDIV
  3492:          lda     #$00
  3493:          sta     zRESHO
  3494:          sta     zRESHO + 1
  3495:          sta     zRESHO + 2
  3496:          sta     zRESHO + 3
  3497:          lda     zFACOV
  3498:          jsr     bMULPLY
  3499:          lda     zFACHO + 3
  3500:          jsr     bMULPLY
  3501:          lda     zFACHO + 2
  3502:          jsr     bMULPLY
  3503:          lda     zFACHO + 1
  3504:          jsr     bMULPLY
  3505:          lda     zFACHO
  3506:          jsr     LBA5E
  3507:          jmp     LBB8F
  3508:  bMULPLY:bne     LBA5E
  3509:          jmp     bMULSHF
  3510:  LBA5E:  lsr     a
  3511:          ora     #$80
  3512:  LBA61:  tay
  3513:          bcc     LBA7D
  3514:          clc
  3515:          lda     zRESHO + 3
  3516:          adc     zARGHO + 3
  3517:          sta     zRESHO + 3
  3518:          lda     zRESHO + 2
  3519:          adc     zARGHO + 2
  3520:          sta     zRESHO + 2
  3521:          lda     zRESHO + 1
  3522:          adc     zARGHO + 1
  3523:          sta     zRESHO + 1
  3524:          lda     zRESHO
  3525:          adc     zARGHO
  3526:          sta     zRESHO
  3527:  LBA7D:  ror     zRESHO
  3528:          ror     zRESHO + 1
  3529:          ror     zRESHO + 2
  3530:          ror     zRESHO + 3
  3531:          ror     zFACOV
  3532:          tya
  3533:          lsr     a
  3534:          bne     LBA61
  3535:  LBA8B:  rts
  3536:  bCONUPK:sta     zINDEX
  3537:          sty     zINDEX + 1
  3538:          ldy     #4
  3539:          lda     (zINDEX),y
  3540:          sta     zARGHO + 3
  3541:          dey
  3542:          lda     (zINDEX),y
  3543:          sta     zARGHO + 2
  3544:          dey
  3545:          lda     (zINDEX),y
  3546:          sta     zARGHO + 1
  3547:          dey
  3548:          lda     (zINDEX),y
  3549:          sta     zARGSGN
  3550:          eor     zFACSGN
  3551:          sta     zARISGN
  3552:          lda     zARGSGN
  3553:          ora     #$80
  3554:          sta     zARGHO
  3555:          dey
  3556:          lda     (zINDEX),y
  3557:          sta     zARGEXP
  3558:          lda     zFACEXP
  3559:          rts
  3560:  bMULDIV:lda     zARGEXP
  3561:  LBAB9:  beq     LBADA
  3562:          clc
  3563:          adc     zFACEXP
  3564:          bcc     LBAC4
  3565:          bmi     LBADF
  3566:          clc
  3567:          .byte   ASM_BIT3
  3568:  LBAC4:  bpl     LBADA
  3569:          adc     #$80
  3570:          sta     zFACEXP
  3571:          bne     LBACF
  3572:          jmp     LB8FB
  3573:  LBACF:  lda     zARISGN
  3574:          sta     zFACSGN
  3575:          rts
  3576:  bMLDVEX:lda     zFACSGN
  3577:          eor     #$FF
  3578:          bmi     LBADF
  3579:  LBADA:  pla
  3580:          pla
  3581:          jmp     LB8F7
  3582:  LBADF:  jmp     bOVERR
  3583:  bMUL10: jsr     bMOVAF
  3584:          tax
  3585:          beq     LBAF8
  3586:          clc
  3587:          adc     #2              ; exponent + 2, thus, X * 4
  3588:          bcs     LBADF
  3589:  LBAED:  ldx     #0
  3590:          stx     zARISGN
  3591:          jsr     LB877
  3592:          inc     zFACEXP         ; exponent + 2, thus, ((X * 4) + X) * 2 = X * 10
  3593:          beq     LBADF
  3594:  LBAF8:  rts
  3595:  
  3596:  bTENC:  .byte   $84,$20,$00,$00,$00
  3597:  
  3598:  bDIV10: jsr     bMOVAF
  3599:          lda     #<bTENC
  3600:          ldy     #>bTENC
  3601:          ldx     #0
  3602:  bFDIV:  stx     zARISGN
  3603:          jsr     bMOVFM
  3604:          jmp     FDIVT
  3605:  bFDIVT: jsr     bCONUPK
  3606:  FDIVT:  beq     LBB8A
  3607:          jsr     bROUND
  3608:          lda     #0
  3609:          sec
  3610:          sbc     zFACEXP
  3611:          sta     zFACEXP
  3612:          jsr     bMULDIV
  3613:          inc     zFACEXP
  3614:          beq     LBADF
  3615:          ldx     #-4
  3616:          lda     #1
  3617:  LBB29:  ldy     zARGHO
  3618:          cpy     zFACHO
  3619:          bne     LBB3F
  3620:          ldy     zARGHO + 1
  3621:          cpy     zFACHO + 1
  3622:          bne     LBB3F
  3623:          ldy     zARGHO + 2
  3624:          cpy     zFACHO + 2
  3625:          bne     LBB3F
  3626:          ldy     zARGHO + 3
  3627:          cpy     zFACHO + 3
  3628:  LBB3F:  php
  3629:          rol     a
  3630:          bcc     LBB4C
  3631:          inx
  3632:          sta     zRESHO + 3,x
  3633:          beq     LBB7A
  3634:          bpl     LBB7E
  3635:          lda     #1
  3636:  LBB4C:  plp
  3637:          bcs     LBB5D
  3638:  LBB4F:  asl     zARGHO + 3
  3639:          rol     zARGHO + 2
  3640:          rol     zARGHO + 1
  3641:          rol     zARGHO
  3642:          bcs     LBB3F
  3643:          bmi     LBB29
  3644:          bpl     LBB3F
  3645:  
  3646:  LBB5D:  tay
  3647:          lda     zARGHO + 3
  3648:          sbc     zFACHO + 3
  3649:          sta     zARGHO + 3
  3650:          lda     zARGHO + 2
  3651:          sbc     zFACHO + 2
  3652:          sta     zARGHO + 2
  3653:          lda     zARGHO + 1
  3654:          sbc     zFACHO + 1
  3655:          sta     zARGHO + 1
  3656:          lda     zARGHO
  3657:          sbc     zFACHO
  3658:          sta     zARGHO
  3659:          tya
  3660:          jmp     LBB4F
  3661:  LBB7A:  lda     #$40
  3662:          bne     LBB4C
  3663:          ; -----------
  3664:  LBB7E:  asl     a
  3665:          asl     a
  3666:          asl     a
  3667:          asl     a
  3668:          asl     a
  3669:          asl     a
  3670:          sta     zFACOV
  3671:          plp
  3672:          jmp     LBB8F
  3673:  LBB8A:  ldx     #ErrDivisionByZero
  3674:          jmp     bERROR
  3675:  LBB8F:  lda     zRESHO
  3676:          sta     zFACHO
  3677:          lda     zRESHO + 1
  3678:          sta     zFACHO + 1
  3679:          lda     zRESHO + 2
  3680:          sta     zFACHO + 2
  3681:          lda     zRESHO + 3
  3682:          sta     zFACHO + 3
  3683:          jmp     LB8D7
  3684:  bMOVFM: sta     zINDEX
  3685:          sty     zINDEX + 1
  3686:          ldy     #4
  3687:          lda     (zINDEX),y
  3688:          sta     zFACHO + 3
  3689:          dey
  3690:          lda     (zINDEX),y
  3691:          sta     zFACHO + 2
  3692:          dey
  3693:          lda     (zINDEX),y
  3694:          sta     zFACHO + 1
  3695:          dey
  3696:          lda     (zINDEX),y
  3697:          sta     zFACSGN
  3698:          ora     #$80
  3699:          sta     zFACHO
  3700:          dey
  3701:          lda     (zINDEX),y
  3702:          sta     zFACEXP
  3703:          sty     zFACOV
  3704:          rts
  3705:  bMOV2F: ldx     #zTEMPF2
  3706:          .byte   ASM_BIT3
  3707:  LBBCA:  ldx     #zTEMPF1
  3708:          ldy     #0
  3709:          beq     LBBD4
  3710:  LBBD0:  ldx     zFORPNT
  3711:          ldy     zFORPNT + 1
  3712:  LBBD4:  jsr     bROUND
  3713:          stx     zINDEX
  3714:          sty     zINDEX + 1
  3715:          ldy     #4
  3716:          lda     zFACHO + 3
  3717:          sta     (zINDEX),y
  3718:          dey
  3719:          lda     zFACHO + 2
  3720:          sta     (zINDEX),y
  3721:          dey
  3722:          lda     zFACHO + 1
  3723:          sta     (zINDEX),y
  3724:          dey
  3725:          lda     zFACSGN
  3726:          ora     #$7F
  3727:          and     zFACHO
  3728:          sta     (zINDEX),y
  3729:          dey
  3730:          lda     zFACEXP
  3731:          sta     (zINDEX),y
  3732:          sty     zFACOV
  3733:          rts
  3734:  bMOVFA: lda     zARGSGN
  3735:  LBBFE:  sta     zFACSGN
  3736:          ldx     #5              ; why 5, but 6 in LBC0F?
  3737:  LBC02:  lda     zARG - 1,x
  3738:          sta     zFAC - 1,x
  3739:          dex
  3740:          bne     LBC02
  3741:          stx     zFACOV
  3742:          rts
  3743:  bMOVAF: jsr     bROUND
  3744:  LBC0F:  ldx     #6              ; why 6, but 5 in LBBFE + 2?
  3745:  LBC11:  lda     zFAC - 1,x
  3746:          sta     zARG - 1,x
  3747:          dex
  3748:          bne     LBC11
  3749:          stx     zFACOV
  3750:  LBC1A:  rts
  3751:  bROUND: lda     zFACEXP
  3752:          beq     LBC1A
  3753:          asl     zFACOV
  3754:          bcc     LBC1A
  3755:  LBC23:  jsr     LB96F
  3756:          bne     LBC1A
  3757:          jmp     LB938
  3758:  bSIGN:  lda     zFACEXP
  3759:          beq     LBC38
  3760:  LBC2F:  lda     zFACSGN
  3761:  LBC31:  rol     a
  3762:          lda     #$FF
  3763:          bcs     LBC38
  3764:          lda     #1
  3765:  LBC38:  rts
  3766:  bSGN:   jsr     bSIGN
  3767:  LBC3C:  sta     zFACHO
  3768:          lda     #$00
  3769:          sta     zFACHO + 1
  3770:          ldx     #$88
  3771:  LBC44:  lda     zFACHO
  3772:          eor     #$FF
  3773:          rol     a
  3774:  LBC49:  lda     #$00
  3775:          sta     zFACHO + 3
  3776:          sta     zFACHO + 2
  3777:  LBC4F:  stx     zFACEXP
  3778:          sta     zFACOV
  3779:          sta     zFACSGN
  3780:          jmp     LB8D2
  3781:  bABS:   lsr     zFACSGN
  3782:          rts
  3783:  bFCOMP: sta     zINDEX2
  3784:  LBC5D:  sty     zINDEX2 + 1
  3785:          ldy     #0
  3786:          lda     (zINDEX2),y
  3787:          iny
  3788:          tax
  3789:          beq     bSIGN
  3790:          lda     (zINDEX2),y
  3791:          eor     zFACSGN
  3792:          bmi     LBC2F
  3793:          cpx     zFACEXP
  3794:          bne     LBC92
  3795:          lda     (zINDEX2),y
  3796:          ora     #$80
  3797:          cmp     zFACHO
  3798:          bne     LBC92
  3799:          iny
  3800:          lda     (zINDEX2),y
  3801:          cmp     zFACHO + 1
  3802:          bne     LBC92
  3803:          iny
  3804:          lda     (zINDEX2),y
  3805:          cmp     zFACHO + 2
  3806:          bne     LBC92
  3807:          iny
  3808:          lda     #$7F
  3809:          cmp     zFACOV
  3810:          lda     (zINDEX2),y
  3811:          sbc     zFACHO + 3
  3812:          beq     LBCBA
  3813:  LBC92:  lda     zFACSGN
  3814:          bcc     LBC98
  3815:          eor     #$FF
  3816:  LBC98:  jmp     LBC31
  3817:  bQINT:  lda     zFACEXP
  3818:          beq     LBCE9
  3819:          sec
  3820:          sbc     #$A0
  3821:          bit     zFACSGN
  3822:          bpl     LBCAF
  3823:          tax
  3824:          lda     #$FF
  3825:          sta     zBITS
  3826:          jsr     LB94D
  3827:          txa
  3828:  LBCAF:  ldx     #$61
  3829:          cmp     #$F9
  3830:          bpl     LBCBB
  3831:          jsr     LB999
  3832:          sty     zBITS
  3833:  LBCBA:  rts
  3834:  LBCBB:  tay
  3835:          lda     zFACSGN
  3836:          and     #$80
  3837:          lsr     zFACHO
  3838:          ora     zFACHO
  3839:          sta     zFACHO
  3840:          jsr     LB9B0
  3841:          sty     zBITS
  3842:          rts
  3843:  bINT:   lda     zFACEXP
  3844:          cmp     #$A0
  3845:          bcs     LBCF2
  3846:          jsr     bQINT
  3847:          sty     zFACOV
  3848:          lda     zFACSGN
  3849:          sty     zFACSGN
  3850:          eor     #$80
  3851:          rol     a
  3852:          lda     #$A0
  3853:          sta     zFACEXP
  3854:          lda     zFACHO + 3
  3855:          sta     zCHARAC
  3856:          jmp     LB8D2
  3857:  LBCE9:  sta     zFACHO
  3858:          sta     zFACHO + 1
  3859:          sta     zFACHO + 2
  3860:          sta     zFACHO + 3
  3861:          tay
  3862:  LBCF2:  rts
  3863:  bFIN:   ldy     #0
  3864:          ldx     #zFACSGN - zTEMPF2
  3865:  LBCF7:  sty     zTEMPF2 + 1,x
  3866:          dex
  3867:          bpl     LBCF7
  3868:          bcc     LBD0D
  3869:          cmp     #'-'
  3870:          bne     LBD06
  3871:          stx     zSGNFLG
  3872:          beq     LBD0A
  3873:  LBD06:  cmp     #'+'
  3874:          bne     LBD0F
  3875:  LBD0A:  jsr     zCHRGET
  3876:  LBD0D:  bcc     LBD6A
  3877:  LBD0F:  cmp     #'.'
  3878:          beq     LBD41
  3879:          cmp     #'E'
  3880:          bne     LBD47
  3881:          jsr     zCHRGET
  3882:          bcc     LBD33
  3883:          cmp     #TokMinus
  3884:          beq     LBD2E
  3885:          cmp     #'-'
  3886:          beq     LBD2E
  3887:          cmp     #TokPlus
  3888:          beq     LBD30
  3889:          cmp     #'+'
  3890:          beq     LBD30
  3891:          bne     LBD35
  3892:  LBD2E:  ror     zTEMP_60
  3893:  LBD30:  jsr     zCHRGET
  3894:  LBD33:  bcc     LBD91
  3895:  LBD35:  bit     zTEMP_60
  3896:          bpl     LBD47
  3897:          lda     #0
  3898:          sec
  3899:          sbc     zTEMP_5E
  3900:          jmp     LBD49
  3901:  LBD41:  ror     zTEMP_5F
  3902:          bit     zTEMP_5F
  3903:          bvc     LBD0A
  3904:  LBD47:  lda     zTEMP_5E
  3905:  LBD49:  sec
  3906:          sbc     zTEMP_5D
  3907:          sta     zTEMP_5E
  3908:          beq     LBD62
  3909:          bpl     LBD5B
  3910:  LBD52:  jsr     bDIV10
  3911:          inc     zTEMP_5E
  3912:          bne     LBD52
  3913:          beq     LBD62
  3914:  LBD5B:  jsr     bMUL10
  3915:          dec     zTEMP_5E
  3916:          bne     LBD5B
  3917:  LBD62:  lda     zSGNFLG
  3918:          bmi     LBD67
  3919:          rts
  3920:  LBD67:  jmp     bNEGOP
  3921:  LBD6A:  pha
  3922:          bit     zTEMP_5F
  3923:          bpl     LBD71
  3924:          inc     zTEMP_5D
  3925:  LBD71:  jsr     bMUL10
  3926:          pla
  3927:          sec
  3928:          sbc     #'0'
  3929:          jsr     LBD7E
  3930:          jmp     LBD0A
  3931:  LBD7E:  pha
  3932:          jsr     bMOVAF
  3933:          pla
  3934:          jsr     LBC3C
  3935:          lda     zARGSGN
  3936:          eor     zFACSGN
  3937:          sta     zARISGN
  3938:          ldx     zFACEXP
  3939:          jmp     FADDT
  3940:  LBD91:  lda     zTEMP_5E
  3941:          cmp     #10             ; $0A
  3942:          bcc     LBDA0
  3943:          lda     #100            ; $64
  3944:          bit     zTEMP_60
  3945:          bmi     LBDAE
  3946:          jmp     bOVERR
  3947:  LBDA0:  asl     a
  3948:          asl     a
  3949:          clc
  3950:          adc     zTEMP_5E
  3951:          asl     a
  3952:          clc
  3953:          ldy     #0
  3954:          adc     (zTXTPTR),y
  3955:          sec
  3956:          sbc     #'0'
  3957:  LBDAE:  sta     zTEMP_5E
  3958:          jmp     LBD30
  3959:  
  3960:  bN0999: .byte   $9B,$3E,$BC,$1F,$FD     ; FP: 99999999.9
  3961:  LBDB8:  .byte   $9E,$6E,$6B,$27,$FD     ; FP: 999999999
  3962:  LBDBD:  .byte   $9E,$6E,$6B,$28,$00     ; FP: 1E9
  3963:  
  3964:  bINPRT: lda     #<StrIn         ; output string " IN "
  3965:          ldy     #>StrIn
  3966:          jsr     LBDDA
  3967:  
  3968:          lda     zCURLIN + 1     ; output the current line number
  3969:          ldx     zCURLIN
  3970:  LBDCD:  sta     zFACHO
  3971:          stx     zFACHO + 1
  3972:          ldx     #$90
  3973:          sec
  3974:          jsr     LBC49
  3975:          jsr     LBDDF
  3976:  LBDDA:  jmp     bSTROUT
  3977:  
  3978:  bFOUT:  ldy     #1
  3979:  LBDDF:  lda     #' '
  3980:          bit     zFACSGN
  3981:          bpl     LBDE7
  3982:          lda     #'-'
  3983:  LBDE7:  sta     zASCWRK,y
  3984:          sta     zFACSGN
  3985:          sty     zFBUFPT
  3986:          iny
  3987:          lda     #'0'
  3988:          ldx     zFACEXP
  3989:          bne     LBDF8
  3990:          jmp     LBF04
  3991:  LBDF8:  lda     #$00
  3992:          cpx     #$80
  3993:          beq     LBE00
  3994:          bcs     LBE09
  3995:  LBE00:  lda     #<LBDBD
  3996:          ldy     #>LBDBD
  3997:          jsr     bFMULT
  3998:          lda     #$F7
  3999:  LBE09:  sta     zTEMP_5D
  4000:  LBE0B:  lda     #<LBDB8
  4001:          ldy     #>LBDB8
  4002:          jsr     bFCOMP
  4003:          beq     LBE32
  4004:          bpl     LBE28
  4005:  LBE16:  lda     #<bN0999
  4006:          ldy     #>bN0999
  4007:          jsr     bFCOMP
  4008:          beq     LBE21
  4009:          bpl     LBE2F
  4010:  LBE21:  jsr     bMUL10
  4011:          dec     zTEMP_5D
  4012:          bne     LBE16
  4013:  LBE28:  jsr     bDIV10
  4014:          inc     zTEMP_5D
  4015:          bne     LBE0B
  4016:  LBE2F:  jsr     bFADDH
  4017:  LBE32:  jsr     bQINT
  4018:          ldx     #$01
  4019:          lda     zTEMP_5D
  4020:          clc
  4021:          adc     #$0A
  4022:          bmi     LBE47
  4023:          cmp     #$0B
  4024:          bcs     LBE48
  4025:          adc     #$FF
  4026:          tax
  4027:          lda     #$02
  4028:  LBE47:  sec
  4029:  LBE48:  sbc     #$02
  4030:          sta     zTEMP_5E
  4031:          stx     zTEMP_5D
  4032:          txa
  4033:          beq     LBE53
  4034:          bpl     LBE66
  4035:  LBE53:  ldy     zFBUFPT
  4036:          lda     #'.'
  4037:          iny
  4038:          sta     zASCWRK,y
  4039:          txa
  4040:          beq     LBE64
  4041:          lda     #'0'
  4042:          iny
  4043:          sta     zASCWRK,y
  4044:  LBE64:  sty     zFBUFPT
  4045:  LBE66:  ldy     #$00
  4046:  bFOUTIM:ldx     #$80
  4047:  LBE6A:  lda     zFACHO + 3
  4048:          clc
  4049:          adc     LBF16 + 3,y
  4050:          sta     zFACHO + 3
  4051:          lda     zFACHO + 2
  4052:          adc     LBF16 + 2,y
  4053:          sta     zFACHO + 2
  4054:          lda     zFACHO + 1
  4055:          adc     LBF16 + 1,y
  4056:          sta     zFACHO + 1
  4057:          lda     zFACHO
  4058:          adc     LBF16,y
  4059:          sta     zFACHO
  4060:          inx
  4061:          bcs     LBE8E
  4062:          bpl     LBE6A
  4063:          bmi     LBE90
  4064:  LBE8E:  bmi     LBE6A
  4065:  LBE90:  txa
  4066:          bcc     LBE97
  4067:          eor     #$FF
  4068:          adc     #10
  4069:  LBE97:  adc     #'0' - 1
  4070:          iny
  4071:          iny
  4072:          iny
  4073:          iny
  4074:          sty     zVARPNT
  4075:          ldy     zFBUFPT
  4076:          iny
  4077:          tax
  4078:          and     #$7F
  4079:          sta     zASCWRK,y
  4080:          dec     zTEMP_5D
  4081:          bne     LBEB2
  4082:          lda     #'.'
  4083:          iny
  4084:          sta     zASCWRK,y
  4085:  LBEB2:  sty     zFBUFPT
  4086:          ldy     zVARPNT
  4087:          txa
  4088:          eor     #$FF
  4089:          and     #$80
  4090:          tax
  4091:          cpy     #$24            ; @?
  4092:          beq     LBEC4
  4093:          cpy     #$3C            ; @?
  4094:          bne     LBE6A
  4095:  LBEC4:  ldy     zFBUFPT
  4096:  LBEC6:  lda     zASCWRK,y
  4097:          dey
  4098:          cmp     #'0'
  4099:          beq     LBEC6
  4100:          cmp     #'.'
  4101:          beq     LBED3
  4102:          iny
  4103:  LBED3:  lda     #'+'
  4104:          ldx     zTEMP_5E
  4105:          beq     LBF07
  4106:          bpl     LBEE3
  4107:          lda     #0
  4108:          sec
  4109:          sbc     zTEMP_5E
  4110:          tax
  4111:          lda     #'-'
  4112:  LBEE3:  sta     lSTACK + 1,y
  4113:          lda     #'E'
  4114:          sta     lSTACK,y
  4115:          txa
  4116:          ldx     #'0' - 1
  4117:          sec
  4118:  LBEEF:  inx
  4119:          sbc     #10
  4120:          bcs     LBEEF
  4121:          adc     #'9' + 1
  4122:          sta     lSTACK + 3,y
  4123:          txa
  4124:          sta     lSTACK + 2,y
  4125:          lda     #0
  4126:          sta     lSTACK + 4,y
  4127:          beq     LBF0C
  4128:  LBF04:  sta     zASCWRK,y
  4129:  LBF07:  lda     #0
  4130:          sta     lSTACK,y
  4131:  LBF0C:  lda     #<lSTACK
  4132:          ldy     #>lSTACK
  4133:          rts
  4134:  bFHALF: .byte   $80,$00,$00,$00,$00
  4135:  
  4136:  bFNULL = bFHALF + 2
  4137:  bTI    = bFNULL
  4138:  
  4139:  LBF16:  .byte   $FA,$0A,$1F,$00
  4140:  
  4141:          .byte   $00,$98,$96,$80
  4142:          .byte   $FF,$F0,$BD,$C0
  4143:          .byte   $00,$01,$86,$A0
  4144:          .byte   $FF,$FF,$D8,$F0
  4145:          .byte   $00,$00,$03,$E8
  4146:          .byte   $FF,$FF,$FF,$9C
  4147:          .byte   $00,$00,$00,$0A
  4148:          .byte   $FF,$FF,$FF,$FF
  4149:  
  4150:          .byte   $FF,$DF,$0A,$80
  4151:          .byte   $00,$03,$4B,$C0
  4152:          .byte   $FF,$FF,$73,$60
  4153:          .byte   $00,$00,$0E,$10
  4154:          .byte   $FF,$FF,$FD,$A8
  4155:          .byte   $00,$00,$00,$3C
  4156:  
  4157:          ; This seems to be something like a checksum for the BASIC-ROM.
  4158:  
  4159:          .byte   CHKSUM_BF52
  4160:  
  4161:  ;       FillUntil BASIC_START + $1F71,BASIC_FILLER
  4162:  
  4163:  .segment "BASICSQR"
  4164:  
  4165:  bSQR:   jsr     bMOVAF
  4166:          lda     #<bFHALF
  4167:          ldy     #>bFHALF
  4168:          jsr     bMOVFM
  4169:  bFPWRT: beq     bEXP
  4170:          lda     zARGEXP
  4171:          bne     LBF84
  4172:          jmp     LB8F9
  4173:  LBF84:  ldx     #<zTEMPF3
  4174:          ldy     #>zTEMPF3
  4175:          jsr     LBBD4
  4176:          lda     zARGSGN
  4177:          bpl     LBF9E
  4178:          jsr     bINT
  4179:          lda     #<zTEMPF3
  4180:          ldy     #>zTEMPF3
  4181:          jsr     bFCOMP
  4182:          bne     LBF9E
  4183:          tya
  4184:          ldy     zCHARAC
  4185:  LBF9E:  jsr     LBBFE
  4186:          tya
  4187:          pha
  4188:          jsr     bLOG
  4189:          lda     #<zTEMPF3
  4190:          ldy     #>zTEMPF3
  4191:          jsr     bFMULT
  4192:          jsr     bEXP
  4193:          pla
  4194:          lsr     a
  4195:          bcc     LBFBE
  4196:  bNEGOP: lda     zFACEXP
  4197:          beq     LBFBE
  4198:          lda     zFACSGN
  4199:          eor     #$FF
  4200:          sta     zFACSGN
  4201:  LBFBE:  rts
  4202:  
  4203:  bLOGEB2:
  4204:          .byte $81,$38,$AA,$3B,$29
  4205:  LBFC4:
  4206:          .byte $07
  4207:          .byte $71,$34,$58,$3E,$56
  4208:          .byte $74,$16,$7E,$B3,$1B
  4209:          .byte $77,$2F,$EE,$E3,$85
  4210:          .byte $7A,$1D,$84,$1C,$2A
  4211:          .byte $7C,$63,$59,$58,$0A
  4212:          .byte $7E,$75,$FD,$E7,$C6
  4213:          .byte $80,$31,$72,$18,$10
  4214:          .byte $81,$00,$00,$00,$00
  4215:  
  4216:  bEXP:   lda     #<bLOGEB2
  4217:          ldy     #>bLOGEB2
  4218:          jsr     bFMULT
  4219:          lda     zFACOV
  4220:          adc     #$50
  4221:          bcc     LBFFD
  4222:          jsr     LBC23
  4223:  
  4224:  LBFFD:
  4225:  
  4226:          .segment "BASICSQRJMP"
  4227:  
  4228:          jmp     LE000
  4229:  
  4230:          .segment "BASICSQR2"
  4231:  
  4232:  LE000:
  4233:          sta     zJMPER + 2
  4234:  
  4235:          .segment "BASICSQR3"
  4236:          jsr     LBC0F
  4237:          lda     zFACEXP
  4238:          cmp     #$88
  4239:          bcc     LE00E
  4240:  LE00B:  jsr     bMLDVEX
  4241:  LE00E:  jsr     bINT
  4242:          lda     zCHARAC
  4243:          clc
  4244:          adc     #$81
  4245:          beq     LE00B
  4246:          sec
  4247:          sbc     #1
  4248:          pha
  4249:          ldx     #5
  4250:  LE01E:  lda     zARGEXP,x
  4251:          ldy     zFACEXP,x
  4252:          sta     zFACEXP,x
  4253:          sty     zARGEXP,x
  4254:          dex
  4255:          bpl     LE01E
  4256:          lda     zJMPER + 2
  4257:          sta     zFACOV
  4258:          jsr     FSUBT
  4259:          jsr     bNEGOP
  4260:          lda     #<LBFC4
  4261:          ldy     #>LBFC4
  4262:          jsr     LE059
  4263:          lda     #0
  4264:          sta     zARISGN
  4265:          pla
  4266:          jsr     LBAB9
  4267:          rts
  4268:  bPOLYX: sta     zFBUFPT
  4269:          sty     zFBUFPT + 1
  4270:          jsr     LBBCA
  4271:          lda     #zTEMPF1
  4272:          jsr     bFMULT
  4273:          jsr     LE05D
  4274:          lda     #<zTEMPF1
  4275:          ldy     #>zTEMPF1
  4276:          jmp     bFMULT
  4277:  LE059:  sta     zFBUFPT
  4278:          sty     zFBUFPT + 1
  4279:  LE05D:  jsr     bMOV2F
  4280:          lda     (zFBUFPT),y
  4281:          sta     zSGNFLG
  4282:          ldy     zFBUFPT
  4283:          iny
  4284:          tya
  4285:          bne     LE06C
  4286:          inc     zFBUFPT + 1
  4287:  LE06C:  sta     zFBUFPT
  4288:          ldy     zFBUFPT + 1
  4289:  LE070:  jsr     bFMULT
  4290:          lda     zFBUFPT
  4291:          ldy     zFBUFPT + 1
  4292:          clc
  4293:          adc     #5
  4294:          bcc     LE07D
  4295:          iny
  4296:  LE07D:  sta     zFBUFPT
  4297:          sty     zFBUFPT + 1
  4298:          jsr     bFADD
  4299:          lda     #<zTEMPF2
  4300:          ldy     #>zTEMPF2
  4301:          dec     zSGNFLG
  4302:          bne     LE070
  4303:          rts
  4304:  bRMULC: .byte   $98,$35,$44,$7A,$00
  4305:  LE092:  .byte   $68,$28,$B1,$46,$00
  4306:  
  4307:  bRND:   jsr     bSIGN
  4308:          bmi     LE0D3
  4309:          bne     LE0BE
  4310:          jsr     kIOBASE
  4311:          stx     zINDEX
  4312:          sty     zINDEX + 1
  4313:          ldy     #4
  4314:          lda     (zINDEX),y
  4315:          sta     zFACHO
  4316:          iny
  4317:          lda     (zINDEX),y
  4318:          sta     zFACHO + 2
  4319:          ldy     #8
  4320:          lda     (zINDEX),y
  4321:          sta     zFACHO + 1
  4322:          iny
  4323:          lda     (zINDEX),y
  4324:          sta     zFACHO + 3
  4325:          jmp     LE0E3
  4326:  LE0BE:  lda     #<zRNDX
  4327:          ldy     #>zRNDX
  4328:          jsr     bMOVFM
  4329:          lda     #<bRMULC
  4330:          ldy     #>bRMULC
  4331:          jsr     bFMULT
  4332:          lda     #<LE092
  4333:          ldy     #>LE092
  4334:          jsr     bFADD
  4335:  LE0D3:  ldx     zFACHO + 3
  4336:          lda     zFACHO
  4337:          sta     zFACHO + 3
  4338:          stx     zFACHO
  4339:          ldx     zFACHO + 1
  4340:          lda     zFACHO + 2
  4341:          sta     zFACHO + 1
  4342:          stx     zFACHO + 2
  4343:  LE0E3:  lda     #0
  4344:          sta     zFACSGN
  4345:          lda     zFACEXP
  4346:          sta     zFACOV
  4347:          lda     #$80
  4348:          sta     zFACEXP
  4349:          jsr     LB8D7
  4350:          ldx     #<zRNDX
  4351:          ldy     #>zRNDX
  4352:  LE0F6:  jmp     LBBD4
  4353:  bBIOERR:cmp     #$F0
  4354:          bne     LE104
  4355:          sty     zMEMSIZ + 1
  4356:          stx     zMEMSIZ
  4357:          jmp     LA663
  4358:  LE104:  tax
  4359:          bne     LE109
  4360:          ldx     #ErrBreak
  4361:  LE109:  jmp     bERROR
  4362:  bCHOUT: jsr     kCHROUT
  4363:          bcs     bBIOERR
  4364:          rts
  4365:  bCHIN:  jsr     kCHRIN
  4366:          bcs     bBIOERR
  4367:          rts
  4368:  bCKOUT:
  4369:  .if CompileComputer >= C64_02
  4370:          jsr     LE4AD
  4371:  .else
  4372:          jsr     kCHKOUT
  4373:  .endif
  4374:          bcs     bBIOERR
  4375:          rts
  4376:  bCKIN:  jsr     kCHKIN
  4377:          bcs     bBIOERR
  4378:          rts
  4379:  bGETIN: jsr     kGETIN
  4380:          bcs     bBIOERR
  4381:          rts
  4382:  bSYS:   jsr     bFRMNUM
  4383:          jsr     bGETADR
  4384:          lda     #>(LE147 - 1)
  4385:          pha
  4386:          lda     #<(LE147 - 1)
  4387:          pha
  4388:          lda     lSPREG
  4389:          pha
  4390:          lda     lSAREG
  4391:          ldx     lSXREG
  4392:          ldy     lSYREG
  4393:          plp
  4394:          jmp     (zLINNUM)
  4395:  LE147:  php
  4396:          sta     lSAREG
  4397:          stx     lSXREG
  4398:          sty     lSYREG
  4399:          pla
  4400:          sta     lSPREG
  4401:          rts
  4402:  bSAVET: jsr     bSLPARA
  4403:          ldx     zVARTAB
  4404:          ldy     zVARTAB + 1
  4405:          lda     #zTXTTAB
  4406:          jsr     kSAVE
  4407:          bcs     bBIOERR
  4408:          rts
  4409:  bVERFYT:lda     #1
  4410:          .byte   ASM_BIT3
  4411:  
  4412:  bLOADT: lda     #0
  4413:          sta     zVERCK
  4414:          jsr     bSLPARA
  4415:          lda     zVERCK
  4416:          ldx     zTXTTAB
  4417:          ldy     zTXTTAB + 1
  4418:          jsr     kLOAD
  4419:          bcs     LE1D1
  4420:          lda     zVERCK
  4421:          beq     ChkStatus
  4422:  JDLE17E:
  4423:          ldx     #ErrVerify
  4424:          jsr     kREADST
  4425:          and     #$10
  4426:  
  4427:  .if CompileComputer >= C64_GENERAL
  4428:          bne     LE19E
  4429:  .else
  4430:  
  4431:          beq     @E187
  4432:          jmp     bERROR
  4433:  .endif
  4434:  
  4435:  @E187:  lda     zTXTPTR
  4436:  
  4437:          cmp     #>lBUF
  4438:          beq     LE194
  4439:          lda     #<bOKK
  4440:          ldy     #>bOKK
  4441:  
  4442:          jmp     bSTROUT
  4443:  LE194:  rts
  4444:  
  4445:  ChkStatus:
  4446:          jsr     kREADST
  4447:          and     #$BF
  4448:          beq     LE1A1
  4449:          ldx     #ErrLoad
  4450:  LE19E:  jmp     bERROR
  4451:  LE1A1:  lda     zTXTPTR + 1
  4452:          cmp     #>lBUF
  4453:          bne     LE1B5
  4454:  JDLE1A7:
  4455:          stx     zVARTAB
  4456:          sty     zVARTAB + 1
  4457:          lda     #<StrReady
  4458:          ldy     #>StrReady
  4459:          jsr     bSTROUT
  4460:          jmp     LA52A
  4461:  LE1B5:  jsr     bSTXPT
  4462:  
  4463:  .if CompileComputer >= C64_GENERAL
  4464:          jsr     bLINKPRG
  4465:          jmp     LA677
  4466:  .elseif CompileComputer >= VIC20_06
  4467:          JMP     LE476
  4468:  .else
  4469:          JMP     LA677
  4470:  .endif
  4471:  
  4472:  ;       FillUntil BASIC_START_2 + $01BE
  4473:  .segment "BASICOPEN"
  4474:  
  4475:  bOPENT: jsr     bOCPARA
  4476:          jsr     kOPEN
  4477:          bcs     LE1D1
  4478:          rts
  4479:  bCLOSET:jsr     bOCPARA
  4480:          lda     zFORPNT
  4481:          jsr     kCLOSE
  4482:          bcc     LE194
  4483:  LE1D1:  jmp     bBIOERR
  4484:  bSLPARA:lda     #0
  4485:          jsr     kSETNAM
  4486:          ldx     #1
  4487:          ldy     #0
  4488:  .ifdef JIFFY
  4489:          jsr     JDLF73A
  4490:  .else
  4491:          jsr     kSETLFS
  4492:  .endif
  4493:          jsr     bDEFLT
  4494:          jsr     LE257
  4495:          jsr     bDEFLT
  4496:          jsr     bCOMBYT
  4497:          ldy     #0
  4498:          stx     zFORPNT
  4499:          jsr     kSETLFS
  4500:          jsr     bDEFLT
  4501:          jsr     bCOMBYT
  4502:          txa
  4503:          tay
  4504:          ldx     zFORPNT
  4505:          jmp     kSETLFS
  4506:  bCOMBYT:jsr     bCMMERR
  4507:          jmp     LB79E
  4508:  bDEFLT: jsr     zCHRGOT
  4509:          bne     LE20D
  4510:          pla
  4511:          pla
  4512:  LE20D:  rts
  4513:  bCMMERR:jsr     bCHKCMA
  4514:  LE211:  jsr     zCHRGOT
  4515:          bne     LE20D
  4516:          jmp     bSYNERR
  4517:  bOCPARA:lda     #0
  4518:          jsr     kSETNAM
  4519:          jsr     LE211
  4520:          jsr     LB79E
  4521:          stx     zFORPNT
  4522:          txa
  4523:          ldx     #1
  4524:  JDLE229:
  4525:          ldy     #0
  4526:          jsr     kSETLFS
  4527:          jsr     bDEFLT
  4528:          jsr     bCOMBYT
  4529:          stx     zFORPNT + 1
  4530:          ldy     #0
  4531:          lda     zFORPNT
  4532:          cpx     #3
  4533:          bcc     LE23F
  4534:          dey
  4535:  LE23F:  jsr     kSETLFS
  4536:          jsr     bDEFLT
  4537:          jsr     bCOMBYT
  4538:          txa
  4539:          tay
  4540:          ldx     zFORPNT + 1
  4541:          lda     zFORPNT
  4542:          jsr     kSETLFS
  4543:          jsr     bDEFLT
  4544:          jsr     bCMMERR
  4545:  LE257:  jsr     bFRMEVL
  4546:  JDLE25A:
  4547:          jsr     bFRESTR
  4548:          ldx     zINDEX
  4549:          ldy     zINDEX + 1
  4550:          jmp     kSETNAM
  4551:  bCOS:   lda     #<bPI2
  4552:          ldy     #>bPI2
  4553:          jsr     bFADD
  4554:  bSIN:   jsr     bMOVAF
  4555:          lda     #<LE2E5
  4556:          ldy     #>LE2E5
  4557:          ldx     zARGSGN
  4558:          jsr     bFDIV
  4559:          jsr     bMOVAF
  4560:          jsr     bINT
  4561:          lda     #0
  4562:          sta     zARISGN
  4563:          jsr     FSUBT
  4564:          lda     #<LE2EA
  4565:          ldy     #>LE2EA
  4566:          jsr     bFSUB
  4567:          lda     zFACSGN
  4568:          pha
  4569:          bpl     LE29D
  4570:          jsr     bFADDH
  4571:          lda     zFACSGN
  4572:          bmi     LE2A0
  4573:          lda     zTANSGN
  4574:          eor     #$FF
  4575:          sta     zTANSGN
  4576:  LE29D:  jsr     bNEGOP
  4577:  LE2A0:  lda     #<LE2EA
  4578:          ldy     #>LE2EA
  4579:          jsr     bFADD
  4580:          pla
  4581:          bpl     LE2AD
  4582:          jsr     bNEGOP
  4583:  LE2AD:  lda     #<LE2EF
  4584:          ldy     #>LE2EF
  4585:          jmp     bPOLYX
  4586:  bTAN:   jsr     LBBCA
  4587:          lda     #$00
  4588:          sta     zTANSGN
  4589:          jsr     bSIN
  4590:          ldx     #<zTEMPF3
  4591:          ldy     #>zTEMPF3
  4592:          jsr     LE0F6
  4593:          lda     #<zTEMPF1
  4594:          ldy     #>zTEMPF1
  4595:          jsr     bMOVFM
  4596:          lda     #$00
  4597:          sta     zFACSGN
  4598:          lda     zTANSGN
  4599:          jsr     LE2DC
  4600:          lda     #<zTEMPF3
  4601:          ldy     #>zTEMPF3
  4602:          jmp     bFDIVT
  4603:  LE2DC:  pha
  4604:          jmp     LE29D
  4605:  
  4606:  bPI2:   .byte   $81,$49,$0F,$DA,$A2
  4607:  LE2E5:  .byte   $83,$49,$0F,$DA,$A2
  4608:  LE2EA:  .byte   $7F,$00,$00,$00,$00
  4609:  LE2EF:  .byte   $05
  4610:          .byte   $84,$E6,$1A,$2D,$1B
  4611:          .byte   $86,$28,$07,$FB,$F8
  4612:          .byte   $87,$99,$68,$89,$01
  4613:          .byte   $87,$23,$35,$DF,$E1
  4614:          .byte   $86,$A5,$5D,$E7,$28
  4615:          .byte   $83,$49,$0F,$DA,$A2
  4616:  
  4617:  bATN:   lda     zFACSGN
  4618:          pha
  4619:          bpl     LE316
  4620:          jsr     bNEGOP
  4621:  LE316:  lda     zFACEXP
  4622:          pha
  4623:          cmp     #$81
  4624:          bcc     LE324
  4625:          lda     #<bFPTABL
  4626:          ldy     #>bFPTABL
  4627:          jsr     bFDIVT
  4628:  LE324:  lda     #<bATNCON
  4629:          ldy     #>bATNCON
  4630:          jsr     bPOLYX
  4631:          pla
  4632:          cmp     #$81
  4633:          bcc     LE337
  4634:          lda     #<bPI2
  4635:          ldy     #>bPI2
  4636:          jsr     bFSUB
  4637:  LE337:  pla
  4638:          bpl     LE33D
  4639:          jmp     bNEGOP
  4640:  LE33D:  rts
  4641:  
  4642:  bATNCON:.byte   $0B
  4643:          .byte   $76,$B3,$83,$BD,$D3
  4644:          .byte   $79,$1E,$F4,$A6,$F5
  4645:          .byte   $7B,$83,$FC,$B0,$10
  4646:          .byte   $7C,$0C,$1F,$67,$CA
  4647:          .byte   $7C,$DE,$53,$CB,$C1
  4648:          .byte   $7D,$14,$64,$70,$4C
  4649:          .byte   $7D,$B7,$EA,$51,$7A
  4650:          .byte   $7D,$63,$30,$88,$7E
  4651:          .byte   $7E,$92,$44,$99,$3A
  4652:          .byte   $7E,$4C,$CC,$91,$C7
  4653:          .byte   $7F,$AA,$AA,$AA,$13
  4654:          .byte   $81,$00,$00,$00,$00
  4655:  
  4656:  .if CompileComputer >= C64_GENERAL
  4657:  LE37B:  jsr     kCLRCHN
  4658:          lda     #0
  4659:          sta     z13
  4660:          jsr     LA67A
  4661:          cli
  4662:  
  4663:          ; Patch: Output READY, but respect the (lIERROR) vector
  4664:  ReadyVector:
  4665:          ldx     #$80         ; errorcode = bit 7 set, that is, no error occurred
  4666:          jmp     (lIERROR)    ;  by default, this is a no-op
  4667:  
  4668:  PatchErrorOut:
  4669:          txa                  ; check the error code
  4670:          bmi     @LE391       ; bit 7 set? Then no error occurred, jump to "ready"
  4671:          jmp     ErrorOut     ; output the error
  4672:  @LE391:
  4673:          jmp     bREADY
  4674:  .endif
  4675:  
  4676:  LE394:
  4677:  .ifdef JIFFY
  4678:          jsr     JDLE4B7
  4679:  .else
  4680:          jsr     LE453
  4681:  .endif
  4682:          jsr     LE3BF
  4683:          jsr     LE422
  4684:          ldx     #-5             ; stack pointer to $01FB
  4685:          txs
  4686:  
  4687:  .if CompileComputer >= C64_GENERAL
  4688:          bne     ReadyVector
  4689:  .else
  4690:          jmp     bREADY
  4691:  .endif
  4692:  
  4693:  .segment "CHRGET"
  4694:  
  4695:  COPY_OF_CHRGET:
  4696:          inc     zTXTPTR
  4697:          bne     COPY_OF_CHRGOT
  4698:          inc     zTXTPTR + 1
  4699:  
  4700:  COPY_OF_CHRGOT:
  4701:          lda     $EA60           ; this is just a dummy address
  4702:          cmp     #'9' + 1
  4703:          bcs     COPY_OF_CHRGOT_RTS
  4704:  
  4705:  COPY_OF_CHRGOT_SPACE:
  4706:          cmp     #' '
  4707:          beq     COPY_OF_CHRGET
  4708:          sec
  4709:          sbc     #'0'
  4710:          sec
  4711:          sbc     #-'0'
  4712:  COPY_OF_CHRGOT_RTS:
  4713:          rts
  4714:  
  4715:          .byte   $80,$4F,$C7,$52,$58
  4716:  
  4717:  END_COPY_OF_CHRGET:
  4718:  
  4719:  .segment "INIT"
  4720:  
  4721:  LE3BF:  lda     #ASM_JMP
  4722:          sta     zJMPER
  4723:          sta     lUSRPOK
  4724:          lda     #<bIQERR
  4725:          ldy     #>bIQERR
  4726:          sta     lUSRADD
  4727:          sty     lUSRADD + 1
  4728:          lda     #<bGIVAYF
  4729:          ldy     #>bGIVAYF
  4730:          sta     zADRAY2
  4731:          sty     zADRAY2 + 1
  4732:          lda     #<bFACINX
  4733:          ldy     #>bFACINX
  4734:          sta     zADRAY1
  4735:          sty     zADRAY1 + 1
  4736:          ldx     #END_COPY_OF_CHRGET - COPY_OF_CHRGET - 1
  4737:  LE3E2:  lda     COPY_OF_CHRGET,x
  4738:          sta     zCHRGET,x
  4739:          dex
  4740:          bpl     LE3E2
  4741:          lda     #$03
  4742:          sta     zFOUR6
  4743:          lda     #0
  4744:          sta     zBITS
  4745:          sta     z13
  4746:          sta     zLASTPT + 1
  4747:          ldx     #1
  4748:          stx     lBUF - 3
  4749:          stx     lBUF - 4
  4750:          ldx     #zTEMPST
  4751:          stx     zTEMPPT
  4752:          sec
  4753:          jsr     kMEMBOT
  4754:          stx     zTXTTAB
  4755:          sty     zTXTTAB + 1
  4756:          sec
  4757:          jsr     kMEMTOP
  4758:          stx     zMEMSIZ
  4759:          sty     zMEMSIZ + 1
  4760:          stx     zFRETOP
  4761:          sty     zFRETOP + 1
  4762:          ldy     #0
  4763:          tya
  4764:          sta     (zTXTTAB),y
  4765:          inc     zTXTTAB
  4766:          bne     LE421
  4767:          inc     zTXTTAB + 1
  4768:  LE421:  rts
  4769:  LE422:  lda     zTXTTAB
  4770:          ldy     zTXTTAB + 1
  4771:          jsr     bREASON
  4772:          lda     #<LE473
  4773:          ldy     #>LE473
  4774:  .if CompileComputer = C64_4064
  4775:          jmp     LE441
  4776:  .else
  4777:          jsr     bSTROUT
  4778:  .endif
  4779:          lda     zMEMSIZ
  4780:          sec
  4781:          sbc     zTXTTAB
  4782:          tax
  4783:          lda     zMEMSIZ + 1
  4784:          sbc     zTXTTAB + 1
  4785:          jsr     LBDCD
  4786:          lda     #<LE460
  4787:          ldy     #>LE460
  4788:  LE441:  jsr     bSTROUT
  4789:          jmp     LA644
  4790:  
  4791:  .if CompileComputer < C64_GENERAL
  4792:          .include "../vic20/basic-texts.inc"
  4793:  .endif
  4794:  
  4795:  LE447:
  4796:  .if CompileComputer >= C64_GENERAL
  4797:    .ifdef JIFFY
  4798:          .addr   JDLF763
  4799:    .else
  4800:          .addr   PatchErrorOut ; for the C64, check if bit 7 of the error code is set.
  4801:    .endif
  4802:  .else
  4803:          .addr   ErrorOut ; for the VIC20, this is always an error.
  4804:  .endif
  4805:  
  4806:  .if CompileComputer = C64_GS
  4807:          .addr   C64GS_Init
  4808:  .else
  4809:          .addr   IMAIN
  4810:  .endif
  4811:  
  4812:  .ifdef JIFFY
  4813:          .addr   LEA64
  4814:  .else
  4815:          .addr   LA57C
  4816:  .endif
  4817:          .addr   LA71A
  4818:          .addr   LA7E4
  4819:          .addr   LAE86
  4820:  END_LE447:
  4821:  
  4822:  LE453:  ldx     #END_LE447 - LE447 - 1
  4823:  LE455:  lda     LE447,x
  4824:          sta     lIERROR,x
  4825:          dex
  4826:          bpl     LE455
  4827:          rts
  4828:  
  4829:  .if CompileComputer >= C64_GENERAL
  4830:          .byte   $00     ; basic checksum?
  4831:  
  4832:          .include "../c64/basic-texts.inc"
  4833:  .endif
  4834:  
  4835:  .if CompileComputer < C64_GENERAL
  4836:  
  4837:  LE37B:
  4838:          jsr     kCLRCHN
  4839:          lda     #0
  4840:          sta     z13
  4841:          jsr     LA67A
  4842:          cli
  4843:          jmp     bREADY
  4844:  
  4845:          .byte   CHECKSUM_E475
  4846:  
  4847:    .if CompileComputer >= VIC20_06
  4848:  LE476:
  4849:          jsr     bLINKPRG
  4850:          jmp     LA677
  4851:    .endif
  4852:  .endif
Valid XHTML 1.0 Strict
basic2.inc.html; generated on Fri Sep 18 21:44:55 2015 by ca65html
uz@cc65.org