home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh5x
/
sh55a.d64
/
dreieck.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
4KB
|
164 lines
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
900 LDY #>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 ; NAECHTEN TEXT
1040 LDY #>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
1190 LDY #>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