home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / 3dbobfield.lha / starbob.S < prev   
Encoding:
Text File  |  1990-09-13  |  18.4 KB  |  585 lines

  1.     section l,code_c
  2.  
  3. Trap_vec0  = $80
  4. Execbase   = $4
  5. Oldopen    = -$198
  6. Intenar    = $01c
  7. Intena     = $09a
  8. Dmaconr    = $002
  9. Dmacon     = $096
  10. Cop1lch    = $080
  11. Copjmp1    = $088
  12. Vposr      = $004
  13.  
  14. Tabelle=$76000
  15. planes=$60000
  16.  
  17.     Move.l    #Start,$80.w    ; Trap vector 0
  18.     Trap    #0        ; Execute trap 0 to give full control of the
  19.     Rts            ; 68000, needs an RTE to return.
  20.  
  21. Start:
  22.     bsr.L    tabin
  23.     bsr.L    tabin2
  24.     bsr.L    tabin3
  25.     bsr.L    mouseinit
  26.     bsr.S    KillSys
  27.     bsr.L    main
  28.     bsr.S    setupsys
  29.  
  30.     Rte        ; Return from exception 
  31.         
  32.  
  33. *****************************************************************************
  34. ;Killsys - Disable operating system and interrupts
  35. *****************************************************************************
  36. Killsys:
  37.     Move.l    $4.w,a6        ; Execbase vector
  38.     Lea    Gfxname(pc),a1    ; Pointer to "graphics.library" into a1
  39.     Jsr    Oldopen(a6)    ; Open this library
  40.     Lea    $dff000,a6    ; Pointer to custom chips
  41.     Move.l    d0,a0        ; Address of the graphics library
  42.     Move.l    38(a0),Sys_copl        ; Remember the System copperlist
  43.     Move    Intenar(a6),Int_set    ; System interrupts
  44.     Move    #$7fff,Intena(a6)    ; Now switch off all interrupts
  45.     Move.l    $6c.w,Vbl_vec        ; System vertical blanking int.
  46.     Move    Dmaconr(a6),Dma_set    ; System DMA
  47.     Move    #$7fff,Dmacon(a6)    ; Clear all DMA
  48.     Move    #$87c0,Dmacon(a6)    ; Now set the required DMA channels
  49.  
  50.     Move.l    #Cop,Cop1lch(a6)    ; Init. our own copperlist
  51.     Clr    Copjmp1(a6)
  52.  
  53.     Rts
  54.  
  55. Gfxname:    Dc.b "graphics.library",0
  56.     Even
  57. *****************************************************************************
  58. ;Sysreturn - Re-enable operating system and interrupts
  59. *****************************************************************************
  60. Setupsys:
  61.     Lea    $dff000,a6
  62.     Move    #$7fff,Intena(a6)    ; Clear all interrupts
  63.     Move.l    Vbl_vec,$6c.w    ; Restore VBL interrupt
  64.     Move    Int_set,d0
  65.     Or    #$c000,d0
  66.     Move    d0,Intena(a6)        ; Restore system interrupts
  67.     Move    #$7fff,Dmacon(a6)
  68.     Move    Dma_set,d0
  69.     Or    #$8200,d0
  70.     Move    d0,Dmacon(a6)        ; Restore system DMA
  71.     Move.l    Sys_copl,Cop1lch(a6)    ; Restore system copperlist
  72.     Clr    Copjmp1(a6)
  73.     Rts
  74.  
  75. Vbl_vec:          dc.l 0
  76. Int_set:          dc.l 0
  77. Dma_set:          dc.l 0
  78. Sys_copl:          dc.l 0
  79.  
  80.  
  81. Main:
  82.     Move.l    Vposr(a6),d0
  83.     And.l    #$1ff00,d0
  84.     Cmp.l    #$00100,d0    ; Wait for vertical position 1
  85.     Bne.s    Main
  86.  
  87.     bsr.L    mouse
  88.     bsr.S    rout1
  89.     bsr.S    rout2
  90.     bsr.L    rout3
  91.     ; ROUTINE ;
  92.  
  93.     Btst    #6,$bfe001    ; Check the left mouse button
  94.     Bne.s    Main
  95.  
  96.     MOVEQ    #0,D0
  97.  
  98.     Rts
  99.  
  100.  
  101. rout1:    LEA    planepointer1(PC),A0    
  102.     MOVE.L    4(A0),D0    
  103.     MOVE.L    (A0),4(A0)    
  104.     MOVE.L    8(A0),(A0)    
  105.     MOVE.L    D0,8(A0)
  106.     LEA    cop+2(PC),A0    
  107.     ADD.L    #$00000540,D0
  108.     ADDQ.L    #2,D0
  109.     MOVE.L    D0,D1
  110.     ADD.L    #$0000002A,D1
  111.     MOVE.W    D0,4(A0)
  112.     MOVE.W    D1,12(A0)
  113.     SWAP    D0
  114.     SWAP    D1
  115.     MOVE.W    D0,(A0)
  116.     MOVE.W    D1,8(A0)
  117.     RTS    
  118.     
  119. rout2:    MOVE.L    planepointer2(PC),D0    
  120.     ADDQ.L    #2,D0
  121.     ADD.L    #$00000540,D0
  122.     MOVE.L    D0,$0054(A6)
  123.     MOVE.L    #$01000000,$0040(A6)
  124.     MOVE.W    #2,$0066(A6)
  125.     MOVE.W    #$4E14,$0058(A6)
  126.     ADD.L    #$00005DD6,D0
  127.     MOVE.L    D0,A5
  128.     MOVEM.L    NULL(PC),D0-D6/A0-A4 
  129. CLEAR:    BLK.L    $3D8/4,$48E5FEF8
  130.     RTS    
  131.  
  132.  
  133. rout3:    LEA    tabelle+$390c,A1       ;balls of fire
  134.     LEA    Tabelle+$36b0,A3
  135.     MOVE.W    #$0081,D7
  136.     LEA    F9A64(PC),A4
  137.     LEA    Tabelle,A5
  138.     MOVEM.W    (A4)+,D0-D2
  139.     ADD.W    D0,Z9A7C
  140.     ADD.W    D1,Z9A7E
  141.     SUB.W    D2,Z96DA
  142.     MOVE.W    Z96da(PC),D2
  143.     CMP.W    #$0CB2,D2
  144.     BGE.S    lbC00004E
  145. lbC000036:
  146.     CMP.W    #$0C99,D2
  147.     BGE.S    lbC00005C
  148.     ADD.W    #$0019,D2
  149.     SUBQ.W    #1,Z9560
  150.     BRA.S    lbC000036
  151.  
  152. lbC000048:
  153.     CMP.W    #$0CB2,D2
  154.     BLE.S    lbC00005C
  155. lbC00004E:
  156.     SUB.W    #$0019,D2
  157.     ADDQ.W    #1,Z9560
  158.     BRA.S    lbC000048
  159.  
  160. lbC00005C:
  161.     MOVE.W    D2,Z96DA
  162.     LEA    tab(PC),A0
  163.     MOVE.W    Z9560(PC),D0
  164.     BGE.S    lbC000074
  165.     ADD.W    #$0082,D0
  166.     BRA.S    lbC00007E
  167.  
  168. lbC000074:
  169.     CMP.W    #$0081,D0
  170.     BLE.S    lbC00007E
  171.     SUB.W    #$0082,D0
  172. lbC00007E:
  173.     MOVE.W    D0,Z9560
  174.     ADD.W    D0,D0
  175.     ADD.W    D0,D0
  176.     ADD.W    D0,A0
  177.     MOVE.L    planepointer2(PC),A4
  178. lbC00008E:
  179.     BTST    #6,2(A6)
  180.     BNE.S    lbC00008E
  181.     MOVE.L    #$FFFF0000,$0044(A6)
  182.     MOVE.L    #$0026001C,$0060(A6)
  183.     MOVE.L    #$001C0026,$0064(A6)
  184. lbC0000AE:
  185.     MOVE.L    A4,A2
  186.     MOVE.W    (A0)+,D0
  187.     MOVE.W    (A0)+,D1
  188.     MOVE.W    D2,-(A7)
  189.     ADD.W    D2,D2
  190.     MOVE.W    0(A1,D2.W),D6
  191.     ADD.W    D2,D2
  192.     MOVE.L    0(A5,D2.W),D5
  193.     MOVE.W    D5,D3
  194.     ASR.W    #1,D3
  195.     ADD.W    Z9A7C(PC),D0
  196.     ADD.W    Z9A7E(PC),D1
  197.     AND.W    #$03FF,D0
  198.     AND.W    #$03FF,D1
  199.     SUB.W    #$0200,D0
  200.     SUB.W    #$0200,D1
  201.     MULS    D6,D0
  202.     BEQ.S    lbC000164
  203.     MULS    D6,D1
  204.     BEQ.S    lbC000164
  205.     MOVEQ    #9,D6
  206.     ASR.L    D6,D0
  207.     ASR.L    D6,D1
  208.     ADD.W    D3,D1
  209.     ADD.W    #$00B0,D0
  210.     BMI.S    lbC000164
  211.     CMP.W    #$0150,D0
  212.     BGE.S    lbC000164
  213.     ADD.W    #$009F,D1
  214.     BMI.S    lbC000164
  215.     CMP.W    #$012E,D1
  216.     BGE.S    lbC000164
  217.     ADD.W    D1,D1
  218.     ADD.W    0(A3,D1.W),A2
  219.     MOVE.W    D0,D6
  220.     ASR.W    #3,D6
  221.     ADD.W    D6,A2
  222.     AND.W    #$000F,D0
  223.     ROR.W    #4,D0
  224.     MOVE.W    D0,D2
  225.     OR.W    #$0FCA,D0
  226.     SWAP    D0
  227.     MOVE.W    D2,D0
  228.     MOVE.L    #Ball,D6   
  229.     MOVE.L    #Maske,D2  
  230.     SWAP    D5
  231.     MOVE.W    D5,D4
  232.     SWAP    D5
  233.     ADD.W    D5,D5
  234.     EXT.L    D5
  235.     ADD.L    D5,D2
  236.     ADD.L    D5,D6
  237. lbC000144:
  238.     BTST    #6,2(A6)
  239.     BNE.S    lbC000144
  240.     MOVE.L    A2,$0054(A6)
  241.     MOVE.L    A2,$0048(A6)
  242.     MOVE.L    D6,$004C(A6)
  243.     MOVE.L    D2,$0050(A6)
  244.     MOVE.L    D0,$0040(A6)
  245.     MOVE.W    D4,$0058(A6)
  246. lbC000164:
  247.     MOVE.W    (A7)+,D2
  248.     SUB.W    #$0019,D2
  249.     DBRA    D7,lbC0000AE
  250. lbC00016E:
  251.     BTST    #6,2(A6)
  252.     BNE.S    lbC00016E
  253.     RTS    
  254.  
  255. mouseinit:
  256.     MOVE.B    $DFF00A+1,D0
  257.     MOVE.B    D0,MHCNT
  258.     MOVE.B    $DFF00A,D0
  259.     MOVE.B    D0,MVCNT
  260.     RTS
  261. mouse:
  262.     MOVE.B    $DFF00A+1,D4
  263.     MOVE.B    MHCNT(PC),D5
  264.     MOVE.B    D4,MHCNT
  265.     SUB.B    D5,D4
  266.     BEQ.S    PL2
  267.     BLT.S    PL1
  268.     CMP.W    #0018,F9a64
  269.     BEQ.S    PL2
  270.     ADD.W    #1,F9A64
  271.     BRA.S    PL2
  272. PL1:    CMP.W    #$FFE8,F9A64
  273.     BEQ.S    PL2
  274.     SUB.W    #1,F9A64
  275. PL2:    MOVE.B    $DFF00A,D4
  276.     MOVE.B    MVCNT(PC),D5
  277.     MOVE.B    D4,MVCNT
  278.     SUB.B    D5,D4
  279.     BEQ.S    PL4
  280.     BLT.S    PL3
  281.     CMP.W    #0018,F9A64+2
  282.     BEQ.S    PL4
  283.     ADD.W    #1,F9A64+2
  284.     BRA.S    PL4
  285. PL3:    CMP.W    #$FFE8,F9A64+2
  286.     BEQ.S    PL4
  287.     SUB.W    #1,F9A64+2
  288. PL4:    RTS
  289.  
  290. MVCNT:    DC.B 0
  291. MHCNT:    DC.B 0
  292.  
  293. tabin:    MOVEQ    #0,D0
  294.     MOVEQ    #$54,D1
  295.     MOVE.W    #$012D,D2
  296.     LEA    Tabelle+$36b0,A0
  297. lbC00000E:
  298.     MOVE.W    D0,(A0)+
  299.     ADD.L    D1,D0
  300.     DBRA    D2,lbC00000E
  301.     RTS    
  302.  
  303. tabin2:    MOVE.W    #1,D0
  304.     LEA    Tabelle,A0
  305.     MOVE.L    #$00002000,D1
  306.     MOVE.W    #$0DAB,D7
  307. lbC000014:
  308.     MOVE.L    D1,D2
  309.     DIVU    D0,D2
  310.     CMP.W    #15,D2
  311.     BLE.S    lbC000020
  312.     MOVEQ    #15,D2
  313. lbC000020:
  314.     MOVE.W    D2,D3
  315.     ADDQ.W    #1,D3
  316.     LSL.W    #7,D3
  317.     ADDQ.W    #2,D3
  318.     MOVE.W    D3,(A0)+
  319.     NEG.W    D2
  320.     ADD.W    #15,D2
  321.     MOVE.W    D2,(A0)+
  322.     ADDQ.W    #1,D0
  323.     DBRA    D7,lbC000014
  324.     RTS    
  325.  
  326. tabin3:
  327.     MOVE.L    #$40600,D0
  328.     MOVEQ    #$5A,D1
  329.     LEA    TABELLE+$390c,A0
  330.     MOVE.W    #$0DAB,D7
  331. loop:    MOVE.L    D0,D2
  332.     DIVU    D1,D2
  333.     MOVE.W    D2,(A0)+
  334.     ADDQ.W    #1,D1
  335.     DBF    D7,LOOP
  336.     RTS
  337.  
  338.  
  339. F9A64:    dc.w    $0000,$0000,$0030
  340. Z9A7C:    dc.w    $0000
  341. Z9A7E:    dc.w    $0000
  342. Z96DA:    dc.w    $0c9e
  343. Z9560:    dc.w    $006e
  344.  
  345. planepointer1:    dc.l    planes
  346. planepointer2:    dc.l    planes+$6318
  347. planepointer3:    dc.l    planes+$c630
  348.  
  349. NULL:    BLK.W    36,0
  350.  
  351. ball:    DC.W    $07E0,$07C0,$03C0,$07C0,$07E0,$07C0,$03C0,$0380
  352.     DC.W    $03C0,$0380,$0380,$0380,$0180,$0100,$0080,$0100
  353.     DC.W    $07E0,$07C0,$03C0,$07C0,$07E0,$07C0,$03C0,$0380
  354.     DC.W    $03C0,$0380,$0380,$0380,$0180,$0100,$0180,$0100
  355.     DC.W    $1FF8,$1FF0,$0FF0,$1FF0,$0FF0,$0FE0,$0FF0,$0FE0
  356.     DC.W    $05E0,$07C0,$07C0,$04C0,$02C0,$0280,$0100,$0000
  357.     DC.W    $1FF8,$1FF0,$0FF0,$1FF0,$0FF0,$0FE0,$0FF0,$0FE0
  358.     DC.W    $07E0,$07C0,$05C0,$07C0,$03C0,$0380,$0100,$0000
  359.     DC.W    $3FFC,$3FF8,$1FF8,$3FF8,$1BF8,$1BF0,$0DF0,$0DE0
  360.     DC.W    $0AF0,$0FE0,$07C0,$0580,$0380,$0100,$0000,$0000
  361.     DC.W    $3FFC,$3FF8,$1FF8,$3FF8,$1FF8,$1FF0,$0FF0,$0FE0
  362.     DC.W    $0DF0,$0DE0,$07E0,$07C0,$03C0,$0100,$0000,$0000
  363.     DC.W    $77FE,$77FC,$3BFC,$3BF8,$35FC,$35F8,$1AF8,$1AF0
  364.     DC.W    $0DE0,$0FC0,$07C0,$0740,$0140,$0000,$0000,$0000
  365.     DC.W    $7FFE,$7FFC,$3FFC,$3FF8,$3BFC,$3BF8,$1DF8,$1DF0
  366.     DC.W    $0FF0,$0FE0,$07E0,$07C0,$01C0,$0000,$0000,$0000
  367.     DC.W    $6BFE,$6BFC,$35FC,$75FC,$3BF8,$3BF0,$1DF0,$1DE0
  368.     DC.W    $0FE0,$0FC0,$03A0,$0280,$0000,$0000,$0000,$0000
  369.     DC.W    $77FE,$77FC,$3BFC,$7BFC,$3FFC,$3FF8,$1FF8,$1FF0
  370.     DC.W    $0FF0,$0FE0,$03E0,$0380,$0000,$0000,$0000,$0000
  371.     DC.W    $F7FF,$F7FE,$7BFE,$7BF8,$3FF8,$3FF0,$1FF0,$1FE0
  372.     DC.W    $0FD0,$07A0,$0040,$0000,$0000,$0000,$0000,$0000
  373.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$1FF8,$1FF0
  374.     DC.W    $0FF0,$07E0,$01C0,$0000,$0000,$0000,$0000,$0000
  375.     DC.W    $FFFE,$FFFC,$7FFC,$7FF8,$3FF8,$3FF0,$1FF0,$0FD0
  376.     DC.W    $07A0,$0240,$0000,$0000,$0000,$0000,$0000,$0000
  377.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$1FF8,$0FF0
  378.     DC.W    $07E0,$03C0,$0000,$0000,$0000,$0000,$0000,$0000
  379.     DC.W    $FFFE,$FFFC,$7FFC,$7FF8,$3FF8,$3FE8,$0FE8,$0FA0
  380.     DC.W    $0240,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  381.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$0FF8,$0FE0
  382.     DC.W    $03C0,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  383.     DC.W    $FFFE,$FFFC,$7FFC,$7FF4,$3FF4,$1FD0,$0FD0,$0240
  384.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  385.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$1FF0,$0FF0,$03C0
  386.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  387.     DC.W    $FFFE,$FFFA,$3FFA,$3FF0,$1FE8,$0FA0,$0220,$0000
  388.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  389.     DC.W    $FFFF,$FFFE,$3FFE,$3FF8,$1FF8,$0FE0,$03E0,$0000
  390.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  391.     DC.W    $FFFD,$7FF8,$3FF8,$3FE8,$0FD0,$0440,$0000,$0000
  392.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  393.     DC.W    $FFFF,$7FFC,$3FFC,$3FF8,$0FF0,$07C0,$0000,$0000
  394.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  395.     DC.W    $7FFC,$7FF4,$1FF4,$1F90,$0420,$0000,$0000,$0000
  396.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  397.     DC.W    $7FFE,$7FFC,$1FFC,$1FF0,$07E0,$0000,$0000,$0000
  398.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  399.     DC.W    $7FFA,$3FE8,$0FC8,$0440,$0000,$0000,$0000,$0000
  400.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  401.     DC.W    $7FFE,$3FF8,$0FF8,$07C0,$0000,$0000,$0000,$0000
  402.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  403.     DC.W    $3FF4,$1F90,$0220,$0000,$0000,$0000,$0000,$0000
  404.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  405.     DC.W    $3FFC,$1FF0,$03E0,$0000,$0000,$0000,$0000,$0000
  406.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  407.     DC.W    $1FC8,$0440,$0000,$0000,$0000,$0000,$0000,$0000
  408.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  409.     DC.W    $1FF8,$07C0,$0000,$0000,$0000,$0000,$0000,$0000
  410.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  411.     DC.W    $0420,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  412.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  413.     DC.W    $07E0,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  414.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  415.  
  416. maske:    DC.W    $07E0,$07C0,$03C0,$07C0,$07E0,$07C0,$03C0,$0380
  417.     DC.W    $03C0,$0380,$0180,$0380,$0180,$0100,$0180,$0100
  418.     DC.W    $07E0,$07C0,$03C0,$07C0,$07E0,$07C0,$03C0,$0380
  419.     DC.W    $03C0,$0380,$0180,$0380,$0180,$0100,$0180,$0100
  420.     DC.W    $1FF8,$1FF0,$0FF0,$1FF0,$0FF0,$0FE0,$0FF0,$0FE0
  421.     DC.W    $07E0,$07C0,$03C0,$07C0,$03C0,$0380,$0180,$0000
  422.     DC.W    $1FF8,$1FF0,$0FF0,$1FF0,$0FF0,$0FE0,$0FF0,$0FE0
  423.     DC.W    $07E0,$07C0,$03C0,$07C0,$03C0,$0380,$0180,$0000
  424.     DC.W    $3FFC,$3FF8,$1FF8,$3FF8,$1FF8,$1FF0,$0FF0,$0FE0
  425.     DC.W    $0FF0,$0FE0,$07E0,$07C0,$03C0,$0180,$0000,$0000
  426.     DC.W    $3FFC,$3FF8,$1FF8,$3FF8,$1FF8,$1FF0,$0FF0,$0FE0
  427.     DC.W    $0FF0,$0FE0,$07E0,$07C0,$03C0,$0180,$0000,$0000
  428.     DC.W    $7FFE,$7FFC,$3FFC,$3FF8,$3FFC,$3FF8,$1FF8,$1FF0
  429.     DC.W    $0FF0,$0FE0,$07E0,$07C0,$01C0,$0000,$0000,$0000
  430.     DC.W    $7FFE,$7FFC,$3FFC,$3FF8,$3FFC,$3FF8,$1FF8,$1FF0
  431.     DC.W    $0FF0,$0FE0,$07E0,$07C0,$01C0,$0000,$0000,$0000
  432.     DC.W    $7FFE,$7FFC,$3FFC,$7FFC,$3FFC,$3FF8,$1FF8,$1FF0
  433.     DC.W    $0FF0,$0FE0,$03E0,$0380,$0000,$0000,$0000,$0000
  434.     DC.W    $7FFE,$7FFC,$3FFC,$7FFC,$3FFC,$3FF8,$1FF8,$1FF0
  435.     DC.W    $0FF0,$0FE0,$03E0,$0380,$0000,$0000,$0000,$0000
  436.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$1FF8,$1FF0
  437.     DC.W    $0FF0,$07E0,$01C0,$0000,$0000,$0000,$0000,$0000
  438.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$1FF8,$1FF0
  439.     DC.W    $0FF0,$07E0,$01C0,$0000,$0000,$0000,$0000,$0000
  440.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$1FF8,$0FF0
  441.     DC.W    $07E0,$03C0,$0000,$0000,$0000,$0000,$0000,$0000
  442.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$1FF8,$0FF0
  443.     DC.W    $07E0,$03C0,$0000,$0000,$0000,$0000,$0000,$0000
  444.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$0FF8,$0FE0
  445.     DC.W    $03C0,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  446.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$3FF8,$0FF8,$0FE0
  447.     DC.W    $03C0,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  448.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$1FF0,$0FF0,$03C0
  449.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  450.     DC.W    $FFFF,$FFFE,$7FFE,$7FFC,$3FFC,$1FF0,$0FF0,$03C0
  451.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  452.     DC.W    $FFFF,$FFFE,$3FFE,$3FF8,$1FF8,$0FE0,$03E0,$0000
  453.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  454.     DC.W    $FFFF,$FFFE,$3FFE,$3FF8,$1FF8,$0FE0,$03E0,$0000
  455.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  456.     DC.W    $FFFF,$7FFC,$3FFC,$3FF8,$0FF0,$07C0,$0000,$0000
  457.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  458.     DC.W    $FFFF,$7FFC,$3FFC,$3FF8,$0FF0,$07C0,$0000,$0000
  459.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  460.     DC.W    $7FFE,$7FFC,$1FFC,$1FF0,$07E0,$0000,$0000,$0000
  461.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  462.     DC.W    $7FFE,$7FFC,$1FFC,$1FF0,$07E0,$0000,$0000,$0000
  463.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  464.     DC.W    $7FFE,$3FF8,$0FF8,$07C0,$0000,$0000,$0000,$0000
  465.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  466.     DC.W    $7FFE,$3FF8,$0FF8,$07C0,$0000,$0000,$0000,$0000
  467.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  468.     DC.W    $3FFC,$1FF0,$03E0,$0000,$0000,$0000,$0000,$0000
  469.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  470.     DC.W    $3FFC,$1FF0,$03E0,$0000,$0000,$0000,$0000,$0000
  471.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  472.     DC.W    $1FF8,$07C0,$0000,$0000,$0000,$0000,$0000,$0000
  473.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  474.     DC.W    $1FF8,$07C0,$0000,$0000,$0000,$0000,$0000,$0000
  475.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  476.     DC.W    $07E0,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  477.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  478.     DC.W    $07E0,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  479.     DC.W    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
  480.  
  481. cop:    DC.W    $00E0,$0001,$00E2,$E44C,$00E4,$0001,$00E6,$E476
  482.     DC.W    $008E,$1867,$0090,$36D4,$0092,$0038,$0094,$00D0
  483.     DC.W    $0100,$2200,$0104,$0024,$0102,$0000,$0120,$0000
  484.     DC.W    $0122,$9B76,$0124,$0000,$0126,$9EBA,$0128,$0000
  485.     DC.W    $012A,$A1FE,$012C,$0000,$012E,$A542,$0130,$0000
  486.     DC.W    $0132,$A886,$0134,$0000,$0136,$ABCA,$0138,$0000
  487.     DC.W    $013A,$AF0E,$013C,$0000,$013E,$B252,$0096,$0020
  488.     DC.W    $0108,$002C,$010A,$002C,$0180,$0000,$0182,$0FFF
  489.     DC.W    $0184,$034B,$0186,$0017,$01A0,$0000,$01A2,$0000
  490.     DC.W    $01A4,$0000,$01A6,$0000,$01A8,$0000,$01AA,$0000
  491.     DC.W    $01AC,$0000,$01AE,$0000,$01B0,$0000,$01B2,$0000
  492.     DC.W    $01B4,$0000,$01B6,$0000,$01B8,$0000,$01BA,$0000
  493.     DC.W    $01BC,$0000,$01BE,$0000,$FFFF,$FFFE,$0DEF,$07BC
  494.  
  495. tab:    DC.L    $6EED027A,$A8471EF4,$0CE71C92,$A9E9C5C6,$B6FD186A
  496.     DC.L    $3F5099B8,$19B1EC9D,$17F5A22F,$7F9B537B,$BFACED85
  497.     DC.L    $5DE54C8A,$2D190A88,$C6D09801,$37348DFA,$F52E3F4B
  498.     DC.L    $18CB9014,$C7E50C8A,$F10130FB,$3F730C11,$46C80C51
  499.     DC.L    $016513E7,$7D6BC9A7,$D5DE364C,$63079003,$2E17522C
  500.     DC.L    $A60D8E5F,$98D884AD,$5CC0732A,$4C04AFA7,$7BBDF4C4
  501.     DC.L    $A20BF927,$5E6E4A06,$99754FEB,$4796B0B8,$525EDDE8
  502.     DC.L    $D7C9E819,$92F397C7,$97F1B65B,$44FAB264,$73CB6424
  503.     DC.L    $F3492B4E,$3A673E0E,$544B3F4A,$1FAB1328,$BA7EF0CF
  504.     DC.L    $3BD1B973,$A0F6878B,$09E48865,$24DB0EDD,$E747DE6A
  505.     DC.L    $86E7D15A,$9C2F9B5E,$ACE9E549,$CD23A214,$A146A126
  506.     DC.L    $87835FD2,$12731E22,$B9FD3BD2,$CF7CBCA0,$B61A29C3
  507.     DC.L    $517F9CB9,$B7B01C46,$2F3227B9,$576E8E72,$A65986A1
  508.     DC.L    $1653FA51,$1A5028A4,$D6376460,$8F873FAA,$6040CD13
  509.     DC.L    $300142D0,$E06DBF4E,$C8D46CE5,$6510C6EC,$4CAC3BEE
  510.     DC.L    $624CF43C,$5049F2A4,$319B5D7F,$8CFB19F1,$8A4A996C
  511.     DC.L    $612EF876,$10FA46AD,$4ED82008,$C422835F,$7A0CE12E
  512.     DC.L    $8F887596,$2E6BD4A4,$BDCBC5D6,$57AC54DB,$7DDC219B
  513.     DC.L    $091CFC77,$6380B7D2,$F61933D0,$E5D0BD5E,$FA959D72
  514.     DC.L    $E1B9EB93,$9499A59C,$167D00BE,$63BFFAC5,$A630399C
  515.     DC.L    $ADB70F13,$9A3CDCDE,$DCC49AE1,$5EDCB2AC,$FE3C1642
  516.     DC.L    $41A5891F,$450C4179,$F6F8AFC5,$85309D7D,$17917B21
  517.     DC.L    $B93EF37C,$9CFCC328,$7FDCCC54,$681B67C5,$9747F71B
  518.     DC.L    $BCA2C456,$68CA0798,$C29A412D,$7B4DD1C8,$04E1C610
  519.     DC.L    $FDC3F15B,$F1A840B8,$42B94734,$5FF41F56,$3DCF72EB
  520.     DC.L    $051ED70A,$09375C4F,$FC53626A,$6337AEDD,$4715BC01
  521.     DC.L    $6EED027A,$A8471EF4,$0CE71C92,$A9E9C5C6,$B6FD186A
  522.     DC.L    $3F5099B8,$19B1EC9D,$17F5A22F,$7F9B537B,$BFACED85
  523.     DC.L    $5DE54C8A,$2D190A88,$C6D09801,$37348DFA,$F52E3F4B
  524.     DC.L    $18CB9014,$C7E50C8A,$F10130FB,$3F730C11,$46C80C51
  525.     DC.L    $016513E7,$7D6BC9A7,$D5DE364C,$63079003,$2E17522C
  526.     DC.L    $A60D8E5F,$98D884AD,$5CC0732A,$4C04AFA7,$7BBDF4C4
  527.     DC.L    $A20BF927,$5E6E4A06,$99754FEB,$4796B0B8,$525EDDE8
  528.     DC.L    $D7C9E819,$92F397C7,$97F1B65B,$44FAB264,$73CB6424
  529.     DC.L    $F3492B4E,$3A673E0E,$544B3F4A,$1FAB1328,$BA7EF0CF
  530.     DC.L    $3BD1B973,$A0F6878B,$09E48865,$24DB0EDD,$E747DE6A
  531.     DC.L    $86E7D15A,$9C2F9B5E,$ACE9E549,$CD23A214,$A146A126
  532.     DC.L    $87835FD2,$12731E22,$B9FD3BD2,$CF7CBCA0,$B61A29C3
  533.     DC.L    $517F9CB9,$B7B01C46,$2F3227B9,$576E8E72,$A65986A1
  534.     DC.L    $1653FA51,$1A5028A4,$D6376460,$8F873FAA,$6040CD13
  535.     DC.L    $300142D0,$E06DBF4E,$C8D46CE5,$6510C6EC,$4CAC3BEE
  536.     DC.L    $624CF43C,$5049F2A4,$319B5D7F,$8CFB19F1,$8A4A996C
  537.     DC.L    $612EF876,$10FA46AD,$4ED82008,$C422835F,$7A0CE12E
  538.     DC.L    $8F887596,$2E6BD4A4,$BDCBC5D6,$57AC54DB,$7DDC219B
  539.     DC.L    $091CFC77,$6380B7D2,$F61933D0,$E5D0BD5E,$FA959D72
  540.     DC.L    $E1B9EB93,$9499A59C,$167D00BE,$63BFFAC5,$A630399C
  541.     DC.L    $ADB70F13,$9A3CDCDE,$DCC49AE1,$5EDCB2AC,$FE3C1642
  542.     DC.L    $41A5891F,$450C4179,$F6F8AFC5,$85309D7D,$17917B21
  543.     DC.L    $B93EF37C,$9CFCC328,$7FDCCC54,$681B67C5,$9747F71B
  544.     DC.L    $BCA2C456,$68CA0798,$C29A412D,$7B4DD1C8,$04E1C610
  545.     DC.L    $FDC3F15B,$F1A840B8,$42B94734,$5FF41F56,$3DCF72EB
  546.     DC.L    $051ED70A,$09375C4F,$FC53626A,$6337AEDD,$4715BC01
  547.     DC.L    $00000239,$047306AC,$08E40B1C,$0D530F89,$11BE13F1
  548.     DC.L    $16231853,$1A821CAE,$1ED820FF,$23242546,$27662982
  549.     DC.L    $2B9B2DB0,$2FC231D1,$33DB35E1,$37E439E1,$3BDB3DCF
  550.     DC.L    $3FBF41AA,$43904570,$474B4921,$4AF04CBA,$4E7E503C
  551.     DC.L    $51F453A5,$554F56F3,$58915A27,$5BB65D3E,$5EBF6039
  552.     DC.L    $61AB6315,$647865D2,$67256870,$69B36AED,$6C1F6D49
  553.     DC.L    $6E6A6F83,$70927199,$7298738D,$7479755C,$76367707
  554.     DC.L    $77CF788D,$794279ED,$7A8F7B27,$7BB67C3B,$7CB67D28
  555.     DC.L    $7D8F7DED,$7E427E8C,$7ECD7F03,$7F307F53,$7F6C7F7B
  556.     DC.L    $7F807F7B,$7F6C7F53,$7F307F03,$7ECD7E8C,$7E427DEE
  557.     DC.L    $7D907D28,$7CB77C3B,$7BB67B28,$7A9079EE,$7943788E
  558.     DC.L    $77D07708,$7637755E,$747A738E,$7299719B,$70946F84
  559.     DC.L    $6E6C6D4A,$6C216AEF,$69B46872,$672765D4,$64796317
  560.     DC.L    $61AD603B,$5EC15D40,$5BB85A29,$589356F6,$555253A7
  561.     DC.L    $51F6503E,$4E814CBD,$4AF34923,$474E4573,$439241AC
  562.     DC.L    $3FC23DD2,$3BDD39E4,$37E635E4,$33DE31D3,$2FC52DB3
  563.     DC.L    $2B9E2985,$27682549,$23272102,$1EDB1CB1,$1A851856
  564.     DC.L    $162613F4,$11C10F8C,$0D560B1F,$08E706AF,$0476023C
  565.     DC.L    $0003FDC8,$FB8EF955,$F71DF4E5,$F2AEF078,$EE43EC10
  566.     DC.L    $E9DEE7AE,$E57FE353,$E129DF02,$DCDDDABB,$D89BD67F
  567.     DC.L    $D466D251,$D03ECE30,$CC26CA1F,$C81DC61F,$C426C231
  568.     DC.L    $C042BE57,$BC71BA90,$B8B5B6E0,$B510B346,$B182AFC4
  569.     DC.L    $AE0DAC5C,$AAB1A90D,$A770A5D9,$A44AA2C2,$A1419FC7
  570.     DC.L    $9E559CEB,$9B889A2D,$98DA9790,$964D9512,$93E092B7
  571.     DC.L    $9195907D,$8F6D8E66,$8D688C72,$8B868AA3,$89C988F8
  572.     DC.L    $88308772,$86BD8612,$857084D8,$844983C4,$834982D7
  573.     DC.L    $826F8211,$81BD8172,$813280FB,$80CE80AB,$80938084
  574.     DC.L    $807F8083,$809280AB,$80CE80FA,$81318171,$81BC8210
  575.     DC.L    $826E82D5,$834783C2,$844784D5,$856E860F,$86BB876F
  576.     DC.L    $882D88F5,$89C58A9F,$8B828C6F,$8D648E62,$8F699078
  577.     DC.L    $919192B2,$93DC950E,$9648978A,$98D59A28,$9B839CE5
  578.     DC.L    $9E4F9FC1,$A13BA2BC,$A444A5D3,$A769A906,$AAAAAC55
  579.     DC.L    $AE06AFBD,$B17BB33F,$B509B6D8,$B8AEBA89,$BC69BE4F
  580.     DC.L    $C03AC229,$C41EC617,$C815CA17,$CC1DCE28,$D036D248
  581.     DC.L    $D45ED677,$D893DAB2,$DCD4DEF9,$E121E34A,$E577E7A5
  582.     DC.L    $E9D5EC07,$EE3AF06F,$F2A5F4DC,$F714F94C,$FB85FDBF
  583.  
  584.  
  585.