home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src6.dms / in.adf / DMZ.LZH / PRG15.1 < prev    next >
Encoding:
Text File  |  1999-10-02  |  20.7 KB  |  812 lines

  1. ALLOCMEM:    EQU    -198
  2. FREEMEM:    EQU    -210
  3. OPENLIBRARY:    EQU    -552
  4. MEMF_CHIP:    EQU    $10002
  5. LINES:        EQU    200            ; Antal skärmrader
  6. COLUMNS:    EQU    320/8            ; Antal skärmkolumner
  7. BPLSIZE:    EQU    LINES*COLUMNS        ; Bytes/bitplan
  8. DBOBOFFSET:    EQU    COLUMNS*[LINES/2-32]    ; Skärmoffset till bob D
  9. MBOBOFFSET:    EQU    DBOBOFFSET+[8*COLUMNS]    ; Skärmoffset till bob M
  10. ZBOBOFFSET:    EQU    MBOBOFFSET+[24*COLUMNS]    ; Skärmoffset till bob z
  11. TXTOFFSET:    EQU    184*COLUMNS        ; Skärmoffset till scroll
  12.  
  13. ALLOCM:        MACRO
  14.         MOVE.L    #?1,D0
  15.         MOVE.L    #?2,D1
  16.         JSR    ALLOCMEM(A6)
  17.         ENDM
  18.  
  19. FREEM:        MACRO
  20.         MOVE.L    ?1,D0
  21.         BEQ.S    MEMFREE?0
  22.         MOVE.L    D0,A1
  23.         MOVE.L    #?2,D0
  24.         JSR    FREEMEM(A6)
  25. MEMFREE?0:    ENDM
  26.  
  27. OPENLIB:    MACRO
  28.         LEA.L    ?1(PC),A1
  29.         MOVEQ    #?2,D0
  30.         JSR    OPENLIBRARY(A6)
  31.         ENDM
  32.  
  33. BLTWAIT:    MACRO
  34. BLTBUSY?0:    BTST    #6,$02(A6)
  35.         BNE.S    BLTBUSY?0
  36.         ENDM
  37.  
  38. SYNC:        MACRO
  39. RASTWAIT?0:    MOVE.L    $04(A6),D0
  40.         AND.L    #$1FF00,D0
  41.         LSR.L    #8,D0
  42.         CMP.W    #?1,D0
  43.         BNE.S    RASTWAIT?0
  44.         ENDM
  45.  
  46. UNDEF:        MACRO
  47.         DC.B    %00000000        ; Grafik för odefinierade
  48.         DC.B    %00000000        ; tecken
  49.         DC.B    %00000000
  50.         DC.B    %00000000
  51.         DC.B    %00000000
  52.         DC.B    %00011000
  53.         DC.B    %00011000
  54.         DC.B    0
  55.         ENDM
  56.  
  57. BEGIN:        MOVEM.L    D0-D7/A0-A6,-(SP)
  58.  
  59. INIT:        MOVE.L    $4.W,A6
  60.         AllocM    4*BPLSIZE,MEMF_CHIP    ; Allokera bitplan
  61.         MOVE.L    D0,BPLPTR
  62.         BEQ.L    INITFAILED
  63.         MOVE.L    D0,DBOBPTR
  64.         MOVE.L    D0,MBOBPTR
  65.         MOVE.L    D0,ZBOBPTR
  66.  
  67.         AllocM    COPSIZE,MEMF_CHIP    ; Allokera copper
  68.         MOVE.L    D0,COPPTR
  69.         BEQ.L    INITFAILED
  70.  
  71.         OpenLib    GFXNAME,0        ; Öppna graphics.library
  72.         MOVE.L    D0,GFXBASE
  73.         BEQ.L    INITFAILED
  74.         MOVE.L    D0,A6
  75.         MOVE.L    $26(A6),OLDCOP        ; Spar gammal copper
  76.  
  77.         LEA.L    $DFF000,A6
  78.         Sync    $0FF            ; Vänta på rad $0FF
  79.         MOVE.W    #$4000,$9A(A6)        ; Stäng av interrupt
  80.         MOVE.W    $02(A6),DMAENAR        ; Spar gammal DMA
  81.         BSET    #7,DMAENAR
  82.         MOVE.W    #$7FFF,$96(A6)        ; Slå av all DMA
  83.         MOVE.L    COPPTR(PC),$80(A6)    ; Ställ in copperpekare
  84.  
  85.         MOVE.W    #$2C91,$008E(A6)    ; DIWSTRT
  86.         MOVE.W    #$F4B1,$0090(A6)    ; DIWSTOP
  87.         MOVE.W    #$0038,$0092(A6)    ; DDFSTRT
  88.         MOVE.W    #$00D0,$0094(A6)    ; DDFSTOP
  89.         MOVE.W    #$4000,$0100(A6)    ; BPLCON0
  90.         MOVE.W    #$0000,$0104(A6)    ; BPLCON2
  91.         MOVE.W    #$0000,$010A(A6)    ; BPLMOD2
  92.  
  93.         LEA.L    BPL1PTR+2(PC),A0
  94.         MOVE.L    BPLPTR(PC),D0
  95.         MOVEQ    #3,D7
  96. INITBPL:    SWAP    D0
  97.         MOVE.W    D0,(A0)            ; Ställ in bitplanspekare
  98.         SWAP    D0
  99.         MOVE.W    D0,4(A0)
  100.         ADD.L    #BPLSIZE,D0
  101.         ADDQ.L    #8,A0
  102.         DBF    D7,INITBPL
  103.  
  104.         LEA.L    BARS(PC),A0
  105.         MOVE.L    #$6807FFFE,D0
  106.         MOVEQ    #79,D7
  107. INITBARS:    MOVE.L    D0,(A0)            ; Initiera copperlista
  108.         ADD.L    #$01000000,D0        ; för bars
  109.         ADDQ.L    #8,A0
  110.         DBF    D7,INITBARS
  111.  
  112.         LEA.L    COLORTBL(PC),A0
  113.         LEA.L    $180(A6),A1
  114.         MOVEQ    #31,D7
  115. INITCOLORS:    MOVE.W    (A0)+,(A1)+        ; Ställ in 32 färger
  116.         DBF    D7,INITCOLORS
  117.  
  118.         LEA.L    COPPER(PC),A0
  119.         MOVE.L    COPPTR(PC),A1
  120.         MOVE.W    #COPSIZE/4-1,D7
  121. COP2CHIP:    MOVE.L    (A0)+,(A1)+        ; Flytta till ChipMem
  122.         DBF    D7,COP2CHIP
  123.  
  124.         MOVE.W    #$83E0,$96(A6)        ; Slå på bpl, blt, cop
  125.                         ; och spr DMA
  126.  
  127. MAIN:        BTST    #6,$BFE001        ; Vänster musknapp?
  128.         BEQ.L    EXIT
  129.  
  130.         Sync    $0E0            ; Vänta på rad $0E0
  131.  
  132.         MOVE.W    SPRCOUNTER(PC),D0    ; Räknare för sprites
  133.         ADDQ.W    #2,SPRCOUNTER        ; Öka räknare
  134.         MOVE.W    D0,D1
  135.         LSR.W    #2,D1
  136.         LEA.L    SINTBL(PC),A0
  137.         MOVE.L    COPPTR(PC),A1
  138.         LEA.L    OFFS_SPRS+2(A1),A1    ; Spritepekare
  139.         LEA.L    SPRGFX(PC),A2
  140.         MOVEQ    #7,D7
  141. PUTSPRITES:    AND.W    #511,D0
  142.         AND.W    #7,D1
  143.         MOVE.W    D1,D2
  144.         MULU    #72,D2            ; Räkna ut spritepekare
  145.         ADD.L    A2,D2
  146.         SWAP    D2
  147.         MOVE.W    D2,(A1)            ; Ställ in spritepekare
  148.         SWAP    D2
  149.         MOVE.W    D2,4(A1)
  150.         SUB.L    A2,D2
  151.         ADDQ.L    #8,A1
  152.         MOVE.W    (A0,D0.W),D3        ; Sinus för D0
  153.         MULS    #80,D3            ; y-radie
  154.         ASL.L    #2,D3
  155.         SWAP    D3
  156.         ADD.W    #$2C+92,D3        ; Centrera
  157.         MOVE.B    D3,$00(A2,D2.W)        ; y-start
  158.         ADD.B    #16,D3
  159.         MOVE.B    D3,$02(A2,D2.W)        ; y-stop
  160.         MOVE.W    -128(A0,D0.W),D3    ; Cosinus för D0
  161.         MULS    #40,D3            ; x-radie
  162.         ASL.L    #2,D3
  163.         SWAP    D3
  164.         ADD.W    #$81+152,D3        ; Centrera
  165.         ROR.W    #1,D3
  166.         MOVE.B    D3,$01(A2,D2.W)        ; x-start högsta bitarna
  167.         ROL.W    #1,D3
  168.         AND.B    #$01,D3
  169.         MOVE.B    D3,$03(A2,D2.W)        ; x-start lägsta biten
  170.         ADD.W    #16,D0            ; Öka vinkeln
  171.         ADDQ.W    #1,D1
  172.         DBF    D7,PUTSPRITES
  173.  
  174.         MOVE.L    COPPTR(PC),A1
  175.         LEA.L    OFFS_BARS+4(A1),A1    ; Pekare till bars i
  176.         MOVE.L    #$01800000,D0        ; copperlistan
  177.         MOVEQ    #79,D7
  178. CLRBARS:    MOVE.L    D0,(A1)            ; Nollställ listan
  179.         ADDQ.L    #8,A1
  180.         DBF    D7,CLRBARS
  181.  
  182.         MOVE.W    BARCOUNTER(PC),D0    ; Räknare för bars
  183.         ADDQ.W    #4,BARCOUNTER        ; Öka räknaren
  184.         AND.W    #511,D0
  185.         LEA.L    SINTBL(PC),A0
  186.         MOVE.L    COPPTR(PC),A1
  187.         LEA.L    OFFS_BARS+6(A1),A1
  188.         MOVEQ    #3,D7
  189. PUTBARS:    MOVE.W    (A0,D0.W),D1        ; Sinus för D0
  190.         MULS    #32,D1            ; Amplitud
  191.         ASL.L    #2,D1
  192.         SWAP    D1
  193.         MULS    #8,D1
  194.         ADD.W    #8*32,D1        ; Centrera
  195.         LEA.L    WHITE(PC),A2
  196.         MOVE.W    D7,D2
  197.         ADD.W    D2,D2
  198.         MOVE.W    (A2,D2.W),D2        ; Hämta grundfärg
  199.         LEA.L    BARGFX(PC),A2
  200.         MOVEQ    #15,D6
  201. PUTBAR:        MOVE.W    (A2)+,D3
  202.         AND.W    D2,D3            ; Justera färg
  203.         MOVE.W    D3,(A1,D1.W)
  204.         ADDQ.W    #8,D1
  205.         DBF    D6,PUTBAR
  206.         SUB.W    #32,D0
  207.         DBF    D7,PUTBARS
  208.  
  209.         MOVE.L    #$01000000,$40(A6)
  210.         MOVE.L    #$FFFFFFFF,$44(A6)
  211.         MOVE.W    #$0020,$66(A6)
  212.         MOVE.L    DBOBPTR(PC),$54(A6)
  213.         MOVE.W    #64*48+4,$58(A6)    ; Ta bort gamla bob D
  214.         BltWait
  215.         MOVE.W    #$001E,$66(A6)
  216.         MOVE.L    MBOBPTR(PC),$54(A6)
  217.         MOVE.W    #64*48+5,$58(A6)    ; Ta bort gamla bob M
  218.         BltWait
  219.         MOVE.W    #$0022,$66(A6)
  220.         MOVE.L    ZBOBPTR(PC),$54(A6)
  221.         MOVE.W    #64*32+3,$58(A6)    ; Ta bort gamla bob z
  222.         BltWait
  223.  
  224.         MOVE.W    BOBCOUNTER(PC),D0    ; Räknare för bobs
  225.         ADDQ.W    #2,BOBCOUNTER        ; Öka räknare
  226.         AND.W    #511,D0
  227.         LEA.L    SINTBL(PC),A0
  228.  
  229.         MOVE.W    (A0,D0.W),D1        ; Sinus för D0
  230.         MULS    #112,D1            ; Amplitud
  231.         ASL.L    #2,D1
  232.         CLR.W    D1
  233.         SWAP    D1
  234.         ADD.W    #320/2-24,D1        ; Centrera
  235.         BSR.L    CALCXPOS        ; Ställ in x-position
  236.         ADD.L    BPLPTR(PC),D2
  237.         ADD.L    #1*BPLSIZE+DBOBOFFSET,D2; Bitplan 2
  238.         MOVE.L    D2,DBOBPTR
  239.         MOVE.L    #DBOBGFX,$50(A6)
  240.         MOVE.L    D2,$54(A6)
  241.         MOVE.L    #$00000020,$64(A6)
  242.         MOVE.W    #64*48+4,$58(A6)    ; Rita bob D
  243.         BltWait
  244.  
  245.         SUB.W    #64,D0            ; Minska vinkel
  246.         MOVE.W    (A0,D0.W),D1        ; Sinus för D0
  247.         MULS    #112,D1            ; Amplitud
  248.         ASL.L    #2,D1
  249.         CLR.W    D1
  250.         SWAP    D1
  251.         ADD.W    #320/2-32,D1        ; Centrera
  252.         BSR.L    CALCXPOS        ; Ställ in x-position
  253.         ADD.L    BPLPTR(PC),D2
  254.         ADD.L    #2*BPLSIZE+MBOBOFFSET,D2; Bitplan 3
  255.         MOVE.L    D2,MBOBPTR
  256.         MOVE.L    #MBOBGFX,$50(A6)
  257.         MOVE.L    D2,$54(A6)
  258.         MOVE.L    #$0000001E,$64(A6)
  259.         MOVE.W    #64*48+5,$58(A6)    ; Rita bob M
  260.         BltWait
  261.  
  262.         SUB.W    #64,D0            ; Minska vinkel
  263.         MOVE.W    (A0,D0.W),D1        ; Sinus för D0
  264.         MULS    #112,D1            ; Amplitud
  265.         ASL.L    #2,D1
  266.         CLR.W    D1
  267.         SWAP    D1
  268.         ADD.W    #320/2-16,D1        ; Centrera
  269.         BSR.L    CALCXPOS        ; Ställ in x-position
  270.         ADD.L    BPLPTR(PC),D2
  271.         ADD.L    #3*BPLSIZE+ZBOBOFFSET,D2; Bitplan 4
  272.         MOVE.L    D2,ZBOBPTR
  273.         MOVE.L    #ZBOBGFX,$50(A6)
  274.         MOVE.L    D2,$54(A6)
  275.         MOVE.L    #$00000022,$64(A6)
  276.         MOVE.W    #64*32+3,$58(A6)    ; Rita bob z
  277.         BltWait
  278.  
  279.         MOVE.W    TXTCOUNTER(PC),D0    ; Räknare för scrolltext
  280.         ADDQ.W    #1,TXTCOUNTER        ; Öka räknare
  281.         AND.W    #7,D0            ; Nytt tecken?
  282.         BNE.S    ONLYSCROLL
  283.         BSR.L    PRINTCHAR        ; Skriv nytt tecken
  284.  
  285. ONLYSCROLL:    MOVE.L    BPLPTR(PC),D0
  286.         ADD.L    #TXTOFFSET,D0
  287.         MOVE.W    #$F9F0,$40(A6)        ; Scrolla en pixel åt
  288.         CLR.L    $64(A6)            ; vänster
  289.         MOVE.L    D0,$50(A6)
  290.         SUBQ.L    #2,D0
  291.         MOVE.L    D0,$54(A6)
  292.         MOVE.W    #64*8+[COLUMNS/2],$58(A6)
  293.         BltWait
  294.  
  295.         MOVE.W    SCRCOUNTER(PC),D0    ; Räknare för horisontell
  296.         ADDQ.W    #2,SCRCOUNTER        ; copper-scroll
  297.         LEA.L    SCROLLTBL(PC),A0
  298.         MOVE.L    COPPTR(PC),A1
  299.         LEA.L    OFFS_SCROLL+6(A1),A1
  300.         LEA.L    MIRROREND-SCROLL(A1),A2
  301.         MOVEQ    #7,D7
  302. DOSCROLL:    AND.W    #63,D0
  303.         MOVE.W    (A0,D0.W),(A1)        ; Scrollvärde
  304.         MOVE.W    (A0,D0.W),(A2)        ; Spegling
  305.         ADDQ.W    #2,D0
  306.         ADD.L    #12,A1
  307.         SUBQ.L    #8,A2
  308.         DBF    D7,DOSCROLL
  309.  
  310.         BRA.L    MAIN
  311.  
  312. CALCXPOS:    MOVEQ    #0,D2
  313.         ROR.L    #4,D1
  314.         MOVE.W    D1,D2
  315.         ADD.W    D2,D2            ; Word inom rad
  316.         SWAP    D1
  317.         OR.W    #$09F0,D1
  318.         MOVE.W    D1,$40(A6)        ; D = A
  319.         RTS
  320.  
  321. PRINTCHAR:    MOVE.L    TXTPTR(PC),A0
  322.         ADDQ.L    #1,TXTPTR
  323.         CLR.W    D0
  324.         MOVE.B    (A0),D0            ; Läs tecken
  325.         BNE.S    NOTENDOFTEXT        ; Slut på text?
  326.         MOVE.L    #TEXT,TXTPTR        ; Börja om
  327.         BRA.S    PRINTCHAR
  328. NOTENDOFTEXT:    SUB.B    #' ',D0
  329.         ASL.W    #3,D0            ; Offset till grafik
  330.         LEA.L    FONT(PC),A0
  331.         MOVE.L    BPLPTR(PC),A1
  332.         LEA.L    TXTOFFSET+COLUMNS-2(A1),A1
  333.         MOVEQ    #7,D7
  334. PUTCHAR:    MOVE.B    (A0,D0.W),(A1)        ; Skriv ut tecken
  335.         ADDQ.W    #1,D0
  336.         ADD.L    #COLUMNS,A1
  337.         DBF    D7,PUTCHAR
  338.         RTS
  339.  
  340. EXIT:        LEA.L    $DFF000,A6
  341.         MOVE.L    OLDCOP(PC),$80(A6)    ; Återställ copper
  342.         MOVE.W    #$7FFF,$96(A6)
  343.         MOVE.W    DMAENAR(PC),$96(A6)    ; Återställ DMA
  344.         MOVE.W    #$C000,$9A(A6)        ; Slå på interrupt
  345. INITFAILED:    MOVE.L    $4.W,A6
  346.         FreeM    COPPTR,COPSIZE        ; Deallokera copper
  347.         FreeM    BPLPTR,4*BPLSIZE    ; Deallokera bitplan
  348. RETURN:        MOVEM.L    (SP)+,D0-D7/A0-A6
  349.         RTS
  350.  
  351. COPPER:        DC.W    $0102,$0000        ; Scroll = 0
  352.         DC.W    $0108,$0000        ; Modulo = 0
  353. BPL1PTR:    DC.W    $00E0,$0000        ; Bitplanspekare
  354.         DC.W    $00E2,$0000
  355. BPL2PTR:    DC.W    $00E4,$0000
  356.         DC.W    $00E6,$0000
  357. BPL3PTR:    DC.W    $00E8,$0000
  358.         DC.W    $00EA,$0000
  359. BPL4PTR:    DC.W    $00EC,$0000
  360.         DC.W    $00EE,$0000
  361. SPR0PTR:    DC.W    $0120,$0000        ; Spritepekare
  362.         DC.W    $0122,$0000
  363. SPR1PTR:    DC.W    $0124,$0000
  364.         DC.W    $0126,$0000
  365. SPR2PTR:    DC.W    $0128,$0000
  366.         DC.W    $012A,$0000
  367. SPR3PTR:    DC.W    $012C,$0000
  368.         DC.W    $012E,$0000
  369. SPR4PTR:    DC.W    $0130,$0000
  370.         DC.W    $0132,$0000
  371. SPR5PTR:    DC.W    $0134,$0000
  372.         DC.W    $0136,$0000
  373. SPR6PTR:    DC.W    $0138,$0000
  374.         DC.W    $013A,$0000
  375. SPR7PTR:    DC.W    $013C,$0000
  376.         DC.W    $013E,$0000
  377.  
  378.         DC.W    $0180,$000        ; Svart bakgrund
  379. BARS:        BLK.L    2*80,0            ; Area för bars
  380.  
  381. SCROLL:        DC.W    $E407,$FFFE,$0102,$0000,$0182,$888
  382.         DC.W    $E507,$FFFE,$0102,$0000,$0182,$999
  383.         DC.W    $E607,$FFFE,$0102,$0000,$0182,$AAA
  384.         DC.W    $E707,$FFFE,$0102,$0000,$0182,$BBB
  385.         DC.W    $E807,$FFFE,$0102,$0000,$0182,$CCC
  386.         DC.W    $E907,$FFFE,$0102,$0000,$0182,$DDD
  387.         DC.W    $EA07,$FFFE,$0102,$0000,$0182,$EEE
  388.         DC.W    $EB07,$FFFE,$0102,$0000,$0182,$FFF
  389.  
  390.         DC.W    $0108,-COLUMNS
  391. MIRROR:        DC.W    $EC07,$FFFE,$0108,-2*COLUMNS
  392.         DC.W    $0180,$00F,$0182,$112,$0102,$0000
  393.         DC.W    $ED07,$FFFE,$0102,$0000
  394.         DC.W    $EE07,$FFFE,$0102,$0000
  395.         DC.W    $EF07,$FFFE,$0102,$0000
  396.         DC.W    $F007,$FFFE,$0102,$0000
  397.         DC.W    $F107,$FFFE,$0102,$0000
  398.         DC.W    $F207,$FFFE,$0102,$0000
  399. MIRROREND:    DC.W    $F307,$FFFE,$0102,$0000
  400.  
  401.  
  402. COPEND:        DC.W    $FFFF,$FFFE        ; Slut på coppern
  403.  
  404. COPSIZE:    EQU    *-COPPER
  405. OFFS_BARS:    EQU    BARS-COPPER        ; Offsets inom copper-
  406. OFFS_SPRS:    EQU    SPR0PTR-COPPER        ; lista
  407. OFFS_SCROLL:    EQU    SCROLL-COPPER
  408.  
  409. GFXBASE:    DC.L    0
  410. GFXNAME:    DC.B    'graphics.library',0
  411. EVEN
  412. DMAENAR:    DC.W    0            ; Gammal DMA
  413. OLDCOP:        DC.L    0            ; Gammal copper-pekare
  414. COPPTR:        DC.L     0            ; Vår copper-pekare
  415. BPLPTR:        DC.L    0            ; Vår bitplans-pekare
  416. DBOBPTR:    DC.L    0            ; Adresser för
  417. MBOBPTR:    DC.L    0            ; föregående bobs
  418. ZBOBPTR:    DC.L    0
  419. TXTPTR:        DC.L    TEXT            ; Pekare till text
  420. BARCOUNTER:    DC.W    0            ; Räknare för bars
  421. SPRCOUNTER:    DC.W    0            ; Räknare för sprites
  422. BOBCOUNTER:    DC.W    0            ; Räknare för bobs
  423. TXTCOUNTER:    DC.W    0            ; Räknare för text
  424. SCRCOUNTER:    DC.W    0            ; Räknare för scroll
  425.  
  426. COLORTBL:    DC.W    $000,$CCC,$F00,$CCC,$F0F,$CCC,$F05,$CCC
  427.         DC.W    $0FF,$CCC,$F55,$CCC,$F5F,$CCC,$F5A,$CCC
  428.         DC.W    $000,$099,$0CC,$0FF,$000,$909,$C0C,$F0F
  429.         DC.W    $000,$900,$C00,$F00,$000,$999,$CCC,$FFF
  430.  
  431. COSTBL:        DC.L    $00000192,$032304B5,$064507D5,$09640AF1
  432.         DC.L    $0C7C0E05,$0F8C1111,$12941413,$158F1708
  433.         DC.L    $187D19EF,$1B5D1CC6,$1E2B1F8B,$20E7223D
  434.         DC.L    $238E24DA,$261F275F,$289929CD,$2AFA2C21
  435.         DC.L    $2D412E5A,$2F6B3076,$31793274,$33673453
  436.         DC.L    $35363612,$36E537AF,$3871392A,$39DA3A82
  437.         DC.L    $3B203BB6,$3C423CC5,$3D3E3DAE,$3E143E71
  438.         DC.L    $3EC53F0E,$3F4E3F84,$3FB13FD3,$3FEC3FFB
  439.  
  440. SINTBL:        DC.L    $40003FFB,$3FEC3FD3,$3FB13F84,$3F4E3F0E
  441.         DC.L    $3EC53E71,$3E143DAE,$3D3E3CC5,$3C423BB6
  442.         DC.L    $3B203A82,$39DA392A,$387137AF,$36E53612
  443.         DC.L    $35363453,$33673274,$31793076,$2F6B2E5A
  444.         DC.L    $2D412C21,$2AFA29CD,$2899275F,$261F24DA
  445.         DC.L    $238E223D,$20E71F8B,$1E2B1CC6,$1B5D19EF
  446.         DC.L    $187D1708,$158F1413,$12941111,$0F8C0E05
  447.         DC.L    $0C7C0AF1,$096407D5,$064504B5,$03230192
  448.  
  449.         DC.L    $0000FE6E,$FCDDFB4B,$F9BBF82B,$F69CF50F
  450.         DC.L    $F384F1FB,$F074EEEF,$ED6CEBED,$EA71E8F8
  451.         DC.L    $E783E611,$E4A3E33A,$E1D5E075,$DF19DDC3
  452.         DC.L    $DC72DB26,$D9E1D8A1,$D767D633,$D506D3DF
  453.         DC.L    $D2BFD1A6,$D095CF8A,$CE87CD8C,$CC99CBAD
  454.         DC.L    $CACAC9EE,$C91BC851,$C78FC6D6,$C626C57E
  455.         DC.L    $C4E0C44A,$C3BEC33B,$C2C2C252,$C1ECC18F
  456.         DC.L    $C13BC0F2,$C0B2C07C,$C04FC02D,$C014C005
  457.  
  458.         DC.L    $C000C005,$C014C02D,$C04FC07C,$C0B2C0F2
  459.         DC.L    $C13BC18F,$C1ECC252,$C2C2C33B,$C3BEC44A
  460.         DC.L    $C4E0C57E,$C626C6D6,$C78FC851,$C91BC9EE
  461.         DC.L    $CACACBAD,$CC99CD8C,$CE87CF8A,$D095D1A6
  462.         DC.L    $D2BFD3DF,$D506D633,$D767D8A1,$D9E1DB26
  463.         DC.L    $DC72DDC3,$DF19E075,$E1D5E33A,$E4A3E611
  464.         DC.L    $E783E8F8,$EA71EBED,$ED6CEEEF,$F074F1FB
  465.         DC.L    $F384F50F,$F69CF82B,$F9BBFB4B,$FCDDFE6E
  466.  
  467.         DC.L    $00000192,$032304B5,$064507D5,$09640AF1
  468.         DC.L    $0C7C0E05,$0F8C1111,$12941413,$158F1708
  469.         DC.L    $187D19EF,$1B5D1CC6,$1E2B1F8B,$20E7223D
  470.         DC.L    $238E24DA,$261F275F,$289929CD,$2AFA2C21
  471.         DC.L    $2D412E5A,$2F6B3076,$31793274,$33673453
  472.         DC.L    $35363612,$36E537AF,$3871392A,$39DA3A82
  473.         DC.L    $3B203BB6,$3C423CC5,$3D3E3DAE,$3E143E71
  474.         DC.L    $3EC53F0E,$3F4E3F84,$3FB13FD3,$3FEC3FFB
  475.  
  476. BARGFX:        DC.W    $999,$CCC,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA
  477.         DC.W    $999,$888,$777,$666,$555,$444,$333,$000
  478.  
  479. WHITE:        DC.W    $FFF            ; Mask för vit färg
  480. RED:        DC.W    $F00            ; Mask för röf färg
  481. MAGENTA:    DC.W    $F0F            ; Mask för violett färg
  482. CYAN:        DC.W    $0FF            ; Mask för ljusblå färg
  483.  
  484. SPRGFX:        DC.W    $0000,$0000        ; Grafik för sprites
  485.         DC.W    $07E0,$07E0
  486.         DC.W    $1818,$1FF8
  487.         DC.W    $2000,$3FFC
  488.         DC.W    $4002,$7FFC
  489.         DC.W    $4002,$7FFC
  490.         DC.W    $8001,$FFFE
  491.         DC.W    $8001,$FFFE
  492.         DC.W    $8001,$FFFE
  493.         DC.W    $8001,$FFFE
  494.         DC.W    $8001,$FFFE
  495.         DC.W    $8001,$FFFE
  496.         DC.W    $4002,$7FFC
  497.         DC.W    $4002,$7FFC
  498.         DC.W    $0004,$3FF8
  499.         DC.W    $1818,$07E0
  500.         DC.W    $07E0,$0000
  501.         DC.W    $0000,$0000
  502.  
  503.         DC.W    $0000,$0000
  504.         DC.W    $0000,$0000
  505.         DC.W    $03C0,$03C0
  506.         DC.W    $0C30,$0FF0
  507.         DC.W    $1000,$1FF8
  508.         DC.W    $2004,$3FF8
  509.         DC.W    $2004,$3FF8
  510.         DC.W    $4002,$7FFC
  511.         DC.W    $4002,$7FFC
  512.         DC.W    $4002,$7FFC
  513.         DC.W    $4002,$7FFC
  514.         DC.W    $2004,$3FF8
  515.         DC.W    $2004,$3FF8
  516.         DC.W    $0008,$1FF0
  517.         DC.W    $0C30,$03C0
  518.         DC.W    $03C0,$0000
  519.         DC.W    $0000,$0000
  520.         DC.W    $0000,$0000
  521.  
  522.         DC.W    $0000,$0000
  523.         DC.W    $0000,$0000
  524.         DC.W    $0000,$0000
  525.         DC.W    $03C0,$03C0
  526.         DC.W    $0C30,$0FF0
  527.         DC.W    $1008,$1FF0
  528.         DC.W    $1008,$1FF0
  529.         DC.W    $2004,$3FF8
  530.         DC.W    $2004,$3FF8
  531.         DC.W    $2004,$3FF8
  532.         DC.W    $2004,$3FF8
  533.         DC.W    $1008,$1FF0
  534.         DC.W    $1008,$1FF0
  535.         DC.W    $0C30,$03C0
  536.         DC.W    $03C0,$0000
  537.         DC.W    $0000,$0000
  538.         DC.W    $0000,$0000
  539.         DC.W    $0000,$0000
  540.  
  541.         DC.W    $0000,$0000
  542.         DC.W    $0000,$0000
  543.         DC.W    $0000,$0000
  544.         DC.W    $0000,$0000
  545.         DC.W    $03C0,$03C0
  546.         DC.W    $0C20,$0FF0
  547.         DC.W    $0810,$0FE0
  548.         DC.W    $1008,$1FF0
  549.         DC.W    $1008,$1FF0
  550.         DC.W    $1008,$1FF0
  551.         DC.W    $1008,$1FF0
  552.         DC.W    $0810,$0FE0
  553.         DC.W    $0430,$0BC0
  554.         DC.W    $03C0,$0000
  555.         DC.W    $0000,$0000
  556.         DC.W    $0000,$0000
  557.         DC.W    $0000,$0000
  558.         DC.W    $0000,$0000
  559.  
  560.         DC.W    $0000,$0000
  561.         DC.W    $0000,$0000
  562.         DC.W    $0000,$0000
  563.         DC.W    $0000,$0000
  564.         DC.W    $0000,$0000
  565.         DC.W    $03C0,$03C0
  566.         DC.W    $0400,$07E0
  567.         DC.W    $0810,$0FE0
  568.         DC.W    $0810,$0FE0
  569.         DC.W    $0810,$0FE0
  570.         DC.W    $0810,$0FE0
  571.         DC.W    $0020,$07C0
  572.         DC.W    $03C0,$0000
  573.         DC.W    $0000,$0000
  574.         DC.W    $0000,$0000
  575.         DC.W    $0000,$0000
  576.         DC.W    $0000,$0000
  577.         DC.W    $0000,$0000
  578.  
  579.         DC.W    $0000,$0000
  580.         DC.W    $0000,$0000
  581.         DC.W    $0000,$0000
  582.         DC.W    $0000,$0000
  583.         DC.W    $0000,$0000
  584.         DC.W    $0000,$0000
  585.         DC.W    $0180,$0180
  586.         DC.W    $0200,$03C0
  587.         DC.W    $0420,$07C0
  588.         DC.W    $0420,$07C0
  589.         DC.W    $0000,$03C0
  590.         DC.W    $0180,$0000
  591.         DC.W    $0000,$0000
  592.         DC.W    $0000,$0000
  593.         DC.W    $0000,$0000
  594.         DC.W    $0000,$0000
  595.         DC.W    $0000,$0000
  596.         DC.W    $0000,$0000
  597.  
  598.         DC.W    $0000,$0000
  599.         DC.W    $0000,$0000
  600.         DC.W    $0000,$0000
  601.         DC.W    $0000,$0000
  602.         DC.W    $0000,$0000
  603.         DC.W    $0000,$0000
  604.         DC.W    $0000,$0000
  605.         DC.W    $0180,$0180
  606.         DC.W    $0240,$0380
  607.         DC.W    $0240,$0380
  608.         DC.W    $0180,$0000
  609.         DC.W    $0000,$0000
  610.         DC.W    $0000,$0000
  611.         DC.W    $0000,$0000
  612.         DC.W    $0000,$0000
  613.         DC.W    $0000,$0000
  614.         DC.W    $0000,$0000
  615.         DC.W    $0000,$0000
  616.  
  617.         DC.W    $0000,$0000
  618.         DC.W    $0000,$0000
  619.         DC.W    $0000,$0000
  620.         DC.W    $0000,$0000
  621.         DC.W    $0000,$0000
  622.         DC.W    $0000,$0000
  623.         DC.W    $0000,$0000
  624.         DC.W    $0000,$0000
  625.         DC.W    $0100,$0180
  626.         DC.W    $0080,$0100
  627.         DC.W    $0000,$0000
  628.         DC.W    $0000,$0000
  629.         DC.W    $0000,$0000
  630.         DC.W    $0000,$0000
  631.         DC.W    $0000,$0000
  632.         DC.W    $0000,$0000
  633.         DC.W    $0000,$0000
  634.         DC.W    $0000,$0000
  635.  
  636. DBOBGFX:    DC.W    $FFFF,$FFF8,$0000,$0000,$2000,$0007,$8000,$0000
  637.         DC.W    $17FF,$FFF8,$6000,$0000,$17FF,$FFFF,$9800,$0000
  638.         DC.W    $17F8,$001F,$E400,$0000,$17FB,$FFE7,$FB00,$0000
  639.         DC.W    $17FA,$0019,$FC80,$0000,$17FA,$0006,$FF40,$0000
  640.         DC.W    $17FA,$0001,$7FA0,$0000,$17FA,$0000,$BFA0,$0000
  641.         DC.W    $17FA,$0000,$5FD0,$0000,$17FA,$0000,$5FE8,$0000
  642.         DC.W    $17FA,$0000,$2FE8,$0000,$17FA,$0000,$2FF4,$0000
  643.         DC.W    $17FA,$0000,$17F4,$0000,$17FA,$0000,$17FA,$0000
  644.         DC.W    $17FA,$0000,$17FA,$0000,$17FA,$0000,$17FA,$0000
  645.         DC.W    $17FA,$0000,$0BFA,$0000,$17FA,$0000,$0BFD,$0000
  646.         DC.W    $17FA,$0000,$0BFD,$0000,$17FA,$0000,$0BFD,$0000
  647.         DC.W    $17FA,$0000,$0BFD,$0000,$17FA,$0000,$0BFD,$0000
  648.         DC.W    $17FA,$0000,$0BFD,$0000,$17FA,$0000,$0BFD,$0000
  649.         DC.W    $17FA,$0000,$0BFD,$0000,$17FA,$0000,$0BFD,$0000
  650.         DC.W    $17FA,$0000,$0BFD,$0000,$17FA,$0000,$0BFA,$0000
  651.         DC.W    $17FA,$0000,$17FA,$0000,$17FA,$0000,$17FA,$0000
  652.         DC.W    $17FA,$0000,$17FA,$0000,$17FA,$0000,$17F4,$0000
  653.         DC.W    $17FA,$0000,$2FF4,$0000,$17FA,$0000,$2FE8,$0000
  654.         DC.W    $17FA,$0000,$5FE8,$0000,$17FA,$0000,$5FD0,$0000
  655.         DC.W    $17FA,$0000,$BFA0,$0000,$17FA,$0001,$7FA0,$0000
  656.         DC.W    $17FA,$0006,$FF40,$0000,$17FA,$0019,$FC80,$0000
  657.         DC.W    $17FB,$FFE7,$FB00,$0000,$17F8,$001F,$E400,$0000
  658.         DC.W    $17FF,$FFFF,$9800,$0000,$17FF,$FFF8,$6000,$0000
  659.         DC.W    $2000,$0007,$8000,$0000,$FFFF,$FFF8,$0000,$0000
  660.  
  661. MBOBGFX:    DC.W    $3FFE,$0000,$0001,$FFFC,$0000,$0802,$0000,$0001
  662.         DC.W    $0010,$0000,$05FD,$0000,$0002,$FFA0,$0000,$05FD
  663.         DC.W    $0000,$0002,$FFA0,$0000,$05FE,$8000,$0005,$FFA0
  664.         DC.W    $0000,$05FE,$8000,$0005,$FFA0,$0000,$05FF,$4000
  665.         DC.W    $000B,$FFA0,$0000,$05FF,$4000,$000B,$FFA0,$0000
  666.         DC.W    $05FF,$A000,$0017,$FFA0,$0000,$05FF,$A000,$0017
  667.         DC.W    $FFA0,$0000,$05FF,$D000,$002D,$FFA0,$0000,$05FF
  668.         DC.W    $D000,$002A,$FFA0,$0000,$05EF,$E800,$0055,$7FA0
  669.         DC.W    $0000,$05D7,$E800,$0055,$7FA0,$0000,$05AB,$F400
  670.         DC.W    $00A9,$7FA0,$0000,$05AB,$F400,$00A9,$7FA0,$0000
  671.         DC.W    $05A5,$FA00,$0151,$7FA0,$0000,$05A5,$FA00,$0151
  672.         DC.W    $7FA0,$0000,$05A2,$FD00,$02A1,$7FA0,$0000,$05A2
  673.         DC.W    $FD00,$02A1,$7FA0,$0000,$05A1,$7E80,$0541,$7FA0
  674.         DC.W    $0000,$05A1,$7E80,$0541,$7FA0,$0000,$05A0,$BF40
  675.         DC.W    $0A81,$7FA0,$0000,$05A0,$BF40,$0A81,$7FA0,$0000
  676.         DC.W    $05A0,$5FA0,$1501,$7FA0,$0000,$05A0,$5FA0,$1501
  677.         DC.W    $7FA0,$0000,$05A0,$2FD0,$2A01,$7FA0,$0000,$05A0
  678.         DC.W    $2FD0,$2A01,$7FA0,$0000,$05A0,$17E8,$5401,$7FA0
  679.         DC.W    $0000,$05A0,$17E8,$5401,$7FA0,$0000,$05A0,$0BF4
  680.         DC.W    $A801,$7FA0,$0000,$05A0,$0BF4,$A801,$7FA0,$0000
  681.         DC.W    $05A0,$05FB,$5001,$7FA0,$0000,$05A0,$05FC,$D001
  682.         DC.W    $7FA0,$0000,$05A0,$02FF,$A001,$7FA0,$0000,$05A0
  683.         DC.W    $02FF,$A001,$7FA0,$0000,$05A0,$017F,$4001,$7FA0
  684.         DC.W    $0000,$05A0,$017F,$4001,$7FA0,$0000,$05A0,$00BE
  685.         DC.W    $8001,$7FA0,$0000,$05A0,$00BE,$8001,$7FA0,$0000
  686.         DC.W    $05A0,$005D,$0001,$7FA0,$0000,$05A0,$005D,$0001
  687.         DC.W    $7FA0,$0000,$05A0,$002A,$0001,$7FA0,$0000,$05A0
  688.         DC.W    $002A,$0001,$7FA0,$0000,$05A0,$0014,$0001,$7FA0
  689.         DC.W    $0000,$05A0,$0014,$0001,$7FA0,$0000,$0810,$0008
  690.         DC.W    $0002,$0010,$0000,$3FFC,$0008,$000F,$FFFC,$0000
  691.  
  692. ZBOBGFX:    DC.W    $FFFF,$FFFF,$0000,$8000,$0002,$0000,$BFFF,$FFFA
  693.         DC.W    $0000,$BFFF,$FFF4,$0000,$8000,$3FE8,$0000,$BFFF
  694.         DC.W    $DFD0,$0000,$C000,$2FD0,$0000,$8000,$5FA0,$0000
  695.         DC.W    $8000,$BF40,$0000,$0000,$BF40,$0000,$0001,$7E80
  696.         DC.W    $0000,$0002,$FD00,$0000,$0005,$FA00,$0000,$0005
  697.         DC.W    $FA00,$0000,$000B,$F400,$0000,$0017,$E800,$0000
  698.         DC.W    $0017,$E800,$0000,$002F,$D000,$0000,$005F,$A000
  699.         DC.W    $0000,$005F,$A000,$0000,$00BF,$4000,$0000,$017E
  700.         DC.W    $8000,$0000,$02FD,$0000,$0000,$02FD,$0001,$0000
  701.         DC.W    $05FA,$0001,$0000,$0BF4,$0003,$0000,$0BFB,$FFFD
  702.         DC.W    $0000,$17FC,$0001,$0000,$2FFF,$FFFD,$0000,$5FFF
  703.         DC.W    $FFFD,$0000,$4000,$0001,$0000,$FFFF,$FFFF,$0000
  704.  
  705. SCROLLTBL:    DC.W    $88,$99,$BB,$CC,$DD,$EE,$EE,$FF    ; Sinustabell för
  706.         DC.W    $FF,$EE,$EE,$DD,$CC,$BB,$99,$88    ; horisontell
  707.         DC.W    $77,$55,$44,$33,$22,$11,$11,$00    ; scroll
  708.         DC.W    $00,$11,$11,$22,$33,$44,$55,$77
  709.  
  710. FONT:        DC.B    $00,$00,$00,$00,$00,$00,$00,$00    ; Grafik för
  711.         DC.B    $18,$18,$18,$18,$00,$18,$18,$00    ; tecken-
  712.         UnDef                    ; uppsättning
  713.         UnDef
  714.         UnDef
  715.         UnDef
  716.         UnDef
  717.         UnDef
  718.         UnDef
  719.         UnDef
  720.         UnDef
  721.         UnDef
  722.         UnDef
  723.         DC.B    $00,$00,$00,$FE,$00,$00,$00,$00
  724.         UnDef
  725.         UnDef
  726.         UnDef
  727.         UnDef
  728.         UnDef
  729.         UnDef
  730.         UnDef
  731.         UnDef
  732.         UnDef
  733.         UnDef
  734.         UnDef
  735.         UnDef
  736.         UnDef
  737.         UnDef
  738.         UnDef
  739.         UnDef
  740.         UnDef
  741.         UnDef
  742.         UnDef
  743.         DC.B    $7C,$C6,$C6,$C6,$FE,$C6,$C6,$00
  744.         DC.B    $FC,$C6,$C6,$FC,$C6,$C6,$FC,$00
  745.         DC.B    $7C,$C6,$C0,$C0,$C0,$C6,$7C,$00
  746.         DC.B    $F8,$CC,$C6,$C6,$C6,$CC,$F8,$00
  747.         DC.B    $FE,$C0,$C0,$FE,$C0,$C0,$FE,$00
  748.         DC.B    $FE,$C0,$C0,$FE,$C0,$C0,$C0,$00
  749.         DC.B    $7C,$C6,$C0,$CE,$C6,$C6,$7C,$00
  750.         DC.B    $C6,$C6,$C6,$FE,$C6,$C6,$C6,$00
  751.         DC.B    $3C,$18,$18,$18,$18,$18,$3C,$00
  752.         DC.B    $06,$06,$06,$06,$06,$C6,$7C,$00
  753.         DC.B    $C6,$CE,$DC,$F8,$DC,$CE,$C6,$00
  754.         DC.B    $C0,$C0,$C0,$C0,$C0,$C0,$FE,$00
  755.         DC.B    $82,$C6,$EE,$FE,$D6,$C6,$C6,$00
  756.         DC.B    $C6,$E6,$F6,$DE,$CE,$C6,$C2,$00
  757.         DC.B    $7C,$C6,$C6,$C6,$C6,$C6,$7C,$00
  758.         DC.B    $FC,$C6,$C6,$C6,$FC,$C0,$C0,$00
  759.         DC.B    $7C,$C6,$C6,$D6,$DE,$CC,$76,$00
  760.         DC.B    $FC,$C6,$C6,$C6,$FC,$C6,$C6,$00
  761.         DC.B    $7C,$C6,$C0,$7C,$06,$C6,$7C,$00
  762.         DC.B    $7E,$18,$18,$18,$18,$18,$18,$00
  763.         DC.B    $C6,$C6,$C6,$C6,$C6,$C6,$7C,$00
  764.         DC.B    $C6,$C6,$C6,$C6,$6C,$38,$10,$00
  765.         DC.B    $C6,$C6,$D6,$FE,$EE,$C6,$82,$00
  766.         DC.B    $C6,$EE,$7C,$38,$7C,$EE,$C6,$00
  767.         DC.B    $C6,$C6,$C6,$7E,$06,$C6,$7C,$00
  768.         DC.B    $FE,$0E,$1C,$38,$70,$E0,$FE,$00
  769.         UnDef
  770.         UnDef
  771.         UnDef
  772.         UnDef
  773.         UnDef
  774.         UnDef
  775.         UnDef
  776.         UnDef
  777.         UnDef
  778.         UnDef
  779.         UnDef
  780.         UnDef
  781.         UnDef
  782.         UnDef
  783.         UnDef
  784.         UnDef
  785.         UnDef
  786.         UnDef
  787.         UnDef
  788.         UnDef
  789.         UnDef
  790.         UnDef
  791.         UnDef
  792.         UnDef
  793.         UnDef
  794.         UnDef
  795.         UnDef
  796.         UnDef
  797.         UnDef
  798.         UnDef
  799.         UnDef
  800.         UnDef
  801.         UnDef
  802.         UnDef
  803.         UnDef
  804.         UnDef
  805.         UnDef
  806.  
  807. TEXT:        DC.B    'DETTA AR SISTA DELEN I ASSEMBLER-'
  808.         DC.B    'SKOLAN. VI HOPPAS ATT DU HAR LART '
  809.         DC.B    'DIG SA PASS MYCKET ATT DU KAN GORA '
  810.         DC.B    'DITT EGET DEMO. LYCKA TILL!'
  811.         DC.B    '                    ',0
  812.