C 64
Tips & Tricks

Super Hardcopy für den MPS 802

Ein fantastisches Hardcopy-Programm für den MPS 802. Es druckt genau das aus, was im Moment auf dem Bildschirm zu sehen ist – egal, ob es der Text-Bildschirm oder eine HiRes-Grafik ist.

Obwohl der MPS 802 in der Grundausstattung nicht grafikfähig ist, gibt es seit kurzer Zeit schon Hardcopy-Programme, die einen Grafikausdruck mit diesem Drucker ermöglichen. Viele jedoch sind entweder nur sehr beschränkt anwendbar oder aber teilweise fehlerhaft. Dieses Programm bietet Ihnen folgende Vorzüge:

  1. Es wird wirklich das aufs Papier gebracht, was sich zur Zeit des Drucks am Bildschirm befindet. Es ist hierbei egal, ob es sich um eine HiRes-Grafik handelt oder um den normalen Textbildschirm.
  2. Der Beginn des Bildschirmspeichers beziehungsweise des HiRes-Bit-Map wird in jedem Fall vom Programm selbst ermittelt. (Im Speicher befindliche Bilder müssen zuerst auf den Bildschirm gebracht werden.)
  3. Im Falle einer LowRes-Hardcopy kann durch einfaches Drücken der SHIFT- und COMMODORE-Taste gleichzeitig zwischen Großschrift/Grafik-Modus und Klein/Großschrift-Modus gewählt werden. (Natürlich vor dem Aufruf der Routine.)
  4. Alle möglichen Parameter gelten sowohl für eine Hardcopy des LowRes- als auch des HiRes-Bildschirms.
  5. Einen besonderen Leckerbissen bietet das Programm im Erstellen von 4mal so großen HiRes-Hardcopys, ohne daß sich die Proportion im Vergleich zum Bildschirm ändert. Eine normale Hardcopy dieser Art benötigt zirka 15 bis 45 Minuten.
  6. Ein weiterer Vorteil besteht im Verbinden mehrerer Hardcopybilder, was sowohl längs mit Hilfe des Tabulators geschieht als auch untereinander, da nach beendetem Ausdruck des ersten Bildes kein Zeilenvorschub getätigt wird.
  7. Die Invertierung des HiRes-Bildes kann oft von Vorteil sein (siehe Bild 1 und 2). Bei Invertierung des LowRes-Bildes ist jedoch Vorsicht geboten, da der Druckknopf und das Fahrband hierbei sehr in Mitleidenschaft gezogen werden.
  8. Durch ein spezielles Unterprogramm kann auch die HiRes-Bit-Map unter dem ROM gelesen werden, das heißt, daß die HiRes-Bit-Map in jedem Bereich außer zwischen $C000 und $DFFF liegen darf (also auch für die bekannten Befehlserweiterungen wie Simons Basic geeignet!), da sich in diesem Bereich das Programm und der VIC-Steuerchip befinden.
Gerasterte Drucker-Hardcopy eines Gesichts in Nahaufnahme, invertiert
Bild 1. Hardcopy: invertiert…
Gerasterte Drucker-Hardcopy eines Gesichts in Nahaufnahme, normal dargestellt
Bild 2. …oder normal

Programmbeschreibung

  1. Programmierung: Das Programm (Listing 1) ist in 6510 Maschinensprache geschrieben und auf Grund seiner Vielfältigkeit stark in Unterprogramme gegliedert. Im Prinzip besteht es aber aus drei großen Hauptabschnitten, nämlich der normalen Low- beziehungsweise HiRes-Hardcopy sowie der vierfach vergrößerten HiRes-Hardcopy, der wegen ihrer außergewöhnlichen Ausführung ein extra Programmabschnitt zugewiesen worden ist. Einzelheiten hierzu können aus dem kommentierten Assemblerlisting (Listing 2) entnommen werden, das wir Ihnen nicht vorenthalten möchten.
  2. Ausführungsdaten: Das Programm läuft erwartungsgemäß sehr schnell ab und benötigt für eine einfache HiRes-Hardcopy je nach Größe zwischen einer und fünf Minuten. Eine LowRes-Hardcopy dauert maximal eine Minute. Hingegen braucht der Drucker für eine vierfache HiRes-Hardcopy zwischen 5 und 45 Minuten, weil der Weg, den der Druckkopf zurücklegt, sich vervielfacht.
  3. Speicheraufteilung: Das als MSE-Listing abgedruckte Programm startet bei $C000 und endet bei $C332. Sollte dieser Bereich bei Ihnen belegt sein, so ändern Sie die Startadresse des Assemblerprogramms und assemblieren es neu.
  4. Syntax: SYS 49152, Größe, Invertierung, Tabulator
    Parameter: a) Größe: 1 = normal (9,5 x 6,2 cm – 320 x 200 einfache Nadelpunkte)
    2 = doppelt (19 x 12,4 cm – 320 x 200 vierfache Nadelpunkte)
    b) Invertierung: 0 = ohne Invertierung
    1 = mit Invertierung
    c) Tabulator: von 0 bis 40 wenn Größe = 1,
    fällt weg, wenn Größe = 2
  5. Verwendung: Das auf Diskette (oder Kassette) durch den MSE abgespeicherte Programm mit LOAD"HC MPS-802",8,1 laden, danach NEW zur Rückstellung der Zeiger eingeben. Sobald Sie das Programm gestartet haben, können Sie es jederzeit mit einem einfachen Druck auf die STOP-Taste unterbrechen, alle geöffneten Kanäle werden ordnungsgemäß wieder geschlossen.

