Subversion Repositories MB01 Project

Rev

Blame | Last modification | View Log | Download | RSS feed

  Tue Jul 17 11:00:23 2018                                                                                               Page    1







          2500 A.D. 65816 Macro Assembler #26960 - Version 5.02g
          -----------------------------------------------------

                       Input  Filename : src\FE\pcode.asm
                       Output Filename : obj\FE\pcode.obj
                       Listing Has Been Relocated                               


 2598                           .LIST           on
 2599                           
 2600                                   ;.INCLUDE inc\dirp01.inc
 2601  F8FFB1                           .INCLUDE inc\dpcbm.inc
 2602                           ;; cbm emulation
 2603                           
 2604                           ;;CBMP0 .EQU    $7F00
 2605                           
 2606                           ; sezione COMMON -- questo permette di includere il file in piu' file
 2607                           
 2608                           DPCBM:  .SECTION page0, ref_only, common
 2609                           
 2610  000000                           .ABSOLUTE               ;; inizia sempre da $00
 2611  000000                           .ORG    0x00
 2612                           
 2613                           ;;MAXLF .EQU    $10             ; max. logical files
 2614          00000B           MAXLF   .EQU    11              ; max. logical files
 2615          000008           MAXVIEC .EQU    8               ; max. virtual iec device #
 2616  000000                                   .DS     16
 2617  000010                                   
 2618  000010  00               subflg          .DB     ; ($10)
 2619  000011  00                               .DB     ; ($11)
 2620  000012  00                               .DB     ; ($12)
 2621  000013  00                               .DB     ; ($13)
 2622  000014  0000             lineno          .DW     ; ($14-$15) line number used by editor
 2623  000016  00               tmppt           .DB     ; ($16)
 2624  000017  00               tcnt            .DB     ; ($17) temp. counter/index     
 2625  000018  0000                             .DW     ; ($18-$19)
 2626  00001A  0000                             .DW     ; ($1A-$1B)
 2627  00001C  0000                             .DW     ; ($1C-$1D)
 2628  00001E  0000                             .DW     ; ($1E-$1F)
 2629  000020  00                               .DB     ; ($20)
 2630                           
 2631                           ; basic/p-code virtual machine work area 
 2632  000021  0000                             .DW     ; ($21-$22)
 2633  000023  0000                             .DW     ; ($23-$24)             
 2634  000025  0000                             .DW     ; ($25-$26)
 2635  000027  0000                             .DW     ; ($27-$28)
 2636  000029  0000                             .DW     ; ($29-$2A)             
 2637  00002B  0000                             .DW     ; ($2B-$2C)
 2638  00002D  0000                             .DW     ; ($2D-$2E)
 2639  00002F  0000             arytab          .DW     ; ($2F-$30)
 2640  000031  0000             strend          .DW     ; ($31-$32)
 2641  000033  0000             freetop         .DW     ; ($33-$34)
 2642  000035  0000             freespc         .DW     ; ($35-$36)
 2643  000037  0000             memsiz          .DW     ; ($37-$38)
  Tue Jul 17 11:00:23 2018                                                                                               Page    2




 2644  000039  0000             curline         .DW     ; ($39-$3A) current line number in execution
 2645  00003B  0000             oldline         .DW     ; ($3B-$3C) previous line number in execution
 2646  00003D  0000             oldtxt          .DW     ; ($3D-$3E) saved pointer to text in basic execution
 2647  00003F  0000             datlin          .DW     ; ($3F-$40)
 2648  000041  0000             datptr          .DW     ; ($41-$42)
 2649  000043  0000             inpptr          .DW     ; ($43-$44)
 2650  000045  0000             varnam          .DW     ; ($45-$46)
 2651  000047  0000             varpnt          .DW     ; ($47-$48)
 2652  000049  0000             forpnt          .DW     ; ($49-$4A) basic
 2653  00004B  0000             opptr           .DW     ; ($4B-$4C) basic
 2654  00004D  00               opmask          .DB     ; ($4D)
 2655  00004E  0000             defpnt          .DW     ; ($4E-$4F)
 2656  000050  0000             dscpnt          .DW     ; ($50-$51)
 2657  000052  00               dsclen          .DB     ; ($52)
 2658  000053  00               prompt          .DB     ; ($53) prompt flag/CMD channel - editor/basic ($13)
 2659                           
 2660                           ; equates for p-code virtual machine
 2661          00003B           prtrap          .EQU    oldline         ; ($3B) p-code trap errors flag
 2662          00003C           pcstack         .EQU    oldline+1       ; ($3C-$3D) p-code save stack
 2663          00003E           prterr          .EQU    oldtxt+1        ; ($3E) p-code run time error number
 2664          00003F           psrline         .EQU    datlin          ; ($3F-$40) pascal source line number
 2665          000041           prseed          .EQU    datptr          ; ($41-$42) p-code random generator
 2666          000043           pbrkcnt         .EQU    inpptr          ; ($43) p-code counter for break check
 2667          000044           tmpy            .EQU    inpptr+1        ; ($44) p-code temp. for save Y
 2668          000045           inqidx          .EQU    varnam          ; ($45) p-code index to input buffer
 2669          000046           inqcnt          .EQU    varnam+1        ; ($46) p-code input buffer counter 
 2670          000047           tmpv1           .EQU    varpnt          ; ($47) p-code temp.
 2671          000048           tmpv2           .EQU    varpnt+1        ; ($48) p-code temp.
 2672          000049           tmpa            .EQU    forpnt          ; ($49) p-code temp. save A
 2673          00004A           tmpwa           .EQU    forpnt+1        ; ($4A) p-code tmp. save byte to write
 2674          00004B           tmpx            .EQU    opptr           ; ($4B) p-code tmp. save X when print
 2675          00004C           pcterr          .EQU    opptr+1         ; ($4C) p-code compiler error flag
 2676          00004D           tmpdsk          .EQU    opmask          ; ($4D) p-code default temp. disk unit
 2677          00004E           defprn          .EQU    defpnt          ; ($4E) p-code default printer #device
 2678          00004F           pcdbg           .EQU    defpnt+1        ; ($4F) p-code debug run after error
 2679          000050           pcptr           .EQU    dscpnt          ; ($50-$51) pointer to p-code (debug)
 2680          000052           autolf          .EQU    dsclen          ; ($52) p-code auto line feed flag
 2681                           
 2682  000054                   tmpwrk          .DS 4   ; ($54-$57) temp. area editor/virtual iec
 2683  000058  00               tmpb0           .DB     ; ($58)
 2684  000059  00               argbits         .DB     ; ($59)     FAC #1 guard bits
 2685  00005A  00               tmpb2           .DB     ; ($5A) tmp. byte - used by fpu
 2686  00005B  00               txtlen          .DB     ; ($5B) tmp. word length of text to insert in buffer
 2687  00005C  00               tmpb1           .DB     ; ($5C) tmp. byte used by editor and float point unit
 2688  00005D  0000             tmpval          .DW     ; ($5D-$5E) temp. word used by editor/fpu
 2689  00005F  0000             tlnptr          .DW     ; ($5F-$60) temp. line text pointer used by editor/fpu  
 2690  000061  00               facexp          .DB     ; ($61)     FAC #1 exponent
 2691  000062                   facm            .DS 4   ; ($62-$65) FAC #1 mantissa
 2692  000066  00               facsgn          .DB     ; ($66)     FAC #1 sign
 2693  000067  00               sercnt          .DB     ; ($67)     FAC #1 series evaluation
 2694  000068  00               facov           .DB     ; ($68)     FAC #1 overflow
 2695  000069  00               argexp          .DB     ; ($69)     FAC #2 exponent
 2696  00006A                   argm            .DS 4   ; ($6A-$6D) FAC #2 mantissa
 2697  00006E  00               argsgn          .DB     ; ($6E)     FAC #2 sign
 2698  00006F  00               arisgn          .DB     ; ($6F)     FAC #1 & #2 sign comparison
 2699  000070  00               facbits         .DB     ; ($70)     FAC #1 guard bits
 2700  000071  0000             fbufpt          .DW     ; ($71-$72) FAC series evaluation pointer
  Tue Jul 17 11:00:23 2018                                                                                               Page    3




 2701  000073  00               fbufpt2         .DB     ; ($73)     FAC series evaluation bank (progr. bank)
 2702                           
 2703                           ; tmp. variables (equates) used by float point unit
 2704          000054           factmp          .EQU    tmpwrk          ; ($54-$57) used by fpu mult/div
 2705          00005A           cprmsk          .EQU    tmpb2           ; ($5A) used by trigs. funcs.
 2706          00005B           faclsb          .EQU    txtlen          ; ($5B) used by float point unit
 2707          00005D           dccnt           .EQU    tmpval          ; ($5D) digit count after decimal dot
 2708          00005E           expval          .EQU    tmpval+1        ; ($5E) exponent value when convert
 2709          00005F           dotfg           .EQU    tlnptr          ; ($5F) flag decimal dot when convert
 2710          000060           expsgn          .EQU    tlnptr+1        ; ($60) flag exponent sign when conver
 2711          000067           sgnfg           .EQU    sercnt          ; ($67) flag: minus sign when convert
 2712          000071           decidx          .EQU    fbufpt          ; ($71) string index when convert
 2713          000072           s2fer           .EQU    fbufpt+1        ; ($72) string to float flag error
 2714          000073           decidx2         .EQU    fbufpt+2        ; ($73) used when convert float to str          
 2715                           
 2716  000074  0000             s2fstk          .DW     ; ($74-$75) save stack when string to float conversion  
 2717  000076                   longp           LP      ; ($76-$77-$78) temp. long pointer
 2718  000079  00               s2fptr          .DB     ; ($79) flag trap overflow err. string to float conv.
 2719                           
 2720  00007A  0000             txtp            .DW     ; ($7A-$7B) current pointer to text
 2721  00007C  00               pcdsk           .DB     ; ($7C) flag for pascal compiler
 2722                                                   ; <7> : compile in memory
 2723                           
 2724  00007D                   iecrp           LP      ; ($7D) iec: pointer to read buffer for include file
 2725  000080  00               iecalt          .DB     ; ($80) iec: flag read from include file
 2726  000081                   iectp           LP      ; ($81) iec: pointer to read main text buffer
 2727  000084  00               iecndx          .DB     ; ($84) iec: index main text buffer
 2728  000085  00               ieceof          .DB     ; ($85) iec: end of file flag main text buffer
 2729  000086                   iecwp           LP      ; ($86) iec: pointer to write buffer
 2730  000089  00               iecfg           .DB     ; ($89) iec: flag main text buffer      
 2731  00008A  0000             iecndx2         .DW     ; ($8A) iec: index buffer include file
 2732  00008C  00               iecbuf          .DB     ; ($8C) iec: byte buffer
 2733  00008D  00               svbnk           .DB     ; ($8D) save vbnk when run pascal compiler
 2734  00008E  00               ieceof2         .DB     ; ($8E) iec: flag eof include file 
 2735  00008F  00               vxflag          .DB     ; ($8F) flag valid text in x-bank
 2736  000090  00               kstat           .DB     ; ($90) CBM emulated IEC status
 2737  000091  00               errno           .DB     ; ($91) saved error number
 2738  000092  00               keyfg           .DB     ; ($92) keyboard flag: KbdFlag 
 2739  000093  00               keyctl          .DB     ; ($93) flag control key from get key
 2740  000094  00               keysh           .DB     ; ($94) flag keyboard: KbdShift
 2741  000095  00               keytg           .DB     ; ($95) flag keyboard: KbdToggle
 2742  000096  00               basic           .DB     ; ($96) flag current 'basic' mode
 2743                                                   ;       <7>: flag basic mode
 2744                                                   ;       <6>: flag pascal compiler running                       
 2745  000097  00               runf            .DB     ; ($97) flag current run mode
 2746  000098  00               ldtnd           .DB     ; ($98) number of open files
 2747  000099  00               dfltn           .DB     ; ($99) default input device
 2748  00009A  00               dflto           .DB     ; ($9A) default output device
 2749  00009B  00               skpbk           .DB     ; ($9B) skip blank flag
 2750  00009C  00               w2sf            .DB     ; ($9C) integer to string flag conversion
 2751  00009D  00               msgflg          .DB     ; ($9D) flag message
 2752  00009E  00               autof           .DB     ; ($9E) flag auto-increment line numbering
 2753  00009F  0000             wauto           .DW     ; ($9F-$A0) auto-increment for line numbering
 2754  0000A1  00               tbnk            .DB     ; ($A1) bank that hold basic/pascal text                
 2755  0000A2  00               vbnk            .DB     ; ($A2) bank that hold basic var/pascal pcode-stack             
 2756  0000A3  00               cbnk            .DB     ; ($A3) compiler bank/temp. bank for exchange
 2757  0000A4  00               jbnk            .DB     ; ($A4) bank for obj, when compiling (3 bank max.)
  Tue Jul 17 11:00:23 2018                                                                                               Page    4




 2758  0000A5  00               xbnk            .DB     ; ($A5) exchange bank for text buffer
 2759  0000A6  00               dbnk            .DB     ; ($A6) bank for ram disk (jbnk + 3)
 2760  0000A7  0000             botmem          .DW     ; ($A7-$A8) start of memory on the text bank
 2761  0000A9  0000             topmem          .DW     ; ($A9-$AA) top of memory on the text bank
 2762  0000AB  0000             txtbeg          .DW     ; ($AB-$AC) begin of text buffer
 2763  0000AD  0000             txtend          .DW     ; ($AD-$AE) end of text buffer + 1
 2764  0000AF  0000             txttop          .DW     ; ($AF-$B0) top of memory + 1 reserved to text buffer
 2765  0000B1  0000             varbeg          .DW     ; ($B1-$B2) start of basic var/pcode 
 2766  0000B3  0000             vartop          .DW     ; ($B3-$B4) top of basic var/pcode + 1
 2767  0000B5  0000             xtop            .DW     ; ($B5-$B6) top of text + 1 in x-bank           
 2768  0000B7  00               fnlen           .DB     ; ($B7) length of current filename
 2769  0000B8  00               lacur           .DB     ; ($B8) current logical file number
 2770  0000B9  00               sacur           .DB     ; ($B9) current secondary address
 2771  0000BA  00               facur           .DB     ; ($BA) current device number
 2772  0000BB  0000             fnadr           .DW     ; ($BB-$BC) pointer to current filename
 2773  0000BD  00               fnadr2          .DB     ; ($BD) - bank that hold file name
 2774  0000BE  00               objdsk          .DB     ; ($BE) compiler: option '1' specified
 2775  0000BF  00               truedsk         .DB     ; ($BF) true disk for load pascal soource file
 2776  0000C0  0000             curstk          .DW     ; ($C0-$C1) current stack when in edit mode
 2777  0000C2  00               pcodef          .DB     ; ($C2) flag p-code present for execution
 2778                           
 2779  0000C3                   latb            .DS     MAXLF           ; logical files table
 2780  0000CE                   fatb            .DS     MAXLF           ; devices numbers table
 2781  0000D9                   satb            .DS     MAXLF           ; secondary addresses table
 2782                           
 2783                           ;=============================================================
 2784                           
 2785  0000E4  0000             cmdlin          .DW     ; command line ptr for pscal program
 2786  0000E6  00               fpcflag         .DB     ; fpc flags (new style)
 2787                                                   ; <7>: new style compiler
 2788                                                   ; <6>: no save exec. file
 2789                                                   ; <5>: save obj. file
 2790                           
 2791  0000E6                           .RELATIVE
 2792                                   .ENDS
 2793                           
 2794                           ; basic work area starting at $FF00 of bank that hold text buffer
 2795                           CBMHIM: .SECTION ref_only, common
 2796  000000                           .ABSOLUTE
 2797  00FF00                           .ORG    $FF00
 2798                           ;       .ORG    0
 2799                           
 2800          0000A2           TBUFMAX         .EQU    $A2     ; size of input buffer
 2801          00AA55           VALIDSGN        .EQU    $AA55   ; valid signature
 2802                           
 2803  00FF00                   cbmwork         .DS     4       ; first 4 bytes free for insert text line
 2804  00FF04                   TXTBUF          .DS     TBUFMAX ; input buffer for text insertion
 2805  00FFA6                   NUMSTR          .DS     32      ; room for numeric string
 2806                           
 2807  00FFC6  0000             TMPPTR          .DW             ; temp. pointer
 2808  00FFC8  0000                             .DW
 2809  00FFCA  0000                             .DW
 2810  00FFCC  0000                             .DW
 2811  00FFCE  0000                             .DW
 2812  00FFD0                   GFNAME          .DS     32      ; global file name 
 2813  00FFF0                                   .DS     8
 2814  00FFF8                                   
  Tue Jul 17 11:00:23 2018                                                                                               Page    5




 2815                                   ;;.ORG  $FFF8
 2816  00FFF8  0000             TXTEND2         .DW             ; saved text end + 1
 2817  00FFFA  0000             TXTVSGN         .DW             ; valid text buffer signature
 2818  00FFFC  0000             XTOP2           .DW             ; saved text end + 1 in exchange bank
 2819  00FFFE  0000             XBVSGN          .DW             ; valid x-bank buffer signature
 2820                           
 2821  00FFFE                           .RELATIVE
 2822                                   .ENDS
 2823                           
 2824                           .COMMENT @
 2825                           cbmwork         .EQU    $FF00   ; first 4 bytes free for insert text line
 2826                           TXTBUF          .EQU    $FF04   ; input buffer for text insertion
 2827                           NUMSTR          .EQU    $FFA6   ; room for numeric string
 2828                           
 2829                           TMPPTR          .EQU    $FFC6           ; temp. pointer
 2830                           
 2831                           TXTEND2         .EQU    $FFF8           ; saved text end + 1
 2832                           TXTVSGN         .EQU    $FFFA           ; valid text buffer signature
 2833                           XTOP2           .EQU    $FFFC           ; saved text end + 1 in exchange bank
 2834                           XBVSGN          .EQU    $FFFE           ; valid x-bank buffer signature
 2835                           @
 2836                           
 2837                           ; basic/pascal work area starting at $FF00 of bank that hold variables/p-code
 2838                           CBMHIV: .SECTION common, ref_only
 2839  000000                           .ABSOLUTE
 2840  00FF00                           .ORG    $FF00
 2841                           ;       .ORG    0
 2842                           
 2843          00005A           QINSIZ          .EQU    $5A     ; input buffer max. 90 chars.
 2844          000020           NUMSIZ          .EQU    $20     ; size of numeric buffer for conversion
 2845          000018           MAX2LF          .EQU    ((MAXLF + 1) * 2) ; size of p-code logical files table
 2846          000013           MAXFNLEN        .EQU    19      ; max. length of file name '@x:yyyyyyyyyyyyyyyy'
 2847                           
 2848  00FF00                   MINBUF          .DS     QINSIZ
 2849  00FF5A                   MNUMSTR         .DS     NUMSIZ
 2850  00FF7A  0000             MTMPW0          .DW
 2851  00FF7C  0000             MTMPW1          .DW
 2852  00FF7E  00               MTMPB0          .DB
 2853  00FF7F                   MFNAME          .DS     16      ; file name buffer
 2854  00FF8F                   MTMPNAM         .DS     15      ; tmp. file name
 2855  00FF9E                   MPOW10          .DS     10      ; power of 10 table
 2856  00FFA8                   MTRUE           .DS     6
 2857  00FFAE                   MFALSE          .DS     6
 2858  00FFB4                   MSTDF0          .DS     4       ; descriptor for file #0 (consolle)
 2859  00FFB8                   MSTDF1          .DS     4       ; descriptor for file #1 (disk command chann.)
 2860  00FFBC                   MSTDF2          .DS     4       ; descriptor for file #2 (used by compiler)
 2861  00FFC0                   MMSET           .DS     16      ; set variables
 2862  00FFD0                   MFILET          .DS     MAX2LF  ; table of logical files: #0 consolle, #1 disk
 2863  00FFE8                   FAC1TMP         .DS     5       ; these 3 used by float routines
 2864  00FFED                   FAC2TMP         .DS     5
 2865  00FFF2                   FAC3TMP         .DS     5
 2866  00FFF7                   FAC4TMP         .DS     5       ; free to use
 2867  00FFFC  0000             MTPTR           .DW             ; used by new/dispose
 2868  00FFFE  0000             MTMPW2          .DW
 2869                           
 2870  00FFFE                           .RELATIVE
 2871                                   .ENDS
  Tue Jul 17 11:00:23 2018                                                                                               Page    6




 2872                           
 2873                           .COMMENT @
 2874                           MINBUF          .EQU    $FF00
 2875                           MNUMSTR         .EQU    $FF5A
 2876                           MTMPW0          .EQU    $FF7A
 2877                           MTMPW1          .EQU    $FF7C
 2878                           MTMPB0          .EQU    $FF7E
 2879                           MFNAME          .EQU    $FF7F   ; file name buffer
 2880                           MTMPNAM         .EQU    $FF8F   ; tmp. file name
 2881                           MPOW10          .EQU    $FF9E   ; power of 10 table
 2882                           MTRUE           .EQU    $FFA8
 2883                           MFALSE          .EQU    $FFAE
 2884                           MSTDF0          .EQU    $FFB4   ; descriptor for file #0 (consolle)
 2885                           MSTDF1          .EQU    $FFB8   ; descriptor for file #1 (disk command chann.)
 2886                           MSTDF2          .EQU    $FFBC   ; descriptor for file #2 (used by compiler)
 2887                           MMSET           .EQU    $FFC0   ; set variables
 2888                           MFILET          .EQU    $FFD0   ; table of logical files: #0 consolle, #1 disk
 2889                           FAC1TMP         .EQU    $FFE8   ; these 3 used by float routines
 2890                           FAC2TMP         .EQU    $FFED
 2891                           FAC3TMP         .EQU    $FFF2
 2892                           FAC4TMP         .EQU    $FFF7   ; free to use
 2893                           MTPTR           .EQU    $FFFC   ; used by new/dispose
 2894                           MTMPW2          .EQU    $FFFE
 2895                           @
 2896                           
 2897                           ; temp. file names in x-bank
 2898          00FF00           PASSRC          .EQU    $FF00
 2899          00FF20           OBJDST          .EQU    $FF20
 2900          00FF40           EXEDST          .EQU    $FF40
 2901          00FF60           OBJDEL          .EQU    $FF60
 2902                           
 2903                           
 2904                                   .CODEFE
 2905                                   .LONGA off
 2906                                   .LONGI off
 2907                           
 2908                                   .GLOBAL vpmerr, pccstart, pcexec, L0FAA
 2909                                   .EXTERN XBBD4, XBBA2, XBC5B, XBA8C, XBB12, XBA2B, XB853, XB86A
 2910                                   .EXTERN XBAFE, XBAE2, XBCF3P, XE26B, XE264, XE2B4, XE30E
 2911                                   .EXTERN XBFED, XBF7B, XBF71, XB9EA, XBC49, XBB0F, XB9BC, XBBC7
 2912                                   .EXTERN XBBA2T, XB9E0, FCON05, XB867, XBBA2L, FCON10, XBA8CK
 2913                                   .EXTERN XBBA2K, XLN10, XBC0C, XBA28
 2914                           
 2915  FE1943                           
 2916                           ;---------------------------------------------------------------------------
 2917                           ; p-cpode main system
 2918                           ;---------------------------------------------------------------------------
 2919  FE1943                                   
 2920                           ; start compiler
 2921  FE1943                   pccstart:
 2922                                   .EXTERN PCTORSIZ, PCROFS, PCCOMP, PCCDST
 2923                                   ;.EXTERN  PCTORAM, , PCCOMPSIZ
 2924                           
 2925  FE1943  8B                       phb                     ; save current data bank
 2926  FE1944  A5 A3                    lda     cbnk            ; the dest. bank
 2927  FE1946  8F 58 19 FE              sta     >?10+1          ; store dest bank for mvn istruction
 2928                                   ;sta    >?12+1          ; store dest bank for mvn istruction
  Tue Jul 17 11:00:23 2018                                                                                               Page    7




 2929  FE194A                           CPU16
 2930  FE194A  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 2931                                   .LONGA  on
 2932                                   .LONGI  on
 2933                                   .MNLIST
 2934  FE194C  A9 FD 40                 lda     #PCTORSIZ-1     ; transfer type/std functio's record's
 2935  FE194F  A2 10 41                 ldx     #PCCOMP         ; source address
 2936                                   ;ldx    #PCTORAM        ; source address
 2937                                   ;ldy    #PCROFS
 2938  FE1952  A0 00 00                 ldy     #0              ; dest address
 2939  FE1955  84 76                    sty     longp
 2940  FE1957  54 00 FE         ?10:    mvn     #^pccstart, #0
 2941                           
 2942                                   ;lda    #PCCOMPSIZ-1    ; transfer compiler p-code
 2943                                   ;ldx    #PCCOMP         ; source address
 2944                                   ;ldy    #PCCDST         ; dest. address
 2945                                   ;sty    longp
 2946                           ;?12:   mvn     #^pccstart, #0
 2947  FE195A  98                       tya
 2948  FE195B  92 76                    sta     (longp)         ; here bank = cbnk
 2949  FE195D                           CPU08
 2950  FE195D  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 2951                                   .LONGA  off
 2952                                   .LONGI  off
 2953                                   .MNLIST
 2954                                   ;ldy    #$01
 2955                                   ;lda    (longp),y       ; p-code
 2956  FE195F  EB                       xba                     ; hi addess
 2957  FE1960  AA                       tax
 2958  FE1961  E8                       inx
 2959                                   ;inx
 2960                                   ;ldy    #>PCCDST
 2961  FE1962  A0 00                    ldy     #0
 2962                           
 2963  FE1964  A9 01                    lda     #1
 2964  FE1966  85 52                    sta     autolf
 2965                                   ;inc    a
 2966  FE1968  85 4D                    sta     tmpdsk
 2967  FE196A  A9 04                    lda     #$04
 2968  FE196C  85 4E                    sta     defprn
 2969                                   ;lda    #$80
 2970                                   ;sta    pcdsk
 2971  FE196E  A9 40                    lda     #$40            ; compiler flag for runf
 2972  FE1970                           
 2973  FE1970                   pccrun:
 2974  FE1970  20 CC 19                 jsr     setmem
 2975                                   ;jsr    L0E89           ; print CR
 2976  FE1973  20 C3 1A                 jsr     pcex
 2977  FE1976  A5 8D                    lda     svbnk           ; restore v-bank
 2978  FE1978  85 A2                    sta     vbnk
 2979  FE197A  24 97                    bit     runf            ; skip if run mode
 2980  FE197C  30 13                    bmi     ?04
 2981  FE197E  24 4C                    bit     pcterr          ; no link if any compilation error
 2982  FE1980  30 0F                    bmi     ?04
 2983  FE1982  A5 7C                    lda     pcdsk
 2984  FE1984  30 04                    bmi     ?01             ; compile in memory: link
 2985  FE1986  24 E6                    bit     fpcflag
  Tue Jul 17 11:00:23 2018                                                                                               Page    8




 2986  FE1988  10 07                    bpl     ?04             ; old style compilation: no link
 2987  FE198A  20 5C 1C         ?01:    jsr     pclink
 2988  FE198D  A9 80                    lda     #$80
 2989  FE198F  85 C2                    sta     pcodef
 2990  FE1991  64 97            ?04:    stz     runf
 2991  FE1993  64 7C                    stz     pcdsk
 2992  FE1995  AB                       plb
 2993  FE1996  60                       rts
 2994                           
 2995  FE1997                   pcexec:
 2996  FE1997  8B                       phb
 2997  FE1998  A5 A2                    lda     vbnk
 2998  FE199A  48                       pha
 2999  FE199B  AB                       plb
 3000  FE199C  85 78                    sta     longp+2
 3001  FE199E  64 76                    stz     longp
 3002  FE19A0  64 77                    stz     longp+1
 3003  FE19A2                           
 3004  FE19A2                           ACC16CLC
 3005  FE19A2  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3006                                   .LONGA  on
 3007                                   .MNLIST
 3008  FE19A4  A7 76                    lda     [longp]
 3009  FE19A6  1A                       inc     a
 3010  FE19A7  1A                       inc     a
 3011  FE19A8  89 01 00                 bit     #$0001
 3012  FE19AB  F0 01                    beq     ?01
 3013  FE19AD  1A                       inc     a
 3014  FE19AE  85 E4            ?01:    sta     cmdlin
 3015  FE19B0  69 80 00                 adc     #128            ; size of command line
 3016  FE19B3                           ACC08
 3017  FE19B3  E2 20                    sep     #PMFLAG
 3018                                   .LONGA  off
 3019                                   .MNLIST
 3020  FE19B5  EB                       xba
 3021                                   ;ldy    #1
 3022                                   ;lda    [longp],y
 3023  FE19B6  AA                       tax
 3024  FE19B7  E8                       inx
 3025                                   ;inx
 3026  FE19B8  A0 00                    ldy     #0
 3027  FE19BA  A9 01                    lda     #1
 3028  FE19BC  85 52                    sta     autolf
 3029                                   ;inc    a
 3030  FE19BE  85 4D                    sta     tmpdsk
 3031  FE19C0  A9 04                    lda     #$04
 3032  FE19C2  85 4E                    sta     defprn
 3033  FE19C4  A9 80                    lda     #$80
 3034  FE19C6  85 4F                    sta     pcdbg           ; for RUN ???
 3035                                   ;sta    pcdsk
 3036                                   ;stz    pcdsk
 3037  FE19C8  A9 80                    lda     #$80
 3038  FE19CA  80 A4                    bra     pccrun
 3039                           
 3040                           ; memory setup
 3041                           ; X = start of heap, Y = start of p-code, A = run flag
 3042  FE19CC                   setmem:
  Tue Jul 17 11:00:23 2018                                                                                               Page    9




 3043  FE19CC  85 97                    sta     runf            ; run flag
 3044  FE19CE  64 33                    STZ     $33             ; $33-$34 : start of heap
 3045  FE19D0  86 34                    STX     $34     
 3046  FE19D2  64 35                    STZ     $35             ; $35-$36 : heap free list
 3047  FE19D4  64 36                    STZ     $36
 3048  FE19D6  64 39                    STZ     $39             ; $39-$3A
 3049  FE19D8  64 3A                    STZ     $3A
 3050  FE19DA  A9 02                    LDA     #$02
 3051  FE19DC  85 2B                    STA     $2B             ; $2B-$2C : start p-code pointer
 3052  FE19DE  84 2C                    STY     $2C
 3053  FE19E0  20 E7 FF                 jsr     FCLALL          ; close all files
 3054  FE19E3  A5 A2                    lda     vbnk
 3055  FE19E5  85 8D                    sta     svbnk           ; save v-bank
 3056  FE19E7  24 97                    bit     runf
 3057  FE19E9  30 04                    bmi     ?01             ; run: data bank = vbank
 3058  FE19EB  A5 A3                    lda     cbnk            ; compilation: data bank = cbnk
 3059  FE19ED  85 A2                    sta     vbnk
 3060  FE19EF  48               ?01:    pha
 3061  FE19F0  AB                       plb                     ; setup current data bank
 3062  FE19F1  A2 00                    ldx     #$00
 3063  FE19F3  9E 00 FF         ?02:    stz     !MINBUF,x       ; clear working area
 3064  FE19F6  E8                       inx
 3065  FE19F7  D0 FA                    bne     ?02
 3066  FE19F9                           ACC16
 3067  FE19F9  C2 20                    rep     #PMFLAG
 3068                                   .LONGA  on
 3069                                   .MNLIST
 3070  FE19FB  A5 AF                    lda     txttop
 3071  FE19FD  85 37                    sta     $37
 3072  FE19FF  38                       SEC
 3073  FE1A00  E9 0A 00                 SBC     #$000A
 3074  FE1A03  85 2D                    STA     $2D             ; $2D-$2E : stack pointer
 3075  FE1A05  A5 37                    LDA     $37
 3076  FE1A07  85 2F                    STA     $2F             ; $2F-$30
 3077  FE1A09  85 31                    STA     $31             ; $31-$32
 3078  FE1A0B  38                       SEC
 3079  FE1A0C  E9 04 00                 SBC     #$0004
 3080  FE1A0F  85 27                    STA     $27
 3081  FE1A11  A9 BA FF                 lda     #MSTDF1+2       ; default file #1 (disk command channel)
 3082  FE1A14  92 27                    sta     ($27)
 3083  FE1A16  A0 02                    ldy     #2
 3084  FE1A18  A9 B6 FF                 lda     #MSTDF0+2       ; default file #0 (consolle)
 3085  FE1A1B  91 27                    sta     ($27),y
 3086  FE1A1D  64 3F                    stz     psrline
 3087  FE1A1F  A9 B6 FF                 lda     #MSTDF0+2
 3088  FE1A22  8D D0 FF                 sta     !MFILET
 3089  FE1A25  A9 BA FF                 lda     #MSTDF1+2
 3090  FE1A28  8D D2 FF                 sta     !MFILET+2
 3091  FE1A2B  A6 97                    ldx     runf
 3092  FE1A2D  10 05                    bpl     ?03
 3093  FE1A2F  9C D4 FF                 stz     !MFILET+4       ; file #2 free in running mode
 3094  FE1A32  80 06                    bra     ?04
 3095  FE1A34  A9 BE FF         ?03:    lda     #MSTDF2+2       ; set file #2 for compiler
 3096  FE1A37  8D D4 FF                 sta     !MFILET+4       
 3097  FE1A3A                   ?04:    ACC08
 3098  FE1A3A  E2 20                    sep     #PMFLAG
 3099                                   .LONGA  off
  Tue Jul 17 11:00:23 2018                                                                                               Page   10




 3100                                   .MNLIST
 3101  FE1A3C  A2 30                    LDX     #TTMPSIZ-1
 3102  FE1A3E  BF 1A 3E FE      ?05:    LDA     >TTMPNAM,X
 3103  FE1A42  9D 8F FF                 STA     !MTMPNAM,X
 3104  FE1A45  CA                       DEX
 3105  FE1A46  10 F6                    BPL     ?05
 3106  FE1A48  A5 4D                    lda     tmpdsk          ; setup disk for tmp. file
 3107  FE1A4A  09 30                    ora     #'0'
 3108  FE1A4C  8D 8F FF                 sta     !MTMPNAM
 3109  FE1A4F  A9 C0                    lda     #$C0
 3110  FE1A51  85 3B                    sta     prtrap
 3111  FE1A53  64 3E                    stz     prterr
 3112  FE1A55  64 43                    stz     pbrkcnt
 3113  FE1A57  64 4C                    stz     pcterr
 3114  FE1A59  64 B7                    STZ     $B7
 3115  FE1A5B  A9 01                    LDA     #$01
 3116  FE1A5D  85 B8                    STA     $B8
 3117  FE1A5F  A9 08                    LDA     #$08
 3118  FE1A61  85 BA                    STA     $BA
 3119  FE1A63  A9 0F                    LDA     #$0F
 3120  FE1A65  85 B9                    STA     $B9
 3121  FE1A67  20 C0 FF                 JSR     FOPEN
 3122  FE1A6A  20 DE FF                 jsr     RDTIM
 3123  FE1A6D  85 41                    STA     $41
 3124  FE1A6F  64 42                    stz     $42
 3125  FE1A71  64 45                    stz     inqidx
 3126  FE1A73  64 46                    stz     inqcnt
 3127  FE1A75  64 44                    stz     tmpy
 3128  FE1A77  64 49                    stz     tmpa
 3129  FE1A79  64 47                    stz     tmpv1
 3130  FE1A7B  64 48                    stz     tmpv2
 3131  FE1A7D  64 4A                    stz     tmpwa
 3132  FE1A7F  64 4B                    stz     tmpx
 3133                                   ;stz    iecerr
 3134  FE1A81  64 90                    stz     kstat
 3135                           
 3136  FE1A83  24 97                    bit     runf
 3137  FE1A85  30 1A                    bmi     ?12             ; run mode
 3138  FE1A87                           
 3139                                   ; source name for compiler in [longp]
 3140  FE1A87                           ACC16
 3141  FE1A87  C2 20                    rep     #PMFLAG
 3142                                   .LONGA  on
 3143                                   .MNLIST
 3144  FE1A89  A9 00 FF                 lda     #PASSRC
 3145  FE1A8C  85 76                    sta     longp
 3146  FE1A8E                           ACC08
 3147  FE1A8E  E2 20                    sep     #PMFLAG
 3148                                   .LONGA  off
 3149                                   .MNLIST
 3150  FE1A90  A5 A5                    lda     xbnk
 3151  FE1A92  85 78                    sta     longp+2
 3152  FE1A94                           
 3153  FE1A94  A0 00                    ldy     #0              ; copy file name to internal buffer
 3154  FE1A96  B7 76            ?10:    lda     [longp],y
 3155  FE1A98  99 00 FF                 sta     MINBUF,y
 3156  FE1A9B  F0 03                    beq     ?11
  Tue Jul 17 11:00:23 2018                                                                                               Page   11




 3157  FE1A9D  C8                       iny
 3158  FE1A9E  D0 F6                    bne     ?10
 3159  FE1AA0  60               ?11:    rts
 3160                           
 3161  FE1AA1                   ?12:    ACC16
 3162  FE1AA1  C2 20                    rep     #PMFLAG
 3163                                   .LONGA  on
 3164                                   .MNLIST
 3165  FE1AA3  A5 7A                    lda     txtp
 3166  FE1AA5  85 76                    sta     longp
 3167  FE1AA7                           ACC08
 3168  FE1AA7  E2 20                    sep     #PMFLAG
 3169                                   .LONGA  off
 3170                                   .MNLIST
 3171  FE1AA9  A5 A1                    lda     tbnk
 3172  FE1AAB  85 78                    sta     longp+2
 3173  FE1AAD  A0 7F                    ldy     #127
 3174  FE1AAF  A9 20                    lda     #' '
 3175  FE1AB1  91 E4            ?12l:   sta     (cmdlin),y
 3176  FE1AB3  88                       dey
 3177  FE1AB4  10 FB                    bpl     ?12l
 3178  FE1AB6  C8                       iny
 3179  FE1AB7  B7 76            ?13l:   lda     [longp],y
 3180  FE1AB9  F0 07                    beq     ?13
 3181  FE1ABB  91 E4                    sta     (cmdlin),y
 3182  FE1ABD  C8                       iny
 3183  FE1ABE  C0 80                    cpy     #128
 3184  FE1AC0  90 F5                    bcc     ?13l
 3185  FE1AC2  60               ?13:    rts
 3186                           
 3187                           ; execute p-code
 3188  FE1AC3                   pcex:
 3189  FE1AC3                           INDEX16
 3190  FE1AC3  C2 10                    rep     #PXFLAG
 3191                                   .LONGI  on
 3192                                   .MNLIST
 3193  FE1AC5  BA                       tsx
 3194  FE1AC6  86 3C                    stx     pcstack   
 3195  FE1AC8                           INDEX08
 3196  FE1AC8  E2 10                    sep     #PXFLAG
 3197                                   .LONGI  off
 3198                                   .MNLIST
 3199  FE1ACA  C6 43            ?04:    dec     pbrkcnt
 3200  FE1ACC  D0 03                    bne     ?06
 3201  FE1ACE  20 B8 30                 jsr     L0E91           ; check CTRL BREAK
 3202  FE1AD1                   ?06:    ACC16
 3203  FE1AD1  C2 20                    rep     #PMFLAG
 3204                                   .LONGA  on
 3205                                   .MNLIST
 3206  FE1AD3  F4 C9 1A                 pea     #?04-1          ; return address
 3207  FE1AD6  B2 2B                    lda     ($2B)
 3208  FE1AD8  AA                       tax
 3209  FE1AD9  A5 2B                    lda     $2B
 3210  FE1ADB  85 50                    sta     pcptr           ; save p-code pointer
 3211  FE1ADD  1A                       inc     a
 3212  FE1ADE  85 2B                    sta     $2B
 3213  FE1AE0                           ACC08
  Tue Jul 17 11:00:23 2018                                                                                               Page   12




 3214  FE1AE0  E2 20                    sep     #PMFLAG
 3215                                   .LONGA  off
 3216                                   .MNLIST
 3217  FE1AE2  A0 00                    LDY     #$00
 3218  FE1AE4  8A                       txa
 3219  FE1AE5  30 2B                    BMI     ?14             ; >= 80 
 3220  FE1AE7  0A               ?08:    ASL     a
 3221  FE1AE8  AA                       TAX
 3222  FE1AE9  10 24                    BPL     ?12             ; 00..3F -> 0 byte
 3223  FE1AEB  C9 A0                    CMP     #$A0
 3224  FE1AED  90 12                    BCC     ?10             ; 40..4F -> 2 bytes
 3225  FE1AEF  29 02                    AND     #$02            ; 50..7F
 3226  FE1AF1  F0 0E                    BEQ     ?10             ; EVEN -> 50,52,54,56... -> 2 bytes
 3227  FE1AF3  B2 2B                    LDA     ($2B)           ; ODD  -> 51,53,55,57... -> 1 byte (byte high = 00)
 3228  FE1AF5  85 23                    STA     $23
 3229  FE1AF7  E6 2B                    INC     $2B
 3230  FE1AF9  D0 02                    BNE     ?09 
 3231  FE1AFB  E6 2C                    INC     $2C
 3232  FE1AFD  84 24            ?09:    STY     $24
 3233  FE1AFF  80 0E                    bra     ?12 
 3234  FE1B01                   ?10:    ACC16   
 3235  FE1B01  C2 20                    rep     #PMFLAG
 3236                                   .LONGA  on
 3237                                   .MNLIST
 3238  FE1B03  B2 2B                    LDA     ($2B)
 3239  FE1B05  85 23                    STA     $23
 3240  FE1B07  A5 2B                    lda     $2B
 3241  FE1B09  1A                       inc     a
 3242  FE1B0A  1A                       inc     a
 3243  FE1B0B  85 2B                    sta     $2B
 3244  FE1B0D                           ACC08
 3245  FE1B0D  E2 20                    sep     #PMFLAG
 3246                                   .LONGA  off
 3247                                   .MNLIST
 3248  FE1B0F  7C 86 3C         ?12:    jmp     (PCODET1,x)
 3249                           
 3250                           ?14:    ; code negative
 3251                                   ; P80-8D -> 0 byte, 8E -> 1 byte, 8F -> 2 bytes
 3252  FE1B12  29 0F                    AND     #$0F
 3253  FE1B14  C9 0E                    CMP     #$0E
 3254  FE1B16  85 23                    STA     $23
 3255  FE1B18  84 24                    STY     $24
 3256  FE1B1A  30 18                    BMI     ?16
 3257  FE1B1C  08                       PHP
 3258  FE1B1D  B2 2B                    LDA     ($2B)
 3259  FE1B1F  85 23                    STA     $23
 3260  FE1B21  E6 2B                    INC     $2B
 3261  FE1B23  D0 02                    BNE     ?15
 3262  FE1B25  E6 2C                    INC     $2C
 3263  FE1B27  28               ?15:    PLP
 3264  FE1B28  F0 0A                    BEQ     ?16
 3265  FE1B2A  B2 2B                    LDA     ($2B)
 3266  FE1B2C  85 24                    STA     $24
 3267  FE1B2E  E6 2B                    INC     $2B
 3268  FE1B30  D0 02                    BNE     ?16
 3269  FE1B32  E6 2C                    INC     $2C
 3270  FE1B34  8A               ?16:    TXA
  Tue Jul 17 11:00:23 2018                                                                                               Page   13




 3271  FE1B35  4A                       LSR     a
 3272  FE1B36  4A                       LSR     a
 3273  FE1B37  4A                       LSR     a
 3274  FE1B38  29 0E                    AND     #$0E
 3275  FE1B3A  AA                       TAX
 3276  FE1B3B  BF 86 3D FE              LDA     >PCODET2,X
 3277  FE1B3F  85 27                    STA     $27
 3278  FE1B41  BF 87 3D FE              LDA     >PCODET2+1,X
 3279  FE1B45  85 28                    STA     $28
 3280  FE1B47  A5 23                    LDA     $23
 3281  FE1B49  A6 24                    LDX     $24
 3282  FE1B4B  6C 27 7F                 JMP     (CBMP0+$27)
 3283  FE1B4E                           
 3284                           ; error: bad p-code
 3285  FE1B4E                   vpme07:
 3286  FE1B4E  A2 07                    LDX     #$07
 3287                           
 3288                           ; runtime error handler
 3289                           vpmerr: ; $0C78 - $0F0D
 3290  FE1B50  48                       pha                     ; dummy stack
 3291  FE1B51  48                       pha
 3292  FE1B52  86 3E                    stx     $3E             ; error code
 3293  FE1B54  20 CC FF                 JSR     FCLRCH
 3294  FE1B57  64 3B                    STZ     $3B
 3295  FE1B59  A5 29                    lda     $29             ; save current file desc
 3296  FE1B5B  85 71                    sta     fbufpt
 3297  FE1B5D  A5 2A                    lda     $2A
 3298  FE1B5F  85 72                    sta     fbufpt+1
 3299  FE1B61  20 5C 31                 JSR     L0F9B           ; reset file #1 and print CR
 3300  FE1B64  A6 3E                    ldx     $3E
 3301  FE1B66  20 39 1C                 jsr     vpmsrch         ; search error string
 3302                                   ; now format and print error message
 3303  FE1B69  A5 78                    lda     longp+2         ; param 3: error string pointer
 3304  FE1B6B  48                       pha
 3305  FE1B6C  D4 76                    pei     (longp)
 3306  FE1B6E  A5 3E                    lda     $3E             ; param 2: error code
 3307  FE1B70  48                       pha
 3308  FE1B71  A9 FE                    lda     #^STRFMT2       ; param 1: format string
 3309  FE1B73  48                       pha
 3310  FE1B74  F4 82 3E                 pea     #STRFMT2
 3311  FE1B77  A9 08                    lda     #$08            ; param 0: number of total bytes
 3312  FE1B79  48                       pha
 3313  FE1B7A                           BPRINTF
 3314  FE1B7A  02 11                    cop     $11
 3315                                   .MNLIST
 3316  FE1B7C                   vpmerr2:
 3317                           ?08:    ;;JSR   lprint          ; long print error string
 3318  FE1B7C  24 97                    bit     runf
 3319  FE1B7E  10 0D                    bpl     ?12             ; running: print always line number
 3320                                   ; now format line number
 3321  FE1B80  D4 3F                    pei     ($3F)           ; param 2: line number
 3322  FE1B82  A9 FE                    lda     #^STRFMT3
 3323  FE1B84  48                       pha                     ; param 1: format string
 3324  FE1B85  F4 9A 3E                 pea     #STRFMT3
 3325  FE1B88  A9 06                    lda     #$06            ; param 0: number of total bytes
 3326  FE1B8A  48                       pha
 3327  FE1B8B                           BPRINTF
  Tue Jul 17 11:00:23 2018                                                                                               Page   14




 3328  FE1B8B  02 11                    cop     $11
 3329                                   .MNLIST
 3330                           
 3331                           ?10:    ;;LDA   #<TLINS         ; ',line '
 3332                                   ;;STA   longp
 3333                                   ;;LDA   #>TLINS
 3334                                   ;;STA   longp+1
 3335                                   ;;JSR   lprint
 3336                           ?12:    ;;LDA   #<MDFIL+6               ; M2D92 - m35D8
 3337                                   ;;STA   $29
 3338                                   ;;LDA   #>MDFIL+6
 3339                                   ;;STA   $2A
 3340                                   ;;bit   runf
 3341                                   ;;bpl   ?14             ; running: print always line number      
 3342                           ?13:    ;;LDA   $3F             ; line number
 3343                                   ;;STA   $21
 3344                                   ;;LDA   $40
 3345                                   ;;STA   $22
 3346                                   ;;LDA   #$00
 3347                                   ;;STA   $23
 3348                                   ;;JSR   L0D1C
 3349  FE1B8D  20 69 31         ?14:    JSR     L0E89           ; print CR
 3350                                   ; report debug info after error - always for compiler
 3351  FE1B90  24 97                    bit     runf
 3352  FE1B92  10 04                    bpl     ?15
 3353  FE1B94  24 4F                    bit     pcdbg           ; when run: only if debug enabled
 3354  FE1B96  10 1E                    bpl     ?16
 3355  FE1B98  D4 71            ?15:    pei     (fbufpt)        ; param 8: saved file ptr
 3356  FE1B9A  D4 33                    pei     ($33)           ; param 7: heap ptr
 3357  FE1B9C  D4 2D                    pei     ($2D)           ; param 6: stack ptr
 3358  FE1B9E  B2 50                    lda     (pcptr)
 3359  FE1BA0  48                       pha                     ; param 5: op-code
 3360  FE1BA1  D4 2B                    pei     ($2B)           ; param 4: current p-code ptr
 3361  FE1BA3  D4 50                    pei     (pcptr)         ; param 3: p-code ptr at error
 3362  FE1BA5  A5 A2                    lda     vbnk
 3363  FE1BA7  48                       pha                     ; param 2: data bank
 3364  FE1BA8  A9 FE                    lda     #^STRFMT4
 3365  FE1BAA  48                       pha                     ; param 1: format string
 3366  FE1BAB  F4 A5 3E                 pea     #STRFMT4
 3367  FE1BAE  A9 10                    lda     #$10            ; param 0: number of total bytes
 3368  FE1BB0  48                       pha
 3369  FE1BB1                           BPRINTF
 3370  FE1BB1  02 11                    cop     $11
 3371                                   .MNLIST
 3372  FE1BB3  20 69 31                 JSR     L0E89           ; print CR
 3373  FE1BB6  A9 80            ?16:    lda     #$80            ; report error for compiler
 3374  FE1BB8  85 4C                    sta     pcterr
 3375                           
 3376                           ; terminate pascal virtual machine
 3377                           vpmhlt: ; $0914 - $0AC4
 3378                                   ; if pcterr = $80 this mean compiler error(s)
 3379  FE1BBA  24 97                    bit     runf
 3380  FE1BBC  30 35                    bmi     ?02             ; execution
 3381  FE1BBE  20 CF 30                 jsr     L0942           ; close all files
 3382  FE1BC1  24 4C                    bit     pcterr          ; check compiler error
 3383  FE1BC3  10 2A                    bpl     ?01             ; no error
 3384                                   ; delete file .OBJ
  Tue Jul 17 11:00:23 2018                                                                                               Page   15




 3385  FE1BC5  A9 01                    lda     #$01
 3386  FE1BC7  20 C3 FF                 jsr     FCLOSE          ; close command channel
 3387  FE1BCA                           ACC16
 3388  FE1BCA  C2 20                    rep     #PMFLAG
 3389                                   .LONGA  on
 3390                                   .MNLIST
 3391  FE1BCC  A9 A7 FF                 lda     #NUMSTR+1
 3392  FE1BCF  85 BB                    sta     $BB             ; file name to delete
 3393  FE1BD1                           ACC08
 3394  FE1BD1  E2 20                    sep     #PMFLAG
 3395                                   .LONGA  off
 3396                                   .MNLIST
 3397  FE1BD3  A5 A1                    lda     tbnk            ; text bank hold file name
 3398  FE1BD5  85 BD                    sta     $BD
 3399  FE1BD7  8B                       phb
 3400  FE1BD8  48                       pha
 3401  FE1BD9  AB                       plb
 3402  FE1BDA  AD A6 FF                 lda     !NUMSTR         ; lenght
 3403  FE1BDD  85 B7                    sta     $B7
 3404  FE1BDF  AB                       plb
 3405  FE1BE0  A9 01                    lda     #$01
 3406  FE1BE2  85 B8                    sta     $B8
 3407  FE1BE4  A9 0F                    lda     #$0F
 3408  FE1BE6  85 B9                    sta     $B9
 3409  FE1BE8  A9 08                    lda     #$08
 3410  FE1BEA  85 BA                    sta     $BA
 3411  FE1BEC  20 C0 FF                 jsr     FOPEN           ; delete obj file
 3412  FE1BEF  A9 01            ?01:    lda     #1              ; close file #1
 3413  FE1BF1  80 3B                    bra     ?04
 3414  FE1BF3  20 0E 31         ?02:    jsr     R0B28           ; close all files       
 3415  FE1BF6  A9 08                    LDA     #$08            ; delete any tmp file
 3416  FE1BF8  85 BA                    STA     $BA             ; default disk
 3417  FE1BFA  85 B8                    STA     $B8
 3418  FE1BFC  A9 0F                    LDA     #$0F
 3419  FE1BFE  85 B9                    STA     $B9
 3420  FE1C00                           INDEX16
 3421  FE1C00  C2 10                    rep     #PXFLAG
 3422                                   .LONGI  on
 3423                                   .MNLIST
 3424  FE1C02  A2 0A 3E                 ldx     #DTMPNAM        ; copy temp. name
 3425  FE1C05  86 76                    stx     longp   
 3426  FE1C07  A2 D0 FF                 ldx     #GFNAME         ; buffer temp. name
 3427  FE1C0A  86 BB                    stx     $BB
 3428  FE1C0C                           INDEX08
 3429  FE1C0C  E2 10                    sep     #PXFLAG
 3430                                   .LONGI  off
 3431                                   .MNLIST
 3432  FE1C0E  A9 FE                    lda     #^vpmhlt
 3433  FE1C10  85 78                    sta     longp+2
 3434  FE1C12  A5 A1                    lda     tbnk
 3435  FE1C14  85 BD                    sta     $BD
 3436  FE1C16  A0 FF                    ldy     #$FF
 3437  FE1C18  C8               ?03:    iny
 3438  FE1C19  B7 76                    lda     [longp],y
 3439  FE1C1B  97 BB                    sta     [$BB],y
 3440  FE1C1D  D0 F9                    bne     ?03
 3441  FE1C1F  84 B7                    sty     $B7
  Tue Jul 17 11:00:23 2018                                                                                               Page   16




 3442  FE1C21  A0 01                    ldy     #$01
 3443  FE1C23  A5 4D                    lda     tmpdsk
 3444  FE1C25  09 30                    ora     #'0'
 3445  FE1C27  97 BB                    sta     [$BB],y         ; 'SX:...'
 3446  FE1C29  20 C0 FF                 JSR     FOPEN
 3447  FE1C2C  A5 B8                    LDA     $B8
 3448  FE1C2E  20 C3 FF         ?04:    JSR     FCLOSE
 3449  FE1C31                           INDEX16
 3450  FE1C31  C2 10                    rep     #PXFLAG
 3451                                   .LONGI  on
 3452                                   .MNLIST
 3453  FE1C33  A6 3C                    LDX     pcstack   
 3454  FE1C35  9A                       TXS
 3455  FE1C36                           INDEX08
 3456  FE1C36  E2 10                    sep     #PXFLAG
 3457                                   .LONGI  off
 3458                                   .MNLIST
 3459  FE1C38  60                       RTS 
 3460                           
 3461                           ; search error string - X = error code
 3462                           ; return pointer in longp
 3463  FE1C39                   vpmsrch:
 3464  FE1C39  A9 14                    LDA     #<TERRS         ; error's string table 
 3465  FE1C3B  85 76                    STA     longp
 3466  FE1C3D  A9 3F                    LDA     #>TERRS
 3467  FE1C3F  85 77                    STA     longp+1
 3468  FE1C41  A9 FE                    lda     #^vpmerr
 3469  FE1C43  85 78                    sta     longp+2
 3470  FE1C45  E0 1B                    cpx     #MAXVPME        ; max error number
 3471  FE1C47  90 02                    bcc     ?02
 3472  FE1C49  A2 1B                    ldx     #MAXVPME        
 3473  FE1C4B  CA               ?02:    DEX
 3474  FE1C4C  F0 0D                    BEQ     ?08
 3475  FE1C4E  A7 76            ?04:    LDA     [longp]
 3476  FE1C50  E6 76                    INC     longp
 3477  FE1C52  D0 02                    BNE     ?06
 3478  FE1C54  E6 77                    INC     longp+1
 3479  FE1C56  A8               ?06:    tay
 3480  FE1C57  D0 F5                    BNE     ?04
 3481  FE1C59  F0 F0                    BEQ     ?02
 3482  FE1C5B  60               ?08:    RTS
 3483                           
 3484                           ;---------------------------------------------------------------------------
 3485                           ; p-code linker
 3486                           ;---------------------------------------------------------------------------
 3487                           
 3488  FE1C5C                   pclink:
 3489                                   .GLOBAL pclink
 3490                           
 3491  FE1C5C  A5 A2                    lda     vbnk
 3492  FE1C5E  48                       pha
 3493  FE1C5F  AB                       plb
 3494  FE1C60  64 5F                    stz     $5F
 3495  FE1C62  64 60                    stz     $60
 3496  FE1C64  64 3E                    stz     prterr
 3497  FE1C66  64 76                    stz     longp
 3498  FE1C68  64 77                    stz     longp+1
  Tue Jul 17 11:00:23 2018                                                                                               Page   17




 3499  FE1C6A  A5 A4                    lda     jbnk
 3500  FE1C6C  85 78                    sta     longp+2         ; pointer to obj. code
 3501  FE1C6E  64 35                    stz     $35
 3502  FE1C70  64 36                    stz     $36
 3503  FE1C72  64 23                    stz     $23
 3504  FE1C74  64 24                    stz     $24
 3505  FE1C76  A9 02                    lda     #$02            ; put 'halt'
 3506  FE1C78  8D 02 00                 sta     !$0002
 3507  FE1C7B  A6 24            ?02:    ldx     $24             ; loop scan obj. code
 3508  FE1C7D  E8                       inx
 3509  FE1C7E  E4 38                    cpx     $38
 3510  FE1C80  F0 4A                    beq     ?08
 3511  FE1C82  A0 00                    ldy     #0      
 3512  FE1C84                   ?03:    ACC16CLC
 3513  FE1C84  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3514                                   .LONGA  on
 3515                                   .MNLIST
 3516  FE1C86  98                       tya
 3517  FE1C87  65 76                    adc     longp
 3518  FE1C89  C5 86                    cmp     iecwp
 3519  FE1C8B                           ACC08
 3520  FE1C8B  E2 20                    sep     #PMFLAG
 3521                                   .LONGA  off
 3522                                   .MNLIST
 3523  FE1C8D  A5 78                    lda     longp+2
 3524  FE1C8F  E5 88                    sbc     iecwp+2
 3525  FE1C91  B0 1E                    bcs     ?05             ; end of obj. code
 3526  FE1C93  B7 76                    lda     [longp],y
 3527  FE1C95  91 23                    sta     ($23),y
 3528  FE1C97  C8                       iny
 3529  FE1C98  D0 EA                    bne     ?03
 3530  FE1C9A  E6 77                    inc     longp+1         ; next block
 3531  FE1C9C  D0 02                    bne     ?04
 3532  FE1C9E  E6 78                    inc     longp+2 
 3533  FE1CA0  A0 FC            ?04:    ldy     #$FC
 3534  FE1CA2  B1 23                    lda     ($23),y
 3535  FE1CA4  F0 2B                    beq     ?10             ; if = 0
 3536  FE1CA6  C9 01                    cmp     #$01
 3537  FE1CA8  F0 36                    beq     ?12             ; if = 1
 3538  FE1CAA  C9 02                    cmp     #$02
 3539  FE1CAC  D0 CD                    bne     ?02
 3540  FE1CAE  4C 1D 1D                 jmp     ?20             ; if = 2
 3541                           
 3542  FE1CB1                   ?05:    ACC16
 3543  FE1CB1  C2 20                    rep     #PMFLAG
 3544                                   .LONGA  on
 3545                                   .MNLIST
 3546  FE1CB3  A5 35                    lda     $35
 3547  FE1CB5  F0 12                    beq     ?07
 3548  FE1CB7  B2 35                    lda     ($35)
 3549  FE1CB9  85 27                    sta     $27
 3550  FE1CBB  A9 FF FF                 lda     #$FFFF
 3551  FE1CBE  92 35                    sta     ($35)
 3552  FE1CC0  A5 27                    lda     $27
 3553  FE1CC2  85 35                    sta     $35
 3554  FE1CC4                           ACC08
 3555  FE1CC4  E2 20                    sep     #PMFLAG
  Tue Jul 17 11:00:23 2018                                                                                               Page   18




 3556                                   .LONGA  off
 3557                                   .MNLIST
 3558  FE1CC6  EB                       xba
 3559  FE1CC7  D0 E8                    bne     ?05
 3560  FE1CC9                   ?07:    ACC08
 3561  FE1CC9  E2 20                    sep     #PMFLAG
 3562                                   .LONGA  off
 3563                                   .MNLIST
 3564  FE1CCB  60                       rts
 3565                           
 3566  FE1CCC  A9 80            ?08:    lda     #$80
 3567  FE1CCE  85 4C                    sta     pcterr
 3568  FE1CD0  60                       rts
 3569                           
 3570  FE1CD1  A0 FE            ?10:    ldy     #$FE
 3571  FE1CD3  B1 23                    lda     ($23),y
 3572  FE1CD5  18                       clc
 3573  FE1CD6  65 23                    adc     $23
 3574  FE1CD8  85 23                    sta     $23
 3575  FE1CDA  90 9F                    bcc     ?02
 3576  FE1CDC  E6 24                    inc     $24
 3577  FE1CDE  D0 9B                    bne     ?02
 3578                           
 3579  FE1CE0  A0 FE            ?12:    ldy     #$FE
 3580  FE1CE2  B1 23                    lda     ($23),y
 3581  FE1CE4  AA                       tax
 3582  FE1CE5  A0 00                    ldy     #$00
 3583  FE1CE7                   ?14:    ACC16CLC
 3584  FE1CE7  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3585                                   .LONGA  on
 3586                                   .MNLIST
 3587  FE1CE9  B1 23                    lda     ($23),y
 3588  FE1CEB  65 5F                    adc     $5F
 3589  FE1CED  85 21                    sta     $21
 3590  FE1CEF  C8                       iny
 3591  FE1CF0  C8                       iny
 3592  FE1CF1  84 27                    sty     $27
 3593  FE1CF3                           ACC08
 3594  FE1CF3  E2 20                    sep     #PMFLAG
 3595                                   .LONGA  off
 3596                                   .MNLIST
 3597  FE1CF5  A0 01                    ldy     #$01
 3598  FE1CF7  B1 21                    lda     ($21),y
 3599  FE1CF9  C9 FF                    cmp     #$FF
 3600  FE1CFB  F0 12                    beq     ?16
 3601  FE1CFD                           ACC16CLC
 3602  FE1CFD  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3603                                   .LONGA  on
 3604                                   .MNLIST
 3605  FE1CFF  B2 21                    lda     ($21)
 3606  FE1D01  65 5F                    adc     $5F
 3607  FE1D03  92 21                    sta     ($21)
 3608  FE1D05                           ACC08
 3609  FE1D05  E2 20                    sep     #PMFLAG
 3610                                   .LONGA  off
 3611                                   .MNLIST
 3612  FE1D07  A4 27            ?15:    ldy     $27
  Tue Jul 17 11:00:23 2018                                                                                               Page   19




 3613  FE1D09  CA                       dex
 3614  FE1D0A  D0 DB                    bne     ?14
 3615  FE1D0C  4C 7B 1C                 jmp     ?02
 3616  FE1D0F                   ?16:    ACC16
 3617  FE1D0F  C2 20                    rep     #PMFLAG
 3618                                   .LONGA  on
 3619                                   .MNLIST
 3620  FE1D11  A5 35                    lda     $35
 3621  FE1D13  92 21                    sta     ($21)
 3622  FE1D15  A5 21                    lda     $21
 3623  FE1D17  85 35                    sta     $35
 3624  FE1D19                           ACC08
 3625  FE1D19  E2 20                    sep     #PMFLAG
 3626                                   .LONGA  off
 3627                                   .MNLIST
 3628  FE1D1B  80 EA                    bra     ?15
 3629  FE1D1D                           
 3630  FE1D1D  A0 FE            ?20:    ldy     #$FE
 3631  FE1D1F  B1 23                    lda     ($23),y
 3632  FE1D21  4A                       lsr     a
 3633  FE1D22  AA                       tax
 3634  FE1D23  A0 00                    ldy     #0
 3635  FE1D25                   ?22:    ACC16CLC
 3636  FE1D25  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3637                                   .LONGA  on
 3638                                   .MNLIST
 3639  FE1D27  B1 23                    lda     ($23),y
 3640  FE1D29  65 5F                    adc     $5F
 3641  FE1D2B  85 21                    sta     $21
 3642  FE1D2D                           ACC08
 3643  FE1D2D  E2 20                    sep     #PMFLAG
 3644                                   .LONGA  off
 3645                                   .MNLIST
 3646  FE1D2F  C8                       iny
 3647  FE1D30  C8                       iny
 3648  FE1D31  20 52 1D                 jsr     ?30
 3649  FE1D34  B1 23                    lda     ($23),y
 3650  FE1D36  48                       pha
 3651  FE1D37  C8                       iny
 3652  FE1D38  B1 23                    lda     ($23),y
 3653  FE1D3A  C8                       iny
 3654  FE1D3B  84 27                    sty     $27
 3655  FE1D3D  A0 01                    ldy     #$01
 3656  FE1D3F  90 03                    bcc     ?24
 3657  FE1D41  18                       clc
 3658  FE1D42  65 60                    adc     $60
 3659  FE1D44  91 21            ?24:    sta     ($21),y
 3660  FE1D46  88                       dey
 3661  FE1D47  68                       pla
 3662  FE1D48  91 21                    sta     ($21),y
 3663  FE1D4A  A4 27                    ldy     $27
 3664  FE1D4C  CA                       dex
 3665  FE1D4D  D0 D6                    bne     ?22
 3666  FE1D4F  4C 7B 1C                 jmp     ?02
 3667                           
 3668  FE1D52                   ?30:    ACC16
 3669  FE1D52  C2 20                    rep     #PMFLAG
  Tue Jul 17 11:00:23 2018                                                                                               Page   20




 3670                                   .LONGA  on
 3671                                   .MNLIST
 3672  FE1D54  A5 35                    lda     $35
 3673  FE1D56  8D FE FF                 sta     !$FFFE
 3674  FE1D59  A9 FE FF                 lda     #$FFFE
 3675  FE1D5C  85 25                    sta     $25
 3676  FE1D5E  A5 25            ?32:    lda     $25
 3677  FE1D60  85 27                    sta     $27
 3678  FE1D62  B2 27                    lda     ($27)
 3679  FE1D64  85 25                    sta     $25
 3680  FE1D66  18                       clc
 3681  FE1D67  F0 0B                    beq     ?34
 3682  FE1D69  A5 25                    lda     $25
 3683  FE1D6B  C5 21                    cmp     $21
 3684  FE1D6D  D0 EF                    bne     ?32
 3685  FE1D6F  B2 25                    lda     ($25)
 3686  FE1D71  92 27                    sta     ($27)
 3687  FE1D73  38                       sec
 3688  FE1D74  AD FE FF         ?34:    lda     !$FFFE
 3689  FE1D77  85 35                    sta     $35
 3690  FE1D79                           ACC08
 3691  FE1D79  E2 20                    sep     #PMFLAG
 3692                                   .LONGA  off
 3693                                   .MNLIST
 3694  FE1D7B  60                       rts
 3695  FE1D7C                           
 3696                           ;---------------------------------------------------------------------------
 3697                           ; p-code execution
 3698                           ;---------------------------------------------------------------------------
 3699                           
 3700                           PC00:   ; $1119 - $13A4
 3701  FE1D7C  B1 2D                    LDA ($2D),Y
 3702  FE1D7E  85 27                    STA $27
 3703  FE1D80  C8                       INY 
 3704  FE1D81  B1 2D                    LDA ($2D),Y
 3705  FE1D83  85 28                    STA $28
 3706  FE1D85  A9 00                    LDA #$00
 3707  FE1D87  91 2D                    STA ($2D),Y
 3708  FE1D89  88                       DEY 
 3709  FE1D8A  B1 27                    LDA ($27),Y
 3710  FE1D8C  91 2D                    STA ($2D),Y
 3711  FE1D8E  60                       rts
 3712                           
 3713                           PC3B:   ; $0970 - $0B81
 3714                                   ; 'rewrite' on disk
 3715  FE1D8F  20 EB 33                 JSR     L09C2           ; prepare for open
 3716  FE1D92  A5 3E                    LDA     $3E
 3717  FE1D94  D0 4F                    BNE     SK04            ; if error
 3718  FE1D96  24 97                    bit     runf
 3719  FE1D98  30 2D                    bmi     ?10             ; run mode
 3720  FE1D9A  24 BE                    bit     objdsk
 3721  FE1D9C  30 08                    bmi     ?01             ; use disk '1': '1' option
 3722  FE1D9E  A5 BF                    lda     truedsk         ; need this because compiler put drive 0
 3723  FE1DA0  09 30                    ora     #'0'
 3724  FE1DA2  A0 01                    ldy     #1
 3725  FE1DA4  97 BB                    sta     [$BB],y
 3726                           
  Tue Jul 17 11:00:23 2018                                                                                               Page   21




 3727                                   ; copy obj. name file to NUMSTR in tbank
 3728  FE1DA6  8B               ?01:    phb
 3729  FE1DA7  A5 BD                    lda     $BD
 3730  FE1DA9  48                       pha
 3731  FE1DAA  AB                       plb
 3732  FE1DAB  A0 FF                    ldy     #$FF
 3733  FE1DAD  C8               ?02:    iny     
 3734  FE1DAE  B7 BB                    lda     [$BB],y
 3735  FE1DB0  99 A7 FF                 sta     NUMSTR+1,y      
 3736  FE1DB3  D0 F8                    bne     ?02
 3737  FE1DB5  A9 53                    lda     #'S'            ; scratch
 3738  FE1DB7  8D A7 FF                 sta     !NUMSTR+1
 3739  FE1DBA  A5 B7                    lda     $B7
 3740  FE1DBC  38                       sec
 3741  FE1DBD  E9 04                    sbc     #4              ; skip ',S,W'
 3742  FE1DBF  8D A6 FF                 sta     !NUMSTR         ; length
 3743  FE1DC2  AA                       tax
 3744  FE1DC3  9E A7 FF                 stz     !NUMSTR+1,x
 3745  FE1DC6  AB                       plb
 3746  FE1DC7                           
 3747  FE1DC7  20 C0 FF         ?10:    JSR     FOPEN           ; open
 3748  FE1DCA  24 97                    bit     runf
 3749  FE1DCC  20 45 33                 JSR     L0A73           ; handle disk error
 3750  FE1DCF  A9 A8                    LDA     #$A8
 3751  FE1DD1  92 29                    STA     ($29)
 3752  FE1DD3  80 10                    bra     SK04
 3753                           
 3754                           PC01:   ; $112E - $13B9
 3755  FE1DD5  B2 2D                    LDA     ($2D)
 3756  FE1DD7  AA                       TAX
 3757  FE1DD8  A0 02                    ldy     #2
 3758  FE1DDA                           ACC16
 3759  FE1DDA  C2 20                    rep     #PMFLAG
 3760                                   .LONGA  on
 3761                                   .MNLIST
 3762  FE1DDC  B1 2D                    LDA     ($2D),Y
 3763  FE1DDE  85 27                    STA     $27
 3764  FE1DE0                           ACC08
 3765  FE1DE0  E2 20                    sep     #PMFLAG
 3766                                   .LONGA  off
 3767                                   .MNLIST
 3768  FE1DE2  8A                       TXA
 3769  FE1DE3  92 27                    STA     ($27)
 3770  FE1DE5                           
 3771                           SK04:   ; $1141 - $13CC
 3772  FE1DE5                           ACC16CLC
 3773  FE1DE5  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3774                                   .LONGA  on
 3775                                   .MNLIST
 3776  FE1DE7  A5 2D                    LDA     $2D
 3777  FE1DE9  69 04 00                 ADC     #$0004
 3778  FE1DEC  85 2D                    STA     $2D
 3779  FE1DEE                           ACC08
 3780  FE1DEE  E2 20                    sep     #PMFLAG
 3781                                   .LONGA  off
 3782                                   .MNLIST
 3783  FE1DF0  60                       rts
  Tue Jul 17 11:00:23 2018                                                                                               Page   22




 3784                           
 3785                           PC02:   ; $114F - $13DA
 3786                                   ; terminate procedure or program
 3787  FE1DF1  24 97                    bit     runf
 3788  FE1DF3  10 03                    bpl     ?02
 3789  FE1DF5  20 CF 30                 JSR     R0AE9           ; close all local files 
 3790  FE1DF8  18               ?02:    CLC
 3791  FE1DF9  A5 2F                    LDA     $2F
 3792  FE1DFB  69 06                    ADC     #$06
 3793  FE1DFD  85 2D                    STA     $2D
 3794  FE1DFF  A5 30                    LDA     $30
 3795  FE1E01  69 00                    ADC     #$00
 3796  FE1E03  85 2E                    STA     $2E
 3797  FE1E05  C5 32                    CMP     $32
 3798  FE1E07  90 09                    BCC     ?04
 3799  FE1E09  A5 2F                    LDA     $2F
 3800  FE1E0B  E5 31                    SBC     $31
 3801  FE1E0D  90 03                    BCC     ?04 
 3802  FE1E0F  4C BA 1B                 JMP     vpmhlt          ; terminate
 3803  FE1E12  A0 04            ?04:    LDY     #$04            ; exit from procedure/function
 3804  FE1E14                           ACC16
 3805  FE1E14  C2 20                    rep     #PMFLAG
 3806                                   .LONGA  on
 3807                                   .MNLIST
 3808  FE1E16  B1 2F                    LDA     ($2F),Y
 3809  FE1E18  85 2B                    STA     $2B
 3810  FE1E1A  A0 02                    ldy     #$02
 3811  FE1E1C  B1 2F                    LDA     ($2F),Y
 3812  FE1E1E  85 2F                    STA     $2F
 3813  FE1E20                           ACC08
 3814  FE1E20  E2 20                    sep     #PMFLAG
 3815                                   .LONGA  off
 3816                                   .MNLIST
 3817  FE1E22  60                       rts
 3818  FE1E23                           
 3819                           PC03:   ; $1185 - $1410
 3820                                   ; return from integer function
 3821  FE1E23  24 97                    bit     runf
 3822  FE1E25  10 03                    bpl     ?02
 3823  FE1E27  20 CF 30                 JSR     R0AE9 
 3824  FE1E2A                   ?02:    CPU16
 3825  FE1E2A  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 3826                                   .LONGA  on
 3827                                   .LONGI  on
 3828                                   .MNLIST
 3829  FE1E2C  B2 2D                    LDA     ($2D)
 3830  FE1E2E  AA                       TAX
 3831  FE1E2F  A5 2F                    LDA     $2F
 3832  FE1E31  85 2D                    STA     $2D
 3833  FE1E33  C8                       iny
 3834  FE1E34  C8                       iny
 3835  FE1E35  B1 2D                    LDA     ($2D),Y
 3836  FE1E37  85 2F                    STA     $2F
 3837  FE1E39  C8                       iny
 3838  FE1E3A  C8                       iny
 3839  FE1E3B  B1 2D                    LDA     ($2D),Y
 3840  FE1E3D  85 2B                    STA     $2B
  Tue Jul 17 11:00:23 2018                                                                                               Page   23




 3841  FE1E3F  8A                       txa
 3842  FE1E40  91 2D                    STA     ($2D),Y
 3843  FE1E42                           CPU08
 3844  FE1E42  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 3845                                   .LONGA  off
 3846                                   .LONGI  off
 3847                                   .MNLIST
 3848  FE1E44  80 9F                    bra     SK04
 3849                           
 3850                           PC04:   ; $11B4 - $143F
 3851                                   ; prepare for call procedure/function
 3852  FE1E46  38                       SEC
 3853  FE1E47                           ACC16
 3854  FE1E47  C2 20                    rep     #PMFLAG
 3855                                   .LONGA  on
 3856                                   .MNLIST
 3857  FE1E49  A5 2D                    LDA     $2D
 3858  FE1E4B  E9 06 00                 SBC     #$0006
 3859  FE1E4E  85 2D                    STA     $2D
 3860  FE1E50  A5 39                    LDA     $39
 3861  FE1E52  92 2D                    STA     ($2D)
 3862  FE1E54  A5 2D                    LDA     $2D
 3863  FE1E56  85 39                    STA     $39
 3864  FE1E58                           ACC08
 3865  FE1E58  E2 20                    sep     #PMFLAG
 3866                                   .LONGA  off
 3867                                   .MNLIST
 3868  FE1E5A  60                       rts
 3869                           
 3870                           PC09:   ; $126F - 14FA
 3871                                   ; divide 2 integer and leave result in stack
 3872  FE1E5B  BB                       tyx                     ; Y = X = 0     
 3873  FE1E5C                           ACC16
 3874  FE1E5C  C2 20                    rep     #PMFLAG
 3875                                   .LONGA  on
 3876                                   .MNLIST
 3877  FE1E5E  B2 2D                    LDA     ($2D)
 3878  FE1E60  85 25                    STA     $25
 3879  FE1E62  C8                       iny
 3880  FE1E63  C8                       iny
 3881  FE1E64  B1 2D                    LDA     ($2D),y
 3882  FE1E66  85 23                    STA     $23
 3883  FE1E68                           ACC08
 3884  FE1E68  E2 20                    sep     #PMFLAG
 3885                                   .LONGA  off
 3886                                   .MNLIST
 3887  FE1E6A  20 1A 1F                 JSR     idiv
 3888  FE1E6D                           ACC16
 3889  FE1E6D  C2 20                    rep     #PMFLAG
 3890                                   .LONGA  on
 3891                                   .MNLIST
 3892  FE1E6F  A5 21                    LDA     $21
 3893  FE1E71  91 2D                    STA     ($2D),Y
 3894  FE1E73                           ACC08
 3895  FE1E73  E2 20                    sep     #PMFLAG
 3896                                   .LONGA  off
 3897                                   .MNLIST
  Tue Jul 17 11:00:23 2018                                                                                               Page   24




 3898  FE1E75  80 1E                    bra     SK02
 3899                           
 3900                           PC0B:   ; $12F6 - $1581
 3901                                   ; logic 'and' 2 bytes and leave result in stack
 3902  FE1E77  B2 2D                    LDA     ($2D)
 3903  FE1E79  A0 02                    LDY     #$02
 3904  FE1E7B  31 2D                    AND     ($2D),Y
 3905  FE1E7D  91 2D                    STA     ($2D),Y
 3906  FE1E7F  80 14                    bra     SK02
 3907                           
 3908                           PC0C:   ; $1301 - $158C
 3909                                   ; logic 'or' 2 integer and leave result in stack
 3910  FE1E81  B2 2D                    LDA     ($2D)
 3911  FE1E83  A0 02                    LDY     #$02
 3912  FE1E85  11 2D                    ORA     ($2D),Y
 3913  FE1E87  91 2D                    STA     ($2D),Y
 3914  FE1E89  80 0A                    bra     SK02
 3915                           
 3916                           PC05:   ; $11D5 - $1460
 3917                                   ; add 2 integer and leave result in stack
 3918  FE1E8B                           ACC16CLC
 3919  FE1E8B  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3920                                   .LONGA  on
 3921                                   .MNLIST
 3922  FE1E8D  B2 2D                    LDA     ($2D)
 3923  FE1E8F  A0 02                    LDY     #$02
 3924  FE1E91  71 2D                    ADC     ($2D),Y
 3925  FE1E93  91 2D                    STA     ($2D),Y
 3926                           SK02:   ; $11E7 - $1472
 3927  FE1E95                           ACC16CLC
 3928  FE1E95  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 3929                                   .LONGA  on
 3930                                   .MNLIST
 3931  FE1E97  A5 2D                    LDA     $2D
 3932  FE1E99  1A                       inc     a
 3933  FE1E9A  1A                       inc     a
 3934  FE1E9B  85 2D                    STA     $2D
 3935  FE1E9D                           ACC08
 3936  FE1E9D  E2 20                    sep     #PMFLAG
 3937                                   .LONGA  off
 3938                                   .MNLIST
 3939  FE1E9F  60                       rts
 3940                           
 3941                           PC06:   ; $11F5 - $1480
 3942                                   ; subctract 2 integer and leave result in stack
 3943  FE1EA0                           ACC16
 3944  FE1EA0  C2 20                    rep     #PMFLAG
 3945                                   .LONGA  on
 3946                                   .MNLIST
 3947  FE1EA2  A0 02                    ldy     #2
 3948  FE1EA4  38                       sec
 3949  FE1EA5  B1 2D                    LDA     ($2D),y
 3950  FE1EA7  F2 2D                    sbc     ($2D)
 3951  FE1EA9  91 2D                    STA     ($2D),Y
 3952  FE1EAB                           ACC08
 3953  FE1EAB  E2 20                    sep     #PMFLAG
 3954                                   .LONGA  off
  Tue Jul 17 11:00:23 2018                                                                                               Page   25




 3955                                   .MNLIST
 3956  FE1EAD  80 E6                    bra     SK02
 3957  FE1EAF                           
 3958                           PC07:   ; $1210 - $149B
 3959                                   ; mult 2 integer and leave result in stack
 3960  FE1EAF  BB                       tyx                     ; Y = X = 0
 3961  FE1EB0                           CPU16
 3962  FE1EB0  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 3963                                   .LONGA  on
 3964                                   .LONGI  on
 3965                                   .MNLIST
 3966  FE1EB2  B2 2D                    LDA     ($2D)
 3967  FE1EB4  85 23                    STA     $23
 3968  FE1EB6  48                       pha
 3969  FE1EB7  10 06                    bpl     ?02
 3970  FE1EB9  38                       sec
 3971  FE1EBA  8A                       txa                     ; X = 0
 3972  FE1EBB  E5 23                    sbc     $23
 3973  FE1EBD  85 23                    sta     $23
 3974  FE1EBF  C8               ?02:    iny
 3975  FE1EC0  C8                       iny
 3976  FE1EC1  B1 2D                    LDA     ($2D),Y
 3977  FE1EC3  85 25                    STA     $25
 3978  FE1EC5  10 06                    bpl     ?04
 3979  FE1EC7  38                       sec
 3980  FE1EC8  8A                       txa                     ; X = 0
 3981  FE1EC9  E5 25                    sbc     $25
 3982  FE1ECB  85 25                    sta     $25
 3983  FE1ECD  68               ?04:    PLA 
 3984  FE1ECE  51 2D                    EOR     ($2D),Y         ; sign comparison
 3985  FE1ED0                           CPU08
 3986  FE1ED0  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 3987                                   .LONGA  off
 3988                                   .LONGI  off
 3989                                   .MNLIST
 3990  FE1ED2  08                       PHP
 3991  FE1ED3  20 8B 29                 JSR     imult           ; return Z = 0 if CF = 0
 3992  FE1ED6  B0 3D                    BCS     er03 
 3993  FE1ED8  A5 22                    LDA     $22
 3994  FE1EDA  30 39                    BMI     er03
 3995  FE1EDC  28                       PLP
 3996  FE1EDD                           CPU16
 3997  FE1EDD  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 3998                                   .LONGA  on
 3999                                   .LONGI  on
 4000                                   .MNLIST
 4001  FE1EDF  10 06                    BPL     ?06
 4002  FE1EE1  38                       sec
 4003  FE1EE2  8A                       txa                     ; X = 0
 4004  FE1EE3  E5 21                    sbc     $21
 4005  FE1EE5  85 21                    sta     $21
 4006  FE1EE7  A5 21            ?06:    lda     $21     
 4007  FE1EE9  91 2D                    STA     ($2D),Y
 4008  FE1EEB                           CPU08
 4009  FE1EEB  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 4010                                   .LONGA  off
 4011                                   .LONGI  off
  Tue Jul 17 11:00:23 2018                                                                                               Page   26




 4012                                   .MNLIST
 4013  FE1EED  80 A6                    bra     SK02
 4014                           
 4015                           PC08:   ; $124D - $14D8
 4016                                   ; compute modulo 2 integer and leave result in stack
 4017  FE1EEF                           ACC16
 4018  FE1EEF  C2 20                    rep     #PMFLAG
 4019                                   .LONGA  on
 4020                                   .MNLIST
 4021  FE1EF1  B2 2D                    LDA     ($2D)
 4022  FE1EF3  85 25                    STA     $25
 4023  FE1EF5  C8                       iny
 4024  FE1EF6  C8                       iny
 4025  FE1EF7  B1 2D                    LDA     ($2D),Y
 4026  FE1EF9  85 23                    STA     $23
 4027  FE1EFB                           ACC08
 4028  FE1EFB  E2 20                    sep     #PMFLAG
 4029                                   .LONGA  off
 4030                                   .MNLIST
 4031  FE1EFD  20 1A 1F                 JSR     idiv
 4032  FE1F00                           ACC16
 4033  FE1F00  C2 20                    rep     #PMFLAG
 4034                                   .LONGA  on
 4035                                   .MNLIST
 4036  FE1F02  A5 23                    LDA     $23
 4037  FE1F04  91 2D                    STA     ($2D),Y
 4038  FE1F06                           ACC08
 4039  FE1F06  E2 20                    sep     #PMFLAG
 4040                                   .LONGA  off
 4041                                   .MNLIST
 4042  FE1F08  80 8B                    bra     SK02
 4043                           
 4044                           PC0A:   ; $1291 - $151C
 4045                                   ; 2's complement integer and leave result in stack
 4046  FE1F0A                           CPU16
 4047  FE1F0A  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 4048                                   .LONGA  on
 4049                                   .LONGI  on
 4050                                   .MNLIST
 4051  FE1F0C  38                       SEC
 4052  FE1F0D  98                       TYA
 4053  FE1F0E  F2 2D                    SBC     ($2D)
 4054  FE1F10  92 2D                    STA     ($2D)
 4055  FE1F12                           CPU08
 4056  FE1F12  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 4057                                   .LONGA  off
 4058                                   .LONGI  off
 4059                                   .MNLIST
 4060  FE1F14  60                       rts
 4061                           
 4062                           ; integer overflow      
 4063                           er03:   ; $12A0 - $152B
 4064  FE1F15  A2 03                    LDX     #$03
 4065  FE1F17  4C 50 1B                 JMP     vpmerr
 4066                           
 4067                           ; divide integer $23-$24 and $25-$26 - quot. in $21-$22 and rem. in $23-$24
 4068                           ; in input X must be 0
  Tue Jul 17 11:00:23 2018                                                                                               Page   27




 4069  FE1F1A                   idiv:
 4070  FE1F1A  A5 25                    LDA     $25
 4071  FE1F1C  05 26                    ora     $26
 4072  FE1F1E  F0 F5                    BEQ     er03
 4073  FE1F20  64 21                    STZ     $21
 4074  FE1F22  64 22                    STZ     $22
 4075  FE1F24  A5 24                    lda     $24
 4076  FE1F26  45 26                    eor     $26
 4077  FE1F28  08                       PHP
 4078  FE1F29                           CPU16
 4079  FE1F29  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 4080                                   .LONGA  on
 4081                                   .LONGI  on
 4082                                   .MNLIST
 4083  FE1F2B  A5 23                    LDA     $23
 4084  FE1F2D  10 06                    BPL     ?02
 4085  FE1F2F  38                       sec
 4086  FE1F30  8A                       txa                     ; X = 0
 4087  FE1F31  E5 23                    sbc     $23
 4088  FE1F33  85 23                    sta     $23
 4089  FE1F35  A5 25            ?02:    LDA     $25
 4090  FE1F37  10 06                    BPL     ?04
 4091  FE1F39  38                       sec
 4092  FE1F3A  8A                       txa                     ; X = 0
 4093  FE1F3B  E5 25                    sbc     $25
 4094  FE1F3D  85 25                    sta     $25
 4095  FE1F3F                   ?04:    CPU08
 4096  FE1F3F  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 4097                                   .LONGA  off
 4098                                   .LONGI  off
 4099                                   .MNLIST
 4100  FE1F41  A2 10                    LDX     #$10
 4101  FE1F43  06 23            ?06:    ASL     $23
 4102  FE1F45  26 24                    ROL     $24
 4103  FE1F47  26 21                    ROL     $21
 4104  FE1F49  26 22                    ROL     $22
 4105  FE1F4B  30 C8                    BMI     er03
 4106  FE1F4D  A5 21                    LDA     $21
 4107  FE1F4F  C5 25                    CMP     $25
 4108  FE1F51  A5 22                    LDA     $22
 4109  FE1F53  E5 26                    SBC     $26
 4110  FE1F55  30 0F                    BMI     ?08 
 4111  FE1F57  85 22                    STA     $22
 4112  FE1F59  A5 21                    LDA     $21
 4113  FE1F5B  38                       SEC 
 4114  FE1F5C  E5 25                    SBC     $25
 4115  FE1F5E  85 21                    STA     $21
 4116  FE1F60  A5 23                    LDA     $23
 4117  FE1F62  09 01                    ORA     #$01
 4118  FE1F64  85 23                    STA     $23
 4119  FE1F66  CA               ?08:    DEX 
 4120  FE1F67  D0 DA                    BNE     ?06
 4121  FE1F69  28                       PLP 
 4122  FE1F6A  10 10                    BPL     ?10
 4123  FE1F6C                           CPU16
 4124  FE1F6C  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 4125                                   .LONGA  on
  Tue Jul 17 11:00:23 2018                                                                                               Page   28




 4126                                   .LONGI  on
 4127                                   .MNLIST
 4128  FE1F6E  38                       sec
 4129  FE1F6F  8A                       txa                     ; X = 0
 4130  FE1F70  E5 21                    sbc     $21
 4131  FE1F72  85 21                    sta     $21
 4132  FE1F74  38                       sec
 4133  FE1F75  8A                       txa                     ; X = 0
 4134  FE1F76  E5 23                    sbc     $23
 4135  FE1F78  85 23                    sta     $23
 4136  FE1F7A                           CPU08
 4137  FE1F7A  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 4138                                   .LONGA  off
 4139                                   .LONGI  off
 4140                                   .MNLIST
 4141  FE1F7C  60               ?10:    RTS 
 4142                           
 4143                           PC0D:   ; $xxxx - $2959
 4144                                   ; page() procedure
 4145  FE1F7D  24 97                    bit     runf
 4146  FE1F7F  10 27                    bpl     PC0Dx
 4147  FE1F81  20 62 30                 JSR     L17A3
 4148  FE1F84  20 4B 32                 JSR     R0F8D
 4149  FE1F87  C6 B8                    DEC     $B8
 4150  FE1F89  F0 0D                    BEQ     ?02             ; output (clear screen) 
 4151  FE1F8B  20 25 32                 JSR     L0EA8
 4152  FE1F8E  A9 0C                    LDA     #$0C            ; new page at printer
 4153  FE1F90  20 E3 32                 JSR     L0EC4
 4154  FE1F93  20 CC FF                 jsr     FCLRCH
 4155  FE1F96  80 04                    bra     ?04
 4156  FE1F98  EA               ?02:    nop                     ; clear screen
 4157  FE1F99                           SCNCLR                  ; call system function
 4158  FE1F99  02 18                    cop     $18
 4159  FE1F9B  01                       .DB     $01
 4160                                   .MNLIST
 4161  FE1F9C  A9 02            ?04:    LDA     #$02
 4162  FE1F9E  18                       CLC 
 4163  FE1F9F  65 2D                    ADC     $2D
 4164  FE1FA1  85 2D                    STA     $2D
 4165  FE1FA3  90 02                    BCC     ?06 
 4166  FE1FA5  E6 2E                    INC     $2E
 4167  FE1FA7  60               ?06:    rts
 4168                           
 4169  FE1FA8                   PC0Dx:
 4170  FE1FA8  4C 4E 1B                 JMP     vpme07          ; error: bad p-code
 4171                           
 4172                           PC14:   ; $xxxx - $2BDF         ; close file
 4173  FE1FAB  24 97                    bit     runf
 4174  FE1FAD  10 F9                    bpl     PC0Dx
 4175  FE1FAF  B1 2D                    LDA     ($2D),Y
 4176  FE1FB1  85 29                    STA     $29
 4177  FE1FB3  C8                       INY 
 4178  FE1FB4  B1 2D                    LDA     ($2D),Y
 4179  FE1FB6  85 2A                    STA     $2A
 4180  FE1FB8  20 4B 32                 JSR     R0F8D
 4181  FE1FBB  A5 B8                    LDA     $B8
 4182  FE1FBD  C9 FF                    CMP     #$FF
  Tue Jul 17 11:00:23 2018                                                                                               Page   29




 4183  FE1FBF  F0 0F                    BEQ     ?02 
 4184  FE1FC1  0A                       ASL     a
 4185  FE1FC2  AA                       TAX
 4186  FE1FC3  A9 00                    LDA     #$00
 4187  FE1FC5  9D D0 FF                 STA     !MFILET,X
 4188  FE1FC8  9D D1 FF                 STA     !MFILET+1,X
 4189  FE1FCB  A5 B8                    LDA     $B8
 4190  FE1FCD  20 C3 FF                 JSR     FCLOSE
 4191  FE1FD0  4C 95 1E         ?02:    JMP     SK02
 4192                           
 4193                           PC0E:   ; $130C - $1597
 4194  FE1FD3  B2 2D                    LDA     ($2D)
 4195  FE1FD5  49 01                    EOR     #$01
 4196  FE1FD7  92 2D                    STA     ($2D)
 4197  FE1FD9  60                       rts
 4198  FE1FDA                           
 4199                           PC0F:   ; $1315 - $15A0
 4200  FE1FDA  B1 2D                    LDA     ($2D),Y
 4201  FE1FDC  A0 02                    LDY     #$02
 4202  FE1FDE  D1 2D                    CMP     ($2D),Y
 4203  FE1FE0  C8                       INY 
 4204  FE1FE1  B1 2D                    LDA     ($2D),Y
 4205  FE1FE3  49 80                    EOR     #$80
 4206  FE1FE5  85 27                    STA     $27
 4207  FE1FE7  A0 01                    LDY     #$01
 4208  FE1FE9  B1 2D                    LDA     ($2D),Y
 4209  FE1FEB  49 80                    EOR     #$80
 4210  FE1FED  E5 27                    SBC     $27
 4211  FE1FEF  A0 03                    LDY     #$03
 4212  FE1FF1  90 3B                    BCC     PC11c 
 4213  FE1FF3  B0 2C                    BCS     PC11a
 4214                           
 4215                           PC10:   ; $1330 - $15BB
 4216  FE1FF5  A0 02                    LDY     #$02
 4217  FE1FF7  B1 2D                    LDA     ($2D),Y
 4218  FE1FF9  A0 00                    LDY     #$00
 4219  FE1FFB  D1 2D                    CMP     ($2D),Y
 4220  FE1FFD  C8                       INY 
 4221  FE1FFE  B1 2D                    LDA     ($2D),Y
 4222  FE2000  49 80                    EOR     #$80
 4223  FE2002  85 27                    STA     $27
 4224  FE2004  A0 03                    LDY     #$03
 4225  FE2006  B1 2D                    LDA     ($2D),Y
 4226  FE2008  49 80                    EOR     #$80
 4227  FE200A  E5 27                    SBC     $27
 4228  FE200C  90 20                    BCC     PC11c 
 4229  FE200E  B0 11                    BCS     PC11a 
 4230                           
 4231                           PC11:   ; $134B - $15D6
 4232  FE2010  B1 2D                    LDA     ($2D),Y
 4233  FE2012  A0 02                    LDY     #$02
 4234  FE2014  D1 2D                    CMP     ($2D),Y
 4235  FE2016  D0 15                    BNE     PC11b 
 4236  FE2018  88                       DEY 
 4237  FE2019  B1 2D                    LDA     ($2D),Y
 4238  FE201B  A0 03                    LDY     #$03
 4239  FE201D  D1 2D                    CMP     ($2D),Y
  Tue Jul 17 11:00:23 2018                                                                                               Page   30




 4240  FE201F  D0 0D                    BNE     PC11c 
 4241                           PC11a:  ; $135C - $15E7
 4242  FE2021  A9 00                    LDA     #$00
 4243  FE2023  91 2D                    STA     ($2D),Y
 4244  FE2025  88                       DEY 
 4245  FE2026  A9 01                    LDA     #$01
 4246  FE2028  91 2D                    STA     ($2D),Y
 4247  FE202A  4C 95 1E                 JMP     SK02
 4248                           PC11b:  ; $1368 - $15F3
 4249  FE202D  C8                       INY 
 4250                           PC11c:  ; $1369 - $15F4
 4251  FE202E  A9 00                    LDA     #$00
 4252  FE2030  91 2D                    STA     ($2D),Y
 4253  FE2032  88                       DEY 
 4254  FE2033  91 2D                    STA     ($2D),Y
 4255  FE2035  4C 95 1E                 JMP     SK02
 4256                           
 4257                           PC12:   ; $1373 - $15FE
 4258  FE2038  20 49 20                 JSR     decstk
 4259  FE203B  A0 03                    LDY     #$03
 4260  FE203D  B1 2D                    LDA     ($2D),Y
 4261  FE203F  A0 01                    LDY     #$01
 4262  FE2041  91 2D                    STA     ($2D),Y
 4263  FE2043  C8                       INY 
 4264  FE2044  B1 2D                    LDA     ($2D),Y
 4265  FE2046  92 2D                    STA     ($2D)
 4266  FE2048  60                       rts
 4267                           
 4268                           decstk: ; $1836 - $1ABF
 4269  FE2049  A5 2D                    LDA     $2D
 4270  FE204B  38                       SEC 
 4271  FE204C  E9 02                    SBC     #$02
 4272  FE204E  85 2D                    STA     $2D
 4273  FE2050  B0 02                    BCS     ?02 
 4274  FE2052  C6 2E                    DEC     $2E
 4275  FE2054  60               ?02:    RTS 
 4276                           
 4277                           PC13:   ; $1388 - $1613
 4278  FE2055  A0 11                    LDY     #$11
 4279  FE2057  B1 2D                    LDA     ($2D),Y
 4280  FE2059  D0 1E                    BNE     ?04 
 4281  FE205B  88                       DEY 
 4282  FE205C  B1 2D                    LDA     ($2D),Y
 4283  FE205E  30 19                    BMI     ?04 
 4284  FE2060  AA                       TAX 
 4285  FE2061  4A                       LSR     a 
 4286  FE2062  4A                       LSR     a 
 4287  FE2063  4A                       LSR     a 
 4288  FE2064  A8                       TAY 
 4289  FE2065  8A                       TXA 
 4290  FE2066  29 07                    AND     #$07
 4291  FE2068  AA                       TAX 
 4292  FE2069  B1 2D                    LDA     ($2D),Y
 4293  FE206B  6A               ?02:    ROR     a
 4294  FE206C  CA                       DEX 
 4295  FE206D  10 FC                    BPL     ?02 
 4296  FE206F  90 08                    BCC     ?04 
  Tue Jul 17 11:00:23 2018                                                                                               Page   31




 4297  FE2071  A0 10                    LDY     #$10
 4298  FE2073  A9 01                    LDA     #$01
 4299  FE2075  91 2D                    STA     ($2D),Y
 4300  FE2077  D0 09                    BNE     ?06 
 4301  FE2079  A0 10            ?04:    LDY     #$10
 4302  FE207B  A9 00                    LDA     #$00
 4303  FE207D  91 2D                    STA     ($2D),Y
 4304  FE207F  C8                       INY 
 4305  FE2080  91 2D                    STA     ($2D),Y
 4306  FE2082                   ?06:
 4307                           L13B5:  ; $13B5 - $1640
 4308  FE2082  A5 2D                    LDA     $2D
 4309  FE2084  18                       CLC 
 4310  FE2085  69 10                    ADC     #$10
 4311  FE2087  85 2D                    STA     $2D
 4312  FE2089  90 02                    BCC     ?08 
 4313  FE208B  E6 2E                    INC     $2E
 4314  FE208D                   ?08:    
 4315  FE208D  60               PCxx:   rts
 4316                           
 4317                           PC15:   ; $13C3 - $164E
 4318  FE208E  20 03 32                 JSR     L1762
 4319  FE2091  20 76 32                 JSR     L0D1C
 4320  FE2094  4C CC FF                 JMP     FCLRCH
 4321                           
 4322                           PC16:   ; $13CF - $165A
 4323  FE2097  20 03 32                 JSR     L1762
 4324  FE209A  A5 23                    LDA     $23
 4325  FE209C  F0 EF                    BEQ     PCxx 
 4326  FE209E  A2 01                    LDX     #$01
 4327  FE20A0  20 34 33                 JSR     L0E69
 4328  FE20A3  A5 21                    LDA     $21
 4329  FE20A5  20 E3 32                 JSR     L0EC4
 4330  FE20A8  4C CC FF                 JMP     FCLRCH
 4331                           
 4332                           PC19:   ; $1421 - $16AC
 4333                                   ; write CR to text file
 4334  FE20AB  84 3E                    STY     $3E
 4335  FE20AD  20 85 30                 JSR     L17AD
 4336  FE20B0  20 25 32                 JSR     L0EA8
 4337  FE20B3  A9 0D                    LDA     #$0D
 4338  FE20B5  20 E3 32                 JSR     L0EC4
 4339                           
 4340  FE20B8  A5 9A                    lda     dflto
 4341  FE20BA  C9 03                    cmp     #$03
 4342  FE20BC  F0 05                    beq     ?02
 4343  FE20BE  A9 0A                    LDA     #$0A
 4344  FE20C0  20 E3 32                 JSR     L0EC4
 4345  FE20C3                   ?02:    
 4346  FE20C3  20 CC FF                 JSR     FCLRCH
 4347  FE20C6  4C 95 1E                 JMP     SK02
 4348                           
 4349                           PC1A:   ; $1434 - $16BF
 4350                                   ; read integer from input text file
 4351  FE20C9  20 14 30                 JSR     L178B
 4352  FE20CC  20 1B 21                 JSR     L0DA5
 4353  FE20CF  90 05                    BCC     ?02 
  Tue Jul 17 11:00:23 2018                                                                                               Page   32




 4354  FE20D1  A2 02                    LDX     #$02
 4355  FE20D3  20 C0 31                 JSR     L0FAA
 4356  FE20D6                   ?02:
 4357                           L1441:  ; $1441 - $16CC
 4358  FE20D6  20 8F 30                 JSR     L17B7
 4359                           L1444:  ; $1444 - $16CF
 4360  FE20D9  A5 21                    LDA     $21
 4361  FE20DB  A0 00                    LDY     #$00
 4362  FE20DD  91 2D                    STA     ($2D),Y
 4363  FE20DF  C8                       INY
 4364  FE20E0  A5 22                    LDA     $22
 4365  FE20E2  91 2D                    STA     ($2D),Y
 4366  FE20E4  4C CC FF                 JMP     FCLRCH
 4367                           
 4368                           PC1B:   ; $1455 - $16E0
 4369  FE20E7  84 22                    STY     $22
 4370  FE20E9  20 14 30                 JSR     L178B
 4371  FE20EC  85 21                    STA     $21
 4372  FE20EE  A0 00                    LDY     #$00
 4373  FE20F0  B1 29                    LDA     ($29),Y
 4374  FE20F2  29 40                    AND     #$40
 4375  FE20F4  D0 1B                    BNE     L147F 
 4376  FE20F6  20 71 31         ?02:    JSR     L0F2B
 4377  FE20F9  C9 0A                    CMP     #$0A
 4378  FE20FB  F0 F9                    BEQ     ?02 
 4379  FE20FD  D0 D7                    BNE     L1441 
 4380                           
 4381                           ; redln
 4382                           PC1C:   ; $146D - $16F8
 4383  FE20FF  20 14 30                 JSR     L178B
 4384  FE2102  A0 00                    LDY     #$00
 4385  FE2104  B1 29                    LDA     ($29),Y
 4386  FE2106  29 40                    AND     #$40
 4387  FE2108  D0 07                    BNE     L147F 
 4388  FE210A  20 71 31         ?02:    JSR     L0F2B
 4389  FE210D  C9 0D                    CMP     #$0D
 4390  FE210F  D0 F9                    BNE     ?02
 4391  FE2111                           
 4392                           L147F:  ; $147F - $170A
 4393  FE2111  A0 00                    LDY     #$00
 4394  FE2113  B1 29                    LDA     ($29),Y
 4395  FE2115  09 02                    ORA     #$02
 4396  FE2117  91 29                    STA     ($29),Y
 4397  FE2119  80 BE                    bra     L1444
 4398                           
 4399                           L0DA5:  ; $0DA5 - $1030
 4400  FE211B  80 03                    bra     ?04
 4401  FE211D  20 71 31         ?02:    JSR     L0F2B
 4402  FE2120  C9 0D            ?04:    CMP     #$0D
 4403  FE2122  F0 F9                    BEQ     ?02 
 4404  FE2124  C9 20                    CMP     #$20
 4405  FE2126  F0 F5                    BEQ     ?02 
 4406  FE2128  C9 0A                    CMP     #$0A
 4407  FE212A  F0 F1                    BEQ     ?02 
 4408  FE212C  A2 00                    LDX     #$00
 4409  FE212E  86 21                    STX     $21
 4410  FE2130  86 22                    STX     $22
  Tue Jul 17 11:00:23 2018                                                                                               Page   33




 4411  FE2132  C9 2D                    CMP     #$2D            ; minus sign
 4412  FE2134  08                       PHP
 4413  FE2135  F0 04                    BEQ     ?06
 4414  FE2137  C9 2B                    CMP     #$2B
 4415  FE2139  D0 03                    BNE     ?08             ; plus sign 
 4416  FE213B  20 71 31         ?06:    JSR     L0F2B
 4417  FE213E  C9 3A            ?08:    CMP     #$3A
 4418  FE2140  10 4A                    BPL     ?18 
 4419  FE2142  38                       SEC
 4420  FE2143  E9 30                    SBC     #$30
 4421  FE2145  30 45                    BMI     ?18 
 4422  FE2147  48               ?10:    PHA
 4423  FE2148  06 21                    ASL     $21
 4424  FE214A  26 22                    ROL     $22
 4425  FE214C  A5 21                    LDA     $21
 4426  FE214E  A4 22                    LDY     $22
 4427  FE2150  06 21                    ASL     $21
 4428  FE2152  26 22                    ROL     $22
 4429  FE2154  06 21                    ASL     $21
 4430  FE2156  26 22                    ROL     $22
 4431  FE2158  18                       CLC
 4432  FE2159  65 21                    ADC     $21
 4433  FE215B  85 21                    STA     $21
 4434  FE215D  98                       TYA
 4435  FE215E  65 22                    ADC     $22
 4436  FE2160  85 22                    STA     $22
 4437  FE2162  68                       PLA
 4438  FE2163  18                       CLC 
 4439  FE2164  65 21                    ADC     $21
 4440  FE2166  85 21                    STA     $21
 4441  FE2168  90 02                    BCC     ?12 
 4442  FE216A  E6 22                    INC     $22
 4443  FE216C  20 71 31         ?12:    JSR     L0F2B
 4444  FE216F  AA                       TAX
 4445  FE2170  C9 3A                    CMP     #$3A
 4446  FE2172  10 05                    BPL     ?14 
 4447  FE2174  38                       SEC 
 4448  FE2175  E9 30                    SBC     #$30
 4449  FE2177  10 CE                    BPL     ?10 
 4450  FE2179  28               ?14:    PLP
 4451  FE217A  D0 0D                    BNE     ?16 
 4452  FE217C  38                       SEC 
 4453  FE217D  A9 00                    LDA     #$00
 4454  FE217F  E5 21                    SBC     $21
 4455  FE2181  85 21                    STA     $21
 4456  FE2183  A9 00                    LDA     #$00
 4457  FE2185  E5 22                    SBC     $22
 4458  FE2187  85 22                    STA     $22
 4459  FE2189  8A               ?16:    TXA
 4460  FE218A  18                       CLC
 4461  FE218B  60                       RTS
 4462  FE218C  68               ?18:    PLA
 4463  FE218D  8A                       TXA
 4464  FE218E  38                       SEC
 4465  FE218F  60                       RTS 
 4466                           
 4467                           PC1D:   ; $29C1 - $2FA3
  Tue Jul 17 11:00:23 2018                                                                                               Page   34




 4468                                   ; read a floating point number from text file
 4469  FE2190  20 14 30                 JSR     L178B
 4470  FE2193  A2 00                    LDX     #$00
 4471  FE2195  86 3E                    STX     $3E
 4472  FE2197  C9 20            ?02:    CMP     #$20
 4473  FE2199  F0 08                    BEQ     ?04 
 4474  FE219B  C9 0D                    CMP     #$0D
 4475  FE219D  F0 04                    BEQ     ?04 
 4476  FE219F  C9 0A                    CMP     #$0A
 4477  FE21A1  D0 08                    BNE     ?08 
 4478  FE21A3  20 71 31         ?04:    JSR     L0F2B
 4479  FE21A6  80 EF                    bra     ?02
 4480  FE21A8  20 71 31         ?06:    JSR     L0F2B
 4481  FE21AB                   ?08:
 4482  FE21AB  9D 5A FF         ?10:    STA     !MNUMSTR,X      ; buffer
 4483  FE21AE  85 27                    STA     $27             ; last char was read
 4484  FE21B0  E8                       INX
 4485  FE21B1  E0 1F                    CPX     #NUMSIZ-1
 4486  FE21B3  F0 3D                    BEQ     ?26
 4487  FE21B5  C9 2E                    CMP     #$2E
 4488  FE21B7  F0 EF                    BEQ     ?06 
 4489  FE21B9  C9 45                    CMP     #'E'
 4490  FE21BB  F0 EB                    BEQ     ?06
 4491  FE21BD  C9 65                    CMP     #'e'
 4492  FE21BF  F0 E7                    BEQ     ?06     
 4493  FE21C1  C9 2B                    CMP     #$2B
 4494  FE21C3  F0 E3                    BEQ     ?06 
 4495  FE21C5  C9 2D                    CMP     #$2D
 4496  FE21C7  F0 DF                    BEQ     ?06
 4497  FE21C9  C9 30                    CMP     #$30
 4498  FE21CB  90 04                    BCC     ?12
 4499  FE21CD  C9 3A                    CMP     #$3A
 4500  FE21CF  90 D7                    BCC     ?06
 4501  FE21D1  CA               ?12:    DEX
 4502  FE21D2  F0 1E            ?14:    BEQ     ?26 
 4503  FE21D4  A9 00                    LDA     #$00
 4504  FE21D6  9D 5A FF                 STA     !MNUMSTR,X
 4505  FE21D9                           ACC16
 4506  FE21D9  C2 20                    rep     #PMFLAG
 4507                                   .LONGA  on
 4508                                   .MNLIST
 4509  FE21DB  D4 7A                    pei     ($7A)
 4510  FE21DD  A9 5A FF                 LDA     #MNUMSTR
 4511  FE21E0  85 7A                    STA     $7A
 4512  FE21E2                           ACC08
 4513  FE21E2  E2 20                    sep     #PMFLAG
 4514                                   .LONGA  off
 4515                                   .MNLIST
 4516  FE21E4  20 C6 98                 JSR     XBCF3P
 4517  FE21E7  AA                       TAX                     ; X = return code from conversion 
 4518  FE21E8                           ACC16
 4519  FE21E8  C2 20                    rep     #PMFLAG
 4520                                   .LONGA  on
 4521                                   .MNLIST
 4522  FE21EA  68                       pla
 4523  FE21EB  85 7A                    STA     $7A
 4524  FE21ED                           ACC08   
  Tue Jul 17 11:00:23 2018                                                                                               Page   35




 4525  FE21ED  E2 20                    sep     #PMFLAG
 4526                                   .LONGA  off
 4527                                   .MNLIST
 4528  FE21EF  8A                       TXA
 4529  FE21F0  F0 05                    BEQ     ?28 
 4530  FE21F2  A2 0A            ?26:    LDX     #$0A            ; floating point read error
 4531  FE21F4  20 C0 31                 JSR     L0FAA
 4532  FE21F7  A5 2D            ?28:    LDA     $2D
 4533  FE21F9  38                       SEC
 4534  FE21FA  E9 04                    SBC     #$04
 4535  FE21FC  85 2D                    STA     $2D
 4536  FE21FE  B0 02                    BCS     ?30
 4537  FE2200  C6 2E                    DEC     $2E
 4538  FE2202  A4 2E            ?30:    LDY     $2E
 4539  FE2204  AA                       TAX
 4540  FE2205  20 92 97                 JSR     XBBD4
 4541  FE2208  A5 27                    LDA     $27
 4542  FE220A  20 8F 30                 JSR     L17B7
 4543  FE220D  4C CC FF                 JMP     FCLRCH
 4544                           
 4545                           PC1E:   ; $2825 - $2E07
 4546                                   ; write float number to text file - float point format
 4547  FE2210  B1 2D                    LDA     ($2D),Y
 4548  FE2212  30 02                    BMI     ?02
 4549  FE2214  D0 02                    BNE     ?04
 4550  FE2216  A9 01            ?02:    LDA     #$01
 4551  FE2218  48               ?04:    PHA
 4552  FE2219  A0 0A                    LDY     #$0A
 4553  FE221B  20 85 30                 JSR     L17AD
 4554  FE221E  20 25 32                 JSR     L0EA8
 4555  FE2221  A5 2D                    LDA     $2D
 4556  FE2223  18                       CLC
 4557  FE2224  69 04                    ADC     #$04
 4558  FE2226  A4 2E                    LDY     $2E
 4559  FE2228  90 01                    BCC     ?06
 4560  FE222A  C8                       INY
 4561  FE222B  20 33 97         ?06:    JSR     XBBA2
 4562  FE222E  A5 66                    LDA     $66
 4563  FE2230  48                       PHA
 4564  FE2231  20 EC 22                 JSR     L2891
 4565  FE2234  68                       PLA
 4566  FE2235  85 66                    STA     $66
 4567  FE2237  68                       PLA
 4568  FE2238  85 25                    STA     $25
 4569  FE223A  18                       CLC
 4570  FE223B  65 48                    ADC     tmpv2
 4571  FE223D  30 02                    BMI     ?08
 4572  FE223F  D0 02                    BNE     ?10
 4573  FE2241  A9 01            ?08:    LDA     #$01
 4574  FE2243  85 23            ?10:    STA     $23
 4575  FE2245  20 55 23                 JSR     L290B
 4576  FE2248  90 02                    BCC     ?12
 4577  FE224A  E6 48                    INC     tmpv2
 4578  FE224C  A5 48            ?12:    LDA     tmpv2
 4579  FE224E  85 23                    STA     $23
 4580  FE2250  C9 01                    CMP     #$01
 4581  FE2252  10 02                    BPL     ?14
  Tue Jul 17 11:00:23 2018                                                                                               Page   36




 4582  FE2254  A9 01                    LDA     #$01
 4583  FE2256  18               ?14:    CLC
 4584  FE2257  65 25                    ADC     $25
 4585  FE2259  69 02                    ADC     #$02
 4586  FE225B  A0 02                    LDY     #$02
 4587  FE225D  38                       SEC
 4588  FE225E  F1 2D                    SBC     ($2D),Y
 4589  FE2260  AA                       TAX
 4590  FE2261  10 08                    BPL     ?18
 4591  FE2263  A9 20                    LDA     #$20
 4592  FE2265  20 E3 32         ?16:    JSR     L0EC4
 4593  FE2268  E8                       INX
 4594  FE2269  D0 FA                    BNE     ?16
 4595  FE226B  20 2A 33         ?18:    JSR     L29B6
 4596  FE226E  20 92 23                 JSR     L2948
 4597  FE2271  20 CC FF                 JSR     FCLRCH
 4598  FE2274  A9 0C                    LDA     #$0C
 4599  FE2276  4C 7B 27                 JMP     L155E
 4600                           
 4601                           PC1F:   ; $27AC - $2D8E
 4602                                   ; write float number to text file - exponential format
 4603  FE2279  B1 2D                    LDA     ($2D),Y
 4604  FE227B  48                       PHA 
 4605  FE227C  A5 2D                    LDA     $2D
 4606  FE227E  18                       CLC 
 4607  FE227F  69 02                    ADC     #$02
 4608  FE2281  A4 2E                    LDY     $2E
 4609  FE2283  90 01                    BCC     ?02
 4610  FE2285  C8                       INY 
 4611  FE2286  20 33 97         ?02:    JSR     XBBA2
 4612  FE2289  A0 08                    LDY     #$08
 4613  FE228B  20 85 30                 JSR     L17AD
 4614  FE228E  20 25 32                 JSR     L0EA8
 4615  FE2291  20 2A 33                 JSR     L29B6
 4616  FE2294  20 EC 22                 JSR     L2891
 4617  FE2297  68                       PLA 
 4618  FE2298  38                       SEC
 4619  FE2299  E9 06                    SBC     #$06
 4620  FE229B  C9 02                    CMP     #$02
 4621  FE229D  10 02                    BPL     ?04
 4622  FE229F  A9 02                    LDA     #$02
 4623  FE22A1  85 23            ?04:    STA     $23
 4624  FE22A3  85 25                    STA     $25
 4625  FE22A5  20 55 23                 JSR     L290B
 4626  FE22A8  90 02                    BCC     ?06
 4627  FE22AA  E6 48                    INC     tmpv2
 4628  FE22AC  C6 25            ?06:    DEC     $25
 4629  FE22AE  A9 01                    LDA     #$01
 4630  FE22B0  85 23                    STA     $23
 4631  FE22B2  20 92 23                 JSR     L2948
 4632  FE22B5  A9 45                    LDA     #$45
 4633  FE22B7  20 E3 32                 JSR     L0EC4
 4634  FE22BA  C6 48                    DEC     tmpv2
 4635  FE22BC  A9 2B                    LDA     #$2B
 4636  FE22BE  24 48                    BIT     tmpv2
 4637  FE22C0  10 09                    BPL     ?08
 4638  FE22C2  A9 00                    LDA     #$00
  Tue Jul 17 11:00:23 2018                                                                                               Page   37




 4639  FE22C4  38                       SEC
 4640  FE22C5  E5 48                    SBC     tmpv2
 4641  FE22C7  85 48                    STA     tmpv2
 4642  FE22C9  A9 2D                    LDA     #$2D
 4643  FE22CB  20 E3 32         ?08:    JSR     L0EC4
 4644  FE22CE  A2 2F                    LDX     #$2F
 4645  FE22D0  A5 48                    LDA     tmpv2
 4646  FE22D2  E8               ?10:    INX
 4647  FE22D3  38                       SEC
 4648  FE22D4  E9 0A                    SBC     #$0A
 4649  FE22D6  10 FA                    BPL     ?10
 4650  FE22D8  48                       PHA
 4651  FE22D9  8A                       TXA
 4652  FE22DA  20 E3 32                 JSR     L0EC4
 4653  FE22DD  68                       PLA 
 4654  FE22DE  18                       CLC
 4655  FE22DF  69 3A                    ADC     #$3A
 4656  FE22E1  20 E3 32                 JSR     L0EC4
 4657  FE22E4  20 CC FF                 JSR     FCLRCH
 4658  FE22E7  A9 0A                    LDA     #$0A
 4659  FE22E9  4C 7B 27                 JMP     L155E
 4660                           
 4661                           L2891:  ; $2891 - $2E73
 4662  FE22EC  A9 00                    LDA     #$00
 4663  FE22EE  85 48                    STA     tmpv2
 4664  FE22F0  A5 61            ?02:    LDA     $61
 4665  FE22F2  F0 16                    BEQ     ?06
 4666  FE22F4  30 07                    BMI     ?04
 4667  FE22F6  20 6A 96                 JSR     XBAE2           ; mult * 10
 4668  FE22F9  C6 48                    DEC     tmpv2
 4669  FE22FB  80 F3                    bra     ?02
 4670  FE22FD  A5 61            ?04:    LDA     $61
 4671  FE22FF  C9 81                    CMP     #$81
 4672  FE2301  90 07                    BCC     ?06
 4673  FE2303  20 81 96                 JSR     XBAFE           ; div / 10
 4674  FE2306  E6 48                    INC     tmpv2
 4675  FE2308  80 F3                    bra     ?04
 4676  FE230A                   ?06:
 4677  FE230A  A5 61            ?07:    LDA     $61
 4678  FE230C  30 0C                    BMI     ?08
 4679  FE230E  46 62                    LSR     $62
 4680  FE2310  66 63                    ROR     $63
 4681  FE2312  66 64                    ROR     $64
 4682  FE2314  66 65                    ROR     $65
 4683  FE2316  E6 61                    INC     $61
 4684  FE2318  10 F0                    BPL     ?07
 4685  FE231A  A2 09            ?08:    LDX     #$09
 4686  FE231C  A9 00                    LDA     #$00
 4687  FE231E  9D 5A FF         ?10:    STA     !MNUMSTR,X
 4688  FE2321  CA                       DEX 
 4689  FE2322  10 FA                    BPL     ?10
 4690  FE2324  A0 20                    LDY     #$20
 4691  FE2326  A2 00            ?12:    LDX     #$00
 4692  FE2328  5E 5A FF         ?14:    LSR     !MNUMSTR,X
 4693  FE232B  E8                       INX
 4694  FE232C  08                       PHP
 4695  FE232D  E0 0A                    CPX     #$0A
  Tue Jul 17 11:00:23 2018                                                                                               Page   38




 4696  FE232F  F0 0D                    BEQ     ?16
 4697  FE2331  28                       PLP 
 4698  FE2332  90 F4                    BCC     ?14
 4699  FE2334  BD 5A FF                 LDA     !MNUMSTR,X
 4700  FE2337  69 09                    ADC     #$09
 4701  FE2339  9D 5A FF                 STA     !MNUMSTR,X
 4702  FE233C  D0 EA                    BNE     ?14
 4703  FE233E  28               ?16:    PLP 
 4704  FE233F  46 62                    LSR     $62
 4705  FE2341  66 63                    ROR     $63
 4706  FE2343  66 64                    ROR     $64
 4707  FE2345  66 65                    ROR     $65
 4708  FE2347  90 08                    BCC     ?18
 4709  FE2349  AD 5A FF                 LDA     !MNUMSTR
 4710  FE234C  69 04                    ADC     #$04
 4711  FE234E  8D 5A FF                 STA     !MNUMSTR
 4712  FE2351  88               ?18:    DEY
 4713  FE2352  D0 D2                    BNE     ?12
 4714  FE2354  60                       RTS
 4715  FE2355                           
 4716                           L290B:  ; $290B - $2EED
 4717  FE2355  A5 23                    LDA     $23
 4718  FE2357  30 25                    BMI     ?06
 4719  FE2359  F0 23                    BEQ     ?06
 4720  FE235B  C9 0A                    CMP     #$0A
 4721  FE235D  B0 1F                    BCS     ?06
 4722  FE235F  AA                       TAX 
 4723  FE2360  BD 5A FF                 LDA     !MNUMSTR,X
 4724  FE2363  18                       CLC
 4725  FE2364  69 05                    ADC     #$05
 4726  FE2366  9D 5A FF                 STA     !MNUMSTR,X
 4727  FE2369  BD 5A FF         ?02:    LDA     !MNUMSTR,X
 4728  FE236C  38                       SEC
 4729  FE236D  E9 0A                    SBC     #$0A
 4730  FE236F  30 0A                    BMI     ?04
 4731  FE2371  9D 5A FF                 STA     !MNUMSTR,X
 4732  FE2374  CA                       DEX
 4733  FE2375  30 09                    BMI     ?10
 4734  FE2377  FE 5A FF                 INC     !MNUMSTR,X
 4735  FE237A  E8                       INX
 4736  FE237B  CA               ?04:    DEX
 4737  FE237C  10 EB                    BPL     ?02
 4738  FE237E  18               ?06:    CLC 
 4739  FE237F  60               ?08:    RTS
 4740  FE2380  A6 23            ?10:    LDX     $23
 4741  FE2382  38               ?12:    SEC
 4742  FE2383  A9 01                    LDA     #$01
 4743  FE2385  CA                       DEX
 4744  FE2386  30 F7                    BMI     ?08
 4745  FE2388  F0 03                    BEQ     ?14
 4746  FE238A  BD 59 FF                 LDA     !MNUMSTR-1,X
 4747  FE238D  9D 5A FF         ?14:    STA     !MNUMSTR,X
 4748  FE2390  B0 F0                    BCS     ?12             ; here always CF = 1
 4749                           
 4750                           L2948:  ; $2948 - $2F2A
 4751  FE2392  A2 00                    LDX     #$00
 4752  FE2394  A5 23                    LDA     $23
  Tue Jul 17 11:00:23 2018                                                                                               Page   39




 4753  FE2396  F0 1D                    BEQ     ?06 
 4754  FE2398  30 1B                    BMI     ?06 
 4755  FE239A  A9 00            ?02:    LDA     #$00
 4756  FE239C  E0 0A                    CPX     #$0A
 4757  FE239E  F0 04                    BEQ     ?04 
 4758  FE23A0  BD 5A FF                 LDA     !MNUMSTR,X              ; buffer
 4759  FE23A3  E8                       INX
 4760  FE23A4  18               ?04:    CLC
 4761  FE23A5  69 30                    ADC     #$30
 4762  FE23A7  20 E3 32                 JSR     L0EC4
 4763  FE23AA  C6 23                    DEC     $23
 4764  FE23AC  D0 EC                    BNE     ?02 
 4765  FE23AE  A9 2E                    LDA     #$2E
 4766  FE23B0  20 E3 32                 JSR     L0EC4
 4767  FE23B3  80 31                    bra     ?12
 4768  FE23B5  A9 30            ?06:    LDA     #$30
 4769  FE23B7  20 E3 32                 JSR     L0EC4
 4770  FE23BA  A9 2E                    LDA     #$2E
 4771  FE23BC  20 E3 32                 JSR     L0EC4
 4772  FE23BF  A9 00                    LDA     #$00
 4773  FE23C1  38                       SEC
 4774  FE23C2  E5 23                    SBC     $23
 4775  FE23C4  85 23                    STA     $23
 4776  FE23C6  F0 1E                    BEQ     ?12 
 4777  FE23C8  A5 25                    LDA     $25
 4778  FE23CA  38                       SEC 
 4779  FE23CB  E5 23                    SBC     $23
 4780  FE23CD  C9 01                    CMP     #$01
 4781  FE23CF  10 06                    BPL     ?08 
 4782  FE23D1  A5 25                    LDA     $25
 4783  FE23D3  85 23                    STA     $23
 4784  FE23D5  A9 00                    LDA     #$00
 4785  FE23D7  85 25            ?08:    STA     $25
 4786  FE23D9  A5 23                    LDA     $23
 4787  FE23DB  F0 09                    BEQ     ?12 
 4788  FE23DD  A9 30                    LDA     #$30
 4789  FE23DF  20 E3 32         ?10:    JSR     L0EC4
 4790  FE23E2  C6 23                    DEC     $23
 4791  FE23E4  D0 F9                    BNE     ?10 
 4792  FE23E6  A5 25            ?12:    LDA     $25
 4793  FE23E8  F0 14                    BEQ     ?18 
 4794  FE23EA  A9 00            ?14:    LDA     #$00
 4795  FE23EC  E0 0A                    CPX     #$0A
 4796  FE23EE  F0 04                    BEQ     ?16 
 4797  FE23F0  BD 5A FF                 LDA     !MNUMSTR,X              ; buffer
 4798  FE23F3  E8                       INX
 4799  FE23F4  18               ?16:    CLC
 4800  FE23F5  69 30                    ADC     #$30
 4801  FE23F7  20 E3 32                 JSR     L0EC4
 4802  FE23FA  C6 25                    DEC     $25
 4803  FE23FC  D0 EC                    BNE     ?14 
 4804  FE23FE  60               ?18:    RTS
 4805                           
 4806                           PC20:   ; $2AC1 - $30A3
 4807  FE23FF  20 62 24                 JSR     L2B26
 4808  FE2402  A0 04                    LDY     #$04
 4809                           L2AC6:  ; $2AC6 - $30A8
  Tue Jul 17 11:00:23 2018                                                                                               Page   40




 4810  FE2404  B1 2D                    LDA     ($2D),Y
 4811  FE2406  85 27                    STA     $27
 4812  FE2408  C8                       INY 
 4813  FE2409  B1 2D                    LDA     ($2D),Y
 4814  FE240B  85 28                    STA     $28
 4815  FE240D  85 23                    STA     $23
 4816  FE240F  10 0D                    BPL     ?02 
 4817  FE2411  A9 00                    LDA     #$00
 4818  FE2413  38                       SEC 
 4819  FE2414  E5 27                    SBC     $27
 4820  FE2416  85 27                    STA     $27
 4821  FE2418  A9 00                    LDA     #$00
 4822  FE241A  E5 28                    SBC     $28
 4823  FE241C  85 28                    STA     $28
 4824  FE241E  A9 00            ?02:    LDA     #$00
 4825  FE2420  88                       DEY 
 4826  FE2421  91 2D                    STA     ($2D),Y
 4827  FE2423  88                       DEY 
 4828  FE2424  91 2D                    STA     ($2D),Y
 4829  FE2426  A2 90                    LDX     #$90
 4830  FE2428  24 28            ?04:    BIT     $28
 4831  FE242A  30 09                    BMI     ?06 
 4832  FE242C  06 27                    ASL     $27
 4833  FE242E  26 28                    ROL     $28
 4834  FE2430  CA                       DEX 
 4835  FE2431  30 F5                    BMI     ?04 
 4836  FE2433  A2 00                    LDX     #$00
 4837  FE2435  88               ?06:    DEY 
 4838  FE2436  A5 27                    LDA     $27
 4839  FE2438  91 2D                    STA     ($2D),Y
 4840  FE243A  A5 28                    LDA     $28
 4841  FE243C  24 23                    BIT     $23
 4842  FE243E  30 02                    BMI     ?08 
 4843  FE2440  29 7F                    AND     #$7F
 4844  FE2442  88               ?08:    DEY 
 4845  FE2443  91 2D                    STA     ($2D),Y
 4846  FE2445  8A                       TXA 
 4847  FE2446  88                       DEY 
 4848  FE2447  91 2D                    STA     ($2D),Y
 4849  FE2449  60                       rts
 4850                           
 4851                           PC21:   ; $2B0E - $30F0
 4852  FE244A  20 62 24                 JSR     L2B26
 4853  FE244D  C8               ?01:    INY 
 4854  FE244E  C8                       INY 
 4855  FE244F  C8                       INY 
 4856  FE2450  C8                       INY 
 4857  FE2451  B1 2D                    LDA     ($2D),Y
 4858  FE2453  88                       DEY 
 4859  FE2454  88                       DEY 
 4860  FE2455  88                       DEY 
 4861  FE2456  88                       DEY 
 4862  FE2457  91 2D                    STA     ($2D),Y
 4863  FE2459  C8                       INY 
 4864  FE245A  C0 06                    CPY     #$06
 4865  FE245C  D0 EF                    BNE     ?01 
 4866  FE245E  A0 0A                    LDY     #$0A
  Tue Jul 17 11:00:23 2018                                                                                               Page   41




 4867  FE2460  D0 A2                    BNE     L2AC6 
 4868                           
 4869                           L2B26:  ; $2B26 - $3108
 4870  FE2462  A5 2D                    LDA     $2D
 4871  FE2464  38                       SEC 
 4872  FE2465  E9 04                    SBC     #$04
 4873  FE2467  85 2D                    STA     $2D
 4874  FE2469  B0 02                    BCS     ?01 
 4875  FE246B  C6 2E                    DEC     $2E
 4876  FE246D  60               ?01:    RTS 
 4877                           
 4878                           PC22:   ; $2B90 - $3172
 4879  FE246E  20 FE 24                 JSR     L2BA8
 4880  FE2471  20 0D 25                 JSR     L2C0C
 4881  FE2474  20 0C 94                 JSR     XB86A
 4882  FE2477  80 20                    bra     L2BF3
 4883                           
 4884                           PC23:   ; $2B9C - $317E
 4885  FE2479  20 FE 24                 JSR     L2BA8
 4886  FE247C  20 0D 25                 JSR     L2C0C
 4887  FE247F  20 F6 93                 JSR     XB853
 4888  FE2482  80 15                    bra     L2BF3
 4889                           
 4890                           PC24:   ; $2BDE - $31C0
 4891  FE2484  A0 00                    LDY     #$00
 4892  FE2486  B1 2D                    LDA     ($2D),Y
 4893  FE2488  49 80                    EOR     #$80
 4894  FE248A  30 07                    BMI     ?02 
 4895  FE248C  38                       SEC 
 4896  FE248D  A0 06                    LDY     #$06
 4897  FE248F  71 2D                    ADC     ($2D),Y
 4898  FE2491  B0 32                    BCS     er09 
 4899  FE2493  20 0D 25         ?02:    JSR     L2C0C
 4900  FE2496  20 E2 95                 JSR     XBA2B
 4901                           L2BF3:  ; $2BF3 - $31D5
 4902  FE2499  A5 2D                    LDA     $2D
 4903  FE249B  18                       CLC 
 4904  FE249C  69 06                    ADC     #$06
 4905  FE249E  85 2D                    STA     $2D
 4906  FE24A0  90 02                    BCC     ?02 
 4907  FE24A2  E6 2E                    INC     $2E
 4908  FE24A4  A4 2E            ?02:    LDY     $2E
 4909  FE24A6  AA                       TAX 
 4910  FE24A7  4C 92 97                 JMP     XBBD4
 4911                           
 4912                           PC25:   ; $2BB7 - $3199
 4913  FE24AA  B1 2D                    LDA     ($2D),Y
 4914  FE24AC  F0 17                    BEQ     er09 
 4915  FE24AE  A0 06                    LDY     #$06
 4916  FE24B0  B1 2D                    LDA     ($2D),Y
 4917  FE24B2  A0 00                    LDY     #$00
 4918  FE24B4  38                       SEC 
 4919  FE24B5  F1 2D                    SBC     ($2D),Y
 4920  FE24B7  90 04                    BCC     ?02 
 4921  FE24B9  69 81                    ADC     #$81
 4922  FE24BB  B0 08                    BCS     er09
 4923  FE24BD  20 0D 25         ?02:    JSR     L2C0C
  Tue Jul 17 11:00:23 2018                                                                                               Page   42




 4924  FE24C0  20 94 96                 JSR     XBB12
 4925  FE24C3  80 D4                    bra     L2BF3
 4926                           
 4927  FE24C5                   er09:
 4928  FE24C5  A2 09                    LDX     #$09            ; floating point overflow
 4929  FE24C7  4C 50 1B                 JMP     vpmerr
 4930                           
 4931                           PC26:   ; $2C41 - $3223
 4932  FE24CA  20 21 25                 JSR     L2C4A
 4933  FE24CD  C9 FF                    CMP     #$FF
 4934  FE24CF  F0 10                    BEQ     L2C25 
 4935  FE24D1  D0 12                    BNE     L2C28 
 4936                           
 4937                           PC27:   ; $2C38 - $321A
 4938  FE24D3  20 21 25                 JSR     L2C4A
 4939  FE24D6  C9 01                    CMP     #$01
 4940  FE24D8  F0 07                    BEQ     L2C25 
 4941  FE24DA  D0 09                    BNE     L2C28 
 4942                           
 4943                           PC28:   ; $2C20 - $3202
 4944  FE24DC  20 21 25                 JSR     L2C4A
 4945  FE24DF  F0 04                    BEQ     L2C28 
 4946                           L2C25:  ; $2C25 - $3207
 4947  FE24E1  A9 00                    LDA     #$00
 4948  FE24E3  80 02                    bra     L2C2A 
 4949                           L2C28:  ; $2C28 - $320A
 4950  FE24E5  A9 01                    lda     #$01
 4951  FE24E7                   L2C2A:  
 4952  FE24E7  A0 0A                    LDY     #$0A
 4953  FE24E9  91 2D                    STA     ($2D),Y
 4954  FE24EB  C8                       INY 
 4955  FE24EC  A9 00                    LDA     #$00
 4956  FE24EE  91 2D                    STA     ($2D),Y
 4957  FE24F0  A9 0A                    LDA     #$0A
 4958  FE24F2  4C 7B 27                 JMP     L155E
 4959                           
 4960                           PC29:   ; $2BD3 - $31B5
 4961  FE24F5  A0 01                    LDY     #$01
 4962  FE24F7  B1 2D                    LDA     ($2D),Y
 4963  FE24F9  49 80                    EOR     #$80
 4964  FE24FB  91 2D                    STA     ($2D),Y
 4965  FE24FD  60                       rts
 4966                           
 4967                           L2BA8:  ; $2BA8 - $318A
 4968  FE24FE  B1 2D                    LDA     ($2D),Y
 4969  FE2500  C9 FF                    CMP     #$FF
 4970  FE2502  F0 C1                    BEQ     er09 
 4971  FE2504  A0 06                    LDY     #$06
 4972  FE2506  B1 2D                    LDA     ($2D),Y
 4973  FE2508  C9 FF                    CMP     #$FF
 4974  FE250A  F0 B9                    BEQ     er09 
 4975  FE250C  60                       RTS 
 4976                           
 4977                           L2C0C:  ; $2C0C - $31EE
 4978  FE250D  A5 2D                    LDA     $2D
 4979  FE250F  A4 2E                    LDY     $2E
 4980  FE2511  20 33 97                 JSR     XBBA2
  Tue Jul 17 11:00:23 2018                                                                                               Page   43




 4981  FE2514  A5 2D                    LDA     $2D
 4982  FE2516  A4 2E                    LDY     $2E
 4983  FE2518  18                       CLC 
 4984  FE2519  69 06                    ADC     #$06
 4985  FE251B  90 01                    BCC     ?02 
 4986  FE251D  C8                       INY 
 4987  FE251E  4C 8D 93         ?02:    JMP     XBA8C
 4988                           
 4989                           L2C4A:  ; $2C4A - $322C
 4990  FE2521  A5 2D                    LDA     $2D
 4991  FE2523  18                       CLC 
 4992  FE2524  69 06                    ADC     #$06
 4993  FE2526  A4 2E                    LDY     $2E
 4994  FE2528  90 01                    BCC     ?01 
 4995  FE252A  C8                       INY 
 4996  FE252B  20 33 97         ?01:    JSR     XBBA2
 4997  FE252E  A5 2D                    LDA     $2D
 4998  FE2530  A4 2E                    LDY     $2E
 4999  FE2532  4C 1B 98                 JMP     XBC5B
 5000                           
 5001                           PC3A:   ; $175B - $19E6
 5002  FE2535  20 62 30                 JSR     L17A3
 5003  FE2538  A9 80                    LDA     #$80
 5004  FE253A  D0 05                    BNE     L1749 
 5005                           
 5006                           PC2A:   ; $1744 - $19CF
 5007  FE253C  20 62 30                 JSR     L17A3
 5008  FE253F  A9 40                    LDA     #$40
 5009                           L1749:  ; $1749 - $19D4
 5010  FE2541  A0 00                    LDY     #$00
 5011  FE2543  32 29                    AND     ($29)
 5012  FE2545  F0 02                    BEQ     ?02 
 5013  FE2547  A9 01                    LDA     #$01
 5014  FE2549  92 2D            ?02:    STA     ($2D)
 5015  FE254B  A9 00                    LDA     #$00
 5016  FE254D  C8                       INY 
 5017  FE254E  91 2D                    STA     ($2D),Y
 5018  FE2550  60                       rts
 5019                           
 5020                           PC2B:   ; $2B32 - $3114
 5021  FE2551  A5 2D                    LDA     $2D
 5022  FE2553  A4 2E                    LDY     $2E
 5023  FE2555  20 33 97                 JSR     XBBA2
 5024  FE2558  A5 2D                    LDA     $2D
 5025  FE255A  38                       SEC 
 5026  FE255B  E9 06                    SBC     #$06
 5027  FE255D  85 2D                    STA     $2D
 5028  FE255F  B0 02                    BCS     ?02 
 5029  FE2561  C6 2E                    DEC     $2E
 5030  FE2563  A4 2E            ?02:    LDY     $2E
 5031  FE2565  AA                       TAX 
 5032  FE2566  4C 92 97                 JMP     XBBD4
 5033                           
 5034                           PC2C:   ; $2B4D - $312F
 5035  FE2569  B1 2D                    LDA     ($2D),Y
 5036  FE256B  38                       SEC 
 5037  FE256C  E9 06                    SBC     #$06
  Tue Jul 17 11:00:23 2018                                                                                               Page   44




 5038  FE256E  AA                       TAX 
 5039  FE256F  C8                       INY 
 5040  FE2570  B1 2D                    LDA     ($2D),Y
 5041  FE2572  E9 00                    SBC     #$00
 5042  FE2574  A8                       TAY 
 5043  FE2575  8A                       TXA 
 5044  FE2576  20 33 97                 JSR     XBBA2
 5045  FE2579  20 62 24                 JSR     L2B26
 5046  FE257C  A6 2D                    LDX     $2D
 5047  FE257E  A4 2E                    LDY     $2E
 5048  FE2580  4C 92 97                 JMP     XBBD4
 5049                           
 5050                           PC2D:   ; $2B6A - $314C
 5051  FE2583  A5 2D                    LDA     $2D
 5052  FE2585  A4 2E                    LDY     $2E
 5053  FE2587  20 33 97                 JSR     XBBA2
 5054  FE258A  A0 06                    LDY     #$06
 5055  FE258C  B1 2D                    LDA     ($2D),Y
 5056  FE258E  38                       SEC 
 5057  FE258F  E9 06                    SBC     #$06
 5058  FE2591  AA                       TAX 
 5059  FE2592  C8                       INY 
 5060  FE2593  B1 2D                    LDA     ($2D),Y
 5061  FE2595  E9 00                    SBC     #$00
 5062  FE2597  A8                       TAY 
 5063  FE2598  20 92 97                 JSR     XBBD4
 5064  FE259B  A9 08                    LDA     #$08
 5065  FE259D  18                       CLC 
 5066  FE259E  65 2D                    ADC     $2D
 5067  FE25A0  85 2D                    STA     $2D
 5068  FE25A2  90 02                    BCC     ?02 
 5069  FE25A4  E6 2E                    INC     $2E
 5070  FE25A6  60               ?02:    rts
 5071                           
 5072                           PC2E:   ; $14B1 - $173C
 5073                                   ; clear set variable (16 bytes)
 5074  FE25A7  38                       SEC 
 5075  FE25A8  A5 2D                    LDA     $2D
 5076  FE25AA  E9 10                    SBC     #$10
 5077  FE25AC  85 2D                    STA     $2D
 5078  FE25AE  B0 02                    BCS     ?01 
 5079  FE25B0  C6 2E                    DEC     $2E
 5080  FE25B2  A0 0F            ?01:    LDY     #$0F
 5081  FE25B4  A9 00                    LDA     #$00
 5082  FE25B6  91 2D            ?02:    STA     ($2D),Y
 5083  FE25B8  88                       DEY 
 5084  FE25B9  10 FB                    BPL     ?02 
 5085  FE25BB  60                       rts
 5086                           
 5087                           PC2F:   ; $14C8 - $1753
 5088  FE25BC  B1 2D                    LDA     ($2D),Y
 5089  FE25BE  85 21                    STA     $21
 5090  FE25C0  C8                       INY 
 5091  FE25C1  B1 2D                    LDA     ($2D),Y
 5092  FE25C3  85 22                    STA     $22
 5093  FE25C5  20 CB 25                 JSR     L1506
 5094  FE25C8  4C 95 1E                 JMP     SK02
  Tue Jul 17 11:00:23 2018                                                                                               Page   45




 5095  FE25CB                           
 5096                           L1506:  ; $1506 - $1791
 5097  FE25CB  A5 22                    LDA     $22
 5098  FE25CD  D0 1B                    BNE     ?04             ; error 
 5099  FE25CF  A5 21                    LDA     $21
 5100  FE25D1  30 17                    BMI     ?04             ; error 
 5101  FE25D3  4A                       LSR     a 
 5102  FE25D4  4A                       LSR     a 
 5103  FE25D5  4A                       LSR     a 
 5104  FE25D6  A8                       TAY 
 5105  FE25D7  C8                       INY 
 5106  FE25D8  C8                       INY 
 5107  FE25D9  A5 21                    LDA     $21
 5108  FE25DB  29 07                    AND     #$07
 5109  FE25DD  AA                       TAX 
 5110  FE25DE  A9 00                    LDA     #$00
 5111  FE25E0  38                       SEC 
 5112  FE25E1  2A               ?02:    ROL     a 
 5113  FE25E2  CA                       DEX 
 5114  FE25E3  10 FC                    BPL     ?02 
 5115  FE25E5  11 2D                    ORA     ($2D),Y
 5116  FE25E7  91 2D                    STA     ($2D),Y
 5117  FE25E9  60                       RTS 
 5118  FE25EA  A2 08            ?04:    LDX     #$08            ; error: set value error
 5119  FE25EC  4C 50 1B                 JMP     vpmerr
 5120                           
 5121                           PC30:   ; $14D7 - $1762
 5122                                   ; set variable
 5123  FE25EF  B2 2D                    LDA     ($2D)
 5124  FE25F1  85 23                    STA     $23
 5125  FE25F3                           ACC16
 5126  FE25F3  C2 20                    rep     #PMFLAG
 5127                                   .LONGA  on
 5128                                   .MNLIST
 5129  FE25F5  A0 02                    LDY     #$02
 5130  FE25F7  B1 2D                    LDA     ($2D),Y
 5131  FE25F9  85 21                    STA     $21
 5132  FE25FB  C8                       INY 
 5133  FE25FC  A5 2D                    LDA     $2D
 5134  FE25FE  1A                       inc     a
 5135  FE25FF  1A                       inc     a
 5136  FE2600  85 2D                    STA     $2D
 5137  FE2602                           ACC08
 5138  FE2602  E2 20                    sep     #PMFLAG
 5139                                   .LONGA  off
 5140                                   .MNLIST
 5141  FE2604  A5 23            ?02:    LDA     $23
 5142  FE2606  C5 21                    CMP     $21
 5143  FE2608  90 0B                    BCC     ?04 
 5144  FE260A  20 CB 25                 JSR     L1506
 5145  FE260D  E6 21                    INC     $21
 5146  FE260F  D0 F3                    BNE     ?02 
 5147  FE2611  E6 22                    INC     $22
 5148  FE2613  80 EF                    bra     ?02
 5149  FE2615  4C 95 1E         ?04:    jmp     SK02
 5150                           
 5151                           PC31:   ; $152A - $17B5
  Tue Jul 17 11:00:23 2018                                                                                               Page   46




 5152                                   ; operator 'or' for set variable
 5153  FE2618  B1 2D                    LDA     ($2D),Y
 5154  FE261A  99 C0 FF                 STA     MMSET,Y         ; (16 bytes)
 5155  FE261D  C8                       INY 
 5156  FE261E  C0 10                    CPY     #$10
 5157  FE2620  D0 F6                    BNE     PC31 
 5158  FE2622  B1 2D            ?02:    LDA     ($2D),Y
 5159  FE2624  19 B0 FF                 ORA     MMSET-16,Y
 5160  FE2627  91 2D                    STA     ($2D),Y
 5161  FE2629  C8                       INY 
 5162  FE262A  C0 20                    CPY     #$20
 5163  FE262C  D0 F4                    BNE     ?02 
 5164  FE262E  4C 82 20                 JMP     L13B5
 5165                           
 5166                           PC32:   ; $xxxx - $29E2
 5167  FE2631  24 97                    bit     runf
 5168  FE2633  10 69                    bpl     PC32x
 5169  FE2635  20 57 27                 JSR     R29D7
 5170  FE2638  B9 B0 FF         ?02:    LDA     MMSET-16,Y
 5171  FE263B  49 FF                    EOR     #$FF
 5172  FE263D  31 2D                    AND     ($2D),Y
 5173  FE263F  91 2D                    STA     ($2D),Y
 5174  FE2641  C8                       INY 
 5175  FE2642  C0 20                    CPY     #$20
 5176  FE2644  D0 F2                    BNE     ?02 
 5177  FE2646  F0 13                    BEQ     R2A04 
 5178                           
 5179                           PC33:   ; $xxxx - $29F5
 5180  FE2648  24 97                    bit     runf
 5181  FE264A  10 52                    bpl     PC32x
 5182  FE264C  20 57 27                 JSR     R29D7
 5183  FE264F  B9 B0 FF         ?02:    LDA     MMSET-16,Y
 5184  FE2652  31 2D                    AND     ($2D),Y
 5185  FE2654  91 2D                    STA     ($2D),Y
 5186  FE2656  C8                       INY 
 5187  FE2657  C0 20                    CPY     #$20
 5188  FE2659  D0 F4                    BNE     ?02 
 5189  FE265B                   R2A04:
 5190  FE265B  A9 10                    LDA     #$10
 5191  FE265D  4C 7B 27                 JMP     R17E9
 5192  FE2660                           
 5193                           PC34:   ; $xxxx - $298F
 5194  FE2660  24 97                    bit     runf
 5195  FE2662  10 3A                    bpl     PC32x
 5196  FE2664  20 57 27                 JSR     R29D7
 5197  FE2667  B1 2D            ?02:    LDA     ($2D),Y
 5198  FE2669  D9 B0 FF                 CMP     MMSET-16,Y
 5199  FE266C  D0 09                    BNE     R29A1 
 5200  FE266E  C8                       INY 
 5201  FE266F  C0 20                    CPY     #$20
 5202  FE2671  D0 F4                    BNE     ?02 
 5203  FE2673  A9 01            R299E:  LDA     #$01
 5204  FE2675  80 02                    bra     R29A3
 5205  FE2677  A9 00            R29A1:  lda     #$00
 5206  FE2679  A0 1E            R29A3:  LDY     #$1E
 5207  FE267B  91 2D                    STA     ($2D),Y
 5208  FE267D  A9 00                    LDA     #$00
  Tue Jul 17 11:00:23 2018                                                                                               Page   47




 5209  FE267F  C8                       INY 
 5210  FE2680  91 2D                    STA     ($2D),Y
 5211  FE2682  A9 1E                    LDA     #$1E
 5212  FE2684  4C 7B 27                 JMP     R17E9
 5213                           
 5214                           PC35:   ; $xxxx - $29C4
 5215  FE2687  24 97                    bit     runf
 5216  FE2689  10 13                    bpl     PC32x
 5217  FE268B  20 57 27                 JSR     R29D7
 5218  FE268E  B9 B0 FF         ?02:    LDA     MMSET-16,Y
 5219  FE2691  49 FF                    EOR     #$FF
 5220  FE2693  31 2D                    AND     ($2D),Y
 5221  FE2695  D0 E0                    BNE     R29A1 
 5222  FE2697  C8                       INY 
 5223  FE2698  C0 20                    CPY     #$20
 5224  FE269A  D0 F2                    BNE     ?02 
 5225  FE269C  F0 D5                    BEQ     R299E 
 5226                           
 5227  FE269E                   PC32x:  
 5228  FE269E  4C 4E 1B                 JMP     vpme07          ; error: bad p-code
 5229                           
 5230                           PC36:   ; $xxxx - $29B1
 5231  FE26A1  24 97                    bit     runf
 5232  FE26A3  10 F9                    bpl     PC32x
 5233  FE26A5  20 57 27                 JSR     R29D7
 5234  FE26A8  B1 2D            ?02:    LDA     ($2D),Y
 5235  FE26AA  49 FF                    EOR     #$FF
 5236  FE26AC  39 B0 FF                 AND     MMSET-16,Y
 5237  FE26AF  D0 C6                    BNE     R29A1 
 5238  FE26B1  C8                       INY 
 5239  FE26B2  C0 20                    CPY     #$20
 5240  FE26B4  D0 F2                    BNE     ?02 
 5241  FE26B6  F0 BB                    BEQ     R299E
 5242                           
 5243                           PC3C:   ; $xxxx - $2B47
 5244                                   ; 'reset' for generic device
 5245  FE26B8  24 97                    bit     runf
 5246  FE26BA  10 E2                    bpl     PC32x           ; error if compiler
 5247  FE26BC  20 FA 26                 JSR     R2B84           ; open device
 5248  FE26BF  A0 03                    LDY     #$03
 5249  FE26C1  B1 2D                    LDA     ($2D),Y         ; high byte of secondary address
 5250  FE26C3  D0 04                    BNE     ?02
 5251  FE26C5  A9 A0                    LDA     #$A0
 5252  FE26C7  80 02                    bra     ?04 
 5253  FE26C9  A9 A4            ?02:    lda     #$A4
 5254  FE26CB  92 29            ?04:    STA     ($29)
 5255  FE26CD                   R2B59:
 5256  FE26CD  A5 2D                    LDA     $2D
 5257  FE26CF  18                       CLC 
 5258  FE26D0  69 08                    ADC     #$08
 5259  FE26D2  85 2D                    STA     $2D
 5260  FE26D4  90 02                    BCC     ?02 
 5261  FE26D6  E6 2E                    INC     $2E
 5262  FE26D8  60               ?02:    rts
 5263                           
 5264                           PC3D:   ; $xxxx - $2B67
 5265                                   ; 'rewrite' for generic device
  Tue Jul 17 11:00:23 2018                                                                                               Page   48




 5266  FE26D9  24 97                    bit     runf
 5267  FE26DB  10 C1                    bpl     PC32x           ; error if compiler
 5268  FE26DD  20 FA 26                 JSR     R2B84           ; open device
 5269  FE26E0  38                       SEC 
 5270  FE26E1  A5 29                    LDA     $29
 5271  FE26E3  E9 02                    SBC     #$02
 5272  FE26E5  85 29                    STA     $29
 5273  FE26E7  B0 02                    BCS     ?02 
 5274  FE26E9  C6 2A                    DEC     $2A
 5275  FE26EB  A0 00            ?02:    LDY     #$00
 5276  FE26ED  A9 20                    LDA     #$20
 5277  FE26EF  91 29                    STA     ($29),Y
 5278  FE26F1  98                       TYA 
 5279  FE26F2  C8                       INY 
 5280  FE26F3  91 29                    STA     ($29),Y
 5281  FE26F5  C8                       INY 
 5282  FE26F6  91 29                    STA     ($29),Y
 5283  FE26F8  80 D3                    bra     R2B59                   ; branch always
 5284                           
 5285                           R2B84:  ; $xxxx - $2BB4
 5286                                   ; setup params for generic device (rewrite or reset)
 5287  FE26FA  64 3E                    STZ     $3E
 5288  FE26FC  B1 2D                    LDA     ($2D),Y         ; offset 0: file name address
 5289  FE26FE  85 BB                    STA     $BB
 5290  FE2700  C8                       INY 
 5291  FE2701  B1 2D                    LDA     ($2D),Y
 5292  FE2703  85 BC                    STA     $BC
 5293  FE2705  A5 A1                    lda     tbnk
 5294  FE2707  85 BD                    sta     $BD
 5295  FE2709  C8                       INY 
 5296  FE270A  B1 2D                    LDA     ($2D),Y         ; offset 2: secondary address
 5297  FE270C  85 B9                    STA     $B9
 5298  FE270E  A0 04                    LDY     #$04
 5299  FE2710  B1 2D                    LDA     ($2D),Y         ; offset 4: # device
 5300  FE2712  85 BA                    STA     $BA
 5301  FE2714  A0 06                    LDY     #$06
 5302  FE2716  B1 2D                    LDA     ($2D),Y         ; offset 6: file desc. ptr
 5303  FE2718  38                       SEC 
 5304  FE2719  E9 03                    SBC     #$03
 5305  FE271B  91 2D                    STA     ($2D),Y
 5306  FE271D  85 29                    STA     $29
 5307  FE271F  C8                       INY 
 5308  FE2720  B1 2D                    LDA     ($2D),Y
 5309  FE2722  E9 00                    SBC     #$00
 5310  FE2724  91 2D                    STA     ($2D),Y
 5311  FE2726  85 2A                    STA     $2A
 5312  FE2728  A0 02                    LDY     #$02
 5313  FE272A  91 29                    STA     ($29),Y
 5314  FE272C  88                       DEY 
 5315  FE272D  A5 29                    LDA     $29
 5316  FE272F  91 29                    STA     ($29),Y
 5317  FE2731  20 4B 32                 JSR     R0F8D           ; search file
 5318  FE2734  A5 B8                    LDA     $B8
 5319  FE2736  30 05                    BMI     ?02             ; not found 
 5320  FE2738  20 C3 FF                 JSR     FCLOSE
 5321  FE273B  80 03                    bra     ?04
 5322  FE273D  20 CE 31         ?02:    JSR     R0F69           ; open internal logic file
  Tue Jul 17 11:00:23 2018                                                                                               Page   49




 5323  FE2740  A5 3E            ?04:    LDA     $3E
 5324  FE2742  D0 1D                    BNE     R29D7x          ; if any error 
 5325  FE2744  A5 BB                    LDA     $BB
 5326  FE2746  05 BC                    ORA     $BC
 5327  FE2748  F0 08                    BEQ     ?08             ; if no filename 
 5328  FE274A  A0 00                    LDY     #$00
 5329  FE274C  C8               ?06:    INY 
 5330  FE274D  B7 BB                    LDA     [$BB],Y
 5331  FE274F  D0 FB                    BNE     ?06 
 5332  FE2751  98                       TYA 
 5333  FE2752  85 B7            ?08:    STA     $B7
 5334  FE2754  4C C0 FF                 JMP     FOPEN
 5335                           
 5336                           R29D7:  ; $xxxx - $29D7
 5337  FE2757  B1 2D                    LDA     ($2D),Y
 5338  FE2759  99 C0 FF                 STA     MMSET,Y
 5339  FE275C  C8                       INY 
 5340  FE275D  C0 10                    CPY     #$10
 5341  FE275F  D0 F6                    BNE     R29D7 
 5342  FE2761  60               R29D7x: RTS 
 5343                           
 5344                           PC38:   ; $1543 - $17CE
 5345  FE2762  A0 10                    LDY     #$10
 5346  FE2764                           ACC16
 5347  FE2764  C2 20                    rep     #PMFLAG
 5348                                   .LONGA  on
 5349                                   .MNLIST
 5350  FE2766  B1 2D                    LDA     ($2D),Y
 5351  FE2768  38                       SEC 
 5352  FE2769  E9 10 00                 SBC     #$0010
 5353  FE276C  85 27                    STA     $27
 5354  FE276E                           ACC08
 5355  FE276E  E2 20                    sep     #PMFLAG
 5356                                   .LONGA  off
 5357                                   .MNLIST
 5358  FE2770  A0 0F                    LDY     #$0F
 5359  FE2772  B1 2D            ?02:    LDA     ($2D),Y
 5360  FE2774  91 27                    STA     ($27),Y
 5361  FE2776  88                       DEY 
 5362  FE2777  10 F9                    BPL     ?02 
 5363  FE2779  A9 12                    LDA     #$12
 5364  FE277B                   R17E9:
 5365                           L155E:  ; $155E - $17E9 
 5366  FE277B  18                       CLC 
 5367  FE277C  65 2D                    ADC     $2D
 5368  FE277E  85 2D                    STA     $2D
 5369  FE2780  90 02                    BCC     ?04 
 5370  FE2782  E6 2E                    INC     $2E
 5371  FE2784  60               ?04:    rts
 5372                           
 5373                           PC39:   ; $2A93 - $3075
 5374                                   ; return from real function
 5375  FE2785  A5 2D                    LDA     $2D
 5376  FE2787  A4 2E                    LDY     $2E
 5377  FE2789  20 33 97                 JSR     XBBA2
 5378  FE278C                           ACC16
 5379  FE278C  C2 20                    rep     #PMFLAG
  Tue Jul 17 11:00:23 2018                                                                                               Page   50




 5380                                   .LONGA  on
 5381                                   .MNLIST
 5382  FE278E  A5 2F                    LDA     $2F
 5383  FE2790  85 2D                    STA     $2D
 5384  FE2792  A0 02                    LDY     #$02
 5385  FE2794  B1 2D                    LDA     ($2D),Y
 5386  FE2796  85 2F                    STA     $2F
 5387  FE2798  C8                       INY 
 5388  FE2799  C8                       INY 
 5389  FE279A  B1 2D                    LDA     ($2D),Y
 5390  FE279C  85 2B                    STA     $2B
 5391  FE279E                           ACC08
 5392  FE279E  E2 20                    sep     #PMFLAG
 5393                                   .LONGA  off
 5394                                   .MNLIST
 5395  FE27A0  A6 2D                    LDX     $2D
 5396  FE27A2  A4 2E                    LDY     $2E
 5397  FE27A4  4C 92 97                 JMP     XBBD4
 5398                           
 5399                           PC52:   ; $1B32 - $1DBD
 5400  FE27A7                   PC53:
 5401  FE27A7  20 17 2A                 JSR     L1B8B
 5402  FE27AA  80 0E                    bra     L19C1
 5403                           
 5404                           PC58:   ; $1B38 - $1DC3 
 5405  FE27AC                   PC59:
 5406  FE27AC  A2 31                    LDX     #$31
 5407  FE27AE  A5 24                    LDA     $24
 5408  FE27B0  85 28                    STA     $28
 5409  FE27B2  A5 23                    LDA     $23
 5410  FE27B4  80 04                    bra     L19C1
 5411                           
 5412  FE27B6                   L19BD:
 5413                           PC80:   ; $19BD - $1C48 
 5414  FE27B6  86 28                    STX     $28
 5415  FE27B8  A2 2F                    LDX     #$2F
 5416                           L19C1:  ; $19C1 - $1C4C
 5417  FE27BA  0A                       ASL     a 
 5418  FE27BB  26 28                    ROL     $28
 5419  FE27BD  85 27                    STA     $27
 5420  FE27BF                           ACC16
 5421  FE27BF  C2 20                    rep     #PMFLAG
 5422                                   .LONGA  on
 5423                                   .MNLIST
 5424  FE27C1  A5 2D                    LDA     $2D
 5425  FE27C3  3A                       dec     a
 5426  FE27C4  3A                       dec     a
 5427  FE27C5  85 2D                    STA     $2D
 5428  FE27C7  B5 00                    LDA     <$00,X
 5429  FE27C9  38                       SEC 
 5430  FE27CA  E5 27                    SBC     $27
 5431  FE27CC  92 2D                    STA     ($2D)
 5432  FE27CE                           ACC08
 5433  FE27CE  E2 20                    sep     #PMFLAG
 5434                                   .LONGA  off
 5435                                   .MNLIST
 5436  FE27D0  60                       rts
  Tue Jul 17 11:00:23 2018                                                                                               Page   51




 5437                           
 5438                           PC56:   ; $1B26 - $1DB1
 5439  FE27D1                   PC57:
 5440  FE27D1  20 17 2A                 JSR     L1B8B
 5441  FE27D4  80 04                    bra     PC90a
 5442                           
 5443                           PC90:   ; $195B - $1BE6
 5444  FE27D6  86 28                    STX     $28
 5445  FE27D8  A2 2F                    LDX     #$2F
 5446                           
 5447                           PC90a:  ; $195F - $1BEA
 5448  FE27DA  85 27                    STA     $27
 5449  FE27DC                           ACC16
 5450  FE27DC  C2 20                    rep     #PMFLAG
 5451                                   .LONGA  on
 5452                                   .MNLIST
 5453  FE27DE  E6 27                    INC     $27
 5454  FE27E0  06 27                    ASL     $27
 5455  FE27E2  38                       SEC
 5456  FE27E3  B5 00                    LDA     <$00,X
 5457  FE27E5  E5 27                    SBC     $27
 5458  FE27E7  85 27                    STA     $27
 5459  FE27E9  A5 2D                    LDA     $2D
 5460  FE27EB  3A                       dec     a
 5461  FE27EC  3A                       dec     a
 5462  FE27ED  85 2D                    STA     $2D
 5463  FE27EF  B2 27                    LDA     ($27)
 5464  FE27F1  92 2D                    STA     ($2D)
 5465  FE27F3                           ACC08
 5466  FE27F3  E2 20                    sep     #PMFLAG
 5467                                   .LONGA  off
 5468                                   .MNLIST
 5469  FE27F5  60                       rts
 5470                           
 5471                           PC54:   ; 1B2C - $1DB7
 5472  FE27F6                   PC55:
 5473  FE27F6  20 17 2A                 JSR     L1B8B
 5474  FE27F9  80 0A                    bra     L19E6
 5475                           
 5476                           PCE0:   ; $198F - $1C1A 
 5477  FE27FB  86 28                    STX     $28
 5478  FE27FD  A2 31                    LDX     #$31
 5479  FE27FF  80 D9                    BRA     PC90a
 5480                           
 5481                           PCA0:   ; $19E2 - $1C6D 
 5482  FE2801  86 28                    STX     $28
 5483  FE2803  A2 2F                    LDX     #$2F
 5484                           
 5485  FE2805                   L19E6:
 5486                           PCA0a:  ; $19E6 - $1C71
 5487  FE2805  85 27                    STA     $27
 5488  FE2807                           ACC16
 5489  FE2807  C2 20                    rep     #PMFLAG
 5490                                   .LONGA  on
 5491                                   .MNLIST
 5492  FE2809  E6 27                    INC     $27
 5493  FE280B  06 27                    ASL     $27
  Tue Jul 17 11:00:23 2018                                                                                               Page   52




 5494  FE280D  38                       SEC
 5495  FE280E  B5 00                    LDA     <$00,X
 5496  FE2810  E5 27                    SBC     $27
 5497  FE2812  85 27                    STA     $27
 5498  FE2814  B2 2D                    LDA     ($2D)
 5499  FE2816  92 27                    STA     ($27)
 5500  FE2818  A5 2D                    LDA     $2D
 5501  FE281A  1A                       inc     a
 5502  FE281B  1A                       inc     a
 5503  FE281C  85 2D                    STA     $2D
 5504  FE281E                           ACC08
 5505  FE281E  E2 20                    sep     #PMFLAG
 5506                                   .LONGA  off
 5507                                   .MNLIST
 5508  FE2820  60                       rts
 5509                           
 5510                           PCF0:   ; $1A17 - $1CA2
 5511  FE2821  86 28                    STX     $28
 5512  FE2823  A2 31                    LDX     #$31
 5513  FE2825  80 DE                    BRA     PCA0a 
 5514                           
 5515                           PC4D:   ; $1BB9 - $1E44
 5516                                   ; place a p-code pointer in stack
 5517  FE2827                           
 5518  FE2827  24 97                    bit     runf
 5519  FE2829  30 0A                    bmi     ?02
 5520  FE282B  A5 24                    lda     $24
 5521  FE282D  38                       sec
 5522  FE282E  E9 30                    sbc     #>PCCDST
 5523  FE2830  AA                       tax
 5524  FE2831  A5 23                    lda     $23
 5525  FE2833  80 04                    bra     PCB0
 5526                           
 5527  FE2835  A5 23            ?02:    LDA     $23
 5528  FE2837  A6 24                    LDX     $24
 5529                           
 5530  FE2839                   L1945:  
 5531                           PCB0:   ; $1945 - $1BD0
 5532                                   ; push integer AX into stack 
 5533  FE2839  EB                       xba
 5534  FE283A  8A                       txa                     ; byte high
 5535  FE283B  EB                       xba
 5536  FE283C                           CPU16
 5537  FE283C  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 5538                                   .LONGA  on
 5539                                   .LONGI  on
 5540                                   .MNLIST
 5541  FE283E  A8                       tay 
 5542  FE283F  A5 2D                    LDA     $2D
 5543  FE2841  3A                       dec     a
 5544  FE2842  3A                       dec     a
 5545  FE2843  85 2D                    STA     $2D
 5546  FE2845  98                       tya 
 5547  FE2846  92 2D                    STA     ($2D)
 5548  FE2848                           CPU08
 5549  FE2848  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 5550                                   .LONGA  off
  Tue Jul 17 11:00:23 2018                                                                                               Page   53




 5551                                   .LONGI  off
 5552                                   .MNLIST
 5553  FE284A  60                       rts
 5554                           
 5555                           PCC0:   ; $1995 - $1C20 
 5556  FE284B  85 27                    STA     $27
 5557  FE284D  86 28                    STX     $28
 5558  FE284F                           ACC16
 5559  FE284F  C2 20                    rep     #PMFLAG
 5560                                   .LONGA  on
 5561                                   .MNLIST
 5562  FE2851  E6 27                    INC     $27
 5563  FE2853  06 27                    ASL     $27
 5564  FE2855  38                       SEC
 5565  FE2856  B2 2D                    LDA     ($2D)
 5566  FE2858  E5 27                    SBC     $27
 5567  FE285A  85 27                    STA     $27
 5568  FE285C  B2 27                    LDA     ($27)
 5569  FE285E  92 2D                    STA     ($2D)
 5570  FE2860                           ACC08
 5571  FE2860  E2 20                    sep     #PMFLAG
 5572                                   .LONGA  off
 5573                                   .MNLIST
 5574  FE2862  60                       rts
 5575  FE2863                           
 5576                           PCD0:   ; $1A1D - $1CA8
 5577  FE2863  86 28                    STX     $28
 5578  FE2865  85 27                    STA     $27
 5579  FE2867                           ACC16
 5580  FE2867  C2 20                    rep     #PMFLAG
 5581                                   .LONGA  on
 5582                                   .MNLIST
 5583  FE2869  E6 27                    INC     $27
 5584  FE286B  06 27                    ASL     $27
 5585  FE286D  38                       SEC 
 5586  FE286E  A0 02                    LDY     #$02
 5587  FE2870  B1 2D                    LDA     ($2D),Y
 5588  FE2872  E5 27                    SBC     $27
 5589  FE2874  85 27                    STA     $27
 5590  FE2876  B2 2D                    LDA     ($2D)
 5591  FE2878  92 27                    STA     ($27)
 5592  FE287A  18                       CLC 
 5593  FE287B  A5 2D                    LDA     $2D
 5594  FE287D  69 04 00                 ADC     #$0004
 5595  FE2880  85 2D                    STA     $2D
 5596  FE2882                           ACC08
 5597  FE2882  E2 20                    sep     #PMFLAG
 5598                                   .LONGA  off
 5599                                   .MNLIST
 5600  FE2884  60                       rts
 5601                           
 5602                           PC40:   ; $156A - $17F5
 5603                                   ; absolute jmp to p-code - update p-code pointer
 5604  FE2885                           ACC16
 5605  FE2885  C2 20                    rep     #PMFLAG
 5606                                   .LONGA  on
 5607                                   .MNLIST
  Tue Jul 17 11:00:23 2018                                                                                               Page   54




 5608  FE2887  A5 23                    LDA     $23
 5609  FE2889  1A                       inc     a
 5610  FE288A  F0 0E                    beq     ?02
 5611  FE288C  3A                       dec     a
 5612  FE288D  A6 97                    ldx     runf
 5613  FE288F  30 04                    bmi     ?01
 5614  FE2891  38                       sec
 5615  FE2892  E9 00 30                 sbc     #PCCDST
 5616  FE2895  85 2B            ?01:    STA     $2B
 5617  FE2897                           CPU08
 5618  FE2897  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 5619                                   .LONGA  off
 5620                                   .LONGI  off
 5621                                   .MNLIST
 5622  FE2899  60                       rts
 5623  FE289A  A2 0B            ?02:    LDX     #$0B            ; undefined goto
 5624  FE289C                   _jer:   CPU08   
 5625  FE289C  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 5626                                   .LONGA  off
 5627                                   .LONGI  off
 5628                                   .MNLIST
 5629  FE289E  4C 50 1B                 JMP     vpmerr
 5630                           
 5631                           PC41:   ; $1580 - $180B
 5632                                   ; absolute conditioned jmp to p-code  - update p-code pointer
 5633  FE28A1  B2 2D                    LDA     ($2D)
 5634  FE28A3  6A                       ROR     a 
 5635  FE28A4  B0 0F                    BCS     ?02
 5636  FE28A6                           ACC16
 5637  FE28A6  C2 20                    rep     #PMFLAG
 5638                                   .LONGA  on
 5639                                   .MNLIST
 5640  FE28A8  A5 23                    LDA     $23
 5641  FE28AA  A6 97                    ldx     runf
 5642  FE28AC  30 03                    bmi     ?01
 5643  FE28AE  E9 FF 2F                 sbc     #PCCDST-1       ; here CF=0
 5644  FE28B1  85 2B            ?01:    STA     $2B
 5645  FE28B3                           ACC08
 5646  FE28B3  E2 20                    sep     #PMFLAG
 5647                                   .LONGA  off
 5648                                   .MNLIST
 5649  FE28B5  4C 95 1E         ?02:    JMP     SK02
 5650                           
 5651                           PC42:   ; $1590 - $181B
 5652                                   ; 'case' jmp table - update p-code pointer
 5653  FE28B8  A2 06                    LDX     #$06            ; case error
 5654  FE28BA  38                       SEC
 5655  FE28BB  24 97                    bit     runf
 5656  FE28BD                           ACC16
 5657  FE28BD  C2 20                    rep     #PMFLAG
 5658                                   .LONGA  on
 5659                                   .MNLIST
 5660  FE28BF  30 09                    bmi     ?01
 5661  FE28C1  A5 23                    lda     $23
 5662  FE28C3  E9 00 30                 sbc     #PCCDST
 5663  FE28C6  85 23                    sta     $23
 5664  FE28C8  90 D2                    bcc     _jer
  Tue Jul 17 11:00:23 2018                                                                                               Page   55




 5665  FE28CA  B2 2D            ?01:    LDA     ($2D)
 5666  FE28CC  F2 23                    SBC     ($23)
 5667  FE28CE  85 27                    STA     $27
 5668  FE28D0  30 CA                    BMI     _jer            ; error 
 5669  FE28D2  A5 23                    LDA     $23
 5670  FE28D4  1A                       inc     a
 5671  FE28D5  1A                       inc     a
 5672  FE28D6  85 23                    STA     $23 
 5673  FE28D8  B2 23                    LDA     ($23)
 5674  FE28DA  38                       sec
 5675  FE28DB  F2 2D                    SBC     ($2D)
 5676  FE28DD  30 BD                    BMI     _jer 
 5677  FE28DF  06 27                    ASL     $27
 5678  FE28E1  A5 23                    LDA     $23
 5679  FE28E3  65 27                    ADC     $27
 5680  FE28E5  85 27                    STA     $27
 5681  FE28E7  A0 02                    LDY     #$02
 5682  FE28E9  B1 27                    LDA     ($27),Y
 5683  FE28EB  C9 00 FF                 cmp     #$FF00
 5684  FE28EE  B0 AC                    bcs     _jer            ; error
 5685  FE28F0  A6 97                    ldx     runf
 5686  FE28F2  30 03                    bmi     ?02
 5687  FE28F4  E9 FF 2F                 sbc     #PCCDST-1       ; here CF=0
 5688  FE28F7  85 2B            ?02:    STA     $2B
 5689  FE28F9                           ACC08
 5690  FE28F9  E2 20                    sep     #PMFLAG
 5691                                   .LONGA  off
 5692                                   .MNLIST
 5693  FE28FB  4C 95 1E                 JMP     SK02
 5694                           
 5695                           PC43:   ; $15F8 - $1883
 5696  FE28FE  24 97                    bit     runf
 5697  FE2900  30 07                    bmi     ?02
 5698  FE2902  38                       sec
 5699  FE2903  A5 24                    lda     $24
 5700  FE2905  E9 30                    sbc     #>PCCDST
 5701  FE2907  85 24                    sta     $24     
 5702  FE2909  20 49 29         ?02:    JSR     L15DB
 5703  FE290C  4C 95 1E                 JMP     SK02
 5704                           
 5705                           PC44:   ; $15FE - $1889
 5706  FE290F  24 97                    bit     runf
 5707  FE2911  30 07                    bmi     ?01
 5708  FE2913  38                       sec
 5709  FE2914  A5 24                    lda     $24
 5710  FE2916  E9 30                    sbc     #>PCCDST
 5711  FE2918  85 24                    sta     $24
 5712  FE291A  A2 04            ?01:    LDX     #$04            ; error: array index
 5713  FE291C  20 B2 29                 JSR     L1656
 5714  FE291F  20 66 29                 JSR     L1626
 5715  FE2922  A0 00                    LDY     #$00
 5716  FE2924  B1 23                    LDA     ($23),Y
 5717  FE2926  A0 02                    LDY     #$02
 5718  FE2928  51 23                    EOR     ($23),Y
 5719  FE292A  4A                       LSR     a 
 5720  FE292B  B0 06                    BCS     ?02 
 5721  FE292D  E6 21                    INC     $21
  Tue Jul 17 11:00:23 2018                                                                                               Page   56




 5722  FE292F  D0 02                    BNE     ?02 
 5723  FE2931  E6 22                    INC     $22
 5724  FE2933  18               ?02:    CLC 
 5725  FE2934  20 56 29                 JSR     L15E8
 5726  FE2937  4C 95 1E                 JMP     SK02
 5727                           
 5728                           PC45:   ; $161E - $18A9
 5729  FE293A  A2 05                    LDX     #$05            ; variable out of range
 5730  FE293C  24 97                    bit     runf
 5731  FE293E  30 72                    bmi     L1656
 5732  FE2940  38                       sec
 5733  FE2941  A5 24                    lda     $24
 5734  FE2943  E9 30                    sbc     #>PCCDST
 5735  FE2945  85 24                    sta     $24     
 5736  FE2947  80 69                    bra     L1656
 5737                           
 5738                           L15DB:  ; $15DB - $1866
 5739  FE2949                   R1866:
 5740  FE2949  A2 04                    LDX     #$04            ; error: array index
 5741  FE294B  20 B2 29                 JSR     L1656
 5742  FE294E  20 66 29                 JSR     L1626
 5743  FE2951  06 21                    ASL     $21
 5744  FE2953  26 22                    ROL     $22
 5745  FE2955  38                       SEC 
 5746                           L15E8:  ; $15E8 - $1873
 5747  FE2956  A0 02                    LDY     #$02
 5748  FE2958  B1 2D                    LDA     ($2D),Y
 5749  FE295A  E5 21                    SBC     $21
 5750  FE295C  91 2D                    STA     ($2D),Y
 5751  FE295E  C8                       INY 
 5752  FE295F  B1 2D                    LDA     ($2D),Y
 5753  FE2961  E5 22                    SBC     $22
 5754  FE2963  91 2D                    STA     ($2D),Y
 5755  FE2965  60                       RTS 
 5756                           
 5757                           L1626:  ; $1626 - $18B1
 5758  FE2966  A0 02                    LDY     #$02
 5759  FE2968  38                       SEC
 5760  FE2969                           ACC16
 5761  FE2969  C2 20                    rep     #PMFLAG
 5762                                   .LONGA  on
 5763                                   .MNLIST
 5764  FE296B  B1 23                    LDA     ($23),Y
 5765  FE296D  F2 2D                    SBC     ($2D)
 5766  FE296F  85 21                    STA     $21
 5767  FE2971                           ACC08
 5768  FE2971  E2 20                    sep     #PMFLAG
 5769                                   .LONGA  off
 5770                                   .MNLIST
 5771  FE2973  A0 04                    LDY     #$04
 5772  FE2975  B1 23                    LDA     ($23),Y
 5773  FE2977  85 25                    STA     $25
 5774  FE2979  4A                       LSR     a 
 5775  FE297A  C8                       INY 
 5776  FE297B  11 23                    ORA     ($23),Y
 5777  FE297D  F0 5E                    BEQ     L1681 
 5778  FE297F  B1 23                    LDA     ($23),Y
  Tue Jul 17 11:00:23 2018                                                                                               Page   57




 5779  FE2981  85 26                    STA     $26
 5780  FE2983  A5 21                    LDA     $21
 5781  FE2985  85 23                    STA     $23
 5782  FE2987  A5 22                    LDA     $22
 5783  FE2989  85 24                    STA     $24
 5784                                   ;;JMP   imult
 5785                           
 5786                           ; mult integer $23-24 and $25-$26 and leave result in $21-$22
 5787                           ; $17E3 - $1A6E
 5788  FE298B                   imult:
 5789  FE298B  A9 00                    LDA     #$00
 5790  FE298D  85 21                    STA     $21
 5791  FE298F  85 22                    STA     $22
 5792  FE2991  A2 10                    LDX     #$10
 5793  FE2993  66 24            ?02:    ROR     $24
 5794  FE2995  66 23                    ROR     $23
 5795  FE2997  90 10                    BCC     ?04
 5796  FE2999  18                       CLC
 5797  FE299A  A5 21                    LDA     $21
 5798  FE299C  65 25                    ADC     $25
 5799  FE299E  85 21                    STA     $21
 5800  FE29A0  A5 22                    LDA     $22
 5801  FE29A2  65 26                    ADC     $26
 5802  FE29A4  85 22                    STA     $22
 5803  FE29A6  90 01                    BCC     ?04
 5804  FE29A8  60                       RTS 
 5805  FE29A9  06 25            ?04:    ASL     $25
 5806  FE29AB  26 26                    ROL     $26
 5807  FE29AD  CA                       DEX
 5808  FE29AE  D0 E3                    BNE     ?02
 5809  FE29B0  18                       CLC
 5810  FE29B1  60                       RTS 
 5811                           
 5812                           L1656:  ; $1656 - $18E1
 5813                                   ; enter with Y = 0
 5814  FE29B2  B1 2D                    LDA     ($2D),Y
 5815  FE29B4  D1 23                    CMP     ($23),Y
 5816  FE29B6  C8                       INY 
 5817  FE29B7  B1 23                    LDA     ($23),Y
 5818  FE29B9  49 80                    EOR     #$80
 5819  FE29BB  85 27                    STA     $27
 5820  FE29BD  B1 2D                    LDA     ($2D),Y
 5821  FE29BF  49 80                    EOR     #$80
 5822  FE29C1  E5 27                    SBC     $27
 5823  FE29C3  90 19                    BCC     L1682 
 5824  FE29C5  C8                       INY 
 5825  FE29C6  B1 23                    LDA     ($23),Y
 5826  FE29C8  A0 00                    LDY     #$00
 5827  FE29CA  D1 2D                    CMP     ($2D),Y
 5828  FE29CC  C8                       INY 
 5829  FE29CD  B1 2D                    LDA     ($2D),Y
 5830  FE29CF  49 80                    EOR     #$80
 5831  FE29D1  85 27                    STA     $27
 5832  FE29D3  A0 03                    LDY     #$03
 5833  FE29D5  B1 23                    LDA     ($23),Y
 5834  FE29D7  49 80                    EOR     #$80
 5835  FE29D9  E5 27                    SBC     $27
  Tue Jul 17 11:00:23 2018                                                                                               Page   58




 5836  FE29DB  90 01                    BCC     L1682 
 5837  FE29DD                   L1681:
 5838  FE29DD  60                       RTS
 5839  FE29DE                   L1682:
 5840  FE29DE  4C 50 1B                 JMP     vpmerr
 5841                           
 5842                           PC46:   ; $1B85 - $1E10
 5843                                   ; call function/procedure from procedure/function at superior level
 5844  FE29E1  20 17 2A                 JSR     L1B8B
 5845  FE29E4  80 06                    BRA     L1B45
 5846                           
 5847                           PC47:   ; $1B81 - $1E0C
 5848                                   ; call function/procedure from main program
 5849  FE29E6  A2 31                    LDX     #$31
 5850  FE29E8  80 02                    BRA     L1B45
 5851                           
 5852                           PC48:   ; $1B43 - $1DCE
 5853                                   ; call nested function/procedure from procedure/function
 5854  FE29EA  A2 2F                    LDX     #$2F
 5855                           L1B45:  ; $1B45 - $1DD0
 5856  FE29EC                           ACC16
 5857  FE29EC  C2 20                    rep     #PMFLAG
 5858                                   .LONGA  on
 5859                                   .MNLIST
 5860  FE29EE  B2 39                    LDA     ($39)
 5861  FE29F0  48                       PHA 
 5862  FE29F1  B5 00                    LDA     <$00,X
 5863  FE29F3  92 39                    STA     ($39)
 5864  FE29F5  C8                       INY
 5865  FE29F6  C8                       INY
 5866  FE29F7  A5 2F                    LDA     $2F
 5867  FE29F9  91 39                    STA     ($39),Y
 5868  FE29FB  C8                       INY 
 5869  FE29FC  C8                       INY 
 5870  FE29FD  A5 2B                    LDA     $2B
 5871  FE29FF  91 39                    STA     ($39),Y
 5872  FE2A01  A5 39                    LDA     $39
 5873  FE2A03  85 2F                    STA     $2F
 5874  FE2A05  68                       PLA 
 5875  FE2A06  85 39                    STA     $39
 5876  FE2A08  A5 23                    LDA     $23
 5877  FE2A0A  A6 97                    ldx     runf
 5878  FE2A0C  30 04                    bmi     ?02
 5879  FE2A0E  38                       sec
 5880  FE2A0F  E9 00 30                 sbc     #PCCDST
 5881  FE2A12  85 2B            ?02:    STA     $2B
 5882  FE2A14                           ACC08
 5883  FE2A14  E2 20                    sep     #PMFLAG
 5884                                   .LONGA  off
 5885                                   .MNLIST
 5886  FE2A16  60                       rts
 5887                           
 5888                           L1B8B:  ; $1B8B - $1E16
 5889  FE2A17  B1 2B                    LDA     ($2B),Y
 5890  FE2A19  E6 2B                    INC     $2B
 5891  FE2A1B  D0 02                    BNE     ?02 
 5892  FE2A1D  E6 2C                    INC     $2C
  Tue Jul 17 11:00:23 2018                                                                                               Page   59




 5893  FE2A1F                   ?02:
 5894                           L1B93:  ; $1B93 - $1E1E
 5895  FE2A1F  AA                       TAX
 5896  FE2A20  A5 2F                    LDA     $2F
 5897  FE2A22  85 21                    STA     $21
 5898  FE2A24  A5 30                    LDA     $30
 5899  FE2A26  85 22                    STA     $22
 5900  FE2A28  CA               ?04:    DEX 
 5901  FE2A29  30 10                    BMI     ?06 
 5902  FE2A2B  B1 21                    LDA     ($21),Y
 5903  FE2A2D  85 27                    STA     $27
 5904  FE2A2F  C8                       INY 
 5905  FE2A30  B1 21                    LDA     ($21),Y
 5906  FE2A32  88                       DEY 
 5907  FE2A33  85 22                    STA     $22
 5908  FE2A35  A5 27                    LDA     $27
 5909  FE2A37  85 21                    STA     $21
 5910  FE2A39  80 ED                    BRA     ?04
 5911  FE2A3B  A2 21            ?06:    LDX     #$21
 5912  FE2A3D  A5 24                    LDA     $24
 5913  FE2A3F  85 28                    STA     $28
 5914  FE2A41  A5 23                    LDA     $23
 5915  FE2A43  60                       RTS
 5916                           
 5917                           PC49:   ; $2D14 - $2AD5
 5918                                   ; compiler cause 'bad p-code' error (only in run mode)
 5919  FE2A44  24 97                    bit     runf
 5920  FE2A46  10 6F                    bpl     er07
 5921  FE2A48  A5 23                    LDA     $23
 5922  FE2A4A  F0 6A                    BEQ     ?14 
 5923  FE2A4C  A5 2F                    LDA     $2F
 5924  FE2A4E  85 21                    STA     $21
 5925  FE2A50  A5 30                    LDA     $30
 5926  FE2A52  85 22                    STA     $22
 5927  FE2A54  B1 2F            ?02:    LDA     ($2F),Y
 5928  FE2A56  AA                       TAX 
 5929  FE2A57  C8                       INY 
 5930  FE2A58  B1 2F                    LDA     ($2F),Y
 5931  FE2A5A  85 30                    STA     $30
 5932  FE2A5C  86 2F                    STX     $2F
 5933  FE2A5E  88                       DEY 
 5934  FE2A5F  C6 23                    DEC     $23
 5935  FE2A61  D0 F1                    BNE     ?02 
 5936  FE2A63  A0 02            ?04:    LDY     #$02
 5937  FE2A65  B1 21                    LDA     ($21),Y
 5938  FE2A67  AA                       TAX 
 5939  FE2A68  C8                       INY 
 5940  FE2A69  B1 21                    LDA     ($21),Y
 5941  FE2A6B  E4 2F                    CPX     $2F
 5942  FE2A6D  D0 04                    BNE     ?06 
 5943  FE2A6F  C5 30                    CMP     $30
 5944  FE2A71  F0 06                    BEQ     ?08 
 5945  FE2A73  86 21            ?06:    STX     $21
 5946  FE2A75  85 22                    STA     $22
 5947  FE2A77  D0 EA                    BNE     ?04 
 5948  FE2A79  A5 39            ?08:    LDA     $39
 5949  FE2A7B  05 3A                    ORA     $3A
  Tue Jul 17 11:00:23 2018                                                                                               Page   60




 5950  FE2A7D  F0 2A                    BEQ     ?12 
 5951  FE2A7F  A5 39                    LDA     $39
 5952  FE2A81  C5 2F                    CMP     $2F
 5953  FE2A83  A5 3A                    LDA     $3A
 5954  FE2A85  E5 30                    SBC     $30
 5955  FE2A87  B0 20                    BCS     ?12 
 5956  FE2A89  A5 39                    LDA     $39
 5957  FE2A8B  C5 21                    CMP     $21
 5958  FE2A8D  A5 3A                    LDA     $3A
 5959  FE2A8F  E5 22                    SBC     $22
 5960  FE2A91  90 08                    BCC     ?10 
 5961  FE2A93  A5 39                    LDA     $39
 5962  FE2A95  85 21                    STA     $21
 5963  FE2A97  A5 3A                    LDA     $3A
 5964  FE2A99  85 22                    STA     $22
 5965  FE2A9B  A9 00            ?10:    LDA     #$00
 5966                                   ;ldy    #0              ; ?????
 5967  FE2A9D  B1 39                    LDA     ($39),Y
 5968  FE2A9F  AA                       TAX 
 5969  FE2AA0  C8                       INY 
 5970  FE2AA1  B1 39                    LDA     ($39),Y
 5971  FE2AA3  86 39                    STX     $39
 5972  FE2AA5  85 3A                    STA     $3A
 5973  FE2AA7  80 D0                    BRA     ?08
 5974  FE2AA9  A5 21            ?12:    LDA     $21
 5975  FE2AAB  18                       CLC 
 5976  FE2AAC  69 06                    ADC     #$06
 5977  FE2AAE  85 2D                    STA     $2D
 5978  FE2AB0  A5 22                    LDA     $22
 5979  FE2AB2  69 00                    ADC     #$00
 5980  FE2AB4  85 2E                    STA     $2E
 5981  FE2AB6  60               ?14:    RTS
 5982                           
 5983  FE2AB7                   PC4F:
 5984  FE2AB7                   er07:           
 5985  FE2AB7  4C 4E 1B                 JMP     vpme07          ; error: bad p-code
 5986                           
 5987                           PC4A:   ; $1685 - $1910
 5988                                   ; execute an external routine - address in $23-$24
 5989                                   ; in the same program bank
 5990  FE2ABA  6C 23 7F                 jmp     (CBMP0+$23)
 5991                           
 5992                           PC4B:   ; $xxxx - $32EA (run only)
 5993  FE2ABD  24 97                    bit     runf
 5994  FE2ABF  10 F6                    bpl     er07
 5995  FE2AC1  A9 04                    LDA     #$04
 5996  FE2AC3  A2 06                    LDX     #$06
 5997  FE2AC5  20 2D 2B                 JSR     R3335
 5998  FE2AC8  A0 00            ?02:    LDY     #$00
 5999  FE2ACA  B1 21                    LDA     ($21),Y
 6000  FE2ACC  91 25                    STA     ($25),Y
 6001  FE2ACE  A0 02                    LDY     #$02
 6002  FE2AD0  B1 27                    LDA     ($27),Y
 6003  FE2AD2  F0 06                    BEQ     ?04 
 6004  FE2AD4  E6 21                    INC     $21
 6005  FE2AD6  D0 02                    BNE     ?04 
 6006  FE2AD8  E6 22                    INC     $22
  Tue Jul 17 11:00:23 2018                                                                                               Page   61




 6007  FE2ADA  20 8D 2B         ?04:    JSR     R3399
 6008  FE2ADD  D0 E9                    BNE     ?02 
 6009  FE2ADF  A9 04                    LDA     #$04
 6010  FE2AE1  4C 7B 27                 JMP     R17E9
 6011                           
 6012                           PC4C:   ; $xxxx - $330D (run only)
 6013  FE2AE4  24 97                    bit     runf
 6014  FE2AE6  10 CF                    bpl     er07
 6015  FE2AE8  A9 08                    LDA     #$08
 6016  FE2AEA  A2 04                    LDX     #$04
 6017  FE2AEC  20 2D 2B                 JSR     R3335
 6018  FE2AEF  A0 00            ?02:    LDY     #$00
 6019  FE2AF1  B1 25                    LDA     ($25),Y
 6020  FE2AF3  91 21                    STA     ($21),Y
 6021  FE2AF5  A0 02                    LDY     #$02
 6022  FE2AF7  B1 27                    LDA     ($27),Y
 6023  FE2AF9  F0 0B                    BEQ     ?04 
 6024  FE2AFB  88                       DEY 
 6025  FE2AFC  A9 00                    LDA     #$00
 6026  FE2AFE  91 21                    STA     ($21),Y
 6027  FE2B00  E6 21                    INC     $21
 6028  FE2B02  D0 02                    BNE     ?04 
 6029  FE2B04  E6 22                    INC     $22
 6030  FE2B06  20 8D 2B         ?04:    JSR     R3399
 6031  FE2B09  D0 E4                    BNE     ?02 
 6032  FE2B0B  A9 06                    LDA     #$06
 6033  FE2B0D  4C 7B 27                 JMP     R17E9
 6034                           
 6035                           PC4E:   ; $200F - $2A92
 6036  FE2B10  20 1D 2B                 JSR     L2027
 6037  FE2B13                           ACC16
 6038  FE2B13  C2 20                    rep     #PMFLAG
 6039                                   .LONGA  on
 6040                                   .MNLIST
 6041  FE2B15  B2 23                    LDA     ($23)
 6042  FE2B17  3A                       dec     a
 6043  FE2B18  92 23                    STA     ($23)
 6044  FE2B1A                           ACC08
 6045  FE2B1A  E2 20                    sep     #PMFLAG
 6046                                   .LONGA  off
 6047                                   .MNLIST
 6048  FE2B1C  60                       rts
 6049  FE2B1D                           
 6050                           L2027:  ; $2027 - $2AA6
 6051  FE2B1D                           ACC16
 6052  FE2B1D  C2 20                    rep     #PMFLAG
 6053                                   .LONGA  on
 6054                                   .MNLIST
 6055  FE2B1F  E6 23                    INC     $23
 6056  FE2B21  06 23                    ASL     $23
 6057  FE2B23  A5 2F                    LDA     $2F
 6058  FE2B25  38                       SEC 
 6059  FE2B26  E5 23                    SBC     $23
 6060  FE2B28  85 23                    STA     $23
 6061  FE2B2A                           ACC08
 6062  FE2B2A  E2 20                    sep     #PMFLAG
 6063                                   .LONGA  off
  Tue Jul 17 11:00:23 2018                                                                                               Page   62




 6064                                   .MNLIST
 6065  FE2B2C  60                       RTS 
 6066                           
 6067                           R3335:  ; $xxxx - $3335 (run only)
 6068  FE2B2D  48                       PHA 
 6069  FE2B2E  A5 2D                    LDA     $2D
 6070  FE2B30  48                       PHA 
 6071  FE2B31  8A                       TXA 
 6072  FE2B32  18                       CLC 
 6073  FE2B33  65 2D                    ADC     $2D
 6074  FE2B35  85 2D                    STA     $2D
 6075  FE2B37  A5 2E                    LDA     $2E
 6076  FE2B39  48                       PHA 
 6077  FE2B3A  69 00                    ADC     #$00
 6078  FE2B3C  85 2E                    STA     $2E
 6079  FE2B3E  A0 04                    LDY     #$04
 6080  FE2B40  B1 23                    LDA     ($23),Y
 6081  FE2B42  0A                       ASL     a 
 6082  FE2B43  85 47                    STA     tmpv1
 6083  FE2B45  C8                       INY 
 6084  FE2B46  B1 23                    LDA     ($23),Y
 6085  FE2B48  2A                       ROL     a 
 6086  FE2B49  85 48                    STA     tmpv2
 6087  FE2B4B  A0 00                    LDY     #$00
 6088  FE2B4D  20 49 29                 JSR     R1866
 6089  FE2B50  A0 02                    LDY     #$02
 6090  FE2B52  B1 2D                    LDA     ($2D),Y
 6091  FE2B54  38                       SEC 
 6092  FE2B55  E5 47                    SBC     tmpv1
 6093  FE2B57  85 21                    STA     $21
 6094  FE2B59  C8                       INY 
 6095  FE2B5A  B1 2D                    LDA     ($2D),Y
 6096  FE2B5C  E5 48                    SBC     tmpv2
 6097  FE2B5E  85 22                    STA     $22
 6098  FE2B60  68                       PLA 
 6099  FE2B61  85 28                    STA     $28
 6100  FE2B63  68                       PLA 
 6101  FE2B64  85 27                    STA     $27
 6102  FE2B66  A0 00                    LDY     #$00
 6103  FE2B68  B1 27                    LDA     ($27),Y
 6104  FE2B6A  85 23                    STA     $23
 6105  FE2B6C  18                       CLC 
 6106  FE2B6D  69 01                    ADC     #$01
 6107  FE2B6F  29 FE                    AND     #$FE
 6108  FE2B71  85 25                    STA     $25
 6109  FE2B73  C8                       INY 
 6110  FE2B74  B1 27                    LDA     ($27),Y
 6111  FE2B76  85 24                    STA     $24
 6112  FE2B78  69 00                    ADC     #$00
 6113  FE2B7A  85 26                    STA     $26
 6114  FE2B7C  68                       PLA 
 6115  FE2B7D  A8                       TAY 
 6116  FE2B7E  38                       SEC 
 6117  FE2B7F  B1 27                    LDA     ($27),Y
 6118  FE2B81  E5 25                    SBC     $25
 6119  FE2B83  85 25                    STA     $25
 6120  FE2B85  C8                       INY 
  Tue Jul 17 11:00:23 2018                                                                                               Page   63




 6121  FE2B86  B1 27                    LDA     ($27),Y
 6122  FE2B88  E5 26                    SBC     $26
 6123  FE2B8A  85 26                    STA     $26
 6124  FE2B8C  60                       RTS 
 6125                           
 6126                           R3399:  ; $xxxx - $3399 (compiler only)
 6127  FE2B8D                           ACC16
 6128  FE2B8D  C2 20                    rep     #PMFLAG
 6129                                   .LONGA  on
 6130                                   .MNLIST
 6131  FE2B8F  E6 21                    INC     $21
 6132  FE2B91  E6 25                    INC     $25
 6133  FE2B93  C6 23                    dec     $23
 6134  FE2B95                           ACC08
 6135  FE2B95  E2 20                    sep     #PMFLAG
 6136                                   .LONGA  off
 6137                                   .MNLIST
 6138  FE2B97  A5 24                    lda     $24
 6139  FE2B99  05 23                    ORA     $23
 6140  FE2B9B  60                       RTS
 6141                           
 6142                           ; line number (run only)
 6143                           PC50:   ; not in compiler - $2984
 6144                                   ; store line number in $3F-$40
 6145  FE2B9C                   PC51:
 6146  FE2B9C  24 97                    bit     runf
 6147  FE2B9E  30 03                    bmi     ?02
 6148  FE2BA0  4C 4E 1B                 jmp     vpme07
 6149  FE2BA3  A5 23            ?02:    LDA     $23
 6150  FE2BA5  85 3F                    STA     $3F
 6151  FE2BA7  A5 24                    LDA     $24
 6152  FE2BA9  85 40                    STA     $40
 6153  FE2BAB  60                       rts
 6154                           
 6155                           PC5A:   ; $2CF0 - $33B5
 6156                           PC5B:   ; simple 'new' for compiler
 6157  FE2BAC                           ACC16
 6158  FE2BAC  C2 20                    rep     #PMFLAG
 6159                                   .LONGA  on
 6160                                   .MNLIST
 6161  FE2BAE  A5 2D                    LDA     $2D
 6162  FE2BB0  3A                       dec     a
 6163  FE2BB1  3A                       dec     a
 6164  FE2BB2  85 2D                    STA     $2D
 6165  FE2BB4                           ACC08
 6166  FE2BB4  E2 20                    sep     #PMFLAG
 6167                                   .LONGA  off
 6168                                   .MNLIST
 6169  FE2BB6  24 97                    bit     runf
 6170  FE2BB8  30 12                    bmi     ?01
 6171  FE2BBA                           ACC16
 6172  FE2BBA  C2 20                    rep     #PMFLAG
 6173                                   .LONGA  on
 6174                                   .MNLIST
 6175  FE2BBC  06 23                    ASL     $23
 6176  FE2BBE  18                       CLC 
 6177  FE2BBF  A5 33                    LDA     $33
  Tue Jul 17 11:00:23 2018                                                                                               Page   64




 6178  FE2BC1  65 23                    ADC     $23
 6179  FE2BC3  85 33                    STA     $33
 6180  FE2BC5  92 2D                    STA     ($2D)
 6181  FE2BC7                           ACC08
 6182  FE2BC7  E2 20                    sep     #PMFLAG
 6183                                   .LONGA  off
 6184                                   .MNLIST
 6185  FE2BC9  4C 3E 2C                 JMP     L1A97
 6186                                   ; p-code execution - new
 6187  FE2BCC  20 23 2D         ?01:    JSR     R3511
 6188  FE2BCF  20 3F 2D         ?02:    JSR     R3527
 6189  FE2BD2  F0 42                    BEQ     ?08
 6190  FE2BD4  A0 02                    LDY     #$02
 6191  FE2BD6  B1 21                    LDA     ($21),Y
 6192  FE2BD8  38                       SEC 
 6193  FE2BD9  E5 23                    SBC     $23
 6194  FE2BDB  85 25                    STA     $25
 6195  FE2BDD  C8                       INY 
 6196  FE2BDE  B1 21                    LDA     ($21),Y
 6197  FE2BE0  E5 24                    SBC     $24
 6198  FE2BE2  85 26                    STA     $26
 6199  FE2BE4  90 E9                    BCC     ?02 
 6200  FE2BE6  D0 08                    BNE     ?04 
 6201  FE2BE8  A5 25                    LDA     $25
 6202  FE2BEA  F0 17                    BEQ     ?06 
 6203  FE2BEC  4A                       LSR     a 
 6204  FE2BED  4A                       LSR     a 
 6205  FE2BEE  F0 DF                    BEQ     ?02
 6206  FE2BF0  20 50 2C         ?04:    JSR     R3431
 6207  FE2BF3                           ACC16
 6208  FE2BF3  C2 20                    rep     #PMFLAG
 6209                                   .LONGA  on
 6210                                   .MNLIST
 6211  FE2BF5  A0 02                    LDY     #$02
 6212  FE2BF7  A5 25                    LDA     $25
 6213  FE2BF9  91 21                    STA     ($21),Y
 6214  FE2BFB  AD FC FF                 lda     !MTPTR
 6215  FE2BFE  85 35                    sta     $35
 6216  FE2C00                           ACC08
 6217  FE2C00  E2 20                    sep     #PMFLAG
 6218                                   .LONGA  off
 6219                                   .MNLIST
 6220  FE2C02  60                       rts
 6221  FE2C03  20 50 2C         ?06:    JSR     R3431
 6222  FE2C06  A0 00                    LDY     #$00
 6223  FE2C08                           ACC08
 6224  FE2C08  E2 20                    sep     #PMFLAG
 6225                                   .LONGA  off
 6226                                   .MNLIST
 6227  FE2C0A  B1 21                    LDA     ($21),Y
 6228  FE2C0C  91 27                    STA     ($27),Y
 6229  FE2C0E  AD FC FF                 lda     !MTPTR
 6230  FE2C11  85 35                    sta     $35     
 6231  FE2C13                           ACC08
 6232  FE2C13  E2 20                    sep     #PMFLAG
 6233                                   .LONGA  off
 6234                                   .MNLIST
  Tue Jul 17 11:00:23 2018                                                                                               Page   65




 6235  FE2C15  60                       rts
 6236  FE2C16                   ?08:    ACC16CLC        
 6237  FE2C16  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 6238                                   .LONGA  on
 6239                                   .MNLIST
 6240  FE2C18  AD FC FF                 lda     !MTPTR
 6241  FE2C1B  85 35                    sta     $35
 6242  FE2C1D  A5 23                    LDA     $23 
 6243  FE2C1F  65 33                    ADC     $33
 6244  FE2C21  85 33                    STA     $33
 6245  FE2C23  92 2D                    STA     ($2D)
 6246  FE2C25  69 28 00                 ADC     #$0028
 6247  FE2C28  C5 2D                    CMP     $2D
 6248  FE2C2A                           ACC08
 6249  FE2C2A  E2 20                    sep     #PMFLAG
 6250                                   .LONGA  off
 6251                                   .MNLIST
 6252  FE2C2C  90 21                    BCC     PC61x
 6253  FE2C2E                   er01:
 6254  FE2C2E  A2 01                    LDX     #$01            ; stack overflow error
 6255  FE2C30  4C 50 1B                 JMP     vpmerr
 6256                           
 6257                           PC60:   ; $1A86 - $1D11
 6258                           PC61:   ; reserve room in stack
 6259  FE2C33                           ACC16
 6260  FE2C33  C2 20                    rep     #PMFLAG
 6261                                   .LONGA  on
 6262                                   .MNLIST
 6263  FE2C35  06 23                    ASL     $23
 6264  FE2C37  38                       SEC 
 6265  FE2C38  A5 2D                    LDA     $2D
 6266  FE2C3A  E5 23                    SBC     $23
 6267  FE2C3C  85 2D                    STA     $2D
 6268                           L1A97:  ; $1A97 - $1D22 
 6269  FE2C3E                           ACC16CLC 
 6270  FE2C3E  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 6271                                   .LONGA  on
 6272                                   .MNLIST
 6273  FE2C40  A5 33                    LDA     $33
 6274  FE2C42  69 28 00                 ADC     #$0028
 6275  FE2C45  85 27                    STA     $27
 6276  FE2C47  A5 2D                    LDA     $2D
 6277  FE2C49  C5 27                    CMP     $27
 6278  FE2C4B                           ACC08
 6279  FE2C4B  E2 20                    sep     #PMFLAG
 6280                                   .LONGA  off
 6281                                   .MNLIST
 6282  FE2C4D  90 DF                    BCC     er01
 6283  FE2C4F                   PC61x:
 6284  FE2C4F  60                       rts
 6285                           
 6286                           R3431:  ; $xxxx - $3431
 6287  FE2C50  20 15 2D                 JSR     R3503
 6288  FE2C53  A0 01                    LDY     #$01
 6289  FE2C55  91 2D                    STA     ($2D),Y
 6290  FE2C57  88                       DEY 
 6291  FE2C58  8A                       TXA 
  Tue Jul 17 11:00:23 2018                                                                                               Page   66




 6292  FE2C59  91 2D                    STA     ($2D),Y
 6293  FE2C5B  60                       RTS 
 6294                           
 6295                           PC5C:   ; $xxxx - $343D
 6296                           PC5D:   ; dispose
 6297  FE2C5C  24 97                    bit     runf
 6298  FE2C5E  30 03                    bmi     ?02
 6299  FE2C60  4C 4E 1B                 jmp     vpme07
 6300  FE2C63  20 23 2D         ?02:    JSR     R3511
 6301  FE2C66  20 3F 2D         ?04:    JSR     R3527
 6302  FE2C69  F0 65                    BEQ     ?12 
 6303  FE2C6B  A0 00                    LDY     #$00
 6304  FE2C6D  B1 2D                    LDA     ($2D),Y
 6305  FE2C6F  C5 21                    CMP     $21
 6306  FE2C71  D0 27                    BNE     ?08 
 6307  FE2C73  C8                       INY 
 6308  FE2C74  B1 2D                    LDA     ($2D),Y
 6309  FE2C76  C5 22                    CMP     $22
 6310  FE2C78  D0 20                    BNE     ?08 
 6311  FE2C7A  A5 21                    LDA     $21
 6312  FE2C7C  38                       SEC 
 6313  FE2C7D  E5 23                    SBC     $23
 6314  FE2C7F  85 25                    STA     $25
 6315  FE2C81  A5 22                    LDA     $22
 6316  FE2C83  E5 24                    SBC     $24
 6317  FE2C85  85 26                    STA     $26
 6318  FE2C87  A0 03                    LDY     #$03
 6319  FE2C89  B1 21            ?06:    LDA     ($21),Y
 6320  FE2C8B  91 25                    STA     ($25),Y
 6321  FE2C8D  88                       DEY 
 6322  FE2C8E  10 F9                    BPL     ?06 
 6323  FE2C90  A5 25                    LDA     $25
 6324  FE2C92  85 21                    STA     $21
 6325  FE2C94  A5 26                    LDA     $26
 6326  FE2C96  85 22                    STA     $22
 6327  FE2C98  80 19                    bra     ?10
 6328  FE2C9A  A0 00            ?08:    LDY     #$00
 6329  FE2C9C                           ACC16
 6330  FE2C9C  C2 20                    rep     #PMFLAG
 6331                                   .LONGA  on
 6332                                   .MNLIST
 6333  FE2C9E  B1 2D                    LDA     ($2D),Y
 6334  FE2CA0  38                       SEC 
 6335  FE2CA1  E5 23                    SBC     $23
 6336  FE2CA3  85 25                    STA     $25
 6337  FE2CA5  C8                       INY 
 6338  FE2CA6                           ACC08
 6339  FE2CA6  E2 20                    sep     #PMFLAG
 6340                                   .LONGA  off
 6341                                   .MNLIST
 6342  FE2CA8  20 15 2D                 JSR     R3503
 6343  FE2CAB  C5 26                    CMP     $26
 6344  FE2CAD  D0 B7                    BNE     ?04 
 6345  FE2CAF  E4 25                    CPX     $25
 6346  FE2CB1  D0 B3                    BNE     ?04 
 6347  FE2CB3  A0 02            ?10:    LDY     #$02
 6348  FE2CB5                           ACC16CLC 
  Tue Jul 17 11:00:23 2018                                                                                               Page   67




 6349  FE2CB5  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 6350                                   .LONGA  on
 6351                                   .MNLIST
 6352  FE2CB7  B1 21                    LDA     ($21),Y
 6353  FE2CB9  65 23                    ADC     $23
 6354  FE2CBB  85 23                    STA     $23
 6355  FE2CBD  91 21                    STA     ($21),Y
 6356  FE2CBF  A0 01                    LDY     #$01
 6357  FE2CC1  B2 21                    LDA     ($21)
 6358  FE2CC3  92 27                    STA     ($27)
 6359  FE2CC5                           ACC08
 6360  FE2CC5  E2 20                    sep     #PMFLAG
 6361                                   .LONGA  off
 6362                                   .MNLIST
 6363  FE2CC7  20 50 2C                 JSR     R3431
 6364  FE2CCA  88                       DEY 
 6365  FE2CCB  20 30 2D                 JSR     R351E
 6366  FE2CCE  80 96                    bra     ?04
 6367  FE2CD0  20 15 2D         ?12:    JSR     R3503
 6368  FE2CD3  A0 00                    LDY     #$00
 6369  FE2CD5  B1 2D                    LDA     ($2D),Y
 6370  FE2CD7  C5 33                    CMP     $33
 6371  FE2CD9  D0 1A                    BNE     ?14 
 6372  FE2CDB  C8                       INY 
 6373  FE2CDC  B1 2D                    LDA     ($2D),Y
 6374  FE2CDE  C5 34                    CMP     $34
 6375  FE2CE0  D0 13                    BNE     ?14 
 6376  FE2CE2                           ACC16
 6377  FE2CE2  C2 20                    rep     #PMFLAG
 6378                                   .LONGA  on
 6379                                   .MNLIST
 6380  FE2CE4  A5 33                    LDA     $33
 6381  FE2CE6  38                       SEC 
 6382  FE2CE7  E5 23                    SBC     $23
 6383  FE2CE9  85 33                    STA     $33
 6384  FE2CEB  AD FC FF                 lda     !MTPTR
 6385  FE2CEE  85 35                    sta     $35
 6386  FE2CF0                           ACC08
 6387  FE2CF0  E2 20                    sep     #PMFLAG
 6388                                   .LONGA  off
 6389                                   .MNLIST
 6390  FE2CF2  4C 95 1E                 JMP     SK02
 6391  FE2CF5  A0 00            ?14:    LDY     #$00
 6392  FE2CF7                           CPU16
 6393  FE2CF7  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 6394                                   .LONGA  on
 6395                                   .LONGI  on
 6396                                   .MNLIST
 6397  FE2CF9  B2 2D                    LDA     ($2D)
 6398  FE2CFB  38                       SEC 
 6399  FE2CFC  E5 23                    SBC     $23
 6400  FE2CFE  92 27                    STA     ($27)
 6401  FE2D00  85 21                    STA     $21
 6402  FE2D02  98                       TYA 
 6403  FE2D03  91 21                    STA     ($21),Y
 6404  FE2D05  C8                       INY 
 6405  FE2D06  C8                       INY 
  Tue Jul 17 11:00:23 2018                                                                                               Page   68




 6406  FE2D07  A5 23                    LDA     $23
 6407  FE2D09  91 21                    STA     ($21),Y
 6408  FE2D0B  AD FC FF                 lda     !MTPTR
 6409  FE2D0E  85 35                    sta     $35
 6410  FE2D10                           CPU08
 6411  FE2D10  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 6412                                   .LONGA  off
 6413                                   .LONGI  off
 6414                                   .MNLIST
 6415  FE2D12  4C 95 1E                 JMP     SK02
 6416                           
 6417                           R3503:  ; $xxxx - $3503
 6418  FE2D15  A0 02                    LDY     #$02
 6419  FE2D17  18                       CLC 
 6420  FE2D18  A5 21                    LDA     $21
 6421  FE2D1A  71 21                    ADC     ($21),Y
 6422  FE2D1C  AA                       TAX 
 6423  FE2D1D  C8                       INY 
 6424  FE2D1E  A5 22                    LDA     $22
 6425  FE2D20  71 21                    ADC     ($21),Y
 6426  FE2D22  60                       RTS
 6427                           
 6428                           R3511:  ; $xxxx - $3511
 6429  FE2D23  A5 23                    LDA     $23
 6430  FE2D25  4A                       LSR     a 
 6431  FE2D26  05 24                    ORA     $24
 6432  FE2D28  D0 02                    BNE     ?02 
 6433  FE2D2A  E6 23                    INC     $23
 6434  FE2D2C  06 23            ?02:    ASL     $23
 6435  FE2D2E  26 24                    ROL     $24
 6436                           R351E:  ; $xxxx - $351E
 6437  FE2D30                           ACC16
 6438  FE2D30  C2 20                    rep     #PMFLAG
 6439                                   .LONGA  on
 6440                                   .MNLIST
 6441  FE2D32  A5 35                    lda     $35
 6442  FE2D34  8D FC FF                 sta     !MTPTR
 6443  FE2D37  A9 FC FF                 lda     #MTPTR
 6444  FE2D3A  85 21                    sta     $21
 6445  FE2D3C                           ACC08
 6446  FE2D3C  E2 20                    sep     #PMFLAG
 6447                                   .LONGA  off
 6448                                   .MNLIST
 6449                                   ;LDA    #$35
 6450                                   ;STA $21
 6451                                   ;LDA #$00
 6452                                   ;STA $22
 6453  FE2D3E  60                       RTS 
 6454                           
 6455                           R3527:  ; $xxxx - $3527
 6456  FE2D3F  A5 21                    LDA     $21
 6457  FE2D41  85 27                    STA     $27
 6458  FE2D43  A5 22                    LDA     $22
 6459  FE2D45  85 28                    STA     $28
 6460  FE2D47  A0 00                    LDY     #$00
 6461  FE2D49  B1 21                    LDA     ($21),Y
 6462  FE2D4B  AA                       TAX
  Tue Jul 17 11:00:23 2018                                                                                               Page   69




 6463  FE2D4C  C8                       INY 
 6464  FE2D4D  B1 21                    LDA     ($21),Y
 6465  FE2D4F  85 22                    STA     $22
 6466  FE2D51  86 21                    STX     $21
 6467  FE2D53  05 21                    ORA     $21
 6468  FE2D55  60                       RTS 
 6469                           
 6470                           PC5E:   ; $1A54 - $1CDF
 6471  FE2D56                   PC5F:
 6472  FE2D56                           ACC16
 6473  FE2D56  C2 20                    rep     #PMFLAG
 6474                                   .LONGA  on
 6475                                   .MNLIST
 6476  FE2D58  06 23                    ASL     $23
 6477  FE2D5A  38                       SEC
 6478  FE2D5B  B2 2D                    LDA     ($2D)
 6479  FE2D5D  E5 23                    SBC     $23
 6480  FE2D5F  85 25                    STA     $25
 6481  FE2D61  C8                       INY 
 6482  FE2D62  C8                       INY 
 6483  FE2D63  38                       SEC 
 6484  FE2D64  B1 2D                    LDA     ($2D),Y
 6485  FE2D66  E5 23                    SBC     $23
 6486  FE2D68  85 21                    STA     $21
 6487  FE2D6A                           ACC08
 6488  FE2D6A  E2 20                    sep     #PMFLAG
 6489                                   .LONGA  off
 6490                                   .MNLIST
 6491  FE2D6C  20 99 2D                 JSR     L1AFF
 6492  FE2D6F  A5 2D                    LDA     $2D
 6493  FE2D71  18                       CLC 
 6494  FE2D72  69 04                    ADC     #$04
 6495  FE2D74  85 2D                    STA     $2D
 6496  FE2D76  90 02                    BCC     ?02 
 6497  FE2D78  E6 2E                    INC     $2E
 6498  FE2D7A  60               ?02:    RTS
 6499                           
 6500                           PC37:   ; $1B1E - $1DA9 
 6501  FE2D7B  A9 08                    LDA     #$08
 6502  FE2D7D  85 23                    STA     $23
 6503  FE2D7F  84 24                    STY     $24
 6504                           
 6505                           PC6A:   ; $1ACB - $1D56
 6506  FE2D81                   PC6B:
 6507  FE2D81                           ACC16
 6508  FE2D81  C2 20                    rep     #PMFLAG
 6509                                   .LONGA  on
 6510                                   .MNLIST
 6511  FE2D83  06 23                    ASL     $23
 6512  FE2D85  B2 2D                    LDA     ($2D)
 6513  FE2D87  38                       SEC 
 6514  FE2D88  E5 23                    SBC     $23
 6515  FE2D8A  85 25                    STA     $25
 6516  FE2D8C  A5 2D                    LDA     $2D
 6517  FE2D8E  1A                       inc     a
 6518  FE2D8F  1A                       inc     a
 6519  FE2D90  38                       SEC 
  Tue Jul 17 11:00:23 2018                                                                                               Page   70




 6520  FE2D91  E5 23                    SBC     $23
 6521  FE2D93  85 2D                    STA     $2D
 6522  FE2D95  85 21                    STA     $21
 6523  FE2D97                           ACC08
 6524  FE2D97  E2 20                    sep     #PMFLAG
 6525                                   .LONGA  off
 6526                                   .MNLIST
 6527  FE2D99                           
 6528                           L1AFF:  ; $1AFF - $1D8A
 6529  FE2D99  A0 00                    LDY     #$00
 6530  FE2D9B  C6 24                    DEC     $24
 6531  FE2D9D  30 0D                    BMI     ?04 
 6532  FE2D9F  B1 25            ?02:    LDA     ($25),Y
 6533  FE2DA1  91 21                    STA     ($21),Y
 6534  FE2DA3  C8                       INY 
 6535  FE2DA4  D0 F9                    BNE     ?02 
 6536  FE2DA6  E6 26                    INC     $26
 6537  FE2DA8  E6 22                    INC     $22
 6538  FE2DAA  D0 ED                    BNE     L1AFF 
 6539  FE2DAC  C4 23            ?04:    CPY     $23
 6540  FE2DAE  F0 07                    BEQ     ?06 
 6541  FE2DB0  B1 25                    LDA     ($25),Y
 6542  FE2DB2  91 21                    STA     ($21),Y
 6543  FE2DB4  C8                       INY 
 6544  FE2DB5  D0 F5                    BNE     ?04 
 6545  FE2DB7  60               ?06:    RTS 
 6546                           
 6547                           PC62:   ; $1AB6 - $1D41
 6548  FE2DB8                   PC63:
 6549  FE2DB8                           ACC16
 6550  FE2DB8  C2 20                    rep     #PMFLAG
 6551                                   .LONGA  on
 6552                                   .MNLIST
 6553  FE2DBA  06 23                    ASL     $23
 6554  FE2DBC  38                       SEC
 6555  FE2DBD  B2 2D                    LDA     ($2D)
 6556  FE2DBF  E5 23                    SBC     $23
 6557  FE2DC1  92 2D                    STA     ($2D)
 6558  FE2DC3                           ACC08
 6559  FE2DC3  E2 20                    sep     #PMFLAG
 6560                                   .LONGA  off
 6561                                   .MNLIST
 6562  FE2DC5  60                       rts
 6563                           
 6564                           PC64:   ; $2068 - $2A09
 6565  FE2DC6                   PC65:
 6566  FE2DC6  20 23 2E                 JSR     L2095
 6567  FE2DC9  B1 25            ?00:    LDA     ($25),Y
 6568  FE2DCB  D1 21                    CMP     ($21),Y
 6569  FE2DCD  D0 0C                    BNE     PC65b 
 6570  FE2DCF  0A                       ASL     a 
 6571  FE2DD0  F0 05                    BEQ     ?01 
 6572  FE2DD2  C8                       INY 
 6573  FE2DD3  C4 23                    CPY     $23
 6574  FE2DD5  D0 F2                    BNE     ?00 
 6575  FE2DD7                   ?01:    
 6576  FE2DD7  A9 01            PC65a:  LDA     #$01            ; R2A1A
  Tue Jul 17 11:00:23 2018                                                                                               Page   71




 6577  FE2DD9  80 02                    bra     PC65c
 6578  FE2DDB  A9 00            PC65b:  lda     #0              ; R2A1D
 6579  FE2DDD  A0 02            PC65c:  LDY     #$02
 6580  FE2DDF  91 2D                    STA     ($2D),Y
 6581  FE2DE1  A9 00                    LDA     #$00
 6582  FE2DE3  C8                       INY 
 6583  FE2DE4  91 2D                    STA     ($2D),Y
 6584  FE2DE6  A9 02                    LDA     #$02
 6585  FE2DE8  4C 7B 27                 jmp     L155E
 6586  FE2DEB                           
 6587                           PC66:   ; $xxxx - $2A42
 6588  FE2DEB                   PC67:
 6589  FE2DEB  24 97                    bit     runf
 6590  FE2DED  30 03                    bmi     ?02
 6591  FE2DEF  4C 4E 1B                 jmp     vpme07
 6592  FE2DF2  20 23 2E         ?02:    JSR     R2A57
 6593  FE2DF5  B1 25            ?04:    LDA     ($25),Y
 6594  FE2DF7  D1 21                    CMP     ($21),Y
 6595  FE2DF9  30 E0                    BMI     PC65b 
 6596  FE2DFB  D0 DA                    BNE     PC65a 
 6597  FE2DFD  0A                       ASL     a 
 6598  FE2DFE  F0 D7                    BEQ     PC65a 
 6599  FE2E00  C8                       INY 
 6600  FE2E01  C4 23                    CPY     $23
 6601  FE2E03  D0 F0                    BNE     ?04 
 6602  FE2E05  F0 D0                    BEQ     PC65a 
 6603                           
 6604                           PC68:   ; $xxxx - $2A2D
 6605  FE2E07                   PC69:
 6606  FE2E07  24 97                    bit     runf
 6607  FE2E09  30 03                    bmi     ?02
 6608  FE2E0B  4C 4E 1B                 jmp     vpme07
 6609  FE2E0E  20 23 2E         ?02:    JSR     R2A57
 6610  FE2E11  B1 21            ?04:    LDA     ($21),Y 
 6611  FE2E13  D1 25                    CMP     ($25),Y
 6612  FE2E15  30 C4                    BMI     PC65b 
 6613  FE2E17  D0 BE                    BNE     PC65a 
 6614  FE2E19  0A                       ASL     a 
 6615  FE2E1A  F0 BB                    BEQ     PC65a 
 6616  FE2E1C  C8                       INY 
 6617  FE2E1D  C4 23                    CPY     $23
 6618  FE2E1F  D0 F0                    BNE     ?04 
 6619  FE2E21  F0 B4                    BEQ     PC65a 
 6620                           
 6621  FE2E23                   R2A57:
 6622                           L2095:  ; $2095 - $2A57
 6623  FE2E23                           ACC16
 6624  FE2E23  C2 20                    rep     #PMFLAG
 6625                                   .LONGA  on
 6626                                   .MNLIST
 6627  FE2E25  B2 2D                    LDA     ($2D)
 6628  FE2E27  85 25                    STA     $25
 6629  FE2E29  C8                       INY
 6630  FE2E2A  C8                       iny
 6631  FE2E2B  B1 2D                    LDA     ($2D),Y
 6632  FE2E2D  85 21                    STA     $21
 6633  FE2E2F                           ACC08
  Tue Jul 17 11:00:23 2018                                                                                               Page   72




 6634  FE2E2F  E2 20                    sep     #PMFLAG
 6635                                   .LONGA  off
 6636                                   .MNLIST
 6637  FE2E31  A0 00                    LDY     #$00
 6638  FE2E33  60                       RTS 
 6639                           
 6640                           PC6E:   ; $0B48 - $0D4E
 6641  FE2E34                   PC6F:
 6642  FE2E34  20 DB 2E                 JSR     L0B7F
 6643  FE2E37  A0 00                    LDY     #$00
 6644  FE2E39  B1 29                    LDA     ($29),Y
 6645  FE2E3B  29 10                    AND     #$10
 6646  FE2E3D  D0 1B                    BNE     ?06 
 6647  FE2E3F  20 25 32                 JSR     L0EA8
 6648  FE2E42  A0 00            ?02:    LDY     #$00
 6649  FE2E44  B1 21                    LDA     ($21),Y
 6650  FE2E46  20 E3 32                 JSR     L0EC4
 6651  FE2E49  E6 21                    INC     $21
 6652  FE2E4B  D0 02                    BNE     ?04 
 6653  FE2E4D  E6 22                    INC     $22
 6654  FE2E4F  20 CD 2E         ?04:    JSR     L0B71
 6655  FE2E52  D0 EE                    BNE     ?02 
 6656  FE2E54  20 CC FF                 jsr     FCLRCH
 6657  FE2E57  4C 95 1E                 JMP     SK02
 6658  FE2E5A                   ?06:
 6659  FE2E5A                   PC76:
 6660  FE2E5A                   PC77:
 6661  FE2E5A                   PC78:
 6662  FE2E5A                   PC79:
 6663  FE2E5A  4C 4E 1B                 JMP     vpme07
 6664                           
 6665                           PC6Cx:  ; $0983 - $0B94 
 6666  FE2E5D  4C E5 1D                 jmp     SK04
 6667  FE2E60                           
 6668                           PC6C:   ; $0991 - $0B97
 6669                           PC6D:   ; 'reset' on disk
 6670  FE2E60  20 EB 33                 JSR     L09C2
 6671  FE2E63  A5 3E                    LDA     $3E
 6672  FE2E65  D0 F6                    BNE     PC6Cx
 6673  FE2E67  E6 BB                    INC     $BB             ; skip '@'
 6674  FE2E69  D0 02                    BNE     ?02 
 6675  FE2E6B  E6 BC                    INC     $BC
 6676  FE2E6D  A4 B7            ?02:    ldy     $B7             ; flength
 6677  FE2E6F  88                       dey
 6678  FE2E70  84 B7                    sty     $B7
 6679  FE2E72  88                       dey
 6680  FE2E73  A9 52                    lda     #'R'            ; read
 6681  FE2E75  97 BB                    sta     [$BB],y
 6682                                   ;SEC 
 6683                                   ;SBC    #$05
 6684                                   ;dec    a               ; skip '@' ???
 6685                                   ;STA    $B7
 6686                                   ;lda    #$C0
 6687                                   ;trb    $B9
 6688  FE2E77  20 C0 FF                 JSR     FOPEN
 6689  FE2E7A  20 45 33                 JSR     L0A73
 6690  FE2E7D  A5 3E                    LDA     $3E
  Tue Jul 17 11:00:23 2018                                                                                               Page   73




 6691  FE2E7F  D0 DC                    BNE     PC6Cx 
 6692  FE2E81  A9 00                    LDA     #$00
 6693  FE2E83  A8                       TAY 
 6694  FE2E84  91 29                    STA     ($29),Y
 6695  FE2E86  A5 2D                    LDA     $2D
 6696  FE2E88  18                       CLC 
 6697  FE2E89  69 02                    ADC     #$02
 6698  FE2E8B  85 2D                    STA     $2D
 6699  FE2E8D  90 02                    BCC     ?04 
 6700  FE2E8F  E6 2E                    INC     $2E
 6701  FE2E91                   ?04:
 6702                           PC70:   ; $0B0C - $0D12
 6703  FE2E91                   PC71:
 6704  FE2E91  20 DB 2E                 JSR     L0B7F
 6705  FE2E94  A0 00                    LDY     #$00
 6706  FE2E96  B1 29                    LDA     ($29),Y
 6707  FE2E98  29 10                    AND     #$10
 6708  FE2E9A  D0 2E                    BNE     ?10 
 6709  FE2E9C  20 EF 31                 JSR     L0F11
 6710  FE2E9F  20 71 31         ?02:    JSR     L0F2B
 6711  FE2EA2  A0 00                    LDY     #$00
 6712  FE2EA4  91 21                    STA     ($21),Y
 6713  FE2EA6  E6 21                    INC     $21
 6714  FE2EA8  D0 02                    BNE     ?04 
 6715  FE2EAA  E6 22                    INC     $22
 6716  FE2EAC  AA               ?04:    TAX 
 6717  FE2EAD  A0 00                    LDY     #$00
 6718  FE2EAF  B1 29                    LDA     ($29),Y
 6719  FE2EB1  29 80                    AND     #$80
 6720  FE2EB3  D0 0F                    BNE     ?06 
 6721  FE2EB5  20 CD 2E                 JSR     L0B71
 6722  FE2EB8  D0 E5                    BNE     ?02 
 6723  FE2EBA  E0 0D                    CPX     #$0D
 6724  FE2EBC  D0 06                    BNE     ?06 
 6725  FE2EBE  B1 29                    LDA     ($29),Y
 6726  FE2EC0  09 40                    ORA     #$40
 6727  FE2EC2  91 29                    STA     ($29),Y
 6728  FE2EC4  20 CC FF         ?06:    JSR     FCLRCH
 6729  FE2EC7  4C 95 1E         ?08:    JMP     SK02
 6730  FE2ECA  4C 4E 1B         ?10:    JMP     vpme07
 6731                           
 6732                           L0B71:  ; $0B71 - $0D77
 6733  FE2ECD  A5 23                    LDA     $23
 6734  FE2ECF  38                       SEC 
 6735  FE2ED0  E9 01                    SBC     #$01
 6736  FE2ED2  85 23                    STA     $23
 6737  FE2ED4  B0 02                    BCS     ?02 
 6738  FE2ED6  C6 24                    DEC     $24
 6739  FE2ED8  05 24            ?02:    ORA     $24
 6740  FE2EDA  60                       RTS 
 6741                           
 6742                           L0B7F:  ; $0B7F - $0D85
 6743  FE2EDB                           ACC16
 6744  FE2EDB  C2 20                    rep     #PMFLAG
 6745                                   .LONGA  on
 6746                                   .MNLIST
 6747  FE2EDD  B1 2D                    LDA     ($2D),Y
  Tue Jul 17 11:00:23 2018                                                                                               Page   74




 6748  FE2EDF  C8                       iny
 6749  FE2EE0  85 29                    STA     $29
 6750  FE2EE2  06 23                    ASL     $23
 6751  FE2EE4  38                       SEC 
 6752  FE2EE5  A5 29                    LDA     $29
 6753  FE2EE7  E5 23                    SBC     $23
 6754  FE2EE9  85 21                    STA     $21
 6755  FE2EEB  A5 23                    LDA     $23
 6756  FE2EED                           ACC08
 6757  FE2EED  E2 20                    sep     #PMFLAG
 6758                                   .LONGA  off
 6759                                   .MNLIST
 6760  FE2EEF  D0 13                    BNE     ?04
 6761  FE2EF1  E6 23                    INC     $23
 6762  FE2EF3  A5 21                    LDA     $21
 6763  FE2EF5  38                       SEC 
 6764  FE2EF6  E9 02                    SBC     #$02
 6765  FE2EF8  85 21                    STA     $21
 6766  FE2EFA  B0 02                    BCS     ?02 
 6767  FE2EFC  C6 22                    DEC     $22
 6768  FE2EFE  A9 00            ?02:    LDA     #$00
 6769  FE2F00  A0 01                    LDY     #$01
 6770  FE2F02  91 21                    STA     ($21),Y
 6771  FE2F04  60               ?04:    RTS 
 6772                           
 6773                           PC18:   ; $13FF - $168A
 6774                                   ; load string 'true ' or 'false'
 6775  FE2F05  20 03 32                 JSR     L1762
 6776  FE2F08  66 21                    ROR     $21             ; CF = 1 if TRUE
 6777  FE2F0A                           INDEX16
 6778  FE2F0A  C2 10                    rep     #PXFLAG
 6779                                   .LONGI  on
 6780                                   .MNLIST
 6781  FE2F0C  A2 AE FF                 ldx     #MFALSE         ; false
 6782  FE2F0F  90 03                    BCC     ?02
 6783  FE2F11  A2 A8 FF                 ldx     #MTRUE          ; true
 6784  FE2F14  86 21            ?02:    stx     $21
 6785  FE2F16                           INDEX08
 6786  FE2F16  E2 10                    sep     #PXFLAG
 6787                                   .LONGI  off
 6788                                   .MNLIST
 6789  FE2F18  80 03                    bra     L13E9
 6790                           
 6791                           PC17:   ; $13E6 - $1671
 6792  FE2F1A  20 03 32                 JSR     L1762
 6793                           L13E9:  ; $13E9 - $1674
 6794  FE2F1D  A0 00                    LDY     #$00
 6795  FE2F1F  C8               ?02:    INY 
 6796  FE2F20  B1 21                    LDA     ($21),Y
 6797  FE2F22  D0 FB                    BNE     ?02 
 6798  FE2F24  A5 23                    LDA     $23
 6799  FE2F26  25 24                    AND     $24
 6800  FE2F28  49 FF                    EOR     #$FF
 6801  FE2F2A  D0 02                    BNE     ?04
 6802  FE2F2C  84 23                    STY     $23
 6803  FE2F2E  84 25            ?04:    STY     $25
 6804  FE2F30  80 1C                    bra     L16AA
  Tue Jul 17 11:00:23 2018                                                                                               Page   75




 6805                           
 6806                           PC72:   ; $168E - $1919
 6807  FE2F32                   PC73:
 6808  FE2F32  A5 24                    LDA     $24
 6809  FE2F34  85 26                    STA     $26
 6810  FE2F36  A5 23                    LDA     $23
 6811  FE2F38  85 25                    STA     $25
 6812  FE2F3A  20 03 32                 JSR     L1762
 6813  FE2F3D  A5 25                    LDA     $25
 6814  FE2F3F  49 01                    EOR     #$01
 6815  FE2F41  6A                       ROR     a 
 6816  FE2F42  A5 21                    LDA     $21
 6817  FE2F44  E5 25                    SBC     $25
 6818  FE2F46  85 21                    STA     $21
 6819  FE2F48  A5 22                    LDA     $22
 6820  FE2F4A  E5 26                    SBC     $26
 6821  FE2F4C  85 22                    STA     $22
 6822                           L16AA:  ; $16AA - $1935 
 6823  FE2F4E  A6 25                    LDX     $25
 6824  FE2F50  20 34 33                 JSR     L0E69
 6825  FE2F53  A6 25                    LDX     $25
 6826  FE2F55  A5 23                    LDA     $23
 6827  FE2F57  C5 25                    CMP     $25
 6828  FE2F59  B0 01                    BCS     ?02 
 6829  FE2F5B  AA                       TAX 
 6830  FE2F5C  A0 00            ?02:    LDY     #$00
 6831  FE2F5E  CA                       DEX 
 6832  FE2F5F  30 0D                    BMI     ?04 
 6833  FE2F61  B1 21                    LDA     ($21),Y
 6834  FE2F63  20 E3 32                 JSR     L0EC4
 6835  FE2F66  E6 21                    INC     $21
 6836  FE2F68  D0 F2                    BNE     ?02 
 6837  FE2F6A  E6 22                    INC     $22
 6838  FE2F6C  D0 EE                    BNE     ?02 
 6839  FE2F6E  4C CC FF         ?04:    JMP     FCLRCH
 6840                           
 6841                           PC74:   ; $1BC0 - $1E4B
 6842  FE2F71                   PC75:
 6843  FE2F71  20 17 2A                 JSR     L1B8B
 6844  FE2F74  A5 21                    LDA     $21
 6845  FE2F76  38                       SEC 
 6846  FE2F77  E9 04                    SBC     #$04
 6847  FE2F79  B0 02                    BCS     ?02 
 6848  FE2F7B  C6 22                    DEC     $22
 6849  FE2F7D  06 23            ?02:    ASL     $23
 6850  FE2F7F  26 24                    ROL     $24
 6851  FE2F81  38                       SEC 
 6852  FE2F82  E5 23                    SBC     $23
 6853  FE2F84  85 21                    STA     $21
 6854  FE2F86  A5 22                    LDA     $22
 6855  FE2F88  E5 24                    SBC     $24
 6856  FE2F8A  85 22                    STA     $22
 6857  FE2F8C  A0 00                    LDY     #$00
 6858  FE2F8E  B1 21                    LDA     ($21),Y
 6859  FE2F90  85 23                    STA     $23
 6860  FE2F92  C8                       INY 
 6861  FE2F93  B1 21                    LDA     ($21),Y
  Tue Jul 17 11:00:23 2018                                                                                               Page   76




 6862  FE2F95  85 24                    STA     $24
 6863  FE2F97  C8                       INY 
 6864  FE2F98  B1 21                    LDA     ($21),Y
 6865  FE2F9A  A0 00                    LDY     #$00
 6866  FE2F9C  20 1F 2A                 JSR     L1B93
 6867  FE2F9F  4C EC 29                 JMP     L1B45
 6868                           
 6869                           ; read string
 6870                           PC7A:   ; $16D0 - $195B
 6871  FE2FA2                   PC7B:
 6872  FE2FA2  20 14 30                 JSR     L178B
 6873  FE2FA5  48                       PHA 
 6874  FE2FA6  A5 23                    LDA     $23
 6875  FE2FA8  49 01                    EOR     #$01
 6876  FE2FAA  6A                       ROR     a
 6877  FE2FAB  A0 02                    LDY     #$02
 6878  FE2FAD  B1 2D                    LDA     ($2D),Y
 6879  FE2FAF  E5 23                    SBC     $23
 6880  FE2FB1  85 21                    STA     $21
 6881  FE2FB3  C8                       INY 
 6882  FE2FB4  B1 2D                    LDA     ($2D),Y
 6883  FE2FB6  E5 24                    SBC     $24
 6884  FE2FB8  85 22                    STA     $22
 6885  FE2FBA  68                       PLA 
 6886  FE2FBB  C9 20            ?02:    CMP     #$20
 6887  FE2FBD  F0 08                    BEQ     ?04 
 6888  FE2FBF  C9 0D                    CMP     #$0D
 6889  FE2FC1  F0 04                    BEQ     ?04 
 6890  FE2FC3  C9 0A                    CMP     #$0A
 6891  FE2FC5  D0 05                    BNE     ?06 
 6892  FE2FC7  20 71 31         ?04:    JSR     L0F2B
 6893  FE2FCA  80 EF                    bra     ?02
 6894  FE2FCC  A0 00            ?06:    LDY     #$00
 6895  FE2FCE  C9 0D                    CMP     #$0D
 6896  FE2FD0  F0 25                    BEQ     ?12 
 6897  FE2FD2  91 21                    STA     ($21),Y
 6898  FE2FD4  E6 21                    INC     $21
 6899  FE2FD6  D0 02                    BNE     ?08 
 6900  FE2FD8  E6 22                    INC     $22
 6901  FE2FDA  A5 23            ?08:    LDA     $23
 6902  FE2FDC  38                       SEC 
 6903  FE2FDD  E9 01                    SBC     #$01
 6904  FE2FDF  85 23                    STA     $23
 6905  FE2FE1  B0 02                    BCS     ?09 
 6906  FE2FE3  C6 24                    DEC     $24
 6907  FE2FE5  05 24            ?09:    ORA     $24
 6908  FE2FE7  F0 05                    BEQ     ?10 
 6909  FE2FE9  20 71 31                 JSR     L0F2B
 6910  FE2FEC  80 DE                    bra     ?06
 6911  FE2FEE  20 71 31         ?10:    JSR     L0F2B
 6912  FE2FF1  C9 0D                    CMP     #$0D
 6913  FE2FF3  D0 F9                    BNE     ?10 
 6914  FE2FF5  F0 17                    BEQ     ?14 
 6915  FE2FF7  A0 FF            ?12:    LDY     #$FF
 6916  FE2FF9  A9 20                    LDA     #$20
 6917  FE2FFB  C8               ?13a:   INY 
 6918  FE2FFC  C4 23                    CPY     $23
  Tue Jul 17 11:00:23 2018                                                                                               Page   77




 6919  FE2FFE  F0 04                    BEQ     ?13 
 6920  FE3000  91 21                    STA     ($21),Y
 6921  FE3002  D0 F7                    BNE     ?13a
 6922  FE3004  A9 FF            ?13:    LDA     #$FF
 6923  FE3006  85 23                    STA     $23
 6924  FE3008  C6 24                    DEC     $24
 6925  FE300A  10 EB                    BPL     ?12 
 6926  FE300C  A9 0D                    LDA     #$0D
 6927  FE300E  20 8F 30         ?14:    JSR     L17B7
 6928  FE3011  4C E5 1D                 JMP     SK04
 6929                           
 6930                           L178B:  ; $178B - $1A16
 6931  FE3014  20 62 30                 JSR     L17A3
 6932  FE3017  20 EF 31                 JSR     L0F11
 6933  FE301A  38                       SEC 
 6934  FE301B  A5 29                    LDA     $29
 6935  FE301D  E9 02                    SBC     #$02
 6936  FE301F  85 27                    STA     $27
 6937  FE3021  A5 2A                    LDA     $2A
 6938  FE3023  E9 00                    SBC     #$00
 6939  FE3025  85 28                    STA     $28
 6940  FE3027  A0 00                    LDY     #$00
 6941  FE3029  B1 27                    LDA     ($27),Y
 6942  FE302B  60                       RTS
 6943                           
 6944                           PC7C:   ; $203F - $2ABE
 6945                           PC7D:   ; execute function/procedure
 6946  FE302C  A5 23                    LDA     $23
 6947  FE302E  0A                       ASL     a 
 6948  FE302F  AA                       TAX
 6949  FE3030  24 97                    bit     runf
 6950  FE3032  30 03                    bmi     ?02
 6951  FE3034  7C 96 3D                 jmp     (CFUNCT,X)      ; compiling
 6952  FE3037  7C A8 3D         ?02:    jmp     (RFUNCT,X)      ; running
 6953                           
 6954                           PC7E:   ; $1FEA - $2A6D
 6955                           PC7F:   ; change p-code pointer
 6956  FE303A  20 1D 2B                 JSR     L2027
 6957  FE303D                           ACC16
 6958  FE303D  C2 20                    rep     #PMFLAG
 6959                                   .LONGA  on
 6960                                   .MNLIST
 6961  FE303F  B2 23                    LDA     ($23)
 6962  FE3041  1A                       inc     a
 6963  FE3042  92 23                    STA     ($23)
 6964  FE3044                           ACC08
 6965  FE3044  E2 20                    sep     #PMFLAG
 6966                                   .LONGA  off
 6967                                   .MNLIST
 6968  FE3046  EB                       xba
 6969  FE3047  49 80                    EOR     #$80
 6970  FE3049  12 23                    ORA     ($23)
 6971  FE304B  D0 0B                    BNE     ?04 
 6972  FE304D  18                       CLC 
 6973  FE304E  A5 2B                    LDA     $2B
 6974  FE3050  69 03                    ADC     #$03
 6975  FE3052  85 2B                    STA     $2B
  Tue Jul 17 11:00:23 2018                                                                                               Page   78




 6976  FE3054  90 02                    BCC     ?04 
 6977  FE3056  E6 2C                    INC     $2C
 6978  FE3058  60               ?04:    rts
 6979                           
 6980                           PC3E:   ; $xxxx - $3240 (CHAIN)
 6981  FE3059  4C 4E 1B                 jmp     vpme07
 6982                           
 6983                           PC3F:   ; $14A7 - $1732
 6984  FE305C  20 85 30                 JSR     L17AD
 6985  FE305F  88                       DEY 
 6986  FE3060  80 07                    bra     L148A
 6987                           
 6988                           L17A3:  ; $17A3 - $1A2E
 6989  FE3062  64 3E                    STZ     $3E             ; clear error
 6990  FE3064  A0 00                    ldy     #0
 6991  FE3066  20 85 30                 JSR     L17AD
 6992                           
 6993                           L148A:  ; $148A - $1715
 6994  FE3069  A0 00                    LDY     #$00
 6995  FE306B  B2 29                    LDA     ($29)
 6996  FE306D  29 02                    AND     #$02
 6997  FE306F  F0 1D                    BEQ     L17B0 
 6998  FE3071  52 29                    EOR     ($29)
 6999  FE3073  92 29                    STA     ($29)
 7000  FE3075  20 EF 31                 JSR     L0F11
 7001  FE3078  20 71 31         ?02:    JSR     L0F2B
 7002  FE307B  C9 0A                    CMP     #$0A
 7003  FE307D  F0 F9                    BEQ     ?02 
 7004  FE307F  20 8F 30                 jsr     L17B7
 7005  FE3082  4C CC FF                 JMP     FCLRCH
 7006                           
 7007                           L17AD:  ; $17AD - $1A38
 7008  FE3085  B1 2D                    LDA     ($2D),Y
 7009  FE3087  85 29                    STA     $29
 7010  FE3089  C8                       INY 
 7011  FE308A  B1 2D                    LDA     ($2D),Y
 7012  FE308C  85 2A                    STA     $2A
 7013  FE308E                   L17B0:
 7014  FE308E  60                       RTS 
 7015                           
 7016                           L17B7:  ; $17B7 - $1A42
 7017                                   ; store char
 7018  FE308F  A2 00                    LDX     #$00
 7019  FE3091  C9 0D                    CMP     #$0D
 7020  FE3093  D0 04                    BNE     ?02 
 7021  FE3095  A9 20                    LDA     #$20
 7022  FE3097  A2 40                    LDX     #$40
 7023  FE3099  48               ?02:    PHA 
 7024  FE309A  86 27                    STX     $27
 7025  FE309C  A0 00                    LDY     #$00
 7026  FE309E  B2 29                    LDA     ($29)
 7027  FE30A0  29 BF                    AND     #$BF
 7028  FE30A2  05 27                    ORA     $27
 7029  FE30A4  92 29                    STA     ($29)
 7030  FE30A6                           ACC16
 7031  FE30A6  C2 20                    rep     #PMFLAG
 7032                                   .LONGA  on
  Tue Jul 17 11:00:23 2018                                                                                               Page   79




 7033                                   .MNLIST
 7034  FE30A8  A5 29                    LDA     $29
 7035  FE30AA  3A                       dec     a
 7036  FE30AB  3A                       dec     a
 7037  FE30AC  85 27                    STA     $27
 7038  FE30AE                           ACC08
 7039  FE30AE  E2 20                    sep     #PMFLAG
 7040                                   .LONGA  off
 7041                                   .MNLIST
 7042  FE30B0  68                       PLA 
 7043  FE30B1  92 27                    STA     ($27)           ; store char
 7044  FE30B3  98                       TYA 
 7045  FE30B4  C8                       INY 
 7046  FE30B5  91 27                    STA     ($27),Y
 7047  FE30B7  60                       RTS 
 7048  FE30B8                           
 7049                           ;---------------------------------------------------------------------------
 7050                           ; I/O subsystem
 7051                           ;---------------------------------------------------------------------------
 7052                           
 7053                           L0E91:  ; $0E91 - $111C
 7054                                   ; check break from keyboard
 7055  FE30B8  A5 3B                    LDA     $3B
 7056  FE30BA  29 40                    AND     #$40
 7057  FE30BC  F0 0A                    BEQ     ?02             ; no detect break 
 7058  FE30BE  20 E1 FF                 JSR     CHKSTOP 
 7059  FE30C1  D0 05                    bne     ?02             ; no break detected
 7060  FE30C3  A2 13                    ldx     #$13            ; break error
 7061  FE30C5  4C 50 1B                 jmp     vpmerr
 7062  FE30C8  A5 42            ?02:    lda     $42
 7063  FE30CA  69 05                    adc     #$05
 7064  FE30CC  85 42                    sta     $42
 7065  FE30CE  60                       rts
 7066                           
 7067  FE30CF                   R0AE9:
 7068                           L0942:  ; $0942 - $0AE9
 7069                                   ; close all open files (10 files from #2 to #11)
 7070  FE30CF  A2 12                    LDX     #MAX2LF-6       ; skip first 2 entry (#0 and #1)
 7071  FE30D1  BD D5 FF         ?01:    LDA     !MFILET+5,X     ; file table
 7072  FE30D4  D0 05                    BNE     ?04 
 7073  FE30D6  CA               ?02:    DEX 
 7074  FE30D7  CA                       DEX 
 7075  FE30D8  10 F7                    BPL     ?01
 7076  FE30DA  60                       RTS 
 7077  FE30DB  BD D5 FF         ?04:    LDA     !MFILET+5,X
 7078  FE30DE  85 2A                    STA     $2A
 7079  FE30E0  BD D4 FF                 LDA     !MFILET+4,X
 7080  FE30E3  85 29                    sta     $29
 7081  FE30E5  24 97                    bit     runf
 7082  FE30E7  10 12                    bpl     ?06
 7083  FE30E9  C5 2F                    cmp     $2F
 7084  FE30EB  A5 2A                    lda     $2A
 7085  FE30ED  E5 30                    sbc     $30
 7086  FE30EF  B0 E5                    bcs     ?02
 7087  FE30F1  A5 29                    lda     $29
 7088  FE30F3  C5 33                    cmp     $33
 7089  FE30F5  A5 2A                    lda     $2A
  Tue Jul 17 11:00:23 2018                                                                                               Page   80




 7090  FE30F7  E5 34                    sbc     $34
 7091  FE30F9  90 DB                    bcc     ?02
 7092  FE30FB  9E D4 FF         ?06:    STZ     MFILET+4,X
 7093  FE30FE  9E D5 FF                 STZ     MFILET+5,X
 7094  FE3101  8A                       TXA 
 7095  FE3102  DA                       phx 
 7096  FE3103  4A                       LSR     a 
 7097  FE3104  69 02                    ADC     #$02            ; skip file#0 and file #1
 7098  FE3106  85 B8                    STA     $B8
 7099  FE3108  20 21 31                 JSR     L0A5B           ; R0C61
 7100  FE310B  FA                       PLX
 7101  FE310C  80 C8                    bra     ?02 
 7102                           
 7103                           R0B28:  ; $xxxx - $0B28
 7104                                   ; close all files in running mode
 7105  FE310E  A2 00                    LDX     #$00
 7106  FE3110  86 33                    STX     $33
 7107  FE3112  86 34                    STX     $34
 7108  FE3114  CA                       DEX 
 7109  FE3115  86 2F                    STX     $2F
 7110  FE3117  86 30                    STX     $30
 7111  FE3119  20 CF 30                 JSR     R0AE9
 7112  FE311C  A9 01                    LDA     #$01            ; close #1 reserved to command channel
 7113  FE311E  4C C3 FF                 JMP     FCLOSE 
 7114                           
 7115                           ; CLOSE ???
 7116                           L0A5B:  ; $0A5B - $0C61
 7117                                   ; close
 7118  FE3121  A0 00                    LDY     #$00
 7119  FE3123  B1 29                    LDA     ($29),Y
 7120  FE3125  29 08                    AND     #$08
 7121  FE3127  F0 0A                    BEQ     ?02
 7122  FE3129  48                       pha
 7123  FE312A  A6 B8                    LDX     $B8
 7124  FE312C  20 C9 FF                 jsr     FSETOUT         ; set file for output
 7125  FE312F  68                       pla
 7126  FE3130                           
 7127                                   ;;jsr   FCHROUT
 7128  FE3130                           
 7129  FE3130  20 CC FF                 jsr     FCLRCH
 7130  FE3133  A5 B8            ?02:    LDA     $B8             ; close
 7131  FE3135  4C C3 FF                 JMP     FCLOSE
 7132                           
 7133  FE3138  63 6C 6F 73 65   ?20:    .DB     'close %bu', $0D
               20 25 62 75 0D 
 7134                           
 7135                           L0E7C:  ; $0E7C - $1107
 7136                                   ; print string zero-terminated
 7137  FE3142  A0 00                    LDY     #$00
 7138  FE3144  B1 21            ?01:    LDA     ($21),Y
 7139  FE3146  F0 06                    BEQ     ?02 
 7140  FE3148  20 D2 FF                 JSR     FCHROUT
 7141  FE314B  C8                       INY 
 7142  FE314C  D0 F6                    BNE     ?01 
 7143  FE314E  60               ?02:    RTS 
 7144                           
 7145                           lprint: ; long print string zero-terminated
  Tue Jul 17 11:00:23 2018                                                                                               Page   81




 7146  FE314F  A0 00                    LDY     #$00
 7147  FE3151  B7 76            ?01:    LDA     [longp],Y
 7148  FE3153  F0 06                    BEQ     ?02 
 7149  FE3155  20 D2 FF                 JSR     FCHROUT
 7150  FE3158  C8                       INY 
 7151  FE3159  D0 F6                    BNE     ?01 
 7152  FE315B  60               ?02:    RTS 
 7153                           
 7154                           L0F9B:  ; $0F9B - $1226
 7155  FE315C  A9 01                    LDA     #$01
 7156  FE315E  85 B8                    STA     $B8
 7157  FE3160                           ACC16
 7158  FE3160  C2 20                    rep     #PMFLAG
 7159                                   .LONGA  on
 7160                                   .MNLIST
 7161  FE3162  A9 BA FF                 lda     #MSTDF1+2       ; default file #1 (disk command channel)
 7162  FE3165  85 29                    STA     $29
 7163  FE3167                           ACC08
 7164  FE3167  E2 20                    sep     #PMFLAG
 7165                                   .LONGA  off
 7166                                   .MNLIST
 7167                           
 7168                           L0E89:  ; $0E89 - $1114
 7169                                   ; print CR
 7170  FE3169  48                       PHA 
 7171  FE316A  A9 0D                    LDA     #$0D
 7172  FE316C  20 D2 FF                 JSR     FCHROUT
 7173  FE316F  68                       PLA 
 7174  FE3170  60                       RTS 
 7175                           
 7176                           L0F2B:  ; $0F2B - $11B6
 7177  FE3171  84 27                    STY     $27
 7178  FE3173  A5 B8                    LDA     $B8
 7179  FE3175  D0 11                    BNE     ?01 
 7180  FE3177  20 B8 30                 JSR     L0E91           ; R111C
 7181  FE317A  DA                       phx
 7182  FE317B  5A                       phy
 7183  FE317C  20 DE FF                 jsr     RDTIM
 7184  FE317F  85 41                    STA     $41
 7185  FE3181  7A                       ply
 7186  FE3182  FA                       plx
 7187  FE3183  20 C9 34                 JSR     L0F73           ; R11FE
 7188                                   ;JSR    L2C5E           ; R0DEF
 7189  FE3186  80 19                    bra     ?03
 7190                           ?01:    ; $0F41 - $11CC
 7191  FE3188  A0 00                    LDY     #$00
 7192  FE318A  84 90                    STY     $90
 7193  FE318C  B1 29                    LDA     ($29),Y
 7194  FE318E  29 80                    AND     #$80
 7195  FE3190  D0 1E                    BNE     ?06
 7196  FE3192  A5 3E                    LDA     $3E             ; current run-time error
 7197  FE3194  D0 09                    BNE     ?02      
 7198  FE3196  20 CF FF                 JSR     FCHRIN          ; input byte
 7199  FE3199  85 28                    STA     $28
 7200  FE319B  A5 90                    LDA     $90
 7201  FE319D  D0 05                    BNE     ?04 
 7202  FE319F  A5 28            ?02:    LDA     $28
  Tue Jul 17 11:00:23 2018                                                                                               Page   82




 7203  FE31A1  A4 27            ?03:    LDY     $27
 7204  FE31A3  60                       RTS 
 7205  FE31A4  C9 40            ?04:    CMP     #$40            ; end of file ?
 7206  FE31A6  D0 0C                    BNE     ?08
 7207  FE31A8  B1 29                    LDA     ($29),Y
 7208  FE31AA  09 80                    ORA     #$80
 7209  FE31AC  91 29                    STA     ($29),Y
 7210  FE31AE  D0 EF                    BNE     ?02 
 7211  FE31B0  A2 0F            ?06:    LDX     #$0F            ; error: end of file
 7212  FE31B2  80 02                    bra     ?10
 7213  FE31B4  A2 11            ?08:    ldx     #$11            ; error: device read error
 7214  FE31B6  A4 27            ?10:    LDY     $27
 7215  FE31B8  80 06                    bra     L0FAA
 7216  FE31BA                           
 7217                           L0F25:  ; $0F25 - $11B0
 7218  FE31BA  A2 0D                    ldx     #$0D            ; error: file not open for reading
 7219  FE31BC  80 02                    bra     L0FAA
 7220                           L0EBE:  ; $0EBE - $1149
 7221  FE31BE  A2 0E                    ldx     #$0E            ; error: file not open for writing
 7222                           L0FAA:  ; $0FAA - $1235
 7223  FE31C0  24 3B                    bit     $3B             ; bit 7 = 1: no errors trap
 7224  FE31C2  30 07                    bmi     ?04             ; print error
 7225  FE31C4  A5 3E                    LDA     $3E
 7226  FE31C6  D0 02                    BNE     ?02  
 7227  FE31C8  86 3E                    STX     $3E             ; runtime error
 7228  FE31CA  60               ?02:    RTS 
 7229  FE31CB  4C 50 1B         ?04:    JMP     vpmerr
 7230                           
 7231  FE31CE                   R0F69:
 7232                           L0CDE:  ; $0CDE - $0F69
 7233                                   ; open file in internal table (24 bytes, 12 files)
 7234  FE31CE  A2 00                    LDX     #$00
 7235  FE31D0                           ACC16
 7236  FE31D0  C2 20                    rep     #PMFLAG
 7237                                   .LONGA  on
 7238                                   .MNLIST
 7239  FE31D2  BD D0 FF         ?02:    LDA     !MFILET,X       ; logical file table (#0 and #1 permanent)
 7240  FE31D5  F0 0C                    BEQ     ?04             ; free entry 
 7241  FE31D7  E8                       INX
 7242  FE31D8  E8                       INX
 7243  FE31D9  E0 18                    CPX     #MAX2LF         ; max files * 2 (22)
 7244  FE31DB  D0 F5                    BNE     ?02 
 7245  FE31DD                           ACC08
 7246  FE31DD  E2 20                    sep     #PMFLAG
 7247                                   .LONGA  off
 7248                                   .MNLIST
 7249  FE31DF  A2 10                    LDX     #$10            ; error: no free i/o channels
 7250  FE31E1  80 DD                    bra     L0FAA
 7251  FE31E3  A5 29            ?04:    LDA     $29             ; word
 7252  FE31E5  9D D0 FF                 STA     !MFILET,X       ; fill entry on table M2CDA
 7253                           L0CFD:  ; $0CFD - $0F88
 7254  FE31E8                           ACC08
 7255  FE31E8  E2 20                    sep     #PMFLAG
 7256                                   .LONGA  off
 7257                                   .MNLIST
 7258  FE31EA  8A                       TXA 
 7259  FE31EB  4A                       LSR     a               ; file number 
  Tue Jul 17 11:00:23 2018                                                                                               Page   83




 7260  FE31EC  85 B8                    STA     $B8
 7261  FE31EE  60               L0F10:  RTS 
 7262                           
 7263                           L0F11:  ; $0F11 - $119C
 7264  FE31EF  A0 00                    LDY     #$00
 7265  FE31F1  B1 29                    LDA     ($29),Y
 7266  FE31F3  29 20                    AND     #$20
 7267  FE31F5  D0 C3                    BNE     L0F25 
 7268  FE31F7  20 4B 32                 JSR     L0D02
 7269  FE31FA  A6 B8                    LDX     $B8
 7270  FE31FC  30 BC                    BMI     L0F25 
 7271  FE31FE  F0 EE                    BEQ     L0F10 
 7272  FE3200  4C C6 FF                 JMP     FSETIN          ; set file for input
 7273                           
 7274                           L1762:  ; $1762 - $19ED
 7275  FE3203  A0 00                    LDY     #$00
 7276  FE3205  84 3E                    STY     $3E
 7277  FE3207                           ACC16
 7278  FE3207  C2 20                    rep     #PMFLAG
 7279                                   .LONGA  on
 7280                                   .MNLIST
 7281  FE3209  B1 2D                    LDA     ($2D),Y
 7282  FE320B  85 23                    STA     $23
 7283  FE320D  C8                       INY 
 7284  FE320E  C8                       INY 
 7285  FE320F  B1 2D                    LDA     ($2D),Y
 7286  FE3211  85 21                    STA     $21
 7287  FE3213  C8                       INY 
 7288  FE3214  C8                       INY
 7289  FE3215                           ACC08
 7290  FE3215  E2 20                    sep     #PMFLAG
 7291                                   .LONGA  off
 7292                                   .MNLIST
 7293  FE3217  20 85 30                 JSR     L17AD
 7294  FE321A  A5 2D                    LDA     $2D
 7295  FE321C  18                       CLC 
 7296  FE321D  69 06                    ADC     #$06
 7297  FE321F  85 2D                    STA     $2D
 7298  FE3221  90 02                    BCC     ?02 
 7299  FE3223  E6 2E                    INC     $2E
 7300                           ?02:    ;;;JMP  L0EA8
 7301                           
 7302                           L0EA8:  ; $0EA8 - $1133
 7303  FE3225  A0 00                    LDY     #$00
 7304  FE3227  B1 29                    LDA     ($29),Y
 7305  FE3229  29 30                    AND     #$30
 7306  FE322B  F0 91                    BEQ     L0EBE 
 7307  FE322D  20 4B 32                 JSR     L0D02
 7308  FE3230  A6 B8                    LDX     $B8
 7309  FE3232  30 8A                    BMI     L0EBE 
 7310  FE3234  C9 01                    CMP     #$01
 7311  FE3236  F0 B6                    BEQ     L0F10 
 7312  FE3238  4C C9 FF                 JMP     FSETOUT         ; set file for output
 7313                           
 7314                           L1FC5:  ; $1FC5
 7315  FE323B                           ACC16
 7316  FE323B  C2 20                    rep     #PMFLAG
  Tue Jul 17 11:00:23 2018                                                                                               Page   84




 7317                                   .LONGA  on
 7318                                   .MNLIST
 7319  FE323D  B2 2D                    LDA     ($2D)
 7320  FE323F  85 21                    STA     $21
 7321  FE3241  C8                       INY
 7322  FE3242  C8                       INY
 7323  FE3243  B1 2D                    LDA     ($2D),Y
 7324  FE3245  85 29                    STA     $29
 7325  FE3247                           ACC08
 7326  FE3247  E2 20                    sep     #PMFLAG
 7327                                   .LONGA  off
 7328                                   .MNLIST
 7329  FE3249  80 DA                    bra     L0EA8
 7330                           
 7331  FE324B                   R0F8D:
 7332                           L0D02:  ; $0D02 - $0F8D
 7333                                   ; search file in internal table
 7334  FE324B  A2 FF                    LDX     #$FF
 7335  FE324D  86 B8                    STX     $B8             ; invalid file
 7336  FE324F  E8                       INX
 7337  FE3250                           ACC16
 7338  FE3250  C2 20                    rep     #PMFLAG
 7339                                   .LONGA  on
 7340                                   .MNLIST
 7341  FE3252  BD D0 FF         ?02:    LDA     !MFILET,X       ; scan logical file table
 7342  FE3255  C5 29                    CMP     $29
 7343  FE3257  F0 8F                    BEQ     L0CFD           ; found
 7344  FE3259  E8                       INX
 7345  FE325A  E8                       INX
 7346  FE325B  E0 18                    CPX     #MAX2LF         ; max files * 2
 7347  FE325D  D0 F3                    BNE     ?02 
 7348  FE325F                           ACC08
 7349  FE325F  E2 20                    sep     #PMFLAG
 7350                                   .LONGA  off
 7351                                   .MNLIST
 7352  FE3261  60               _?rs:   rts
 7353                           
 7354                           L2CAA:  ; $2CAA - $0E3B
 7355                                   ; send char to printer
 7356  FE3262  85 49                    STA     tmpa
 7357  FE3264  20 A8 FF                 JSR     CIOUT
 7358  FE3267  A5 49                    LDA     tmpa
 7359  FE3269  C9 0D                    CMP     #$0D
 7360  FE326B  D0 F4                    BNE     _?rs 
 7361  FE326D  A5 52                    LDA     autolf          ; send LF if not zero
 7362  FE326F  F0 F0                    BEQ     _?rs            ; auto line feed flag 
 7363  FE3271  A9 0A                    LDA     #$0A
 7364  FE3273  4C A8 FF                 JMP     CIOUT
 7365                           
 7366                           L0D1C:  ; $0D1C - $0FA7
 7367                                   ; print integer - $21-$22 = integer, $23 = size of the print field
 7368  FE3276  A2 00                    LDX     #$00
 7369  FE3278  A5 22                    LDA     $22             ; $21-$22 = integer
 7370  FE327A  08                       PHP
 7371  FE327B  24 97                    bit     runf            ; when compile print unsigned
 7372  FE327D                           ACC16
 7373  FE327D  C2 20                    rep     #PMFLAG
  Tue Jul 17 11:00:23 2018                                                                                               Page   85




 7374                                   .LONGA  on
 7375                                   .MNLIST
 7376  FE327F  10 0B                    bpl     ?02             ; compiler: no 2's complement
 7377  FE3281  A5 21                    LDA     $21             ; $21-$22 = integer
 7378  FE3283  10 07                    bpl     ?02 
 7379  FE3285  49 FF FF                 eor     #$FFFF
 7380  FE3288  1A                       inc     a
 7381  FE3289  85 21                    STA     $21
 7382  FE328B  E8                       INX 
 7383  FE328C  A0 00            ?02:    LDY     #$00
 7384  FE328E  38                       sec
 7385  FE328F  E8               ?04:    INX 
 7386                                   ;SEC 
 7387  FE3290  A5 21                    LDA     $21
 7388  FE3292  F9 9E FF                 SBC     !MPOW10,y
 7389  FE3295  C8                       INY
 7390  FE3296  C8                       INY
 7391  FE3297  B0 F6                    BCS     ?04
 7392  FE3299                           ACC08
 7393  FE3299  E2 20                    sep     #PMFLAG
 7394                                   .LONGA  off
 7395                                   .MNLIST
 7396  FE329B  20 34 33                 JSR     L0E69           ; print blanks
 7397  FE329E  28                       PLP
 7398  FE329F  10 09                    BPL     ?06
 7399  FE32A1  24 97                    bit     runf            ; when compile print unsigned
 7400  FE32A3  10 05                    bpl     ?06
 7401  FE32A5  A9 2D                    LDA     #$2D
 7402  FE32A7  20 E3 32                 JSR     L0EC4           ; print sign
 7403  FE32AA  38               ?06:    SEC
 7404  FE32AB  08                       PHP
 7405  FE32AC  A0 08                    LDY     #$08
 7406  FE32AE                           ACC16
 7407  FE32AE  C2 20                    rep     #PMFLAG
 7408                                   .LONGA  on
 7409                                   .MNLIST
 7410  FE32B0  A2 2F            ?08:    LDX     #$2F
 7411  FE32B2  38                       sec
 7412  FE32B3  E8               ?10:    INX 
 7413                                   ;SEC 
 7414  FE32B4  A5 21                    LDA     $21
 7415  FE32B6  F9 9C FF                 SBC     !MPOW10-2,y
 7416  FE32B9  85 21                    STA     $21
 7417  FE32BB  B0 F6                    BCS     ?10
 7418  FE32BD                           ACC08
 7419  FE32BD  E2 20                    sep     #PMFLAG
 7420                                   .LONGA  off
 7421                                   .MNLIST
 7422  FE32BF  8A                       txa
 7423  FE32C0  C9 30                    CMP     #$30
 7424  FE32C2  D0 04                    BNE     ?12 
 7425  FE32C4  28                       PLP
 7426  FE32C5  B0 06                    BCS     ?14 
 7427  FE32C7  08                       PHP
 7428  FE32C8  20 E3 32         ?12:    JSR     L0EC4           ; print digit
 7429  FE32CB  28                       PLP
 7430  FE32CC  18                       clc
  Tue Jul 17 11:00:23 2018                                                                                               Page   86




 7431  FE32CD  08               ?14:    php     
 7432  FE32CE                           ACC16CLC
 7433  FE32CE  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 7434                                   .LONGA  on
 7435                                   .MNLIST
 7436  FE32D0  A5 21                    LDA     $21
 7437  FE32D2  79 9C FF                 ADC     !MPOW10-2,y
 7438  FE32D5  85 21                    STA     $21
 7439  FE32D7  88                       DEY
 7440  FE32D8  88                       DEY
 7441  FE32D9  D0 D5                    BNE     ?08
 7442  FE32DB                           ACC08
 7443  FE32DB  E2 20                    sep     #PMFLAG
 7444                                   .LONGA  off
 7445                                   .MNLIST
 7446  FE32DD  28                       plp
 7447  FE32DE  A5 21                    LDA     $21
 7448  FE32E0  18                       CLC 
 7449  FE32E1  69 30                    ADC     #$30
 7450                           
 7451                           L0EC4:  ; $0EC4 - $114F
 7452                                   ; write char to text device
 7453  FE32E3  08                       PHP 
 7454  FE32E4  85 4A                    sta     tmpwa 
 7455  FE32E6  84 44                    STY     tmpy
 7456  FE32E8  86 4B                    stx     tmpx
 7457  FE32EA  A4 B8                    LDY     $B8
 7458  FE32EC  C0 01                    CPY     #$01
 7459  FE32EE  F0 2C                    BEQ     ?03             ; to command channel 
 7460  FE32F0  A4 BA                    LDY     $BA
 7461  FE32F2  C0 03                    CPY     #$03
 7462  FE32F4  F0 26                    BEQ     ?03             ; to screen 
 7463  FE32F6  90 24                    BCC     ?03
 7464  FE32F8  A8                       tay
 7465  FE32F9  B2 29                    LDA     ($29)
 7466  FE32FB  89 04                    bit     #$04
 7467  FE32FD  F0 06                    BEQ     ?01             ; no printer 
 7468  FE32FF  98                       tya 
 7469  FE3300  20 62 32                 JSR     L2CAA           ; send to printer
 7470  FE3303  80 1A                    bra     ?04
 7471  FE3305  29 08            ?01:    AND     #$08
 7472  FE3307  A8                       TAY 
 7473  FE3308  A5 4A                    lda     tmpwa 
 7474  FE330A  C0 00                    CPY     #$00
 7475  FE330C  D0 0E                    BNE     ?03 
 7476  FE330E  C9 0D                    CMP     #$0D
 7477  FE3310  F0 05                    BEQ     ?02 
 7478  FE3312  20 A8 FF                 JSR     CIOUT
 7479  FE3315  80 08                    bra     ?04
 7480  FE3317  20 A8 FF         ?02:    JSR     CIOUT
 7481  FE331A  80 03                    bra     ?04
 7482  FE331C  20 D2 FF         ?03:    JSR     FCHROUT
 7483  FE331F  20 B8 30         ?04:    JSR     L0E91
 7484  FE3322  A6 4B                    ldx     tmpx
 7485  FE3324  A4 44                    LDY     tmpy
 7486  FE3326  A5 4A                    lda     tmpwa
 7487  FE3328  28                       PLP 
  Tue Jul 17 11:00:23 2018                                                                                               Page   87




 7488  FE3329  60               _?rs1:  RTS 
 7489                           
 7490                           L29B6:  ; $29B6 - $2F98
 7491                                   ; print a blank or minus sign
 7492  FE332A  A9 20                    LDA     #$20
 7493  FE332C  24 66                    BIT     $66
 7494  FE332E  10 B3                    BPL     L0EC4
 7495  FE3330  A9 2D                    LDA     #$2D
 7496  FE3332  80 AF                    bra     L0EC4
 7497                           
 7498                           L0E69:  ; $0E69 - $10F4
 7499  FE3334  8A                       TXA 
 7500  FE3335  49 FF                    EOR     #$FF
 7501  FE3337  38                       SEC 
 7502  FE3338  65 23                    ADC     $23
 7503  FE333A  AA                       TAX 
 7504  FE333B  CA               ?01:    DEX 
 7505  FE333C  30 EB                    BMI     _?rs1 
 7506  FE333E  A9 20                    LDA     #$20
 7507  FE3340  20 E3 32                 JSR     L0EC4
 7508  FE3343  80 F6                    bra     ?01
 7509                           
 7510                           L0A73:  ; $0A73 - $0C79
 7511                                   ; handle disk error
 7512                                   ;LDX    #$01            ; file #1
 7513                                   ;JSR    FSETIN          ; channel command in input
 7514  FE3345  20 CC FF                 jsr     FCLRCH
 7515  FE3348  24 7C                    bit     pcdsk
 7516  FE334A  10 06                    bpl     ?rd             ; compile/exec on real disk
 7517  FE334C  64 21                    stz     $21             ; no real disk error
 7518  FE334E                           
 7519  FE334E  A9 00                    lda     #0              ; no error
 7520  FE3350  80 36                    bra     ?rd2
 7521  FE3352                           
 7522  FE3352  A5 A1            ?rd:    lda     tbnk            ; destination buffer
 7523  FE3354  48                       pha
 7524  FE3355  F4 04 FF                 pea     #TXTBUF
 7525  FE3358  F4 A1 00                 pea     #TBUFMAX-1      ; size
 7526  FE335B  A9 0F                    lda     #$0F            ; command chnl
 7527  FE335D  48                       pha
 7528  FE335E                           CBMFSRD                 ; get error string
 7529  FE335E  02 81                    cop     FN_CBMFSRW
 7530  FE3360  00                       .DB     $00
 7531                                   .MNLIST
 7532  FE3361  8B                       phb
 7533  FE3362  A5 A1                    lda     tbnk
 7534  FE3364  48                       pha
 7535  FE3365  AB                       plb
 7536  FE3366  AD 04 FF                 lda     !TXTBUF
 7537  FE3369  29 0F                    and     #$0F
 7538  FE336B  0A                       asl     a
 7539  FE336C  85 21                    sta     $21
 7540  FE336E  0A                       asl     a
 7541  FE336F  0A                       asl     a
 7542  FE3370  65 21                    adc     $21
 7543  FE3372  85 21                    sta     $21
 7544  FE3374  AD 05 FF                 lda     !TXTBUF+1
  Tue Jul 17 11:00:23 2018                                                                                               Page   88




 7545  FE3377  AB                       plb
 7546  FE3378  29 0F                    and     #$0F
 7547  FE337A  65 21                    adc     $21
 7548  FE337C  85 21                    sta     $21
 7549  FE337E  F0 08                    beq     ?rd2            ; no error
 7550  FE3380  C9 14                    cmp     #20             ; below 20 no disk error
 7551  FE3382  A9 00                    lda     #0
 7552  FE3384  90 02                    bcc     ?rd2
 7553  FE3386  A9 1B                    lda     #MAXVPME        ; disk error
 7554  FE3388  85 3E            ?rd2:   sta     $3E
 7555  FE338A                           
 7556                                   ;jsr    FCHRIN          ; get error code
 7557                                   ;sta    $21
 7558                                   ;jsr    FCLRCH
 7559                                   ;LDA    $21             ; error code
 7560                                   ;STA    $3E             ; error code from disk
 7561  FE338A                           
 7562  FE338A  F0 9D                    BEQ     _?rs1           ; no disk error
 7563  FE338C  A5 3B                    LDA     $3B
 7564  FE338E  29 80                    AND     #$80
 7565  FE3390  F0 97                    BEQ     _?rs1           ; trap i/o error
 7566  FE3392  A5 29                    lda     $29             ; save current file desc
 7567  FE3394  85 71                    sta     fbufpt
 7568  FE3396  A5 2A                    lda     $2A
 7569  FE3398  85 72                    sta     fbufpt+1
 7570  FE339A  20 5C 31                 JSR     L0F9B           ; reset file #1 and print CR
 7571  FE339D  64 3B                    stz     $3B
 7572  FE339F  A6 3E                    ldx     $3E             ; error code
 7573  FE33A1  E0 1B                    cpx     #MAXVPME
 7574  FE33A3  90 12                    bcc     ?er0            ; no disk error
 7575  FE33A5  A5 A1                    lda     tbnk
 7576  FE33A7  85 78                    sta     longp+2         ; error string from disk
 7577  FE33A9  A9 04                    lda     #<TXTBUF
 7578  FE33AB  85 76                    sta     longp
 7579  FE33AD  A9 FF                    lda     #>TXTBUF
 7580  FE33AF  85 77                    sta     longp+1
 7581  FE33B1  A5 21                    lda     $21
 7582  FE33B3  85 3E                    sta     $3E             ; disk error code
 7583  FE33B5  80 03                    bra     ?er1
 7584  FE33B7  20 39 1C         ?er0:   jsr     vpmsrch         ; search error string - store ptr in longp
 7585                           
 7586                                   ; now format and print error message
 7587  FE33BA                           
 7588  FE33BA  A4 B7            ?er1:   ldy     $B7
 7589  FE33BC  D0 12                    bne     ?02a            ; file name
 7590                           
 7591  FE33BE  A5 78                    lda     longp+2         ; param 3: error string pointer
 7592  FE33C0  48                       pha
 7593  FE33C1  D4 76                    pei     (longp)
 7594  FE33C3  A5 3E                    lda     $3E             ; param 2: error code
 7595  FE33C5  48                       pha
 7596  FE33C6  A9 FE                    lda     #^STRFMT1A      ; param 1: format string
 7597  FE33C8  48                       pha
 7598  FE33C9  F4 6D 3E                 pea     #STRFMT1A
 7599  FE33CC  A9 08                    lda     #$08            ; param 0: number of total bytes
 7600  FE33CE  80 15                    bra     ?pr
 7601                           
  Tue Jul 17 11:00:23 2018                                                                                               Page   89




 7602                                   ;stz    !MTMPB0
 7603                                   ;ACC16
 7604                                   ;lda    $BB             ; set an empty string if no file name
 7605                                   ;bne    ?02a
 7606                                   ;lda    #MTMPB0
 7607                                   ;sta    $BB
 7608                           ?02a:   ;ACC08
 7609                           
 7610  FE33D0  A5 BD                    lda     $BD             ; param 4: file name pointer
 7611  FE33D2  48                       pha
 7612  FE33D3  D4 BB                    pei     ($BB)
 7613  FE33D5  A5 78                    lda     longp+2         ; param 3: error string pointer
 7614  FE33D7  48                       pha
 7615  FE33D8  D4 76                    pei     (longp)
 7616  FE33DA  A5 3E                    lda     $3E             ; param 2: error code
 7617  FE33DC  48                       pha
 7618  FE33DD  A9 FE                    lda     #^STRFMT1       ; param 1: format string
 7619  FE33DF  48                       pha
 7620  FE33E0  F4 4B 3E                 pea     #STRFMT1
 7621  FE33E3  A9 0B                    lda     #$0B            ; param 0: number of total bytes
 7622  FE33E5  48               ?pr:    pha
 7623  FE33E6                           BPRINTF
 7624  FE33E6  02 11                    cop     $11
 7625                                   .MNLIST
 7626                                   ;;JSR   L0E89
 7627  FE33E8  4C 7C 1B                 JMP     vpmerr2
 7628                           
 7629                           L09C2:  ; $09C2 - $0BC8
 7630                                   ; prepare for open a disk file
 7631  FE33EB  64 3E                    STZ     $3E             ; clear runtime error
 7632  FE33ED                           ACC16
 7633  FE33ED  C2 20                    rep     #PMFLAG
 7634                                   .LONGA  on
 7635                                   .MNLIST
 7636  FE33EF  B2 2D                    LDA     ($2D)
 7637  FE33F1  85 21                    STA     $21
 7638  FE33F3  C8                       INY 
 7639  FE33F4  C8                       INY 
 7640  FE33F5  B1 2D                    LDA     ($2D),Y
 7641  FE33F7  38                       SEC 
 7642  FE33F8  E9 03 00                 SBC     #$0003
 7643  FE33FB  91 2D                    STA     ($2D),Y
 7644  FE33FD  85 29                    STA     $29 
 7645  FE33FF  88                       dey
 7646  FE3400  91 29                    STA     ($29),Y
 7647  FE3402                           ACC08
 7648  FE3402  E2 20                    sep     #PMFLAG
 7649                                   .LONGA  off
 7650                                   .MNLIST
 7651  FE3404  20 4B 32                 JSR     L0D02           ; search file
 7652  FE3407  A5 B8                    LDA     $B8
 7653  FE3409  30 05                    BMI     ?02             ; no file in internal table 
 7654  FE340B  20 21 31                 JSR     L0A5B           ; close file
 7655  FE340E  80 03                    bra     ?04
 7656  FE3410  20 CE 31         ?02:    JSR     L0CDE           ; open file in internal table
 7657  FE3413  A5 3E            ?04:    LDA     $3E
 7658  FE3415  F0 01                    beq     ?044
  Tue Jul 17 11:00:23 2018                                                                                               Page   90




 7659  FE3417  60                       rts
 7660                                   ;BNE    ?14             ; exit if any error 
 7661  FE3418  A5 21            ?044:   LDA     $21
 7662  FE341A  05 22                    ORA     $22
 7663                                   ;;BNE   ?06             ; file name was specified
 7664  FE341C  F0 3E                    beq     ?05             ; file name was not specified
 7665                           
 7666  FE341E  B2 21                    lda     ($21)
 7667  FE3420  C9 40                    cmp     #'@'
 7668  FE3422  D0 06                    bne     ?04a
 7669  FE3424  E6 21                    inc     $21
 7670  FE3426  D0 02                    bne     ?04a
 7671  FE3428  E6 22                    inc     $22
 7672  FE342A  A0 01            ?04a:   ldy     #1
 7673  FE342C  B1 21                    lda     ($21),y
 7674  FE342E  C9 3A                    cmp     #':'
 7675  FE3430  F0 3A                    beq     ?06             ; drive present 'x:'
 7676  FE3432  88                       dey
 7677  FE3433  B1 21            ?04b:   lda     ($21),y
 7678  FE3435  99 7E FF                 sta     MTMPB0,y
 7679  FE3438  F0 0E                    beq     ?04c
 7680  FE343A  C9 20                    cmp     #' '
 7681  FE343C  F0 0A                    beq     ?04c
 7682  FE343E  C8                       iny
 7683  FE343F  C0 11                    cpy     #17
 7684  FE3441  90 F0                    bcc     ?04b
 7685  FE3443  A9 00                    lda     #0
 7686  FE3445  99 7D FF                 sta     MTMPB0-1,y
 7687  FE3448  A9 30            ?04c:   lda     #'0'
 7688  FE344A  8D 7C FF                 sta     !MTMPB0-2
 7689  FE344D  A9 3A                    lda     #':'
 7690  FE344F  8D 7D FF                 sta     !MTMPB0-1       
 7691  FE3452  A9 7C                    LDA     #<MTMPW1        ; local buffer file name
 7692  FE3454  85 21                    STA     $21
 7693  FE3456  A9 FF                    LDA     #>MTMPW1
 7694  FE3458  85 22                    STA     $22
 7695  FE345A  80 10                    bra     ?06
 7696  FE345C                           
 7697  FE345C  A9 8F            ?05:    lda     #<MTMPNAM       ; setup temp. file
 7698  FE345E  85 21                    sta     $21
 7699  FE3460  A9 FF                    lda     #>MTMPNAM       ; temp. file name '0:PCODEV01.XTN'
 7700  FE3462  85 22                    sta     $22
 7701  FE3464  A5 B8                    lda     $B8             ; #file number 2..11
 7702  FE3466  18                       clc
 7703  FE3467  69 2E                    adc     #$2E            ; '0'..'9'
 7704  FE3469  8D 9C FF                 sta     !MTMPNAM+$0D    ; N = '0'..'9'
 7705                           ?06:    ; compiler bug -- store one more '@' in front
 7706                                   ; avoid this - skip '@' if one at beginning
 7707  FE346C  B2 21                    lda     ($21)
 7708  FE346E  C9 40                    cmp     #'@'
 7709  FE3470  D0 06                    bne     ?07
 7710  FE3472  E6 21                    inc     $21
 7711  FE3474  D0 02                    bne     ?07
 7712  FE3476  E6 22                    inc     $22
 7713  FE3478  A9 D0            ?07:    LDA     #<GFNAME        ; global buffer file name
 7714  FE347A  85 BB                    STA     $BB
 7715  FE347C  A9 FF                    LDA     #>GFNAME
  Tue Jul 17 11:00:23 2018                                                                                               Page   91




 7716  FE347E  85 BC                    STA     $BC
 7717  FE3480  A5 A1                    lda     tbnk            ; text bank
 7718  FE3482  85 BD                    sta     $BD             ; bank
 7719  FE3484  A0 00                    LDY     #$00
 7720  FE3486  A9 40                    LDA     #$40            ; put '@' - replace file on disk if write
 7721  FE3488  97 BB                    STA     [$BB],Y
 7722  FE348A  B1 21            ?08:    LDA     ($21),Y
 7723  FE348C  C8                       INY
 7724  FE348D  C9 61                    CMP     #'a'
 7725  FE348F  90 06                    BCC     ?10
 7726  FE3491  C9 7B                    CMP     #'z'+1
 7727  FE3493  B0 02                    BCS     ?10
 7728  FE3495  29 DF                    and     #$DF
 7729  FE3497  C9 00            ?10:    CMP     #$00            ; #0 is string terminator
 7730  FE3499  F0 0B                    BEQ     ?12
 7731  FE349B  C9 20                    CMP     #$20
 7732  FE349D  F0 07                    BEQ     ?12             ; blank is a string terminator 
 7733  FE349F  97 BB                    STA     [$BB],Y
 7734  FE34A1  C0 12                    CPY     #MAXFNLEN-1     ; one more room for '@'
 7735  FE34A3  90 E5                    bcc     ?08
 7736  FE34A5  C8                       INY                     ; trunc file name if exceed
 7737  FE34A6  A9 2C            ?12:    lda     #','            ; put final ',s,w'
 7738  FE34A8  97 BB                    sta     [$BB],y
 7739  FE34AA  C8                       iny
 7740  FE34AB  A9 53                    lda     #'S'
 7741  FE34AD  97 BB                    sta     [$BB],y
 7742  FE34AF  C8                       iny
 7743  FE34B0  A9 2C                    lda     #','
 7744  FE34B2  97 BB                    sta     [$BB],y
 7745  FE34B4  C8                       iny
 7746  FE34B5  A9 57                    lda     #'W'
 7747  FE34B7  97 BB                    sta     [$BB],y
 7748  FE34B9  C8                       iny     
 7749  FE34BA  A9 00                    lda     #0
 7750  FE34BC  97 BB                    STA     [$BB],Y         ; store terminator      
 7751  FE34BE  84 B7                    STY     $B7             ; filename lenght
 7752  FE34C0  A5 B8                    LDA     $B8
 7753                                   ;and    #$3F
 7754                                   ;ora    #$80
 7755  FE34C2  85 B9                    STA     $B9             ; secondary address = file number
 7756  FE34C4  A9 08                    LDA     #$08            ; virtual iec disk #number
 7757  FE34C6  85 BA                    STA     $BA
 7758  FE34C8  60               ?14:    RTS
 7759                           
 7760                           L0F73:  ; $0F73 - $11FE
 7761                                   ; get byte from input buffer -- with boundary check
 7762  FE34C9  A4 45                    LDY     inqidx
 7763  FE34CB  C4 46                    CPY     inqcnt
 7764  FE34CD  D0 1F                    BNE     ?04 
 7765  FE34CF  A0 00                    LDY     #$00
 7766  FE34D1  84 45                    STY     inqidx
 7767  FE34D3  20 CF FF         ?02:    JSR     FCHRIN
 7768  FE34D6  99 00 FF                 STA     !MINBUF,Y
 7769  FE34D9  C8                       INY
 7770  FE34DA  C0 5A                    cpy     #QINSIZ         ; check boundary
 7771  FE34DC  90 05                    bcc     ?03             ; room available
 7772  FE34DE  A9 0D                    lda     #$0D            ; terminate input
  Tue Jul 17 11:00:23 2018                                                                                               Page   92




 7773  FE34E0  99 FF FE                 STA     !MINBUF-1,Y
 7774                                   ;sta    $ff00-1,y
 7775  FE34E3  C9 0D            ?03:    CMP     #$0D
 7776  FE34E5  D0 EC                    BNE     ?02
 7777  FE34E7  84 46                    STY     inqcnt
 7778  FE34E9  20 D2 FF                 JSR     FCHROUT
 7779  FE34EC  A4 45                    LDY     inqidx
 7780  FE34EE  E6 45            ?04:    INC     inqidx
 7781  FE34F0  B9 00 FF                 LDA     !MINBUF,Y
 7782  FE34F3  60                       RTS 
 7783                           
 7784                           ;---------------------------------------------------------------------------
 7785                           ; external function's used by compiler
 7786                           ;---------------------------------------------------------------------------
 7787                           
 7788                           L084E:  ; $1C33 - ($084E)
 7789                                   ; evaluate floating point constant
 7790                                   .GLOBAL L084E
 7791  FE34F4                           ACC16
 7792  FE34F4  C2 20                    rep     #PMFLAG
 7793                                   .LONGA  on
 7794                                   .MNLIST
 7795  FE34F6  38                       SEC
 7796  FE34F7  B1 2D                    LDA     ($2D),Y
 7797  FE34F9  E9 50 00                 SBC     #$0050
 7798  FE34FC  85 7A                    STA     $7A
 7799  FE34FE                           ACC08
 7800  FE34FE  E2 20                    sep     #PMFLAG
 7801                                   .LONGA  off
 7802                                   .MNLIST
 7803  FE3500  20 C6 98                 JSR     XBCF3P
 7804  FE3503  AA                       TAX                     ; X = 0 if all ok
 7805  FE3504                           ACC16
 7806  FE3504  C2 20                    rep     #PMFLAG
 7807                                   .LONGA  on
 7808                                   .MNLIST
 7809  FE3506  A0 02                    LDY     #$02
 7810  FE3508  B1 2D                    LDA     ($2D),Y
 7811  FE350A  3A                       dec     a
 7812  FE350B  3A                       dec     a
 7813  FE350C  85 27                    STA     $27
 7814  FE350E  C8                       INY
 7815  FE350F  C8                       iny
 7816  FE3510  B1 2D                    LDA     ($2D),Y
 7817  FE3512  3A                       dec     a
 7818  FE3513  3A                       dec     a
 7819  FE3514  85 23                    STA     $23
 7820  FE3516  C8                       INY
 7821  FE3517  C8                       iny
 7822  FE3518  B1 2D                    LDA     ($2D),Y
 7823  FE351A  3A                       dec     a
 7824  FE351B  3A                       dec     a
 7825  FE351C  85 25                    STA     $25
 7826  FE351E  C8                       iny
 7827  FE351F                           ACC08
 7828  FE351F  E2 20                    sep     #PMFLAG
 7829                                   .LONGA  off
  Tue Jul 17 11:00:23 2018                                                                                               Page   93




 7830                                   .MNLIST
 7831  FE3521  A9 00                    LDA     #$00
 7832  FE3523  91 2D                    STA     ($2D),Y
 7833  FE3525  E0 00                    CPX     #$00
 7834  FE3527  D0 04                    BNE     ?16
 7835  FE3529  A9 01                    LDA     #$01
 7836  FE352B  91 2D                    STA     ($2D),Y
 7837  FE352D  88               ?16:    DEY
 7838  FE352E  91 2D                    STA     ($2D),Y
 7839  FE3530                           ACC16
 7840  FE3530  C2 20                    rep     #PMFLAG
 7841                                   .LONGA  on
 7842                                   .MNLIST
 7843  FE3532  AD E8 FF                 lda     !FAC1TMP
 7844  FE3535  92 25                    STA     ($25)
 7845  FE3537  AD EA FF                 lda     !FAC1TMP+2
 7846  FE353A  92 27                    STA     ($27)
 7847  FE353C                           ACC08
 7848  FE353C  E2 20                    sep     #PMFLAG
 7849                                   .LONGA  off
 7850                                   .MNLIST
 7851  FE353E  A9 00                    lda     #$00
 7852  FE3540  EB                       xba
 7853  FE3541  AD EC FF                 lda     !FAC1TMP+4      
 7854  FE3544                           ACC16CLC
 7855  FE3544  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 7856                                   .LONGA  on
 7857                                   .MNLIST
 7858  FE3546  92 23                    STA     ($23)
 7859  FE3548  A5 2D                    LDA     $2D
 7860  FE354A  69 06 00                 ADC     #$0006
 7861  FE354D  85 2D                    STA     $2D
 7862  FE354F                           ACC08
 7863  FE354F  E2 20                    sep     #PMFLAG
 7864                                   .LONGA  off
 7865                                   .MNLIST
 7866  FE3551  60                       RTS
 7867                           
 7868                           L0851:  ; $1D1C ($0851)
 7869                                   ; search reserved words
 7870                                   .EXTERN PCRSWD
 7871                                   .GLOBAL L0851
 7872  FE3552  38                       SEC
 7873  FE3553                           ACC16
 7874  FE3553  C2 20                    rep     #PMFLAG
 7875                                   .LONGA  on
 7876                                   .MNLIST
 7877  FE3555  B2 2D                    LDA     ($2D)
 7878  FE3557  E9 08 00                 SBC     #$0008
 7879  FE355A  85 23                    STA     $23
 7880  FE355C                           ACC08
 7881  FE355C  E2 20                    sep     #PMFLAG
 7882                                   .LONGA  off
 7883                                   .MNLIST
 7884  FE355E  A9 FF                    LDA     #$FF
 7885  FE3560  85 21                    STA     $21
 7886  FE3562  A2 00                    LDX     #$00
  Tue Jul 17 11:00:23 2018                                                                                               Page   94




 7887  FE3564  A0 00            ?02:    LDY     #$00
 7888  FE3566  E6 21                    INC     $21
 7889  FE3568  B1 23            ?04:    LDA     ($23),Y
 7890  FE356A  DF 0E 82 FE              CMP     >PCRSWD,X
 7891  FE356E  D0 15                    BNE     ?10
 7892  FE3570  C8                       INY
 7893  FE3571  C9 20                    CMP     #$20
 7894  FE3573  F0 01                    BEQ     ?06
 7895  FE3575  E8                       INX
 7896  FE3576  C0 08            ?06:    CPY     #$08
 7897  FE3578  D0 EE                    BNE     ?04
 7898  FE357A  A5 21                    LDA     $21
 7899  FE357C  A0 00            ?08:    LDY     #$00
 7900  FE357E  92 2D                    STA     ($2D)
 7901  FE3580  98                       TYA
 7902  FE3581  C8                       INY
 7903  FE3582  91 2D                    STA     ($2D),Y
 7904  FE3584  60                       RTS
 7905  FE3585  BF 0E 82 FE      ?10:    LDA     >PCRSWD,X
 7906  FE3589  E8                       INX
 7907  FE358A  C9 20                    CMP     #$20
 7908  FE358C  D0 F7                    BNE     ?10
 7909  FE358E  BF 0E 82 FE              LDA     >PCRSWD,X
 7910  FE3592  D0 D0                    BNE     ?02
 7911  FE3594  A9 27                    LDA     #$27
 7912  FE3596  D0 E4                    BNE     ?08
 7913                           
 7914                           L083C:  ; $1E16 ($083C)
 7915                                   ; load an error message in compile mode
 7916                                   .EXTERN PCERRS
 7917                                   .GLOBAL L083C
 7918  FE3598                           ACC16
 7919  FE3598  C2 20                    rep     #PMFLAG
 7920                                   .LONGA  on
 7921                                   .MNLIST
 7922  FE359A  B2 2D                    lda     ($2D)
 7923  FE359C  38                       sec
 7924  FE359D  E9 80 00                 sbc     #$0080
 7925  FE35A0  85 21                    sta     $21
 7926  FE35A2                           ACC08
 7927  FE35A2  E2 20                    sep     #PMFLAG
 7928                                   .LONGA  off
 7929                                   .MNLIST
 7930  FE35A4  A0 02                    ldy     #$02
 7931  FE35A6  B1 2D                    lda     ($2D),y         ; error code
 7932  FE35A8  A8                       tay                     ; Y = error code
 7933  FE35A9  A9 80                    lda     #$80
 7934  FE35AB  85 4C                    sta     pcterr          ; set error flag
 7935  FE35AD  A2 00                    ldx     #0              ; index
 7936  FE35AF                           INDEX16
 7937  FE35AF  C2 10                    rep     #PXFLAG
 7938                                   .LONGI  on
 7939                                   .MNLIST
 7940  FE35B1  98                       tya
 7941  FE35B2  F0 14                    beq     ?04             ; error code = 0 should not occur
 7942  FE35B4  D0 04                    bne     ?02
 7943  FE35B6  AA               ?01:    tax
  Tue Jul 17 11:00:23 2018                                                                                               Page   95




 7944  FE35B7  A8                       tay
 7945  FE35B8  F0 0E                    beq     ?04
 7946  FE35BA  BF E5 82 FE      ?02:    lda     >PCERRS,x       ; offset of error string's
 7947  FE35BE  F0 F6                    beq     ?01             ; end of strings table
 7948  FE35C0  E8                       inx
 7949  FE35C1  C9 0D                    cmp     #$0D
 7950  FE35C3  D0 F5                    bne     ?02
 7951  FE35C5  88                       dey
 7952  FE35C6  D0 F2                    bne     ?02
 7953  FE35C8  BF E5 82 FE      ?04:    lda     >PCERRS,x       ; here Y = 0 at first time
 7954  FE35CC  E8                       inx
 7955  FE35CD  91 21                    sta     ($21),y
 7956  FE35CF  C8                       iny
 7957  FE35D0  C9 0D                    cmp     #$0D
 7958  FE35D2  D0 F4                    bne     ?04             ; until carriage return
 7959  FE35D4  88                       dey
 7960  FE35D5  A9 24                    lda     #$24            ; change CR
 7961  FE35D7  91 21                    sta     ($21),y
 7962  FE35D9                           CPU16
 7963  FE35D9  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 7964                                   .LONGA  on
 7965                                   .LONGI  on
 7966                                   .MNLIST
 7967  FE35DB  A5 2D                    lda     $2D
 7968  FE35DD  69 04 00                 adc     #$0004
 7969  FE35E0  85 2D                    sta     $2D
 7970  FE35E2                           CPU08
 7971  FE35E2  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 7972                                   .LONGA  off
 7973                                   .LONGI  off
 7974                                   .MNLIST
 7975  FE35E4  60                       rts
 7976                           
 7977                           L0836:  ; $1DC9 ($0836)
 7978                                   ; search standard procedure/function/identifier
 7979                                   .EXTERN PCSFADDR
 7980                                   .GLOBAL L0836
 7981  FE35E5                           ACC16
 7982  FE35E5  C2 20                    rep     #PMFLAG
 7983                                   .LONGA  on
 7984                                   .MNLIST
 7985  FE35E7  A9 5E 3A                 LDA     #PCSFADDR
 7986  FE35EA  85 23                    sta     $23
 7987  FE35EC  80 0C                    bra     L1D79 
 7988                           
 7989                           L084B:  ; $1D63 ($084B)
 7990                                   ; search user procedure/function/identifier
 7991                                   .GLOBAL L084B
 7992  FE35EE                           ACC16
 7993  FE35EE  C2 20                    rep     #PMFLAG
 7994                                   .LONGA  on
 7995                                   .MNLIST
 7996  FE35F0  B2 2D                    LDA     ($2D)
 7997  FE35F2  85 23                    STA     $23
 7998  FE35F4  A5 2D                    LDA     $2D
 7999  FE35F6  1A                       inc     a
 8000  FE35F7  1A                       inc     a
  Tue Jul 17 11:00:23 2018                                                                                               Page   96




 8001  FE35F8  85 2D                    STA     $2D
 8002  FE35FA                   L1D79:
 8003  FE35FA  B2 2D                    LDA     ($2D)
 8004  FE35FC  38                       SEC
 8005  FE35FD  E9 08 00                 SBC     #$0008
 8006  FE3600  85 21                    STA     $21
 8007  FE3602  A5 23            ?02:    LDA     $23
 8008  FE3604  F0 25                    BEQ     ?08
 8009  FE3606  38                       SEC
 8010  FE3607  E9 10 00                 SBC     #$0010
 8011  FE360A  85 27                    sta     $27
 8012  FE360C                           ACC08
 8013  FE360C  E2 20                    sep     #PMFLAG
 8014                                   .LONGA  off
 8015                                   .MNLIST
 8016  FE360E  A0 00                    LDY     #$00
 8017  FE3610  B1 21            ?04:    LDA     ($21),Y
 8018  FE3612  D1 27                    CMP     ($27),Y
 8019  FE3614  D0 0B                    BNE     ?06
 8020  FE3616  C8                       INY
 8021  FE3617  C0 08                    CPY     #$08
 8022  FE3619  D0 F5                    BNE     ?04
 8023  FE361B                           ACC16
 8024  FE361B  C2 20                    rep     #PMFLAG
 8025                                   .LONGA  on
 8026                                   .MNLIST
 8027  FE361D  A5 23                    LDA     $23
 8028  FE361F  80 0A                    bra     ?08
 8029  FE3621  A0 0E            ?06:    LDY     #$0E
 8030  FE3623                           ACC16
 8031  FE3623  C2 20                    rep     #PMFLAG
 8032                                   .LONGA  on
 8033                                   .MNLIST
 8034  FE3625  B1 27                    LDA     ($27),Y
 8035  FE3627  85 23                    STA     $23
 8036  FE3629  D0 D7                    BNE     ?02
 8037  FE362B  92 2D            ?08:    STA     ($2D)
 8038  FE362D                           ACC08
 8039  FE362D  E2 20                    sep     #PMFLAG
 8040                                   .LONGA  off
 8041                                   .MNLIST
 8042  FE362F                   L1E79x: 
 8043  FE362F  60                       RTS
 8044                           
 8045                           L083F:  ; $1E79 ($083F)
 8046                                   .GLOBAL L083F
 8047  FE3630  A0 00                    LDY     #$00
 8048  FE3632  B2 0F                    LDA     ($0F)
 8049  FE3634  F0 F9                    BEQ     L1E79x
 8050  FE3636                           ACC16
 8051  FE3636  C2 20                    rep     #PMFLAG
 8052                                   .LONGA  on
 8053                                   .MNLIST
 8054  FE3638  B2 1B                    LDA     ($1B)
 8055  FE363A  85 29                    STA     $29
 8056  FE363C                           ACC08
 8057  FE363C  E2 20                    sep     #PMFLAG
  Tue Jul 17 11:00:23 2018                                                                                               Page   97




 8058                                   .LONGA  off
 8059                                   .MNLIST
 8060  FE363E  B2 0D                    LDA     ($0D)
 8061  FE3640  F0 08                    BEQ     ?02
 8062  FE3642                           ACC16
 8063  FE3642  C2 20                    rep     #PMFLAG
 8064                                   .LONGA  on
 8065                                   .MNLIST
 8066  FE3644  B2 19                    LDA     ($19)
 8067  FE3646  85 29                    STA     $29
 8068  FE3648                           ACC08
 8069  FE3648  E2 20                    sep     #PMFLAG
 8070                                   .LONGA  off
 8071                                   .MNLIST
 8072  FE364A  B2 29            ?02:    LDA     ($29)
 8073  FE364C  29 80                    AND     #$80
 8074  FE364E  F0 03                    BEQ     ?04
 8075  FE3650  4C DC 36                 jmp     ?10
 8076  FE3653                   ?04:    ACC16
 8077  FE3653  C2 20                    rep     #PMFLAG
 8078                                   .LONGA  on
 8079                                   .MNLIST
 8080  FE3655  A5 29                    LDA     $29
 8081  FE3657  3A                       dec     a
 8082  FE3658  3A                       dec     a
 8083  FE3659  85 21                    STA     $21
 8084  FE365B                           ACC08
 8085  FE365B  E2 20                    sep     #PMFLAG
 8086                                   .LONGA  off
 8087                                   .MNLIST
 8088  FE365D  B2 21                    LDA     ($21)
 8089  FE365F  92 0F                    STA     ($0F)
 8090  FE3661  20 EF 31                 JSR     L0F11
 8091  FE3664  20 71 31         ?05:    JSR     L0F2B
 8092  FE3667  C9 0A                    CMP     #$0A
 8093  FE3669  F0 F9                    BEQ     ?05
 8094  FE366B  92 21                    STA     ($21)
 8095  FE366D  20 CC FF                 JSR     FCLRCH
 8096  FE3670  B2 0F                    LDA     ($0F)
 8097  FE3672  C9 0D                    CMP     #$0D
 8098  FE3674  D0 3C                    BNE     ?06
 8099  FE3676  A9 20            ?05a:   LDA     #$20
 8100  FE3678  92 0F                    STA     ($0F)
 8101  FE367A                           CPU16
 8102  FE367A  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 8103                                   .LONGA  on
 8104                                   .LONGI  on
 8105                                   .MNLIST
 8106  FE367C  B2 13                    LDA     ($13)           ; line number?
 8107  FE367E  1A                       inc     a
 8108  FE367F  92 13                    STA     ($13)
 8109                           
 8110                                   ;ldx    srcdsk
 8111                                   ;cpx    #$08
 8112                                   ;beq    ?05b
 8113                                   ;lda    psrline
 8114                                   ;STA    ($13)   
  Tue Jul 17 11:00:23 2018                                                                                               Page   98




 8115                           
 8116  FE3681  98               ?05b:   tya
 8117  FE3682  92 11                    STA     ($11)
 8118  FE3684                           CPU08
 8119  FE3684  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 8120                                   .LONGA  off
 8121                                   .LONGI  off
 8122                                   .MNLIST
 8123  FE3686  A9 01                    LDA     #$01
 8124  FE3688  92 0B                    STA     ($0B)
 8125  FE368A  B2 07                    LDA     ($07)
 8126  FE368C  F0 24                    BEQ     ?06
 8127  FE368E                           ACC16
 8128  FE368E  C2 20                    rep     #PMFLAG
 8129                                   .LONGA  on
 8130                                   .MNLIST
 8131  FE3690  B2 17                    LDA     ($17)
 8132  FE3692  85 29                    STA     $29
 8133  FE3694                           ACC08
 8134  FE3694  E2 20                    sep     #PMFLAG
 8135                                   .LONGA  off
 8136                                   .MNLIST
 8137  FE3696  20 25 32                 JSR     L0EA8
 8138  FE3699  A9 0D                    LDA     #$0D
 8139  FE369B  20 E3 32                 JSR     L0EC4
 8140  FE369E  A0 00                    LDY     #$00
 8141  FE36A0                           ACC16
 8142  FE36A0  C2 20                    rep     #PMFLAG
 8143                                   .LONGA  on
 8144                                   .MNLIST
 8145  FE36A2  B2 13                    LDA     ($13)
 8146  FE36A4  85 21                    STA     $21
 8147  FE36A6                           ACC08
 8148  FE36A6  E2 20                    sep     #PMFLAG
 8149                                   .LONGA  off
 8150                                   .MNLIST
 8151  FE36A8  A9 05                    LDA     #$05            ; line number 4 chars
 8152  FE36AA  85 23                    STA     $23
 8153  FE36AC  20 76 32                 JSR     L0D1C           ; print line number
 8154  FE36AF  20 CC FF                 JSR     FCLRCH
 8155  FE36B2  A0 00            ?06:    LDY     #$00
 8156  FE36B4  B2 07                    LDA     ($07)
 8157  FE36B6  F0 23                    BEQ     ?08
 8158  FE36B8                           ACC16
 8159  FE36B8  C2 20                    rep     #PMFLAG
 8160                                   .LONGA  on
 8161                                   .MNLIST
 8162  FE36BA  B2 17                    LDA     ($17)
 8163  FE36BC  85 29                    STA     $29
 8164  FE36BE                           ACC08
 8165  FE36BE  E2 20                    sep     #PMFLAG
 8166                                   .LONGA  off
 8167                                   .MNLIST
 8168  FE36C0  20 25 32                 JSR     L0EA8
 8169  FE36C3  A0 00                    LDY     #$00
 8170  FE36C5  B2 0F                    LDA     ($0F)
 8171  FE36C7  20 E3 32                 JSR     L0EC4
  Tue Jul 17 11:00:23 2018                                                                                               Page   99




 8172  FE36CA  AA                       TAX
 8173  FE36CB  B2 11                    LDA     ($11)
 8174  FE36CD  C9 64                    CMP     #$64
 8175  FE36CF  B0 0A                    BCS     ?08
 8176  FE36D1  1A                       inc     a
 8177  FE36D2  92 11                    STA     ($11)
 8178  FE36D4  A8                       TAY
 8179  FE36D5  8A                       TXA
 8180  FE36D6  91 15                    STA     ($15),Y
 8181  FE36D8  20 CC FF                 JSR     FCLRCH
 8182  FE36DB  60               ?08:    RTS
 8183  FE36DC  A0 00            ?10:    LDY     #$00
 8184  FE36DE  B2 0D                    LDA     ($0D)
 8185  FE36E0  F0 05                    BEQ     ?12
 8186  FE36E2  98                       TYA 
 8187  FE36E3  92 0D                    STA     ($0D)
 8188  FE36E5  80 8F                    bra     ?05a
 8189  FE36E7  92 0F            ?12:    STA     ($0F)
 8190  FE36E9  A9 01                    LDA     #$01
 8191  FE36EB  92 09                    STA     ($09)
 8192  FE36ED  60                       RTS
 8193                           
 8194                           L0842:  ; $1F4C ($0842)
 8195                                   ; setup group of 11 pointer from $07-$08 to $1B-$1C 
 8196                                   .GLOBAL L0842
 8197  FE36EE  DA                       phx
 8198  FE36EF  A0 00                    LDY     #$00
 8199  FE36F1  BB                       tyx
 8200  FE36F2                           ACC16
 8201  FE36F2  C2 20                    rep     #PMFLAG
 8202                                   .LONGA  on
 8203                                   .MNLIST
 8204  FE36F4  B1 2D            ?02:    LDA     ($2D),Y
 8205  FE36F6  3A                       dec     a
 8206  FE36F7  3A                       dec     a
 8207  FE36F8  95 07                    STA     <$07,x
 8208  FE36FA  E8                       inx
 8209  FE36FB  E8                       inx
 8210  FE36FC  C8                       iny
 8211  FE36FD  C8                       iny
 8212  FE36FE  C0 16                    cpy     #$16
 8213  FE3700  D0 F2                    bne     ?02
 8214  FE3702  18                       clc
 8215  FE3703  A5 2D                    lda     $2D
 8216  FE3705  69 16 00                 adc     #$0016
 8217  FE3708  85 2D                    sta     $2D
 8218  FE370A  38                       sec
 8219  FE370B  A5 15                    lda     $15
 8220  FE370D  E9 63 00                 sbc     #$0063
 8221  FE3710  85 15                    sta     $15
 8222  FE3712                           ACC08
 8223  FE3712  E2 20                    sep     #PMFLAG
 8224                                   .LONGA  off
 8225                                   .MNLIST
 8226  FE3714  FA                       plx
 8227  FE3715  60                       rts
 8228                           
  Tue Jul 17 11:00:23 2018                                                                                               Page  100




 8229                           L0845:  ; $1DD3 ($0845)
 8230                                   ; setup pointer to standard basic type records
 8231                                   .EXTERN PCTYPEREC
 8232                                   .GLOBAL L0845   
 8233  FE3716  A2 00                    LDX     #$00
 8234  FE3718                           ACC16
 8235  FE3718  C2 20                    rep     #PMFLAG
 8236                                   .LONGA  on
 8237                                   .MNLIST
 8238  FE371A  B2 2D            ?02:    LDA     ($2D)
 8239  FE371C  3A                       dec     a
 8240  FE371D  3A                       dec     a
 8241  FE371E  85 27                    STA     $27
 8242  FE3720  BF D1 82 FE              LDA     >PCTYPEREC,X
 8243  FE3724  92 27                    sta     ($27)
 8244  FE3726  A5 2D                    lda     $2D
 8245  FE3728  1A                       inc     a
 8246  FE3729  1A                       inc     a
 8247  FE372A  85 2D                    sta     $2D
 8248  FE372C  E8                       inx
 8249  FE372D  E8                       inx
 8250  FE372E  E0 14                    cpx     #$14
 8251  FE3730  D0 E8                    bne     ?02
 8252  FE3732                           ACC08
 8253  FE3732  E2 20                    sep     #PMFLAG
 8254                                   .LONGA  off
 8255                                   .MNLIST
 8256  FE3734  60                       rts
 8257                           
 8258                           L0857:  ; $1C2D ($0857)
 8259                                   .GLOBAL L0857, L0854
 8260  FE3735  A9 50                    LDA     #<MINBUF+$50    ; buffer 0250?
 8261  FE3737  A2 FF                    LDX     #>MINBUF+$50
 8262                                   ;lda    #$00
 8263                                   ;ldx    #$02
 8264  FE3739  80 22                    bra     L1C14
 8265                           
 8266                           L0854:  ; $1BF1 ($0854)
 8267  FE373B  A5 4E                    LDA     defprn          ; open file for printer
 8268  FE373D  85 BA                    STA     $BA
 8269  FE373F  A9 02                    LDA     #$02
 8270  FE3741  85 B8                    STA     $B8
 8271  FE3743  A9 00                    LDA     #$00
 8272  FE3745  85 B9                    STA     $B9
 8273  FE3747  85 B7                    STA     $B7
 8274  FE3749  20 C0 FF                 JSR     FOPEN
 8275  FE374C  A5 2D                    LDA     $2D
 8276  FE374E  18                       CLC     
 8277  FE374F  69 02                    ADC     #$02
 8278  FE3751  85 2D                    STA     $2D
 8279  FE3753  90 02                    BCC     ?02
 8280  FE3755  E6 2E                    INC     $2E
 8281  FE3757  AD D4 FF         ?02:    LDA     !MFILET+4       ; default printer file descriptor
 8282  FE375A  AE D5 FF                 LDX     !MFILET+5
 8283                           L1C14:  ; $1C14
 8284  FE375D  EB                       xba
 8285  FE375E  8A                       txa                     ; high byte
  Tue Jul 17 11:00:23 2018                                                                                               Page  101




 8286  FE375F  EB                       xba
 8287  FE3760                           CPU16
 8288  FE3760  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 8289                                   .LONGA  on
 8290                                   .LONGI  on
 8291                                   .MNLIST
 8292  FE3762  AA                       tax
 8293  FE3763  B2 2D                    LDA     ($2D)
 8294  FE3765  3A                       dec     a
 8295  FE3766  3A                       dec     a
 8296  FE3767  85 27                    STA     $27
 8297  FE3769  8A                       TXA
 8298  FE376A  92 27                    STA     ($27)
 8299  FE376C                           CPU08
 8300  FE376C  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 8301                                   .LONGA  off
 8302                                   .LONGI  off
 8303                                   .MNLIST
 8304  FE376E  80 5C                    bra     L1FDB
 8305                           
 8306                           ;---------------------------------------------------------------------------
 8307                           ; function's in 'compile' mode
 8308                           ;---------------------------------------------------------------------------
 8309                           
 8310                           CF00:   ; $1FAE
 8311  FE3770  B2 2D                    LDA     ($2D)
 8312  FE3772  29 7F                    AND     #$7F
 8313  FE3774  92 2D                    STA     ($2D)
 8314  FE3776  98                       TYA
 8315  FE3777  C8                       INY
 8316  FE3778  91 2D                    STA     ($2D),Y
 8317                           CF08:   ; $1FB8
 8318  FE377A  60                       RTS
 8319                           
 8320                           ; procedure wrhexb(n: integer) 
 8321  FE377B                   RF22:
 8322  FE377B  A9 01                    lda     #1
 8323  FE377D  A2 00                    ldx     #0
 8324  FE377F  20 FB 27                 jsr     PCE0            ; set text to std. 'output'
 8325  FE3782  A0 02                    ldy     #2              ; swap text var with integer    
 8326  FE3784                           CPU16
 8327  FE3784  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 8328                                   .LONGA  on
 8329                                   .LONGI  on
 8330                                   .MNLIST
 8331  FE3786  B2 2D                    lda     ($2D)
 8332  FE3788  AA                       tax
 8333  FE3789  B1 2D                    lda     ($2D),y
 8334  FE378B  92 2D                    sta     ($2D)
 8335  FE378D  8A                       txa     
 8336  FE378E  91 2D                    sta     ($2D),y
 8337  FE3790                           CPU08
 8338  FE3790  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 8339                                   .LONGA  off
 8340                                   .LONGI  off
 8341                                   .MNLIST
 8342  FE3792  A0 00                    ldy     #0
  Tue Jul 17 11:00:23 2018                                                                                               Page  102




 8343                           
 8344                           ; procedure fwrhexb(f: text, n: integer) 
 8345  FE3794                   RF07:
 8346  FE3794  20 3B 32                 JSR     L1FC5
 8347  FE3797  A5 21                    LDA     $21
 8348  FE3799  20 0C 38                 jsr     R353E
 8349  FE379C  80 1F                    bra     CF01x
 8350                           
 8351                           ; procedure wrhexw(n: integer) 
 8352  FE379E                   RF21:
 8353  FE379E  A9 01                    lda     #1
 8354  FE37A0  A2 00                    ldx     #0
 8355  FE37A2  20 FB 27                 jsr     PCE0            ; set text to std. 'output'
 8356  FE37A5  A0 02                    ldy     #2              ; swap text var with integer    
 8357  FE37A7                           CPU16
 8358  FE37A7  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 8359                                   .LONGA  on
 8360                                   .LONGI  on
 8361                                   .MNLIST
 8362  FE37A9  B2 2D                    lda     ($2D)
 8363  FE37AB  AA                       tax
 8364  FE37AC  B1 2D                    lda     ($2D),y
 8365  FE37AE  92 2D                    sta     ($2D)
 8366  FE37B0  8A                       txa     
 8367  FE37B1  91 2D                    sta     ($2D),y
 8368  FE37B3                           CPU08
 8369  FE37B3  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 8370                                   .LONGA  off
 8371                                   .LONGI  off
 8372                                   .MNLIST
 8373  FE37B5  A0 00                    ldy     #0
 8374  FE37B7                           
 8375                           ; procedure fwrhexw(f: text, n: integer) 
 8376  FE37B7                   RF06:
 8377                           CF01:   ; $1FB9
 8378                                   ; print hex     
 8379  FE37B7  20 3B 32                 JSR     L1FC5
 8380  FE37BA  20 05 38                 JSR     L0D9B
 8381  FE37BD                   CF01x:
 8382  FE37BD  20 CC FF                 JSR     FCLRCH
 8383  FE37C0  A9 04                    lda     #$04
 8384                           
 8385                           L1FE0:  ; $1FE0
 8386  FE37C2  18                       CLC
 8387  FE37C3  65 2D                    ADC     $2D
 8388  FE37C5  85 2D                    STA     $2D
 8389  FE37C7  90 02                    BCC     ?02
 8390  FE37C9  E6 2E                    INC     $2E
 8391  FE37CB  60               ?02:    RTS
 8392                           
 8393                           L1FDB:  ; $1FDB
 8394  FE37CC  A9 02                    LDA     #$02
 8395  FE37CE  80 F2                    bra     L1FE0
 8396                           
 8397                           CF03:   ; $1F7A
 8398  FE37D0  C8                       INY
 8399  FE37D1  B1 2D                    LDA     ($2D),Y
  Tue Jul 17 11:00:23 2018                                                                                               Page  103




 8400  FE37D3  D0 22                    BNE     ?04
 8401  FE37D5  88                       DEY
 8402  FE37D6  B1 2D                    LDA     ($2D),Y
 8403  FE37D8  F0 F2                    BEQ     L1FDB
 8404  FE37DA  C9 10                    CMP     #$10
 8405  FE37DC  B0 19                    BCS     ?04
 8406  FE37DE  AA                       TAX
 8407  FE37DF  A0 02                    LDY     #$02
 8408  FE37E1  B1 2D                    LDA     ($2D),Y
 8409  FE37E3  85 27                    STA     $27
 8410  FE37E5  C8                       INY     
 8411  FE37E6  B1 2D                    LDA     ($2D),Y
 8412  FE37E8  06 27            ?02:    ASL     $27
 8413  FE37EA  2A                       ROL     a
 8414  FE37EB  CA                       DEX
 8415  FE37EC  D0 FA                    BNE     ?02
 8416  FE37EE  91 2D                    STA     ($2D),Y
 8417  FE37F0  88                       DEY
 8418  FE37F1  A5 27                    LDA     $27
 8419  FE37F3  91 2D                    STA     ($2D),Y
 8420  FE37F5  80 D5                    bra     L1FDB
 8421  FE37F7  A0 02            ?04:    LDY     #$02
 8422  FE37F9  A9 00                    LDA     #$00
 8423  FE37FB  91 2D                    STA     ($2D),Y
 8424  FE37FD  C8                       INY
 8425  FE37FE  91 2D                    STA     ($2D),Y
 8426  FE3800  80 CA                    bra     L1FDB
 8427                           
 8428  FE3802                   CF02:
 8429  FE3802                   CF04:
 8430  FE3802                   CF05:
 8431  FE3802                   CF06:
 8432  FE3802                   CF07:
 8433  FE3802  4C 4E 1B                 jmp     vpme07
 8434                           
 8435                           L0D9B:  ; $0D9B
 8436                                   ; print hex $21-$22
 8437  FE3805  A5 22                    LDA     $22
 8438  FE3807  20 0C 38                 JSR     R353E
 8439  FE380A  A5 21                    LDA     $21
 8440  FE380C                           
 8441  FE380C                   R353E:
 8442  FE380C  48               ?10:    PHA 
 8443  FE380D  4A                       LSR     a
 8444  FE380E  4A                       LSR     a
 8445  FE380F  4A                       LSR     a
 8446  FE3810  4A                       LSR     a
 8447  FE3811  20 24 38                 JSR     ?20
 8448  FE3814  AA                       TAX
 8449  FE3815  68                       PLA
 8450  FE3816  29 0F                    AND     #$0F
 8451  FE3818  20 24 38                 JSR     ?20
 8452  FE381B  48                       PHA
 8453  FE381C  8A                       TXA
 8454  FE381D  20 D2 FF                 JSR     FCHROUT
 8455  FE3820  68                       PLA
 8456  FE3821  4C D2 FF                 JMP     FCHROUT
  Tue Jul 17 11:00:23 2018                                                                                               Page  104




 8457  FE3824  18               ?20:    CLC
 8458  FE3825  69 F6                    ADC     #$F6
 8459  FE3827  90 02                    BCC     ?30
 8460  FE3829  69 06                    ADC     #$06
 8461  FE382B  69 3A            ?30:    ADC     #$3A
 8462  FE382D  60                       RTS
 8463                           
 8464                           ;---------------------------------------------------------------------------
 8465                           ; function's in 'run' mode
 8466                           ;---------------------------------------------------------------------------
 8467                           
 8468                           ; function peekb(address: integer): $00..$FF
 8469  FE382E                   RF00:
 8470  FE382E                           ACC16
 8471  FE382E  C2 20                    rep     #PMFLAG
 8472                                   .LONGA  on
 8473                                   .MNLIST
 8474  FE3830  B2 2D                    lda     ($2D)
 8475  FE3832  85 27                    sta     $27
 8476  FE3834                           ACC08
 8477  FE3834  E2 20                    sep     #PMFLAG
 8478                                   .LONGA  off
 8479                                   .MNLIST
 8480  FE3836  98                       tya
 8481  FE3837  C8                       iny
 8482  FE3838  91 2D                    sta     ($2D),y
 8483  FE383A  B2 27                    lda     ($27)
 8484  FE383C  92 2D                    sta     ($2D)
 8485  FE383E  60                       rts
 8486                           
 8487                           ; function peekw(address: integer): integer
 8488  FE383F                   RF01:
 8489  FE383F                           ACC16
 8490  FE383F  C2 20                    rep     #PMFLAG
 8491                                   .LONGA  on
 8492                                   .MNLIST
 8493  FE3841  B2 2D                    lda     ($2D)
 8494  FE3843  85 27                    sta     $27
 8495  FE3845  B2 27                    lda     ($27)
 8496  FE3847  92 2D                    sta     ($2D)
 8497  FE3849                           ACC08
 8498  FE3849  E2 20                    sep     #PMFLAG
 8499                                   .LONGA  off
 8500                                   .MNLIST
 8501  FE384B  60                       rts
 8502                           
 8503                           ; function peekbz(address: $00..$FF): $00..$FF
 8504  FE384C                   RF02:
 8505  FE384C  B2 2D                    lda     ($2D)
 8506  FE384E  AA                       tax
 8507  FE384F  B5 00                    lda     <$00,x
 8508  FE3851  92 2D                    sta     ($2D)
 8509  FE3853  98                       tya
 8510  FE3854  C8                       iny
 8511  FE3855  91 2D                    sta     ($2D),y
 8512  FE3857  60                       rts
 8513                           
  Tue Jul 17 11:00:23 2018                                                                                               Page  105




 8514                           ; function peekwz(address: $00..$FF): integer
 8515  FE3858                   RF03:
 8516  FE3858  B2 2D                    lda     ($2D)
 8517  FE385A  AA                       tax
 8518  FE385B                           ACC16
 8519  FE385B  C2 20                    rep     #PMFLAG
 8520                                   .LONGA  on
 8521                                   .MNLIST
 8522  FE385D  B5 00                    lda     <$00,x  
 8523  FE385F  92 2D                    sta     ($2D)
 8524  FE3861                           ACC08
 8525  FE3861  E2 20                    sep     #PMFLAG
 8526                                   .LONGA  off
 8527                                   .MNLIST
 8528  FE3863  60                       rts
 8529                           
 8530                           ; function odd(n: integer): boolean
 8531  FE3864                   RF04:
 8532  FE3864  A9 01                    lda     #$01
 8533  FE3866  32 2D                    and     ($2D)
 8534  FE3868  92 2D                    sta     ($2D)
 8535  FE386A                           
 8536                           ; function chr(n:integer): char
 8537                           ; function asc(c:char): integer
 8538  FE386A                   RF05:
 8539  FE386A  98                       tya
 8540  FE386B  C8                       iny
 8541  FE386C  91 2D                    sta     ($2D),y
 8542  FE386E  60                       rts
 8543                           
 8544                           ; function sin(x: real): real
 8545  FE386F                   RF08:
 8546  FE386F  A9 36                    lda     #<XE26B
 8547  FE3871  A0 9C                    ldy     #>XE26B
 8548  FE3873  80 00                    bra     _math
 8549  FE3875                           
 8550  FE3875                   _math:
 8551  FE3875  85 27                    sta     $27
 8552  FE3877  84 28                    sty     $28
 8553  FE3879  A5 2D                    lda     $2D
 8554  FE387B  A4 2E                    ldy     $2E
 8555  FE387D  20 33 97                 jsr     XBBA2
 8556  FE3880  20 8A 38                 jsr     _mathj
 8557  FE3883  A6 2D                    ldx     $2D
 8558  FE3885  A4 2E                    ldy     $2E
 8559  FE3887  4C 92 97                 jmp     XBBD4
 8560  FE388A                   _mathj:
 8561  FE388A  6C 27 7F                 jmp     (CBMP0+$0027)
 8562                           
 8563                           ; function cos(x: real): real
 8564  FE388D                   RF09:
 8565  FE388D  A9 2F                    lda     #<XE264
 8566  FE388F  A0 9C                    ldy     #>XE264
 8567  FE3891  80 E2                    bra     _math
 8568                           
 8569                           ; function cos(x: real): real
 8570  FE3893                   RF0A:
  Tue Jul 17 11:00:23 2018                                                                                               Page  106




 8571  FE3893  A9 7D                    lda     #<XE2B4
 8572  FE3895  A0 9C                    ldy     #>XE2B4
 8573  FE3897  80 DC                    bra     _math
 8574                           
 8575                           ; function arctan(x: real): real
 8576  FE3899                   RF0B:
 8577  FE3899  A9 FE                    lda     #<XE30E
 8578  FE389B  A0 9B                    ldy     #>XE30E
 8579  FE389D  80 D6                    bra     _math
 8580                           
 8581                           ; function exp(x: real): real
 8582  FE389F                   RF0C:
 8583  FE389F  A9 55                    lda     #<XBFED
 8584  FE38A1  A0 9B                    ldy     #>XBFED
 8585  FE38A3  80 D0                    bra     _math
 8586                           
 8587                           ; function ln(x: real): real
 8588  FE38A5                   RF0D:
 8589  FE38A5  A9 8E                    lda     #<XB9EA
 8590  FE38A7  A0 95                    ldy     #>XB9EA
 8591  FE38A9  80 CA                    bra     _math
 8592                           
 8593                           ; function sqrt(x: real): real
 8594  FE38AB                   RF0E:
 8595  FE38AB  A9 0A                    lda     #<XBF71
 8596  FE38AD  A0 9B                    ldy     #>XBF71
 8597  FE38AF  80 C4                    bra     _math
 8598                           
 8599                           ; function raisexy(x,y: real): real
 8600  FE38B1                   RF0F:
 8601  FE38B1  A5 2D                    lda     $2D
 8602  FE38B3  A4 2E                    ldy     $2E
 8603  FE38B5  18                       clc
 8604  FE38B6  69 06                    adc     #$06
 8605  FE38B8  90 01                    bcc     ?02
 8606  FE38BA  C8                       iny
 8607  FE38BB  20 8D 93         ?02:    jsr     XBA8C           ; move x to FAC #2
 8608  FE38BE  A5 2D                    lda     $2D
 8609  FE38C0  A4 2E                    ldy     $2E
 8610  FE38C2  20 33 97                 jsr     XBBA2           ; move y to FAC #1
 8611  FE38C5  20 14 9B                 jsr     XBF7B           ; compute x^y
 8612  FE38C8  A5 2D                    lda     $2D
 8613  FE38CA  A4 2E                    ldy     $2E
 8614  FE38CC  18                       clc
 8615  FE38CD  69 06                    adc     #$06
 8616  FE38CF  90 01                    bcc     ?04
 8617  FE38D1  C8                       iny
 8618  FE38D2  85 2D            ?04:    sta     $2D
 8619  FE38D4  84 2E                    sty     $2E
 8620  FE38D6  AA                       tax
 8621  FE38D7  4C 92 97                 jmp     XBBD4
 8622                           
 8623                           ; function nroot(x: real; n: integer): real
 8624  FE38DA                   RF10:
 8625  FE38DA  B2 2D                    lda     ($2D)
 8626  FE38DC  AA                       tax
 8627  FE38DD  C8                       iny
  Tue Jul 17 11:00:23 2018                                                                                               Page  107




 8628  FE38DE  B1 2D                    lda     ($2D),y
 8629  FE38E0  85 62                    sta     $62
 8630  FE38E2  85 21                    sta     $21
 8631  FE38E4  86 63                    stx     $63
 8632  FE38E6  10 0D                    bpl     ?02
 8633  FE38E8  A9 00                    lda     #$00
 8634  FE38EA  38                       sec
 8635  FE38EB  E5 63                    sbc     $63
 8636  FE38ED  85 63                    sta     $63
 8637  FE38EF  A9 00                    lda     #$00
 8638  FE38F1  E5 62                    sbc     $62
 8639  FE38F3  85 62                    sta     $62
 8640  FE38F5  A2 90            ?02:    ldx     #$90
 8641  FE38F7  38                       sec
 8642  FE38F8  20 09 98                 jsr     XBC49           ; convert integer to float
 8643  FE38FB  A5 21                    lda     $21
 8644  FE38FD  85 66                    sta     $66
 8645  FE38FF  A9 A2                    lda     #<XB9BC         ; move costant 1.0 to FAC #2    
 8646  FE3901  A0 9C                    ldy     #>XB9BC
 8647  FE3903  A2 FE                    ldx     #^RF10
 8648  FE3905  20 91 96                 jsr     XBB0F           ; and compute 1/n
 8649  FE3908  20 72 97                 jsr     XBBC7           ; round and move to FAC1TMP
 8650  FE390B  A5 2D                    lda     $2D
 8651  FE390D  A4 2E                    ldy     $2E
 8652  FE390F  18                       clc
 8653  FE3910  69 02                    adc     #$02
 8654  FE3912  90 01                    bcc     ?04
 8655  FE3914  C8                       iny
 8656  FE3915  85 2D            ?04:    sta     $2D
 8657  FE3917  84 2E                    sty     $2E
 8658  FE3919  20 8D 93                 jsr     XBA8C           ; move x to FAC #2
 8659  FE391C  A9 E8                    lda     #<FAC1TMP
 8660  FE391E  A0 FF                    ldy     #>FAC1TMP
 8661  FE3920  20 41 97                 jsr     XBBA2T          ; move 1/n to FAC #1
 8662  FE3923  20 14 9B                 jsr     XBF7B           ; compute x^(1/n)
 8663  FE3926  A6 2D                    ldx     $2D
 8664  FE3928  A4 2E                    ldy     $2E
 8665  FE392A  4C 92 97                 jmp     XBBD4
 8666                           
 8667                           ; procedure swapw(var n,m: integer)
 8668  FE392D                   RF11:
 8669  FE392D  A0 02                    ldy     #$02    
 8670  FE392F                           CPU16
 8671  FE392F  C2 30                    rep     #(PMFLAG.OR.PXFLAG)
 8672                                   .LONGA  on
 8673                                   .LONGI  on
 8674                                   .MNLIST
 8675  FE3931  B2 2D                    lda     ($2D)
 8676  FE3933  3A                       dec     a
 8677  FE3934  3A                       dec     a
 8678  FE3935  85 25                    sta     $25             ; pointer to m
 8679  FE3937  B1 2D                    lda     ($2D),y
 8680  FE3939  3A                       dec     a
 8681  FE393A  3A                       dec     a
 8682  FE393B  85 27                    sta     $27             ; pointer to n
 8683  FE393D  B2 25                    lda     ($25)
 8684  FE393F  AA                       tax
  Tue Jul 17 11:00:23 2018                                                                                               Page  108




 8685  FE3940  B2 27                    lda     ($27)
 8686  FE3942  92 25                    sta     ($25)
 8687  FE3944  8A                       txa
 8688  FE3945  92 27                    sta     ($27)
 8689  FE3947                           CPU08
 8690  FE3947  E2 30                    sep     #(PMFLAG.OR.PXFLAG)
 8691                                   .LONGA  off
 8692                                   .LONGI  off
 8693                                   .MNLIST
 8694  FE3949  4C E5 1D                 jmp     SK04
 8695                           
 8696                           ; procedure passign(var p: pointer; adr:integer)
 8697  FE394C                   RF12:
 8698  FE394C  A0 02                    ldy     #$02
 8699  FE394E                           ACC16
 8700  FE394E  C2 20                    rep     #PMFLAG
 8701                                   .LONGA  on
 8702                                   .MNLIST
 8703  FE3950  B1 2D                    lda     ($2D),y         ; pointer to p
 8704  FE3952  3A                       dec     a
 8705  FE3953  3A                       dec     a
 8706  FE3954  85 27                    sta     $27
 8707  FE3956  B2 2D                    lda     ($2D)           ; load adr
 8708  FE3958  92 27                    sta     ($27)           ; assign to p
 8709  FE395A                           ACC08
 8710  FE395A  E2 20                    sep     #PMFLAG
 8711                                   .LONGA  off
 8712                                   .MNLIST
 8713  FE395C  4C E5 1D                 jmp     SK04
 8714                           
 8715                           ; function trunc(x: real): integer
 8716  FE395F                   RF13:
 8717  FE395F  A5 2D                    lda     $2D
 8718  FE3961  A4 2E                    ldy     $2E
 8719  FE3963  20 33 97                 jsr     XBBA2
 8720  FE3966                   RF13x:
 8721  FE3966  A5 61                    lda     $61
 8722  FE3968  F0 2E                    beq     ?08             ; zero
 8723  FE396A  10 2C                    bpl     ?08             ; less than 1
 8724  FE396C  38                       sec
 8725  FE396D  E9 90                    sbc     #$90
 8726  FE396F  10 2D                    bpl     ?10             ; integer overflow
 8727  FE3971  AA                       tax
 8728  FE3972  46 62            ?02:    lsr     $62
 8729  FE3974  66 63                    ror     $63
 8730  FE3976  E8                       inx
 8731  FE3977  D0 F9                    bne     ?02
 8732  FE3979  A5 66            ?04:    lda     $66
 8733  FE397B  10 0D                    bpl     ?06
 8734  FE397D  A9 00                    lda     #$00
 8735  FE397F  38                       sec
 8736  FE3980  E5 63                    sbc     $63
 8737  FE3982  85 63                    sta     $63
 8738  FE3984  A9 00                    lda     #$00
 8739  FE3986  E5 62                    sbc     $62
 8740  FE3988  85 62                    sta     $62
 8741  FE398A  A0 04            ?06:    ldy     #$04
  Tue Jul 17 11:00:23 2018                                                                                               Page  109




 8742  FE398C                           ACC16
 8743  FE398C  C2 20                    rep     #PMFLAG
 8744                                   .LONGA  on
 8745                                   .MNLIST
 8746  FE398E  A5 62                    lda     $62
 8747  FE3990  EB                       xba
 8748  FE3991  91 2D                    sta     ($2D),y
 8749  FE3993                           ACC08
 8750  FE3993  E2 20                    sep     #PMFLAG
 8751                                   .LONGA  off
 8752                                   .MNLIST
 8753  FE3995  4C E5 1D                 jmp     SK04
 8754  FE3998  64 62            ?08:    stz     $62
 8755  FE399A  64 63                    stz     $63
 8756  FE399C  80 EC                    bra     ?06
 8757  FE399E  A2 03            ?10:    ldx     #$03            ; integer overflow
 8758  FE39A0  4C 50 1B                 jmp     vpmerr
 8759                           
 8760                           ; function round(x: real): integer
 8761  FE39A3                   RF14:
 8762  FE39A3  A5 2D                    lda     $2D
 8763  FE39A5  A4 2E                    ldy     $2E
 8764  FE39A7  20 33 97                 jsr     XBBA2
 8765  FE39AA  A9 AC                    lda     #<FCON05        ; float 0.5
 8766  FE39AC  A0 9C                    ldy     #>FCON05
 8767  FE39AE  A6 66                    ldx     $66
 8768  FE39B0  10 04                    bpl     ?02             ; add 0.5
 8769  FE39B2  A9 D0                    lda     #<XB9E0         ; float -0.5
 8770  FE39B4  A0 9C                    ldy     #>XB9E0
 8771  FE39B6  20 09 94         ?02:    jsr     XB867           ; add =/- 0.5
 8772  FE39B9  80 AB                    bra     RF13x           ; and trunc
 8773                           
 8774                           ; function random: integer
 8775  FE39BB                   RF15:
 8776  FE39BB  20 49 20                 jsr     decstk          ; decrement stack
 8777  FE39BE  A5 41                    lda     $41
 8778  FE39C0  0A                       asl     a
 8779  FE39C1  69 00                    adc     #$00
 8780  FE39C3  45 41                    eor     $41
 8781  FE39C5  4A                       lsr     a
 8782  FE39C6  90 02                    bcc     ?02
 8783  FE39C8  09 80                    ora     #$80
 8784  FE39CA  E6 42            ?02:    inc     $42
 8785  FE39CC  65 42                    adc     $42
 8786  FE39CE  85 41                    sta     $41
 8787  FE39D0  50 02                    bvc     ?04
 8788  FE39D2  E6 42                    inc     $42
 8789  FE39D4  92 2D            ?04:    sta     ($2D)
 8790  FE39D6  98                       tya
 8791  FE39D7  C8                       iny
 8792  FE39D8  91 2D                    sta     ($2D),y
 8793  FE39DA  60                       rts
 8794                           
 8795                           ; procedure iotrap(boolean)
 8796  FE39DB                   RF16:
 8797  FE39DB  B2 2D                    lda     ($2D)
 8798  FE39DD  08                       php
  Tue Jul 17 11:00:23 2018                                                                                               Page  110




 8799  FE39DE  A5 3B                    lda     prtrap
 8800  FE39E0  09 80                    ora     #$80
 8801  FE39E2  28                       plp
 8802  FE39E3  D0 02                    bne     ?02
 8803  FE39E5  49 80                    eor     #$80
 8804  FE39E7  85 3B            ?02:    sta     prtrap
 8805  FE39E9  4C 95 1E                 jmp     SK02
 8806                           
 8807                           ; procedure breaks(boolean)
 8808  FE39EC                   RF17:
 8809  FE39EC  B2 2D                    lda     ($2D)
 8810  FE39EE  08                       php
 8811  FE39EF  A5 3B                    lda     prtrap
 8812  FE39F1  09 40                    ora     #$40
 8813  FE39F3  28                       plp
 8814  FE39F4  D0 02                    bne     ?02
 8815  FE39F6  49 40                    eor     #$40
 8816  FE39F8  85 3B            ?02:    sta     prtrap
 8817  FE39FA  4C 95 1E                 jmp     SK02
 8818                           
 8819                           ; function ioerror: integer
 8820  FE39FD                   RF18:
 8821  FE39FD  20 49 20                 jsr     decstk          ; decrement stack
 8822  FE3A00  A5 3E                    lda     prterr
 8823  FE3A02                   RF18x:
 8824  FE3A02  92 2D                    sta     ($2D)
 8825  FE3A04  98                       tya
 8826  FE3A05  C8                       iny
 8827  FE3A06  91 2D                    sta     ($2D),y
 8828  FE3A08  60                       rts
 8829  FE3A09                           
 8830                           ; function getkey: char
 8831  FE3A09                   RF19:
 8832  FE3A09  20 49 20                 jsr     decstk          ; decrement stack
 8833  FE3A0C  20 E4 FF                 jsr     FGETIN
 8834  FE3A0F  80 F1                    bra     RF18x
 8835                           
 8836                           ; function rdhex: integer;
 8837  FE3A11                   RF20:   
 8838  FE3A11  A9 00                    lda     #0
 8839  FE3A13  AA                       tax
 8840  FE3A14  20 FB 27                 jsr     PCE0            ; set text to std. 'input'
 8841  FE3A17                           
 8842                           ; function frdhex(file: text): integer;
 8843  FE3A17                   RF1A:   
 8844  FE3A17  20 14 30                 jsr     L178B
 8845  FE3A1A  20 34 3A                 jsr     R10A6
 8846  FE3A1D  90 05                    bcc     ?02
 8847  FE3A1F  A2 02                    ldx     #$02
 8848  FE3A21  20 C0 31                 jsr     L0FAA
 8849  FE3A24  20 8F 30         ?02:    jsr     L17B7
 8850  FE3A27  A0 01                    ldy     #1
 8851  FE3A29  A5 21                    lda     $21
 8852  FE3A2B  92 2D                    sta     ($2D)
 8853  FE3A2D  A5 22                    lda     $22
 8854  FE3A2F  91 2D                    sta     ($2D),y
 8855  FE3A31  4C CC FF                 jmp     FCLRCH
  Tue Jul 17 11:00:23 2018                                                                                               Page  111




 8856  FE3A34                           
 8857  FE3A34                   R10A6:
 8858  FE3A34  A2 00                    ldx     #0
 8859  FE3A36  86 21                    stx     $21
 8860  FE3A38  86 22                    stx     $22
 8861  FE3A3A  C9 20                    cmp     #$20
 8862  FE3A3C  F0 08                    beq     ?02
 8863  FE3A3E  C9 0D                    cmp     #$0D
 8864  FE3A40  F0 04                    beq     ?02
 8865  FE3A42  C9 0A                    cmp     #$0A
 8866  FE3A44  D0 03                    bne     ?04
 8867  FE3A46  20 71 31         ?02:    jsr     L0F2B
 8868  FE3A49  AA               ?04:    tax
 8869  FE3A4A  20 68 3A                 jsr     R10DA
 8870  FE3A4D  B0 17                    bcs     ?10
 8871  FE3A4F  A0 04            ?06:    ldy     #$04
 8872  FE3A51  06 21            ?08:    asl     $21
 8873  FE3A53  26 22                    rol     $22
 8874  FE3A55  88                       dey
 8875  FE3A56  D0 F9                    bne     ?08
 8876  FE3A58  05 21                    ora     $21
 8877  FE3A5A  85 21                    sta     $21
 8878  FE3A5C  20 71 31                 jsr     L0F2B
 8879  FE3A5F  AA                       tax
 8880  FE3A60  20 68 3A                 jsr     R10DA
 8881  FE3A63  90 EA                    bcc     ?06
 8882  FE3A65  18                       clc
 8883  FE3A66  8A               ?10:    txa
 8884  FE3A67  60                       rts
 8885  FE3A68                           
 8886  FE3A68                   R10DA:
 8887  FE3A68  38                       sec
 8888  FE3A69  E9 30                    sbc     #$30
 8889  FE3A6B  90 13                    bcc     ?02
 8890  FE3A6D  C9 0A                    cmp     #$0A
 8891  FE3A6F  90 10                    bcc     ?04
 8892  FE3A71  38                       sec
 8893  FE3A72  E9 07                    sbc     #$07
 8894  FE3A74  90 0A                    bcc     ?02
 8895  FE3A76  C9 10                    cmp     #$10
 8896  FE3A78  90 07                    bcc     ?04
 8897  FE3A7A  38                       sec
 8898  FE3A7B  E9 20                    sbc     #$20
 8899  FE3A7D  C9 10                    cmp     #$10
 8900  FE3A7F  60                       rts
 8901  FE3A80  38               ?02:    sec
 8902  FE3A81  60               ?04:    rts
 8903                           
 8904                           ; function andw(a,b: integer): integer
 8905  FE3A82                   RF1B:
 8906  FE3A82  A0 02                    ldy     #$02
 8907  FE3A84                           ACC16
 8908  FE3A84  C2 20                    rep     #PMFLAG
 8909                                   .LONGA  on
 8910                                   .MNLIST
 8911  FE3A86  B2 2D                    lda     ($2D)           ; a
 8912  FE3A88  31 2D                    and     ($2D),y         ; and b
  Tue Jul 17 11:00:23 2018                                                                                               Page  112




 8913  FE3A8A  91 2D                    sta     ($2D),y         ; store in b
 8914  FE3A8C                           ACC08
 8915  FE3A8C  E2 20                    sep     #PMFLAG
 8916                                   .LONGA  off
 8917                                   .MNLIST
 8918  FE3A8E  4C 95 1E                 jmp     SK02
 8919                           
 8920                           ; function orw(a,b: integer): integer
 8921  FE3A91                   RF1C:
 8922  FE3A91  A0 02                    ldy     #$02
 8923  FE3A93                           ACC16
 8924  FE3A93  C2 20                    rep     #PMFLAG
 8925                                   .LONGA  on
 8926                                   .MNLIST
 8927  FE3A95  B2 2D                    lda     ($2D)           ; a
 8928  FE3A97  11 2D                    ora     ($2D),y         ; or b
 8929  FE3A99  91 2D                    sta     ($2D),y         ; store in b
 8930  FE3A9B                           ACC08
 8931  FE3A9B  E2 20                    sep     #PMFLAG
 8932                                   .LONGA  off
 8933                                   .MNLIST
 8934  FE3A9D  4C 95 1E                 jmp     SK02
 8935                           
 8936                           ; function xorw(a,b: integer): integer
 8937  FE3AA0                   RF1D:
 8938  FE3AA0  A0 02                    ldy     #$02
 8939  FE3AA2                           ACC16
 8940  FE3AA2  C2 20                    rep     #PMFLAG
 8941                                   .LONGA  on
 8942                                   .MNLIST
 8943  FE3AA4  B2 2D                    lda     ($2D)           ; a
 8944  FE3AA6  51 2D                    eor     ($2D),y         ; xor b
 8945  FE3AA8  91 2D                    sta     ($2D),y         ; store in b
 8946  FE3AAA                           ACC08
 8947  FE3AAA  E2 20                    sep     #PMFLAG
 8948                                   .LONGA  off
 8949                                   .MNLIST
 8950  FE3AAC  4C 95 1E                 jmp     SK02
 8951  FE3AAF                           
 8952                           ; function notw(a: integer): integer
 8953  FE3AAF                   RF1E:
 8954  FE3AAF                           ACC16
 8955  FE3AAF  C2 20                    rep     #PMFLAG
 8956                                   .LONGA  on
 8957                                   .MNLIST
 8958  FE3AB1  B2 2D                    lda     ($2D)           ; a
 8959  FE3AB3  49 FF FF                 eor     #$FFFF
 8960  FE3AB6  92 2D                    sta     ($2D)
 8961  FE3AB8                           ACC08
 8962  FE3AB8  E2 20                    sep     #PMFLAG
 8963                                   .LONGA  off
 8964                                   .MNLIST
 8965  FE3ABA  60                       rts
 8966  FE3ABB                           
 8967                           ; function negw(a: integer): integer
 8968  FE3ABB                   RF1F:
 8969  FE3ABB                           ACC16
  Tue Jul 17 11:00:23 2018                                                                                               Page  113




 8970  FE3ABB  C2 20                    rep     #PMFLAG
 8971                                   .LONGA  on
 8972                                   .MNLIST
 8973  FE3ABD  B2 2D                    lda     ($2D)           ; a
 8974  FE3ABF  49 FF FF                 eor     #$FFFF
 8975  FE3AC2  1A                       inc     a
 8976  FE3AC3  92 2D                    sta     ($2D)
 8977  FE3AC5                           ACC08
 8978  FE3AC5  E2 20                    sep     #PMFLAG
 8979                                   .LONGA  off
 8980                                   .MNLIST
 8981  FE3AC7  60                       rts     
 8982                           
 8983                           ; function lpeekb(bank: $00..$FF; address: integer): $00..$FF
 8984  FE3AC8                   RF23:
 8985  FE3AC8                           ACC16
 8986  FE3AC8  C2 20                    rep     #PMFLAG
 8987                                   .LONGA  on
 8988                                   .MNLIST
 8989  FE3ACA  B2 2D                    lda     ($2D)
 8990  FE3ACC  85 76                    sta     longp
 8991  FE3ACE                           ACC08
 8992  FE3ACE  E2 20                    sep     #PMFLAG
 8993                                   .LONGA  off
 8994                                   .MNLIST
 8995  FE3AD0  98                       tya
 8996  FE3AD1  A0 03                    ldy     #3
 8997  FE3AD3  91 2D                    sta     ($2D),y
 8998  FE3AD5  88                       dey
 8999  FE3AD6  B1 2D                    lda     ($2D),y
 9000  FE3AD8  85 78                    sta     longp+2
 9001  FE3ADA  A7 76                    lda     [longp]
 9002  FE3ADC  91 2D                    sta     ($2D),y
 9003  FE3ADE  4C 95 1E                 jmp     SK02
 9004                           
 9005                           ; function lpeekw(bank: $00..$FF; address: integer): integer
 9006  FE3AE1                   RF24:
 9007  FE3AE1                           ACC16
 9008  FE3AE1  C2 20                    rep     #PMFLAG
 9009                                   .LONGA  on
 9010                                   .MNLIST
 9011  FE3AE3  B2 2D                    lda     ($2D)
 9012  FE3AE5  85 76                    sta     longp
 9013  FE3AE7                           ACC08
 9014  FE3AE7  E2 20                    sep     #PMFLAG
 9015                                   .LONGA  off
 9016                                   .MNLIST
 9017  FE3AE9  A0 02                    ldy     #2
 9018  FE3AEB  B1 2D                    lda     ($2D),y
 9019  FE3AED  85 78                    sta     longp+2
 9020  FE3AEF                           ACC16
 9021  FE3AEF  C2 20                    rep     #PMFLAG
 9022                                   .LONGA  on
 9023                                   .MNLIST
 9024  FE3AF1  A7 76                    lda     [longp]
 9025  FE3AF3  91 2D                    sta     ($2D),y 
 9026  FE3AF5                           ACC08
  Tue Jul 17 11:00:23 2018                                                                                               Page  114




 9027  FE3AF5  E2 20                    sep     #PMFLAG
 9028                                   .LONGA  off
 9029                                   .MNLIST
 9030  FE3AF7  4C 95 1E                 jmp     SK02
 9031                           
 9032                           ; procedure pokeb(address, val: integer)
 9033  FE3AFA                   RF25:
 9034  FE3AFA  A0 02                    ldy     #2
 9035  FE3AFC                           ACC16
 9036  FE3AFC  C2 20                    rep     #PMFLAG
 9037                                   .LONGA  on
 9038                                   .MNLIST
 9039  FE3AFE  B1 2D                    lda     ($2D),y
 9040  FE3B00  85 27                    sta     $27
 9041  FE3B02                           ACC08
 9042  FE3B02  E2 20                    sep     #PMFLAG
 9043                                   .LONGA  off
 9044                                   .MNLIST
 9045  FE3B04  B2 2D                    lda     ($2D)
 9046  FE3B06  92 27                    sta     ($27)
 9047  FE3B08  4C E5 1D                 jmp     SK04
 9048  FE3B0B                           
 9049                           ; procedure pokew(address, val: integer)
 9050  FE3B0B                   RF26:
 9051  FE3B0B  A0 02                    ldy     #2
 9052  FE3B0D                           ACC16
 9053  FE3B0D  C2 20                    rep     #PMFLAG
 9054                                   .LONGA  on
 9055                                   .MNLIST
 9056  FE3B0F  B1 2D                    lda     ($2D),y
 9057  FE3B11  85 27                    sta     $27
 9058  FE3B13  B2 2D                    lda     ($2D)
 9059  FE3B15  92 27                    sta     ($27)
 9060  FE3B17                           ACC08
 9061  FE3B17  E2 20                    sep     #PMFLAG
 9062                                   .LONGA  off
 9063                                   .MNLIST
 9064  FE3B19  4C E5 1D                 jmp     SK04
 9065                           
 9066                           ; procedure pokebz(zp, val: integer)
 9067  FE3B1C                   RF27:
 9068  FE3B1C  A0 02                    ldy     #2
 9069  FE3B1E  B1 2D                    lda     ($2D),y
 9070  FE3B20  AA                       tax
 9071  FE3B21  B2 2D                    lda     ($2D)
 9072  FE3B23  95 00                    sta     <$00,x
 9073  FE3B25  4C E5 1D                 jmp     SK04
 9074                           
 9075                           ; procedure pokewz(zp, val: integer)
 9076  FE3B28                   RF28:
 9077  FE3B28  A0 02                    ldy     #2
 9078  FE3B2A  B1 2D                    lda     ($2D),y
 9079  FE3B2C  AA                       tax
 9080  FE3B2D                           ACC16
 9081  FE3B2D  C2 20                    rep     #PMFLAG
 9082                                   .LONGA  on
 9083                                   .MNLIST
  Tue Jul 17 11:00:23 2018                                                                                               Page  115




 9084  FE3B2F  B2 2D                    lda     ($2D)
 9085  FE3B31  95 00                    sta     <$00,x
 9086  FE3B33                           ACC08
 9087  FE3B33  E2 20                    sep     #PMFLAG
 9088                                   .LONGA  off
 9089                                   .MNLIST
 9090  FE3B35  4C E5 1D                 jmp     SK04
 9091                           
 9092                           ; procedure lpokeb(bank, address, val: integer)
 9093  FE3B38                   RF29:
 9094  FE3B38  A0 02                    ldy     #2
 9095  FE3B3A                           ACC16
 9096  FE3B3A  C2 20                    rep     #PMFLAG
 9097                                   .LONGA  on
 9098                                   .MNLIST
 9099  FE3B3C  B1 2D                    lda     ($2D),y
 9100  FE3B3E  85 76                    sta     longp
 9101  FE3B40                           ACC08
 9102  FE3B40  E2 20                    sep     #PMFLAG
 9103                                   .LONGA  off
 9104                                   .MNLIST
 9105  FE3B42  A0 04                    ldy     #4
 9106  FE3B44  B1 2D                    lda     ($2D),y
 9107  FE3B46  85 78                    sta     longp+2
 9108  FE3B48  B2 2D                    lda     ($2D)
 9109  FE3B4A  87 76                    sta     [longp]
 9110  FE3B4C  80 16                    bra     RF2Ax
 9111  FE3B4E                           
 9112                           ; procedure lpokew(bank, address, val: integer)
 9113  FE3B4E                   RF2A:
 9114  FE3B4E  A0 02                    ldy     #2
 9115  FE3B50                           ACC16
 9116  FE3B50  C2 20                    rep     #PMFLAG
 9117                                   .LONGA  on
 9118                                   .MNLIST
 9119  FE3B52  B1 2D                    lda     ($2D),y
 9120  FE3B54  85 76                    sta     longp
 9121  FE3B56                           ACC08
 9122  FE3B56  E2 20                    sep     #PMFLAG
 9123                                   .LONGA  off
 9124                                   .MNLIST
 9125  FE3B58  A0 04                    ldy     #4
 9126  FE3B5A  B1 2D                    lda     ($2D),y
 9127  FE3B5C  85 78                    sta     longp+2
 9128  FE3B5E                           ACC16
 9129  FE3B5E  C2 20                    rep     #PMFLAG
 9130                                   .LONGA  on
 9131                                   .MNLIST
 9132  FE3B60  B2 2D                    lda     ($2D)
 9133  FE3B62  87 76                    sta     [longp]
 9134  FE3B64                   RF2Ax:  ACC16CLC
 9135  FE3B64  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 9136                                   .LONGA  on
 9137                                   .MNLIST
 9138  FE3B66  A5 2D                    lda     $2D
 9139  FE3B68  69 06 00                 adc     #$0006
 9140  FE3B6B  85 2D                    sta     $2D
  Tue Jul 17 11:00:23 2018                                                                                               Page  116




 9141  FE3B6D                           ACC08
 9142  FE3B6D  E2 20                    sep     #PMFLAG
 9143                                   .LONGA  off
 9144                                   .MNLIST
 9145  FE3B6F  60                       rts
 9146                           
 9147                           ; function shl(val, shift: integer): integer
 9148  FE3B70                   RF2B:
 9149  FE3B70  C8                       iny
 9150  FE3B71  B1 2D                    lda     ($2D),y
 9151  FE3B73  30 29                    bmi     RF2Bz
 9152  FE3B75  D0 1B                    bne     RF2Bx
 9153  FE3B77  88                       dey
 9154  FE3B78  B1 2D                    lda     ($2D),y
 9155  FE3B7A  F0 1F                    beq     RF2By
 9156  FE3B7C  C9 10            R1EE6:  cmp     #$10
 9157  FE3B7E  B0 12                    bcs     RF2Bx
 9158  FE3B80  AA                       tax
 9159  FE3B81  A0 02                    ldy     #2
 9160  FE3B83                           ACC16
 9161  FE3B83  C2 20                    rep     #PMFLAG
 9162                                   .LONGA  on
 9163                                   .MNLIST
 9164  FE3B85  B1 2D                    lda     ($2D),y
 9165  FE3B87  0A               ?02:    asl     a
 9166  FE3B88  CA                       dex
 9167  FE3B89  D0 FC                    bne     ?02
 9168  FE3B8B  91 2D                    sta     ($2D),y
 9169  FE3B8D                           ACC08
 9170  FE3B8D  E2 20                    sep     #PMFLAG
 9171                                   .LONGA  off
 9172                                   .MNLIST
 9173  FE3B8F  4C 95 1E                 jmp     SK02
 9174                           
 9175  FE3B92  A0 02            RF2Bx:  ldy     #2
 9176  FE3B94  A9 00                    lda     #0
 9177  FE3B96  91 2D                    sta     ($2D),y
 9178  FE3B98  C8                       iny
 9179  FE3B99  91 2D                    sta     ($2D),y
 9180  FE3B9B  4C 95 1E         RF2By:  jmp     SK02
 9181                           
 9182  FE3B9E  49 FF            RF2Bz:  eor     #$FF
 9183  FE3BA0  D0 F0                    bne     RF2Bx
 9184  FE3BA2  88                       dey
 9185  FE3BA3  38                       sec
 9186  FE3BA4  F1 2D                    sbc     ($2D),y
 9187  FE3BA6  90 16                    bcc     R1F1C
 9188  FE3BA8  49 FF            R1F3C:  eor     #$FF
 9189  FE3BAA  D0 E6                    bne     RF2Bx
 9190  FE3BAC  88                       dey
 9191  FE3BAD  38                       sec
 9192  FE3BAE  F1 2D                    sbc     ($2D),y
 9193  FE3BB0  80 CA                    bra     R1EE6
 9194                           
 9195                           ; function shr(val, shift: integer): integer
 9196  FE3BB2                   RF2C:
 9197  FE3BB2  C8                       iny
  Tue Jul 17 11:00:23 2018                                                                                               Page  117




 9198  FE3BB3  B1 2D                    lda     ($2D),y
 9199  FE3BB5  30 F1                    bmi     R1F3C
 9200  FE3BB7  D0 D9                    bne     RF2Bx
 9201  FE3BB9  88                       dey
 9202  FE3BBA  B1 2D                    lda     ($2D),y
 9203  FE3BBC  F0 DD                    beq     RF2By
 9204  FE3BBE  C9 10            R1F1C:  cmp     #$10
 9205  FE3BC0  B0 D0                    bcs     RF2Bx
 9206  FE3BC2  AA                       tax
 9207  FE3BC3  A0 02                    ldy     #2
 9208  FE3BC5                           ACC16
 9209  FE3BC5  C2 20                    rep     #PMFLAG
 9210                                   .LONGA  on
 9211                                   .MNLIST
 9212  FE3BC7  B1 2D                    lda     ($2D),y
 9213  FE3BC9  4A               ?02:    lsr     a
 9214  FE3BCA  CA                       dex
 9215  FE3BCB  D0 FC                    bne     ?02
 9216  FE3BCD  91 2D                    sta     ($2D),y
 9217  FE3BCF                           ACC08
 9218  FE3BCF  E2 20                    sep     #PMFLAG
 9219                                   .LONGA  off
 9220                                   .MNLIST
 9221  FE3BD1  4C 95 1E                 jmp     SK02
 9222                           
 9223                           ; function exp10(x: real): real
 9224  FE3BD4                   RF2D:
 9225  FE3BD4  A9 A7                    lda     #<FCON10
 9226  FE3BD6  A0 9C                    ldy     #>FCON10
 9227  FE3BD8  20 B8 93                 jsr     XBA8CK          ; move float 10 to FAC #2
 9228  FE3BDB  A5 2D                    lda     $2D
 9229  FE3BDD  A4 2E                    ldy     $2E
 9230  FE3BDF  20 33 97                 jsr     XBBA2           ; move x to FAC #1
 9231  FE3BE2  20 14 9B                 jsr     XBF7B           ; compute 10^x
 9232  FE3BE5  A6 2D                    ldx     $2D
 9233  FE3BE7  A4 2E                    ldy     $2E
 9234  FE3BE9  4C 92 97                 jmp     XBBD4
 9235                           
 9236                           ; function log(x:real):real
 9237  FE3BEC                   RF2E:
 9238  FE3BEC  A5 2D                    lda     $2D
 9239  FE3BEE  A4 2E                    ldy     $2E
 9240  FE3BF0  20 33 97                 jsr     XBBA2           ; move x to FAC #1
 9241  FE3BF3  20 8E 95                 jsr     XB9EA           ; compute ln(x)
 9242  FE3BF6  20 CE 97                 jsr     XBC0C           ; round FAC #1 and move to FAC #2
 9243  FE3BF9  A9 DF                    lda     #<XLN10
 9244  FE3BFB  A0 9C                    ldy     #>XLN10
 9245  FE3BFD  20 49 97                 jsr     XBBA2K          ; move ln(10) to FAC #1
 9246  FE3C00  20 94 96                 jsr     XBB12           ; compute ln(x)/ln(10)
 9247  FE3C03  A6 2D                    ldx     $2D
 9248  FE3C05  A4 2E                    ldy     $2E
 9249  FE3C07  4C 92 97                 jmp     XBBD4
 9250                           
 9251                           ;function nraise(x: real; n: integer): real
 9252  FE3C0A                   RF2F:
 9253  FE3C0A  64 23                    stz     $23
 9254  FE3C0C  A2 FF                    ldx     #$FF
  Tue Jul 17 11:00:23 2018                                                                                               Page  118




 9255  FE3C0E                           ACC16
 9256  FE3C0E  C2 20                    rep     #PMFLAG
 9257                                   .LONGA  on
 9258                                   .MNLIST
 9259  FE3C10  B2 2D                    lda     ($2D)
 9260  FE3C12  85 21                    sta     $21
 9261  FE3C14  A5 2D                    lda     $2D
 9262  FE3C16  1A                       inc     a
 9263  FE3C17  1A                       inc     a
 9264  FE3C18  85 2D                    sta     $2D
 9265  FE3C1A  A5 21                    lda     $21
 9266  FE3C1C  10 08                    bpl     ?02
 9267  FE3C1E  98                       tya
 9268  FE3C1F  38                       sec
 9269  FE3C20  E5 21                    sbc     $21
 9270  FE3C22  85 21                    sta     $21
 9271  FE3C24  86 23                    stx     $23
 9272  FE3C26  F0 33            ?02:    beq     ?20             ; if n = 0 return 1
 9273  FE3C28  3A                       dec     a
 9274  FE3C29  85 21                    sta     $21             ; counter
 9275  FE3C2B                           ACC08
 9276  FE3C2B  E2 20                    sep     #PMFLAG
 9277                                   .LONGA  off
 9278                                   .MNLIST
 9279  FE3C2D  08                       php
 9280  FE3C2E  A5 2D                    lda     $2D
 9281  FE3C30  A4 2E                    ldy     $2E
 9282  FE3C32  20 33 97                 jsr     XBBA2           ; move x to FAC #1
 9283  FE3C35  28                       plp
 9284  FE3C36  F0 14                    beq     ?14             ; if n = 1 return x, if n = -1 return 1/x
 9285  FE3C38  20 CE 97         ?06:    jsr     XBC0C           ; round FAC #1 and move to FAC #2
 9286  FE3C3B  A5 2D                    lda     $2D
 9287  FE3C3D  A4 2E                    ldy     $2E
 9288  FE3C3F  A6 A2                    ldx     vbnk
 9289  FE3C41  20 DF 95                 jsr     XBA28           ; x*x
 9290  FE3C44                           ACC16
 9291  FE3C44  C2 20                    rep     #PMFLAG
 9292                                   .LONGA  on
 9293                                   .MNLIST
 9294  FE3C46  C6 21                    dec     $21
 9295  FE3C48                           ACC08
 9296  FE3C48  E2 20                    sep     #PMFLAG
 9297                                   .LONGA  off
 9298                                   .MNLIST
 9299  FE3C4A  D0 EC                    bne     ?06
 9300  FE3C4C  24 23            ?14:    bit     $23
 9301  FE3C4E  10 1B                    bpl     ?22             ; return value
 9302  FE3C50  A9 A2                    lda     #<XB9BC         ; compute 1/x
 9303  FE3C52  A0 9C                    ldy     #>XB9BC
 9304  FE3C54  A2 FE                    ldx     #^RF2F
 9305  FE3C56  20 91 96                 jsr     XBB0F
 9306  FE3C59  80 10                    bra     ?22
 9307  FE3C5B                   ?20:    ACC08                   ; return 1.0
 9308  FE3C5B  E2 20                    sep     #PMFLAG
 9309                                   .LONGA  off
 9310                                   .MNLIST
 9311  FE3C5D  A9 81                    lda     #$81
  Tue Jul 17 11:00:23 2018                                                                                               Page  119




 9312  FE3C5F  85 61                    sta     $61
 9313  FE3C61  64 62                    stz     $62
 9314  FE3C63  64 63                    stz     $63
 9315  FE3C65  64 64                    stz     $64
 9316  FE3C67  64 65                    stz     $65
 9317  FE3C69  64 66                    stz     $66
 9318  FE3C6B  A6 2D            ?22:    ldx     $2D
 9319  FE3C6D  A4 2E                    ldy     $2E
 9320  FE3C6F  4C 92 97                 jmp     XBBD4
 9321                           
 9322                           ; pcmdlin(var p)        
 9323  FE3C72                   RF30:
 9324  FE3C72                           ACC16CLC
 9325  FE3C72  C2 21                    rep     #(PMFLAG.OR.PCFLAG)
 9326                                   .LONGA  on
 9327                                   .MNLIST
 9328  FE3C74  B2 2D                    lda     ($2D)           ; pointer to p
 9329  FE3C76  3A                       dec     a
 9330  FE3C77  3A                       dec     a
 9331  FE3C78  85 27                    sta     $27
 9332  FE3C7A  A5 E4                    lda     cmdlin          ; load adr
 9333  FE3C7C  69 80 00                 adc     #128
 9334  FE3C7F  92 27                    sta     ($27)           ; assign to p
 9335  FE3C81                           ACC08
 9336  FE3C81  E2 20                    sep     #PMFLAG
 9337                                   .LONGA  off
 9338                                   .MNLIST
 9339  FE3C83  4C 95 1E                 jmp     SK02
 9340  FE3C86                           
 9341                           ;---------------------------------------------------------------------------
 9342                           ; address table's
 9343                           ;---------------------------------------------------------------------------
 9344                           
 9345                           ; function's table for p-code tokens $00..$7F
 9346  FE3C86                   PCODET1:
 9347  FE3C86  7C1D D51D F11D           .DW     PC00, PC01, PC02, PC03, PC04, PC05, PC06, PC07
               231E 461E 8B1E 
               A01E AF1E 
 9348  FE3C96  EF1E 5B1E 0A1F           .DW     PC08, PC09, PC0A, PC0B, PC0C, PC0D, PC0E, PC0F
               771E 811E 7D1F 
               D31F DA1F 
 9349  FE3CA6  F51F 1020 3820           .DW     PC10, PC11, PC12, PC13, PC14, PC15, PC16, PC17
               5520 AB1F 8E20 
               9720 1A2F 
 9350  FE3CB6  052F AB20 C920           .DW     PC18, PC19, PC1A, PC1B, PC1C, PC1D, PC1E, PC1F
               E720 FF20 9021 
               1022 7922 
 9351  FE3CC6  FF23 4A24 6E24           .DW     PC20, PC21, PC22, PC23, PC24, PC25, PC26, PC27
               7924 8424 AA24 
               CA24 D324 
 9352  FE3CD6  DC24 F524 3C25           .DW     PC28, PC29, PC2A, PC2B, PC2C, PC2D, PC2E, PC2F
               5125 6925 8325 
               A725 BC25 
 9353  FE3CE6  EF25 1826 3126           .DW     PC30, PC31, PC32, PC33, PC34, PC35, PC36, PC37
               4826 6026 8726 
               A126 7B2D 
 9354  FE3CF6  6227 8527 3525           .DW     PC38, PC39, PC3A, PC3B, PC3C, PC3D, PC3E, PC3F
  Tue Jul 17 11:00:23 2018                                                                                               Page  120




               8F1D B826 D926 
               5930 5C30 
 9355  FE3D06  8528 A128 B828           .DW     PC40, PC41, PC42, PC43, PC44, PC45, PC46, PC47
               FE28 0F29 3A29 
               E129 E629 
 9356  FE3D16  EA29 442A BA2A           .DW     PC48, PC49, PC4A, PC4B, PC4C, PC4D, PC4E, PC4F
               BD2A E42A 2728 
               102B B72A 
 9357  FE3D26  9C2B 9C2B A727           .DW     PC50, PC51, PC52, PC53, PC54, PC55, PC56, PC57
               A727 F627 F627 
               D127 D127 
 9358  FE3D36  AC27 AC27 AC2B           .DW     PC58, PC59, PC5A, PC5B, PC5C, PC5D, PC5E, PC5F
               AC2B 5C2C 5C2C 
               562D 562D 
 9359  FE3D46  332C 332C B82D           .DW     PC60, PC61, PC62, PC63, PC64, PC65, PC66, PC67
               B82D C62D C62D 
               EB2D EB2D 
 9360  FE3D56  072E 072E 812D           .DW     PC68, PC69, PC6A, PC6B, PC6C, PC6D, PC6E, PC6F
               812D 602E 602E 
               342E 342E 
 9361  FE3D66  912E 912E 322F           .DW     PC70, PC71, PC72, PC73, PC74, PC75, PC76, PC77
               322F 712F 712F 
               5A2E 5A2E 
 9362  FE3D76  5A2E 5A2E A22F           .DW     PC78, PC79, PC7A, PC7B, PC7C, PC7D, PC7E, PC7F
               A22F 2C30 2C30 
               3A30 3A30 
 9363                           
 9364                           ; function's table for p-code tokens $80..$FF   
 9365  FE3D86                   PCODET2:
 9366  FE3D86  B627 D627 0128           .DW     PC80, PC90, PCA0, PCB0, PCC0, PCD0, PCE0, PCF0
               3928 4B28 6328 
               FB27 2128 
 9367                           
 9368                           ; function's in 'compile' mode  
 9369  FE3D96                   CFUNCT:
 9370  FE3D96  7037 B737 0238           .DW     CF00, CF01, CF02, CF03, CF04, CF05, CF06, CF07, CF08
               D037 0238 0238 
               0238 0238 7A37 
 9371  FE3DA8                           
 9372  FE3DA8                   RFUNCT:
 9373  FE3DA8  2E38 3F38 4C38           .DW     RF00, RF01, RF02, RF03, RF04, RF05, RF06, RF07
               5838 6438 6A38 
               B737 9437 
 9374  FE3DB8  6F38 8D38 9338           .DW     RF08, RF09, RF0A, RF0B, RF0C, RF0D, RF0E, RF0F
               9938 9F38 A538 
               AB38 B138 
 9375  FE3DC8  DA38 2D39 4C39           .DW     RF10, RF11, RF12, RF13, RF14, RF15, RF16, RF17
               5F39 A339 BB39 
               DB39 EC39 
 9376  FE3DD8  FD39 093A 173A           .DW     RF18, RF19, RF1A, RF1B, RF1C, RF1D, RF1E, RF1F
               823A 913A A03A 
               AF3A BB3A 
 9377  FE3DE8  113A 9E37 7B37           .DW     RF20, RF21, RF22, RF23, RF24, RF25, RF26, RF27
               C83A E13A FA3A 
               0B3B 1C3B 
 9378  FE3DF8  283B 383B 4E3B           .DW     RF28, RF29, RF2A, RF2B, RF2C, RF2D, RF2E, RF2F
               703B B23B D43B 
  Tue Jul 17 11:00:23 2018                                                                                               Page  121




               EC3B 0A3C 
 9379  FE3E08  723C                     .DW     RF30
 9380                           
 9381                           ; tmp. file name: delete
 9382  FE3E0A                   DTMPNAM:
 9383  FE3E0A  53 30 3A 50 43           .DB     'S0:PCODEV01.XT?', $00
               4F 44 45 56 30 
               31 2E 58 54 3F 
               00 
 9384                           
 9385                           ; temp. file name (copy in ram)
 9386  FE3E1A                   TTMPNAM:
 9387  FE3E1A  30 3A 50 43 4F           .DB     '0:PCODEV01.XTN', $00
               44 45 56 30 31 
               2E 58 54 4E 00 
 9388  FE3E29  0A00 6400 E803           .DW     10, 100, 1000, 10000, 40000
               1027 409C 
 9389  FE3E33  74 72 75 65 20           .DB     'true ', $00
               00 
 9390  FE3E39  66 61 6C 73 65           .DB     'false', $00
               00 
 9391  FE3E3F  20 00 42 00 20           .DB     $20, $00, $42, $00, $20, $00, $A0, $00, $20, $00, $A4, $00
               00 A0 00 20 00 
               A4 00 
 9392          000031           TTMPSIZ .EQU    ($ - TTMPNAM)
 9393                           
 9394  FE3E4B                   STRFMT1:
 9395  FE3E4B  64 69 73 6B 20           .DB     'disk error(#%bu): %s - file: "%s"', $00
               65 72 72 6F 72 
               28 23 25 62 75 
               29 3A 20 25 73 
               20 2D 20 66 69 
               6C 65 3A 20 22 
               25 73 22 00 
 9396  FE3E6D                   STRFMT1A:
 9397  FE3E6D  64 69 73 6B 20           .DB     'disk error(#%bu): %s', $00
               65 72 72 6F 72 
               28 23 25 62 75 
               29 3A 20 25 73 
               00 
 9398  FE3E82                   STRFMT2:
 9399  FE3E82  72 75 6E 74 69           .DB     'runtime error(#%bu): %s', $00
               6D 65 20 65 72 
               72 6F 72 28 23 
               25 62 75 29 3A 
               20 25 73 00 
 9400  FE3E9A                   STRFMT3:
 9401  FE3E9A  2C 20 6C 69 6E           .DB     ', line %hu', $00
               65 20 25 68 75 
               00 
 9402  FE3EA5                   STRFMT4:
 9403  FE3EA5  62 61 6E 6B 3A           .DB     'bank: $%02bX, pcptr: $%04hX (current: $%04hX), opcode: $%02bX', $0D
               20 24 25 30 32 
               62 58 2C 20 70 
               63 70 74 72 3A 
               20 24 25 30 34 
               68 58 20 28 63 
  Tue Jul 17 11:00:23 2018                                                                                               Page  122




               75 72 72 65 6E 
               74 3A 20 24 25 
               30 34 68 58 29 
               2C 20 6F 70 63 
               6F 64 65 3A 20 
               24 25 30 32 62 
               58 0D 
 9404  FE3EE3  73 74 61 63 6B           .DB     'stackptr:$%04hX, heapptr:$%04hX, fileptr: $%04hX', $00
               70 74 72 3A 24 
               25 30 34 68 58 
               2C 20 68 65 61 
               70 70 74 72 3A 
               24 25 30 34 68 
               58 2C 20 66 69 
               6C 65 70 74 72 
               3A 20 24 25 30 
               34 68 58 00 
 9405  FE3F14                           
 9406                           ; run-time error string's
 9407  FE3F14                   TERRS:
 9408  FE3F14  73 74 61 63 6B           .DB     'stack overflow', 0             ; 01
               20 6F 76 65 72 
               66 6C 6F 77 00 
 9409  FE3F23  69 6E 74 65 67           .DB     'integer read error', 0         ; 02
               65 72 20 72 65 
               61 64 20 65 72 
               72 6F 72 00 
 9410  FE3F36  69 6E 74 65 67           .DB     'integer overflow', 0           ; 03
               65 72 20 6F 76 
               65 72 66 6C 6F 
               77 00 
 9411  FE3F47  61 72 72 61 79           .DB     'array index error', 0          ; 04
               20 69 6E 64 65 
               78 20 65 72 72 
               6F 72 00 
 9412  FE3F59  76 61 72 69 61           .DB     'variable out of range', 0      ; 05
               62 6C 65 20 6F 
               75 74 20 6F 66 
               20 72 61 6E 67 
               65 00 
 9413  FE3F6F  63 61 73 65 20           .DB     'case error', 0                 ; 06
               65 72 72 6F 72 
               00 
 9414  FE3F7A  62 61 64 20 70           .DB     'bad p-code', 0                 ; 07
               2D 63 6F 64 65 
               00 
 9415  FE3F85  73 65 74 20 76           .DB     'set value error', 0            ; 08
               61 6C 75 65 20 
               65 72 72 6F 72 
               00 
 9416  FE3F95  66 6C 6F 61 74           .DB     'floating point overflow', 0    ; 09
               69 6E 67 20 70 
               6F 69 6E 74 20 
               6F 76 65 72 66 
               6C 6F 77 00 
 9417  FE3FAD  66 6C 6F 61 74           .DB     'floating point read error', 0  ; 0A
               69 6E 67 20 70 
  Tue Jul 17 11:00:23 2018                                                                                               Page  123




               6F 69 6E 74 20 
               72 65 61 64 20 
               65 72 72 6F 72 
               00 
 9418  FE3FC7  75 6E 64 65 66           .DB     'undefined goto', 0             ; 0B
               69 6E 65 64 20 
               67 6F 74 6F 00 
 9419  FE3FD6  63 6F 6D 70 6C           .DB     'complex log or square root', 0 ; 0C
               65 78 20 6C 6F 
               67 20 6F 72 20 
               73 71 75 61 72 
               65 20 72 6F 6F 
               74 00 
 9420  FE3FF1  66 69 6C 65 20           .DB     'file not open for reading', 0  ; 0D
               6E 6F 74 20 6F 
               70 65 6E 20 66 
               6F 72 20 72 65 
               61 64 69 6E 67 
               00 
 9421  FE400B  66 69 6C 65 20           .DB     'file not open for writing', 0  ; 0E
               6E 6F 74 20 6F 
               70 65 6E 20 66 
               6F 72 20 77 72 
               69 74 69 6E 67 
               00 
 9422  FE4025  65 6E 64 20 6F           .DB     'end of file', 0                ; 0F
               66 20 66 69 6C 
               65 00 
 9423  FE4031  6E 6F 20 66 72           .DB     'no free i/o channels', 0       ; 10
               65 65 20 69 2F 
               6F 20 63 68 61 
               6E 6E 65 6C 73 
               00 
 9424  FE4046  64 65 76 69 63           .DB     'device read error', 0          ; 11
               65 20 72 65 61 
               64 20 65 72 72 
               6F 72 00 
 9425  FE4058  64 69 76 69 73           .DB     'division by zero', 0           ; 12
               69 6F 6E 20 62 
               79 20 7A 65 72 
               6F 00 
 9426  FE4069  62 72 65 61 6B           .DB     'break', 0                      ; 13
               00 
 9427  FE406F  6D 69 73 73 69           .DB     'missing drive number', 0       ; 14
               6E 67 20 64 72 
               69 76 65 20 6E 
               75 6D 62 65 72 
               00 
 9428  FE4084  6C 6F 67 69 63           .DB     'logical file not open', 0      ; 15
               61 6C 20 66 69 
               6C 65 20 6E 6F 
               74 20 6F 70 65 
               6E 00 
 9429  FE409A  6C 6F 67 69 63           .DB     'logical file already open', 0  ; 16
               61 6C 20 66 69 
               6C 65 20 61 6C 
               72 65 61 64 79 
  Tue Jul 17 11:00:23 2018                                                                                               Page  124




               20 6F 70 65 6E 
               00 
 9430  FE40B4  66 69 6C 65 20           .DB     'file not found', 0             ; 17
               6E 6F 74 20 66 
               6F 75 6E 64 00 
 9431  FE40C3  64 65 76 69 63           .DB     'device not present', 0         ; 18
               65 20 6E 6F 74 
               20 70 72 65 73 
               65 6E 74 00 
 9432  FE40D6  6D 69 73 73 69           .DB     'missing file name', 0          ; 19
               6E 67 20 66 69 
               6C 65 20 6E 61 
               6D 65 00 
 9433  FE40E8  69 6C 6C 65 67           .DB     'illegal device number', 0      ; 1A    
               61 6C 20 64 65 
               76 69 63 65 20 
               6E 75 6D 62 65 
               72 00 
 9434  FE40FE  73 68 6F 75 6C           .DB     'should not occur', 0
               64 20 6E 6F 74 
               20 6F 63 63 75 
               72 00 
 9435  FE410F  00                       .DB     $00


             Lines Assembled : 8587                  Errors : 0