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