Skip to content

Instantly share code, notes, and snippets.

@lhz
Last active August 29, 2015 14:01
Show Gist options
  • Save lhz/0a6f60bd9b1a07c87cb7 to your computer and use it in GitHub Desktop.
Save lhz/0a6f60bd9b1a07c87cb7 to your computer and use it in GitHub Desktop.
;-------------------------------------------------------------------------
; StarField Example 13.01.94
;-------------------------------------------------------------------------
; Programming by Lars Haugseth (Perplex)
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------
; CONSTANTS
;-------------------------------------------------------------------------
NOINT = 1 ; Disable interrupts
DTIME = 0 ; Display rastertime
RAND = 3 ; 'Randomness' 0-3
NSTARS = 870 ; Number of stars
PFACT = $FF00 ; Perspective factor
BUFW = 44 ; Buffer width in bytes
BUFH = 272 ; Buffer height in lines
BOXW = 44 ; Starfield width in bytes
BOXH = 272 ; Starfield height in lines
ZSPEED = -5 ; Speed of Z-movement
_LVODisable = -120 ; exec.library function offsets
_LVOEnable = -126
_LVOCloseLibrary = -414
_LVOOpenLibrary = -552
_LVOLoadView = -222 ; grapics.library function offsets
_LVOWaitBlit = -228
_LVOWaitTOF = -270
_LVOOwnBlitter = -456
_LVODisownBlitter = -462
ib_ViewLord = 34 ; System structures attributes
gb_copinit = 38
ExecBas = $00000004
CustomBas = $00DFF000
CIAA = $00BFE001
VHPOSR = $006 ; Custom registers
BLTCON0 = $040
BLTDPTH = $054
BLTSIZE = $058
BLTDMOD = $066
COP1LCH = $080
COPJMP1 = $088
COLOR00 = $180
;-------------------------------------------------------------------------
; MACROS
;-------------------------------------------------------------------------
CALL: MACRO ; Call a library function
move.l \1Bas,a6
jsr _LVO\2(a6)
ENDM
RND: MACRO ; Construct a 'random' byte in d0
move.b (a1),d0
move.b (a2),d1
move.b (a3),d2
eor.b d2,d0
eor.b d1,d0
IFNE RAND&1
add.b d0,(a3)
ENDC
IFNE RAND&2
add.b d7,d0
ENDC
ENDM
;-------------------------------------------------------------------------
; PROGRAM START
;-------------------------------------------------------------------------
SECTION "Code",CODE
StartProgram:
lea GfxName,a1 ; Open graphics.library
moveq #0,d0
CALL Exec,OpenLibrary
move.l d0,GfxBas
beq.w .Exit
lea IntName,a1 ; Open intuition.library
moveq #0,d0
CALL Exec,OpenLibrary
move.l d0,IntBas
beq.w .Exit
sub.l a1,a1 ; Grab display
CALL Gfx,LoadView
CALL Gfx,WaitTOF
CALL Gfx,WaitTOF
CALL Gfx,OwnBlitter ; Grab blitter
CALL Gfx,WaitBlit
IFNE NOINT
CALL Exec,Disable ; Disable interrupts
ENDC
bsr Initialization
bsr MainLoop
IFNE NOINT
CALL Exec,Enable ; Enable interrupts
ENDC
CALL Gfx,DisownBlitter ; Free blitter
move.l IntBas,a0 ; Restore display
lea ib_ViewLord(a0),a1
CALL Gfx,LoadView
CALL Gfx,WaitTOF
CALL Gfx,WaitTOF
lea CustomBas,a0
move.l GfxBas,a6
move.l gb_copinit(a6),COP1LCH(a0)
move.w #0,COPJMP1(a0)
.Exit: move.l IntBas,a1 ; Close intuition.library
cmp.l #0,a1
beq.s .NoInt
CALL Exec,CloseLibrary
.NoInt: move.l GfxBas,a1 ; Close graphics.library
cmp.l #0,a1
beq.s .NoGfx
CALL Exec,CloseLibrary
.NoGfx: moveq #0,d0 ; Exit program
rts
;-------------------------------------------------------------------------
; MAINLOOP
;-------------------------------------------------------------------------
MainLoop:
lea CustomBas,a0 ; Wait for line 255
.Wait: cmp.b #255,VHPOSR(a0)
bne.s .Wait
IFNE DTIME
move.w #$336,CustomBas+COLOR00
ENDC
bsr DrawStars
IFNE DTIME
move.w #$000,CustomBas+COLOR00
ENDC
btst #6,CIAA ; Loop until LMB is pressed
bne.s MainLoop
rts
;-------------------------------------------------------------------------
; INITIALIZATION
;-------------------------------------------------------------------------
Initialization:
bsr InitBSS
bsr InitCopper
bsr InitCoords
bsr InitPerspective
REPT 3
bsr StarBuffer
bsr StarClear
ENDR
rts
;-------------------------------------------------------------------------
InitBSS:
lea Blanks,a0 ; Init BSS-sections
move.l #(256/4)-1,d7
.1: clr.l (a0)+
dbf d7,.1
lea StarBuffer1,a0
lea StarBuffer2,a1
lea StarBuffer3,a2
move.l #(BUFW*BUFH/2)-1,d7
.2: clr.l (a0)+
clr.l (a1)+
clr.l (a2)+
dbf d7,.2
rts
;-------------------------------------------------------------------------
InitCopper:
lea CopSprites+2,a0 ; Init sprite-pointers
move.l #Blanks,d0
move.l d0,d1
swap d1
moveq #7,d7
.Loop: move.w d1,(a0)
move.w d0,4(a0)
addq.w #8,a0
dbf d7,.Loop
lea CopBplPtr,a0 ; Init bitplane-pointers
move.l StarBufPtr,d0
move.l StarBufPtr,d1
add.l #BUFW,d1
move.w d0,6(a0)
move.w d1,14(a0)
swap d0
swap d1
move.w d0,2(a0)
move.w d1,10(a0)
lea CustomBas,a0 ; Start new copperlist
move.l #CopperList,COP1LCH(a0)
move.w #0,COPJMP1(a0)
rts
;-------------------------------------------------------------------------
InitCoords: ; Randomize coordinates
lea StarCoords,a0
lea $DFF007,a1 ; Horizontal beam pos
lea $BFD800,a2 ; Horizontal blank counter
lea RndStore,a3
move.w #NSTARS-1,d7
.Loop: RND
and.l #$FF,d0
move.w d0,(a0)+ ; Store X-coord
RND
and.l #$FF,d0
move.w d0,(a0)+ ; Store Y-coord
RND
lsl.l #8,d0
and.l #$FF00,d0
move.w d0,(a0)+ ; Store Z-coord
dbf d7,.Loop
rts
;-----------------------------------------------------------------------------
InitPerspective: ; Calculate perspective-tables
lea PerTabX,a0
lea PerTabB,a1
lea PerTabY,a2
move.l #BOXW*4,a3
move.l #BOXH/2,a4
move.l #((BOXW*4)<<16)-1,a5
move.l #((BOXH/2)<<16)-1,a6
movem.l Blanks,d0-d4
move.l #$7FFF,d5
move.l #255,d6
.1: moveq #0,d7
.2: move.w d7,d3
move.w d7,d4
mulu #(BOXW*4)<<8,d3
add.l d3,d3
swap d3
mulu #(BOXH/2)<<8,d4
add.l d4,d4
swap d4
sub.w a3,d3
muls d5,d3
add.l d3,d3
add.l a5,d3
swap d3
sub.w a4,d4
muls d5,d4
add.l d4,d4
add.l a6,d4
swap d4
move.l d3,d0
move.l d3,d1
move.l d4,d2
lsr.w #3,d0
and.w #7,d1
sub.w #7,d1
neg.w d1
mulu #BUFW*2,d2
cmp.w #100,d6
bgt.s .3
add.w #BUFW,d2
.3: add.b #(BUFW-BOXW)/2,d0
add.w #(BUFH-BOXH)*BUFW,d2
move.b d0,(a0)+
move.b d1,(a1)+
move.w d2,(a2)+
addq.w #1,d7
cmp.w #256,d7
bne.s .2
mulu #PFACT,d5
swap d5
and.l #$FFFF,d5
dbf d6,.1
rts
;-------------------------------------------------------------------------
; ROUTINES
;-----------------------------------------------------------------------------
DrawStars:
bsr StarBuffer
bsr StarClear
bsr StarMove
lea PerTabX,a0 ; Perspective tables
lea PerTabB,a1
lea PerTabY,a2
lea StarCoords,a3 ; Coordinates
move.l StarBufPtr+4,a4 ; Bitplane pointer
movem.l Blanks,d0-d7
move.w StarAddX,d3 ; Movement offsets
move.w StarAddY,d4
move.w StarAddZ,d5
move.l #$FF,d6
move.w #(NSTARS/5)-1,d7
AD SET 0
Loop: REPT 5 ; Loop only for each 20 stars
lea (a4),a5
movem.w AD(a3),d0-d2 ; Fetch coord (x,y,z)
add.w d5,d2 ; Calc Z
add.w d4,d1 ; Calc Y
and.l d6,d1
or.w d2,d1
add.l d1,d1
add.w (a2,d1.l),a5
add.w d3,d0 ; Calc X
and.l d6,d0
or.w d2,d0
move.b (a0,d0.l),d2
and.w d6,d2
move.b (a1,d0.l),d0 ; Calc bit
bset d0,(a5,d2.w) ; Plot pixel
AD SET AD+6
ENDR
lea 30(a3),a3
dbf d7,Loop
EL: rts
;-----------------------------------------------------------------------------
StarClear: ; Clear a buffer with blitter
CALL Gfx,WaitBlit
lea CustomBas,a0
move.l StarBufPtr+8,BLTDPTH(a0)
move.w #0,BLTDMOD(a0)
move.l #$01000000,BLTCON0(a0)
move.w #BUFH*64+BUFW,BLTSIZE(a0)
rts
;-----------------------------------------------------------------------------
StarBuffer:
lea StarBufPtr,a0 ; Triple buffering
movem.l (a0),d0-d2
exg d0,d1
exg d1,d2
movem.l d0-d2,(a0)
lea CopBplPtr,a0 ; Update bitplane-pointers
move.l StarBufPtr,d0
move.l StarBufPtr,d1
add.l #BUFW,d1
move.w d0,6(a0)
move.w d1,14(a0)
swap d0
swap d1
move.w d0,2(a0)
move.w d1,10(a0)
rts
;-----------------------------------------------------------------------------
StarMove: ; Move stars around
lea SineTable,a0 ; Use sine in X and Y direction
move.w SinPosX,d0
move.w SinPosY,d1
add.w SinSpdX,d0
add.w SinSpdY,d1
and.w #$FFE,d0
and.w #$FFE,d1
move.w d0,SinPosX
move.w d1,SinPosY
move.w (a0,d0.w),d0
move.w (a0,d1.w),d1
move.w d0,StarAddX
move.w d1,StarAddY
add.w #ZSPEED<<8,StarAddZ
and.w #$FF00,StarAddZ
rts
;-------------------------------------------------------------------------
; PUBLICMEM DATA
;-------------------------------------------------------------------------
SECTION "PubBSS",BSS
GfxBas: ds.l 1
IntBas: ds.l 1
PerTabX: ds.b 256*256 ; Perspective tables
PerTabB: ds.b 256*256
PerTabY: ds.w 256*256
StarCoords: ds.w 3*NSTARS ; Star coordinates
;-------------------------------------------------------------------------
SECTION "PubData",DATA
RndStore: dc.w 0 ; Random value
StarAddX: dc.w 0 ; Star movement offsets
StarAddY: dc.w 0
StarAddZ: dc.w 0
SinPosX: dc.w 0 ; Sine positions
SinPosY: dc.w $136
SinSpdX: dc.w 4 ; Sine speeds
SinSpdY: dc.w -2
StarBufPtr: dc.l StarBuffer1 ; Buffer pointers
dc.l StarBuffer2
dc.l StarBuffer3
GfxName: dc.b "graphics.library",0
IntName: dc.b "intuition.library",0
even
SineTable: dc.w $0200,$0202,$0203,$0205,$0206,$0208,$0209,$020B
dc.w $020D,$020E,$0210,$0211,$0213,$0214,$0216,$0218
dc.w $0219,$021B,$021C,$021E,$021F,$0221,$0223,$0224
dc.w $0226,$0227,$0229,$022A,$022C,$022D,$022F,$0231
dc.w $0232,$0234,$0235,$0237,$0238,$023A,$023C,$023D
dc.w $023F,$0240,$0242,$0243,$0245,$0246,$0248,$024A
dc.w $024B,$024D,$024E,$0250,$0251,$0253,$0254,$0256
dc.w $0258,$0259,$025B,$025C,$025E,$025F,$0261,$0262
dc.w $0264,$0265,$0267,$0269,$026A,$026C,$026D,$026F
dc.w $0270,$0272,$0273,$0275,$0276,$0278,$0279,$027B
dc.w $027C,$027E,$027F,$0281,$0282,$0284,$0286,$0287
dc.w $0289,$028A,$028C,$028D,$028F,$0290,$0292,$0293
dc.w $0295,$0296,$0298,$0299,$029B,$029C,$029E,$029F
dc.w $02A1,$02A2,$02A4,$02A5,$02A7,$02A8,$02AA,$02AB
dc.w $02AC,$02AE,$02AF,$02B1,$02B2,$02B4,$02B5,$02B7
dc.w $02B8,$02BA,$02BB,$02BD,$02BE,$02C0,$02C1,$02C2
dc.w $02C4,$02C5,$02C7,$02C8,$02CA,$02CB,$02CD,$02CE
dc.w $02CF,$02D1,$02D2,$02D4,$02D5,$02D7,$02D8,$02D9
dc.w $02DB,$02DC,$02DE,$02DF,$02E1,$02E2,$02E3,$02E5
dc.w $02E6,$02E8,$02E9,$02EA,$02EC,$02ED,$02EF,$02F0
dc.w $02F1,$02F3,$02F4,$02F6,$02F7,$02F8,$02FA,$02FB
dc.w $02FC,$02FE,$02FF,$0300,$0302,$0303,$0305,$0306
dc.w $0307,$0309,$030A,$030B,$030D,$030E,$030F,$0311
dc.w $0312,$0313,$0315,$0316,$0317,$0319,$031A,$031B
dc.w $031C,$031E,$031F,$0320,$0322,$0323,$0324,$0326
dc.w $0327,$0328,$0329,$032B,$032C,$032D,$032E,$0330
dc.w $0331,$0332,$0334,$0335,$0336,$0337,$0339,$033A
dc.w $033B,$033C,$033D,$033F,$0340,$0341,$0342,$0344
dc.w $0345,$0346,$0347,$0348,$034A,$034B,$034C,$034D
dc.w $034E,$0350,$0351,$0352,$0353,$0354,$0356,$0357
dc.w $0358,$0359,$035A,$035B,$035C,$035E,$035F,$0360
dc.w $0361,$0362,$0363,$0364,$0366,$0367,$0368,$0369
dc.w $036A,$036B,$036C,$036D,$036E,$0370,$0371,$0372
dc.w $0373,$0374,$0375,$0376,$0377,$0378,$0379,$037A
dc.w $037B,$037C,$037D,$037F,$0380,$0381,$0382,$0383
dc.w $0384,$0385,$0386,$0387,$0388,$0389,$038A,$038B
dc.w $038C,$038D,$038E,$038F,$0390,$0391,$0392,$0393
dc.w $0394,$0395,$0396,$0397,$0397,$0398,$0399,$039A
dc.w $039B,$039C,$039D,$039E,$039F,$03A0,$03A1,$03A2
dc.w $03A3,$03A4,$03A4,$03A5,$03A6,$03A7,$03A8,$03A9
dc.w $03AA,$03AB,$03AB,$03AC,$03AD,$03AE,$03AF,$03B0
dc.w $03B1,$03B1,$03B2,$03B3,$03B4,$03B5,$03B6,$03B6
dc.w $03B7,$03B8,$03B9,$03BA,$03BA,$03BB,$03BC,$03BD
dc.w $03BD,$03BE,$03BF,$03C0,$03C1,$03C1,$03C2,$03C3
dc.w $03C4,$03C4,$03C5,$03C6,$03C6,$03C7,$03C8,$03C9
dc.w $03C9,$03CA,$03CB,$03CB,$03CC,$03CD,$03CD,$03CE
dc.w $03CF,$03D0,$03D0,$03D1,$03D1,$03D2,$03D3,$03D3
dc.w $03D4,$03D5,$03D5,$03D6,$03D7,$03D7,$03D8,$03D8
dc.w $03D9,$03DA,$03DA,$03DB,$03DB,$03DC,$03DD,$03DD
dc.w $03DE,$03DE,$03DF,$03DF,$03E0,$03E0,$03E1,$03E2
dc.w $03E2,$03E3,$03E3,$03E4,$03E4,$03E5,$03E5,$03E6
dc.w $03E6,$03E7,$03E7,$03E8,$03E8,$03E9,$03E9,$03E9
dc.w $03EA,$03EA,$03EB,$03EB,$03EC,$03EC,$03ED,$03ED
dc.w $03ED,$03EE,$03EE,$03EF,$03EF,$03EF,$03F0,$03F0
dc.w $03F1,$03F1,$03F1,$03F2,$03F2,$03F3,$03F3,$03F3
dc.w $03F4,$03F4,$03F4,$03F5,$03F5,$03F5,$03F6,$03F6
dc.w $03F6,$03F6,$03F7,$03F7,$03F7,$03F8,$03F8,$03F8
dc.w $03F8,$03F9,$03F9,$03F9,$03F9,$03FA,$03FA,$03FA
dc.w $03FA,$03FB,$03FB,$03FB,$03FB,$03FC,$03FC,$03FC
dc.w $03FC,$03FC,$03FD,$03FD,$03FD,$03FD,$03FD,$03FD
dc.w $03FE,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE
dc.w $03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF
dc.w $03FF,$03FF,$0400,$0400,$0400,$0400,$0400,$0400
dc.w $0400,$0400,$0400,$0400,$0400,$0400,$0400,$0400
dc.w $0400,$0400,$0400,$0400,$0400,$0400,$0400,$0400
dc.w $0400,$0400,$0400,$0400,$0400,$0400,$0400,$03FF
dc.w $03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF,$03FF
dc.w $03FF,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE,$03FE
dc.w $03FE,$03FD,$03FD,$03FD,$03FD,$03FD,$03FD,$03FC
dc.w $03FC,$03FC,$03FC,$03FC,$03FB,$03FB,$03FB,$03FB
dc.w $03FA,$03FA,$03FA,$03FA,$03F9,$03F9,$03F9,$03F9
dc.w $03F8,$03F8,$03F8,$03F8,$03F7,$03F7,$03F7,$03F6
dc.w $03F6,$03F6,$03F6,$03F5,$03F5,$03F5,$03F4,$03F4
dc.w $03F4,$03F3,$03F3,$03F3,$03F2,$03F2,$03F1,$03F1
dc.w $03F1,$03F0,$03F0,$03EF,$03EF,$03EF,$03EE,$03EE
dc.w $03ED,$03ED,$03ED,$03EC,$03EC,$03EB,$03EB,$03EA
dc.w $03EA,$03E9,$03E9,$03E9,$03E8,$03E8,$03E7,$03E7
dc.w $03E6,$03E6,$03E5,$03E5,$03E4,$03E4,$03E3,$03E3
dc.w $03E2,$03E2,$03E1,$03E0,$03E0,$03DF,$03DF,$03DE
dc.w $03DE,$03DD,$03DD,$03DC,$03DB,$03DB,$03DA,$03DA
dc.w $03D9,$03D8,$03D8,$03D7,$03D7,$03D6,$03D5,$03D5
dc.w $03D4,$03D3,$03D3,$03D2,$03D1,$03D1,$03D0,$03D0
dc.w $03CF,$03CE,$03CD,$03CD,$03CC,$03CB,$03CB,$03CA
dc.w $03C9,$03C9,$03C8,$03C7,$03C6,$03C6,$03C5,$03C4
dc.w $03C4,$03C3,$03C2,$03C1,$03C1,$03C0,$03BF,$03BE
dc.w $03BD,$03BD,$03BC,$03BB,$03BA,$03BA,$03B9,$03B8
dc.w $03B7,$03B6,$03B6,$03B5,$03B4,$03B3,$03B2,$03B1
dc.w $03B1,$03B0,$03AF,$03AE,$03AD,$03AC,$03AB,$03AB
dc.w $03AA,$03A9,$03A8,$03A7,$03A6,$03A5,$03A4,$03A4
dc.w $03A3,$03A2,$03A1,$03A0,$039F,$039E,$039D,$039C
dc.w $039B,$039A,$0399,$0398,$0397,$0397,$0396,$0395
dc.w $0394,$0393,$0392,$0391,$0390,$038F,$038E,$038D
dc.w $038C,$038B,$038A,$0389,$0388,$0387,$0386,$0385
dc.w $0384,$0383,$0382,$0381,$0380,$037F,$037D,$037C
dc.w $037B,$037A,$0379,$0378,$0377,$0376,$0375,$0374
dc.w $0373,$0372,$0371,$0370,$036E,$036D,$036C,$036B
dc.w $036A,$0369,$0368,$0367,$0366,$0364,$0363,$0362
dc.w $0361,$0360,$035F,$035E,$035C,$035B,$035A,$0359
dc.w $0358,$0357,$0356,$0354,$0353,$0352,$0351,$0350
dc.w $034E,$034D,$034C,$034B,$034A,$0348,$0347,$0346
dc.w $0345,$0344,$0342,$0341,$0340,$033F,$033D,$033C
dc.w $033B,$033A,$0339,$0337,$0336,$0335,$0334,$0332
dc.w $0331,$0330,$032E,$032D,$032C,$032B,$0329,$0328
dc.w $0327,$0326,$0324,$0323,$0322,$0320,$031F,$031E
dc.w $031C,$031B,$031A,$0319,$0317,$0316,$0315,$0313
dc.w $0312,$0311,$030F,$030E,$030D,$030B,$030A,$0309
dc.w $0307,$0306,$0305,$0303,$0302,$0300,$02FF,$02FE
dc.w $02FC,$02FB,$02FA,$02F8,$02F7,$02F5,$02F4,$02F3
dc.w $02F1,$02F0,$02EF,$02ED,$02EC,$02EA,$02E9,$02E8
dc.w $02E6,$02E5,$02E3,$02E2,$02E1,$02DF,$02DE,$02DC
dc.w $02DB,$02D9,$02D8,$02D7,$02D5,$02D4,$02D2,$02D1
dc.w $02CF,$02CE,$02CD,$02CB,$02CA,$02C8,$02C7,$02C5
dc.w $02C4,$02C2,$02C1,$02C0,$02BE,$02BD,$02BB,$02BA
dc.w $02B8,$02B7,$02B5,$02B4,$02B2,$02B1,$02AF,$02AE
dc.w $02AC,$02AB,$02AA,$02A8,$02A7,$02A5,$02A4,$02A2
dc.w $02A1,$029F,$029E,$029C,$029B,$0299,$0298,$0296
dc.w $0295,$0293,$0292,$0290,$028F,$028D,$028C,$028A
dc.w $0289,$0287,$0286,$0284,$0282,$0281,$027F,$027E
dc.w $027C,$027B,$0279,$0278,$0276,$0275,$0273,$0272
dc.w $0270,$026F,$026D,$026C,$026A,$0269,$0267,$0265
dc.w $0264,$0262,$0261,$025F,$025E,$025C,$025B,$0259
dc.w $0258,$0256,$0254,$0253,$0251,$0250,$024E,$024D
dc.w $024B,$024A,$0248,$0246,$0245,$0243,$0242,$0240
dc.w $023F,$023D,$023C,$023A,$0238,$0237,$0235,$0234
dc.w $0232,$0231,$022F,$022D,$022C,$022A,$0229,$0227
dc.w $0226,$0224,$0223,$0221,$021F,$021E,$021C,$021B
dc.w $0219,$0218,$0216,$0214,$0213,$0211,$0210,$020E
dc.w $020D,$020B,$0209,$0208,$0206,$0205,$0203,$0202
dc.w $0200,$01FE,$01FD,$01FB,$01FA,$01F8,$01F7,$01F5
dc.w $01F3,$01F2,$01F0,$01EF,$01ED,$01EC,$01EA,$01E8
dc.w $01E7,$01E5,$01E4,$01E2,$01E1,$01DF,$01DD,$01DC
dc.w $01DA,$01D9,$01D7,$01D6,$01D4,$01D3,$01D1,$01CF
dc.w $01CE,$01CC,$01CB,$01C9,$01C8,$01C6,$01C4,$01C3
dc.w $01C1,$01C0,$01BE,$01BD,$01BB,$01BA,$01B8,$01B6
dc.w $01B5,$01B3,$01B2,$01B0,$01AF,$01AD,$01AC,$01AA
dc.w $01A8,$01A7,$01A5,$01A4,$01A2,$01A1,$019F,$019E
dc.w $019C,$019B,$0199,$0197,$0196,$0194,$0193,$0191
dc.w $0190,$018E,$018D,$018B,$018A,$0188,$0187,$0185
dc.w $0184,$0182,$0181,$017F,$017E,$017C,$017A,$0179
dc.w $0177,$0176,$0174,$0173,$0171,$0170,$016E,$016D
dc.w $016B,$016A,$0168,$0167,$0165,$0164,$0162,$0161
dc.w $015F,$015E,$015C,$015B,$0159,$0158,$0156,$0155
dc.w $0154,$0152,$0151,$014F,$014E,$014C,$014B,$0149
dc.w $0148,$0146,$0145,$0143,$0142,$0140,$013F,$013E
dc.w $013C,$013B,$0139,$0138,$0136,$0135,$0133,$0132
dc.w $0131,$012F,$012E,$012C,$012B,$0129,$0128,$0127
dc.w $0125,$0124,$0122,$0121,$011F,$011E,$011D,$011B
dc.w $011A,$0118,$0117,$0116,$0114,$0113,$0111,$0110
dc.w $010F,$010D,$010C,$010A,$0109,$0108,$0106,$0105
dc.w $0104,$0102,$0101,$0100,$00FE,$00FD,$00FB,$00FA
dc.w $00F9,$00F7,$00F6,$00F5,$00F3,$00F2,$00F1,$00EF
dc.w $00EE,$00ED,$00EB,$00EA,$00E9,$00E7,$00E6,$00E5
dc.w $00E4,$00E2,$00E1,$00E0,$00DE,$00DD,$00DC,$00DA
dc.w $00D9,$00D8,$00D7,$00D5,$00D4,$00D3,$00D2,$00D0
dc.w $00CF,$00CE,$00CC,$00CB,$00CA,$00C9,$00C7,$00C6
dc.w $00C5,$00C4,$00C3,$00C1,$00C0,$00BF,$00BE,$00BC
dc.w $00BB,$00BA,$00B9,$00B8,$00B6,$00B5,$00B4,$00B3
dc.w $00B2,$00B0,$00AF,$00AE,$00AD,$00AC,$00AA,$00A9
dc.w $00A8,$00A7,$00A6,$00A5,$00A4,$00A2,$00A1,$00A0
dc.w $009F,$009E,$009D,$009C,$009A,$0099,$0098,$0097
dc.w $0096,$0095,$0094,$0093,$0092,$0090,$008F,$008E
dc.w $008D,$008C,$008B,$008A,$0089,$0088,$0087,$0086
dc.w $0085,$0084,$0083,$0081,$0080,$007F,$007E,$007D
dc.w $007C,$007B,$007A,$0079,$0078,$0077,$0076,$0075
dc.w $0074,$0073,$0072,$0071,$0070,$006F,$006E,$006D
dc.w $006C,$006B,$006A,$0069,$0069,$0068,$0067,$0066
dc.w $0065,$0064,$0063,$0062,$0061,$0060,$005F,$005E
dc.w $005D,$005C,$005C,$005B,$005A,$0059,$0058,$0057
dc.w $0056,$0055,$0055,$0054,$0053,$0052,$0051,$0050
dc.w $004F,$004F,$004E,$004D,$004C,$004B,$004A,$004A
dc.w $0049,$0048,$0047,$0046,$0046,$0045,$0044,$0043
dc.w $0043,$0042,$0041,$0040,$003F,$003F,$003E,$003D
dc.w $003C,$003C,$003B,$003A,$003A,$0039,$0038,$0037
dc.w $0037,$0036,$0035,$0035,$0034,$0033,$0033,$0032
dc.w $0031,$0030,$0030,$002F,$002F,$002E,$002D,$002D
dc.w $002C,$002B,$002B,$002A,$0029,$0029,$0028,$0028
dc.w $0027,$0026,$0026,$0025,$0025,$0024,$0023,$0023
dc.w $0022,$0022,$0021,$0021,$0020,$0020,$001F,$001E
dc.w $001E,$001D,$001D,$001C,$001C,$001B,$001B,$001A
dc.w $001A,$0019,$0019,$0018,$0018,$0017,$0017,$0017
dc.w $0016,$0016,$0015,$0015,$0014,$0014,$0013,$0013
dc.w $0013,$0012,$0012,$0011,$0011,$0011,$0010,$0010
dc.w $000F,$000F,$000F,$000E,$000E,$000D,$000D,$000D
dc.w $000C,$000C,$000C,$000B,$000B,$000B,$000A,$000A
dc.w $000A,$000A,$0009,$0009,$0009,$0008,$0008,$0008
dc.w $0008,$0007,$0007,$0007,$0007,$0006,$0006,$0006
dc.w $0006,$0005,$0005,$0005,$0005,$0004,$0004,$0004
dc.w $0004,$0004,$0003,$0003,$0003,$0003,$0003,$0003
dc.w $0002,$0002,$0002,$0002,$0002,$0002,$0002,$0002
dc.w $0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001
dc.w $0001,$0001,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0001
dc.w $0001,$0001,$0001,$0001,$0001,$0001,$0001,$0001
dc.w $0001,$0002,$0002,$0002,$0002,$0002,$0002,$0002
dc.w $0002,$0003,$0003,$0003,$0003,$0003,$0003,$0004
dc.w $0004,$0004,$0004,$0004,$0005,$0005,$0005,$0005
dc.w $0006,$0006,$0006,$0006,$0007,$0007,$0007,$0007
dc.w $0008,$0008,$0008,$0008,$0009,$0009,$0009,$000A
dc.w $000A,$000A,$000A,$000B,$000B,$000B,$000C,$000C
dc.w $000C,$000D,$000D,$000D,$000E,$000E,$000F,$000F
dc.w $000F,$0010,$0010,$0011,$0011,$0011,$0012,$0012
dc.w $0013,$0013,$0013,$0014,$0014,$0015,$0015,$0016
dc.w $0016,$0017,$0017,$0017,$0018,$0018,$0019,$0019
dc.w $001A,$001A,$001B,$001B,$001C,$001C,$001D,$001D
dc.w $001E,$001E,$001F,$0020,$0020,$0021,$0021,$0022
dc.w $0022,$0023,$0023,$0024,$0025,$0025,$0026,$0026
dc.w $0027,$0028,$0028,$0029,$0029,$002A,$002B,$002B
dc.w $002C,$002D,$002D,$002E,$002F,$002F,$0030,$0030
dc.w $0031,$0032,$0033,$0033,$0034,$0035,$0035,$0036
dc.w $0037,$0037,$0038,$0039,$003A,$003A,$003B,$003C
dc.w $003C,$003D,$003E,$003F,$003F,$0040,$0041,$0042
dc.w $0043,$0043,$0044,$0045,$0046,$0046,$0047,$0048
dc.w $0049,$004A,$004A,$004B,$004C,$004D,$004E,$004F
dc.w $004F,$0050,$0051,$0052,$0053,$0054,$0055,$0055
dc.w $0056,$0057,$0058,$0059,$005A,$005B,$005C,$005C
dc.w $005D,$005E,$005F,$0060,$0061,$0062,$0063,$0064
dc.w $0065,$0066,$0067,$0068,$0069,$0069,$006A,$006B
dc.w $006C,$006D,$006E,$006F,$0070,$0071,$0072,$0073
dc.w $0074,$0075,$0076,$0077,$0078,$0079,$007A,$007B
dc.w $007C,$007D,$007E,$007F,$0080,$0081,$0083,$0084
dc.w $0085,$0086,$0087,$0088,$0089,$008A,$008B,$008C
dc.w $008D,$008E,$008F,$0090,$0092,$0093,$0094,$0095
dc.w $0096,$0097,$0098,$0099,$009A,$009C,$009D,$009E
dc.w $009F,$00A0,$00A1,$00A2,$00A4,$00A5,$00A6,$00A7
dc.w $00A8,$00A9,$00AB,$00AC,$00AD,$00AE,$00AF,$00B0
dc.w $00B2,$00B3,$00B4,$00B5,$00B6,$00B8,$00B9,$00BA
dc.w $00BB,$00BC,$00BE,$00BF,$00C0,$00C1,$00C3,$00C4
dc.w $00C5,$00C6,$00C7,$00C9,$00CA,$00CB,$00CC,$00CE
dc.w $00CF,$00D0,$00D2,$00D3,$00D4,$00D5,$00D7,$00D8
dc.w $00D9,$00DA,$00DC,$00DD,$00DE,$00E0,$00E1,$00E2
dc.w $00E4,$00E5,$00E6,$00E7,$00E9,$00EA,$00EB,$00ED
dc.w $00EE,$00EF,$00F1,$00F2,$00F3,$00F5,$00F6,$00F7
dc.w $00F9,$00FA,$00FB,$00FD,$00FE,$0100,$0101,$0102
dc.w $0104,$0105,$0106,$0108,$0109,$010B,$010C,$010D
dc.w $010F,$0110,$0111,$0113,$0114,$0116,$0117,$0118
dc.w $011A,$011B,$011D,$011E,$011F,$0121,$0122,$0124
dc.w $0125,$0127,$0128,$0129,$012B,$012C,$012E,$012F
dc.w $0131,$0132,$0133,$0135,$0136,$0138,$0139,$013B
dc.w $013C,$013E,$013F,$0140,$0142,$0143,$0145,$0146
dc.w $0148,$0149,$014B,$014C,$014E,$014F,$0151,$0152
dc.w $0154,$0155,$0156,$0158,$0159,$015B,$015C,$015E
dc.w $015F,$0161,$0162,$0164,$0165,$0167,$0168,$016A
dc.w $016B,$016D,$016E,$0170,$0171,$0173,$0174,$0176
dc.w $0177,$0179,$017A,$017C,$017E,$017F,$0181,$0182
dc.w $0184,$0185,$0187,$0188,$018A,$018B,$018D,$018E
dc.w $0190,$0191,$0193,$0194,$0196,$0198,$0199,$019B
dc.w $019C,$019E,$019F,$01A1,$01A2,$01A4,$01A5,$01A7
dc.w $01A8,$01AA,$01AC,$01AD,$01AF,$01B0,$01B2,$01B3
dc.w $01B5,$01B6,$01B8,$01BA,$01BB,$01BD,$01BE,$01C0
dc.w $01C1,$01C3,$01C4,$01C6,$01C8,$01C9,$01CB,$01CC
dc.w $01CE,$01CF,$01D1,$01D3,$01D4,$01D6,$01D7,$01D9
dc.w $01DA,$01DC,$01DD,$01DF,$01E1,$01E2,$01E4,$01E5
dc.w $01E7,$01E8,$01EA,$01EC,$01ED,$01EF,$01F0,$01F2
dc.w $01F3,$01F5,$01F7,$01F8,$01FA,$01FB,$01FD,$01FE
;-------------------------------------------------------------------------
; CHIPMEM DATA
;-------------------------------------------------------------------------
SECTION "ChipBSS",BSS_C
Blanks: ds.b 256 ; 256 null-bytes
StarBuffer1: ds.b 2*BUFW*BUFH ; Starfield buffers
StarBuffer2: ds.b 2*BUFW*BUFH
StarBuffer3: ds.b 2*BUFW*BUFH
;-------------------------------------------------------------------------
; COPPERLIST
;-------------------------------------------------------------------------
SECTION "ChipData",DATA_C
CopperList: dc.w $008E,$2471,$0090,$34D1 ; Display area
dc.w $0092,$0030,$0094,$00D8
CopSprites: dc.w $0120,$0000,$0122,$0000 ; Sprite-pointers
dc.w $0124,$0000,$0126,$0000
dc.w $0128,$0000,$012A,$0000
dc.w $012C,$0000,$012E,$0000
dc.w $0130,$0000,$0132,$0000
dc.w $0134,$0000,$0136,$0000
dc.w $0138,$0000,$013A,$0000
dc.w $013C,$0000,$013E,$0000
IFNE DTIME ; Palette
dc.w $0182,$0000
ELSE
dc.w $0180,$0000
ENDC
dc.w $0182,$0EEF
dc.w $0184,$0778
dc.w $0186,$0EEF
dc.w $0102,$0000
dc.w $0108,$002C,$010A,$002C ; Modulos
CopBplPtr: dc.w $00E0,$0000,$00E2,$0000 ; Bitplane-pointers
dc.w $00E4,$0000,$00E6,$0000
dc.w $2407,$FFFE,$0100,$2200 ; Turn on planes on line $24
dc.w $FFDF,$FFFE ; Wait for line $100
dc.w $3407,$FFFE,$0100,$0000 ; Turn off planes on line $134
dc.w $FFFF,$FFFE
;-----------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment