9 Title: .db "Nemesis v0.01 by Shiar",0
10 Start: call _runindicoff
18 ;-------------------- init ----------------------------------------------------
24 ;-------------------- main menu -----------------------------------------------
28 ;-------------------- exit ----------------------------------------------------
33 ;----------------------- game setup -------------------------------------------
36 ld hl,stored_data_start
37 ld bc,variables_end-stored_data_start-1
39 ;---------------------- display setup ----------------------------------------
55 ;------------------------ in-game texts ---------------------------------------
65 ;-------------------------- game loop -----------------------------------------
72 ld hl,GRAPH_MEM+(16*12)
89 ;---------------------- display -----------------------------------------------
92 ld a,64 ;Display Image
93 ld hl,GRAPH_MEM+(16*12)
104 ld hl,$1007 ;Display Score
110 ;------------------------- handle ship ----------------------------------------
202 ;---------------------------- handle keys -------------------------------------
225 ;--------------------------- level events -------------------------------------
260 ;--------------------------- handle enemies -----------------------------------
299 ;--------------------------- putsprite ----------------------------------------
302 .db 128,64,32,16,8,4,2,1
332 _oloop: push bc ;Save # of rows
333 push hl ;Save screen address
335 ld c,(ix+2) ;Load one line of image
337 _smc1 ld a,1 ;Load pixel mask
338 _iloop: sla c ;Test leftmost pixel
339 jr nc,_noplot ;See if a plot is needed
340 ld e,a ;OR pixel with screen
345 jr nc,_notedge ;Test if edge of byte reached
346 inc hl ;Go to next byte
348 pop hl ;Restore address
349 ld bc,12 ;Go to next line
386 woloop: push bc ;Save # of rows
387 push hl ;Save screen address
389 ld c,(ix+2) ;Load one line of image
391 wsmc1 ld a,1 ;Load pixel mask
392 wiloop: sla c ;Test leftmost pixel
393 jr nc,wnoplot ;See if a plot is needed
394 ld e,a ;OR pixel with screen
399 jr nc,wnotedge ;Test if edge of byte reached
400 inc hl ;Go to next byte
406 pop hl ;Restore address
407 ld bc,12 ;Go to next line
425 ld (_penCol),de ;set display position
426 ld de,StringPlace+4 ;end of location to store string
429 call UNPACK_HL ;value to string
431 ld (de),a ;store char
434 ld hl,StringPlace ;display stored chars
441 ;------------------------------- sprites --------------------------------------
534 ;---------------------------- level data -------------------------------------
542 ;---------------------------- texts ------------------------------------------
545 .db "G A L A X I A N",0
547 ;---------------------------- save data --------------------------------------
551 curevent .dw Leveldata ;next event
552 nextevent .db (Leveldata) ;time to next event
559 ybullets .dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
560 ebuls .dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
561 enemies .dw $3335,$2323,$4040,$ffff,$ffff
562 .dw $ffff,$ffff,$ffff,$ffff,$ffff
565 .dw 0,0,0,0,0,0,0,0,0,0
566 .dw 0,0,0,0,0,0,0,0,0,$ffff
577 warped_status .db $00
592 ;0.01.717 -- 17.VII.99 -- size 984
594 ; + movement of ship over whole screen
595 ; + enemies moving from right to left, appearing right at specified times