110 OPT OO 120 *= $4000 130 : 140 : 150 ZOOMMOEG = 210 ; FLAG OB ZOOM MOEGLICH, MUSS BEI ERWEITERUNG 1 SEIN 160 : 170 IN1 = 217 ; ZWISCHENSPEICHER 180 IN2 = 219 ; ZUM INDIZIEREN 190 : 200 MRK = 221 ; ZWISCHENSPEICHER 210 IN3 = 222 ; 220 : 230 POSIX = 225 ; POSITION DES CURSORS 240 POSIY = 226 ; WIRD IN IRQ-ROUTINE GESETZT 250 BUTTON = 238 ; 1=KNOPF GEDRUECKT 0=NICHT 260 KORX = 239 ; X/Y KOORDINATE BEI 270 KORY = 240 ; LINIEN/BLOECKEN 280 : 290 FIRE = 251 ; 1 NACHDEM KNOPF GEDRUECKT (VON IRQ GESETZT) 300 : 310 KORX2 = 23 ; X/Y KOORDIN. BEI 320 KORY2 = 24 ; LINIEN ... 330 : 340 X1 = 35 ; ZWISCHENSPEICHER FUER 350 X2 = 36 ; X/Y KOOTRDINATEN BEI 360 X3 = 37 ; VERSCHIEDENEN BEFEHLEN 370 Y1 = 38 380 Y2 = 39 390 Y3 = 40 400 X4 = 47 410 Y4 = 48 420 X5 = 49 430 X6 = 50 440 Y5 = 51 450 Y6 = 52 460 IN4 = 53 470 IN5 = 55 480 IN6 = 57 490 X7 = 59 500 Y7 = 60 510 X8 = 61 520 Y8 = 62 530 : 540 : 550 SINTAB = $AE00 ; SINUSWERTE 560 PRIOFELD = $AF00 ; PRIORITAETENTABELLE 570 STRIMUST = $B000 ; LINIEN STRICHELN MUSTER 580 STRIBYTES = $B060 ;AKTUELLES MUSTER (LINIEN STR.) 590 PATTERNS = $B080 ; FUELLMUSTER 600 FAPINSEL = $B480 ; FARBPINSEL 610 PBREI = $B05E ; GROESSE DES FARBPINSEL 620 PHOEH = $B05F ; HOEHE/BREITE 630 FROTTAB = $B700 ; TABELLE FUER FARBTAUSCH 640 MAKROMEM = $0800 ; MAKRO 650 XSPEI = $0900 ; X/Y SPEICHER BEI 660 YSPEI = $0A00 ; FILL ... 670 : 680 MENU(null) = $1000+3 ; SPRUNG IN'S MENUE (=BRK) 690 PLMUST = $9000+30 ; PLOT ROUTINEN 700 PLOTPR = $9000+33 ; FUER MUSTER,PRIORITAETEN 710 PLPINS = $9000+48 ; PINSELFORM 720 PL(null) = $9000+75 ; LINIEN 730 : 740 GETTAS = $9000+78 ; TASTE EINLESEN UND "_"/"^" TESTEN 750 PLOT = $C000+9 ; PUNKT SETZEN 760 CLRUNTEN = $C000+36 ; SPRITES UNTEN LOESCHEN 770 TEXTPR = $C000+39 ; TEXT IN SPRITES AUSGEBEN 780 EXORLINE = $C000+51 ; LINIE INVERTIEREN 790 WAITOUT = $C000+120 ; "BITTE WARTEN" AUSGEBEN 800 COMSUB = $A900+57 ; STATUSZEILE AUSGEBEN UND TASTATURABFRAGE 810 LFLASH = $A900+63 ; LINIE BLINKEN 820 LDRAW = $A900+66 ; LINIE ZIEHEN 830 BEFINIT = $A900+87 ; ALLGEMEINE INITIALISIERUNG 840 MAINSUB = $7000+18 ; UNDO VORBEREITEN ETC... 850 : 860 JSR MAINSUB ; SOLLTE IMMER 1. BEF. EINER ERW. SEIN. SCHALTET GRAFIK EIN USW 870 INC ZOOMMOEG ; VERHINDERT EINSCHALTEN DES ZOOM-FENSTERS 880 : 890 DREIECK LDX #TEXT1 910 JSR BEFINIT ; TEXTAUSGABE IN SPRITES UND INITIALISIERUNG 920 : 930 LOOP1 JSR COMSUB ; COMSUB GIBT STATUSZEILE AUS, FRAGT EDITORTASTEN AB UND 931 ;PRUEFT AUF SPRUNG IN UNTERMENUES MIT F-TASTEN ODER E/F/M/S/O 940 LDA FIRE ; WURDE FEUERKNOPF INZWISCHEN GEDRUECKT 950 BEQ LOOP1 ; NEIN, DANN WEITER 960 : 970 DEC FIRE ; KNOPFFLAG =0 980 LDX POSIX 990 LDY POSIY ; AKTUELLE PFEILPOSITION 1000 STX X1 ; MERKEN 1010 STY Y1 1020 : 1030 LDX #TEXT2 ; AUSGEBEN 1050 JSR TEXTPR 1060 : 1070 LOOP2 JSR COMSUB 1080 LDX POSIX 1090 LDY POSIY ; POSITION MERKEN 1100 STX X2 1110 STY Y2 1120 JSR LFLASH ; LINIE VON X1/Y1 ZU X2/Y2 EINMAL BLINKEN 1130 LDA FIRE 1140 BEQ LOOP2 1150 : 1160 DEC FIRE 1170 JSR LDRAW ; LINIE VON X1/Y1 ZU X2/Y2 ZIEHEN 1180 LDX #TEXT3 1200 JSR TEXTPR 1210 : 1220 LOOP3 JSR COMSUB 1230 LDX POSIX 1240 LDY POSIY ; POSITION MERKEN 1250 STX X3 1260 STY Y3 1270 JSR FLADREI ; SIEHE UNTEN 1280 JSR FLADREI 1290 LDA FIRE 1300 BEQ LOOP3 1310 : 1320 DEC FIRE 1330 LDX X1 1340 LDY Y1 ; X1/Y1 MERKEN 1350 STX X4 1360 STY Y4 1370 LDX X3 1380 LDY Y3 1390 STX X1 1400 STY Y1 1410 JSR LDRAW ; LINIE ZIEHEN 1420 LDX X4 1430 LDY Y4 1440 STX X2 ; ZURUEKHOLEN 1450 STY Y2 1460 JSR LDRAW ; UND ZWEITE LINIE ZIEHEN 1470 JMP DREIECK ; WEITERE DREIECKE ZEICHNEN 1480 : 1490 FLADREI LDX X1 ; ZWEI LINIEN INVERTIEREN 1500 LDY Y1 ; X1/Y1 - X3/Y3 1510 STX KORX ; UND X2/Y2 - X3/Y3 1520 STY KORY 1530 LDX X3 1540 LDY Y3 1550 STX KORX2 1560 STY KORY2 1570 JSR EXORLINE 1580 : 1590 LDX X2 1600 LDY Y2 1610 STX KORX 1620 STY KORY 1630 LDX X3 1640 LDY Y3 1650 STX KORX2 1660 STY KORY2 1670 JSR EXORLINE 1680 RTS 1690 : 1700 TEXT1 BYT 1,49,3:ASC "DREIECK PUNKT A":BYT 0 1710 TEXT2 BYT 1,49,3:ASC "DREIECK PUNKT B":BYT 0 1720 TEXT3 BYT 1,49,3:ASC "DREIECK PUNKT C":BYT 0