home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / sourcecode / dexion / makeboot.s < prev    next >
Text File  |  1995-03-17  |  4KB  |  369 lines

  1. execbase=4
  2. findtask=-294
  3. addport=-354
  4. remport=-360
  5. openlib=-408
  6. opendev=-444
  7. closedev=-450
  8. doio=-456
  9.  
  10.  
  11. bsr    getgfx
  12. bsr    cleanitdown
  13.  
  14. move.l    #scr,a0
  15. move.l    #7999,d0
  16. aa:
  17. move.b    #0,(a0)+
  18. dbra    d0,aa
  19.  
  20. move.l    #scr,a0
  21. move.l    a0,struc+8
  22. move.l    #struc,a0
  23. moveq    #1,d0
  24. move.l    #320,d1
  25. move.l    #200,d2
  26. move.l    gfxbase,a6
  27. jsr    -390(a6)
  28. move.l    #rastport,a1
  29. jsr    -198(a6)
  30. move.l    #struc,rastport+4
  31.  
  32. move.l    #copper0,newcop
  33. bsr    changecop
  34.  
  35. move.l    #coords,a2
  36.  
  37. fstcoor:
  38. move.l    #end,d1
  39. sub.l    a2,d1
  40. ror.l    #2,d1
  41. mulu    #40,d1
  42. addi.l    #scr,d1
  43. move.l    d1,a3
  44. move.b    #255,-1(a3)
  45. clr.l    d1
  46.  
  47. jsr    getcoors
  48. btst    #7,$bfe001
  49. beq    quit2
  50. move    d4,d0
  51. move    d5,d1
  52. jsr    changebit
  53. move.b    (a2),d0
  54. move.b    1(a2),d1
  55. jsr    changebit
  56. btst    #6,$bfe001
  57. bne    fstcoor
  58.  
  59. move.b    (a2),d0
  60. move.b    1(a2),d1
  61. addi.l    #2,a2
  62. jsr    changebit
  63.  
  64. move.l    #7999,d0
  65. move.l    #scr,a0
  66. move.l    #screen,a3
  67. cpylp:
  68. move.b    (a0)+,(a3)+
  69. dbra    d0,cpylp
  70.  
  71. woof:
  72. btst    #6,$bfe001
  73. beq    woof
  74.  
  75. move.b    d4,(a2)
  76. move.b    d5,1(a2)
  77.  
  78. secondcoor:
  79. jsr    getcoors
  80. move.l    #7999,d0
  81. move.l    #scr,a0
  82. move.l    #screen,a3
  83. cplp:
  84. move.b    (a3)+,(a0)+
  85. dbra    d0,cplp
  86.  
  87. clr.l    d0
  88. clr.l    d1
  89. move.b    -2(a2),d0
  90. move.b    -1(a2),d1
  91. jsr    move(a6)
  92.  
  93. clr.l    d0
  94. clr.l    d1
  95. move.b    (a2),d0
  96. move.b    1(a2),d1
  97. jsr    draw(a6)
  98.  
  99. btst    #6,$bfe001
  100. bne    secondcoor
  101.  
  102.  
  103. hg:
  104. btst    #6,$bfe001
  105. beq    hg
  106.  
  107. addi.l    #2,a2
  108. move.b    d4,(a2)
  109. move.b    d5,1(a2)
  110. cmp.l    #end,a2
  111. bne    fstcoor
  112.  
  113. rts
  114.  
  115.  
  116. quit:
  117. jmp    wboot
  118.  
  119. quit2:
  120. move.b    #222,1(a2)
  121. jmp    wboot
  122.  
  123. changebit:
  124. move.l    #0,a3
  125. cmpi    #200,d1
  126. blt    ok1
  127. move    #0,d1
  128. ok1:
  129. mulu    #40,d1
  130. move    d1,a3
  131. ror.l    #3,d0
  132. add    d0,a3
  133. clr    d0
  134. rol.l    #3,d0
  135. move.l    #7,d1
  136. sub    d0,d1
  137. add.l    #scr,a3
  138. bchg    d1,(a3)
  139. rts
  140.  
  141. getcoors:
  142. btst    #0,$dff004
  143. bne    getcoors
  144. move.b    (a2),d4
  145. move.b    1(a2),d5
  146. clr.l    d0
  147. clr.l    d1
  148.  
  149. btst    #6,$bfe001
  150. beq    changed
  151.  
  152. move.b    $dff00b,d0
  153. cmp.b    d4,d0
  154. bne    changed
  155.  
  156. move.b    $dff00a,d1
  157. cmp.b    d5,d1
  158. beq    getcoors
  159.  
  160. changed:
  161. move.b    $dff00b,(a2)
  162. move.b    $dff00a,1(a2)
  163. rts
  164.  
  165.  
  166.  
  167. WBOOT:    LEA    BOOTSECTOR,A0
  168.     MOVE.L    #$FFFFFFFF,D0
  169.     MOVE.L    #$FF,D1
  170.     CLR.L    D2
  171. WBOOT1:    SUB.L    (A0)+,D0
  172.     SUBX.L    D2,D0
  173.     DBRA    D1,WBOOT1
  174.     MOVE.L    D0,BOOTSECTOR+$4
  175.     MOVE.L    EXECBASE,A6
  176.     MOVE.L    #0,A1
  177.     JSR    FINDTASK(A6)
  178.     MOVE.L    D0,WPORT+$10
  179.     LEA     WPORT,A1
  180.         JSR    ADDPORT(A6)
  181.     LEA    WIO,A1
  182.     MOVE.L    #0,D0
  183.     CLR.L    D1
  184.     LEA    WTRDDEVICE,A0
  185.     JSR    OPENDEV(A6)
  186.     TST.L    D0
  187.     BNE    WERROR
  188.     LEA     WIO,A1
  189.     MOVE.L    #WPORT,14(A1)
  190.     MOVE.W    #3,28(A1)
  191.     MOVE.L    #BOOTSECTOR,40(A1)
  192.     MOVE.L    #2*512,36(A1)
  193.     MOVE.L    #0*512,44(A1)
  194.     JSR    DOIO(A6)
  195.     MOVE.W    #4,28(A1)
  196.     JSR    DOIO(A6)
  197.     MOVE.W    #9,28(A1)
  198.     MOVE.L    #0,36(A1)
  199.     JSR    DOIO(A6)
  200.     LEA    WPORT,A1
  201.     JSR    REMPORT(A6)
  202.     LEA    WIO,A1
  203.     JSR    CLOSEDEV(A6)
  204. WERROR:    RTS
  205. WTRDDEVICE:DC.B    'trackdisk.device',0
  206.     EVEN
  207. WIO:    BLK.L    20,0
  208. WPORT:    BLK.L    8,0
  209.  
  210.  
  211. bootsector:
  212.  
  213. dc.b    'DOS',0
  214. dc.l    0
  215. dc.l    880
  216.  
  217. bootprog:
  218.  
  219. scr=$7a000
  220. struc=$7d000
  221. rastport=struc+100
  222.  
  223. setupsystem:
  224.  
  225. bsr getgfx
  226. bsr cleanitdown
  227.  
  228.  
  229. move.w #8000-1 ,d0
  230. move.l #scr ,a0
  231. slet: move.b #0 ,(a0)+
  232. dbra d0 ,slet
  233.  
  234. move.l #scr ,a0
  235. move.l a0 ,struc+8
  236. move.l #struc ,a0
  237. moveq #1 ,d0
  238. move.l #320 ,d1
  239. move.l #200 ,d2
  240. move.l gfxbase ,a6
  241. jsr -390(a6)
  242. move.l #rastport ,a1
  243. jsr -198(a6)
  244. move.l #struc,rastport+4
  245.  
  246. move.l #copper0,newcop
  247. bsr changecop
  248.  
  249. ;--DEMO
  250.  
  251. move=-240
  252. draw=-246
  253. even
  254. setapen=-342
  255.  
  256. move.l #rastport,a1
  257.  
  258. ;/////// my demo!!! ///////
  259. clr.l    d0
  260. clr.l    d1
  261. move.l    #coords,a2
  262.  
  263. line:
  264. moveq    #10,d0
  265. warte:
  266. cmpi.b    #255,$dff006
  267. bne    line
  268. dbra    d0,warte
  269. btst    #6,$bfe001
  270. beq    stoproutine
  271. move.b    (a2)+,d0
  272. move.b    (a2)+,d1
  273. cmpi    #222,d1
  274. bne    cntlp1
  275. addi.l    #2,a2
  276. jmp    ndlp
  277. cntlp1:
  278. jsr    move(a6)
  279. move.b    (a2)+,d0
  280. move.b    (a2)+,d1
  281. jsr    draw(a6)
  282. cmp.l    #end,a2
  283. blt    line
  284.  
  285. ndlp:
  286. subi.l    #4,a2
  287. jmp    line
  288.  
  289. ;/////// my demo's over. //
  290.  
  291. copper0:dc.w    $0100,$1200
  292.  
  293.     dc.w    $008e,$2c81
  294.     dc.w    $0090,$f4c1
  295.     dc.w     $0092,$38
  296.     dc.w    $0094,$d0
  297.  
  298.     dc.w    $0108,$0000
  299.     dc.w    $010a,$0000
  300.  
  301.     dc.w    $00e0,$0007
  302.     dc.w    $00e2,$a000
  303.  
  304.     dc.w    $0180,$bbb
  305.     dc.w    $0182,$00f
  306.  
  307.     dc.w    $2c01,$ff00,$180,$ddd
  308.     dc.w    $2d01,$ff00,$180,$fff
  309.     dc.w    $2e01,$ff00,$180,$ddd
  310.     dc.w    $2f01,$ff00,$180,$bbb
  311.     dc.w    $f101,$ff00,$180,$999
  312.     dc.w    $f201,$ff00,$180,$777
  313.     dc.w    $f301,$ff00,$180,$888
  314.     dc.w    $f401,$ff00,$180,$bbb
  315.     
  316. dc.w $ffff,$fffe
  317.  
  318. ;*** gfx ***
  319. gfxbase:    dc.l    0
  320. gfxname:    dc.b    'graphics.library',0,0
  321.  
  322. getgfx:
  323.     move.l    4    ,a6
  324.     move.l    #gfxname,a1
  325.     jsr    -408(a6)
  326.     move.l    d0    ,gfxbase
  327. rts
  328.  
  329. ;*** change copper list ***
  330.  
  331. newcop: dc.l 0
  332. ;***
  333. changecop:
  334.     move.l    gfxbase    ,a0
  335.     move.l    newcop    ,50(a0)
  336. rts
  337.  
  338. ;*********
  339.  
  340. forbid =-132
  341. oldcopper:    dc.l 0
  342.  
  343. cleanitdown:
  344. move.l 4,a6
  345. jsr    -132(a6)
  346. rts
  347.  
  348. coords:
  349. blk.b    576,0
  350. end:
  351.  
  352.  
  353. stoproutine:
  354. move.l    execbase,a6
  355. lea    dosname(pc),a1
  356. jsr    -96(a6)
  357. move.l    d0,a0
  358. move.l    22(a0),a0
  359. moveq    #0,d0
  360. rts
  361.  
  362. dosname: dc.b    'dos.library',0
  363.  
  364. nd: dc.b    'SS'
  365.  
  366. screen:
  367. blk.b    8000,0
  368.  
  369.