home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1991 February / 64er_Magazin_91-02_1991_Markt__Technik_de_Side_A.d64 / hidden-src (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  3KB  |  77 lines

  1. 5 poke56,32:clr
  2. 10 sys36864
  3. 20 .opt oo
  4. 30 *= $c000
  5. 40 ;
  6. 42 ;hires-plot mit hidden-line
  7. 44 ;nikolaus heusler, 6.9.90
  8. 46 ;sys 49152      grafik an
  9. 48 ;sys 49155      grafik aus
  10. 50 ;sys 49158,x,y  punkt setzen
  11. 52 ;
  12. 90 ;variablen und konstanten
  13. 100 av =2;zwischenspeicher
  14. 102 komma =$aefd;komma nach sys holen
  15. 104 getkoord =$b7eb;x- und y-koordinaten holen
  16. 106 xcoord =20;x-koordinate low/high
  17. 108 cint =65409;vic initialisieren
  18. 110 mmtab =$4000;hidden-line tabelle (768 bytes)
  19. 112 flag =4;flag, ob punkt gezeichnet werden soll
  20. 900 ;sprungtabelle
  21. 1000 jmp gron;grafik loeschen und einschalten
  22. 1002 jmp cint;grafik aus
  23. 1004 jmp set;punkt mit hidden-line setzen
  24. 1090 ;mathematische daten
  25. 1100 grbit .byt $80,$40,$20,$10,8,4,2,1;potenzen
  26. 1102 mult =*;multiplikationstabelle
  27. 1104 .wor $2000,$2140,$2280,$23c0
  28. 1106 .wor $2500,$2640,$2780,$28c0
  29. 1108 .wor $2a00,$2b40,$2c80,$2dc0
  30. 1110 .wor $2f00,$3040,$3180,$32c0
  31. 1112 .wor $3400,$3540,$3680,$37c0
  32. 1114 .wor $3900,$3a40,$3b80,$3cc0
  33. 1116 .wor $3e00
  34. 2000 ;grafik loeschen
  35. 2002 gron ldx #32:stx av+1:ldy #0:sty av;zeiger auf 8192, 32 pages
  36. 2004 tya;loeschen
  37. 2006 clr sta (av),y:iny:bne clr:inc av+1:dex:bne clr;loesch-schleife
  38. 2008 ldx #4:stx av+1:ldy #0:sty av:lda #1;grafik faerben
  39. 2010 frb sta (av),y:iny:bne frb:inc av+1:dex:bne frb;faerb-schleife
  40. 2012 lda #26:sta 53272;pointer auf grafik
  41. 2014 lda #59:sta 53265;grafik ein
  42. 2016 ;hidden-line-tabelle loeschen
  43. 2018 ldx #3;3 pages = 768 bytes
  44. 2020 lda #<mmtab:ldy #>mmtab:sta av:sty av+1;zeiger auf tabelle
  45. 2022 ldy #0
  46. 2024 clrhilo lda #-1:sta (av),y:iny;minimum setzen
  47. 2026 lda #0:sta (av),y:iny;maximum setzen
  48. 2028 bne clrhilo:inc av+1:dex:bne clrhilo;schleife
  49. 2030 rts;grafik 'steht' !
  50. 3000 ;turbo-hires-plot mit hidden-line
  51. 3002 set jsr komma:jsr getkoord;komma und parameter holen
  52. 3004 cpx #200:bcc ok;y-koordinate pruefen
  53. 3006 wrong rts;falsche koordinaten, dann zurueck
  54. 3008 ok lda xcoord+1:beq ok1:cmp #>320:bne wrong;x-koordinate high pruefen
  55. 3010 lda xcoord:cmp #<320:bcs wrong;und low pruefen
  56. 3012 ;koordinaten ok
  57. 3014 ;hidden-line-routine
  58. 3016 ok1 lda xcoord:sta av:lda xcoord+1;av = x-koordinate * 2 + mmtab
  59. 3017 asl av:rol:clc:adc #>mmtab:sta av+1
  60. 3018 ldy #0:sty flag;0 = punkt nicht zeichnen
  61. 3019 ;pruefe, ob neues minimum
  62. 3020 txa:cmp (av),y:bcs no1;wenn y-wert > minimum
  63. 3022 sta (av),y;y-wert = neues minimum
  64. 3024 inc flag;punkt soll gezeichnet werden
  65. 3026 ;pruefe, ob neues maximum
  66. 3028 no1 iny:txa:cmp (av),y:bcc no2;wenn y-wert < maximum
  67. 3029 sta (av),y;y-wert = neues maximum
  68. 3030 inc flag;punkt soll gezeichnet werden
  69. 3031 no2 lda flag:beq wrong;null, dann punkt nicht zeichnen
  70. 3032 ;punkt darf gezeichnet werden
  71. 3034 plot txa:lsr:lsr:lsr:asl:tay;adresse zeilenafg. berechnen
  72. 3036 lda mult+1,y:sta av+1:txa:and #7:clc:adc mult,y:sta av;av=320*zeile+8192
  73. 3038 lda xcoord:and #$f8:adc av:sta av:lda av+1:adc xcoord+1:sta av+1;x-offset
  74. 3040 lda xcoord:and #7:tax:lda grbit,x;bitposition berechnen
  75. 3042 ldy #0:ora (av),y:sta (av),y;punkt in grafik setzen
  76. 3044 rts;fertig mit turbo-plot
  77.