home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / S / SKYRACE / VIEILLE.ZIP / VIEILLE.MSA / EXHAUST / EXHAUST.S < prev    next >
Text File  |  1986-04-24  |  38KB  |  1,919 lines

  1. start:
  2.  xbild2 = $69000         ;zweiter bildschirm
  3.  adr = $58000            ;Startadr für Zeichenbild 
  4.  pic = $50000            ;Startadr für Vordergrund
  5.  picx= $4ffe0            ;ladeadr
  6.  char2 = $5a328          ;adr fuer zweiten zeichensatz
  7.  string = $5e000         ;copystring fuer vordere bounceline
  8.  string2 = $5f000
  9.  hoehe = 18              ;Buchstabenhoehe
  10.  
  11.  
  12.  
  13.  
  14. init:                   ;Zeichenseite zerlegen
  15.  move.w #2,D0
  16.  move.l #tab,A0         ;Zeiger auf Buchstaben
  17.  move.l #$58000,D2      ;Bildadr
  18. zeile:
  19.  move.w #19,D1          ;20 Spalten
  20. spalte:
  21.  move.l D2,(A0)+        ;Adresse in Tabelle
  22.  add.l #$8,D2           ;Zeichen ist 16Bit gross
  23.  dbf D1,spalte          ;20 mal
  24.  add.l #hoehe*160,D2       ;naechste Zeile
  25.  dbf D0,zeile          
  26.  
  27.  move.w #2,D0
  28.  move.l #tab2,A0
  29.  move.l #$5a328,D2
  30. zeile002:
  31.  move.w #19,D1
  32. spalte002:
  33.  move.l D2,(A0)+
  34.  add.l #$8,D2
  35.  dbf D1,spalte002
  36.  add.l #3520,D2
  37.  dbf D0,zeile002
  38.  
  39.  clr.w -(a7)            ;fopen
  40.  move.l #name4,-(a7)
  41.  move.w #$3d,-(a7)
  42.  trap #1
  43.  addq.l #8,a7
  44.  move.w d0,d7
  45.  move.l #xbild2,-(a7)     ;fread
  46.  move.l #4884,-(a7)
  47.  move.w d7,-(a7)
  48.  move.w #$3f,-(a7)
  49.  trap #1
  50.  add.l #12,a7
  51.  move.w d7,-(a7)        ;fclose
  52.  move.w #$3e,-(a7)
  53.  trap #1
  54.  addq.l #4,a7
  55.  
  56.   
  57.  clr.w -(a7)            ;fopen charbild
  58.  move.l #name,-(a7)
  59.  move.w #$3d,-(a7)
  60.  trap #1
  61.  addq.l #8,a7
  62.  move.w d0,d7
  63.  move.l #adr,-(a7)     ;fread
  64.  move.l #$2320,-(a7)
  65.  move.w d7,-(a7)
  66.  move.w #$3f,-(a7)
  67.  trap #1
  68.  add.l #12,a7
  69.  move.w d7,-(a7)        ;fclose
  70.  move.w #$3e,-(a7)
  71.  trap #1
  72.  addq.l #4,a7
  73.  
  74.  
  75.  clr.w D0
  76.  move.l #adr,A0
  77.  move.l #xbild2,A1
  78.  move.l A1,A2
  79.  add.l #1000,A2
  80.  move.w #1,D2
  81.  
  82. entsch1:
  83.  move.b 0(A0,D0.w),D1
  84.  move.b 0(A1,D2.w),D3
  85.  move.b 0(A2,D2.w),D4
  86.  eor.b D3,D1
  87.  eor.b D4,D1
  88.  move.b D1,0(A0,D0.w)
  89.  add.w #1,d0
  90.  add.w #1,D2
  91.  cmp.w #3485,D2
  92.  bne entsch2
  93.  move.w #1,D2
  94. entsch2:
  95.  cmp.w #8993,D0
  96.  bne entsch1
  97.  
  98.  clr.w -(a7)            ;fopen charbild2
  99.  move.l #name2,-(a7)
  100.  move.w #$3d,-(a7)
  101.  trap #1
  102.  addq.l #8,a7
  103.  move.w d0,d7
  104.  move.l #char2,-(a7)     ;fread
  105.  move.l #$3900,-(a7)
  106.  move.w d7,-(a7)
  107.  move.w #$3f,-(a7)
  108.  trap #1
  109.  add.l #12,a7
  110.  move.w d7,-(a7)        ;fclose
  111.  move.w #$3e,-(a7)
  112.  trap #1
  113.  addq.l #4,a7
  114.  
  115.  
  116. move.w #0,D0
  117.  move.l #char2,A0
  118.  move.l #xbild2,A1
  119.  move.l A1,A2
  120.  add.l #1000,A2
  121.  move.w #1,D2
  122.  
  123. entsch3:
  124.  move.b 0(A0,D0.w),D1
  125.  move.b 0(A1,D2.w),D3
  126.  move.b 0(A2,D2.w),D4
  127.  eor.b D3,D1
  128.  eor.b D4,D1
  129.  move.b D1,0(A0,D0.w)
  130.  add.w #1,d0
  131.  add.w #1,D2
  132.  cmp.w #3485,D2
  133.  bne entsch4
  134.  move.w #1,D2
  135. entsch4:
  136.  cmp.w #14593,D0
  137.  bne entsch3
  138.  
  139.  clr.w -(a7)            ;fopen bild
  140.  move.l #name3,-(a7)
  141.  move.w #$3d,-(a7)
  142.  trap #1
  143.  addq.l #8,a7
  144.  move.w d0,d7
  145.  move.l #pic,-(a7)     ;fread
  146.  move.l #32000,-(a7)
  147.  move.w d7,-(a7)
  148.  move.w #$3f,-(a7)
  149.  trap #1
  150.  add.l #12,a7
  151.  move.w d7,-(a7)        ;fclose
  152.  move.w #$3e,-(a7)
  153.  trap #1
  154.  addq.l #4,a7
  155.  
  156.  
  157. move.w #0,D0
  158.  move.l #pic,A0
  159.  move.l #xbild2,A1
  160.  move.l A1,A2
  161.  add.l #1000,A2
  162.  move.w #1,D2
  163.  
  164. entsch10:
  165.  move.b 0(A0,D0.w),D1
  166.  move.b 0(A1,D2.w),D3
  167.  move.b 0(A2,D2.w),D4
  168.  eor.b D3,D1
  169.  eor.b D4,D1
  170.  move.b D1,0(A0,D0.w)
  171.  add.w #1,d0
  172.  add.w #1,D2
  173.  cmp.w #3485,D2
  174.  bne entsch20
  175.  move.w #1,D2
  176. entsch20:
  177.  cmp.w #32001,D0
  178.  bne entsch10
  179.  
  180.  move.l #0,-(sp)        ;mouse aus
  181.  move.l #0,-(sp)
  182.  move.w #0,-(sp)
  183.  move.w #0,-(sp)
  184.  trap #14
  185.  add.l #12,sp
  186.  
  187.  clr.l -(a7)            ;super
  188.  move.w #$20,-(a7)
  189.  trap #1
  190.  addq.l #6,A7
  191.  move.l D0,savereg
  192.  
  193.  
  194.  
  195.  lea leer,A0
  196.  movem.l (A0),D1-D7/A2-A6
  197.  move.l #string,A1
  198.  move.l #string2,A0
  199.  move.w #22,D0          ;string loeschen
  200. str_loe:
  201.  movem.l D1-D7/A2-A6,(A1)
  202.  movem.l D1-D7/A2-A6,48(A1)
  203.  movem.l D1-D7/A2-A6,96(A1)
  204.  movem.l D1-D4,144(A1) 
  205.  movem.l D1-D7/A2-A6,(A0)
  206.  movem.l D1-D7/A2-A6,48(A0)
  207.  movem.l D1-D7/A2,96(A0)
  208.  movem.l D1-D4,144(A1)
  209.  add.l #160,A1
  210.  add.l #160,A0
  211.  dbf D0,str_loe
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  move.b $ff8260,savebuff
  218.  move.b $ff820a,savebuff+1
  219.  move.b #00,$ff8260     ;niedrige aufloesung
  220.  move.b #2,$ff820a      ;50 hertz
  221.  
  222.  
  223.  lea $ff8201,A0         ;Bildschirmspeicher ermitteln
  224.  clr.l D0
  225.  movep.w 0(A0),D0
  226.  asl.l #8,D0
  227.  and.l #$ffffff,D0
  228.  move.l D0,bildschirm
  229.  move.l D0,xbild1
  230.  
  231.  
  232.                          ;color interrupts installieren
  233.  move.b $fffa09,buff                    ;mfp Register retten
  234.  move.b $fffa07,buff+1
  235.  move.b $fffa13,buff+2
  236.  move.l $118,buff+4
  237.  move.l $118,newkey2+2
  238.  move.l $120,buff+8
  239.  move.l $70,buff+12
  240.  and.b #$df,$fffa09                     ;Timer c aus
  241.  and.b #$fe,$fffa07                     ;Timer b aus
  242.  
  243.  move.w #$777,$ff8240   ;Farben setzen
  244.  move.w #$070,$ff8242
  245.  move.w #$500,$ff8244
  246.  move.w #$744,$ff8246
  247.  move.w #$700,$ff8248
  248.  move.w #$577,$ff824a
  249.  move.w #$477,$ff824c
  250.  move.w #$077,$ff824e
  251.  move.w #$067,$ff8250
  252.  move.w #$057,$ff8252
  253.  move.w #$047,$ff8254
  254.  move.w #$037,$ff8256
  255.  move.w #$026,$ff8258
  256.  move.w #$005,$ff825a
  257.  move.w #$003,$ff825c
  258.  move.w #$000,$ff825e
  259.  
  260.  
  261.  move.l #pic,A0         ;Bild kopieren
  262.  move.l D0,A1
  263.  move.w #7999,D1
  264. copy:
  265.  move.l (A0)+,(A1)+
  266.  dbf D1,copy
  267.  
  268.  move.l #pic,A0
  269.  move.l #xbild2,A1
  270.  move.w #7999,D1
  271.  copy2:
  272.  move.l (A0)+,(A1)+
  273.  dbf D1,copy2
  274.   
  275.  
  276.  
  277.  
  278.  move.l #hbl,$120                       ;Adresse des Hbl-Int setzen
  279.  move.l #vbl_alt,A0
  280.  add.l #2,A0
  281.  move.l $456,A1
  282.  add.w #4,A1
  283.  move.l (A1),(A0)
  284.  move.l #vbl,$70                        ;   "     "  Vbl-Int setzen
  285.  
  286.  or.b #1,$fffa07                        ; Timer b wieder an
  287.  or.b #1,$fffa13
  288.  
  289. tast:                                   ;Tastaturabfrage 
  290.  move.w #7,-(sp)
  291.  trap #1
  292.  addq.l #2,sp
  293.  swap d0
  294.  cmp.b #1,d0
  295.  bne tast
  296.  
  297.  move.b savebuff,$ff8260
  298.  move.b savebuff+1,$ff820a
  299.  move.b buff,$fffa09
  300.  move.b buff+1,$fffa07
  301.  move.b buff+2,$fffa13
  302.  move.l buff+4,$118
  303.  move.l buff+8,$120
  304.  move.l buff+12,$70
  305.  
  306.  move.l savereg,-(sp)
  307.  move.w #$20,-(A7)
  308.  trap #1
  309.  add.l #6,A7
  310.  
  311.  
  312. stop:
  313.  ;clr.l -(sp)              ;und ende
  314.  ;trap #1 
  315.  
  316.  
  317.  ;*****************************************************
  318.  ;Laderoutine hier anhängen
  319.  ;Tastenabfrage wartet auf esc kann geändert werden
  320.  ;***************************************************** 
  321. newkey:
  322.  move.w #$2500,sr
  323. newkey2:
  324.  jmp $00000000
  325.  
  326.  
  327.  block0=$68000
  328.  block1=$61000          ;angenommene Hoehe:20
  329.  block2=$61fa0
  330.  block3=$62f40
  331.  block4=$63ee0
  332.  block5=$64e80
  333.  block6=$65e20
  334.  block7=$66dc0
  335.  
  336.  block20=$60800         ;nachschiebepuffer
  337.  block21=$60100
  338.  block22=$60200
  339.  block23=$60300
  340.  block24=$60400
  341.  block25=$60500
  342.  block26=$60600
  343.  block27=$60700
  344.  
  345. raupe:                  ;Scrollprog
  346.  
  347.  move.l bildschirm,D0   ;Bildschirme wechseln
  348.  cmp.l xbild1,D0
  349.  beq pi1
  350.  move.l #xbild2,f_bildschirm
  351.  move.l xbild1,bildschirm
  352.  move.l xbild1,D0
  353.  swap D0
  354.  move.b D0,$ff8201
  355.  swap D0
  356.  lsr #8,D0
  357.  move.b D0,$ff8203
  358.  bra pi2
  359. pi1:
  360.  move.l xbild1,f_bildschirm
  361.  move.l #xbild2,bildschirm
  362.  move.l #xbild2,D0
  363.  swap D0
  364.  move.b D0,$ff8201
  365.  swap D0
  366.  lsr #8,D0
  367.  move.b D0,$ff8203
  368. pi2:
  369.  
  370.  
  371.  
  372.  clr.l D1
  373.  move.w blocknr,D1      ;welchen Block darstellen?
  374.  addq.w #1,blocknr      ;erhöhen
  375.  and.w #$7,blocknr      ;nur 8 mal
  376.  asl.w #3,D1            ;mal 8 (2 Langwoerter)
  377.  move.w D1,zwischen     ;zwischenspeicher
  378.  move.l #prog,A0        ;puffertab-startadr
  379.  move.l 0(A0,D1.w),A6   ;welcher hauptblock
  380.  
  381.  cmp #0,A6
  382.  
  383.  beq first              ;
  384.  
  385.  bsr make_string        ;text fuer vordere bounceline vorbereiten
  386.  bsr anzeigen           ;Block anzeigen
  387.  bsr bou                ;Block verschieben
  388.  
  389.  move.l #prog,A0
  390.  move.w zwischen,D1
  391.  move.l 4(A0,D1.w),A5   ;welcher nachschiebeblock
  392.  move.l 0(A0,D1.w),A6
  393.  cmp.l #block7,A6       ;letzter Block
  394.  bne weiter             ;nein
  395.  move.l #block0,A6      ;block 0 nehmen
  396.  bra w2
  397. weiter:
  398.  move.l 8(A0,D1.w),A6   ;sonst nachfolgenden
  399. w2:
  400.  
  401.  bra nachschieb         ;neuen Buchstaben nachschieben
  402.  
  403.  
  404.  
  405. first:                  ;erster Block und Vorbereitung
  406.  bsr make_string
  407.  move.l #block0,A6
  408.  bsr anzeigen
  409.  bsr bou
  410.  
  411. vorne:
  412.  move.w zeichen,D2      ;welches Zeichen
  413.  move.l #text,A3        ;aus welchem Text
  414.  move.l #tab,A4         ;und ueberhaupt wo im Speicher
  415.  move.b 0(A3,D2.w),D3   ;Zeichen lesen
  416.  
  417.  cmp.b #$ff,D3
  418.  bne lesen              ;nein
  419.  clr.w zeichen          ;nochmal von vorne
  420.  bra vorne
  421. lesen:
  422.  ext.w D3
  423.  asl.w #2,D3
  424.  move.l 0(A4,D3.w),zeiadr1;Adresse des nachzuschiebenden Zeichens
  425.  addq.w #1,zeichen      ;Zaehler erhoehen
  426.  addq.w #1,D2
  427.  move.b 0(A3,D2.w),D3   ;naechstes Zeichen holen
  428.  
  429.  cmp.b #$ff,D3
  430.  bne lesen2
  431.  move.b (A3),D3         ;erstes Zeichen nehmen
  432. lesen2:
  433.  ext.w D3 
  434.  asl.w #2,D3
  435.  move.l 0(A4,D3.w),zeiadr2
  436.  
  437.  
  438.  move.l #block1,A6      ;block 1 vorbereiten
  439.  move.l #block21,A5
  440.  bra nachschieb         ;und zum nachschieben
  441.  
  442.                 ;+++++++++++++++++++++++++++++++++++++++++
  443.  
  444. anzeigen:             ;line darstellen
  445.  
  446.                       ;erst hintergrund fuer vordere bounceline 
  447.                       ; wiederherstellen
  448.  move.l A6,zwi2
  449.  move.l #pic,A6
  450.  move.w colz2,D0
  451.  ext.l D0
  452.  subq.l #6,D0
  453.  move.l D0,D1
  454.  lsl.l #7,D0
  455.  lsl.l #5,D1
  456.  add.l D1,D0
  457.  move.l bildschirm,A0
  458.  add.l D0,A0
  459.  add.l D0,A6
  460.  
  461.  move.w #6,D0
  462. loesch1:
  463.  movem.l (A6),D1-D7/A1-A5
  464.  movem.l D1-D7/A1-A5,(A0)
  465.  movem.l 48(A6),D1-D7/A1-A5
  466.  movem.l D1-D7/A1-A5,48(A0)
  467.  movem.l 96(A6),D1-D7/A1-A5
  468.  movem.l D1-D7/A1-A5,96(A0)
  469.  movem.l 136(A6),D4-D7/A1-A2
  470.  movem.l D4-D7/A1-A2,136(A0)
  471.  add.l #160,A6
  472.  add.l #160,A0
  473.  dbf D0,loesch1
  474.  
  475.  add.l #6400,A6
  476.  add.l #6400,A0
  477.  
  478.   move.w #6,D0
  479. loesch5:
  480.  movem.l (A6),D1-D7/A1-A5
  481.  movem.l D1-D7/A1-A5,(A0)
  482.  movem.l 48(A6),D1-D7/A1-A5
  483.  movem.l D1-D7/A1-A5,48(A0)
  484.  movem.l 96(A6),D1-D7/A1-A5
  485.  movem.l D1-D7/A1-A5,96(A0)
  486.  movem.l 136(A6),D4-D7/A1-A2
  487.  movem.l D4-D7/A1-A2,136(A0)
  488.  add.l #160,A6
  489.  add.l #160,A0
  490.  dbf D0,loesch5
  491.  
  492.  
  493.  
  494.  move.w #hoehe,D0
  495.  subq.w #1,D0
  496.  move.l bildschirm,A0   ;wo bildschirm
  497.  add.l #8800,A0
  498.  add.l bo_ualt,A0        ;bounceoffset
  499.  move.l #pic,A6
  500.  add.l #8800,A6
  501.  add.l bo_ualt,A6
  502.                       ;hintergrund wiederherstellen
  503. zeilen1b:
  504.  movem.l 8(A6),D1-D7/A1-A3
  505.  movem.l D1-D7/A1-A3,8(A0)
  506.  movem.l 48(A6),D1-D7/A1-A5
  507.  movem.l D1-D7/A1-A5,48(A0)
  508.  movem.l 96(A6),D1-D7/A1-A5
  509.  movem.l D1-D7/A1-A5,96(A0)
  510.  movem.l 136(A6),D4-D7
  511.  movem.l D4-D7,136(A0)
  512.  add.l #160,A6
  513.  add.l #160,A0
  514.  dbf D0,zeilen1b
  515.  
  516.  bsr s_anf
  517.  
  518. b_line:
  519.  move.l zwi2,a6
  520.  move.w #hoehe,D5       ;zaehler
  521.  subq.w #1,D5
  522.  move.l bildschirm,A0   ;bildschirmadr
  523.  add.l #8800,A0
  524.  add.l bounce,A0
  525.  move.l #pic,A1         ;rahmen
  526.  add.l #8800,A1
  527.  add.l bounce,A1
  528.  
  529. zeile1a:
  530.  add.l #8,A0
  531.  add.l #8,A1
  532.  add.l #8,A6
  533.  move.w (A1)+,D0        ;linken Rand zeichnen
  534.  movem.w (A6),D3-D4/D6-D7
  535.  and.w mls,D3
  536.  and.w mls,D4
  537.  and.w mls,D6
  538.  and.w mls,D7
  539.  or.w D6,D3
  540.  or.w D4,D3
  541.  or.w D7,D3
  542.  not.w D3
  543.  
  544.  move.w (A6),D2
  545.  and.w mls,D2
  546.  and.w D3,D0
  547.  or.w D0,D2
  548.  move.w D2,(A0)
  549.  movem.w (a1)+,D0/D2
  550.  and.w D3,D0
  551.  and.w D3,D2
  552.  or.w D0,D4
  553.  or.w D2,D6
  554.  movem.w D4/D6,2(A0)
  555.  move.w (a1)+,D0
  556.  and.w D3,D0
  557.  or.w D0,D7
  558.  move.w D7,6(A0)
  559.  
  560.  add.l #8,A6           ;ersten 32 Punkte auslassen
  561.  add.l #8,A0
  562.   
  563.  move.w #15,d6
  564. spalte1a:
  565.  movem.w (a6),D0-D2/D7  ;lesen 
  566.  or.w D0,D7             ;leere stellen suchen
  567.  or.w D2,D7
  568.  or.w D1,D7
  569.  not.w D7
  570.  move.w D7,D2
  571.  swap D7
  572.  move.w D2,D7
  573.  movem.l (A6),D0-D1
  574.  movem.l (A1)+,D3-D4
  575.  and.l D7,D3            ;plane 0+1
  576.  or.l D3,D0
  577.  and.l D7,D4            ;plane 2+3
  578.  or.l D4,D1
  579.  movem.l D0-D1,(a0)
  580.  add.l #8,A0
  581.  add.l #8,A6
  582.  dbf d6,spalte1a
  583.  
  584.  move.w (A1)+,D0        ;rechten Rand zeichnen
  585.  
  586. movem.w (A6),D3-D4/D6-D7
  587.  and.w mrs,D3
  588.  and.w mrs,D4
  589.  and.w mrs,D6
  590.  and.w mrs,D7
  591.  or.w D6,D3
  592.  or.w D4,D3
  593.  or.w D7,D3
  594.  not.w D3
  595.  
  596.  move.w (A6),D2
  597.  and.w mrs,D2
  598.  and.w D3,D0
  599.  or.w D0,D2
  600.  move.w D2,(A0)
  601.  movem.w (a1)+,D0/D2
  602.  and.w D3,D0
  603.  and.w D3,D2
  604.  or.w D0,D4
  605.  or.w D2,D6
  606.  movem.w D4/D6,2(A0)
  607.  move.w (a1)+,D0
  608.  and.w D3,D0
  609.  or.w D0,D7
  610.  move.w D7,6(A0)
  611.  
  612.  add.l #16,A6           ;letzten 32 Punkte auslassen
  613.  add.l #8,A1
  614.  add.l #16,A0 
  615.  
  616.  dbf d5,zeile1a
  617.  
  618.  bra vorgrund
  619.  
  620. s_anf:
  621.  cmp.w #0,act           ;neuer stern
  622.  beq stern0             ;nein
  623.                         ;hintergrund wiederherstellen
  624.  move.l bildschirm,A0
  625.  move.l #pic,A2
  626.  add.l blink_act,A0
  627.  add.l blink_act,A2
  628.  move.w #12,D7
  629. restau:
  630.  movem.l (A2),D0-D1
  631.  movem.l D0-D1,(A0)
  632.  add.l #160,A2
  633.  add.l #160,A0
  634.  dbf D7,restau
  635. hinter:
  636.  move.l bildschirm,A0
  637.  add.l blink_act,A0
  638.  move.l jump,A1
  639.  jmp (a1)
  640.  
  641. stern0:
  642.  move.w #1,act
  643.  
  644.  move.l blink_act,D0            ;hintergrund restaurieren
  645.  move.l blink_alt,D1
  646.  move.l bildschirm,A0
  647.  move.l A0,A1
  648.  move.l #pic,A2
  649.  move.l A2,A3
  650.  add.l D0,A0 
  651.  add.l D1,A1
  652.  add.l D0,A2 
  653.  add.l D1,A3   
  654.  move.w #12,D2
  655. res2: 
  656.  movem.l (a2),D0-D1
  657.  movem.l D0-D1,(A0)
  658.  movem.l (A3),D0-D1
  659.  movem.l D0-D1,(A1)
  660.  add.l #160,A0
  661.  add.l #160,A1
  662.  add.l #160,A2
  663.  add.l #160,A3
  664.  dbf D2,res2
  665.      
  666.  move.w zawo,D0
  667.  lsl.w #1,D0         
  668.  move.l #wo,A0
  669.  move.w 0(A0,D0.w),D1   ;welches blink
  670.  cmp.w #$ff,D1          ;neu anfangen
  671.  bne st0 
  672.  clr.w zawo
  673.  bra stern0
  674. st0:
  675.  add.w #1,zawo          ;erhoehen
  676.  move.l #blink,A0
  677.  lsl.w #2,D1
  678.  move.l 0(A0,D1.w),D2   ;blink holen
  679.  move.l blink_act,blink_alt
  680.  move.l D2,blink_act    ;speichern
  681.  clr.w zaact            ;Zaehler loeschen
  682.  move.l #stern1,jump
  683.  bra s_anf
  684.  
  685. stern1:                 ;stern1
  686.  cmp.w #4,zaact
  687.  bne nein
  688.  clr.w act
  689. nein:
  690.  move.w #1,zaact
  691.  move.l #stern2,jump    ;geht immer
  692.  add.l #640,A0
  693.  move.l #s1,A1
  694.  move.w #4,D0
  695.  
  696.  
  697. darstellen:             ;stern zeichnen
  698.  move.w (a1)+,D1
  699.  movem.w (A0),D2-D5
  700.  and.w D1,D2
  701.  and.w D1,D3
  702.  and.w D1,D4
  703.  and.w D1,D5
  704.  movem.w D2-D5,(A0)
  705.  add.l #160,A0
  706.  dbf D0,darstellen
  707.  rts
  708.  
  709. stern2:                 ;stern2 zeichnen
  710.  cmp.w #1,zaact         ;kommt stern3 oder stern 1 als naechstes
  711.  bne nun1
  712.  move.l #stern3,jump
  713.  move.w #2,zaact
  714.  bra nun3
  715. nun1:
  716.  move.l #stern1,jump
  717. nun3:
  718.  add.l #480,A0          ;stern 2 zeichnen
  719.  move.l #s2,A1
  720.  move.w #6,D0
  721.  bra darstellen                       
  722.  
  723. stern3:
  724.  cmp.w #2,zaact
  725.  bne nun2
  726.  move.l #stern4,jump
  727.  move.w #3,zaact
  728.  bra nun4
  729. nun2:
  730.  move.l #stern2,jump
  731. nun4:
  732.  add.l #320,A0
  733.  lea s3,A1
  734.  move.w #8,D0
  735.  bra darstellen
  736.  
  737. stern4:
  738.  cmp.w #3,zaact
  739.  bne nunr3
  740.  move.l #stern5,jump
  741.  move.w #4,zaact
  742.  bra nun5
  743. nunr3:
  744.  move.l #stern3,jump
  745. nun5:
  746.  add.l #160,A0
  747.  move.l #s4,A1
  748.  move.w #10,D0
  749.  bra darstellen
  750.  
  751. stern5:
  752.  move.l #stern4,jump
  753.  move.l #s5,A1
  754.  move.w #12,D0
  755.  bra darstellen
  756.  
  757.  
  758.  
  759. vorgrund:                       ;vordere bounceline
  760.  
  761.  
  762.  move.w colz2,D0
  763.  ext.l D0
  764.  subq.l #2,D0
  765.  move.l D0,D1
  766.  lsl.l #7,D0
  767.  lsl.l #5,D1
  768.  add.l D1,D0
  769.  move.l bildschirm,A0
  770.  add.l D0,A0
  771.  add.l #320,A0
  772.  
  773. move.w #1,zwi2                  ;Bildschirm fuer roehren loeschen
  774.  lea leer,A6
  775.  movem.l (A6),D1-D7/A1-A5
  776. loesch3:
  777.  move.w #9,D0
  778. loesch2:
  779.  movem.l D1-D7/A1-A5,(A0)
  780.  movem.l D1-D7/A1-A5,48(A0)
  781.  movem.l D1-D7/A1-A5,96(A0)
  782.  movem.l D2-D7,136(A0)
  783.  add.l #160,A0
  784.  dbf D0,loesch2
  785.  add.l #3680,A6
  786.  add.l #3680,A0
  787.  move.w #7,D0
  788.  move.w zwi2,D1
  789.  subq.w #1,zwi2
  790.  dbf D1,loesch2
  791.  
  792.  move.w colz2,D0
  793.  ext.l D0
  794.  subq.l #2,D0
  795.  move.l D0,D1
  796.  lsl.l #7,D0
  797.  lsl.l #5,D1
  798.  add.l D1,D0
  799.  move.l bildschirm,A0
  800.  add.l D0,A0
  801.  add.l #1920,A0
  802.  move.l string_zeig,A6
  803.  move.l A0,zwi2
  804.  
  805.  lea leer,A1                    ;rand loeschen
  806.  movem.l (A1),D2-D5
  807.  move.w #22,D0
  808. loesch11:
  809.  movem.l D2-D5,(A0)
  810.  movem.l D2-D5,144(A0)
  811.  add.l #160,A0
  812.  dbf D0,loesch11
  813.  
  814.  move.l zwi2,A0 
  815.  
  816.  move.w #22,D0
  817. zeil123:
  818.  movem.l (A6),D1-D7/A1-A5               ;string copieren
  819.  movem.l D1-D7/A1-A5,16(A0)
  820.  movem.l 48(A6),D1-D7/A1-A5
  821.  movem.l D1-D7/A1-A5,64(A0)
  822.  movem.l 96(A6),D1-D7/A1
  823.  movem.l D1-D7/A1,112(A0)
  824.  add.l #160,A6
  825.  add.l #160,A0
  826.  dbf D0,zeil123 
  827.             
  828.  
  829.  
  830.  
  831.  rts
  832.             ;+++++++++++++++++++++++++++++
  833.  
  834. buffnach:
  835.  move.w #hoehe,D7
  836.  subq.w #1,D7                   ;hoehe als zaehler
  837.  move.l zeiadr1,A1              ;adressen der darzustellenden zeichen
  838.  move.l zeiadr2,A2
  839.  add.w #2,bit_versch            ;um wieviel verschieben
  840.  move.w bit_versch,D2
  841.  move.l A5,A0
  842.  cmp.l #block20,A0               ;nachblock 0 erst später
  843.  bne buff3
  844.  clr.w bit_versch
  845.  rts
  846. buff3:
  847.  cmp.l #block21,A0              ;block 0 und 1 werden zusammen gemacht
  848.  bne buff1
  849.  
  850.  move.l #block20,A0
  851. buff0:
  852.  
  853.  move.l (A2)+,(A0)+
  854.  move.l (A2),(A0)+
  855.  add.l #156,A2
  856.  dbf D7,buff0
  857.  
  858.  move.l zeiadr2,A2              ;alte werte setzen
  859.  move.l A5,A0
  860.  move.w #hoehe,D7
  861.  subq.w #1,D7
  862.  move.l #block21,A0
  863.  
  864. buff1:
  865.  
  866.  move.w 0(A2),D1        ;plane 0 Zeichen 2
  867.  swap D1                ; in obere haelfte
  868.  move.w 0(A1),D1        ;plane 0 Zeichen 1 in untere haelfte
  869.  rol.l D2,D1            ;rotieren
  870.  move.w D1,(A0)+        ;fertiges wort in block schreiben
  871.  
  872.  move.w 2(A2),D1        ;plane 1 Zeichen 2
  873.  swap D1                ; in obere haelfte
  874.  move.w 2(A1),D1        ;plane 1 Zeichen 1 in untere haelfte
  875.  rol.l D2,D1            ;rotieren
  876.  move.w D1,(A0)+        ;fertiges wort in block schreiben
  877.  
  878.  move.w 4(A2),D1        ;plane 2 Zeichen 2
  879.  swap D1                ; in obere haelfte
  880.  move.w 4(A1),D1        ;plane 2 Zeichen 1 in untere haelfte
  881.  rol.l D2,D1            ;rotieren
  882.  move.w D1,(A0)+        ;fertiges wort in block schreiben
  883.  
  884.  move.w 6(A2),D1        ;plane 3 Zeichen 2
  885.  swap D1                ; in obere haelfte
  886.  move.w 6(A1),D1        ;plane 3 Zeichen 1 in untere haelfte
  887.  rol.l D2,D1            ;rotieren
  888.  move.w D1,(A0)+        ;fertiges wort in block schreiben
  889.   
  890.  add.l #160,A1          ;naechste Zeile
  891.  add.l #160,A2
  892.  dbf D7,buff1
  893.  
  894.  rts                    ;ende buffnach
  895.  
  896.  
  897.  
  898. nachschieb:             ;verschiebt bloecke und haengt rechten rest an
  899.  bsr buffnach
  900.  move #hoehe,D7         ;Zeilenzaehler
  901.  subq.w #1,D7
  902. zeilen3:
  903.  movem.l 16(A6),D0-D6/A0-A4   ;verschieben
  904.  movem.l D0-D6/A0-A4,8(A6)
  905.  movem.l 64(A6),D0-D6/A0-A4
  906.  movem.l D0-D6/A0-A4,56(A6)
  907.  movem.l 112(A6),D0-D6/A0-A2
  908.  movem.l D0-D6/A0-A2,104(A6)
  909.  add.l #144,A6
  910.  move.l (A5)+,(A6)+          ;und anhaengen
  911.  move.l (A5)+,(A6)+
  912.  add.l #8,A6
  913.  dbf D7,zeilen3
  914.  
  915.  movem.l (sp)+,D0-D7/A0-A6
  916. vbl_alt:
  917.  jsr $00000000
  918.  rte
  919.                                  ;ende nachschieb; ende interrupt
  920.  
  921.  
  922. make_string:
  923.  move.l A6,-(sp)
  924.  
  925.  cmp.w #1,b_flag
  926.  beq ret
  927.  
  928.  
  929. make2:
  930.  move.w tex_zeig,D1             ;zeiger auf text
  931.  move.l #text2,A0
  932.  move.b 0(A0,D1.w),D0                 ;buchstaben lesen
  933.  cmp.b #$ff,D0
  934.  bne make3
  935.  move.w #0,tex_zeig
  936.  bra make2
  937. make3:
  938.  
  939.  ext.w D0                  ;Adr des img des zeichens lesen
  940.  asl.w #2,D0
  941.  
  942.  
  943.  move.l #tab2,A0
  944.  move.l 0(A0,D0.w),A1
  945.  move.l string_mach,A2
  946.  move.w tex_zaehl,D0            ;Buchstabenzaehler
  947.  ext.l D0
  948.  lsl.l #3,D0
  949.  add.l D0,A2
  950.  add.l zeil_zaehl160,A2
  951.  add.l zeil_zaehl160,A1
  952.  
  953.  move.w #1,D0
  954. v_bou:
  955.  movem.l (A1),D1-D2
  956.  movem.l D1-D2,(A2)
  957.  add.l #160,A2
  958.  add.l #160,A1
  959.  movem.l (A1),D1-D2
  960.  movem.l D1-D2,(A2)
  961.  add.l #160,A2
  962.  add.l #160,A1
  963.  movem.l (A1),D1-D2
  964.  movem.l D1-D2,(A2)
  965.  add.l #160,A2
  966.  add.l #160,A1
  967.  movem.l (A1),D1-D2
  968.  movem.l D1-D2,(A2)
  969.  add.l #160,A2
  970.  add.l #160,A1
  971.  movem.l (A1),D1-D2
  972.  movem.l D1-D2,(A2)
  973.  add.l #160,A2
  974.  add.l #160,A1
  975.  movem.l (A1),D1-D2
  976.  movem.l D1-D2,(A2)
  977.  add.l #160,A2
  978.  add.l #160,A1
  979.  movem.l (A1),D1-D2
  980.  movem.l D1-D2,(A2)
  981.  add.l #160,A2
  982.  add.l #160,A1
  983.  movem.l (A1),D1-D2
  984.  movem.l D1-D2,(A2)
  985.  add.l #160,A2
  986.  add.l #160,A1
  987.  movem.l (A1),D1-D2
  988.  movem.l D1-D2,(A2)
  989.  add.l #160,A2
  990.  add.l #160,A1
  991.  movem.l (A1),D1-D2
  992.  movem.l D1-D2,(A2)
  993.  add.l #160,A2
  994.  add.l #160,A1
  995.  movem.l (A1),D1-D2
  996.  movem.l D1-D2,(A2)
  997.  add.l #160,A2
  998.  add.l #160,A1
  999.  
  1000.  
  1001.  dbf D0,v_bou
  1002.  
  1003.  ;cmp.l #3200,zeil_zaehl160
  1004.  ;beq st1
  1005.  ;add.l #3200,zeil_zaehl160
  1006.  ;bra ret
  1007. st1:
  1008.  
  1009.  
  1010.  add.w #1,tex_zeig
  1011.  clr.l zeil_zaehl160
  1012.  add.w #1,tex_zaehl
  1013.  cmp.w #16,tex_zaehl
  1014.  bne ret
  1015.  clr.w tex_zaehl
  1016.  cmp.l #string,string_zeig
  1017.  bne st2
  1018.  move.l #string,string_mach
  1019.  move.w #1,b_flag
  1020.  bra st3
  1021. st2:
  1022.  move.l #string2,string_mach
  1023. st3:
  1024.  move.w #1,b_flag
  1025.  clr.w col_f
  1026.  move.w #7,blend_zaehler
  1027. ret:
  1028.  move.l (sp)+,A6
  1029.  rts
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036. bou:                    ;Block verschieben
  1037.  move.l bo_alt,bo_ualt
  1038.  move.l bounce,bo_alt   ;alte adr merken
  1039.  move.l #s_tab,A0       ;speed tabelle
  1040. b2:
  1041.  move.w zaehler,D0      ;welche geschw
  1042.  asl.w #2,D0            ;langwoerter
  1043.  move.l 0(A0,D0.w),D1   ;speed ermittelt
  1044.  cmp.l #1,D1            ;umschalten
  1045.  bne ver1
  1046.  add.w #1,zaehler
  1047.  move.w #1,bflag        ;steigen
  1048.  bra b2
  1049. ver1:
  1050.  cmp.l #2,D1
  1051.  bne ver2  
  1052.  clr.w zaehler
  1053.  clr.w bflag
  1054.  bra b2
  1055. ver2:
  1056.  cmp.w #0,bflag
  1057.  bne steigen
  1058.  add.l D1,bounce        ;um D1 fallen
  1059.  add.w #1,zaehler
  1060.  rts
  1061. steigen:
  1062.  sub.l D1,bounce        ;um D1 steigen
  1063.  add.w #1,zaehler
  1064.  rts                    ;ende bounce routine
  1065.  
  1066.  
  1067. ;++++++++++++++++color vbi ++++++++++++++++++
  1068.  
  1069. vbl:                                    ; vbl routine
  1070.  move.b #0,$fffa1b                      ; timer b stoppen
  1071.  
  1072.  movem.l D0-D7/A0-A6,-(sp)              ; register retten
  1073. x1:
  1074.  move.b #3,$fffa21                      ; Datenregister laden
  1075.  cmp.b #3,$fffa21
  1076.  bne.s x1
  1077. nochmal:
  1078.  move.l colpoint,A0                     ; Anfangswert der Farben holen
  1079.  add.l #coltab,A0 
  1080.  move.w (a0),D0
  1081.  cmp.w #$fff,D0
  1082.  bne erhoehen
  1083.  move.l #0,colpoint
  1084.  bra nochmal
  1085. erhoehen:
  1086.  move.l A0,colpo
  1087.  cmp.w #1,flag
  1088.  beq erh2
  1089.  add.l #2,A0
  1090.  move.w #1,flag
  1091.  bra erh3
  1092. erh2:
  1093.  move.w #0,flag
  1094. erh3:
  1095.  sub.l #coltab,A0
  1096.  move.l A0,colpoint                     ; zurueckschreiben
  1097.  
  1098.  move.w #0,$ff8240                      ;farbe setzen
  1099.  
  1100.  clr.w d_flag                           ;bouncende farbline
  1101.  cmp.w #21,colz2
  1102.  bne hblw1
  1103.  
  1104.  lea coltab2,A1
  1105.  
  1106.  move.w tabcount,D0             ;tabellen wechseln
  1107.  ext.l D0
  1108.  
  1109.  lea coltab3,A0
  1110.  add.l D0,A0
  1111.  
  1112.  movem.w (A0),D0-D7
  1113.  movem.w D0-D7,(A1)
  1114.  
  1115.  add.w #16,tabcount
  1116.  cmp.w #128,tabcount             ;zehn tabellen
  1117.  bne einb678
  1118.  clr.w tabcount
  1119. einb678:
  1120.  
  1121.  move.w #1,d_flag  
  1122.  move.w #1,cflag
  1123.  bra hblw2
  1124.  
  1125. hblw1:
  1126.  cmp.w #132,colz2
  1127.  
  1128.  bne hblw2
  1129.  
  1130.  lea coltab2,A1
  1131.  
  1132.  move.w tabcount,D0             ;tabellen wechseln
  1133.  ext.l D0
  1134.  
  1135.  lea coltab3,A0
  1136.  add.l D0,A0
  1137.  
  1138.  movem.w (A0),D0-D7
  1139.  movem.w D0-D7,(A1)
  1140.  
  1141.  add.w #16,tabcount
  1142.  cmp.w #128,tabcount             ;zehn tabellen
  1143.  bne einb679
  1144.  clr.w tabcount
  1145. einb679:
  1146.  clr.w cflag
  1147. hblw2:
  1148.  cmp.w #1,cflag
  1149.  bne hblw3
  1150.  add.w #3,colz2
  1151.  move.w colz2,colzaehler
  1152.  sub.w #6,colzaehler
  1153.  bra hblw5
  1154.  
  1155. hblw3:
  1156.  sub.w #3,colz2
  1157.  move.w colz2,colzaehler
  1158. hblw5:
  1159.  move.w #36,colz24
  1160.  cmp.w #99,colzaehler           ;schnell rantasten
  1161.  bls spez2
  1162.  move.l #hblspe15,$120
  1163.  move.w #15,spe15
  1164.  bra spez4
  1165. spez2:
  1166.  cmp.w #51,colzaehler
  1167.  bls spez3
  1168.  move.l #hblspe15,$120
  1169.  move.w #8,spe15
  1170.  bra spez4
  1171. spez3:
  1172.  move.l #hbl,$120
  1173. spez4:
  1174.  
  1175.                                 ;ein und ausblenden
  1176.  cmp.w #1,d_flag
  1177.  bne colvbi5
  1178.  
  1179.  ;cmp.w #1,b_flag
  1180.  ;bne colvbi5
  1181.  
  1182.  
  1183.  
  1184.  cmp.w #1,flag_b2
  1185.  bne ab
  1186.  
  1187. auf:                            ;einblenden
  1188.  
  1189.  clr.w d_flag
  1190.  ;move.w blend_zaehler,D7        ;zaehler
  1191.  lea coltab2,A1
  1192.  
  1193.  move.w tabcount,D0             ;tabellen wechseln
  1194.  ext.l D0
  1195.  
  1196.  lea coltab3,A0
  1197.  add.l D0,A0
  1198.  
  1199.  movem.w (A0),D0-D7
  1200.  movem.w D0-D7,(A1)
  1201.  bra wechsel2
  1202.  
  1203.  
  1204. einb:
  1205.  move.w D7,D6
  1206.  lsl.w #1,D6
  1207.  
  1208. move.w 0(A0,D6.w),D3            ;rot gruen und blauanteil ermitteln
  1209.  move.w D3,D2
  1210.  lsr.w #8,D2
  1211.  move.w D2,rot
  1212.  and.w #$ff,D3
  1213.  move.w D3,D2
  1214.  lsr.w #4,D2
  1215.  move.w D2,gruen  
  1216.  and.w #$f,D3
  1217.  move.w D3,blau
  1218.  
  1219.  
  1220.  
  1221.  move.w 0(A1,D6.w),D4
  1222.  move.w D4,D3
  1223.  lsr.w #8,D3
  1224.  cmp.w rot,D3
  1225.  beq tfuf
  1226.  move.w 0(A0,D6.w),0(A1,D6.w)
  1227.  
  1228.  bra tfuf2
  1229.  
  1230.  
  1231. tfuf:
  1232.  move.w D4,D3
  1233.  and.w #$ff,D3
  1234.  lsr.w #4,D3
  1235.  cmp.w gruen,D3
  1236.  beq tfuf3
  1237.  move.w 0(A0,D6.w),0(A1,D6.w)
  1238.  
  1239.  bra tfuf2
  1240.  
  1241. tfuf3:
  1242.  and.w #$f,D4
  1243.  cmp.w blau,D4
  1244.  beq tfuf4
  1245.  move.w 0(A0,D6.w),0(A1,D6.w)
  1246.  
  1247.  bra tfuf2
  1248.  
  1249.  
  1250.  
  1251. tfuf4:
  1252.  
  1253.  dbf D7,einb123
  1254. wechsel2:
  1255.  add.w #16,tabcount
  1256.  cmp.w #128,tabcount             ;zehn tabellen
  1257.  bne einb6
  1258.  clr.w tabcount
  1259. einb6:
  1260.  clr.w d_flag
  1261.  clr.w flag_b2
  1262.  clr.w b_flag
  1263.  move.w #22, wiev_zeil
  1264.  ;clr.w ab_wo
  1265.  ;clr.w wiev_zaeh
  1266. tfuf2:
  1267. colvbi5:
  1268.  move.b #8,$fffa1b                      ; timer b starten
  1269.  
  1270.  jmp raupe
  1271.  
  1272. einb123:
  1273.  sub.w #1,blend_zaehler
  1274.  
  1275.  bra colvbi5
  1276.  
  1277.  
  1278. ab: 
  1279.  bra wechsel1                   ;+****+*++**+++**++**+++**
  1280.  
  1281.  move.w blend_zaehler,D6                   ;zaehler
  1282.  lea coltab2,A1
  1283.  
  1284. einb2:
  1285.  move.w D6,D7
  1286.  lsl.w #1,D6
  1287.  
  1288.  move.w 0(A1,D6.w),D5
  1289.  move.w D5,D4
  1290.  lsr #8,D5                      ;r
  1291.  cmp.w #0,D5
  1292.  beq tfuf5
  1293.  move.w #0,0(A1,D6.w)
  1294.  
  1295.  bra tfuf10
  1296.  
  1297. tfuf5:
  1298.  move.w D4,D5
  1299.  and.w #$ff,D5
  1300.  lsr.w #4,D5                    ;g
  1301.  cmp.w #0,D5
  1302.  beq tfuf7
  1303.  sub.w #$10,0(A1,D6.w)
  1304.  
  1305.  sub.w #$10,D4
  1306.  move.w D4,D5
  1307.  and.w #$ff,D5
  1308.  lsr.w #4,D5                    ;g
  1309.  cmp.w #0,D5
  1310.  beq tfuf7
  1311.  sub.w #$10,0(A1,D6.w)
  1312.  
  1313.  sub.w #$10,D4
  1314.  move.w D4,D5
  1315.  and.w #$ff,D5
  1316.  lsr.w #4,D5                    ;g
  1317.  cmp.w #0,D5
  1318.  beq tfuf7
  1319.  sub.w #$10,0(A1,D6.w)
  1320.  
  1321.  bra tfuf10
  1322.  
  1323. tfuf7:
  1324.  and.w #$f,D4
  1325.  cmp.w #0,D4                    ;b
  1326.  beq tfuf8
  1327.  sub.w #1,0(A1,D6.w)
  1328.  
  1329.  sub.w #1,D4
  1330.  and.w #$f,D4
  1331.  cmp.w #0,D4                    ;b
  1332.  beq tfuf8
  1333.  sub.w #1,0(A1,D6.w)
  1334.  
  1335.  sub.w #1,D4
  1336.  and.w #$f,D4
  1337.  cmp.w #0,D4                    ;b
  1338.  beq tfuf8
  1339.  sub.w #1,0(A1,D6.w)
  1340.  
  1341.  
  1342.  
  1343.  bra tfuf10
  1344.  
  1345. tfuf8:
  1346.  dbf D7,einb124
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352. wechsel1:
  1353.  ;sub.w #1,wiev_zeil
  1354.  ;beq wechsel3
  1355.  ;add.l #160,ab_wo
  1356.  ;bra colvbi5
  1357. wechsel3:
  1358.  move.w #22,wiev_zeil
  1359.  clr.w ab_wo
  1360.  move.w #1,flag_b2
  1361.  clr.w col_f
  1362.  clr.w coladr
  1363.  cmp.l #string,string_zeig
  1364.  bne st22
  1365.  move.l #string2,string_zeig
  1366.  bra st32
  1367. st22:
  1368.  move.l #string,string_zeig
  1369. st32:
  1370. tfuf10: 
  1371. colvbi6:
  1372.  bra auf
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387. einb124:
  1388.  sub.w #1,blend_zaehler
  1389.  bra colvbi5
  1390.  
  1391.  
  1392. ;++++++++++++++++++hbl routine +++++++++++++++++
  1393.  
  1394. hblspe15:
  1395.  subq.w #6,colzaehler
  1396.  subq.w #1,spe15
  1397.  bne xxx223
  1398.  move.l #hbl,$120
  1399. xxx223:
  1400.   move.l A0,-(sp)                        ; aktuelle Farbe
  1401.  addq.l #2,colpo                        ; erhöhen
  1402.  move.l colpo,A0
  1403.  move.w (a0),$ff8240                         ;farbe lesen
  1404.  move.b #6,$fffa21
  1405.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1406.  move.l (sp)+,A0
  1407.  rte      
  1408.  
  1409.  
  1410.  
  1411.  
  1412. hbl:
  1413.  subq.w #3,colzaehler
  1414.  bne xxx123
  1415.  move.l #hbl4,$120
  1416. xxx123:
  1417.  move.l A0,-(sp)                        ; aktuelle Farbe
  1418.  addq.l #2,colpo                        ; erhöhen
  1419.  move.l colpo,A0
  1420.  move.w (a0),$ff8240                         ;farbe lesen
  1421.  move.b #3,$fffa21
  1422.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1423.  move.l (sp)+,A0
  1424.  rte
  1425.  
  1426.  
  1427.  
  1428.  
  1429. hbl2:
  1430.  add.l #36,colpo
  1431.  move.w #$000,$ff8240
  1432.  move.w col2,$ff8242
  1433.  move.l #hbl2a,$120
  1434.  move.b #12,$fffa21
  1435.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1436.  rte
  1437.  
  1438. hbl2a:
  1439.  move.l #hbl2b,$120
  1440.  move.b #12,$fffa21
  1441.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1442.  rte
  1443.  
  1444. hbl2b:
  1445.  move.l #hbl10,$120
  1446.  move.b #1,$fffa21
  1447.  move.b #$fe,$fffa0f
  1448.  rte
  1449.  
  1450.  
  1451.  
  1452. hbl3:
  1453.  move.w #0,$ff8240
  1454.  move.b #10,$fffa21
  1455.  move.b #$fe,$fffa0f
  1456.  move.b #0,$ffa1b
  1457.  rte
  1458.  
  1459.  
  1460.  
  1461. hbl4:
  1462.  move.w #$401,$ff8240
  1463.  move.w col6,$ff824c
  1464.  move.l #hbl4a,$120
  1465.  move.b #1,$fffa21
  1466.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1467.  rte
  1468.  
  1469.  
  1470. hbl4a:
  1471.  move.w #$502,$ff8240
  1472.  move.w col7,$ff824e
  1473.  move.l #hbl5,$120
  1474.  move.b #1,$fffa21
  1475.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1476.  rte
  1477.  
  1478. hbl5:
  1479.  move.w #$613,$ff8240
  1480.  move.w col8,$ff8250
  1481.  move.l #hbl6,$120
  1482.  move.b #1,$fffa21
  1483.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1484.  rte
  1485.  
  1486. hbl6:
  1487.  move.w #$725,$ff8240
  1488.  move.w col9,$ff8252
  1489.  move.l #hbl7,$120
  1490.  move.b #1,$fffa21
  1491.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1492.  rte
  1493.  
  1494. hbl7:
  1495.  move.w #$613,$ff8240
  1496.  move.w col10,$ff8254
  1497.  move.l #hbl8,$120
  1498.  move.b #1,$fffa21
  1499.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1500.  rte
  1501.  
  1502. hbl8:
  1503.  move.w #$502,$ff8240
  1504.  move.w col11,$ff8256
  1505.  move.l #hbl9,$120
  1506.  move.b #1,$fffa21
  1507.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1508.  rte
  1509.  
  1510. hbl9:
  1511.  move.w #$401,$ff8240
  1512.  move.w col12,$ff8258
  1513.  move.l #hbl2,$120
  1514.  move.b #1,$fffa21
  1515.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1516.  rte
  1517.  
  1518.  
  1519. hbl10:
  1520.  move.w #$401,$ff8240
  1521.  move.w #$477,$ff824c
  1522.  move.l #hbl10a,$120
  1523.  move.b #1,$fffa21
  1524.  move.b #$fe,$fffa0f
  1525.  rte
  1526.  
  1527.  
  1528. hbl10a:
  1529.  move.w #$502,$ff8240
  1530.  move.w #$077,$ff824e
  1531.  move.l #hbl11,$120
  1532.  move.b #1,$fffa21
  1533.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1534.  rte
  1535.  
  1536. hbl11:
  1537.  move.w #$613,$ff8240
  1538.  move.w #$067,$ff8250
  1539.  move.l #hbl12,$120
  1540.  move.b #1,$fffa21
  1541.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1542.  rte
  1543.  
  1544. hbl12:
  1545.  move.w #$725,$ff8240
  1546.  move.w #$057,$ff8252
  1547.  move.l #hbl13,$120
  1548.  move.b #1,$fffa21
  1549.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1550.  rte
  1551.  
  1552. hbl13:
  1553.  move.w #$613,$ff8240
  1554.  move.w #$047,$ff8254
  1555.  move.l #hbl14,$120
  1556.  move.b #1,$fffa21
  1557.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1558.  rte
  1559.  
  1560. hbl14:
  1561.  move.w #$502,$ff8240
  1562.  move.w #$037,$ff8256
  1563.  move.l #hbl15,$120
  1564.  move.b #1,$fffa21
  1565.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1566.  rte
  1567.  
  1568. hbl15:
  1569.  move.w #$401,$ff8240
  1570.  move.w #$026,$ff8258
  1571.  move.l #hbl16,$120
  1572.  move.b #1,$fffa21
  1573.  move.b #$fe,$fffa0f                    ;in service bit loeschen
  1574.  rte
  1575.  
  1576. hbl16:
  1577.  move.w #$0,$ff8240
  1578.  move.w #$777,$ff8242
  1579.  move.l #hbl3,$120
  1580.  move.b #1,$fffa21
  1581.  move.b #$fe,$fffa0f
  1582.  rte
  1583.  
  1584.  
  1585.  
  1586.  
  1587. tab:                    ;Zeiger auf Buchstaben
  1588.  blk.l 64,0
  1589.  
  1590. tab2:
  1591.  blk.l 64,0             ;zeiger auf zweiten Zeichensatz
  1592.  
  1593. xbild1:                  ;zeiger auf ersten fiktiven Bildschirm
  1594.  dc.l 0 
  1595. bildschirm:             ;Zeiger auf Bildschirmspeicher
  1596.  dc.l 0 
  1597. f_bildschirm:
  1598.  dc.l 0
  1599. blocknr:                ;Zeiger auf darzustellenden Block                
  1600.  dc.w 0
  1601.  
  1602. prog:                   ;Tabelle aller Bloecke
  1603.  dc.l 0,0,$61000,$60200,$61fa0,$60300,$62f40,$60400,$63ee0,$60500
  1604.  dc.l $64e80,$60600,$65e20,$60700,$66dc0,$60800
  1605.      ;0,0,block1,block22,block2,block23....block7,block20
  1606.  
  1607. puffer:                 ;adr aller nachschubbloecke
  1608.  dc.l $60800,$60100,$60200,$60300,$60400,$60500,$60600,$60700
  1609.  
  1610. zeiadr1:                 ;Darzustellendes Zeichen
  1611.  dc.l 0
  1612. zeiadr2:
  1613.  dc.l 0
  1614. zeichen:                ;Zeiger auf Text
  1615.  dc.w 0
  1616. text:
  1617.  dc.b 30,30,7,24,30,19,7,4,17,4,30,26,30,19,7,8,18,30,8,18
  1618.  dc.b 30,4,23,7,0,20,18,19,30,15,14,17,19,30,26,30,2
  1619.  dc.b 7,4,2,10,30,8
  1620.  dc.b 19,30,14,20,19,30,26,30,13,14,22,30,22,4,30,7,0
  1621.  dc.b 21,4,30,18,8,23,30,14,26,2,11,14,2,10,30,0,27,12
  1622.  dc.b 27,30,0,13
  1623.  dc.b 3,30,22,4,30,0,17,4,30,18,8,19,19,8,13,6,30,7,4
  1624.  dc.b 17,4,30,18,8,13,2,4,30,4,8,6,7,19,30,7,14,20,17
  1625.  dc.b 18,30,26,30
  1626.  dc.b 7,4,0,3,8,13,6,30,5,14,17,30,19,7,8,18,30,8,13
  1627.  dc.b 19,17,14,30,26,30,5,20,2,10,30,0,11,11,30,8,13  ;intro / f..
  1628.  dc.b 19,4,17,20,15,19
  1629.  dc.b 18,30,0,13,3,30,4,23,15,4,2,8,0,11,11,24,30,3
  1630.  dc.b 14,14,5,8,12,0,19,30,26,30,30,12,17,18,8,2,30   ;oofimat
  1631.  dc.b 5,11,14,6,4,11,30
  1632.  dc.b 26,30,6,14,30,19,14,30,7,4,11,11,30,26,30       ;hell / 
  1633.  dc.b 6,8,21,4,30,7,8,12,30,0,30,10,8,2,10,30,22,7,4
  1634.  dc.b 13,30,24,14,20,30,22,8,11,11,30,18,4,4,30,7,8,12,30,26,30,7
  1635.  dc.b 4,11,11,14,30,19,14,30,19,4,23,30,26,30,22,4,30
  1636.  dc.b 22,8,11,11,30                             ;will
  1637.  dc.b 17,4,0,2,7,30,24,14,20,30,26,30,30,6,17,4,4,19   
  1638.  dc.b 8,13,6,18,30,19,14,30,19,4,10,30,26,30,0,11,15 ;ings: tec, unisoft
  1639.  dc.b 7,0,5,11,8,6,7
  1640.  dc.b 19,30,26,30,20,13,8,18,14,5,19,30,26,30,7,24
  1641.  dc.b 15,4,17,25,8,17,1,11,4,17,30,26,30,3,20,10,4
  1642.  dc.b 30,0,11,11,8,13,6,19
  1643.  dc.b 14,13,30,26,30,9,20,13,6,11,4,30,5,8,6,7,19
  1644.  dc.b 4,17,30,26,30,6,17,0,15,7,8,2,18,30,0,17,4,30
  1645.  dc.b 12,0,3,4,30,1,24
  1646.  dc.b 30,18,2,14,19,2,7,30,26,30,15,17,14,6,17,0,12
  1647.  dc.b 12,4,3,30,8,18,30,8,19,30,1,24,30,5,11,14,24,3
  1648.  dc.b 30,26,30,22,4,30
  1649.  dc.b 0,17,4,30,18,4,0,17,2,7,8,13,6,30,5,14,17,30
  1650.  dc.b 18,14,12,4,14,13,4,30,22,7,14,30,8,18,30,0,1,11
  1651.  dc.b 4,30,19,14,30,2
  1652.  dc.b 14,12,15,14,18,4,30,0,13,3,30,15,17,14,6,17,0
  1653.  dc.b 12,30,18,14,20,13,3,19,17,0,2,10,18,30,26,30
  1654.  dc.b 22,17,8,19,4,30,19,14
  1655.  dc.b 30,20,18,30,26,30,15,11,10,30,0,30,31,32,33,34,35,36
  1656.  dc.b 30,37,38,36,31,30,1,20,4,3,8,13,6,4,13,30
  1657.  dc.b 26,30,30
  1658.  dc.b 30,30,$ff  
  1659.  even
  1660.  
  1661. text2:                  ;laenge immer 16   worte in halben buchstaben
  1662.  
  1663.  dc.b 59,59,59,10,11,22,23,28,29,48,49,6,7,59,59,59 ;floyd
  1664.  dc.b 30,31,34,35,28,29,12,13,34,35,0,1,24,25,36,37 ;programs
  1665.  dc.b 59,59,59,59,59,0,1,26,27,6,7,59,59,59,59,59 ; and
  1666.  dc.b 59,59,36,37,4,5,28,29,38,39,4,5,14,15,59,59 ;scotch
  1667.  dc.b 59,6,7,8,9,36,37,16,17,12,13,26,27,36,37,59 ;designs
  1668.  dc.b 59,30,31,34,35,28,29,40,41,6,7,22,23,48,49,59 ;proudly
  1669.  dc.b 30,31,34,35,8,9,36,37,8,9,26,27,38,39,36,37 ;presents
  1670.  dc.b 59,8,9,46,47,14,15,0,1,40,41,36,37,38,39,59 ; exhaust
  1671.  dc.b 59,59,59,30,31,28,29,34,35,38,39,36,37,59,59,59 ;ports
  1672.  dc.b 59,59,59,10,11,16,17,34,35,36,37,38,39,59,59,59;first
  1673.  dc.b 59,59,59,26,27,16,17,12,13,14,15,38,39,59,59,59 ;night
  1674.  dc.b 59,59,59,59,44,45,28,29,34,35,20,21,59,59,59,59 ;work
  1675.  dc.b $ff
  1676.  even
  1677.  
  1678. tex_zeig:               ;welcher buchstabe als naechstes
  1679.  dc.l 0
  1680. tex_zaehl:              ;zaehlt von 0 - 7
  1681.  dc.w 0
  1682. string_zeig:            ;zeiger auf string
  1683.  dc.l string2
  1684. string_mach:
  1685.  dc.l string
  1686. zeil_zaehl160:
  1687.  dc.l 0
  1688. zeil_zaehl128:
  1689.  dc.l 0
  1690.  
  1691.  
  1692.  
  1693. bounce:                 ;Zaehler fuer Bounce
  1694.  dc.l 0
  1695. bo_alt:                 ;alter Zaehler
  1696.  dc.l 0
  1697. bo_ualt:
  1698.  dc.l 0
  1699. bflag:
  1700.  dc.w 0
  1701. zaehler:                ;wie oft bounce
  1702.  dc.w 0
  1703. s_tab:
  1704.  dc.l 0,0,0,160,0,160,0,160,0,160,160,160,160,160,160,320,320,320,320,320
  1705.  dc.l 320,320,320,480,480,480,480,480,640,640,640,640,800,800,800,800,960,1
  1706.  dc.l 960,800,800,800,800,640,640,640,640,480,480,480,480,480,320,320,320
  1707.  dc.l 320,320,320,320,320,160,160,160,160,160,160,0,160,0,160,0,160,0,0,0,2
  1708.  
  1709. zwischen:
  1710.  dc.w 0
  1711.  
  1712.  
  1713. buff:
  1714.  dc.l 0,0,0,0,0
  1715. anfang:
  1716.  dc.w 1
  1717. aktuell:
  1718.  dc.w 1 
  1719.  
  1720.  
  1721. name:
  1722.  dc.b 'b',0
  1723.  even
  1724. name2:
  1725.  dc.b 'a',0
  1726.  even
  1727. name3:
  1728.  dc.b 'c',0
  1729.  even
  1730. name4:
  1731.  dc.b 'f',0
  1732.  
  1733.  
  1734.  
  1735. mls:                    ;maske links schrift
  1736.  dc.w $3ff
  1737. mrs:
  1738.                    ;maske rechts schrift
  1739.  dc.w $ff80
  1740.  
  1741. zwi2:
  1742.  dc.l $0
  1743.  
  1744.  
  1745.  
  1746. s1:                    ;stern1
  1747.  dc.w $fbbf,$fd7f,$feff,$fd7f,$fbbf
  1748.  
  1749. s2:
  1750.  dc.w $f7d7,$fbbf,$fc7f,$fc7f,$fc7f,$fbbf,$f7d7
  1751.  
  1752. s3:
  1753.  dc.w $efef,$f7df,$f93f,$f83f,$fcff,$f83f,$f93f,$f7df,$efef
  1754.  
  1755. s4:
  1756.  dc.w $dff7,$efef,$f7df,$f93f,$f83f,$fcff,$f83f,$f93f,$f7df,$efef,$dff7
  1757.  
  1758. s5:
  1759.  dc.w $bffb,$dff7,$efef,$f7df,$f93f,$f83f,$fcff,$f83f,$f93f,$f7df,$efef
  1760.  dc.w $dff7,$bffb
  1761.  
  1762. blink:                  ;offset fuer blinken
  1763.  dc.l 2408,3232,3728,2824,4712,8000,17600,28800,24000,4800,30400
  1764.  dc.l 17912,5272,12312,28792,30000,30040,29784
  1765.  
  1766. wo:                     ;wo blinken
  1767.  dc.w 11,10,7,5,4,3,16,2,1,15,1,18,2,17,9,16,4,15,5,14,8,13,9,17,15,14
  1768.  dc.w 3,6,13,7,5,17,12,8,11,16,0,10,12,18,16,17,14,15,$ff
  1769.       
  1770. zawo:                   ;zaehler fuer wo
  1771.  dc.w 0
  1772. zaact:
  1773.  dc.w 0                 ;zaehler fuer act flag
  1774. act:
  1775.  dc.w 0                 ;gerade in arbeit flag
  1776. h_flag:                 
  1777.  dc.w 0                 ;Hintergrundwiederherstellenflag
  1778. blink_act:              ;wo blinken
  1779.  dc.l 17912
  1780. jump:
  1781.  dc.l 0                 ;Sprungadresse
  1782. blink_alt1:
  1783.  dc.l 0
  1784. blink_alt2:
  1785.  dc.l 0
  1786. colpoint:               ;zeiger auf coltab
  1787.  dc.l 0
  1788. colpo:
  1789.  dc.l 0
  1790. coltab:                 ;Tabelle fuer farblaufen
  1791.  
  1792.  dc.w $666,$555,$444,$333,$222,$111,$000,$002,$003,$004,$005,$026,$037,$047
  1793.  dc.w $057,$267,$277,$377,$477,$577,$677,$776,$775,$774,$773,$772,$572
  1794.  dc.w $570,$470,$370,$260,$050,$040,$050,$062,$073
  1795.  dc.w $074,$075,$275,$277,$377,$477,$577,$677,$777,$677,$577
  1796.  dc.w $477,$366,$255,$144,$033,$022,$220,$330
  1797.  dc.w $441,$552,$663,$774,$775,$776,$777,$767,$757,$747
  1798.  dc.w $636,$525,$414,$303,$202,$300,$310
  1799.  dc.w $421,$532,$643,$754,$765,$766,$777,$767,$757,$746
  1800.  dc.w $725,$724,$613,$502,$401,$301,$200
  1801.  dc.w $111,$222,$333,$444,$555,$666,$fff
  1802.  
  1803.  dc.w $666,$555,$444,$333,$222,$111,$000,$002,$003,$004,$005,$026,$037,$047
  1804.  dc.w $057,$267,$277,$377,$477,$577,$677,$776,$775,$774,$773,$772,$572
  1805.  dc.w $570,$470,$370,$260,$050,$040,$050,$062,$073
  1806.  dc.w $074,$075,$275,$277,$377,$477,$577,$677,$777,$677,$577
  1807.  
  1808.  
  1809. colzaehler:
  1810.  dc.w 132
  1811. colz2:
  1812.  dc.w 132
  1813. flag:                   ;fuer langsamere Farben
  1814.  dc.w 0
  1815. cflag:
  1816.  dc.w 0
  1817. colz3:
  1818.  dc.w 0
  1819. colz4:
  1820.  dc.w 0
  1821. leer:
  1822.  dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  1823. colz24:
  1824.  dc.w 0
  1825. help:
  1826. dc.w 0
  1827.  
  1828. bit_versch:             ;zaehler fuer buffnach
  1829.  dc.w 0
  1830.  
  1831. coltab2:
  1832. col6:
  1833.  dc.w $020
  1834. col7:
  1835.  dc.w $030
  1836. col8:
  1837.  dc.w $040
  1838. col9:
  1839.  dc.w $050
  1840. col10:
  1841.  dc.w $260
  1842. col11: 
  1843.  dc.w $370
  1844. col12:
  1845.  dc.w $074
  1846. col2:
  1847.  dc.w $075 
  1848.  
  1849. coltab3:                        ;gruen
  1850.  dc.w $020,$030,$040,$050,$260,$370,$470,$570
  1851.  
  1852. coltab4:                        ;grau
  1853.  dc.w $111,$222,$223,$333,$444,$555,$556,$666
  1854.  
  1855. coltab5:                        ;tuerkis
  1856.  dc.w $022,$033,$144,$255,$366,$477,$577,$677
  1857.  
  1858. coltab6:                        ;olive
  1859.  dc.w $220,$330,$441,$552,$663,$774,$775,$776
  1860.  
  1861. coltab7:                        ;lila
  1862.  dc.w $202,$303,$414,$525,$636,$747,$757,$767
  1863.  
  1864. coltab8:                        ;rosa
  1865.  dc.w $301,$401,$502,$613,$724,$725,$746,$757
  1866.  
  1867. coltab9:                        ;braun
  1868.  dc.w $300,$310,$421,$532,$543,$754,$765,$766
  1869.  
  1870. coltab10:                       ;blau
  1871.  dc.w $004,$026,$037,$047,$057,$267,$277,$377
  1872.  
  1873. tabcount:
  1874.  dc.w 0
  1875.  
  1876. spe15:
  1877.  dc.l 0
  1878. spe8:
  1879.  dc.l 0
  1880.  
  1881. blink_alt:
  1882.  dc.l 17912
  1883.  
  1884. b_flag:
  1885.  dc.w 0
  1886.  
  1887. coladr:
  1888.  dc.l 0
  1889. col_f:
  1890.  dc.w 0
  1891.  
  1892. flag_b2:
  1893.  dc.w 0
  1894.  
  1895. rot:
  1896.  dc.w 0
  1897. gruen:
  1898.  dc.w 0
  1899. blau:
  1900.  dc.w 0
  1901. blend_zaehler:
  1902.  dc.w 0
  1903. d_flag:
  1904.  dc.w 0
  1905.  
  1906. wiev_zeil:
  1907.  dc.w 0
  1908. ab_wo:
  1909.  dc.l 0
  1910. wiev_zaeh:
  1911.  dc.w 0
  1912. savereg:
  1913.  dc.l 0
  1914. savebuff:
  1915.  dc.l 0,0,0,0,0,0,0,0,0,0
  1916.  
  1917.  
  1918.  end 
  1919.