SHARE
TWEET

Untitled

a guest Jan 24th, 2020 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. makeboot    equ 0
  2.  
  3.  
  4. initStars   macro
  5.     move.l  $4f2.w,a5
  6.     lea     myStars(pc),a4
  7.     move.w  #319,d7
  8.     move.w  d7,d6
  9. ;   move.w  #160,d4
  10. ;   move.l  #512351,d5
  11.     move.l  #200,d4
  12. .initStar
  13.     move.w  (a5)+,d0
  14. ;   add.l   #25,d0
  15.     roxr.w  d4,d0
  16. ;   add.w   #64,d0
  17. ;   move.l  d0,d5
  18. .againx
  19.     cmp.w   d7,d0
  20.     ble.s   .okx
  21.         sub.w   d7,d0
  22.         jmp     .againx(pc)
  23. .okx
  24.     move.w  d0,(a4)+        ; x value
  25.     move.w  (a5)+,d0        ; y value
  26.     roxl.w  d5,d0
  27. .again
  28.     cmp.l   d4,d0
  29.     blt.s   .ok
  30.         sub.l   d4,d0
  31.         jmp     .again(pc)
  32. .ok
  33. ;   muls    d4,d0
  34.     move.w  d0,(a4)+
  35.     dbra    d6,.initStar
  36. ;   rts
  37.     endm
  38.  
  39. drawStars   macro
  40.     lea     myStars(pc),a4
  41. ;   move.w  #160,d5
  42. ;   move.l  #0,a6
  43.     lea     colordraw(pc),a3
  44.         dc.w    $a000           ; line-a initialize
  45.     lea     colorclear(pc),a2
  46.         move.l  a0,a6
  47.     move.w  #100,d6
  48. .drawStar
  49. ;       add.w   #$13,$ffff8240.w
  50. ;       move.w  d6,d5
  51. ;       and.w   #$02,d5
  52. ;       move.w  d5,$ffff8240
  53.         move.w  d6,d5
  54.         add.w   (a4),d5
  55.         and.w   #$101,d5
  56.         move.w  d5,$ffff8240.w
  57.  
  58.         lea     2(a4),a5
  59.  
  60.         move.l  a6,a0
  61.         move.l  a2,8(a0)        ; x,y coords
  62.         sub.w   #1,(a5)
  63.         move.l  a4,12(a0)
  64.         dc.w    $a001
  65.    
  66. ;       sub.w   #$13,$ffff8240.w
  67.         add.w   #1,(a5)
  68.         move.l  a6,a0
  69.         move.l  a3,8(a0)        ; x,y coords
  70.         add.w   #1,(a3)
  71.         move.l  a4,12(a0)
  72.         dc.w    $a001
  73.         add.w   #1,(a5)
  74.         cmp.w   (a5),d7
  75.         bge.s   .skip
  76.             clr.w   (a5)
  77. .skip
  78.         add.w   #4,a4
  79.     dbra    d6,.drawStar
  80.     endm
  81.  
  82. ymup    macro
  83.         sub.w   #1,ymdata(pc)
  84.         cmp.w   #$030e-200,ymdata(pc)
  85.         bge     .kkk
  86.             move.w  #$030e,ymdata(pc)
  87. .kkk
  88.     endm
  89.  
  90.  
  91. ymdown  macro
  92.         add.w   #1,(a2)
  93.         cmp.w   #$030e-16,(a2)
  94.         blt     .kkk
  95.             move.w  #$020e,(a2)
  96. .kkk
  97.     endm
  98.  
  99.     IFNE    makeboot
  100. loadboot   
  101.     move.w  #1,-(sp)            Read old boot sector
  102.     move.w  #0,-(sp)            from side 0
  103.     move.w  #0,-(sp)            track 0
  104.     move.w  #1,-(sp)            sector 1
  105.     move.w  #0,-(sp)            drive A
  106.     clr.l   -(sp)               Filler
  107.     move.l  #buffer,-(sp)       Address to load to
  108.     move.w  #8,-(sp)            Function number
  109.     trap    #14                 Call XBIOS
  110.     add.l   #20,sp              Correct stack
  111.  
  112.     move.w  #240,d0             Set up counter
  113.     move.l  #buffer,a0          Address of old boot sector
  114.     lea     30(a0),a0           Skip past header
  115.     move.l  #bootprog,a1        Address of new program
  116. loop22 
  117.     move.w  (a1)+,(a0)+         Copy across word
  118.     dbf     d0,loop22           Copy next word
  119.     move.l  loader,buffer       Copy across new header
  120.     move.l  loader+4,buffer+4   Copy across new header
  121.  
  122.     move.w  #1,-(sp)            Executable boot sector
  123.     move.w  #-1,-(sp)           Don't change disk type
  124.     move.l  #-1,-(sp)           Don't change serial number
  125.     move.l  #buffer,-(sp)       Address of new program
  126.     move.w  #18,-(sp)           Modify boot sector
  127.     trap    #14                 Call XBIOS
  128.     add.l   #14,sp              Correct stack
  129.  
  130.     move.w  #1,-(sp)            Write boot sector
  131.     move.w  #0,-(sp)            to side 0
  132.     move.w  #0,-(sp)            track 0
  133.     move.w  #1,-(sp)            sector 1
  134.     move.w  #0,-(sp)            drive A
  135.     clr.l   -(sp)               Filler
  136.     move.l  #buffer,-(sp)       Address to write from
  137.     move.w  #9,-(sp)            Function number
  138.     trap    #14                 Call XBIOS
  139.     add.l   #20,sp              Correct stack
  140.  
  141.     clr.w   -(sp)               Exit program
  142.     trap    #1                  Call GEMDOS
  143.  
  144. buffer  ds.b    512
  145. loader  dc.b    $60,$1C,"*C&D* "
  146.  
  147. bootprog
  148.     ENDC
  149.     IFNE makeboot
  150.     ELSE
  151. ;   clr     -(sp)
  152. ;   pea     $1f8000
  153. ;   pea     $1f8000
  154. ;   move.w  #5,-(sp)
  155. ;   trap    #14
  156. ;   lea.l   12(sp),sp
  157.  
  158.     pea     doStarField(pc)
  159.     move.w  #$26,-(sp)
  160.     trap    #14
  161. ;   addq.l  #6,sp
  162. ;   clr     -(sp)
  163. ;   trap    #1
  164.     ENDC
  165.  
  166.  
  167.  
  168. doStarField
  169.     move.l  #$1f8000,$45E.w
  170.  
  171. ;   lea $ffff8800.w,a0          ;4 bytes
  172. ;   lea ymdata(pc),a1           ;4 bytes
  173. ;   move.w  (a1)+,d0            ;2 bytes
  174. ;.ym:  
  175. ;       movep.w d0,0(a0)            ;4 bytes
  176. ;       move.w  (a1)+,d0            ;2 bytes
  177. ;   bne.s   .ym                 ;2 bytes
  178.  
  179.     move.w  #$667,$ffff8242.w
  180.     move.l  #$7410741,$ffff8240+14*2.w
  181.  
  182.             initStars
  183.  
  184. ;   lea     pxtab,a6        ;2
  185. ;   move.w  #1<<15,d0       ;4
  186. ;   move.w  #15,d7          ;4
  187. ;.cp
  188. ;   move.w  d0,(a6)+        ;2
  189. ;   lsr.w   #1,d0           ;2
  190. ;   dbra    d7,.cp          ;4
  191.  
  192. ;   jsr     initStars
  193.  
  194. .vbl
  195. ;   tst.l   $466.w
  196. ;   beq     .vbl
  197. ;   clr.l   $466.w
  198.  
  199. ;   clr.w   $ffff8240
  200.  
  201.     lea     $ffff8800.w,a5          ;4 bytes
  202.     lea     ymdata(pc),a1           ;4 bytes
  203.     move.l  a1,a2
  204.     move.w  (a1)+,d0            ;2 bytes
  205. .ym2   
  206.         movep.w d0,0(a5)            ;4 bytes
  207.         move.w  (a1)+,d0            ;2 bytes
  208.         bne.s   .ym2                ;2 bytes
  209.                 ;ymup
  210.                 ymdown
  211.  
  212. .wait
  213. ;   cmp.b   #57,$fffffc02.w
  214. ;   bne     .w
  215. ;   rts
  216. ;.w
  217. ;       jsr     drawStars
  218.                 drawStars
  219. ;               move.w  #$222,$ffff8240
  220.  
  221.     movea.l $44e.w,a0               ; get screen address                            ; a0 fixed
  222.     pea     text(pc)
  223.     move.w  #$09,-(sp)
  224.     trap    #1
  225.     addq.l  #6,sp
  226.  
  227.  
  228.     jmp .vbl
  229.  
  230. ;pxtab
  231. ;.pix set 1<<15
  232. ;   REPT 16
  233. ;       dc.w    .pix
  234. ;.pix set .pix>>1
  235. ;   ENDR
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.    
  243.  
  244. text
  245.     dc.b    " Go Code Atari Harekiet!",13
  246. ;   dc.b    "Happy KietYear!",13            ;13 is newline
  247.     even
  248. colordraw
  249.     dc.w    1
  250. ymdata:    
  251.         dc.b    $02,$0e
  252.         dc.b    $09,$10             ;Volume channel 2
  253. ;       dc.b    $0B,$f0             ;Envelope tone (fine)
  254. ;       dc.b    $0F,$0F             ;Envelope tone (rough)
  255.         dc.b    $0D,%00001000           ;Envelope shape
  256.         dc.b    $07,%11111101           ;Set mixer for channel 2
  257. ;       dc.w    0  
  258.     SECTION BSS
  259. ;           ds.w    1
  260. colorclear  ds.w    1
  261. herp        ds.w    1
  262. myStars     ds.w    319*4   ;x,y
  263. ;07:17 <ggn> move.b d0,d1
  264. ;07:17 <ggn> and.w #15,d1
  265. ;07:17 <ggn> lsr.w #1,d0
  266. ;07:17 <ggn> and.w #$fff8,d0
  267.  
  268. ; from x to pixel:
  269. ;
  270. ;
  271. ;   lea x,a0
  272. ;   moveq   #20-1,d7
  273. ;
  274. ;
  275.  
  276. ;.off set 0
  277. ; rept 20
  278. ;.pos set 1<<15
  279. ;   rept 16
  280. ;       dc.w .off,.pos
  281. ;.pos set .pos>>1
  282. ;   endr
  283. ;  
  284. ;  
  285. ;.off set .off+8
  286. ; endr
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top