COMMODORE plus/4 ROM-LISTING

Aus C64-Wiki
Zur Navigation springenZur Suche springen


COMMODORE plus/4 ROM-LISTING
Cover/Buchdeckel
Sprache deutsch
Autor(en)
Verlag Commodore
Jahr 1984
ISBN ISBN 3-89133-006-5
Neupreis 59.- DM
Datenträger
Seitenzahl 269
letzte Auflage 1.
Genre Programmierung, Profis
Information Artikel-Nr.: 584000
Commodore Sachbuchreihe




Buchrückseite[Bearbeiten | Quelltext bearbeiten]

Das Listing des Commodore plus/4 ROM-Inhaltes stellt für alle Assemblerprogrammierer eine unerläßliche Informationsquelle dar. Auf über 260 Seiten findet sich das lückenlose Assembler-Quell-Code-Listing, daneben ist jede Codesequenz in deutscher Sprache kommentiert.

Mit dieser Information wird es möglich, die umfangreichen und ausgeklügelten Möglichkeiten des Commodore plus/4 in eigenen Assemblerprogrammen zu verwenden, ohne das Rad ständig neu erfinden zu müssen. Programmierer, die mit dem C-64 oder der 3xxx/4xxx/8xxx-Serie vertraut sind, können sich schnell einen Überblick über Unterschiede und Gemeinsamkeiten der jeweiligen ROM-Inhalte verschaffen und so mit minimalem Aufwand ihre vorhandenen Programme umstellen.

Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]

  1. Commodore 16, 116, plus/4 Speicherbelegung (Systemadressen)
  2. ROM-Listing von 32768 bis 65534

Leseprobe[Bearbeiten | Quelltext bearbeiten]

(Seite 192; Tastaturabfrage)

56081  ;---------------------------- TASTATURABFRAGE
56081
56081 a56081  lda #0
56083         sta a1347         ; shflg: shift flag
56086         ldy #64
56088         sty *a198         ; offset in kode-tabelle 1
56090         jsr a56176        ; ---> dekoder abfragen
56093         tax
56094         cpx #255          ; taste gedrückt?
56096         bne a56101        ; ja: ->
56098         jmp a56321
56101
56101 a56101  ldy #0            ; offset
56103         lda #l,a57382     ; adresse der kodetabelle 1
56105         sta *a236         ; in zeiger bringen
56107         lda #h,a57382
56109         sta *a237
56111         lda #%11111110    ; für dekoder—einganq
56113 a56113  ldx  #8           ; bitzähler  
56115         pha
56116 a56116  pla
56117         pha
56118         jsr a56176        ; --> dekoder abfragen
56121         sta *a238         ; ergebnis merken
56123         pla
56124         pha
56125         jsr a56176        ; --> dekoder nochmal abfragen
56128         cmp *a238         ; gleiches ergebnis?
56130         bne a56116        ; nein: abfrage wiederholen ->
56132 a56132  lsr a             ; bit ins carry schieben
56133         bcs a56157        ; bit gesetzt ->
56135         pha               ; a retten
56136         lda (a236),y      ; kode aus tabelle
56138         cmp #5            ; qrößer als 4?
56140         bcs a56154        ; ja: ->
56142         cmp #3            ; stop-kode?
56144         beq a56154        ; ja: ->
56146         ora a1347         ; kode ins shift-flag odern
56149         sta a1347         ; 1 shift, 2 C=, 4 ctrl
56152         bpl a56156
56154
56154 a56154  sty *a193         ; offset: in kodetabelle
56156 a56156  pla               ; a wiederherstellen
56157 a56157  iny               ; offset erhöhen
56158         cpy #65
56160         bcs a56170        ; alle tasten abgefragt:  ->
56162         dex               ; bitzähler dekrementieren
56163         bne a56132        ; wenn nicht 0, nächstes bit ->
56165         sec
56166         pla               ; dekoder—einqang
56167         rol a             ; nach links rotieren
56168         bne a56113        ; immer ->
56170
56170 a56170  pla               ; stack korrigieren
56171         lda *a198         ; offset in kodetabelle
56173         jmp (a1349)       ; ---> keyloq (a56186)

Meinung[Bearbeiten | Quelltext bearbeiten]

derzimmerer: "Nichts für Anfänger und leider doch nicht so vollständig, wie der Klappentext es vermuten würde. So fehlen z.B. die TED-Register."

Werner: "Das gesamte ROM-Listing liegt in unüblicher, dezimaler Schreibweise vor. Dadurch wird es schwieriger, zumindest bei den Absolutadressen, das ROM-Listing zu verstehen."

Weblinks[Bearbeiten | Quelltext bearbeiten]