home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: ISDigitiser Old / Lowe_ISDigitiserOld.img / PICDEGAS.S < prev    next >
Encoding:
Text File  |  1985-11-20  |  7.0 KB  |  238 lines

  1. MOVE.W (A0),SR            * UP-DATE SR
  2.         LEA STACKST(PC),A0
  3.         MOVE.L (A0),-(SP)
  4.         MOVE.W #$20,-(SP)        * SET TO USER MODE
  5.         TRAP #1
  6.         ADDQ.L #6,SP
  7.         MOVEM.L (SP)+,D0-D5/A0-A6    * PULL'EM OFF
  8.         RTS
  9.  
  10.         EVEN
  11.  
  12. *
  13. * SOUND CHANEL VOLUME DUMP TABLES
  14. *
  15.  
  16. CHANEL_A     DC.L $00000000,$00020000,$00020001,$00020002
  17.         DC.L $00030002,$00040001,$00040002,$00050002
  18.         DC.L $00060000,$00060002,$00060003,$00060004
  19.         DC.L $00070002,$00070004,$00070005,$00080002
  20.         DC.L $00080003,$00080004,$00080005,$00090002
  21.         DC.L $00090003,$00090004,$00090005,$00090006
  22.         DC.L $00090007,$000A0003,$000A0004,$000A0005
  23.         DC.L $000A0006,$000A0007,$000B0000,$000B0001
  24.         DC.L $000B0002,$000B0004,$000B0005,$000B0006
  25.         DC.L $000B0007,$000B0008,$000B0008,$000B0009
  26.         DC.L $000B0009,$000C0000,$000C0001,$000C0002
  27.         DC.L $000C0003,$000C0004,$000C0005,$000C0006
  28.         DC.L $000C0008,$000C0008,$000C0009,$000C0009
  29.         DC.L $000C0009,$000C000A,$000D0000,$000D0002
  30.         DC.L $000D0003,$000D0004,$000D0005,$000D0006
  31.         DC.L $000D0007,$000D0008,$000D0008,$000D0009       
  32.  
  33.         EVEN
  34.  
  35. *
  36. * SYSTEM VARIABLES FOR ABOVE PROGRAM
  37. *
  38.  
  39. STATUS        DS.W 1
  40. STACKST        DS.W 1
  41.  
  42. * THIS IS THE END FOLKS.....
  43.  
  44. *
  45. * (C)1987 INNOVATED SOFTWARE
  46. * PICTURE AND SAMPLED SOUND LOADER
  47. *
  48. * YOU CAN LOAD IN A DEGAS PICTURE AND SAMPLED SOUND USING THIS PROGRAM
  49. * IF YOU USE THIS PROGRAM IN ANY PART OF YOUR OWN PROGRAM THEN PLEAE
  50. * ACKNOWLEDGE INNOVATED SOFTWARE SOME WHERE ON THE TITLE PAGE.
  51. *
  52. * THE PICTURE FILE MUST BE CALLED DEMO.PI1
  53. * THE SOUND FILE MUST BE          DEMO.SND
  54. *
  55. * REVISION 1.0                    BY R.PERRY.
  56. *
  57.  
  58. STARTIT        MOVEA.L 4(A7),A6        * BASE PAGE START
  59.         MOVE.L 4(A6),D0
  60.         SUBI.L #$1000,D0
  61.         MOVE.L D0,MEMEND        * END OF MEMORY
  62.         SUB.L (A6),D0
  63.         MOVE.L D0,-(SP)
  64.         MOVE.L A6,-(SP)
  65.         CLR.W -(SP)
  66.         MOVE.W #$4A,-(SP)
  67.         TRAP #1
  68.         ADDA.L #12,SP
  69.  
  70.         PEA STACKST        
  71.         MOVE.W #$20,-(SP)        * DO SUPERVISOR STUFF
  72.         TRAP #1
  73.         ADDQ.L #6,SP
  74.         MOVE.L D0,SAVE_SSP        * SAVE OLD STACK
  75.         
  76.         LEA FILE_PIC,A0
  77.         BSR OPEN_FILE
  78.         LEA PIC_BUFFER,A1
  79.         MOVE.L #$7D42,A2        * NEO FILE SIZE
  80.         BSR READ_FILE
  81.         BSR CLOSE_FILE
  82.         MOVE.W $FFFF8260,REZ+2        * SAVE REZ.
  83.         MOVE.B PIC_BUFFER+1,$FFFF8260    * SET SCREEN REZ.
  84.         MOVE.L #PIC_BUFFER+2,-(SP)
  85.         MOVE.W #6,-(SP)
  86.         TRAP #14
  87.         ADDQ.L #6,SP
  88.         MOVE.W #3,-(SP)
  89.         TRAP #14
  90.         ADDQ.L #2,SP
  91.         MOVEA.L D0,A1
  92.         MOVE.L #PIC_BUFFER+34,A0    * START OF PICTURE 
  93.         MOVE.W #$7FFF,D0
  94. WRITE_PIC    MOVE.W (A0)+,(A1)+
  95.         DBF D0,WRITE_PIC        * PUT PICTURE ON SCREEN
  96.  
  97.         LEA FILE_SND,A0
  98.         BSR OPEN_FILE
  99.         LEA PIC_BUFFER,A1
  100.         MOVE.L MEMEND,A2    
  101.         BSR READ_FILE
  102.         MOVE.L D0,D6
  103.         BSR CLOSE_FILE
  104.  
  105.         MOVE.W #$2F,D0
  106. PAUSE        MOVE.W #-1,D1            * ALLOW TIME FOR
  107. PAUSELP        DBF D1,PAUSELP            * DRIVE'S LIGHT TO
  108.         DBF D0,PAUSE            * DISTINGUISH    
  109.  
  110.  
  111.         ADD.L #PIC_BUFFER,D6
  112.         LEA PIC_BUFFER,A4            
  113.         MOVE.L A4,A5    
  114.         MOVE.W #14,D5            * 16KHZ VALUE
  115.         LEA TTP,A0
  116.         MOVE.W D5,2(A0)            * SET DELAY LOOP VALUE
  117.         MOVE.W SR,STATUS        * SAVE SR REGISTER
  118.  
  119.         MOVE.W SR,D3
  120.         MOVE.W #$2700,SR        * KILL 'ALL' INTERUPTS
  121.         MOVEQ #10,D0
  122. SETREG        MOVE.B D0,$FFF8800        * SET SOUND AND FREQ
  123.         CLR.B $FFF8802            * OF ALL USED CHANELS.
  124.         DBF D0,SETREG
  125.         CLR.B $FFF8800            * NOT FORGETING REG 0
  126.         CLR.B $FFF8802
  127.         MOVE.B #7,$FFF8800        * REG. 7 OF SND CHIP
  128.         MOVE.B #$F8,$FFF8802        * ALL CHANELS ON
  129.         LEA CHANEL_A,A3            * SET TABLES A,B,C
  130.         LEA CHANEL_B,A2
  131.         LEA CHANEL_C,A1
  132.         MOVE.W D3,SR
  133.         ANDI.W #$F8FF,SR
  134.         ORI.W #$500,SR            * DO NOT DISTURB SOUND
  135.         AND.W #$FD,$484
  136.  
  137.         MOVE.B SAMPLESPEED,D1
  138.         LEA TTP,A6
  139.         LEA FREQTABLE,A0
  140.  
  141. MUSICLP        BTST #0,$FFFC00            * KEY HIT YET?
  142.         BEQ.S CONTIN            * NO,
  143.         MOVE.B $FFFC02,D0        * LOOK AT KEYBOARD
  144.         CMP.B #$39,D0            * SPACE BAR HIT?
  145.         BEQ EXIT_TWO            * YEA HAA...
  146.         CMP.B #$1F,D0            * 'S' KEY
  147.         BNE.S CONTIN
  148.         ADD.B #2,D1            * NEXT VALUE
  149.         CMP.B #24,D1
  150.         BLT.S NOTYET
  151.         CLR.B D1
  152. NOTYET        AND.W #$FF,D1
  153.         MOVE.W 0(A0,D1.W),2(A6)        * SET NEW LOOP VALUE
  154.         
  155. CONTIN        MOVE.B (A4)+,D0            * GET SAMPLED DATA
  156.         CMPA.L D6,A4            * END OF BUFFER
  157.         BLT.S OUTPUT            * NO.
  158.         MOVE.L A5,A4
  159.  
  160. OUTPUT        AND.W #$FF,D0
  161.         MOVE.B #8,$FFFF8800
  162.         MOVE.B 0(A3,D0.W),$FFFF8802    * CHANEL A NOTE
  163.         MOVE.B #9,$FFFF8800
  164.         MOVE.B 0(A2,D0.W),$FFFF8802    * B
  165.         MOVE.B #10,$FFFF8800
  166.         MOVE.B 0(A1,D0.W),$FFFF8802    * C
  167.  
  168. TTP        MOVE.W #0,D0            * DELAY LOOP
  169. LOOPME        NOP                * NOT MUCH HERE
  170.         DBF D0,LOOPME
  171.  
  172.         BRA.S MUSICLP            * KEEP IT UP
  173.  
  174. EXIT_TWO    CLR.B D5
  175. EXIT        ORI.B #3,$484
  176. REZ        MOVE.W #0,$FFFF8260        * RESET SCREEN REZ.
  177.         MOVE.W STATUS,SR
  178.         MOVE.L SAVE_SSP,-(SP)
  179.         MOVE.W #$20,-(SP)        * SET TO USER MODE
  180.         TRAP #1
  181.         ADDQ.L #6,SP
  182.  
  183.         CLR.W -(SP)
  184.         TRAP #1                * BYE BYE...
  185.  
  186. CLOSE_FILE    MOVE.W HANDLE,-(SP)        * FILE HANDLE NO.
  187.         MOVE.W #$3E,-(SP)
  188.         TRAP #1
  189.         ADDQ.L #4,SP
  190.         RTS
  191.  
  192. OPEN_FILE    CLR.W -(SP)            * READ TYPE
  193.         MOVE.L A0,-(SP)            * ADDRS OF TEXT NAME    
  194.         MOVE.W #$3D,-(SP)
  195.         TRAP #1
  196.         ADDQ.L #8,SP
  197.         MOVE.W D0,HANDLE
  198.         RTS
  199.  
  200. READ_FILE    MOVE.L A1,-(SP)
  201.         MOVE.L A2,-(SP)
  202.         MOVE.W HANDLE,-(SP)
  203.         MOVE.W #$3F,-(SP)
  204.         TRAP #1
  205.         ADDA.L #12,SP
  206.         RTS        
  207.  
  208. ERRORED        CLR.W -(SP)            * GO BACK TO GEM
  209.         TRAP #1
  210.  
  211.         EVEN
  212.  
  213. *
  214. * SOUND CHANEL VOLUME DUMP TABLES
  215. *
  216.  
  217. CHANEL_A     DC.L    $00000000,$00000000,$00000000,$00000000
  218.             DC.L    $00010000,$00000001,$00000000,$00000001
  219.             DC.L    $02000000,$00010000,$01020001,$00010203
  220.             DC.L    $00010000,$00000100,$01020000,$00010203
  221.             DC.L    $00010204,$00000001,$02000100,$00010001
  222.             DC.L    $02030001,$00010200,$01020403,$03000102
  223.             DC.L    $06050300,$00010001,$02000000,$01020001
  224.             DC.L    $02000100,$01020000,$01020203,$00010204
  225.             DC.L    $05030001,$02060503,$00010200,$01020207
  226.             DC.L    $03030504,$04050000,$00010200,$01020001
  227.             DC.L    $00010203,$00010202,$04000102,$04000100
  228.             DC.L    $01020305,$03040404,$00010206,$07030304
  229.             DC.L    $04040505,$05060600,$00010207,$0B030309
  230.             DC.L    $04080001,$02020603,$03000001,$02020303
  231.             DC.L    $06080404,$05070706,$06060908,$07070707
  232.             DC.L    $0B0B0000,$00000102,$00010200,$01000100
  233.  
  234. CHANEL_B     DC.L    $00000001,$02000102,$00010001,$02030001
  235.             DC.L    $02020400,$01020404,$03000102,$06050303
  236.             DC.L    $03040001,$02020703,$03030404,$05050504
  237.             DC.L    $06060001,$02070703,$03030408,$05050504
  238.             DC.L    $06060608,$00010202,$02030308,$0