Endlich: Hypra-Ass mit Datasette

Bisher war es nicht möglich, ein Maschinenprogramm direkt auf Kassette zu assemblieren. Mit diesem kleinen Programmzusatz wird das anders.

Für die Speicherung des Objektcodes auf Kassette ist der Pseudobefehl ».ob "file, p, w"« nur sehr eingeschränkt nutzbar. Man könnte durch Ändern der Geräte- und Sekundäradresse in der entsprechenden Routine den Objektcode als Datei aufzeichnen, was aber

Die dem ».ob«-Befehl zugeordnete Routine wurde deshalb von mir umgeschrieben. Den Pseudobefehl ».ob« habe ich, um eventuelle Unklarheiten zu vermeiden, gelöscht.

Betroffene Speicherstellen/-bereiche des Hypra-Ass

Die Liste der Pseudobefehle ist ab $149c, die dazugehörigen Adressen (-1) ab $14c8 abgelegt. Die ».ob«-Befehlsroutine liegt entsprechend von $1194 bis $llbc.

Der Rücksprung in den Anfangszustand nach erfolgter Assemblierung erfolgt mit dem Befehl »JMP $ aad7« ab Adresse $ 15d3.

Der Speicherbereich, in dem der Objektcode nach erfolgter Assemblierung abgelegt wird, ist folgendermaßen definiert:
Anfangsadresse in $0970 und $0971
Endadresse +1 in $00fb und $00fc

Programm

Das Programm wurde mit Hypra-Ass erstellt und dürfte sich wegen seiner Kürze und durch die angefügten Bemerkungen selbst erklären. Die verwendeten Kernel-Routinen sind zum Beispiel im Commodore Programmierhandbuch (Sachbuchreihe 1) ausreichend erläutert.

Eingabehilfe

Bei der Benutzung des so modifizierten Assemblers erscheint nach der normalen Ausgabemeldung die Aufforderung »press record & play on tape«. Nach Drücken dieser Tasten wird der assemblierte Objektcode unter dem Namen »LI-STE$« direkt auf Band und zwar in den (mit .ba) vorgewählten Bereich gespeichert.

Ein Zurückladen dieses Objektcodes in den Computer kann durch einfaches LOAD beziehungsweise LOAD »Liste$« erfolgen. Soll der Objektcode nicht gespeichert werden, ist es möglich, durch Drücken der RUN/STOP-Taste den Assembler wieder in den Anfangszustand zurückzuversetzen.

(Edgar Bäumler/ah)
100 -;ÈYPRA-ASS/ÃASS.
110 -;
120 -;
130 -;1. ÁENDERN DES ÓPRUNGVEKTORS
140 -;
150 -          .BA$15D3
160 -          JMP $1194
170 -;
180 -;2. ÂEFEHL .OB LOESCHEN
190 -;
200 -          .BA$14A6
210 -          .BY0,0
220 -;
230 -;3. ÓÁÖÅ ROUTINE FUER ËASSETTEN
240 -;
250 -          .BA$1194       ;ÓTART
260 -;
270 -          .EQCHROUT=$FFD2
280 -          .EQSETLFS=$FFBA
290 -          .EQSETNAM=$FFBD
300 -          .EQSAVE=$FFD8
310 -          .EQNAMLEN=6
320 -;
330 -          LDA #$0D       ;'ÃÒ'
340 -          JSR CHROUT
350 -          LDA #1         ;ÄATEIÎR
360 -          TAX            ;ÇÁ
370 -          TAY            ;ÓÁ
380 -          JSR SETLFS
390 -          LDA #NAMLEN
400 -          LDX #<(NAME)
410 -          LDY #>(NAME)
420 -          JSR SETNAM
430 -          LDA $0970      ;ÁNF.ÁDR
440 -          STA $9E
450 -          LDA $0971
460 -          STA $9F
470 -          LDX $FB        ;ÅND.ÁDR
480 -          LDY $FC
490 -          LDA #$9E
500 -          JSR SAVE
510 -          RTS
520 -NAME      .TX"LISTE$"
530 -;
540 -;4. ÁBSPEICHERN DES MODIFIZIERTEN
550 -;   ÁSSEMBLERS UNTER DEM ÎAMEN
560 -;   'HYPRA-ASS/CASS.'
570 -;
580 -          .BA$C000
590 -          .EQLGTIT=15
600 -          .EQENDE=$1FD8
610 -;
620 -          LDA #1
630 -          TAX
640 -          TAY
650 -          JSR SETLFS
660 -          LDA #LGTIT
670 -          LDX #<(TITEL)
680 -          LDY #>(TITEL)
690 -          JSR SETNAM
700 -          LDA #0
710 -          STA $A8
720 -          LDA #8
730 -          STA $A9
740 -          LDA #$A8
750 -          LDX #<(ENDE)
760 -          LDY #>(ENDE)
770 -          JSR SAVE
780 -          RTS
790 -TITEL     .TX"HYPRA-ASS/CASS."
800 -;
810 -;NACH DURCHGEFUEHRTER
820 -;ÁSSEMBLIERUNG UND DEM ÅRSCHEINEN
830 -;DER ÍELDUNG
840 -;'PRESS RECORD & PLAY ON TAPE'
850 -;DRUECKEN ÓIE DIE 'ÓÔÏÐ'-ÔASTE.
860 -;
870 -;ÓIE KOENNEN DANN MIT 'ÓÙÓ 49152'
880 -;DEN KORRIGIERTEN ÁSSEMBLER AUF
890 -;ËASSETTE ABSPEICHERN
Assembler-Listing: Mit dieser Erweiterung kann jeder Datasette-Besitzer den »Hypra-Ass« vollausnutzen.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →