|
|
Line 1: |
Line 1: |
− | [http://translate.google.com/translate?hl=de&ie=UTF-8&sl=de&tl=en&u=http://c64mags.untergrund.net/wiki/index.php%3Ftitle%3DDT_85_15&prev=_t English Translation]
| |
− | <pre>
| |
− | Hallo liebe DT-Leser,
| |
− | _______________________
| |
| | | |
− | es ist mal wieder soweit, ein neues Pro-
| |
− | gramm erwartet Euch in der DT Ass-Ru-
| |
− | brik. Wie beim ersten Teil geht es auch
| |
− | heute noch einmal um das Thema Lauf-
| |
− | schrift. Nur unterscheidet sich die
| |
− | Technik, die ich diesmal verwendet habe,
| |
− | von der aus dem ersten Teil nicht uner-
| |
− | heblich. Heute will ich Euch mal zeigen,
| |
− | wie man eine Laufschrift in einem Sprite
| |
− | verarbeiten kann. Das Thema lautet somit
| |
− |
| |
− | "SPRITE-SCROLLER"
| |
− | "SPRITE-SCROLLER"
| |
− | </pre>
| |
− | <pre>
| |
− | Die Technik, die dahinter steckt, ist
| |
− | eigentlich trivial, vorausgesetzt, man
| |
− | weiß, wie ein Sprite aufgebaut ist und
| |
− | wie man Sprites anzeigen und manipulie-
| |
− | ren kann. Eingefleischte Basicprogram-
| |
− | mierer werden hier keine Schwierigkeiten
| |
− | haben.
| |
− |
| |
− | Dieser Effekt lässt sich jedoch nur ra-
| |
− | tional in Maschinensprache realisieren,
| |
− | Basic ist dafür einfach zu langsam. Auch
| |
− | diesmal läuft die Laufschrift im IRQ ab.
| |
− |
| |
− | Es ist ratsam, sich das Programm vorher
| |
− | mal anzusehen, damit Ihr auch wisst, wo-
| |
− | von ich hier rede. ;)
| |
− | </pre>
| |
− | <pre>
| |
− | Gut, die Laufschrift läuft in einem
| |
− | Sprite bzw. "durch" mehrere Sprites. Es
| |
− | ist also nicht so, dass jedes Sprite ei-
| |
− | nen Buchstaben darstellt und der Lauf-
| |
− | schrift-Text einfach durch diese durch-
| |
− | gerollt wird (das ist eine weitere Mög-
| |
− | lichkeit für eine Laufschrift). Hier be-
| |
− | nutzen wir einen normalen 1x1-Zeichen-
| |
− | satz, in diesem Fall den des C64, den
| |
− | ROM-Zeichensatz, den wir dann von rechts
| |
− | nach links durch 8 Sprites durchrollen
| |
− | lassen.
| |
− |
| |
− | Ein Sprite besteht aus 64 Bytes. Füllt
| |
− | man ein Sprite mit z.B. dem Wert 255, so
| |
− | geschieht das von links nach rechts (und
| |
− | </pre>
| |
− | <pre>
| |
− | nicht wie im Hires-Modus von oben nach
| |
− | unten). Um nun z.B. den Buchstaben "A"
| |
− | (Wert $01) in ein Sprite zu übertragen,
| |
− | so geschieht dies folgendermaßen:
| |
− |
| |
− | Sprite liegt ab: $2000
| |
− | Buchstabe A ab: $3000 (nur Beispiele)
| |
− |
| |
− | ldy #$00
| |
− | ldx #$00
| |
− | a1 lda $3000,y
| |
− | sta $2000,x
| |
− | inx
| |
− | inx
| |
− | inx
| |
− | iny
| |
− | </pre>
| |
− | <pre>
| |
− | cpy #$08
| |
− | bne a1
| |
− | rts
| |
− |
| |
− | Hier seht Ihr, dass man jedes Byte des
| |
− | Buchstabens in jede dritte Speicherstel-
| |
− | le des Sprites schreiben muss, um den
| |
− | Buchstaben ordentlich im Sprite darzu-
| |
− | stellen. Im normalen Modus sind nur 8
| |
− | Sprites erlaubt, also verwenden wir auch
| |
− | alle für die Laufschrift.
| |
− |
| |
− | In jedes Sprite passen jeweils 3 Buch-
| |
− | staben.
| |
− | Diese befinden sich im oberen Bereich
| |
− | der Sprites, den ersten 24 Bytes.
| |
− | </pre>
| |
− | <pre>
| |
− | Sprite1 Sprite2 Sprite3 Sprite4 Sprite5
| |
− | ABC DEF GHI JKL MNO
| |
− | Sprite6 Sprite7 Sprite8
| |
− | PQR STU VWX
| |
− |
| |
− | Der Laufschrifttext würde dann hier so
| |
− | aussehen:
| |
− |
| |
− | ABCDEFGHIJKLMNOPQRSTUVWX
| |
− |
| |
− | Die Laufschrift kann somit nur aus max.
| |
− | 24 sichtbaren Zeichen bestehen. Der Text
| |
− | an sich kann so lang sein wie man ihn
| |
− | braucht.
| |
− |
| |
− | Dazu später mehr im Code.
| |
− | </pre>
| |
− | <pre>
| |
− | Das Prinzip dahinter sollte jetzt ei-
| |
− | gentlich klar sein, zumindest wie die
| |
− | Zeichen in den Sprites erscheinen sol-
| |
− | len.
| |
− |
| |
− | Die Technik, die dahinter steckt, ist
| |
− | simpel:
| |
− | Die Zeichen bzw. die Bits der Zeichen
| |
− | werden mit dem Befehl ASL von rechts
| |
− | nach links einfach durch die Sprites ge-
| |
− | rollt. Dabei muss auf das Carry-Flag ge-
| |
− | achtet werden, damit die Bits auch or-
| |
− | dentlich transportiert werden. Dazu nun
| |
− | im Programm mehr, dabei werde ich jedoch
| |
− | nur im Kern des Programms etwas ausführ-
| |
− | licher:
| |
− | </pre>
| |
− | <pre>
| |
− | *= $0810
| |
− |
| |
− |
| |
− | lda #1
| |
− | sta $d011
| |
− | lda #0
| |
− | sta $d020
| |
− | sta $d021
| |
− | lda #15
| |
− | sta $0286
| |
− | lda #$93
| |
− | jsr $ffd2
| |
− | lda #26
| |
− | sta $d018
| |
− | lda #$08
| |
− | jsr $ffd2
| |
− | </pre>
| |
− | <pre>
| |
− | > Bildschirmeinstellungen.
| |
− |
| |
− | ldy #$00
| |
− | a1 lda screen,y
| |
− | sta $0400,y
| |
− | lda screen+256,y
| |
− | sta $0500,y
| |
− | lda screen+512,y
| |
− | sta $0600,y
| |
− | lda screen+768,y
| |
− | sta $0700,y
| |
− | iny
| |
− | bne a1
| |
− |
| |
− | > Der Bildschirm wird mit den Daten aus
| |
− | > dem Label "Screen" gefüllt.
| |
− | </pre>
| |
− | <pre>
| |
− | ldy #$00
| |
− | lda #11
| |
− | a2 sta $d800+(5*40)+9,y
| |
− | sta $d800+(6*40)+9,y
| |
− | sta $d800+(7*40)+9,y
| |
− | iny
| |
− | cpy #$16
| |
− | bne a2
| |
− |
| |
− | > Das "Digital Talk"-Logo wird auf dem
| |
− | > Bildschirm positioniert.
| |
− |
| |
− | ldy #$00
| |
− | lda #$ff
| |
− | a3 sta $2ff8,y
| |
− | iny
| |
− | </pre>
| |
− | <pre>
| |
− | cpy #$08
| |
− | bne a3
| |
− |
| |
− | > Der Zeichensatz für das Logo steht ab
| |
− | > $2800 (s.u.). Hier wird ein Zeichen
| |
− | > gefüllt und zwar das letzte Zeichen
| |
− | > des Zeichensatzes.
| |
− |
| |
− | sei
| |
− | lda #$33
| |
− | sta $01
| |
− | ldy #$00
| |
− | a4 lda $d000,y
| |
− | sta $3000,y
| |
− | lda $d100,y
| |
− | sta $3100,y
| |
− | </pre>
| |
− | <pre>
| |
− | lda $d200,y
| |
− | sta $3200,y
| |
− | lda $d300,y
| |
− | sta $3300,y
| |
− | lda #0
| |
− | sta $2000,y
| |
− | sta $2100,y
| |
− | iny
| |
− | bne a4
| |
− | lda #$37
| |
− | sta $01
| |
− | cli
| |
− |
| |
− | > Der ROM-Zeichensatz respektive ein
| |
− | > Teil davon wird nach $3000 kopiert.
| |
− | > Dieser wird für die Laufschrift
| |
− | </pre>
| |
− | <pre>
| |
− | > benötigt. Die Sprites stehen ab $2000,
| |
− | > dieser Bereich wird mit #0 gefüllt.
| |
− |
| |
− | lda #$00
| |
− | sta $57
| |
− | sta $58
| |
− | sta $5a
| |
− | sta $5b
| |
− | sta $5c
| |
− |
| |
− | > Speicherstellen und Zähler werden
| |
− | > freigemacht.
| |
− |
| |
− |
| |
− | lda #255
| |
− | sta $d000+21
| |
− | </pre>
| |
− | <pre>
| |
− | ldy #$00
| |
− | ldx #128
| |
− | a5 txa
| |
− | sta 2040,y
| |
− | lda #15
| |
− | sta $d000+39,y
| |
− | inx
| |
− | iny
| |
− | cpy #$08
| |
− | bne a5
| |
− |
| |
− | ldx #87
| |
− | stx $d000
| |
− | ldx #87+(1*24)
| |
− | stx $d002
| |
− | ldx #87+(2*24)
| |
− | </pre>
| |
− | <pre>
| |
− | stx $d004
| |
− | ldx #87+(3*24)
| |
− | stx $d006
| |
− | ldx #87+(4*24)
| |
− | stx $d008
| |
− | ldx #87+(5*24)
| |
− | stx $d00a
| |
− | ldx #87+(6*24)
| |
− | stx $d00c
| |
− | ldx #87+(7*24)
| |
− | stx $d00e
| |
− |
| |
− | > Bis hier werden die Sprites
| |
− | > eingeschaltet und auf dem Bildschirm
| |
− | > positioniert. Auch wird die Farbe auf
| |
− | > Hellgrau gesetzt ($0f = #15).
| |
− | </pre>
| |
− | <pre>
| |
− | jsr irq
| |
− |
| |
− | jmp *
| |
− |
| |
− | > Der IRQ wird angesprungen, danach wird
| |
− | > mit JMP * das Programm quasi
| |
− | > angehalten. Alles, was man dann sieht,
| |
− | > läuft ausschließlich im IRQ ab.
| |
− |
| |
− | irq sei
| |
− | lda #$81
| |
− | sta $d01a
| |
− | lda #$7f
| |
− | sta $dc0d
| |
− | lda #$00
| |
− | sta $d012
| |
− | </pre>
| |
− | <pre>
| |
− | ldx #<irq1
| |
− | ldy #>irq1
| |
− | stx $0314
| |
− | sty $0315
| |
− | cli
| |
− | lda #27
| |
− | sta $d011
| |
− | rts
| |
− |
| |
− | irq1 asl $d019
| |
− |
| |
− | > Hier die bekannten Einstellungen für
| |
− | > den IRQ. Ich hoffe, da nichts mehr
| |
− | > erklären zu müssen.
| |
− |
| |
− | jsr sprmove
| |
− | </pre>
| |
− | <pre>
| |
− | > Hier wird für die vertikale Bewegung
| |
− | > des Sprite-Scrollers eine kleine
| |
− | > Routine angesprungen, die für die
| |
− | > nette Hüpfbewegung des Scrollers
| |
− | > verantwortlich ist. Dieser Sprite-
| |
− | > Sinus wurde mir von dflame zur
| |
− | > Verfügung gestellt. Herzlichen Dank
| |
− | > nochmal!! :)
| |
− |
| |
− | irqq lda $58
| |
− | bne irq2
| |
− |
| |
− | ldy #$30
| |
− | ldx #$00
| |
− | stx $fa
| |
− | sty $fb
| |
− | </pre>
| |
− | <pre>
| |
− | inc $58
| |
− | lda #$00
| |
− | sta $02
| |
− | irq02 ldy $57
| |
− | lda txt,y
| |
− | bne irq01
| |
− | lda #$00
| |
− | sta $57
| |
− | jmp irq02
| |
− | irq01 inc $57
| |
− | asl
| |
− | rol $02
| |
− | asl
| |
− | rol $02
| |
− | asl
| |
− | rol $02
| |
− | </pre>
| |
− | <pre>
| |
− | clc
| |
− | adc $fa
| |
− | sta $fa
| |
− | lda $02
| |
− | adc $fb
| |
− | sta $fb
| |
− |
| |
− | ldy #$00
| |
− | irq0 lda ($fa),y
| |
− | sta $02c0,y
| |
− | iny
| |
− | cpy #$08
| |
− | bne irq0
| |
− |
| |
− | > Jetzt gehts ins Eingemachte. Hier
| |
− | > werden die Zeichen berechnet und
| |
− | </pre>
| |
− | <pre>
| |
− | > zwischengespeichert. Der Text der
| |
− | > Laufschrift steht ab Label "txt".
| |
− | > Von dort wird ein Zeichen gelesen und
| |
− | > danach berechnet, wo dieses Zeichen
| |
− | > sich in unserem zuvor kopierten ROM-
| |
− | > Zeichensatz befindet. Dafür muss man
| |
− | > den Wert des Zeichens * 8 nehmen und
| |
− | > den Wert zu $3000 rechnen ($fa/$fb).
| |
− | > Am Ende wird das aktuelle Zeichen nach
| |
− | > $02c0-$02c7 geschrieben. Dort kann es
| |
− | > dann gleich verändert werden. Diese
| |
− | > Zwischenspeicherung ist notwendig,
| |
− | > weil wir ja sonst nach jedem Zeichen
| |
− | > den ROM-Zeichensatz neu kopieren
| |
− | > müssten, weil jedes Zeichen durch den
| |
− | > ASL-Befehl gleich geleert wird.
| |
− | </pre>
| |
− | <pre>
| |
− | > Der Wert in $5a wird übrigens von 0
| |
− | > auf 1 gestellt, weil ja nicht nach
| |
− | > jedem Durchgang ein neues Zeichen
| |
− | > berechnet werden darf, sondern erst,
| |
− | > wenn alle 8 Bits eines Zeichens
| |
− | > abgearbeitet wurden.
| |
− |
| |
− | irq2 ldy #$00
| |
− | ldx #$00
| |
− | irq4 asl $02c0,x
| |
− | bcc irq3
| |
− | lda #$01
| |
− | clc
| |
− | adc 8642,y
| |
− | sta 8642,y
| |
− | irq3 iny
| |
− | </pre>
| |
− | <pre>
| |
− | iny
| |
− | iny
| |
− | inx
| |
− | cpx #$08
| |
− | bne irq4
| |
− |
| |
− | > Nun werden die ersten 8 Bits des
| |
− | > aktuellen Zeichens per ASL-Befehl in
| |
− | > die Sprites übertragen. Genauer gesagt
| |
− | > in Sprite Nr. 8, das ganz rechts
| |
− | > steht. Dieses Sprite steht ab Adresse
| |
− | > 8640 (Hex $21c0, ich habe ausnahms-
| |
− | > weise mal mit dezimalen Adressen
| |
− | > gearbeitet). In Adresse 8642 beginnt
| |
− | > somit das erste Zeichen. Dort werden
| |
− | > die Bits einfach hinzuaddiert.
| |
− | </pre>
| |
− | <pre>
| |
− | inc $5a
| |
− | lda $5a
| |
− | cmp #$08
| |
− | bne irq5
| |
− | lda #$00
| |
− | sta $58
| |
− | sta $5a
| |
− |
| |
− |
| |
− | > $5a dient als Zähler für die Anzahl
| |
− | > der Durchgänge für ein Zeichen. Steht
| |
− | > dieser auf 8, so wurden alle 8 Bits
| |
− | > des aktuellen Zeichens verarbeitet und
| |
− | > beim nächsten Durchgang wird das
| |
− | > nächste Zeichen aus dem Laufschrift-
| |
− | > text genommen.
| |
− | </pre>
| |
− | <pre>
| |
− | > Was nun kommt (von Label "irq5" und
| |
− | > "irq27"), sollte klar sein. Jede
| |
− | > Stelle in den Sprites, von links nach
| |
− | > rechts gesehen, in die ein Zeichen
| |
− | > passt, wird per ASL-Befehl um ein Bit
| |
− | > nach links gerückt. Dabei wird jeweils
| |
− | > mit dem BCC-Befehl auf ein belegtes
| |
− | > Bit reagiert und dieses auf die Stelle
| |
− | > davor hinzuaddiert. Dies bewirkt am
| |
− | > Ende ein Durchrollen der jeweiligen
| |
− | > Bits und somit einen weichen Scroller.
| |
− |
| |
− | irq5 ldy #$00
| |
− | ldx #$00
| |
− |
| |
− | irq6 asl 8192,x
| |
− | </pre>
| |
− | <pre>
| |
− | > 8192-8199 wird NUR nach links
| |
− | > geschoben. Hierbei ist es nicht
| |
− | > notwendig, auf die Bits zu achten,
| |
− | > weil hier der Scroller eh zu Ende ist
| |
− | > und die Bits einfach links
| |
− | > verschwinden können.
| |
− |
| |
− | asl 8193,x
| |
− | bcc irq7
| |
− | lda #$01
| |
− | clc
| |
− | adc 8192,x
| |
− | sta 8192,x
| |
− |
| |
− | irq7 asl 8194,x
| |
− | bcc irq8
| |
− | </pre>
| |
− | <pre>
| |
− | lda #$01
| |
− | clc
| |
− | adc 8193,x
| |
− | sta 8193,x
| |
− |
| |
− | irq8 asl 8256,x
| |
− | bcc irq9
| |
− | lda #$01
| |
− | clc
| |
− | adc 8194,x
| |
− | sta 8194,x
| |
− |
| |
− | irq9 asl 8257,x
| |
− | bcc irq10
| |
− | lda #$01
| |
− | clc
| |
− | </pre>
| |
− | <pre>
| |
− | adc 8256,x
| |
− | sta 8256,x
| |
− |
| |
− | irq10 asl 8258,x
| |
− | bcc irq11
| |
− | lda #$01
| |
− | clc
| |
− | adc 8257,x
| |
− | sta 8257,x
| |
− |
| |
− | irq11 asl 8320,x
| |
− | bcc irq12
| |
− | lda #$01
| |
− | clc
| |
− | adc 8258,x
| |
− | sta 8258,x
| |
− | </pre>
| |
− | <pre>
| |
− | irq12 asl 8321,x
| |
− | bcc irq13
| |
− | lda #$01
| |
− | clc
| |
− | adc 8320,x
| |
− | sta 8320,x
| |
− |
| |
− | irq13 asl 8322,x
| |
− | bcc irq14
| |
− | lda #$01
| |
− | clc
| |
− | adc 8321,x
| |
− | sta 8321,x
| |
− |
| |
− | irq14 asl 8384,x
| |
− | bcc irq15
| |
− | </pre>
| |
− | <pre>
| |
− | lda #$01
| |
− | clc
| |
− | adc 8322,x
| |
− | sta 8322,x
| |
− |
| |
− | irq15 asl 8385,x
| |
− | bcc irq16
| |
− | lda #$01
| |
− | clc
| |
− | adc 8384,x
| |
− | sta 8384,x
| |
− |
| |
− | irq16 asl 8386,x
| |
− | bcc irq17
| |
− | lda #$01
| |
− | clc
| |
− | </pre>
| |
− | <pre>
| |
− | adc 8385,x
| |
− | sta 8385,x
| |
− |
| |
− | irq17 asl 8448,x
| |
− | bcc irq18
| |
− | lda #$01
| |
− | clc
| |
− | adc 8386,x
| |
− | sta 8386,x
| |
− |
| |
− | irq18 asl 8449,x
| |
− | bcc irq188
| |
− | lda #$01
| |
− | clc
| |
− | adc 8448,x
| |
− | sta 8448,x
| |
− | </pre>
| |
− | <pre>
| |
− | irq188 asl 8450,x
| |
− | bcc irq19
| |
− | lda #$01
| |
− | clc
| |
− | adc 8449,x
| |
− | sta 8449,x
| |
− |
| |
− | irq19 asl 8512,x
| |
− | bcc irq20
| |
− | lda #$01
| |
− | clc
| |
− | adc 8450,x
| |
− | sta 8450,x
| |
− |
| |
− | irq20 asl 8513,x
| |
− | bcc irq21
| |
− | </pre>
| |
− | <pre>
| |
− | lda #$01
| |
− | clc
| |
− | adc 8512,x
| |
− | sta 8512,x
| |
− |
| |
− | irq21 asl 8514,x
| |
− | bcc irq22
| |
− | lda #$01
| |
− | clc
| |
− | adc 8513,x
| |
− | sta 8513,x
| |
− |
| |
− | irq22 asl 8576,x
| |
− | bcc irq23
| |
− | lda #$01
| |
− | clc
| |
− | </pre>
| |
− | <pre>
| |
− | adc 8514,x
| |
− | sta 8514,x
| |
− |
| |
− | irq23 asl 8577,x
| |
− | bcc irq24
| |
− | lda #$01
| |
− | clc
| |
− | adc 8576,x
| |
− | sta 8576,x
| |
− |
| |
− | irq24 asl 8578,x
| |
− | bcc irq255
| |
− | lda #$01
| |
− | clc
| |
− | adc 8577,x
| |
− | sta 8577,x
| |
− | </pre>
| |
− | <pre>
| |
− | irq255 asl 8640,x
| |
− | bcc irq25
| |
− | lda #$01
| |
− | clc
| |
− | adc 8578,x
| |
− | sta 8578,x
| |
− |
| |
− | irq25 asl 8641,x
| |
− | bcc irq26
| |
− | lda #$01
| |
− | clc
| |
− | adc 8640,x
| |
− | sta 8640,x
| |
− |
| |
− | irq26 asl 8642,x
| |
− | bcc irq27
| |
− | </pre>
| |
− | <pre>
| |
− | lda #$01
| |
− | clc
| |
− | adc 8641,x
| |
− | sta 8641,x
| |
− |
| |
− | irq27 inx
| |
− | inx
| |
− | inx
| |
− | iny
| |
− | cpy #$08
| |
− | beq irqend
| |
− | jmp irq6
| |
− |
| |
− |
| |
− | > Diese ganze Prozedur muss natürlich
| |
− | > 8 mal durchlaufen werden, für jedes
| |
− | </pre>
| |
− | <pre>
| |
− | > Byte eines Zeichens, das aus 8 Bytes
| |
− | > besteht.
| |
− |
| |
− | irqend jmp $ea31
| |
− |
| |
− | > Ende der Irq-Routine.
| |
− |
| |
− | <++++++++++++++++++++++++++++++++++++++>
| |
− |
| |
− | sprmove lda #$5c
| |
− | ldy #$00
| |
− | ldx #$00
| |
− | spr1 sta $d001,y
| |
− | iny
| |
− | iny
| |
− | inx
| |
− | </pre>
| |
− | <pre>
| |
− | cpx #$08
| |
− | bne spr1
| |
− | spr2 ldx #$9f
| |
− | lda sinus,x
| |
− | cmp #$3c
| |
− | bne spr3
| |
− | lda #$ff
| |
− | sta $d01b
| |
− | spr3 cmp #$80
| |
− | bne spr4
| |
− | lda #$00
| |
− | sta $d01b
| |
− | spr4 lda sinus,x
| |
− | clc
| |
− | adc #$05
| |
− | sta sprmove+1
| |
− | </pre>
| |
− | <pre>
| |
− | inc spr2+1
| |
− | rts
| |
− |
| |
− | > Dies ist die kleine Routine, die den
| |
− | > Scroller von oben nach unten "hüpfen"
| |
− | > lässt. Unter anderem sorgt diese
| |
− | > dafür, dass sich der Sprite-Scroller
| |
− | > abwechselnd hinter bzw. vor dem
| |
− | > Digital Talk-Logo befindet. Dies wird
| |
− | > in der Adresse $d01b kontrolliert.
| |
− |
| |
− | <-------------------------------------->
| |
− |
| |
− | txt .byte $03,$08,$09,$03,$0f,$20
| |
− | .byte $0f,$06,$20,$03,$09,$16
| |
− | .byte $09,$14,$01,$13,$20,$00
| |
− | </pre>
| |
− | <pre>
| |
− | > Hier steht der kurze Laufschrifttext.
| |
− | > Dieser kann hier nur max. 255 Zeichen
| |
− | > lang sein. Man kann das Programm
| |
− | > jedoch so modifizieren, dass der Text
| |
− | > auch länger sein kann. Vielleicht eine
| |
− | > kleine Aufgabe für Euch??? ;-)
| |
− |
| |
− | sinus .byte $46,$45,$45,$44,$44,$43
| |
− | .byte $42,$41,$40,$3f,$3e,$3d
| |
− | .byte $3d,$3c,$3c,$3c,$3c,$3d
| |
− | usw.
| |
− |
| |
− | > Hier stehen die Werte für die Sinus-
| |
− | > Routine.
| |
− |
| |
− | <-------------------------------------->
| |
− | </pre>
| |
− | <pre>
| |
− | logo .byte $01,$02,$03,$04,$05,$06
| |
− | .byte $03,$07,$08,$09,$0a,$03
| |
− | .byte $0b,$00,$0c,$0d,$0e,$0f
| |
− | usw.
| |
− |
| |
− | > Hier stehen die Werte für das Logo.
| |
− |
| |
− | <-------------------------------------->
| |
− | screen .byte $ff,$ff,$ff,$ff,$ff,$ff
| |
− | .byte $ff,$ff,$ff,$ff,$ff,$ff
| |
− | .byte $ff,$ff,$ff,$ff,$ff,$ff
| |
− | usw.
| |
− | > Hier stehen die Werte für den
| |
− | > Bildschirm.
| |
− |
| |
− | <-------------------------------------->
| |
− | </pre>
| |
− | <pre>
| |
− | *= $2800
| |
− |
| |
− | .byte $00,$00,$00,$00,$00,$00
| |
− | .byte $00,$00,$00,$7f,$7f,$7f
| |
− | .byte $7f,$7f,$7d,$7c,$00,$00
| |
− | usw.
| |
− |
| |
− | > Ab $2800 steht der Zeichensatz für das
| |
− | > Logo.
| |
− |
| |
− |
| |
− | Das war's dann soweit.
| |
− |
| |
− | Solltet Ihr Fragen, Wünsche oder Anre-
| |
− | gungen haben, dann schreibt doch einfach
| |
− | an die DT-Redaktion.
| |
− | </pre>
| |
− | <pre>
| |
− | Auch hoffe ich, dass auch dieser Ass-
| |
− | Kurs ein wenig interessant für Euch war.
| |
− |
| |
− | Dann bis zum nächsten Mal...
| |
− |
| |
− | Euer
| |
− |
| |
− | XXXXXXXXXXXXXXXXXX
| |
− | CHICO/CIVITAS
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | _
| |
− | </pre>
| |