Nun ist der letzte Zweifel über die Grafikfähigkeit des MPS-802 beseitigt. Viel Vergnügen mit Ihrem neuen Hardcopy-Programm!

(R. Sucher/og)
PROGRAMM : HC MPS-802     C000 C332
-----------------------------------
C000 : 20 28 C0 E0 03 B0 28 86   E4
C008 : FB 20 28 C0 E0 02 B0 1F   55
C010 : 86 FC A0 00 84 FD A4 FB   FF
C018 : C0 02 F0 16 20 28 C0 E0   E0
C020 : 29 B0 0C 86 FD 4C 32 C0   02
C028 : 18 20 FD AE 4C 9E B7 4C   D7
C030 : 48 B2 AD 02 DD 09 03 8D   CA
C038 : 02 DD 20 E7 FF A9 04 A2   D0
C040 : 04 A0 00 20 94 C0 A9 05   98
C048 : A2 04 A0 05 20 94 C0 A9   B2
C050 : 06 A2 04 A0 06 20 94 C0   F2
C058 : A2 06 20 C9 FF A9 15 20   20
C060 : D2 FF A9 0D 20 D2 FF 20   17
C068 : CC FF A9 00 85 FE 85 72   E9
C070 : AD 00 DD 49 FF 29 03 18   43
C078 : 6A 6A 6A 85 FF AD 11 D0   B6
C080 : 29 20 C9 20 D0 19 AD 18   EC
C088 : D0 29 08 0A 0A 05 FF 85   04
C090 : FF 4C A2 C0 20 BA FF A9   A1
C098 : 00 20 BD FF 4C C0 FF 4C   7B
C0A0 : 1E C1 A5 FB C9 02 F0 24   40
C0A8 : A9 00 85 71 20 E1 FF F0   D4
C0B0 : 18 20 92 C1 F0 06 20 EB   4D
C0B8 : C1 20 05 C2 20 27 C2 D0   0B
C0C0 : EB 20 39 C2 20 46 C2 D0   43
C0C8 : DF 4C 6B C1 A5 FF 48 A5   A7
C0D0 : FE 48 A9 00 85 71 20 E1   85
C0D8 : FF F0 40 20 92 C1 F0 09   70
C0E0 : 20 71 C2 20 EB C1 20 4D   55
C0E8 : C2 20 27 C2 D0 E8 20 39   24
C0F0 : C2 68 85 FE 68 85 FF A9   2D
C0F8 : 00 85 71 20 E1 FF F0 1B   33
C100 : 20 92 C1 F0 09 20 9C C2   81
C108 : 20 EB C1 20 4D C2 20 27   4C
C110 : C2 D0 E8 20 39 C2 20 46   2F
C118 : C2 D0 B1 4C 6B C1 AD 18   E4
C120 : D0 29 F0 4A 4A 05 FF 85   E2
C128 : FF A2 06 20 C9 FF A9 18   71
C130 : 20 D2 FF A9 0D 20 D2 FF   0B
C138 : 20 CC FF A2 04 20 C9 FF   7B
C140 : A2 19 20 E1 FF F0 24 20   0B
C148 : DF C2 A0 00 B1 FE 20 0F   62
C150 : C3 20 D2 FF C8 C0 28 D0   AD
C158 : F3 A9 0D 20 D2 FF 98 18   27
C160 : 65 FE 85 FE 90 02 E6 FF   3A
C168 : CA D0 D7 20 CC FF A2 06   F8
C170 : 20 C9 FF A9 24 20 D2 FF   38
C178 : A9 0D 20 D2 FF 20 CC FF   3E
C180 : A2 06 20 C3 FF A9 05 20   47
C188 : C3 FF A9 04 20 C3 FF 4C   EE
C190 : E7 FF 78 A9 34 85 01 A9   91
C198 : 00 AA 9D 34 03 E8 E0 08   E6
C1A0 : D0 F8 A9 80 85 02 A0 00   52
C1A8 : B1 FE A2 00 0A 90 0A 48   5F
C1B0 : BD 34 03 05 02 9D 34 03   CD
C1B8 : 68 E8 E0 08 D0 EE 46 02   6F
C1C0 : C8 C0 08 D0 E3 A9 37 85   78
C1C8 : 01 58 A5 FC F0 0F A2 00   10
C1D0 : BD 34 03 49 FF 9D 34 03   55
C1D8 : E8 E0 08 D0 F3 A9 00 AA   2E
C1E0 : DD 34 03 D0 05 E8 E0 08   DD
C1E8 : D0 F6 60 A2 05 20 C9 FF   18
C1F0 : A0 00 B9 34 03 20 D2 FF   02
C1F8 : C8 C0 08 D0 F5 A9 0D 20   5E
C200 : D2 FF 4C CC FF A2 04 20   E4
C208 : C9 FF 18 A5 FD 65 71 AA   B2
C210 : F0 08 A9 20 20 D2 FF CA   A1
C218 : D0 FA A9 FE 20 D2 FF A9   9B
C220 : 8D 20 D2 FF 4C CC FF 18   CD
C228 : A5 FE 69 08 85 FE 90 02   3E
C230 : E6 FF E6 71 A5 71 C9 28   5B
C238 : 60 A2 04 20 C9 FF A9 0D   4C
C240 : 20 D2 FF 4C CC FF E6 72   A0
C248 : A5 72 C9 19 60 A2 04 20   27
C250 : C9 FF A9 0E 20 D2 FF A5   29
C258 : 71 AA F0 08 A9 20 20 D2   1D
C260 : FF CA D0 FA A9 FE 20 D2   10
C268 : FF A9 8D 20 D2 FF 4C CC   9B
C270 : FF 20 D2 C2 A2 00 A9 C0   DF
C278 : 85 02 B9 34 03 18 0A 90   2D
C280 : 0A 48 A5 02 19 40 03 99   2B
C288 : 40 03 68 46 02 46 02 E8   59
C290 : E0 04 D0 E9 C8 C0 08 D0   38
C298 : DB 4C C4 C2 20 D2 C2 A2   0C
C2A0 : 00 A9 03 85 02 B9 34 03   AB
C2A8 : 18 4A 90 0A 48 A5 02 19   37
C2B0 : 40 03 99 40 03 68 06 02   70
C2B8 : 06 02 E8 E0 04 D0 E9 C8   15
C2C0 : C0 08 D0 DB A0 00 B9 40   A5
C2C8 : 03 99 34 03 C8 C0 08 D0   5A
C2D0 : F5 60 A9 00 AA 9D 40 03   FE
C2D8 : E8 E0 08 D0 F8 A8 60 A5   EE
C2E0 : FD F0 09 A8 A9 20 20 D2   6E
C2E8 : FF 88 D0 FA AD 18 D0 29   F0
C2F0 : 02 C9 02 D0 05 A9 11 20   94
C2F8 : D2 FF A5 FB C9 02 D0 05   AD
C300 : A9 0E 20 D2 FF A5 FC F0   16
C308 : 05 A9 12 20 D2 FF 60 29   6B
C310 : 7F 48 29 20 D0 0A 68 48   91
C318 : 29 40 D0 0C 68 09 40 60   A8
C320 : 68 48 29 40 D0 06 68 60   9E
C328 : 68 09 20 60 68 29 3F 09   08
C330 : 80 60                     84
Listing 1. »HC MPS-802«, die Super-Hardcopy geben Sie bitte mit dem MSE ein
10   -.li4,4,0
100  -;******************
110  -;* hardcopykoenig *
120  -;*  fuer mps-802  *
130  -;*    (c) 1985    *
140  -;*  ralph sucher  *
150  -;******************
1000 -.ba $c000
1005 -          jsr ctrl       ;parameterkontrolle - groesse
1010 -          cpx #$03       ;groesser 2 ?
1015 -          bcs illegal    ;illegal quantity
1020 -          stx $fb        ;groesse in $fb
1025 -          jsr ctrl
1030 -          cpx #$02       ;invers
1035 -          bcs illegal
1040 -          stx $fc        ;nach $fc
1045 -          ldy #$00       ;tab=0
1050 -          sty $fd
1055 -          ldy $fb
1060 -          cpy #$02       ;wenn groesse=2
1065 -          beq start
1070 -          jsr ctrl
1075 -          cpx #$29       ;tab. groesser 40 ?
1080 -          bcs illegal
1085 -          stx $fd        ;nach $fd
1090 -          jmp start
1095 -ctrl      clc
1100 -          jsr $aefd
1105 -          jmp $b79e
1110 -illegal   jmp $b248
1115 -start     lda $dd02
1120 -          ora #$03
1125 -          sta $dd02      ;bits auf ausgabe
1130 -          jsr $ffe7      ;close and clear all
1135 -          lda #$04
1140 -          ldx #$04
1145 -          ldy #$00
1150 -          jsr open       ;open 4,4,0
1155 -          lda #$05
1160 -          ldx #$04
1165 -          ldy #$05
1170 -          jsr open       ;open 5,4,5
1175 -          lda #$06
1180 -          ldx #$04
1185 -          ldy #$06
1190 -          jsr open       ;open 6,4,6
1195 -          ldx #$06
1200 -          jsr $ffc9
1205 -          lda #$15
1210 -          jsr $ffd2
1215 -          lda #$0d
1220 -          jsr $ffd2
1225 -          jsr $ffcc      ;print#6,chr$(21)
1230 -          lda #$00
1235 -          sta $fe        ;low-byte der startadresse
1240 -          sta $72
1245 -          lda $dd00
1250 -          eor #$ff
1255 -          and #$03
1260 -          clc
1265 -          ror
1270 -          ror
1275 -          ror
1280 -          sta $ff        ;hi-byte 1.teil
1285 -          lda $d011
1290 -          and #$20
1295 -          cmp #$20
1300 -          bne lores      ;hires on ?
1305 -          lda $d018
1310 -          and #$08
1315 -          asl
1320 -          asl
1325 -          ora $ff
1330 -          sta $ff        ;hi-byte 2.teil
1335 -          jmp hires
1340 -open      jsr $ffba
1345 -          lda #$00
1350 -          jsr $ffbd
1355 -          jmp $ffc0
1360 -lores     jmp lowres
1365 -hires     lda $fb        ;4-fach ?
1370 -          cmp #$02
1375 -          beq hires4
1380 -hires1    lda #$00       ;normaler hiresausdruck
1385 -          sta $71        ;zeichenzaehler (0-40)
1390 -new       jsr $ffe1      ;stop ?
1395 -          beq end1
1400 -          jsr himode     ;umformung der daten
1405 -          beq next
1410 -          jsr print5     ;print#5,a$ : einlesen
1415 -          jsr print1     ;print#4,chr$(254) : und drucken
1420 -next      jsr char       ;noch ein zeichen ?
1425 -          bne new
1430 -          jsr carrige    ;neue zeile
1435 -          jsr line
1440 -          bne hires1     ;noch eine zeile ?
1445 -end1      jmp close      ;close und end
1450 -hires4    lda $ff        ;4-fache hires-hardcopy
1455 -          pha            ;rettung hi-byte
1460 -          lda $fe
1465 -          pha            ;und low-byte
1470 -          lda #$00       ;zeichenzaehler (0-40)
1475 -          sta $71
1480 -line1     jsr $ffe1      ;stop ?
1485 -          beq end4
1490 -          jsr himode     ;umformung der daten
1495 -          beq next1
1500 -          jsr part1      ;dehnung 1.teil
1505 -          jsr print5     ;daten einlesen
1510 -          jsr print4     ;und drucken
1515 -next1     jsr char       ;noch ein zeichen ?
1520 -          bne line1
1525 -          jsr carrige    ;neue zeile
1530 -          pla            ;low-byte holen
1535 -          sta $fe
1540 -          pla            ;und auch hi-byte
1545 -          sta $ff
1550 -          lda #$00       ;zeichenzaehler (0-40)
1555 -          sta $71
1560 -line2     jsr $ffe1      ;stop ?
1565 -          beq end4
1570 -          jsr himode     ;umformung der daten
1575 -          beq next2
1580 -          jsr part2      ;dehnung 2.teil
1585 -          jsr print5     ;daten einlesen
1590 -          jsr print4     ;und drucken
1595 -next2     jsr char       ;noch ein zeichen ?
1600 -          bne line2
1605 -          jsr carrige    ;neue zeile
1610 -          jsr line
1615 -          bne hires4     ;nocheinmal
1620 -end4      jmp close      ;close und ende
1625 -lowres    lda $d018      ;low-res hardcopy
1630 -          and #$f0
1635 -          lsr
1640 -          lsr
1645 -          ora $ff
1650 -          sta $ff        ;hi-byte 2.teil
1655 -          ldx #$06
1660 -          jsr $ffc9
1665 -          lda #$18
1670 -          jsr $ffd2
1675 -          lda #$0d
1680 -          jsr $ffd2
1685 -          jsr $ffcc      ;print#6,chr$(24) !
1690 -          ldx #$04
1695 -          jsr $ffc9
1700 -          ldx #$19
1705 -zeile     jsr $ffe1      ;stop ?
1710 -          beq close
1715 -          jsr lowmode    ;druckermodus ?
1720 -          ldy #$00
1725 -zeichen   lda ($fe),y    ;daten lesen
1730 -          jsr ascii      ;umformen
1735 -          jsr $ffd2      ;und drucken
1740 -          iny
1745 -          cpy #$28       ;noch ein zeichen
1750 -          bne zeichen
1755 -          lda #$0d       ;neue zeile
1760 -          jsr $ffd2
1765 -          tya
1770 -          clc
1775 -          adc $fe
1780 -          sta $fe
1785 -          bcc again
1790 -          inc $ff
1795 -again     dex
1800 -          bne zeile      ;noch eine zeile ?
1805 -close     jsr $ffcc      ;ende
1810 -          ldx #$06
1815 -          jsr $ffc9
1820 -          lda #$24
1825 -          jsr $ffd2
1830 -          lda #$0d
1835 -          jsr $ffd2      ;standartwert
1840 -          jsr $ffcc
1845 -          ldx #$06
1850 -          jsr $ffc3
1855 -          lda #$05
1860 -          jsr $ffc3
1865 -          lda #$04
1870 -          jsr $ffc3
1875 -          jmp $ffe7      ;close all
1880 -himode    sei            ;subroutinen
1885 -          lda #$34
1890 -          sta $01
1895 -          lda #$00
1900 -          tax
1905 -clear     sta $0334,x
1910 -          inx
1915 -          cpx #$08
1920 -          bne clear
1925 -          lda #$80
1930 -          sta $02
1935 -          ldy #$00
1940 -move      lda ($fe),y
1945 -          ldx #$00
1950 -turn      asl
1955 -          bcc weiter
1960 -          pha
1965 -          lda $0334,x
1970 -          ora $02
1975 -          sta $0334,x
1980 -          pla
1985 -weiter    inx
1990 -          cpx #$08
1995 -          bne turn
2000 -          lsr $02
2005 -          iny
2010 -          cpy #$08
2015 -          bne move
2020 -          lda #$37
2025 -          sta $01
2030 -          cli
2035 -          lda $fc
2040 -          beq space
2045 -          ldx #00
2050 -revers    lda $0334,x
2055 -          eor #$ff
2060 -          sta $0334,x
2065 -          inx
2070 -          cpx #08
2075 -          bne revers
2080 -space     lda #$00
2085 -          tax
2090 -zero      cmp $0334,x
2095 -          bne return
2100 -          inx
2105 -          cpx #$08
2110 -          bne zero
2115 -return    rts
2120 -print5    ldx #$05
2125 -          jsr $ffc9
2130 -          ldy #$00
2135 -print     lda $0334,y
2140 -          jsr $ffd2
2145 -          iny
2150 -          cpy #$08
2155 -          bne print
2160 -          lda #$0d
2165 -          jsr $ffd2
2170 -          jmp $ffcc
2175 -print1    ldx #$04
2180 -          jsr $ffc9
2185 -          clc
2190 -          lda $fd
2195 -          adc $71
2200 -          tax
2205 -          beq goon
2210 -          lda #$20
2215 -goto      jsr $ffd2
2220 -          dex
2225 -          bne goto
2230 -goon      lda #$fe
2235 -          jsr $ffd2
2240 -          lda #$8d
2245 -          jsr $ffd2
2250 -          jmp $ffcc
2255 -char      clc
2260 -          lda $fe
2265 -          adc #$08
2270 -          sta $fe
2275 -          bcc help
2280 -          inc $ff
2285 -help      inc $71
2290 -          lda $71
2295 -          cmp #$28
2300 -          rts
2305 -carrige   ldx #$04
2310 -          jsr $ffc9
2315 -          lda #$0d
2320 -          jsr $ffd2
2325 -          jmp $ffcc
2330 -line      inc $72
2335 -          lda $72
2340 -          cmp #$19
2345 -          rts
2350 -print4    ldx #$04
2355 -          jsr $ffc9
2360 -          lda #$0e
2365 -          jsr $ffd2
2370 -          lda $71
2375 -          tax
2380 -          beq out
2385 -          lda #$20
2390 -rueck     jsr $ffd2
2395 -          dex
2400 -          bne rueck
2405 -out       lda #$fe
2410 -          jsr $ffd2
2415 -          lda #$8d
2420 -          jsr $ffd2
2425 -          jmp $ffcc
2430 -part1     jsr clm
2435 -save1     ldx #$00
2440 -          lda #$c0
2445 -          sta $02
2450 -          lda $0334,y
2455 -neu1      clc
2460 -          asl
2465 -          bcc old1
2470 -          pha
2475 -          lda $02
2480 -          ora $0340,y
2485 -          sta $0340,y
2490 -          pla
2495 -old1      lsr $02
2500 -          lsr $02
2505 -          inx
2510 -          cpx #$04
2515 -          bne neu1
2520 -          iny
2525 -          cpy #$08
2530 -          bne save1
2535 -          jmp change
2540 -part2     jsr clm
2545 -save2     ldx #$00
2550 -          lda #$03
2555 -          sta $02
2560 -          lda $0334,y
2565 -neu2      clc
2570 -          lsr
2575 -          bcc old2
2580 -          pha
2585 -          lda $02
2590 -          ora $0340,y
2595 -          sta $0340,y
2600 -          pla
2605 -old2      asl $02
2610 -          asl $02
2615 -          inx
2620 -          cpx #$04
2625 -          bne neu2
2630 -          iny
2635 -          cpy #$08
2640 -          bne save2
2645 -change    ldy #$00
2650 -chagain   lda $0340,y
2655 -          sta $0334,y
2660 -          iny
2665 -          cpy #$08
2670 -          bne chagain
2675 -          rts
2680 -clm       lda #$00
2685 -          tax
2690 -clr       sta $0340,x
2695 -          inx
2700 -          cpx #$08
2705 -          bne clr
2710 -          tay
2715 -          rts
2720 -lowmode   lda $fd
2725 -          beq shift
2730 -          tay
2735 -          lda #$20
2740 -tab       jsr $ffd2
2745 -          dey
2750 -          bne tab
2755 -shift     lda $d018
2760 -          and #$02
2765 -          cmp #$02
2770 -          bne gross
2775 -          lda #$11
2780 -          jsr $ffd2
2785 -gross     lda $fb
2790 -          cmp #$02
2795 -          bne invers
2800 -          lda #$0e
2805 -          jsr $ffd2
2810 -invers    lda $fc
2815 -          beq rts
2820 -          lda #$12
2825 -          jsr $ffd2
2830 -rts       rts
2835 -ascii     and #$7f
2840 -          pha
2845 -          and #$20
2850 -          bne cont
2855 -          pla
2860 -          pha
2865 -          and #$40
2870 -          bne up1
2875 -          pla
2880 -          ora #$40
2885 -          rts
2890 -cont      pla
2895 -          pha
2900 -          and #$40
2905 -          bne up2
2910 -          pla
2915 -          rts
2920 -up1       pla
2925 -          ora #$20
2930 -          rts
2935 -up2       pla
2940 -          and #$3f
2945 -          ora #$80
2950 -          rts
Listing 2. Das Quell-Code-Listing zu »HC MPS-802«. Sollte sich die Hardcopy-Routine mit einem anderen Programm überschneiden, können Sie es damit in einen anderen Bereich assemblieren lassen.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →