home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / assembler / thesource / volume3 / source / awesome / awesome.lha / demo.s < prev    next >
Encoding:
Text File  |  1993-01-08  |  17.9 KB  |  666 lines

  1.         incdir    "DevpacAm:include/"
  2.         include    "exec/exec_lib.i"
  3.         include    "exec/execbase.i"
  4.         include    "graphics/gfxbase.i"
  5.         include    "graphics/graphics_lib.i"
  6.         include    "hardware/custom.i"
  7.  
  8. ***********************************************************
  9. * Other Macros
  10. ***********************************************************
  11.  
  12. CALL        MACRO
  13.         jsr    _LVO\1(a6)
  14.         ENDM
  15.  
  16. WaitBlit    MACRO
  17.         tst.b    (a5)
  18. .\@:        btst.b    #6,(a5)
  19.         bne.b    .\@
  20.         ENDM
  21.  
  22. ***********************************************************
  23. * Other Equates
  24. ***********************************************************
  25.  
  26.  IFND    gb_ActiView
  27. gb_ActiView    EQU    32
  28.  ENDIF
  29.  
  30.  IFND    gb_CopInit
  31. gb_CopInit    EQU    36
  32.  ENDIF
  33.  
  34. ***********************************************************
  35.  
  36. Start:        bsr.w    TakeSystem
  37.  
  38.         bsr.w    InstallBmap
  39.         bsr.w    InstallSprites
  40.         bsr.w    InstallCopper
  41.  
  42.         move.w    #$7fff,$9a-2(a5)
  43.         move.l    VectorBase,a0
  44.         move.l    $6c(a0),Level3Save
  45.         move.l    #MyLevel3,$6c(a0)
  46.         move.w    #$c020,$9a-2(a5)
  47.  
  48. .1:        btst    #6,$bfe001
  49.         bne.b    .1
  50.  
  51.         move.w    #$7fff,$9a-2(a5)
  52.         move.l    VectorBase,a0
  53.         move.l    Level3Save,$6c(a0)
  54.  
  55.         bsr.w    RestoreSystem
  56.         rts
  57.     
  58. ***********************************************************
  59.  
  60. MyLevel3:    movem.l    d0-a6,-(a7)    ; Push all regs onto stack
  61.         move.l    #$dff002,a5    ; Custom chip base
  62.         bsr.w    VScroll
  63.         bsr.w    MoveStars
  64.         move.w    #$20,$9c-2(a5)    ; Turn off VBLANK int request bit
  65.         movem.l    (a7)+,d0-a6    ; Pop all regs from stack
  66.         rte            ; End of interrupt
  67.  
  68. ***********************************************************
  69.  
  70. VScroll:    subq.w    #1,VScrollCount        ; 1 less line to move up
  71.         tst.w    VScrollCount        ; Are we ready to draw a new text line?
  72.         beq.w    NewLine            ; Yes, go do it
  73.                         ; If not, we need to shift it up
  74. WB:        WaitBlit
  75.         move.l    #Bmap+24+40,$50-2(a5)    ; Blitter source A       (y = 1)
  76.         move.l    #Bmap+24,$54-2(a5)    ; Blitter destination D  (y = 0)
  77.         move.l    #$00180018,$64-2(a5)    ; A & D modulos
  78.         move.l    #-1,$44-2(a5)        ; Write mask
  79.         move.l    #$09f00000,$40-2(a5)    ; Blitter Control registers
  80.         move.w    #(198*64)+8,$58-2(a5)    ; 198 lines by 8 words
  81.         rts
  82.  
  83. ***********************************************************
  84.  
  85. NewLine:    move.w    #11,VScrollCount    ; Reset VScroll counter
  86.     
  87.         lea    ScrollText,a2        ; Adr of scrolltext
  88.         add.l    ScrollPos,a2        ; Get to correct place in text
  89.         add.l    #15,ScrollPos        ; Next time, we want the next line
  90.         tst.b    (a2)            ; Does this line start with a 0 byte?
  91.         bne.b    NoResetText        ; No, go on as normal
  92.         move.l    #15,ScrollPos        ; Yes, restart text
  93.         lea    ScrollText,a2        ; Point back to start
  94.  
  95. NoResetText:    moveq    #0,d6            ; Counter, will do 15 characters
  96. FindChar:    lea    Font,a0            ; Adr of font
  97.         lea    Bmap,a1            ; Adr of bitmap
  98.  
  99.         moveq    #0,d0            ; Clear out d0
  100.         move.b    (a2)+,d0        ; Next char into d0
  101.         sub.b    #32,d0            ; Get range of 0-58
  102.         cmp.b    #37,d0            ; Is it lower than an 'H'?
  103.         blt.s    FirstRow        ; Yes, use the top row of the font
  104.         add.l    #(40*9),a0        ; No, use the second row of the font
  105.         sub.b    #37,d0            ;   and adjust the range
  106. FirstRow:    add.l    d0,a0            ; Add char offset into font bmap
  107.         add.l    d6,a1            ; Add char num offset into bmap
  108.         add.l    #7544,a1        ; Move to lower right of bmap
  109.         moveq    #7,d7            ; We will copy this many raster lines
  110. DrawLoop:    move.b    (a0),(a1)        ; Copy a line of the character
  111.         add.l    #40,a0            ; Next line in font bmap
  112.         add.l    #40,a1            ; Next line in target bmap
  113.         dbra    d7,DrawLoop        ; Repeat until whole character is done
  114.  
  115.         addq.l    #1,d6            ; Next character
  116.         cmpi.l    #15,d6            ; Done all 15 in this line yet?
  117.         bne.w    FindChar        ; No, do it all again
  118.         bra.w    WB
  119.         rts                ; Done
  120.  
  121. ***********************************************************
  122.  
  123. MoveStars:    lea    Stars+1,a0
  124.             moveq    #32,d0            ; num of stars div 3
  125. loop:        subq.b  #3,(a0)+
  126.         addq.l  #7,a0
  127.         subq.b  #2,(a0)+
  128.         addq.l  #7,a0
  129.         subq.b  #1,(a0)+
  130.         addq.l  #7,a0
  131.         subq.l  #1,d0
  132.         bne.s   loop
  133.         rts
  134.  
  135. ***********************************************************
  136.  
  137. InstallSprites:    lea    SpritePtrs,a0
  138.         move.l    #Stars,d0
  139.         move.w  d0,6(a0)
  140.             swap    d0
  141.         move.w  d0,2(a0)
  142.         move.l  #NullSprite,d0
  143.         move.w  d0,14(a0)
  144.         move.w  d0,22(a0)
  145.         move.w  d0,30(a0)
  146.         move.w  d0,38(a0)
  147.         move.w  d0,46(a0)
  148.         move.w  d0,54(a0)
  149.         move.w  d0,62(a0)
  150.         swap    d0
  151.         move.w  d0,10(a0)
  152.         move.w  d0,18(a0)
  153.         move.w  d0,26(a0)
  154.         move.w  d0,34(a0)
  155.         move.w  d0,42(a0)
  156.         move.w  d0,50(a0)
  157.         move.w  d0,58(a0)
  158.         rts
  159.  
  160. ***********************************************************
  161.  
  162. TakeSystem:    movea.l    4.w,a6        ; exec base
  163.         lea    $dff002,a5    ; custom chip base + 2
  164.  
  165.         lea    GraphicsName,a1    ; "graphics.library"
  166.         moveq    #0,d0        ; any version
  167.         CALL    OpenLibrary    ; open it.
  168.         move.l    d0,gfx_base    ; save pointer to gfx base
  169.         move.l    d0,a6        ; for later callls...
  170.  
  171.         move.l  gb_ActiView(a6),OldView    ; save old view
  172.  
  173.         move.w    #0,a1        ; clears full long-word
  174.         CALL    LoadView    ; Open a NULL view (resets display
  175.                     ;   on any Amiga)
  176.  
  177.         CALL    WaitTOF        ; Wait twice so that an interlace
  178.         CALL    WaitTOF        ;   display can reset.
  179.  
  180.         CALL    OwnBlitter    ; take over the blitter and...
  181.         CALL    WaitBlit    ;   wait for it to finish so we
  182.                     ;   safely use it as we please.
  183.  
  184.         movea.l    4.w,a6        ; exec base
  185.         CALL    Forbid        ; kill multitasking
  186.  
  187.         move.w    $7c-2(a5),d0    ; AGA register...
  188.         cmpi.b    #$f8,d0        ; are we AGA?
  189.         bne.b    .not_aga    ; nope.
  190.         move.w    #0,$dff1fc    ; reset AGA sprites to normal mode
  191.  
  192. .not_aga:    bsr.b    GetVBR        ; get the vector base pointer
  193.         move.l    d0,VectorBase    ; save it for later.
  194.  
  195.         move.w    dmaconr-2(a5),d0    ; old DMACON bits
  196.         ori.w    #$8000,d0    ; or it set bit for restore
  197.         move.w    d0,OldDMACon    ; save it
  198.  
  199.         move.w    intenar-2(a5),d0    ; old DMACON bits
  200.         ori.w    #$c000,d0    ; or it set bit for restore
  201.         move.w    d0,OldINTEna    ; save it
  202.         rts
  203.  
  204. ***********************************************************
  205.  
  206. RestoreSystem:    lea    $dff002,a5    ; custom chip base + 2
  207.         move.w    OldDMACon,dmacon-2(a5)    ; restore old dma bits
  208.         move.w    OldINTEna,intena-2(a5)    ; restore old int bits
  209.  
  210.         move.l    OldView,a1    ; old Work Bench view
  211.         move.l    gfx_base,a6    ; gfx base
  212.         CALL    LoadView    ; Restore the view
  213.         CALL    DisownBlitter    ; give blitter back to the system.
  214.  
  215.         move.l    gb_CopInit(a6),$80-2(a5) ; restore system clist
  216.         move.l    a6,a1
  217.         movea.l    4.w,a6        ; exec base
  218.         CALL    CloseLibrary
  219.         CALL    Permit         ; restart multitasking
  220.         rts
  221.  
  222. ***********************************************************
  223. * This function provides a method of obtaining a pointer to the base of the
  224. * interrupt vector table on all Amigas.  After getting this pointer, use
  225. * the vector address as an offset.  For example, to install a level three
  226. * interrupt you would do the following:
  227. *
  228. *        bsr    _GetVBR
  229. *        move.l    d0,a0
  230. *        move.l    $6c(a0),OldIntSave
  231. *        move.l    #MyIntCode,$6c(a0)
  232. *
  233. ***********************************************************
  234. * Inputs: none
  235. * Output: d0 contains vbr.
  236.  
  237. GetVBR:        move.l    a5,-(sp)        ; save it.
  238.         moveq    #0,d0            ; clear
  239.         movea.l    4.w,a6            ; exec base
  240.         btst.b    #AFB_68010,AttnFlags+1(a6); are we at least a 68010?
  241.         beq.b    .1            ; nope.
  242.         lea.l    vbr_exception(pc),a5    ; addr of function to get VBR
  243.         CALL    Supervisor        ; supervisor state
  244. .1:        move.l    (sp)+,a5        ; restore it.
  245.         rts                ; return
  246.  
  247. vbr_exception:
  248.     ; movec vbr,Xn is a priv. instr.  You must be supervisor to execute!
  249. ;        movec   vbr,d0
  250.     ; many assemblers don't know the VBR, if yours doesn't, then use this
  251.     ; line instead.
  252.         dc.w    $4e7a,$0801
  253.         rte                ; back to user state code
  254.  
  255. ***********************************************************
  256.  
  257. InstallCopper:    move.l    #Copper,$80-2(a5)    ; Install my copperlist
  258.         rts                ; Done
  259.     
  260. ***********************************************************
  261.  
  262. InstallBmap:    lea    BmapPtrs,a0        ; Bmap ptrs in copperlist
  263.         move.l    #Bmap,d0        ; Address of bitplane 1
  264.         move.w    d0,6(a0)        ; write lower half
  265.         swap    d0            ; switch words
  266.         move.w    d0,2(a0)        ; write upper half
  267.         move.l    #Bmap+8000,d0        ; Address of bitplane 2
  268.         move.w    d0,14(a0)        ; write lower half
  269.         swap    d0            ; switch words
  270.         move.w    d0,10(a0)        ; write upper half
  271.         move.l    #Bmap+16000,d0        ; Address of bitplane 3
  272.         move.w    d0,22(a0)        ; write lower half
  273.         swap    d0            ; switch words
  274.         move.w    d0,18(a0)        ; write upper half
  275.         move.l    #Bmap+24000,d0        ; Address of bitplane 4
  276.         move.w    d0,30(a0)        ; write lower half
  277.         swap    d0            ; switch words
  278.         move.w    d0,26(a0)        ; write upper half
  279.         rts                ; Done
  280.  
  281. ***********************************************************
  282.  
  283.         section    DemoText,DATA
  284.  
  285. GraphicsName:    GRAFNAME        ; name of gfx library
  286.         EVEN
  287.  
  288. ScrollText:    dc.b    '               '
  289.         dc.b    '               '
  290.         dc.b    '               '
  291.         dc.b    '               '
  292.         dc.b    '               '
  293.         dc.b    '               '
  294.         dc.b    '               '
  295.         dc.b    '               '
  296.         dc.b    '               '
  297.         dc.b    '               '
  298.         dc.b    '       A       '
  299.         dc.b    '               '
  300.         dc.b     '      LONG     '
  301.         dc.b    '               '
  302.         dc.b    '      TIME     '
  303.         dc.b    '               '
  304.         dc.b    '      AGO,     '
  305.         dc.b    '               '
  306.         dc.b    '       IN      '
  307.         dc.b    '               '
  308.         dc.b    '       A       '
  309.         dc.b    '               '
  310.         dc.b    '     GALAXY    '
  311.         dc.b    '               '
  312.         dc.b    '      FAR,     '
  313.         dc.b    '               '
  314.         dc.b    '      FAR      '
  315.         dc.b    '               '
  316.         dc.b    '      AWAY     '
  317.         dc.b    '               '
  318.         dc.b    '               '
  319.         dc.b    '               '
  320.         dc.b    '               '
  321.         dc.b    '               '
  322.         dc.b    'IS WHERE THIS  '
  323.         dc.b    'DEMO BELONGS!! '
  324.         dc.b    '               '
  325.         dc.b    '               '
  326.         dc.b    '               '
  327.         dc.b    'WELL ANYWAY,   '
  328.         dc.b    '               '
  329.         dc.b    'THIS IS VISION '
  330.         dc.b    '               '
  331.         dc.b    'OF EPSILON     '
  332.         dc.b    '               '
  333.         dc.b    'PRESENTING HIS '
  334.         dc.b    '               '
  335.         dc.b    'NEW, EXCITING  '
  336.         dc.b     '               '
  337.         dc.b    '"AWESOME" DEMO!'
  338.         dc.b    '               '
  339.         dc.b    '               '
  340.         dc.b    '               '
  341.         dc.b    'AS YOU CAN     '
  342.         dc.b    '               '
  343.          dc.b    'PROBABLY TELL, '
  344.         dc.b    '               '
  345.         dc.b    "IT'S NOT CALLED"
  346.         dc.b    '               '
  347.         dc.b    'THAT BECAUSE IT'
  348.         dc.b    '               '
  349.         dc.b    'IS ADVANCED... '
  350.         dc.b    '               '
  351.         dc.b    '               '
  352.         dc.b    '               '
  353.         dc.b    '               '
  354.         dc.b    'BUT BECAUSE THE'
  355.         dc.b    '               '
  356.         dc.b    'GRAPHICS       '
  357.         dc.b    '               '
  358.         dc.b    'WERE RIPPED    '
  359.         dc.b    '               '
  360.         dc.b    'FROM THE GAME  '
  361.         dc.b    '               '
  362.         dc.b    '"AWESOME."     '
  363.         dc.b    '               '
  364.         dc.b    '               '
  365.         dc.b    '               '
  366.         dc.b    '               '
  367.         dc.b    'PRETTY CHEAP,  '
  368.         dc.b    'HUH?           '
  369.         dc.b    '               '
  370.         dc.b    '               '
  371.         dc.b    '               '
  372.         dc.b    '               '
  373.         dc.b    '               '
  374.         dc.b    '               '
  375.         dc.b    '               '
  376.         dc.b    'TEXT RESTARTS..'
  377.         dc.b    '               '
  378.         dc.b    '               '
  379.         dc.b    '               '
  380.         dc.b    '               '
  381.         dc.b    '               '
  382.         dc.b    '               '
  383.         dc.b    '               '
  384.         dc.b    '               '
  385.         dc.b    0
  386.         EVEN
  387.  
  388. VScrollCount:    dc.w    11
  389.     
  390. ***********************************************************
  391.  
  392.         section    DemoData,DATA_c
  393.  
  394. NullSprite:    dc.l    0,0,0,0
  395.  
  396.         incdir    ''
  397. Bmap:        incbin    'df1:awesome.raw'
  398. Font:        incbin    'df1:mahoneyfont.raw'
  399.  
  400. Copper:    dc.w    $0100,$4200,$0102,$0000,$0104,$0000,$0108,$0000,$010a,$0000
  401.     dc.w    $008e,$2d81,$0090,$f4c1,$0092,$0038,$0094,$00d0,$0180,$0000
  402.     dc.w    $0182,$0eff,$0184,$0cee,$0186,$09cc,$0188,$08bb,$018a,$069a
  403.     dc.w    $018c,$0689,$018e,$0578,$0190,$0567,$0192,$0456,$0194,$0445
  404.     dc.w    $0196,$0334,$0198,$0233,$019a,$0122,$019c,$0111,$019e,$0000
  405.  
  406.     dc.w    $01a2,$0444,$01a4,$0fff,$01a6,$0888
  407. BmapPtrs:
  408.     dc.w    $00e0,$0000,$00e2,$0000,$00e4,$0000,$00e6,$0000,$00e8,$0000
  409.     dc.w    $00ea,$0000,$00ec,$0000,$00ee,$0000
  410. SpritePtrs:
  411.     dc.w    $0120,$0000,$0122,$0000,$0124,$0000,$0126,$0000,$0128,$0000
  412.     dc.w    $012a,$0000,$012c,$0000,$012e,$0000,$0130,$0000,$0132,$0000
  413.     dc.w    $0134,$0000,$0136,$0000,$0138,$0000,$013a,$0000,$013c,$0000
  414.     dc.w    $013e,$0000
  415.  
  416.     dc.w    $2c0f,$fffe,$0182,$0000
  417.     dc.w    $2d0f,$fffe,$0182,$0011
  418.     dc.w    $2e0f,$fffe,$0182,$0122
  419.     dc.w    $2f0f,$fffe,$0182,$0233
  420.     dc.w    $300f,$fffe,$0182,$0344
  421.     dc.w    $310f,$fffe,$0182,$0455
  422.     dc.w    $320f,$fffe,$0182,$0566
  423.     dc.w    $330f,$fffe,$0182,$0677
  424.     dc.w    $340f,$fffe,$0182,$0788
  425.     dc.w    $350f,$fffe,$0182,$0899
  426.     dc.w    $360f,$fffe,$0182,$09aa
  427.     dc.w    $370f,$fffe,$0182,$0abb
  428.     dc.w    $380f,$fffe,$0182,$0bcc
  429.     dc.w    $390f,$fffe,$0182,$0cdd
  430.     dc.w    $3a0f,$fffe,$0182,$0dee
  431.     dc.w    $3b0f,$fffe,$0182,$0eff
  432.     dc.w    $d00f,$fffe,$0182,$0eff,$d08f,$fffe,$0182,$0eff
  433.     dc.w    $d10f,$fffe,$0182,$0eff,$d18f,$fffe,$0182,$0dee
  434.     dc.w    $d20f,$fffe,$0182,$0eff,$d28f,$fffe,$0182,$0cdd
  435.     dc.w    $d30f,$fffe,$0182,$0eff,$d38f,$fffe,$0182,$0bcc
  436.     dc.w    $d40f,$fffe,$0182,$0eff,$d48f,$fffe,$0182,$0abb
  437.     dc.w    $d50f,$fffe,$0182,$0eff,$d58f,$fffe,$0182,$09aa
  438.     dc.w    $d60f,$fffe,$0182,$0eff,$d68f,$fffe,$0182,$0899
  439.     dc.w    $d70f,$fffe,$0182,$0eff,$d78f,$fffe,$0182,$0788
  440.     dc.w    $d80f,$fffe,$0182,$0eff,$d88f,$fffe,$0182,$0677
  441.     dc.w    $d90f,$fffe,$0182,$0eff,$d98f,$fffe,$0182,$0566
  442.     dc.w    $da0f,$fffe,$0182,$0eff,$da8f,$fffe,$0182,$0455
  443.     dc.w    $db0f,$fffe,$0182,$0eff,$db8f,$fffe,$0182,$0344
  444.     dc.w    $dc0f,$fffe,$0182,$0eff,$dc8f,$fffe,$0182,$0233
  445.     dc.w    $dd0f,$fffe,$0182,$0eff,$dd8f,$fffe,$0182,$0122
  446.     dc.w    $de0f,$fffe,$0182,$0eff,$de8f,$fffe,$0182,$0011
  447.     dc.w    $df0f,$fffe,$0182,$0eff,$df8f,$fffe,$0182,$0000
  448.     dc.w    $e00f,$fffe,$0182,$0eff,$e08f,$fffe,$0182,$0000
  449.     dc.w    $e10f,$fffe,$0182,$0eff,$e18f,$fffe,$0182,$0000
  450.     dc.w    $e20f,$fffe,$0182,$0eff,$e28f,$fffe,$0182,$0000
  451.     dc.w    $e30f,$fffe,$0182,$0eff,$e38f,$fffe,$0182,$0000
  452.     dc.w    $e40f,$fffe,$0182,$0eff,$e48f,$fffe,$0182,$0000
  453.     dc.w    $e50f,$fffe,$0182,$0eff,$e58f,$fffe,$0182,$0000
  454.     dc.w    $e60f,$fffe,$0182,$0eff,$e68f,$fffe,$0182,$0000
  455.     dc.w    $e70f,$fffe,$0182,$0eff,$e78f,$fffe,$0182,$0000
  456.     dc.w    $e80f,$fffe,$0182,$0eff,$e88f,$fffe,$0182,$0000
  457.     dc.w    $ffff,$fffe
  458.  
  459. Stars:  dc.w    $2c40,$2d00
  460.     dc.w    $0000,$0001     ; a star on line one
  461.     dc.w    $2e50,$2f00
  462.     dc.w    $0001,$0001     ; a star on line two
  463.     dc.w    $3080,$3100
  464.     dc.w    $0001,$0000
  465.     dc.w    $3284,$3300
  466.     dc.w    $0000,$0001    
  467.     dc.w    $34a2,$3500
  468.     dc.w    $0001,$0001    
  469.     dc.w    $36d3,$3700
  470.     dc.w    $0001,$0000
  471.     dc.w    $3898,$3900
  472.     dc.w    $0000,$0001    
  473.     dc.w    $40ff,$4100
  474.     dc.w    $0001,$0001   
  475.     dc.w    $4266,$4300
  476.     dc.w    $0001,$0000
  477.     dc.w    $4443,$4500
  478.     dc.w    $0000,$0001    
  479.     dc.w    $46ef,$4700
  480.     dc.w    $0001,$0001   
  481.     dc.w    $484b,$4900
  482.     dc.w    $0001,$0000
  483.     dc.w    $4aa8,$4b00
  484.     dc.w    $0000,$0001    
  485.     dc.w    $4cd6,$4d00
  486.     dc.w    $0001,$0001   
  487.     dc.w    $4ea5,$4f00
  488.     dc.w    $0001,$0000
  489.     dc.w    $503c,$5100
  490.     dc.w    $0000,$0001    
  491.     dc.w    $5243,$5300
  492.     dc.w    $0001,$0001   
  493.     dc.w    $5400,$5500
  494.     dc.w    $0001,$0000    ; 6
  495.     dc.w    $5684,$5700
  496.     dc.w    $0000,$0001    
  497.     dc.w    $5894,$5900
  498.     dc.w    $0001,$0001   
  499.     dc.w    $5a33,$5b00
  500.     dc.w    $0001,$0000    ; 7
  501.     dc.w    $5ca3,$5d00
  502.     dc.w    $0000,$0001    
  503.     dc.w    $5e35,$5f00
  504.     dc.w    $0001,$0001   
  505.     dc.w    $6006,$6100
  506.     dc.w    $0001,$0000    ; 8
  507.     dc.w    $6254,$6300
  508.     dc.w    $0000,$0001    
  509.     dc.w    $6409,$6500
  510.     dc.w    $0001,$0001   
  511.     dc.w    $66ab,$6700
  512.     dc.w    $0001,$0000    ; 9
  513.     dc.w    $6887,$6900
  514.     dc.w    $0000,$0001    
  515.     dc.w    $6a97,$6b00
  516.     dc.w    $0001,$0001   
  517.     dc.w    $6cfa,$6d00
  518.     dc.w    $0001,$0000    ; 10
  519.     dc.w    $6e03,$6f00
  520.     dc.w    $0000,$0001    
  521.     dc.w    $7023,$7100
  522.     dc.w    $0001,$0001   
  523.     dc.w    $7257,$7300
  524.     dc.w    $0001,$0000    ; 11
  525.     dc.w    $74dc,$7500
  526.     dc.w    $0000,$0001    
  527.     dc.w    $76a7,$7700
  528.     dc.w    $0001,$0001   
  529.     dc.w    $789a,$7900
  530.     dc.w    $0001,$0000    ; 12
  531.     dc.w    $7a03,$7b00
  532.     dc.w    $0000,$0001    
  533.     dc.w    $7c06,$7d00
  534.     dc.w    $0001,$0001   
  535.     dc.w    $7eab,$7f00
  536.     dc.w    $0001,$0000    ; 13
  537.     dc.w    $80dc,$8100
  538.     dc.w    $0000,$0001    
  539.     dc.w    $82a7,$8300
  540.     dc.w    $0001,$0001   
  541.     dc.w    $84df,$8500
  542.     dc.w    $0001,$0000    ; 14
  543.     dc.w    $8623,$8700
  544.     dc.w    $0000,$0001    
  545.     dc.w    $8898,$8900
  546.     dc.w    $0001,$0001   
  547.     dc.w    $8aab,$8b00
  548.     dc.w    $0001,$0000    ; 15
  549.     dc.w    $8c87,$8d00
  550.     dc.w    $0000,$0001    
  551.     dc.w    $8edc,$8f00
  552.     dc.w    $0001,$0001   
  553.     dc.w    $9013,$9100
  554.     dc.w    $0001,$0000    ; 16
  555.     dc.w    $9200,$9300
  556.     dc.w    $0000,$0001    
  557.     dc.w    $9434,$9500
  558.     dc.w    $0001,$0001   
  559.     dc.w    $9687,$9700
  560.     dc.w    $0001,$0000    ; 17
  561.     dc.w    $9854,$9900
  562.     dc.w    $0000,$0001    
  563.     dc.w    $9ac0,$9b00
  564.     dc.w    $0001,$0001   
  565.     dc.w    $9c12,$9d00
  566.     dc.w    $0001,$0000    ; 18
  567.     dc.w    $9e8f,$9f00
  568.     dc.w    $0000,$0001    
  569.     dc.w    $a03c,$a100
  570.     dc.w    $0001,$0001   
  571.     dc.w    $a254,$a300
  572.     dc.w    $0001,$0000    ; 19
  573.     dc.w    $a434,$a500
  574.     dc.w    $0000,$0001    
  575.     dc.w    $a6bd,$a700
  576.     dc.w    $0001,$0001   
  577.     dc.w    $a8ff,$a900
  578.     dc.w    $0001,$0000    ; 20
  579.     dc.w    $aaaf,$ab00
  580.     dc.w    $0000,$0001    
  581.     dc.w    $ac3c,$ad00
  582.     dc.w    $0001,$0001   
  583.     dc.w    $ae24,$af00
  584.     dc.w    $0001,$0000    ; 21
  585.     dc.w    $b034,$b100
  586.     dc.w    $0000,$0001    
  587.     dc.w    $b27c,$b300
  588.     dc.w    $0001,$0001   
  589.     dc.w    $b4d6,$b500
  590.     dc.w    $0001,$0000    ; 22
  591.     dc.w    $b678,$b700
  592.     dc.w    $0000,$0001    
  593.     dc.w    $b803,$b900
  594.     dc.w    $0001,$0001   
  595.     dc.w    $bade,$bb00
  596.     dc.w    $0001,$0000    ; 23
  597.     dc.w    $bc22,$bd00
  598.     dc.w    $0000,$0001    
  599.     dc.w    $be34,$bf00
  600.     dc.w    $0001,$0001   
  601.     dc.w    $c02a,$c100
  602.     dc.w    $0001,$0000    ; 24
  603.     dc.w    $c24a,$c300
  604.     dc.w    $0000,$0001    
  605.     dc.w    $c466,$c500
  606.     dc.w    $0001,$0001   
  607.     dc.w    $c633,$c700
  608.     dc.w    $0001,$0000    ; 25
  609.     dc.w    $c888,$c900
  610.     dc.w    $0000,$0001    
  611.     dc.w    $ca21,$cb00
  612.     dc.w    $0001,$0001   
  613.     dc.w    $cc78,$cd00
  614.     dc.w    $0001,$0000    ; 26
  615.     dc.w    $ce12,$cf00
  616.     dc.w    $0000,$0001    
  617.     dc.w    $d045,$d100
  618.     dc.w    $0001,$0001   
  619.     dc.w    $d2da,$d300
  620.     dc.w    $0001,$0000    ; 27
  621.     dc.w    $d447,$d500
  622.     dc.w    $0000,$0001    
  623.     dc.w    $d698,$d700
  624.     dc.w    $0001,$0001   
  625.     dc.w    $d840,$d900
  626.     dc.w    $0001,$0000    ; 28
  627.     dc.w    $dad0,$db00
  628.     dc.w    $0000,$0001    
  629.     dc.w    $dcc0,$dd00
  630.     dc.w    $0001,$0001   
  631.     dc.w    $de30,$df00
  632.     dc.w    $0001,$0000    ; 29
  633.     dc.w    $e023,$e100
  634.     dc.w    $0000,$0001    
  635.     dc.w    $e220,$e300
  636.     dc.w    $0001,$0001   
  637.     dc.w    $e45d,$e500
  638.     dc.w    $0001,$0000    ; 30
  639.     dc.w    $e668,$e700
  640.     dc.w    $0000,$0001    
  641.     dc.w    $e842,$e900
  642.     dc.w    $0001,$0001   
  643.     dc.w    $eaac,$eb00
  644.            dc.w    $0001,$0000    ; 31
  645.            dc.w    $ecec,$ed00
  646.            dc.w    $0000,$0001    
  647.            dc.w    $eefa,$ef00
  648.            dc.w    $0001,$0001   
  649.            dc.w    $f078,$f100
  650.            dc.w    $0001,$0000    ; 32
  651.     dc.w    $0000,$0000
  652.     
  653. ***********************************************************
  654.  
  655.         section    DemoBSS,BSS
  656.  
  657. Level3Save:    ds.l    1
  658. gfx_base    ds.l    1        ; pointer to graphics base
  659. OldView        ds.l    1        ; old Work Bench view addr.
  660. VectorBase:    ds.l    1        ; pointer to the Vector Base
  661.  
  662. OldDMACon:    ds.w    1        ; old dmacon bits
  663. OldINTEna:    ds.w    1        ; old intena bits
  664.  
  665. ScrollPos:    ds.l    1
  666.