home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / bbintro.lha / Boot_Intro.s < prev    next >
Encoding:
Text File  |  1980-01-01  |  7.9 KB  |  434 lines

  1. org  $40000
  2. load $40000
  3.  
  4. s:
  5. movem.l a0-a6/d0-d7,-(sp)
  6. bsr    Start                ; Init screen stuff
  7. bsr    MAIN                ; Do main stuff
  8. bsr    Reset                ; Reset screen stuff
  9. movem.l (sp)+,a0-a6/d0-d7
  10. clr.l   d0
  11. rts
  12. ***********************************************************
  13.  
  14. Start:
  15. lea     $5a000,a0
  16. lea    $7f000,a1
  17. RAMclear:
  18. clr.l   (A0)+
  19. cmpa.l  A1,A0
  20. bne.s   RAMclear
  21.  
  22.     lea    cpwait,a0        ; Temporary ptr
  23.     move.w    #$2c01,d0
  24.     move.w    d0,(a0)+        ; $ff01
  25.     move.w    #$0001,(a0)+    ; $2b01,$ff01 = jump to this row
  26.  
  27.     move.w    #210,d1
  28.     move.l    a0,copptr
  29.     coplp:
  30.     move.w    #$0180,(a0)+
  31.     move.w    #0,(a0)+
  32.     add.w    #$0100,d0
  33.     move.w    d0,(a0)+
  34.     move.w    #$fffe,(a0)+
  35.     dbf    d1,coplp
  36.  
  37. move.l    $4,a6
  38. lea    GfxName(pc),a1
  39. moveq    #0,d0
  40. jsr    -408(a6)            ; Open Gfx Library
  41. move.l    d0,GfxBase
  42.  
  43. move.l    d0,a6
  44. move.w  #$03e0,$dff096
  45. move.l    $32(a6),OldCop
  46. move.l    #Coplist,$32(a6)        ; Set coplist pointer
  47. move.w  #$83c0,$dff096
  48. rts
  49.  
  50. Reset:
  51. move.l    GfxBase,a6
  52. ;move.w  #$0100,$dff096 ; nur beim BOOT 
  53. move.l    OldCop,$32(a6)
  54. move.l  gfxbase,a1
  55. move.l    $4,a6
  56. jsr     -414(a6)
  57. rts
  58.  
  59. CopList:
  60. dc.w $00e0
  61. hibmptr:
  62. dc.w    $0007,$00e2
  63. lowbmptr:
  64. dc.w    $0000
  65. dc.w $00e4,$0006,$00e6,$2000
  66. dc.w $00e8,$0006,$00ea,$5000
  67. dc.w $00ec,$0006,$00ee,$8000
  68. dc.w $00f0,$0005,$00f2,$b870
  69. dc.w $00f4,$0005,$00f6,$b898
  70.  
  71. dc.w $0180,$0000
  72. dc.w $0182,$0fff
  73. dc.w $0184,$0244
  74. dc.w $0186,$0455
  75. dc.w $0188,$08aa
  76. dc.w $018a,$0ddd
  77. dc.w $018c,$0000
  78. dc.w $018e,$0000
  79. dc.w $0190,$0000
  80. dc.w $0192,$0000
  81. dc.w $0194,$0000
  82. dc.w $0196,$0000
  83. dc.w $0198,$0000
  84. dc.w $019a,$0000
  85. dc.w $019c,$0000
  86. dc.w $019e,$0000
  87. dc.w $01a0,$0f30
  88. dc.w $01a2,$002c
  89. dc.w $01a4,$0000
  90. dc.w $01a6,$0000
  91. dc.w $01a8,$0000
  92. dc.w $01aa,$0000
  93. dc.w $01ac,$0000
  94. dc.w $01ae,$0000
  95. dc.w $01b0,$0000
  96. dc.w $01b2,$0000
  97. dc.w $01b4,$0000
  98. dc.w $01b6,$0000
  99. dc.w $01b8,$0000
  100. dc.w $01ba,$0000
  101. dc.w $01bc,$0000
  102. dc.w $01be,$0000
  103.  
  104. dc.w $0100,$6200,$0102,$0001
  105. dc.w $0108,$0000,$010a,$0000
  106. dc.w $008e,$2981 
  107. dc.w $0090,$29c1
  108. dc.w $0092,$0038
  109. dc.w $0094,$00d0
  110. dc.w $2901,$fffe
  111.  
  112. cpwait: blk.w 846,0
  113.  
  114. dc.w $ffff,$fffe
  115.  
  116. GfxName:
  117. dc    "graphics.library",0
  118. even
  119.  
  120. GfxBase:dc.l    0
  121.  
  122. OldCop:dc.l    0
  123.  
  124. Main:
  125. bsr    boot
  126. bsr    Sternevorbereiten
  127.  
  128. clr.b   $bfec01
  129.  
  130. mainlop1:
  131. nob:
  132. cmpi.b    #240,$dff006
  133. bne.s    nob
  134.  
  135. bsr    bars
  136. bsr    starsmove
  137.  
  138. clr.l   D0
  139. move.b  $bfec01,D0
  140. not.b   D0
  141. lsr.b   #1,D0
  142. cmpi.b  #$4f,D0
  143. bls.s   mainlop1
  144. cmpi.b  #$55,D0
  145. bhi.s   mainlop1
  146. subi.w  #$0050,D0
  147. move.l  D0,$0080
  148.  
  149. mainend:
  150. bsr    mist1
  151. rts
  152.  
  153. starsmove:
  154. lea    starmovement1,A4
  155. move.w  #$0075,D3
  156. lea    starmovement2,A5
  157. ROUTINE2:
  158. move.w  (A4)+,D4
  159. move.w  (A4)+,D5
  160. move.w  (A4),D6
  161. subi.w  #$0006,(A4)+
  162. tst.w   D6
  163. ble.l   CALC2
  164. ext.l   D4
  165. divs    D6,D4
  166. addi.w  #$00a0,D4
  167. ext.l   D5
  168. divs    D6,D5
  169. addi.w  #$0070,D5
  170. tst.w   D4
  171. blt.l   CALC2
  172. tst.w   D5
  173. blt.l   CALC2
  174. cmpi.w  #$013f,D4
  175. bgt.l   CALC2
  176. cmpi.w  #$00ff,D5
  177. bgt.l   CALC2
  178. move.w  (A5),D0
  179. move.w  D4,(A5)+
  180. move.w  (A5),D1
  181. move.w  D5,(A5)+
  182. bsr.l   star_clear
  183. move.w  D4,D0
  184. move.w  D5,D1
  185. mulu    #$0028,D1
  186. move.w  D0,D2
  187. asr.w   #3,D2
  188. add.w   D2,D1
  189. asl.w   #3,D2
  190. sub.w   D0,D2
  191. subq.b  #1,D2
  192. cmpi.w  #$0150,D6
  193. bgt.s   sprung1
  194. cmpi.w  #$010c,D6
  195. bgt.s   sprung2
  196. bra.s   sprung3
  197. sprung1:
  198. move.l  #$00062000,A1
  199. adda.l  D1,A1
  200. bset    D2,(A1)
  201. bra.s   R2_ende
  202. sprung2:
  203. move.l  #$00065000,A1
  204. adda.l  D1,A1
  205. bset    D2,(A1)
  206. bra.s   R2_ende
  207. sprung3:
  208. move.l  #$00062000,A1
  209. adda.l  D1,A1
  210. bset    D2,(A1)
  211. move.l  #$00065000,A1
  212. adda.l  D1,A1
  213. bset    D2,(A1)
  214. R2_ende:
  215. dbf     D3,ROUTINE2
  216. rts
  217.  
  218. star_clear:
  219. mulu    #$0028,D1
  220. move.w  D0,D2
  221. asr.w   #3,D2
  222. add.w   D2,D1
  223. asl.w   #3,D2
  224. sub.w   D0,D2
  225. subq.b  #1,D2
  226. move.l  #$00062000,A1
  227. adda.l  D1,A1
  228. bclr    D2,(A1)
  229. move.l  #$00065000,A1
  230. adda.l  D1,A1
  231. bclr    D2,(A1)
  232. rts
  233.  
  234. STERNEvorbereiten:
  235. move.w  #$0075,D3
  236. lea     starmovement1,A0
  237. schreiben:            ; Sternwerte in
  238. bsr.l   CALC1            ; 
  239. move.w  D0,(A0)+        ;
  240. bsr.l   CALC1            ;
  241. move.w  D0,(A0)+        ; in starmovement1 speichern    
  242. bsr.l   CALC1            ;        
  243. andi.w  #$01ff,D0        ;    
  244. move.w  D0,(A0)+        ;
  245. dbf     D3,schreiben
  246. rts
  247. CALC1:
  248. move.w  $dff006,D0
  249. lea     VHPOSR_speicher(PC),A3
  250. muls    (A3),D0
  251. addi.w  #$249,D0
  252. ext.l   D0
  253. lea     VHPOSR_speicher(PC),A3
  254. move.w  D0,(A3)
  255. rts
  256.  
  257. CALC2:
  258. suba.l  #$00000006,A4
  259. bsr.l   CALC1
  260. move.w  D0,(A4)+
  261. bsr.l   CALC1
  262. move.w  D0,(A4)+
  263. move.w  #$0258,(A4)+
  264. bra.l   R2_ende
  265.  
  266. Starmovement1:
  267. blk.b $800,0
  268. Starmovement2:
  269. blk.b $800,0
  270.  
  271. VHPOSR_speicher:
  272. blk.b  2,0
  273.  
  274.  
  275. BOOT:
  276. lea     $07e000,A0
  277. move.l  #$00000001,D0
  278. move.l  #$00000280,D1
  279. move.l  #$00000100,D2
  280. jsr     -390(A6)
  281. move.l  #$0005b000,$07e008
  282. lea     $07e100,A1
  283. jsr     -198(A6)
  284. move.l  #$0007e000,$07e104
  285. lea     $07e100,A1
  286. move.w  #$0001,D0
  287. jsr     -342(A6)
  288. lea     TEXTANFANG,A5
  289. DEPP2:
  290. lea     $07e100,A1
  291. clr.l   D4
  292. move.l  #$0000004,D3     ;Zeilenanfang
  293. move.b  (A5)+,D4
  294. beq.s   RETURN
  295. bsr.s   DEPP1
  296. addi.l  #$00000140,D3
  297. bsr.s   DEPP1
  298. adda.l  #$000001f,A5
  299. bra.l   DEPP2
  300. RETURN:
  301. rts
  302.  
  303. DEPP1:
  304. lea     $07e100,A1
  305. move.l  D3,D0
  306. move.l  D4,D1
  307. jsr     -240(A6)
  308. lea     $07e100,A1
  309. move.l  A5,A0
  310. move.l  #$0000001f,D0
  311. jsr     -60(A6)
  312. rts
  313.  
  314. TEXTANFANG:
  315. dc.b $30," --- >>> THE PANTIES <<< ---   "
  316. dc.b $90,"     Compactings  No. 02       "
  317. dc.b $50," [ F1 ]  --- PANZERFAUST ---   "
  318. dc.b $58," [ F2 ]   -- FIRST INTRO --    "
  319. dc.b $60," [ F3 ]    -- SCANNERS --      "
  320. dc.b $68," [ F4 ]      - EXAACT -        "
  321. dc.b $70," [ F5 ]       - BAND -         "
  322. dc.b $78," [ F6 ]    ECLIPSE   INTRO     "
  323. dc.b 0,0
  324.  
  325. MIST1:
  326. clr.l   d0
  327. move.l    $80.w,d0
  328. mulu    #$0004,d0
  329. rts
  330.  
  331. bars:
  332. move.l    copptr,a0
  333. move.w    #210,d0
  334. clearlp:
  335. clr.w    2(a0)
  336. addq.w    #8,a0
  337. dbf    d0,clearlp
  338.  
  339. lea    infront,a6
  340. lea    intable,a5
  341. lea    thycols,a4
  342. lea    sine,a3
  343. moveq    #0,d0                ; First bar
  344. blp:
  345. move.l    copptr,a2
  346. move.w    (a5)+,d7
  347. tst.b    (a6)+
  348. bne.s    nonow
  349. addq.b    #3,-1(a5)
  350. move.b    (a3,d7.w),d1            ; Y Position
  351. and.w    #$ff,d1
  352. asl.w    #3,d1                ;*8(each coplist entry=8bytes)
  353. move.w    d0,d6
  354. asl.w    #5,d6                ; *16 each colorlist e = 16
  355. moveq    #7,d5
  356. mclp:
  357. move.w    (a4,d6.w),2(a2,d1.w)
  358. addq.l    #8,a2
  359. addq.l    #2,d6
  360. dbf    d5,mclp
  361. nonow:
  362. addq.l    #1,d0
  363. cmpi.b    #8,d0
  364. bne.s    blp
  365. lea    infront,a6
  366. lea    intable,a5
  367. lea    thycols,a4
  368. lea    sine,a3
  369. moveq    #0,d0                ; First bar
  370. blp2:
  371. move.l    copptr,a2
  372. move.w    (a5)+,d7
  373. tst.b    (a6)+
  374. beq.s    nonow2
  375. addq.b    #3,-1(a5)
  376. move.b    (a3,d7.w),d1            ; Y Position
  377. and.w    #$ff,d1
  378. asl.w    #3,d1                ;*8(each coplist entry=8bytes)
  379. move.w    d0,d6
  380. asl.w    #5,d6                ; *16 each colorlist e = 16
  381. moveq    #7,d5
  382. mclp2:
  383. move.w    (a4,d6.w),2(a2,d1.w)
  384. addq.l    #8,a2
  385. addq.l    #2,d6
  386. dbf    d5,mclp2
  387. nonow2:
  388. addq.l    #1,d0
  389. cmpi.b    #8,d0
  390. bne.s    blp2
  391. rts
  392.  
  393. intable:dc.w 5,10,15,20,125,130,135,140
  394. infront:dc.b 0,0,0,0,0,0,0,1 
  395. thycols:
  396. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  397. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  398. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  399. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  400. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  401. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  402. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  403. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  404. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  405. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  406. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  407. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  408. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  409. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  410. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  411. dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
  412.  
  413. sine:
  414. dc.b 95,97,99,101,104,106,108,111,113,115,118,120,122,124,127
  415. dc.b 129,131,133,135,137,139,141,143,145,147,149,151,153,155,157
  416. dc.b 158,160,162,163,165,166,168,169,171,172,173,175,176,177,178
  417. dc.b 179,180,181,182,183,184,185,185,186,187,187,188,188,188,189
  418. dc.b 189,189,189,189,190,189,189,189,189,189,188,188,188,187,187
  419. dc.b 186,185,185,184,183,182,181,180,179,178,177,176,175,173,172
  420. dc.b 171,169,168,166,165,163,162,160,158,157,155,153,151,149,147
  421. dc.b 145,143,141,139,137,135,133,131,129,127,124,122,120,118,115
  422. dc.b 113,111,108,106,104,101,99,97,94,92,90,88,85,83,81
  423. dc.b 78,76,74,71,69,67,65,62,60,58,56,54,52,50,48
  424. dc.b 46,44,42,40,38,36,34,32,31,29,27,26,24,23,21
  425. dc.b 20,18,17,16,14,13,12,11,10,9,8,7,6,5,4
  426. dc.b 4,3,2,2,1,1,1,0,0,0,0,0,0,0,0
  427. dc.b 0,0,0,1,1,1,2,2,3,4,4,5,6,7,8
  428. dc.b 9,10,11,12,13,14,16,17,18,20,21,23,24,26,27
  429. dc.b 29,31,32,34,36,38,40,42,44,46,48,50,52,54,56
  430. dc.b 58,60,62,65,67,69,71,74,76,78,81,83,85,88,90
  431. dc.b 92
  432.  
  433. copptr:dc.l 0
  434.