home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
91xx
/
9102a.d64
/
hidden-src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
3KB
|
77 lines
5 POKE56,32:CLR
10 SYS36864
20 .OPT OO
30 *= $C000
40 ;
42 ;HIRES-PLOT MIT HIDDEN-LINE
44 ;NIKOLAUS HEUSLER, 6.9.90
46 ;SYS 49152 GRAFIK AN
48 ;SYS 49155 GRAFIK AUS
50 ;SYS 49158,X,Y PUNKT SETZEN
52 ;
90 ;VARIABLEN UND KONSTANTEN
100 AV =2;ZWISCHENSPEICHER
102 KOMMA =$AEFD;KOMMA NACH SYS HOLEN
104 GETKOORD =$B7EB;X- UND Y-KOORDINATEN HOLEN
106 XCOORD =20;X-KOORDINATE LOW/HIGH
108 CINT =65409;VIC INITIALISIEREN
110 MMTAB =$4000;HIDDEN-LINE TABELLE (768 BYTES)
112 FLAG =4;FLAG, OB PUNKT GEZEICHNET WERDEN SOLL
900 ;SPRUNGTABELLE
1000 JMP GRON;GRAFIK LOESCHEN UND EINSCHALTEN
1002 JMP CINT;GRAFIK AUS
1004 JMP SET;PUNKT MIT HIDDEN-LINE SETZEN
1090 ;MATHEMATISCHE DATEN
1100 GRBIT .BYT $80,$40,$20,$10,8,4,2,1;POTENZEN
1102 MULT =*;MULTIPLIKATIONSTABELLE
1104 .WOR $2000,$2140,$2280,$23C0
1106 .WOR $2500,$2640,$2780,$28C0
1108 .WOR $2A00,$2B40,$2C80,$2DC0
1110 .WOR $2F00,$3040,$3180,$32C0
1112 .WOR $3400,$3540,$3680,$37C0
1114 .WOR $3900,$3A40,$3B80,$3CC0
1116 .WOR $3E00
2000 ;GRAFIK LOESCHEN
2002 GRON LDX #32:STX AV+1:LDY #0:STY AV;ZEIGER AUF 8192, 32 PAGES
2004 TYA;LOESCHEN
2006 CLR STA (AV),Y:INY:BNE CLR:INC AV+1:DEX:BNE CLR;LOESCH-SCHLEIFE
2008 LDX #4:STX AV+1:LDY #0:STY AV:LDA #1;GRAFIK FAERBEN
2010 FRB STA (AV),Y:INY:BNE FRB:INC AV+1:DEX:BNE FRB;FAERB-SCHLEIFE
2012 LDA #26:STA 53272;POINTER AUF GRAFIK
2014 LDA #59:STA 53265;GRAFIK EIN
2016 ;HIDDEN-LINE-TABELLE LOESCHEN
2018 LDX #3;3 PAGES = 768 BYTES
2020 LDA #<MMTAB:LDY #>MMTAB:STA AV:STY AV+1;ZEIGER AUF TABELLE
2022 LDY #0
2024 CLRHILO LDA #-1:STA (AV),Y:INY;MINIMUM SETZEN
2026 LDA #0:STA (AV),Y:INY;MAXIMUM SETZEN
2028 BNE CLRHILO:INC AV+1:DEX:BNE CLRHILO;SCHLEIFE
2030 RTS;GRAFIK 'STEHT' !
3000 ;TURBO-HIRES-PLOT MIT HIDDEN-LINE
3002 SET JSR KOMMA:JSR GETKOORD;KOMMA UND PARAMETER HOLEN
3004 CPX #200:BCC OK;Y-KOORDINATE PRUEFEN
3006 WRONG RTS;FALSCHE KOORDINATEN, DANN ZURUECK
3008 OK LDA XCOORD+1:BEQ OK1:CMP #>320:BNE WRONG;X-KOORDINATE HIGH PRUEFEN
3010 LDA XCOORD:CMP #<320:BCS WRONG;UND LOW PRUEFEN
3012 ;KOORDINATEN OK
3014 ;HIDDEN-LINE-ROUTINE
3016 OK1 LDA XCOORD:STA AV:LDA XCOORD+1;AV = X-KOORDINATE * 2 + MMTAB
3017 ASL AV:ROL:CLC:ADC #>MMTAB:STA AV+1
3018 LDY #0:STY FLAG;0 = PUNKT NICHT ZEICHNEN
3019 ;PRUEFE, OB NEUES MINIMUM
3020 TXA:CMP (AV),Y:BCS NO1;WENN Y-WERT > MINIMUM
3022 STA (AV),Y;Y-WERT = NEUES MINIMUM
3024 INC FLAG;PUNKT SOLL GEZEICHNET WERDEN
3026 ;PRUEFE, OB NEUES MAXIMUM
3028 NO1 INY:TXA:CMP (AV),Y:BCC NO2;WENN Y-WERT < MAXIMUM
3029 STA (AV),Y;Y-WERT = NEUES MAXIMUM
3030 INC FLAG;PUNKT SOLL GEZEICHNET WERDEN
3031 NO2 LDA FLAG:BEQ WRONG;NULL, DANN PUNKT NICHT ZEICHNEN
3032 ;PUNKT DARF GEZEICHNET WERDEN
3034 PLOT TXA:LSR:LSR:LSR:ASL:TAY;ADRESSE ZEILENAFG. BERECHNEN
3036 LDA MULT+1,Y:STA AV+1:TXA:AND #7:CLC:ADC MULT,Y:STA AV;AV=320*ZEILE+8192
3038 LDA XCOORD:AND #$F8:ADC AV:STA AV:LDA AV+1:ADC XCOORD+1:STA AV+1;X-OFFSET
3040 LDA XCOORD:AND #7:TAX:LDA GRBIT,X;BITPOSITION BERECHNEN
3042 LDY #0:ORA (AV),Y:STA (AV),Y;PUNKT IN GRAFIK SETZEN
3044 RTS;FERTIG MIT TURBO-PLOT