|
|
|
28.03.2024 | Archiv # Recherche # Links # Kontakt # Gästebuch # Impressum | |
Index Login Die Anzeige des Archivs erfolgt grafisch. Ändern |
Kurs: GeoProgrammer (Teil 4)Im Kursteil 3 haben wir uns mit der Ausgabe von Grafikelementen beschäftigt. Nun geht es an die Ausgabe von Texten. Zunächst wird dem GeoAssembler in dem 1. Block mitgeteilt, welche Tabellen er zur Verarbeitung der Quelldatei benötigt. Das steht innerhalb von >.if< und >.endif<. Benötigt werden beim 1. Durchlauf >Pass1< des GeoAssmbler die Dateien >geosSym< und >geosMac<. Nun beginnt der eigentliche Quellcode des Programms. Über ProgStart wird dem Header die Startadresse übermittelt. Jetzt starten wir die Routine >iPutString< zur direkten Textausgabe. Es werden also Anweisungen erwartet, die direkt ausgeführt werden können. Als erstes wird der Curser auf die X/Y Position 10/10 gesetzt. Dann folgt der auszugebende Text. Der nächste Text soll an einer neuen Position erscheinen. Dazu wird über GOTOXY die neue Position eingestellt. Nun werden wir die Textausgabe ein wenig variieren. OUTLINEON und BOLDON geben nun die Outline- und Fettschrift vor. In dieser Stilart erscheint nun der nächste Text. Das CR bewirkt ein Return. Der Curser wird eine gedachte Zeile entsprechend der Zeichenhöhe, tiefer an der linken Seite gestellt. PLAINTEXT schaltet alle Stilarten wieder aus. Das entstandene Bild soll noch eine Weile erhalten bleiben. Deshalb wird eine Warteschleife aufgerufen, die zunächst vorbereitet und dann durch >jsr Schleife< aufgerufen wird. Hier nun der Quellcode: ; Demo Textausgabe aus 64er Sonderheft 28 "Alles über Geos", ; übersetzt von Hypra-Ass in GeoAssembler .if Pass1 ; dem Assembler mitteilen welche .include geosSym ; Dateien eingebunden werden .include geosMac ; müssen. .endif .psect ; Programmanfangsadresse ProgStart: ; Programmstart LoadW r0,#ClearScreen ; Zeiger auf Bildschirmlöschroutine jsr GraphicsString ; Bildschirm löschen -> ausführen jsr iPutString ; Textausgabe aufrufen .word 10 ; Cursor positionieren .byte 10 .byte "Hier bei 10/10 fängt es an..." ; Text ausgeben .byte GOTOXY ; Textcurser neu positionieren .word 100 .byte 100 .byte OUTLINEON ; Textausgabe auf Outline .byte BOLDON ; und Fett schalten. .byte "Der GUC GEOS-Kurs" ; Text ausgeben .byte CR ; Return .byte PLAINTEXT ; Normaltext einschalten .byte GOTOX ; Textcurser neu positionieren .word 100 .byte SHORTCUT ; Commodore Symbol ausgeben .byte REVON ; Reverse einschalten .byte "Test von Jürgen Heinisch." ; Text ausgeben .byte NULL ; Ende der Tabelle lda #30 ; Warteschleife vorbereiten ldx #00 ldy #00 jsr Schleife ; Warteschleife aufrufen jmp EnterDeskTop ; Zurück zum Desktop Schleife: dey ; Warteschleife bne Schleife dex bne Schleife sec sbc #01 bne Schleife rts ; Ende der Warteschleife ClearScreen: ; Bildschirm löschen .byte NEWPATTERN,2 ; Füllmuster bestimmen .byte MOVEPENTO ; Punktcursor auf X/Y .word 0 .byte 0 .byte RECTANGLETO ; Rechteck zeichnen bis X/Y .word 319 .byte 199 .byte NULL ; Ende der Tabelle Nun wollen wir noch einmal auf die Tabelle >ClearScreen< zu sprechen kommen. Mit NEWPATTERN wird eines der Füllmuster festgelegt. MOVEPENTO setzt den Pixelcursor auf die nachfolgende X/Y Koordinaten. RECTANGLETO zeichnet ein Rechteck mit dem Füllmuster zu der nachfolgenden Koordinate. In unserem Fall ist die obere linke und die untere rechte Ecke gewählt. Das bedeutet, daß der gesamte Bildschirm mit dem Füllmuster belegt wird. Die NULL kennzeichnet wieder das Ende der Tabelle. Der HEADER ist so eingestellt, daß die vorgestellten Programme unter GEOS 64 und GEOS 128, beliebiger Version, im 40 Zeichenmodus arbeiten. Will man unter GEOS 128 auch den 80 Zeichenmodus nutzen, so muß man das 40/80 Zeichen Flag von 0 auf 128 ($80) ändern. Siehe dazu Kursteil 2. In der Schleife werden ausschließlich reine Maschinensprachebefehle verwendet. Deshalb nun eine Kurzbeschreibung der Schleife.
- Jürgen Heinisch -
Kurzlink hierhin: http://geos-printarchiv.de/856 |
|
Letzte Änderung am 01.11.2019 |