home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !MAGS / LEDGERS / LEDG_01.ZIP / LEDG_01.MSA / SOURCE / INIT.S < prev    next >
Encoding:
Text File  |  1985-11-20  |  3.3 KB  |  168 lines

  1. * GENERAL PURPOSE INITIALISATION AND DE-INITIALISATION ROUTINE
  2. * ON ENTRY TO INIT, SCR1 AND SCR2 MUST CONTAIN SCREEN ADDRESS
  3. * IF ONLY ONE SCREEN, SET BOTH TO SAME ADDRESS
  4. *
  5. * USAGE:     JSR SUPER
  6. *        MOVE.L #MY,A7
  7. *        JSR INIT
  8. *           main loop
  9. * TO END:    JSR END
  10. *        CLR.L -(A7)
  11. *        TRAP #1
  12.  
  13. INIT        MOVE.W #$2700,SR
  14.  
  15.         MOVE.W #2,-(A7)
  16.         TRAP #14
  17.         ADDQ.L #2,A7
  18.         MOVE.L D0,SAVE_PHYSIC
  19.  
  20.         MOVE.W #3,-(A7)
  21.         TRAP #14
  22.         ADDQ.L #2,A7
  23.         MOVE.L D0,SAVE_LOGIC
  24.  
  25.         MOVE.W #4,-(A7)
  26.         TRAP #14
  27.         ADDQ.L #2,A7
  28.         MOVE.W D0,SAVE_RES
  29.  
  30.         LEA SAVE_PAL,A0
  31.         LEA $FFFF8240.W,A1
  32.         REPT 8
  33.         MOVE.L (A1)+,(A0)+
  34.         ENDR
  35.  
  36.         DC.W $A000        
  37.         DC.W $A00A        
  38.         MOVE.B #$12,D0        
  39.         BSR IKBD        
  40.  
  41.         LEA $FFFF8240.W,A0
  42.         MOVEQ.W #8-1,D0
  43. .COLS        MOVE.L #0,(A0)+
  44.         DBF D0,.COLS
  45.  
  46.         MOVEQ.L #0,D1
  47.         MOVE.L SCR1,A0
  48.         CMP.L SCR2,A0
  49.         BEQ .L222
  50.         MOVE.L SCR2,A1
  51.         MOVE.L A1,A2
  52. .L33        CMPA.L A0,A2
  53.         BEQ .L2
  54.         MOVE.L D1,(A0)+
  55.         MOVE.L D1,(A1)+
  56.         BRA .L33        
  57. .L222        MOVE.W #32000/4-1,D0
  58. .L22        MOVE.L D1,(A0)+
  59.         DBF D0,.L22
  60.  
  61. .L2        LEA VARS,A0
  62.         MOVE.L $70.W,(A0)+
  63.         MOVE.L $120.W,(A0)+
  64.         MOVE.L $118.W,(A0)+
  65.         MOVE.L $134.W,(A0)+
  66.         MOVE.L $68.W,(A0)+
  67.         MOVE.B $FFFFFA07.W,(A0)+
  68.         MOVE.B $FFFFFA09.W,(A0)+
  69.         MOVE.B $FFFFFA13.W,(A0)+
  70.         MOVE.B $FFFFFA1B.W,(A0)+
  71.         MOVE.B $FFFFFA21.W,(A0)+
  72.         MOVE.B $FFFFFA15.W,(A0)+
  73.         MOVE.B $FFFFFA19.W,(A0)+
  74.         MOVE.B $FFFFFA1F.W,(A0)+
  75.         MOVE.B $FFFFFA15.W,(A0)+
  76.         MOVE.L #VBL,$70.W        
  77.         MOVE.L #KEY,$118.W
  78.         CLR.B $FFFFFA07.W
  79.         CLR.B $FFFFFA09.W
  80.         CLR.B $FFFFFA13.W
  81.         CLR.B $FFFFFA15.W
  82.         ORI.B #1,$FFFFFA07.W        TIMER B ENABLE
  83.         ORI.B #1,$FFFFFA13.W
  84.         ORI.B #64,$FFFFFA09.W        KEYBOARD ENABLE
  85.         ORI.B #64,$FFFFFA15.W
  86.  
  87.         MOVE.W #$2300,SR
  88.         MOVE.L SCR1,D0
  89.         LSR.W #8,D0
  90.         MOVE.W #$2300,SR
  91.         CLR.B VBLFLAG
  92. .WAITVBL    TST.B VBLFLAG
  93.         BEQ .WAITVBL
  94.         MOVE.L D0,$FFFF8200.W
  95.         CLR.B $FFFF8260.W
  96.         MOVE.B #2,$FFFF820A.W
  97.         RTS
  98.  
  99. SCR1        DS.L 1
  100. SCR2        DS.L 1
  101. VARS        DS.B 32
  102. VBL        ST VBLFLAG
  103. RTE        RTE
  104. VBLFLAG        DC.W 0
  105.  
  106. KEY        MOVE.B $FFFFFC02.W,PRESS
  107.         BCLR #6,$FFFFFA11.W
  108.         RTE
  109. PRESS        DC.W 0    
  110.  
  111. SAVE_PAL    DS.W 16
  112. SAVE_RES    DS.W 1
  113. SAVE_PHYSIC    DS.L 1
  114. SAVE_LOGIC    DS.L 1
  115.  
  116. END        MOVE.W #$2700,SR
  117.         LEA $FFFF8800.W,A0
  118.         MOVE.L #$700FF00,(A0)
  119.         MOVE.L #$8000000,(A0)
  120.         MOVE.L #$9000000,(A0)
  121.         MOVE.L #$A000000,(A0)
  122.         LEA VARS,A0
  123.         MOVE.L (A0)+,$70.W
  124.         MOVE.L (A0)+,$120.W
  125.         MOVE.L (A0)+,$118.W
  126.         MOVE.L (A0)+,$134.W
  127.         MOVE.L (A0)+,$68.W
  128.         MOVE.B (A0)+,$FFFFFA07.W
  129.         MOVE.B (A0)+,$FFFFFA09.W
  130.         MOVE.B (A0)+,$FFFFFA13.W
  131.         MOVE.B (A0)+,$FFFFFA1B.W
  132.         MOVE.B (A0)+,$FFFFFA21.W
  133.         MOVE.B (A0)+,$FFFFFA1SAVE_PAL    DS.W 16
  134. SAVE_RES    DS.W 1
  135. SAVE_PHYSIC    DS.L 1
  136. SAVE_LOGIC    DS.L 1
  137.  
  138. END        MOVE.W #$2700,SR
  139.         LEA $FFFF8800.W,A0
  140.         MOVE.L #$700FF00,(A0)
  141.         MOVE.L #$8000000,(A0)
  142.         MOVE.L #$9000000,(A0)
  143.         MOVE.L #$A000000,(A0)
  144.         LEA VARS,A0
  145.         MOVE.L (A0)+,$70.W
  146.         MOVE.L (A0)+,$120.W
  147.         MOVE.L (A0)+,$118.W
  148.         MOVE.L (A0)+,$134.W
  149.         MOVE.L (A0)+,$68.W
  150.         MOVE.B (A0)+,$FFFFFA07.W
  151.         MOVE.B (A0)+,$FFFFFA09.W
  152.         MOVE.B (A0)+,$FFFFFA13.W
  153.         MOVE.B (A0)+,$FFFFFA1B.W
  154.         MOVE.B (A0)+,$FFFFFA21.W
  155.         MOVE.B (A0)+,$FFFFFA1SAVE_PAL    DS.W 16
  156. SAVE_RES    DS.W 1
  157. SAVE_PHYSIC    DS.L 1
  158. SAVE_LOGIC    DS.L 1
  159.  
  160. END        MOVE.W #$2700,SR
  161.         LEA $FFFF8800.W,A0
  162.         MOVE.L #$700FF00,(A0)
  163.         MOVE.L #$8000000,(A0)
  164.         MOVE.L #$9000000,(A0)
  165.         MOVE.L #$A000000,(A0)
  166.         LEA VARS,A0
  167.         MOVE.L (A0)+,$70.W
  168.         MOVE.L (A0)