home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1987 July / Antic_Magazine_1987_07_Antic.atr / artconvr.m65 < prev    next >
Text File  |  2023-02-26  |  31KB  |  1 lines

  1. 0100 ;ASCII ART CONVERTER (v 2.0)¢0105 ;BY PAUL TUPACZEWSKI¢0110 ;(c)1987, ANTIC PUBLISHING INC.¢0115     .OPT NO LIST¢0120     .OPT OBJ¢0125 ;¢0130 LOHI1 = $CF     ;Page 0¢0135 LOHI =  $CB     ;variables.¢0140 POINTER = $CD¢0145 ICCOM = $0342   ;CIO command¢0150 ICBAL = $0344   ;CIO lo and¢0155 ICBAH = $0345   ;Hi buffer adrs¢0160 ICBLL = $0348   ;CIO lo and¢0165 ICBLH = $0349   ;hi buffer lens¢0170 CIOV =  $E456   ;OS CIO routine¢0175 ICAX1 = $034A   ;CIO aux1¢0180 ICAX2 = $034B   ;CIO aux2¢0185 SDLSTL = $0230  ;Dlist pointer¢0190 SDMCTL = $022F  ;DMA¢0195 VDSLST = $0200  ;DLI pointer¢0200 NMIEN = $D40E   ;DLI switch¢0205 WSYNC = $D40A   ;Wait for sync¢0210 ;¢0215     *=  $2000¢0220 ;¢0225 START¢0230     LDX #$30    ;First,¢0235     LDA #3      ;open our¢0240     STA ICCOM,X ;keyboard¢0245     LDA # <KH   ;channel.¢0250     STA ICBAL,X¢0255     LDA # >KH¢0260     STA ICBAH,X¢0265     LDA #4¢0270     STA ICAX1,X¢0275     LDA #0¢0280     STA ICAX2,X¢0285     JSR CIOV    ;Do it!¢0290 ;¢0295 ;Main loop.¢0300 ST1¢0305     JSR CLEARFN ;Clear the¢0310 ;               filename area.¢0315     JSR CLRBIGBUF ;Clear our¢0320 ;                 screen memory¢0325     JSR CLEARALLELSE¢0330     JSR CLOSE   ;Close channels¢0335 ;¢0340     LDX #$20    ;Close disk¢0345     LDA #$0C    ;channel.¢0350     STA ICCOM,X¢0355     JSR CIOV¢0360     LDA # <DLIST1 ;Show the¢0365     STA SDLSTL  ;  main display¢0370     LDA # >DLIST1 ;list.¢0375     STA SDLSTL+1¢0380     LDA #33     ;Smaller¢0385     STA SDMCTL  ;screen¢0390     LDA #$C4    ;green¢0395     STA 710     ;GR.0 lines¢0400     LDA # <DLI  ;start our¢0405     STA VDSLST  ;DLI's¢0410     LDA # >DLI¢0415     STA VDSLST+1¢0420     LDA #$C0¢0425     STA NMIEN¢0430     LDA # <ST1  ; Where we go¢0435     STA MNUJMP+1 ;after an¢0440     LDA # >ST1  ; error.¢0445     STA MNUJMP+2¢0450 ;¢0455 GETKEYS¢0460     JSR GETKEY  ;Get a key.¢0465     LDA KEY     ;Is it a¢0470     CMP #32     ;space?¢0475     BEQ CONVERT ;Yes, convert.¢0480 ;¢0485     CMP #'G     ;Is it G?¢0490     BNE NO1     ;No.¢0495 ;¢0500     LDA #'+-32  ;Toggle from¢0505     SEC         ;GR.7 to¢0510     SBC L5+19   ;GR.7+ or¢0515     STA L5+19   ;vice versa.¢0520     JMP GETKEYS ;back.¢0525 ;¢0530 NO1¢0535     CMP #'P     ;Is it P?¢0540     BNE NO2     ;No.¢0545 ;¢0550     INC POS     ;Yes, change¢0555     LDA POS     ;picture¢0560     CMP #4      ;positioning.¢0565     BNE NOTOVER¢0570 ;¢0575     LDA #0¢0580     STA POS¢0585 ;¢0590 NOTOVER¢0595     LDX POS     ;Show arrow.¢0600     LDA ARWS,X¢0605     STA L4+23¢0610     JMP GETKEYS¢0615 ;¢0620 NO2¢0625     CMP #'C     ;Is it C?¢0630     BNE NO3     ;No.¢0635 ;¢0640     LDA #1      ;Toggle column¢0645     SEC         ;from 80-132 and¢0650     SBC COL     ;vice versa.¢0655     STA COL¢0660     ASL A¢0665     ASL A¢0670     LDY #0¢0675     TAX ¢0680 LOOPQ¢0685     LDA COLS,X  ; Show our¢0690     STA L1+23,Y ;columns.¢0695     INX ¢0700     INY ¢0705     CPY #4¢0710     BNE LOOPQ¢0715 ;¢0720     JMP GETKEYS¢0725 ;¢0730 NO3¢0735     CMP #'D     ;Is it D?¢0740     BNE NO4     ;No.¢0745 ;¢0750     INC FILENAME+1 ;Increment¢0755     LDA FILENAME+1 ;default¢0760     CMP #'9     ;   drive.¢0765     BNE OKDRIVE¢0770 ;¢0775     LDA #'1¢0780     STA FILENAME+1¢0785 OKDRIVE¢0790     LDA FILENAME+1¢0795     SEC ¢0800     SBC #$20¢0805     STA L2+14¢0810     JMP GETKEYS¢0815 ;¢0820 NO4¢0825     CMP #'L     ;Is it L?¢0830     BNE GETKEYS ;No. Start over.¢0835 ;¢0840     JSR INPUT   ;Get filename.¢0845     JMP GETKEYS ;Back.¢0850 ;¢0855 ;  Start conversion.¢0860 ;¢0865 CONVERT¢0870     LDA FILENAME+3 ;Is there¢0875     CMP #32     ;  a filename?¢0880     BNE GOTAF1  ;  Yes.¢0885 ;¢0890     JMP GETKEYS ; Do over.¢0895 GOTAF1¢0900     JSR SETMD   ; Set borders.¢0905     LDA # <SELECT ;Prompt for¢0910     STA SDLSTL  ; "Default or¢0915     LDA # >SELECT ;Edit?"¢0920     STA SDLSTL+1¢0925 DEFRNT¢0930     JSR GETKEY  ;Get a key.¢0935     LDA KEY¢0940     CMP #'U     ;Is it U?¢0945     BEQ USEDEFS ;Yes!¢0950 ;¢0955     CMP #'E     ;Is it E?¢0960     BNE DEFRNT  ;No, try again.¢0965 ;¢0970     JMP GOTAFILENM ;edit them.¢0975 ;¢0980 USEDEFS¢0985     LDX #0      ;Copy default to¢0990 USE1¢0995     LDA DEFAULTS,X ;gray shade¢1000     STA CHARCOLR+32,X ;chart.¢1005     INX ¢1010     CPX #64¢1015     BNE USE1¢1020 ;¢1025     JMP DONEFIGR ;Good, convert.¢1030 ;¢1035 GOTAFILENM¢1040     LDA # <DLIST3 ; Show¢1045     STA SDLSTL  ;   our¢1050     LDA # >DLIST3 ;"Edit"¢1055     STA SDLSTL+1 ;  screen.¢1060     LDA #0      ;Black-out¢1065     STA 711     ;extra text.¢1070     LDA #$40    ;DLI's¢1075     STA NMIEN   ;off.¢1080     JSR OPEN    ;Open disk¢1085     JSR CLRBUFF ;Clear buffer¢1090     JSR CLRCOLS ;Clear gray¢1095 ;                shade chart.¢1100     LDA #0      ;Temp var.¢1105     STA TEMP¢1110 GETLOOP¢1115     LDX #$10    ;   OK, get¢1120     LDA #7      ;256 bytes off¢1125     STA ICCOM,X ;the file.¢1130     LDA # <BUFFER¢1135     STA ICBAL,X¢1140     LDA # >BUFFER¢1145     STA ICBAH,X¢1150     LDA #0¢1155     STA ICBLL,X¢1160     LDA #1¢1165     STA ICBLH,X¢1170     JSR CIOV¢1175     LDY #0¢1180 SRCHLOOP¢1185     LDA BUFFER,Y ;  Check for¢1190     JMP CHECK4RTN ; a RETURN.¢1195 ;¢1200 BACKHR¢1205     TAX         ;Find individual¢1210     LDA CHARCOLR,X ;occurences.¢1215     BNE SRCHCONT¢1220 ;¢1225     INC CHARCOLR,X¢1230     LDA BUFFER,Y¢1235     SEC ¢1240     SBC #32¢1245     LDX TEMP¢1250     STA DISPLINE,X¢1255     JMP LOP¢1260 ;¢1265 SRCHCONT¢1270     INY         ; Continue it.¢1275     BNE SRCHLOOP¢1280 ;¢1285     LDX #$10¢1290     LDA ICCOM+1,X¢1295     CMP #136    ; End Of File?¢1300     BNE GETLOOP ; No.¢1305 ;¢1310 EOF¢1315     JSR CLOSE   ; Close disk.¢1320     LDA #$46    ; Turn the text¢1325 ;                 on again.¢1330     STA 711¢1335     LDA #0      ; Clear temp var¢1340     STA TEMP¢1345 INPUT1¢1350     LDX TEMP    ; Show arrow.¢1355     LDA #$40+'^ ; ^ is actually¢1360 ;                 CTRL-UPARROW.¢1365     STA ARL,X¢1370     LDA CRL,X   ; Show cursor.¢1375     CLC ¢1380     ADC #$80¢1385     STA CRL,X¢1390 KEYGET¢1395     JSR GETKEY  ; Get a key.¢1400     LDA KEY¢1405     CMP #155    ; Is it RETURN?¢1410     BEQ DONEFIGR ;Yes.¢1415 ;¢1420     CMP #126    ;Is it BKSPACE?¢1425     BNE NOBK    ;No.¢1430 ;¢1435     LDA TEMP    ;At start?¢1440     BEQ KEYGET  ;Yes.¢1445 ;¢1450     JSR ERASECR ;Erase cursor.¢1455     DEC TEMP    ;Back up!¢1460     JMP INPUT1  ;get key...¢1465 ;¢1470 NOBK¢1475     CMP #32     ;Is it a SPACE?¢1480     BNE NOSPC   ;No.¢1485 ;¢1490     LDA TEMP    ;At end?¢1495     CMP #31¢1500     BEQ KEYGET  ;Yes.¢1505 ;¢1510     JSR ERASECR ;Erase cursor.¢1515     INC TEMP    ;Onward!¢1520     JMP INPUT1  ;Get key...¢1525 ;¢1530 NOSPC¢1535     CMP #48     ;Have¢1540     BCC KEYGET  ;a¢1545 ;                number¢1550     CMP #'4     ;from 0¢1555     BCS KEYGET  ;to 3?¢1560 ;¢1565     SEC ¢1570     SBC #48     ;Good, change¢1575     STA TEMP+1  ;ATASCII to #.¢1580     LDX TEMP    ;Show it.¢1585     LDA ARL-32,X¢1590     CLC ¢1595     ADC #$20¢1600     TAX ¢1605     LDA TEMP+1  ;   Store value¢1610     STA CHARCOLR,X ;in gray¢1615 ;                   shade chart.¢1620     LDX TEMP¢1625     LDA TEMP+1¢1630     CLC ¢1635     ADC #$10¢1640     STA CRL,X   ;Next cursor pos¢1645     LDA #0¢1650     STA ARL,X¢1655     INC TEMP¢1660     JMP INPUT1¢1665 ;¢1670 DONEFIGR¢1675     JSR OPEN    ;OK, open again.¢1680 GR7SCRN¢1685     JSR OPENS   ;Let the OS¢1690 ;               take care of the¢1695 ;               screen mem.¢1700 REST¢1705     LDA #34     ;Normal screen.¢1710     STA SDMCTL¢1715     LDA #0      ;Start at¢1720     STA XX      ;0,0¢1725     STA YY¢1730     LDA #12     ;Our colors...¢1735     STA 712     ;(wonderful¢1740     LDA #10     ;grays.)¢1745     STA 708¢1750     LDA #7¢1755     STA 709¢1760     LDA #2¢1765     STA 710¢1770     LDA #$40    ;No DLI's.¢1775     STA NMIEN¢1780 GETLOOP2¢1785     LDX #$10    ;Get 256¢1790     LDA #7      ;bytes off¢1795     STA ICCOM,X ;the disk...¢1800     LDA # <BUFFER¢1805     STA ICBAL,X¢1810     LDA # >BUFFER¢1815     STA ICBAH,X¢1820     LDA #0¢1825     STA ICBLL,X¢1830     LDA #1¢1835     STA ICBLH,X¢1840     JSR CIOV¢1845 ;¢1850     LDX #$10    ;End Of File?¢1855     LDA ICCOM+1,X¢1860     CMP #136¢1865     BNE ZZZZOOM ;No.¢1870 ;¢1875     JSR CLREST  ;Clear the rest.¢1880 ZZZZOOM¢1885     LDA #0      ;Temp. pointer¢1890     STA P256¢1895 PLOTLOOP¢1900     LDX P256¢1905     LDA BUFFER,X ;Get chr by chr¢1910     CMP #155    ;Is it ATASCII¢1915 ;                      RETURN ?¢1920     BEQ LF      ;Yes.¢1925 ;¢1930     CMP #13     ;Is it ASCII¢1935 ;                      RETURN ?¢1940     BEQ LF      ;Yes.¢1945 ;¢1950     CMP #10     ;Is it ASCII¢1955 ;                     linefeed?¢1960     BEQ IT      ;Yes.¢1965 ;¢1970     TAX ¢1975     LDY COL     ;  OK. Offset¢1980     LDA COLAMT,Y ; the X¢1985     CLC         ;  values.¢1990     ADC XX¢1995     STA TEMP+1¢2000     LDA CHARCOLR,X ; Get gray¢2005     LDX TEMP+1  ; shade color.¢2010     LDY YY¢2015     JSR PLOTROUT ;Plot it.¢2020     INC XX      ; Next X.¢2025 IT¢2030     INC P256    ;Inc. buffer.¢2035     LDA P256    ;Done?¢2040     BNE PLOTLOOP ;No.¢2045 ;¢2050     JMP GETLOOP3 ;Get more.¢2055 ;¢2060 LF¢2065     LDA #0      ;RETURN handler.¢2070     STA XX      ;X=0,¢2075     INC YY      ;Y=Y+1.¢2080     JMP ITZNEET ;Next!¢2085 ;¢2090 GETLOOP3¢2095     LDA $0353   ;EOF?¢2100     CMP #136¢2105     BNE GETLOOP2 ;No.¢2110 ;¢2115     JSR CLOSE   ;Close disk.¢2120 ENDIT¢2125     JMP TOGLS   ;Done, wait¢2130 ;                for toggles.¢2135 ;¢2140 ; Plotting handler.¢2145 ;¢2150 PLOTROUT¢2155     STA TEMP+2  ;  Store¢2160     LDA POS     ;  all our¢2165     BNE PLOTROUT1 ;X and Y¢2170 ;                  and offset¢2175     LDA TEMP+2  ;  for¢2180     JMP PLOT    ;  positioning.¢2185 ;¢2190 PLOTROUT1¢2195     CMP #1¢2200     BNE PLOTROUT2¢2205 ;¢2210     TXA ¢2215     STA TEMP+1¢2220     TYA ¢2225     STA TEMP¢2230 MD¢2235     LDA #128¢2240     SEC ¢2245     SBC TEMP+1¢2250     TAY ¢2255     LDA TEMP¢2260     TAX ¢2265     LDA TEMP+2¢2270     JMP PLOT¢2275 ;¢2280 PLOTROUT2¢2285     CMP #2¢2290     BNE PLOTROUT3¢2295 ;¢2300     STX TEMP+1¢2305     STY TEMP¢2310     LDA #159¢2315     SEC ¢2320     SBC TEMP+1¢2325     TAX ¢2330     LDA #95¢2335     SEC ¢2340     SBC TEMP¢2345     TAY ¢2350     LDA TEMP+2¢2355     JMP PLOT¢2360 ;¢2365 PLOTROUT3¢2370     TXA ¢2375     STA TEMP+1¢2380     TYA ¢2385     STA TEMP¢2390 MD2¢2395     LDA #-$20¢2400     CLC ¢2405     ADC TEMP+1¢2410     TAY ¢2415     LDA #159¢2420     SEC ¢2425     SBC TEMP¢2430     TAX ¢2435     LDA TEMP+2¢2440     JMP PLOT¢2445 ;¢2450 ; Final finish.¢2455 ;¢2460 TOGLS¢2465     LDA 53279   ; OPTION?¢2470     CMP #3¢2475     BEQ MENYOU  ;Yes.¢2480 ;¢2485     LDA #7¢2490     STA 709¢2495     LDA 764     ;Keypress?¢2500     CMP #255¢2505     BEQ NOSLCT  ;no.¢2510 ;¢2515     LDA L5+19   ;Toggle screens.¢2520     BEQ HIR¢2525 ;¢2530     LDA #192¢2535     STA BTM+1¢2540     BNE YUMP¢2545 ;¢2550 HIR¢2555     LDA #96¢2560     STA BTM+1¢2565 YUMP¢2570     JSR TRANSFER7¢2575     LDA #255¢2580     STA 764¢2585 ;¢2590 NOSLCT¢2595     LDA # <MENYOU ; Where we go¢2600     STA MNUJMP+1 ;  if we get¢2605     LDA # >MENYOU ; an error.¢2610     STA MNUJMP+2¢2615     JMP TOGLS   ;Back!¢2620 ;¢2625 MENYOU¢2630     LDA SDLSTL  ;Another¢2635     STA LOHI1   ;menu.¢2640     LDA SDLSTL+1 ;Show it.¢2645     STA LOHI1+1¢2650     LDA # <DLIST0¢2655     STA SDLSTL¢2660     LDA # >DLIST0¢2665     STA SDLSTL+1¢2670     LDA #12¢2675     STA 709¢2680     LDA L2+14¢2685     STA LSAVE+20¢2690 ;¢2695 CONSKYS¢2700     LDA 53279   ;START key?¢2705     CMP #6¢2710     BNE MORECONS ;No.¢2715 ;¢2720     LDA LOHI1   ;Otherwise,¢2725     STA SDLSTL¢2730     LDA LOHI1+1¢2735     STA SDLSTL+1¢2740     JMP TOGLS   ;Back!¢2745 ;¢2750 MORECONS¢2755     LDA 764     ;Key?¢2760     CMP #$FF¢2765     BEQ CONSKYS ;No.¢2770 ;¢2775     JSR GETKEY  ;Get a key.¢2780     LDA KEY     ;Is it 1-4?¢2785     CMP #'1¢2790     BCC CONSKYS¢2795 ;¢2800     CMP #'5¢2805     BCS CONSKYS¢2810 ;¢2815     CMP #'3     ;YES! Is it 3?¢2820     BNE NOPEY2  ;No.¢2825 ;¢2830     JSR INPUTQ  ;Get filename.¢2835     JMP CONSKYS ;try again.¢2840 ;¢2845 NOPEY2¢2850     CMP #'4     ;Is it 4?¢2855     BNE NOPEY   ;No.¢2860 ;¢2865     JMP ST1     ;Restart.¢2870 ;¢2875 NOPEY¢2880     LDA LSAVE+22 ;First, is¢2885     BEQ CONSKYS ; there a¢2890 ;                a filename? No!¢2895 ;¢2900     LDA KEY     ;Yes, but which¢2905     CMP #'1     ;mode? 1?¢2910     BNE NOPEY1  ;No...¢2915 ;¢2920     JSR OPENSVE ;Open save file¢2925     LDA #0      ;temp...¢2930     STA TEMP¢2935     LDA 88      ;Start screen¢2940     STA LOHI    ;address.¢2945     LDA 89¢2950     STA LOHI+1¢2955 LB¢2960     LDY #0¢2965 LOADBUFF¢2970     LDA (LOHI),Y ;Our EXPAND¢2975     STA BUFFER,Y ;routine...¢2980 ;                 Changes GR.7¢2985     STA BUFFER+40,Y ;into GR.7+¢2990     INY ¢2995     CPY #40¢3000     BNE LOADBUFF¢3005 ;¢3010     LDX #$10    ;Save to disk.¢3015     LDA #11¢3020     STA ICCOM,X¢3025     LDA # <BUFFER¢3030     STA ICBAL,X¢3035     LDA # >BUFFER¢3040     STA ICBAH,X¢3045     LDA #80¢3050     STA ICBLL,X¢3055     LDA #0¢3060     STA ICBLH,X¢3065     JSR CIOV¢3070     LDA $0353¢3075     CMP #1      ;Any errors?¢3080     BNE OHOH1   ;Yes.¢3085 ;¢3090     LDA LOHI    ;Next screen¢3095 ;                bytes.¢3100     CLC ¢3105     ADC #40¢3110     STA LOHI¢3115     LDA LOHI+1¢3120     ADC #0¢3125     STA LOHI+1¢3130     INC TEMP¢3135     LDA TEMP¢3140     CMP #96     ;End of screen?¢3145     BNE LB      ;No.¢3150 ;¢3155     JMP CLOSESAVE ;Yes, close.¢3160 ;¢3165 NOPEY1¢3170     CMP #'2     ; Not this one!¢3175     BNE CONSKYSQ ;ARRRGH!¢3180 ;¢3185     JSR OPENSVE ;Open for save.¢3190     LDX #$10    ;Plain 62 sector¢3195     LDA #11     ;save.¢3200     STA ICCOM,X¢3205     LDA 88¢3210     STA ICBAL,X¢3215     LDA 89¢3220     STA ICBAH,X¢3225     LDA # <7680¢3230     STA ICBLL,X¢3235     LDA # >7680¢3240     STA ICBLH,X¢3245     JSR CIOV¢3250     JMP CHECKERR ;Done.¢3255 ;¢3260 CONSKYSQ¢3265     JMP CONSKYS ;Loop back.¢3270 ;¢3275 OHOH1¢3280     JMP OHOH    ;Ditto.¢3285 ;¢3290 CHECKERR¢3295     LDA $0353   ;Error?¢3300     CMP #1¢3305     BNE OHOH1   ;Yes.¢3310 ;¢3315     JMP CLOSESAVE ;Close disk.¢3320 ;¢3325 MORECONS1¢3330     JMP MORECONS ;Back.¢3335 ;¢3340 CLEARALLELSE¢3345     LDX #0      ;Clear all else!¢3350 CAE1¢3355     LDA #0¢3360     STA DISPLINE,X ;Show lines.¢3365     INX ¢3370     CPX #96¢3375     BNE CAE1¢3380 ;¢3385     LDA #0      ;colors!¢3390     STA 712¢3395     LDA #10¢3400     STA 709¢3405     LDX #0¢3410     TXA ¢3415 CLEARCHCLS¢3420     STA CHARCOLR,X ;Gray shades!¢3425     INX ¢3430     CPX #120¢3435     BNE CLEARCHCLS¢3440 ;¢3445     RTS ¢3450 ;¢3455 ITZNEET¢3460     LDX POS     ;Other stuff!¢3465     LDA L5+19¢3470     BNE UDDER1¢3475 ;¢3480     LDA ENDZ,X¢3485     CMP YY¢3490     BNE LEEVE¢3495 ;¢3500     JMP NXTSCRN¢3505 ;¢3510 UDDER1¢3515     LDA ENDZZ,X¢3520     CMP YY¢3525     BNE LEEVE¢3530 ;¢3535     JMP NXTSCRN2¢3540 ;¢3545 LEEVE¢3550     JMP IT¢3555 ;¢3560 NXTSCRN¢3565     LDA #96¢3570     STA BTM+1¢3575     JSR TRANSFER7¢3580 NX¢3585     LDA #0      ;Clear screens!¢3590     STA XX¢3595     STA YY¢3600     JMP IT¢3605 ;¢3610 NXTSCRN2¢3615     LDA #192¢3620     STA BTM+1¢3625     JSR TRANSFER7¢3630     JMP NX¢3635 ;¢3640 CLOSESAVE¢3645     LDX #$10    ;Close the save¢3650     LDA #11     ;by appending¢3655 ;                color info.¢3660     STA ICCOM,X¢3665     LDA # <COLORSD¢3670     STA ICBAL,X¢3675     LDA # >COLORSD¢3680     STA ICBAH,X¢3685     LDA #4¢3690     STA ICBLL,X¢3695     LDA #0¢3700     STA ICBLH,X¢3705     JSR CIOV¢3710     LDX #$10¢3715     LDA #$0C¢3720     STA ICCOM,X¢3725     JSR CIOV¢3730     JMP CONSKYS ;Back.¢3735 ;¢3740 COLORSD¢3745     .BYTE 12,10,6,2 ;Our screen¢3750 ;                   gray shades.¢3755 ;¢3760 OPENSVE¢3765     LDX #$10    ;Open for¢3770     LDA #3      ;disk write.¢3775     STA ICCOM,X¢3780     LDA # <FILENAME¢3785     STA ICBAL,X¢3790     LDA # >FILENAME¢3795     STA ICBAH,X¢3800     LDA #8¢3805     STA ICAX1,X¢3810     LDA #0¢3815     STA ICAX2,X¢3820     JSR CIOV¢3825     LDA $0353   ;Error?¢3830     CMP #1¢3835     BNE OHOH    ;YES!!!¢3840 ;¢3845     RTS ¢3850 ;¢3855 OHOH¢3860     PLA ¢3865     JMP ERROR¢3870 ;¢3875 ; Input filename¢3880 ;¢3885 INPUTQ¢3890     JSR CLEARFN ;Clear filename¢3895     LDX #0¢3900 INPLOOPQ¢3905     STX TEMP¢3910     LDA #$80¢3915     LDX TEMP¢3920     STA LSAVE+22,X¢3925     JSR GETKEY  ;Get loop.¢3930     LDX TEMP¢3935     LDA KEY¢3940     CMP #126    ;Backspace??¢3945     BNE NOTBKSPQ ;No.¢3950 ;¢3955     CPX #0      ; First spot?¢3960     BEQ INPLOOPQ ;Yes.¢3965 ;¢3970     LDA #0      ; Back up.¢3975     STA LSAVE+22,X¢3980     LDA #32¢3985     STA FILENAME+3,X¢3990     DEX ¢3995     JMP INPLOOPQ¢4000 ;¢4005 NOTBKSPQ¢4010     CMP #155    ;RETURN?¢4015     BEQ FINIQ   ;Yes.¢4020 ;¢4025     CPX #12     ;At end?¢4030     BEQ INPLOOPQ ;Yes.¢4035 ;¢4040     STA FILENAME+3,X ;Save chr.¢4045     SEC ¢4050     SBC #32¢4055     STA LSAVE+22,X¢4060     INX ¢4065     JMP INPLOOPQ¢4070 ;¢4075 FINIQ¢4080     LDA #0      ;End it.¢4085     STA LSAVE+22,X¢4090     RTS ¢4095 ;¢4100 ; Open S: device¢4105 ;¢4110 OPENS¢4115     LDX #$20    ;Open it.¢4120     LDA #3¢4125     STA ICCOM,X¢4130     LDA # <SH¢4135     STA ICBAL,X¢4140     LDA # >SH¢4145     STA ICBAH,X¢4150     LDA #8¢4155     STA ICAX1,X¢4160     LDA L5+19   ;Pick a mode,¢4165     BNE EIGHT   ;any mode.¢4170 ;¢4175     LDA #7¢4180     STA ICAX2,X¢4185     JMP OPENIT¢4190 ;¢4195 EIGHT¢4200     LDA #8¢4205     STA ICAX2,X¢4210 OPENIT¢4215     JSR CIOV¢4220     LDA L5+19¢4225     BEQ LATERONDUDES¢4230 ;¢4235     LDA SDLSTL  ;Store DL addr.¢4240     CLC ¢4245     ADC #3¢4250     STA LOHI¢4255     LDA SDLSTL+1¢4260     ADC #0¢4265     STA LOHI+1¢4270     LDY #0¢4275 SRCHDL¢4280     LDA (LOHI),Y ;Change GR.8¢4285 ;                 to GR.7+¢4290     CMP #$4F¢4295     BNE NOMLD¢4300 ;¢4305     LDA #$4E¢4310     STA (LOHI),Y¢4315     LDA LOHI¢4320     CLC ¢4325     ADC #2¢4330     STA LOHI¢4335     LDA LOHI+1¢4340     ADC #0¢4345     STA LOHI+1¢4350     JMP NXTDLB¢4355 ;¢4360 NOMLD¢4365     CMP #$0F¢4370     BNE NOREGL¢4375 ;¢4380     LDA #$0E¢4385     STA (LOHI),Y¢4390     BNE NXTDLB¢4395 ;¢4400 NOREGL¢4405     CMP #$41¢4410     BNE NXTDLB¢4415 ;¢4420     RTS ¢4425 ;¢4430 NXTDLB¢4435     LDA LOHI¢4440     CLC ¢4445     ADC #1¢4450     STA LOHI¢4455     LDA LOHI+1¢4460     STA POINTER+1¢4465     STA LOHI+1¢4470     JMP SRCHDL¢4475 ;¢4480 LATERONDUDES¢4485     RTS ¢4490 ;¢4495 SH¢4500     .BYTE "S:"  ;Screen handler.¢4505 ;¢4510 TRANSFER7¢4515     LDA #0      ;Move screens.¢4520     STA TEMP¢4525     LDA 88¢4530     STA LOHI¢4535     LDA 89¢4540     STA LOHI+1¢4545     LDA # <SCRN2¢4550     STA POINTER¢4555     LDA # >SCRN2¢4560     STA POINTER+1¢4565 TR1¢4570     LDY #0¢4575 TR2¢4580     LDA (LOHI),Y¢4585     PHA ¢4590     LDA (POINTER),Y¢4595     STA (LOHI),Y¢4600     PLA ¢4605     STA (POINTER),Y¢4610     INY ¢4615     CPY #40¢4620     BNE TR2¢4625 ;¢4630     INC TEMP¢4635     LDA TEMP¢4640 BTM¢4645     CMP #96¢4650     BEQ DONETRNS¢4655     LDA LOHI¢4660     CLC ¢4665     ADC #40¢4670     STA LOHI¢4675     LDA LOHI+1¢4680     ADC #0¢4685     STA LOHI+1¢4690     LDA POINTER¢4695     CLC ¢4700     ADC #40¢4705     STA POINTER¢4710     LDA POINTER+1¢4715     ADC #0¢4720     STA POINTER+1¢4725     JMP TR1¢4730 ;¢4735 DONETRNS¢4740     RTS ¢4745 ;¢4750 CLRBIGBUF¢4755     LDA #0      ;Clear screens.¢4760     STA TEMP¢4765     LDA # <SCRN2¢4770     STA LOHI¢4775     LDA # >SCRN2¢4780     STA LOHI+1¢4785 CLRB1¢4790     LDY #0¢4795     TYA ¢4800 CLRB2¢4805     STA (LOHI),Y¢4810     INY ¢4815     CPY #40¢4820     BNE CLRB2¢4825 ;¢4830     INC TEMP¢4835     LDA TEMP¢4840     CMP #192¢4845     BEQ DONECLRING¢4850 ;¢4855     LDA LOHI¢4860     CLC ¢4865     ADC #40¢4870     STA LOHI¢4875     LDA LOHI+1¢4880     ADC #0¢4885     STA LOHI+1¢4890     JMP CLRB1¢4895 ;¢4900 DONECLRING¢4905     RTS ¢4910 ;¢4915 SETMD¢4920     LDA L5+19   ;Offset borders.¢4925     BNE PLUSG¢4930 ;¢4935     LDA #128¢4940     STA MD+1¢4945     LDA #-32¢4950     STA MD2+1¢4955     RTS ¢4960 ;¢4965 PLUSG¢4970     LDA #176¢4975     STA MD+1¢4980     LDA #16¢4985     STA MD2+1¢4990     RTS ¢4995 ;¢5000 CLREST¢5005     LDX $0358   ;Buffer pointer.¢5010     LDA #32¢5015 RESTLP¢5020     STA BUFFER,X¢5025     INX ¢5030     BNE RESTLP¢5035 ;¢5040     RTS ¢5045 ;¢5050 CHECK4RTN¢5055     CMP #155    ;ATASCII RETURN?¢5060     BNE NEXT1¢5065 ;¢5070     JMP SRCHCONT¢5075 ;¢5080 NEXT1¢5085     CMP #13     ;ASCII RETURN?¢5090     BNE NEXT2¢5095 ;¢5100     JMP SRCHCONT¢5105 ;¢5110 NEXT2¢5115     CMP #10     ;ASCII LF?¢5120     BNE XIT1¢5125 ;¢5130     JMP SRCHCONT¢5135 ;¢5140 XIT1¢5145     JMP BACKHR¢5150 ;¢5155 ERASECR¢5160     LDA #0      ;Erase cursor.¢5165     LDX TEMP¢5170     STA ARL,X¢5175     LDA CRL,X¢5180     SEC ¢5185     SBC #$80¢5190     STA CRL,X¢5195     RTS ¢5200 ;¢5205 CLRBUFF¢5210     LDX #0¢5215     TXA ¢5220 CLROOP¢5225     STA BUFFER,X¢5230     INX ¢5235     BNE CLROOP¢5240 ;¢5245     RTS ¢5250 ;¢5255 CLRCOLS¢5260     LDX #0¢5265     TXA ¢5270 CLRCLOOP¢5275     STA CHARCOLR,X¢5280     INX ¢5285     CPX #120¢5290     BNE CLRCLOOP¢5295 ;¢5300     RTS ¢5305 ;¢5310 OPEN¢5315     LDX #$10    ;Open disk file.¢5320     LDA #3¢5325     STA ICCOM,X¢5330     LDA # <FILENAME¢5335     STA ICBAL,X¢5340     LDA # >FILENAME¢5345     STA ICBAH,X¢5350     LDA #4¢5355     STA ICAX1,X¢5360     LDA #0¢5365     STA ICAX2,X¢5370     JSR CIOV¢5375     LDA $0353   ;Error?¢5380     CMP #1¢5385     BNE ERROR   ;Yes.¢5390 ;¢5395     RTS ¢5400 ;¢5405 CLOSE¢5410     LDX #$10    ;Close it!¢5415     LDA #$0C¢5420     STA ICCOM,X¢5425     JMP CIOV¢5430 ;¢5435 ERROR¢5440     LDA # <ERR  ;ERROR!!!¢5445     STA SDLSTL¢5450     LDA # >ERR¢5455     STA SDLSTL+1¢5460     LDA $0353¢5465     STA $D4¢5470     LDA #0¢5475     STA $D5¢5480     JSR $D9AA   ;Convert ERR #¢5485     JSR $D8E6   ;to screen mem.¢5490     CLD ¢5495     LDY #$FF¢5500 PNUM¢5505     INY ¢5510     LDA ($F3),Y¢5515     AND #$1F¢5520     STA ERRLIN+10,Y¢5525     LDA ($F3),Y¢5530     BPL PNUM¢5535 ;¢5540     JSR RAZZ    ;Buzz.¢5545     JSR CLOSE   ;Close.¢5550     JSR GETKEY  ;Get a key.¢5555 MNUJMP¢5560     JMP ST1¢5565 ;¢5570 INPUT¢5575     JSR CLEARFN ;Clear filename.¢5580     LDX #0¢5585 INPLOOP¢5590     STX TEMP¢5595     LDA #$80¢5600     LDX TEMP¢5605     STA L2+16,X¢5610     JSR GETKEY  ;This¢5615     LDX TEMP    ;input¢5620     LDA KEY     ;loop¢5625     CMP #126    ;is¢5630     BNE NOTBKSP ;identical¢5635 ;                to¢5640     CPX #0      ;the¢5645     BEQ INPLOOP ;other¢5650 ;                input¢5655     LDA #0      ;loop.¢5660     STA L2+16,X¢5665     LDA #32¢5670     STA FILENAME+3,X¢5675     DEX ¢5680     JMP INPLOOP¢5685 ;¢5690 NOTBKSP¢5695     CMP #155¢5700     BEQ FINI¢5705 ;¢5710     CPX #12¢5715     BEQ INPLOOP¢5720 ;¢5725     STA FILENAME+3,X¢5730     SEC ¢5735     SBC #32¢5740     STA L2+16,X¢5745     INX ¢5750     JMP INPLOOP¢5755 ;¢5760 FINI¢5765     LDA #0¢5770     STA L2+16,X¢5775     RTS ¢5780 ;¢5785 CLEARFN¢5790     LDX #0      ;Clear¢5795 LOOPCLR¢5800     LDA #32     ;filename.¢5805     STA FILENAME+3,X¢5810     LDA #0¢5815     STA L2+16,X¢5820     STA LSAVE+22,X¢5825     INX ¢5830     CPX #13¢5835     BNE LOOPCLR¢5840 ;¢5845     RTS ¢5850 ;¢5855 RAZZ¢5860     LDY #$20    ;Razz routine.¢5865 RAZZ1¢5870     LDX #$7F    ;Same as CTRL-2¢5875 RAZZ2¢5880     STX 53279¢5885     STX WSYNC¢5890     DEX ¢5895     BPL RAZZ2¢5900 ;¢5905     DEY ¢5910     BPL RAZZ1¢5915 ;¢5920     RTS ¢5925 ;¢5930 TEMP¢5935     .BYTE 0,0,0 ;Temp. Vars.¢5940 ;¢5945 PLOT¢5950     STA COLOR   ;Plot routines.¢5955     STX XSTOR¢5960     STY YSTOR¢5965     LDA YSTOR¢5970     ASL A¢5975     STA POINTER¢5980     LDA #0¢5985     ROL A¢5990     STA POINTER+1¢5995     JMP CONT¢6000 ;¢6005 COLOR¢6010     .BYTE 0     ;Color hold¢6015 XSTOR¢6020     .BYTE 0     ;storage...¢6025 ;¢6030 GETKEY¢6035     LDX #$30    ;Get a key¢6040     LDA #7      ;routine.¢6045     STA ICCOM,X¢6050     LDA # <KEY¢6055     STA ICBAL,X¢6060     LDA # >KEY¢6065     STA ICBAH,X¢6070     LDA #1¢6075     STA ICBLL,X¢6080     LDA #0¢6085     STA ICBLH,X¢6090     JMP CIOV¢6095 ;¢6100 KEY¢6105     .BYTE 0     ;Key value.¢6110 ;¢6115 CONT¢6120     ASL POINTER ; The plot¢6125     ROL POINTER+1 ;routine.¢6130     ASL POINTER ;(Kinda complex)¢6135     LDA POINTER¢6140     STA STOR1¢6145     ROL POINTER+1¢6150     LDA POINTER+1¢6155     STA STOR2¢6160     ASL POINTER¢6165     ROL POINTER+1¢6170     ASL POINTER¢6175     ROL POINTER+1¢6180     LDA POINTER¢6185     CLC ¢6190     ADC STOR1¢6195     STA POINTER¢6200     LDA POINTER+1¢6205     ADC STOR2¢6210     STA POINTER+1¢6215     LDA 88¢6220     CLC ¢6225     ADC POINTER¢6230     STA POINTER¢6235     LDA 89¢6240     ADC POINTER+1¢6245     STA POINTER+1¢6250     LDA XSTOR¢6255     AND #3¢6260     TAX ¢6265     LDA XSTOR¢6270     LSR A¢6275     LSR A¢6280     CLC ¢6285     ADC POINTER¢6290     STA POINTER¢6295     LDA POINTER+1¢6300     ADC #0¢6305     STA POINTER+1¢6310     LDY COLOR¢6315     LDA BMASK2,X¢6320     AND COLORS,Y¢6325     STA STOR1¢6330     LDA BMASK1,X¢6335     LDY #0¢6340     AND (POINTER),Y¢6345     ORA STOR1¢6350     STA (POINTER),Y¢6355     RTS ¢6360 ;¢6365 ; Various stuff.¢6370 ;¢6375 COLORS¢6380     .BYTE $00,$55,$AA,$FF ;plot¢6385 ;                         colors¢6390 BMASK1¢6395     .BYTE $3F,$CF,$F3,$FC ;Masks¢6400 ;                          for¢6405 BMASK2¢6410     .BYTE $C0,$30,$0C,$03 ;plot¢6415 ;                      routines.¢6420 YSTOR¢6425     .BYTE 0     ;Storage¢6430 STOR1¢6435     .BYTE 0     ;for¢6440 STOR2¢6445     .BYTE 1     ;plot routine¢6450 KH¢6455     .BYTE "K:"  ;Keybd handler.¢6460 COLS¢6465     .SBYTE "80  132 " ;Columns.¢6470 COL¢6475     .BYTE 0     ;Col. toggle.¢6480 ARWS¢6485     .SBYTE "" ;Our arrows¢6490 POS¢6495     .BYTE 0     ;Position code.¢6500 FILENAME¢6505     .BYTE "D1:               "¢6510 ;    Filename buffer¢6515 CHARCOLR¢6520     *=  *+120   ;Where we place¢6525 ;       our edited gray shades.¢6530 BUFFER¢6535     *=  *+256   ;Load-in buffer¢6540 COLAMT¢6545     .BYTE 40,14 ;Col. amounts.¢6550 ;DEFAULTS are our default¢6555 ;gray shades.¢6560 DEFAULTS¢6565     .BYTE 0,2,1,3,2,2,3,1,2,2¢6570     .BYTE 3,2,1,1,1,1,3,3,3,3¢6575     .BYTE 3,3,3,3,3,2,2,2,2,2,2¢6580     .BYTE 3,3,3,3,3,3,3,3,3,3¢6585     .BYTE 3,3,3,3,3,3,3,3,3,3¢6590     .BYTE 3,3,3,3,3,3,3,2,2,2¢6595     .BYTE 1,1¢6600 ;¢6605 LOP¢6610     INC TEMP¢6615     LDA TEMP¢6620     CMP #32¢6625     BEQ DONELDING¢6630 ;¢6635     JMP SRCHCONT¢6640 ;¢6645 DONELDING¢6650     JMP EOF¢6655 ;¢6660 ; Our display lists/data.¢6665 ;¢6670 DLIST1¢6675     .BYTE $70,$70,$70,$70,$70¢6680     .BYTE $70,$F0,$47¢6685     .BYTE  <LINES, >LINES¢6690     .BYTE $90,$02,$70,$02,$00¢6695     .BYTE $02,$00,$02,$00,$02¢6700     .BYTE $00,$02,$00,$02¢6705     .BYTE $41, <DLIST1, >DLIST1¢6710 SELECT¢6715     .BYTE $70,$70,$70,$70,$47¢6720     .BYTE  <SLCTLINE, >SLCTLINE¢6725     .BYTE $07,$41¢6730     .BYTE  <SELECT, >SELECT¢6735 SLCTLINE¢6740     .SBYTE "רSE DEFAULTS OR "¢6745     .SBYTE "דDIT YOUR OWN?  "¢6750 LINES¢6755     .SBYTE +$C0," ART CONVERTER! "¢6760     .SBYTE " (c)1987, Antic Publishing Inc. "¢6765 L1¢6770     .SBYTE "   בolumn of printout: 80       "¢6775 L2¢6780     .SBYTE "   כoad file D1:                "¢6785     .SBYTE "   גefault drive number         "¢6790 L4¢6795     .SBYTE "   סicture postioning:         "¢6800 L5¢6805     .SBYTE "   וraphics mode: 7             "¢6810     .SBYTE "   צסIJבד starts the conversion  "¢6815 ;¢6820 ;* Our DLI's.¢6825 ;¢6830 DLI¢6835     PHA ¢6840     TXA ¢6845     PHA ¢6850     LDX #$90¢6855 LLL¢6860     STX WSYNC¢6865     STX $D019¢6870     INX ¢6875     CPX #$A0¢6880     BNE LLL¢6885 ;¢6890     LDA # <DLI1¢6895     STA VDSLST¢6900     LDA # >DLI1¢6905     STA VDSLST+1¢6910     PLA ¢6915     TAX ¢6920     PLA ¢6925     RTI ¢6930 ;¢6935 DLI1¢6940     PHA ¢6945     TXA ¢6950     PHA ¢6955     LDX #0¢6960     LDY #$0E¢6965 LLL1¢6970     STX WSYNC¢6975     LDA #$4A¢6980     STA $D018¢6985     LDA #0¢6990     STA $D017¢6995     INX ¢7000     CPX #9¢7005     BNE LLL1¢7010 ;¢7015     LDA #$C4¢7020     STA $D018¢7025     LDA #10¢7030     STA $D017¢7035     LDA # <DLI¢7040     STA VDSLST¢7045     LDA # >DLI¢7050     STA VDSLST+1¢7055     PLA ¢7060     TAX ¢7065     PLA ¢7070     RTI ¢7075 ;¢7080 ; More display lists.¢7085 ;¢7090 DLIST3¢7095     .BYTE $70,$70,$70,$70,$47¢7100     .BYTE  <LINES2, >LINES2¢7105     .BYTE $07,$70,$70,$70,$70¢7110     .BYTE $70,$02,$00,$02,$00¢7115     .BYTE $02,$70,$70,$70,$70¢7120     .BYTE $70,$06,$00,$06¢7125     .BYTE $41, <DLIST3, >DLIST3¢7130 LINES2¢7135     .SBYTE +$80," NOW SEARCHING  "¢7140     .SBYTE +$80,"FILE FOR BYTES.."¢7145 DISPLINE¢7150     .SBYTE "                                "¢7155 ARL¢7160     .SBYTE "                                "¢7165 CRL¢7170     .SBYTE "                                "¢7175     .SBYTE +$C0,"  ENTER DATA:   "¢7180     .SBYTE +$C0,"0=WHITE, 3=BLACK"¢7185 XX¢7190     .BYTE 1     ;Our screen X¢7195 YY¢7200     .BYTE 1     ;and Y values.¢7205 P256¢7210     .BYTE 1     ;Pointer...¢7215 ;¢7220 ; Yet another display list.¢7225 ;¢7230 DLIST0¢7235     .BYTE $70,$70,$70,$70,$70¢7240     .BYTE $70,$70,$47¢7245     .BYTE  <LINESF, >LINESF,$30¢7250     .BYTE $70,$02,$00,$02,$00¢7255     .BYTE $02,$00,$02,$00,$02¢7260     .BYTE $20,$02¢7265     .BYTE $41, <DLIST0, >DLIST0¢7270 LINESF¢7275     .SBYTE +$80,"  CHOOSE AN OPTION: " 12345678901234567890¢7280     .SBYTE "         õ Save screen - mode 7         "¢7285     .SBYTE "         Ø Save screen - mode 7+        "¢7290     .SBYTE "         ø Enter save filename          "¢7295     .SBYTE "         œ Restart program              "¢7300     .SBYTE " IJמךáידך toggles screens, צקIJפק for scrn"¢7305 LSAVE¢7310     .SBYTE "     Save filename D1:                  "¢7315 ;¢7320 ; Our screen boundaries for all¢7325 ; positioning modes.¢7330 ;¢7335 ENDZ¢7340     .BYTE 96,160,96,160¢7345 ENDZZ¢7350     .BYTE 192,160,192,160¢7355 SCRN2 = $4000   ;Buffer screen.¢7360 ;¢7365 ; Guess what. A display list¢7370 ; to handle errors.¢7375 ;¢7380 ERR¢7385     .BYTE $70,$70,$70,$70,$70¢7390     .BYTE $70,$70,$70,$70,$70¢7395     .BYTE $47, <ERRLIN, >ERRLIN¢7400     .BYTE $41, <ERR, >ERR¢7405 ERRLIN¢7410     .SBYTE "  ERROR -                     "¢7415 ;¢7420 ;* Where we start from.¢7425     *=  $02E0   ;Init addr.¢7430 ;¢7435     .WORD START¢7440     .END ¢