100 " .BA $C000 ;PC SETZEN 105 " ;*********************************** 110 " ; E P S O N - S U P P O R T 115 " ; 120 " ;VERSION 1.7 (C)1984 BY A.DEL PINO 125 " ; 130 " ;*********************************** 131 " ; 132 " ;VARIABLEN & SYSTEMADRESSEN 133 " ; 135 "HELP = $033C 140 "YVALUE = $14 145 "XVALUE = $033C 150 "X1 = $0350 155 "Y1 = X1+2 160 "X2 = X1+4 165 "Y2 = X1+6 170 "XSTEP = X1+8 175 "YSTEP = X1+10 180 "XDIFF = X1+12 185 "YDIFF = X1+14 190 "SUM = X1+16 195 "XMAX = 800 200 "YMAX = 552 205 "DISABLE = $34 ;ROM AUSBLENDEN 210 "ENABLE = 55 ;ROM EINBLENDEN 215 "FLAG = X1+18 220 "BITPOS = X1+19 225 "FLAG1 = X1+23 230 "FLAG2 = X1+24 235 "FLAG3 = X1+25 240 "LENGH = X1+26 245 "LINETYP = X1+27 246 " ; 247 " ;PROGRAMMSTART, ZEIGER VERBIEGEN 248 " ; 250 " LDA #ESUP 260 " STA $0308 265 " STY $0309 270 " LDA #<8190 275 " LDY #>8190 280 " STA $33 285 " STY $34 290 " STA $37 295 " STY $38 296 " ; 297 " ;PROMPT AUSGEBEN 298 " ; 300 " LDA #PROMPT 310 " JMP $AB1E 311 " ; 312 " ;BASIC-TOKEN ERKENNEN 313 " ; 315 "ESUP JSR $73 320 " CMP #'&' 325 " BEQ SUPPORT 330 " JSR $79 335 " JMP $A7E7 340 "SUPPORT LDX #$FF 345 " LDY #0 350 " STY FLAG 355 "SLOOP INX 360 " INY 365 " LDA @STMTAB,X 370 " BEQ NEWSTMT 375 " CMP ($7A),Y 380 " BEQ SLOOP 385 "NXT INX 390 " LDA @STMTAB,X 395 " BNE NXT 400 " INC FLAG 405 " LDY #0 410 " LDA @STMTAB+1,X 415 " BNE SLOOP 420 " JMP $AF08 425 "NEWSTMT DEY 430 " CLC 435 " TYA 440 " ADC $7A 445 " STA $7A 450 " BCC L1 455 " INC $7B 456 " ; 457 " ;RETURN-ADRESSE AUF DEN STACK 458 " ; 460 "L1 LDA #$A7 465 " PHA 470 " LDA #$E9 475 " PHA 480 " LDA FLAG 485 " ASL 490 " TAX 495 " LDA @ENTRY+1,X 496 " ; 497 " ;ADRESSE DES NEUEN BEFEHLS AUF DEN STACK 500 " PHA 505 " LDA @ENTRY,X 510 " PHA 515 " JMP $73 516 " ; 517 " ;HIER SIND DIE NEUEN BEFEHLE... 518 " ; 520 " ;************************** 525 " ; 530 " ; &CLEAR 535 " ; 540 " ;************************** 545 "CLEAR LDA #<8192 550 " LDY #>8192 555 " STA $FB 560 " STY $FC 565 " SEI 570 " LDA #DISABLE 575 " STA 1 580 " LDY #0 585 " TYA 590 "CL1 STA ($FB),Y 595 " INY 600 " BNE CL1 605 " INC $FC 610 " LDX $FC 615 " CPX #$C0 620 " BNE CL1 625 " LDX #$C8 630 " STX $FC 635 "CL2 STA ($FB),Y 640 " INY 645 " BNE CL2 650 " INC $FC 655 " BNE CL2 660 " LDA #ENABLE 665 " STA 1 670 " CLI 675 " RTS 680 " ;************************** 685 " ; 690 " ; DOT - BEFEHLE 695 " ; 700 " ;************************** 705 "DOT LDA #0 710 " STA FLAG 715 " JSR VALUE+3 720 " STA XVALUE 725 " STY XVALUE+1 730 " JSR VALUE 735 "WORKDOT CPY #>YMAX 740 " BCC SE1 745 " CMP #8192 815 " STA $FC 820 " LDA @HELP+2 825 " STA $FB 830 " ASL 835 " ADC $FC 840 " STA $FC 845 " LDA #0 850 " ASL $FB 855 " ROL 860 " ASL $FB 865 " ROL 870 " ASL $FB 875 " ROL 880 " ASL $FB 885 " ROL 890 " ASL $FB 895 " ROL 900 " ADC $FC 905 " STA $FC 910 "SE4 LDA $14 915 " AND #7 920 " TAX 925 " LDA @BIT,X 930 " STA BITPOS 935 " LDA XVALUE 940 " LDY XVALUE+1 945 " CPY #>XMAX 950 " BCC SE5 955 " CMP #8192 1290 " STA $FB 1295 " STY $FC 1300 " LDA #0 1305 " STA $FD 1306 " ;STEUERCODES FUER NEUE GRAFIKZEILE AUSGEBEN 1310 "HC1 LDX #0 1315 " LDA @TABLE2,X 1320 " JSR CWROUT 1325 " INX 1330 " CPX #14 1335 " BNE HC1+2 1336 " ;EINE GRAFIKZEILE (8*800 DOTS) AUSGEBEN 1340 " LDX #0 1345 "HC2 JSR WROUT 1350 " INX 1355 " BNE HC2 1360 "HC3 JSR WROUT 1365 " INX 1370 " BNE HC3 1375 "HC4 JSR WROUT 1380 " INX 1385 " BNE HC4 1390 "HC5 JSR WROUT 1395 " INX 1400 " CPX #$800 1480 " STA $FF 1485 " LDY #0 1490 " LDA $FC 1495 " CMP #$C0 1500 " BCS WR1 1505 " LDA ($FB),Y 1510 " .BY $2C 1515 "WR1 LDA ($FE),Y 1520 " INC $FB 1525 " BNE WR2 1530 " INC $FC 1531 " ;ROM WIEDER EINBLENDEN 1535 "WR2 LDY #ENABLE 1540 " STY 1 1545 " CLI 1546 " ;GEBE ASCII-ZEICHEN IM ACCU AUS 1547 " ;BEI DRUCKERN MIT SERIELLER SCHNITTSTELLE 1548 " ;MUSS HIER 'JMP $FFD2' STEHEN 1549 " ;UND DANACH AUCH EIN 'RTS' 1550 "CWROUT STA $DD01 1555 " LDA $DD00 1560 " AND #$FB 1565 " STA $DD00 1570 " ORA #4 1575 " STA $DD00 1580 "WAIT LDA $DD0D 1585 " AND #$10 1590 " BEQ WAIT 1595 " CLC 1600 " RTS 1605 " ;************************** 1610 " ; 1615 " ; LINE-BEFEHLE 1620 " ; 1625 " ;************************** 1630 "LINE LDA #0 1635 " STA FLAG 1640 " LDA #0 1645 " STA LINETYP 1650 " JSR VALUE+3 1655 " STA X1 1660 " STY X1+1 1665 " JSR VALUE 1670 " STA Y1 1675 " STY Y1+1 1680 " JSR VALUE 1685 " STA X2 1690 " STY X2+1 1695 " JSR VALUE 1700 " STA Y2 1705 " STY Y2+1 1710 " LDX #1 1715 " LDY #0 1720 " SEC 1725 " LDA X2 1730 " SBC X1 1735 " STA XDIFF 1740 " LDA X2+1 1745 " SBC X1+1 1750 " STA XDIFF+1 1755 " BPL LI1 1760 " DEX 1765 " DEX 1770 " DEY 1775 " EOR #$FF 1780 " STA XDIFF+1 1785 " LDA XDIFF 1790 " EOR #$FF 1795 " STA XDIFF 1800 " INC XDIFF 1805 " BNE LI1 1810 " INC XDIFF+1 1815 "LI1 STX XSTEP 1820 " STY XSTEP+1 1825 " LDX #1 1830 " LDY #0 1835 " SEC 1840 " LDA Y2 1845 " SBC Y1 1850 " STA YDIFF 1855 " LDA Y2+1 1860 " SBC Y1+1 1865 " STA YDIFF+1 1870 " BPL LI2 1875 " DEX 1880 " DEX 1885 " DEY 1890 " EOR #$FF 1895 " STA YDIFF+1 1900 " LDA YDIFF 1905 " EOR #$FF 1910 " STA YDIFF 1915 " INC YDIFF 1920 " BNE LI2 1925 " INC YDIFF+1 1930 "LI2 STX YSTEP 1935 " STY YSTEP+1 1940 " LDY #0 1945 " LDA XDIFF 1950 " ORA XDIFF+1 1955 " BNE LI3 1960 " DEY 1965 "LI3 STY SUM 1970 " STY SUM+1 1975 "LI4 LDA X1 1980 " LDY X1+1 1985 " STA XVALUE 1990 " STY XVALUE+1 1995 " LDA Y1 2000 " LDY Y1+1 2005 " STA YVALUE 2010 " STY YVALUE+1 2015 " JSR SCANN 2020 " JSR WORKDOT 2025 " LDA X1 2030 " CMP X2 2035 " BNE LI5 2040 " LDA X1+1 2045 " CMP X2+1 2050 " BNE LI5 2055 " LDA Y1 2060 " CMP Y2 2065 " BNE LI5 2070 " LDA Y1+1 2075 " CMP Y2+1 2080 " BNE LI5 2085 " RTS 2090 "LI5 BIT SUM+1 2095 " BPL LI6 2100 " CLC 2105 " LDA Y1 2110 " ADC YSTEP 2115 " STA Y1 2120 " LDA Y1+1 2125 " ADC YSTEP+1 2130 " STA Y1+1 2135 " CLC 2140 " LDA SUM 2145 " ADC XDIFF 2150 " STA SUM 2155 " LDA SUM+1 2160 " ADC XDIFF+1 2165 " STA SUM+1 2170 " JMP LI4 2175 "LI6 CLC 2180 " LDA X1 2185 " ADC XSTEP 2190 " STA X1 2195 " LDA X1+1 2200 " ADC XSTEP+1 2205 " STA X1+1 2210 " SEC 2215 " LDA SUM 2220 " SBC YDIFF 2225 " STA SUM 2230 " LDA SUM+1 2235 " SBC YDIFF+1 2240 " STA SUM+1 2245 " JMP LI4 2250 "VALUE JSR $AEFD 2255 " JSR $AD8A 2260 " JSR $B7F7 2265 " LDA $14 2270 " LDY $15 2275 " RTS 2276 " ;FLAG SETZEN FUER MODIFIZIERTEN PUNKT- UND LINIEN-FUNKTIONEN 2280 "RESETDOT LDA #$40 2285 " JMP DOT+2 2290 "INVERTDOT LDA #$80 2295 " JMP DOT+2 2300 "RESETLINE LDA #$40 2305 " JMP LINE+2 2310 "INVERTLINE LDA #$80 2315 " JMP LINE+2 2320 " ;************************** 2325 " ; 2330 " ; &EXIT 2335 " ; 2340 " ;************************** 2341 " ;ZEIGER WIEDER 'GERADEBIEGEN' 2345 "EXIT LDY #$A7 2350 " LDA #$E4 2355 " STA $0308 2360 " STY $0309 2365 " SEC 2370 " JSR $FF99 2375 " STX $37 2380 " STY $38 2385 " JMP $E39A ;SYSTEM AUFRUFEN 2386 " ; TEXT-BEFEHLE, FLAG SETZEN 2390 "INVTEXT LDA #$80 2395 " .BY $2C 2400 "RESTEXT LDA #$40 2405 " .BY $2C 2410 "TEXT LDA #0 2415 " STA FLAG 2420 " JSR VALUE+3 2425 " STA X1 2430 " STY X1+1 2435 " JSR VALUE 2440 " STA Y1 2445 " STY Y1+1 2450 " JSR STRING 2455 " BNE TXT1 2460 " RTS 2465 "TXT1 STA LENGH 2470 " STY FLAG3 2475 "TXT2 LDY FLAG3 2480 " LDA ($64),Y 2485 " CMP #$20 2490 " BCC TXT3 2495 " CMP #$40 2500 " BCC TXT3+2 2505 " CMP #$60 2510 " BCS TXT3 2515 " AND #$1F 2520 " .BY $2C 2525 "TXT3 LDA #$20 2530 " STA 2 2535 " LDA #$1A 2540 " ASL 2 2545 " ROL 2550 " ASL 2 2555 " ROL 2560 " ASL 2 2565 " ROL 2570 " STA 3 2575 " SEI 2580 " LDA #$31 2585 " STA 1 2590 " LDY #7 2595 "TXT4 LDA (2),Y 2600 " STA $200,Y 2605 " DEY 2610 " BPL TXT4 2615 " LDA #ENABLE 2620 " STA 1 2625 " CLI 2630 " LDA #0 2635 " STA FLAG1 2640 "TXT5 LDA #7 2645 " STA FLAG2 2650 "TXT6 LDX FLAG2 2655 " LDA $200,X 2660 " LDX FLAG1 2665 " AND @BIT,X 2670 " BEQ TXT8 2675 " LDA X1 2680 " LDY X1+1 2685 " STA XVALUE 2690 " STY XVALUE+1 2695 " LDY Y1+1 2700 " LDA FLAG2 2705 " CLC 2710 " ADC Y1 2715 " STA $14 2720 " BCC TXT7 2725 " INY 2730 "TXT7 JSR WORKDOT 2735 "TXT8 DEC FLAG2 2740 " BPL TXT6 2745 " INC X1 2750 " BNE TXT9 2755 " INC X1+1 2760 "TXT9 INC FLAG1 2765 " LDX FLAG1 2770 " CPX #8 2775 " BNE TXT5 2780 " INC FLAG3 2785 " LDA FLAG3 2790 " CMP LENGH 2795 " BNE TXT10 2800 " RTS 2805 "TXT10 JMP TXT2 2810 "STRING JSR $AEFD 2815 " JSR $AD9E 2820 " JSR $B6A3 2825 " LDY #0 2830 " LDA ($64),Y 2835 " STA $63 2840 " INY 2845 " LDA ($64),Y 2850 " TAX 2855 " INY 2860 " LDA ($64),Y 2865 " STA $65 2870 " STX $64 2875 " LDY #0 2880 " LDA $63 2885 " RTS 2890 "SCANN BIT LINETYP 2895 " BMI SCA1 2900 " RTS 2905 "SCA1 LDX #$F0 2910 " STX FLAG 2915 " JSR WORKDOT 2920 " LDA Y1 2925 " LDY Y1+1 2930 " STA $14 2935 " BIT FLAG 2940 " BPL SCA2 2945 " PLA 2950 " PLA 2955 " RTS 2960 "SCA2 LDX #0 2965 " STX FLAG 2970 " RTS 2975 "SCANNLN LDA #$FF 2980 " JMP LINE+7 2985 " ;************************** 2990 " ; 2995 " ; D A T E N B E R E I C H 3000 " ; 3005 " ;************************** 3010 "BIT .BY 128 64 32 16 8 4 2 1 3015 "TABLE1 .BY 13 8 'A' 27 '8' 27 3020 "TABLE2 .BY 10 13 ' ' 27 '*' 1 XMAX 3025 "PROMPT .BY 'EPSON-SUPPORT V1.7 ***' 13 3030 " .BY '(C)1984 BY ALEX DEL PINO' 13 0 3035 "STMTAB .BY 'CLEAR' 0 3040 " .BY 'DOT' 0 3045 " .BY 'RESETDOT' 0 3050 " .BY 'INVDOT' 0 3055 " .BY 'LINE' 0 3060 " .BY 'RESETLINE' 0 3065 " .BY 'INVLINE' 0 3070 " .BY 153 0 3075 " .BY 'EXIT' 0 3080 " .BY 'TEXT' 0 3085 " .BY 'INVTEXT' 0 3090 " .BY 'RESETTEXT' 0 3095 " .BY 'SCANLINE' 0 0 3100 "ENTRY .BY CLEAR-1 DOT-1 RESETDOT-1 INVERTDOT-1 3105 " .BY LINE-1 RESETLINE-1 INVERTLINE-1 HARDCOPY-1 EXIT-1 3110 " .BY TEXT-1 INVTEXT-1 RESTEXT-1 SCANNLN-1 3115 " .EN ;END OF SOURCE-FILE