ecs: nested labels

This commit is contained in:
Steven Hugg 2022-02-27 09:31:09 -06:00
parent e86eb56570
commit 6f3affaaef
9 changed files with 607 additions and 607 deletions

View File

@ -765,8 +765,10 @@ class ActionEval {
}); });
return code; return code;
} }
private replaceLabels(code: string, label: string) { private replaceLabels(code: string) {
const label_re = /@(\w+)\b/g; const label_re = /@(\w+)\b/g;
let seq = this.em.seq++;
let label = `${this.instance.system.name}__${this.action.event}__${seq}`;
code = code.replace(label_re, (s: string, a: string) => `${label}__${a}`); code = code.replace(label_re, (s: string, a: string) => `${label}__${a}`);
return code; return code;
} }
@ -992,7 +994,7 @@ class ActionEval {
evalInlineCode(code: string) { evalInlineCode(code: string) {
let props = this.scope.state.props || {}; let props = this.scope.state.props || {};
// replace @labels // replace @labels
code = this.replaceLabels(code, this.label); code = this.replaceLabels(code);
// replace {{...}} tags // replace {{...}} tags
// TODO: use nodes instead // TODO: use nodes instead
code = this.replaceTags(code, this.action, props); code = this.replaceTags(code, this.action, props);
@ -1046,7 +1048,6 @@ class ActionEval {
} else if (instance.params.query) { } else if (instance.params.query) {
qr = qr.intersection(new EntitySet(scope, instance.params.query)); qr = qr.intersection(new EntitySet(scope, instance.params.query));
} }
let entities = qr.entities;
// TODO: generalize to other cpus/langs // TODO: generalize to other cpus/langs
switch (select) { switch (select) {
case 'once': case 'once':
@ -1074,13 +1075,13 @@ class ActionEval {
state.xreg = state.xreg.narrow(qr, action); state.xreg = state.xreg.narrow(qr, action);
if (state.xreg == null || state.xreg.eset?.entities == null) { if (state.xreg == null || state.xreg.eset?.entities == null) {
if (select == 'if') { if (select == 'if') {
entities = []; qr.entities = []; // "if" failed
break; // "if" failed
} else { } else {
throw new ECSError(`no entities in statement`, action); throw new ECSError(`no entities in statement`, action);
} }
} else { } else {
entities = state.xreg.eset.entities; // TODO? // TODO: must be a better way...
qr.entities = state.xreg.eset.entities;
} }
} else if (select == 'with') { } else if (select == 'with') {
if (instance.params.refEntity && instance.params.refField) { if (instance.params.refEntity && instance.params.refField) {
@ -1096,6 +1097,7 @@ class ActionEval {
break; break;
} }
// //
let entities = qr.entities;
let code = '%%CODE%%'; let code = '%%CODE%%';
let props: { [name: string]: string } = {}; let props: { [name: string]: string } = {};
// TODO: detect cycles // TODO: detect cycles
@ -1155,7 +1157,6 @@ class ActionEval {
props['%xofs'] = (this.scope.state.xreg?.offset() || 0).toString(); props['%xofs'] = (this.scope.state.xreg?.offset() || 0).toString();
props['%yofs'] = (this.scope.state.yreg?.offset() || 0).toString(); props['%yofs'] = (this.scope.state.yreg?.offset() || 0).toString();
let working = jr ? jr.union(qr) : qr; let working = jr ? jr.union(qr) : qr;
working.entities = entities; // TODO? not good...
//console.log('working', action.event, working.entities.length, entities.length); //console.log('working', action.event, working.entities.length, entities.length);
return { working, oldState, props, code }; return { working, oldState, props, code };
} }
@ -1581,7 +1582,7 @@ export class EntityScope implements SourceLocated {
} }
normalizeCode(code: string, action: Action) { normalizeCode(code: string, action: Action) {
// TODO: use dialect to help with this // TODO: use dialect to help with this
code = code.replace(/(\w+__\w+__)(\d+)(\w+)/g, (z,a,b,c) => a+c); code = code.replace(/\b(\w+__\w+__)(\d+)__(\w+)\b/g, (z,a,b,c) => a+c);
return code; return code;
} }
getSystemStats(inst: SystemInstance) : SystemStats { getSystemStats(inst: SystemInstance) : SystemStats {
@ -1687,7 +1688,6 @@ export class EntityScope implements SourceLocated {
} }
let subcall = this.dialect.call(stats.labels[0]); let subcall = this.dialect.call(stats.labels[0]);
for (let label of stats.labels) { for (let label of stats.labels) {
// TODO: need to trim()?
let startdelim = this.dialect.comment(`start action ${label}`).trim(); let startdelim = this.dialect.comment(`start action ${label}`).trim();
let enddelim = this.dialect.comment(`end action ${label}`).trim(); let enddelim = this.dialect.comment(`end action ${label}`).trim();
let istart = code.indexOf(startdelim); let istart = code.indexOf(startdelim);

View File

@ -23,14 +23,14 @@ __Start:
;;; start action move__start__1 ;;; start action move__start__1
ldx #0 ldx #0
move__start__1____each: move__start__2____each:
lda Xpos_x_b0+2,x lda Xpos_x_b0+2,x
inx inx
cpx #2 cpx #2
jne move__start__1____each jne move__start__2____each
move__start__1____exit: move__start__2____exit:
;;; end action move__start__1 ;;; end action move__start__1

View File

@ -75,12 +75,12 @@ __BRK:
dey dey
bne :- bne :-
;;; start action FrameLoop__start__2 ;;; start action FrameLoop__start__3
FrameLoop__start__2__NextFrame: FrameLoop__start__4__NextFrame:
FRAME_START FRAME_START
;;; start action Kernel6Digit__preframe__3 ;;; start action Kernel6Digit__preframe__5
Digit0 = Kernel6Digit__2__tmp+0 Digit0 = Kernel6Digit__2__tmp+0
Digit1 = Kernel6Digit__2__tmp+2 Digit1 = Kernel6Digit__2__tmp+2
@ -88,20 +88,20 @@ Digit2 = Kernel6Digit__2__tmp+4
Digit3 = Kernel6Digit__2__tmp+6 Digit3 = Kernel6Digit__2__tmp+6
Digit4 = Kernel6Digit__2__tmp+8 Digit4 = Kernel6Digit__2__tmp+8
Digit5 = Kernel6Digit__2__tmp+10 Digit5 = Kernel6Digit__2__tmp+10
Kernel6Digit__preframe__3__BCD0 = Kernel6Digit__2__tmp+12 Kernel6Digit__preframe__7__BCD0 = Kernel6Digit__2__tmp+12
Kernel6Digit__preframe__3__BCD1 = Kernel6Digit__2__tmp+13 Kernel6Digit__preframe__7__BCD1 = Kernel6Digit__2__tmp+13
Kernel6Digit__preframe__3__BCD2 = Kernel6Digit__2__tmp+14 Kernel6Digit__preframe__7__BCD2 = Kernel6Digit__2__tmp+14
lda BCDScore6_digits_b0 lda BCDScore6_digits_b0
sta Kernel6Digit__preframe__3__BCD0 sta Kernel6Digit__preframe__7__BCD0
lda BCDScore6_digits_b8 lda BCDScore6_digits_b8
sta Kernel6Digit__preframe__3__BCD1 sta Kernel6Digit__preframe__7__BCD1
lda BCDScore6_digits_b16 lda BCDScore6_digits_b16
sta Kernel6Digit__preframe__3__BCD2 sta Kernel6Digit__preframe__7__BCD2
ldx #0 ; leftmost bitmap ldx #0 ; leftmost bitmap
ldy #2 ; start from most-sigificant BCD value ldy #2 ; start from most-sigificant BCD value
Kernel6Digit__preframe__3__Loop: Kernel6Digit__preframe__7__Loop:
lda Kernel6Digit__preframe__3__BCD0,y ; get BCD value lda Kernel6Digit__preframe__7__BCD0,y ; get BCD value
and #$f0 ; isolate high nibble (* 16) and #$f0 ; isolate high nibble (* 16)
lsr ; shift right 1 bit (* 8) lsr ; shift right 1 bit (* 8)
clc clc
@ -112,7 +112,7 @@ Kernel6Digit__preframe__3__Loop:
sta Digit0+1,x ; store pointer hi byte sta Digit0+1,x ; store pointer hi byte
inx inx
inx ; next bitmap pointer inx ; next bitmap pointer
lda Kernel6Digit__preframe__3__BCD0,y ; get BCD value (again) lda Kernel6Digit__preframe__7__BCD0,y ; get BCD value (again)
and #$f ; isolate low nibble and #$f ; isolate low nibble
asl asl
asl asl
@ -126,13 +126,13 @@ Kernel6Digit__preframe__3__Loop:
inx inx
inx ; next bitmap pointer inx ; next bitmap pointer
dey ; next BCD value dey ; next BCD value
bpl Kernel6Digit__preframe__3__Loop ; repeat until < 0 bpl Kernel6Digit__preframe__7__Loop ; repeat until < 0
;;; end action Kernel6Digit__preframe__3 ;;; end action Kernel6Digit__preframe__5
KERNEL_START KERNEL_START
;;; start action Kernel6Digit__kernel__4 ;;; start action Kernel6Digit__kernel__8
lda PFColor_pfcolor_b0 lda PFColor_pfcolor_b0
sta COLUP0 sta COLUP0
@ -156,23 +156,23 @@ Kernel6Digit__preframe__3__Loop:
sta VDELP0 sta VDELP0
sta VDELP1 sta VDELP1
;;; end action Kernel6Digit__kernel__4 ;;; end action Kernel6Digit__kernel__8
;;; start action Kernel6Digit__kernel__5 ;;; start action Kernel6Digit__kernel__11
; Display the resulting 48x8 bitmap ; Display the resulting 48x8 bitmap
; using the Digit0-5 pointers. ; using the Digit0-5 pointers.
Kernel6Digit__kernel__5__LoopCount = Kernel6Digit__2__tmp+12 Kernel6Digit__kernel__13__LoopCount = Kernel6Digit__2__tmp+12
Kernel6Digit__kernel__5__Temp = Kernel6Digit__2__tmp+13 Kernel6Digit__kernel__13__Temp = Kernel6Digit__2__tmp+13
lda BGColor_bgcolor_b0 lda BGColor_bgcolor_b0
sta WSYNC sta WSYNC
sta COLUBK sta COLUBK
lda #7 lda #7
sta Kernel6Digit__kernel__5__LoopCount sta Kernel6Digit__kernel__13__LoopCount
SLEEPR 20 ; TODO? SLEEPR 20 ; TODO?
Kernel6Digit__kernel__5__BigLoop: Kernel6Digit__kernel__13__BigLoop:
ldy Kernel6Digit__kernel__5__LoopCount ; counts backwards ldy Kernel6Digit__kernel__13__LoopCount ; counts backwards
lda (Digit0),y ; load B0 (1st sprite byte) lda (Digit0),y ; load B0 (1st sprite byte)
sta GRP0 ; B0 -> [GRP0] sta GRP0 ; B0 -> [GRP0]
lda (Digit1),y ; load B1 -> A lda (Digit1),y ; load B1 -> A
@ -181,17 +181,17 @@ Kernel6Digit__kernel__5__BigLoop:
lda (Digit2),y ; load B2 -> A lda (Digit2),y ; load B2 -> A
sta GRP0 ; B2 -> [GRP0], B1 -> GRP1 sta GRP0 ; B2 -> [GRP0], B1 -> GRP1
lda (Digit5),y ; load B5 -> A lda (Digit5),y ; load B5 -> A
sta Kernel6Digit__kernel__5__Temp ; B5 -> temp sta Kernel6Digit__kernel__13__Temp ; B5 -> temp
lda (Digit4),y ; load B4 lda (Digit4),y ; load B4
tax ; -> X tax ; -> X
lda (Digit3),y ; load B3 -> A lda (Digit3),y ; load B3 -> A
ldy Kernel6Digit__kernel__5__Temp ; load B5 -> Y ldy Kernel6Digit__kernel__13__Temp ; load B5 -> Y
sta GRP1 ; B3 -> [GRP1]; B2 -> GRP0 sta GRP1 ; B3 -> [GRP1]; B2 -> GRP0
stx GRP0 ; B4 -> [GRP0]; B3 -> GRP1 stx GRP0 ; B4 -> [GRP0]; B3 -> GRP1
sty GRP1 ; B5 -> [GRP1]; B4 -> GRP0 sty GRP1 ; B5 -> [GRP1]; B4 -> GRP0
sta GRP0 ; ?? -> [GRP0]; B5 -> GRP1 sta GRP0 ; ?? -> [GRP0]; B5 -> GRP1
dec Kernel6Digit__kernel__5__LoopCount ; go to next line dec Kernel6Digit__kernel__13__LoopCount ; go to next line
bpl Kernel6Digit__kernel__5__BigLoop ; repeat until < 0 bpl Kernel6Digit__kernel__13__BigLoop ; repeat until < 0
lda #0 ; clear the sprite registers lda #0 ; clear the sprite registers
sta WSYNC sta WSYNC
@ -201,9 +201,9 @@ Kernel6Digit__kernel__5__BigLoop:
sta GRP1 sta GRP1
sta COLUBK sta COLUBK
;;; end action Kernel6Digit__kernel__5 ;;; end action Kernel6Digit__kernel__11
;;; start action Kernel2Digit__kernel__6 ;;; start action Kernel2Digit__kernel__14
lda #$02 lda #$02
sta CTRLPF sta CTRLPF
@ -214,17 +214,17 @@ Kernel6Digit__kernel__5__BigLoop:
lda PFColor_pfcolor_b0+1 lda PFColor_pfcolor_b0+1
sta COLUP1 sta COLUP1
;;; end action Kernel2Digit__kernel__6 ;;; end action Kernel2Digit__kernel__14
;;; start action Kernel2Digit__kernel__7 ;;; start action Kernel2Digit__kernel__17
lda #7 lda #7
sta Kernel2Digit__4__tmp+0 sta Kernel2Digit__4__tmp+0
Kernel2Digit__kernel__7__Loop: Kernel2Digit__kernel__19__Loop:
ldx #0 ldx #0
sta WSYNC sta WSYNC
;;; start action Kernel2Digit__compute2digit__8 ;;; start action Kernel2Digit__compute2digit__20
lda Kernel2Digit__4__tmp+1 ; load 1st pf lda Kernel2Digit__4__tmp+1 ; load 1st pf
sta PF1 ; store 1st pf sta PF1 ; store 1st pf
@ -236,14 +236,14 @@ Kernel2Digit__kernel__7__Loop:
asl asl
asl asl
;;; start action Kernel2Digit__fetchdigit__9 ;;; start action Kernel2Digit__fetchdigit__22
adc Kernel2Digit__4__tmp+0 adc Kernel2Digit__4__tmp+0
tay tay
; TODO: select your own? ; TODO: select your own?
lda FontTablePF,y lda FontTablePF,y
;;; end action Kernel2Digit__fetchdigit__9 ;;; end action Kernel2Digit__fetchdigit__22
and #$0f and #$0f
ldy Kernel2Digit__4__tmp+2 ; load 2nd pf ldy Kernel2Digit__4__tmp+2 ; load 2nd pf
@ -254,24 +254,24 @@ Kernel2Digit__kernel__7__Loop:
lsr lsr
sty PF1 ; store 2nd pf sty PF1 ; store 2nd pf
;;; start action Kernel2Digit__fetchdigit__10 ;;; start action Kernel2Digit__fetchdigit__24
adc Kernel2Digit__4__tmp+0 adc Kernel2Digit__4__tmp+0
tay tay
; TODO: select your own? ; TODO: select your own?
lda FontTablePF,y lda FontTablePF,y
;;; end action Kernel2Digit__fetchdigit__10 ;;; end action Kernel2Digit__fetchdigit__24
and #$f0 and #$f0
ora Kernel2Digit__4__tmp+1 + 0 ora Kernel2Digit__4__tmp+1 + 0
sta Kernel2Digit__4__tmp+1 + 0 sta Kernel2Digit__4__tmp+1 + 0
;;; end action Kernel2Digit__compute2digit__8 ;;; end action Kernel2Digit__compute2digit__20
inx inx
;;; start action Kernel2Digit__compute2digit__11 ;;; start action Kernel2Digit__compute2digit__26
lda Kernel2Digit__4__tmp+1 ; load 1st pf lda Kernel2Digit__4__tmp+1 ; load 1st pf
sta PF1 ; store 1st pf sta PF1 ; store 1st pf
@ -283,14 +283,14 @@ Kernel2Digit__kernel__7__Loop:
asl asl
asl asl
;;; start action Kernel2Digit__fetchdigit__12 ;;; start action Kernel2Digit__fetchdigit__28
adc Kernel2Digit__4__tmp+0 adc Kernel2Digit__4__tmp+0
tay tay
; TODO: select your own? ; TODO: select your own?
lda FontTablePF,y lda FontTablePF,y
;;; end action Kernel2Digit__fetchdigit__12 ;;; end action Kernel2Digit__fetchdigit__28
and #$0f and #$0f
ldy Kernel2Digit__4__tmp+2 ; load 2nd pf ldy Kernel2Digit__4__tmp+2 ; load 2nd pf
@ -301,40 +301,40 @@ Kernel2Digit__kernel__7__Loop:
lsr lsr
sty PF1 ; store 2nd pf sty PF1 ; store 2nd pf
;;; start action Kernel2Digit__fetchdigit__13 ;;; start action Kernel2Digit__fetchdigit__30
adc Kernel2Digit__4__tmp+0 adc Kernel2Digit__4__tmp+0
tay tay
; TODO: select your own? ; TODO: select your own?
lda FontTablePF,y lda FontTablePF,y
;;; end action Kernel2Digit__fetchdigit__13 ;;; end action Kernel2Digit__fetchdigit__30
and #$f0 and #$f0
ora Kernel2Digit__4__tmp+1 + 1 ora Kernel2Digit__4__tmp+1 + 1
sta Kernel2Digit__4__tmp+1 + 1 sta Kernel2Digit__4__tmp+1 + 1
;;; end action Kernel2Digit__compute2digit__11 ;;; end action Kernel2Digit__compute2digit__26
; playfield ; playfield
dec Kernel2Digit__4__tmp+0 dec Kernel2Digit__4__tmp+0
bpl Kernel2Digit__kernel__7__Loop bpl Kernel2Digit__kernel__19__Loop
; dex ; dex
; stx PF1 ; stx PF1
;;; end action Kernel2Digit__kernel__7 ;;; end action Kernel2Digit__kernel__17
KERNEL_END KERNEL_END
;;; start action JoyButton__postframe__14 ;;; start action JoyButton__postframe__32
lda INPT4 ;read button input lda INPT4 ;read button input
bmi JoyButton__postframe__14__NotPressed bmi JoyButton__postframe__34__NotPressed
;;; start action IncScore__joybutton__15 ;;; start action IncScore__joybutton__35
;;; start action BCDMath__AddBCD4__16 ;;; start action BCDMath__AddBCD4__38
.ifnblank $0210 .ifnblank $0210
lda #<$0210 lda #<$0210
@ -355,20 +355,20 @@ Kernel2Digit__kernel__7__Loop:
sta BCDScore6_digits_b16 sta BCDScore6_digits_b16
cld ; exit BCD mode cld ; exit BCD mode
;;; end action BCDMath__AddBCD4__16 ;;; end action BCDMath__AddBCD4__38
;;; end action IncScore__joybutton__15 ;;; end action IncScore__joybutton__35
JoyButton__postframe__14__NotPressed: JoyButton__postframe__34__NotPressed:
;;; end action JoyButton__postframe__14 ;;; end action JoyButton__postframe__32
FRAME_END FRAME_END
jmp FrameLoop__start__2__NextFrame ; loop to next frame jmp FrameLoop__start__4__NextFrame ; loop to next frame
;;; end action FrameLoop__start__2 ;;; end action FrameLoop__start__3
; start main routine ; start main routine
.segment "VECTORS" .segment "VECTORS"
Return: .word $6060 Return: .word $6060
@ -380,7 +380,7 @@ VecBRK: .word Main::__BRK
FontTable: FontTable:
;;; start action FontTable__FontTable__17 ;;; start action FontTable__FontTable__41
; Font table for digits 0-9 (8x8 pixels) ; Font table for digits 0-9 (8x8 pixels)
;;{w:8,h:8,count:10,brev:1,flip:1};; ;;{w:8,h:8,count:10,brev:1,flip:1};;
@ -390,11 +390,11 @@ FontTable:
.byte $00,$3c,$66,$66,$7c,$60,$66,$3c,$00,$18,$18,$18,$18,$0c,$66,$7e .byte $00,$3c,$66,$66,$7c,$60,$66,$3c,$00,$18,$18,$18,$18,$0c,$66,$7e
.byte $00,$3c,$66,$66,$3c,$66,$66,$3c,$00,$3c,$66,$06,$3e,$66,$66,$3c .byte $00,$3c,$66,$66,$3c,$66,$66,$3c,$00,$3c,$66,$06,$3e,$66,$66,$3c
;;; end action FontTable__FontTable__17 ;;; end action FontTable__FontTable__41
FontTablePF: FontTablePF:
;;; start action FontTablePF__FontTablePF__18 ;;; start action FontTablePF__FontTablePF__43
; Font table for digits 0-9 (4x8 pixels) ; Font table for digits 0-9 (4x8 pixels)
;;{w:8,h:8,count:10,brev:1,flip:1};; ;;{w:8,h:8,count:10,brev:1,flip:1};;
@ -410,7 +410,7 @@ FontTablePF:
.byte $00,$00,$EE,$22,$EE,$AA,$EE,$00 .byte $00,$00,$EE,$22,$EE,$AA,$EE,$00
;; ;;
;;; end action FontTablePF__FontTablePF__18 ;;; end action FontTablePF__FontTablePF__43
.endscope .endscope
Main__Start = Main::__Start Main__Start = Main::__Start

View File

@ -142,12 +142,12 @@ __BRK:
dey dey
bne :- bne :-
;;; start action FrameLoop__start__2 ;;; start action FrameLoop__start__3
FrameLoop__start__2__NextFrame: FrameLoop__start__4__NextFrame:
FRAME_START FRAME_START
;;; start action Kernel2Sprite__preframe__3 ;;; start action Kernel2Sprite__preframe__5
.define KLINES #192 .define KLINES #192
.define KPAD 32 .define KPAD 32
@ -162,17 +162,17 @@ FrameLoop__start__2__NextFrame:
sta Kernel2Sprite__2__tmp+6 sta Kernel2Sprite__2__tmp+6
sta Kernel2Sprite__2__tmp+7 sta Kernel2Sprite__2__tmp+7
;;; end action Kernel2Sprite__preframe__3 ;;; end action Kernel2Sprite__preframe__5
;;; start action Kernel2Sprite__preframe__4 ;;; start action Kernel2Sprite__preframe__8
ldy #0 ldy #0
Kernel2Sprite__preframe__4____each: Kernel2Sprite__preframe__9____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
; flags set according to sprite slot value ; flags set according to sprite slot value
; skip sprite if negative ; skip sprite if negative
jmi Kernel2Sprite__preframe__4__nosprite jmi Kernel2Sprite__preframe__10__nosprite
; set player object flags ; set player object flags
lda Sprite_plyrflags_b0,x lda Sprite_plyrflags_b0,x
sta NUSIZ0,y sta NUSIZ0,y
@ -211,16 +211,16 @@ Kernel2Sprite__preframe__4____each:
ldx Kernel2Sprite__2__tmp+12 ; restore X ldx Kernel2Sprite__2__tmp+12 ; restore X
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
sta Kernel2Sprite__2__tmp+10,y sta Kernel2Sprite__2__tmp+10,y
Kernel2Sprite__preframe__4__nosprite: Kernel2Sprite__preframe__10__nosprite:
iny iny
cpy #2 cpy #2
jne Kernel2Sprite__preframe__4____each jne Kernel2Sprite__preframe__9____each
Kernel2Sprite__preframe__4____exit: Kernel2Sprite__preframe__9____exit:
;;; end action Kernel2Sprite__preframe__4 ;;; end action Kernel2Sprite__preframe__8
;;; start action Kernel2Sprite__preframe__5 ;;; start action Kernel2Sprite__preframe__11
; shuffle pointers into (MSB, LSB) byte order ; shuffle pointers into (MSB, LSB) byte order
; L0 L1 H0 H1 -> L0 H0 L1 H1 ; L0 L1 H0 H1 -> L0 H0 L1 H1
@ -233,34 +233,34 @@ Kernel2Sprite__preframe__4____exit:
sty Kernel2Sprite__2__tmp+5 sty Kernel2Sprite__2__tmp+5
sta Kernel2Sprite__2__tmp+6 sta Kernel2Sprite__2__tmp+6
;;; end action Kernel2Sprite__preframe__5 ;;; end action Kernel2Sprite__preframe__11
;;; start action Kernel2Sprite__preframe__6 ;;; start action Kernel2Sprite__preframe__13
lda #162 lda #162
sta COLUBK sta COLUBK
;;; end action Kernel2Sprite__preframe__6 ;;; end action Kernel2Sprite__preframe__13
;;; start action Kernel2Sprite__preframe__7 ;;; start action Kernel2Sprite__preframe__16
;;; end action Kernel2Sprite__preframe__7 ;;; end action Kernel2Sprite__preframe__16
;;; start action SetXPos__preframe__8 ;;; start action SetXPos__preframe__17
sta HMCLR sta HMCLR
;;; end action SetXPos__preframe__8 ;;; end action SetXPos__preframe__17
;;; start action SetXPos__preframe__9 ;;; start action SetXPos__preframe__19
ldy #0 ldy #0
SetXPos__preframe__9____each: SetXPos__preframe__20____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
lda HasXpos_xpos_b0,x lda HasXpos_xpos_b0,x
;;; start action SetHorizPos__SetHorizPos__10 ;;; start action SetHorizPos__SetHorizPos__22
; SetHorizPos routine ; SetHorizPos routine
; A = X coordinate ; A = X coordinate
@ -268,9 +268,9 @@ SetXPos__preframe__9____each:
sta WSYNC ; start a new line sta WSYNC ; start a new line
sec ; set carry flag sec ; set carry flag
nop nop
SetHorizPos__SetHorizPos__10__DivideLoop: SetHorizPos__SetHorizPos__23__DivideLoop:
sbc #15 ; subtract 15 sbc #15 ; subtract 15
bcs SetHorizPos__SetHorizPos__10__DivideLoop ; branch until negative bcs SetHorizPos__SetHorizPos__23__DivideLoop ; branch until negative
eor #7 ; calculate fine offset eor #7 ; calculate fine offset
asl asl
asl asl
@ -279,52 +279,52 @@ SetHorizPos__SetHorizPos__10__DivideLoop:
sta RESP0,y ; fix coarse position sta RESP0,y ; fix coarse position
sta HMP0,y ; set fine offset sta HMP0,y ; set fine offset
;;; end action SetHorizPos__SetHorizPos__10 ;;; end action SetHorizPos__SetHorizPos__22
iny iny
cpy #2 cpy #2
jne SetXPos__preframe__9____each jne SetXPos__preframe__20____each
SetXPos__preframe__9____exit: SetXPos__preframe__20____exit:
;;; end action SetXPos__preframe__9 ;;; end action SetXPos__preframe__19
;;; start action SetXPos__preframe__11 ;;; start action SetXPos__preframe__24
;;; end action SetXPos__preframe__11 ;;; end action SetXPos__preframe__24
;;; start action SetXPos__preframe__12 ;;; start action SetXPos__preframe__25
sta WSYNC sta WSYNC
sta HMOVE sta HMOVE
;;; end action SetXPos__preframe__12 ;;; end action SetXPos__preframe__25
KERNEL_START KERNEL_START
;;; start action Kernel2Sprite__kernel__13 ;;; start action Kernel2Sprite__kernel__27
ldy #0 ldy #0
sty VDELP0 sty VDELP0
iny iny
sta VDELP1 sta VDELP1
;;; end action Kernel2Sprite__kernel__13 ;;; end action Kernel2Sprite__kernel__27
;;; start action Kernel2Sprite__kernel__14 ;;; start action Kernel2Sprite__kernel__30
ldy #192 ldy #192
Kernel2Sprite__kernel__14__LVScan: Kernel2Sprite__kernel__32__LVScan:
;;; start action Kernel2Sprite__scanline__15 ;;; start action Kernel2Sprite__scanline__33
; draw player 0 ; draw player 0
lda Kernel2Sprite__2__tmp+8 ; height lda Kernel2Sprite__2__tmp+8 ; height
dcp Kernel2Sprite__2__tmp+10 ; ypos dcp Kernel2Sprite__2__tmp+10 ; ypos
bcs Kernel2Sprite__scanline__15__DoDraw1 bcs Kernel2Sprite__scanline__34__DoDraw1
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__15__DoDraw1: Kernel2Sprite__scanline__34__DoDraw1:
lda (Kernel2Sprite__2__tmp+0),y lda (Kernel2Sprite__2__tmp+0),y
.if 0 = 0 .if 0 = 0
sta WSYNC sta WSYNC
@ -335,32 +335,32 @@ Kernel2Sprite__scanline__15__DoDraw1:
; draw player 1 ; draw player 1
lda Kernel2Sprite__2__tmp+9 ; height lda Kernel2Sprite__2__tmp+9 ; height
dcp Kernel2Sprite__2__tmp+11 ; ypos dcp Kernel2Sprite__2__tmp+11 ; ypos
bcs Kernel2Sprite__scanline__15__DoDraw2 bcs Kernel2Sprite__scanline__34__DoDraw2
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__15__DoDraw2: Kernel2Sprite__scanline__34__DoDraw2:
lda (Kernel2Sprite__2__tmp+2),y lda (Kernel2Sprite__2__tmp+2),y
sta GRP1 sta GRP1
lda (Kernel2Sprite__2__tmp+6),y lda (Kernel2Sprite__2__tmp+6),y
sta COLUP1 sta COLUP1
;;; end action Kernel2Sprite__scanline__15 ;;; end action Kernel2Sprite__scanline__33
;;; start action Kernel2Sprite__scanline__16 ;;; start action Kernel2Sprite__scanline__35
;;; end action Kernel2Sprite__scanline__16 ;;; end action Kernel2Sprite__scanline__35
dey ; next scanline dey ; next scanline
;;; start action Kernel2Sprite__scanline__17 ;;; start action Kernel2Sprite__scanline__36
; draw player 0 ; draw player 0
lda Kernel2Sprite__2__tmp+8 ; height lda Kernel2Sprite__2__tmp+8 ; height
dcp Kernel2Sprite__2__tmp+10 ; ypos dcp Kernel2Sprite__2__tmp+10 ; ypos
bcs Kernel2Sprite__scanline__17__DoDraw1 bcs Kernel2Sprite__scanline__37__DoDraw1
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__17__DoDraw1: Kernel2Sprite__scanline__37__DoDraw1:
lda (Kernel2Sprite__2__tmp+0),y lda (Kernel2Sprite__2__tmp+0),y
.if 1 = 0 .if 1 = 0
sta WSYNC sta WSYNC
@ -371,27 +371,27 @@ Kernel2Sprite__scanline__17__DoDraw1:
; draw player 1 ; draw player 1
lda Kernel2Sprite__2__tmp+9 ; height lda Kernel2Sprite__2__tmp+9 ; height
dcp Kernel2Sprite__2__tmp+11 ; ypos dcp Kernel2Sprite__2__tmp+11 ; ypos
bcs Kernel2Sprite__scanline__17__DoDraw2 bcs Kernel2Sprite__scanline__37__DoDraw2
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__17__DoDraw2: Kernel2Sprite__scanline__37__DoDraw2:
lda (Kernel2Sprite__2__tmp+2),y lda (Kernel2Sprite__2__tmp+2),y
sta GRP1 sta GRP1
lda (Kernel2Sprite__2__tmp+6),y lda (Kernel2Sprite__2__tmp+6),y
sta COLUP1 sta COLUP1
;;; end action Kernel2Sprite__scanline__17 ;;; end action Kernel2Sprite__scanline__36
;;; start action Kernel2Sprite__scanline__18 ;;; start action Kernel2Sprite__scanline__38
;;; end action Kernel2Sprite__scanline__18 ;;; end action Kernel2Sprite__scanline__38
dey ; next scanline dey ; next scanline
bne Kernel2Sprite__kernel__14__LVScan ; repeat until out of lines bne Kernel2Sprite__kernel__32__LVScan ; repeat until out of lines
;;; end action Kernel2Sprite__kernel__14 ;;; end action Kernel2Sprite__kernel__30
;;; start action Kernel2Sprite__kernel__19 ;;; start action Kernel2Sprite__kernel__39
lda #0 lda #0
sta GRP0 sta GRP0
@ -399,94 +399,94 @@ Kernel2Sprite__scanline__17__DoDraw2:
sta GRP0 sta GRP0
sta GRP1 sta GRP1
;;; end action Kernel2Sprite__kernel__19 ;;; end action Kernel2Sprite__kernel__39
KERNEL_END KERNEL_END
;;; start action Joystick__postframe__20 ;;; start action Joystick__postframe__41
; 2 control inputs share a single byte, 4 bits each ; 2 control inputs share a single byte, 4 bits each
lda SWCHA lda SWCHA
sta Joystick__3__tmp+0 sta Joystick__3__tmp+0
;;; end action Joystick__postframe__20 ;;; end action Joystick__postframe__41
;;; start action Joystick__postframe__21 ;;; start action Joystick__postframe__43
ldx #0 ldx #0
Joystick__postframe__21____each: Joystick__postframe__44____each:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__21__SkipMoveRight bcs Joystick__postframe__45__SkipMoveRight
;;; start action MoveJoyX__joyright__22 ;;; start action MoveJoyX__joyright__46
lda HasXpos_xpos_b0,x lda HasXpos_xpos_b0,x
clc clc
adc #1 adc #1
cmp #152 cmp #152
bcs MoveJoyX__joyright__22__nomove bcs MoveJoyX__joyright__48__nomove
sta HasXpos_xpos_b0,x sta HasXpos_xpos_b0,x
MoveJoyX__joyright__22__nomove: MoveJoyX__joyright__48__nomove:
;;; end action MoveJoyX__joyright__22 ;;; end action MoveJoyX__joyright__46
Joystick__postframe__21__SkipMoveRight: Joystick__postframe__45__SkipMoveRight:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__21__SkipMoveLeft bcs Joystick__postframe__45__SkipMoveLeft
;;; start action MoveJoyX__joyleft__23 ;;; start action MoveJoyX__joyleft__49
lda HasXpos_xpos_b0,x lda HasXpos_xpos_b0,x
sec sec
sbc #1 sbc #1
bcc MoveJoyX__joyleft__23__nomove bcc MoveJoyX__joyleft__51__nomove
sta HasXpos_xpos_b0,x sta HasXpos_xpos_b0,x
MoveJoyX__joyleft__23__nomove: MoveJoyX__joyleft__51__nomove:
;;; end action MoveJoyX__joyleft__23 ;;; end action MoveJoyX__joyleft__49
Joystick__postframe__21__SkipMoveLeft: Joystick__postframe__45__SkipMoveLeft:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__21__SkipMoveDown bcs Joystick__postframe__45__SkipMoveDown
;;; start action MoveJoyY__joydown__24 ;;; start action MoveJoyY__joydown__52
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
clc clc
adc #1 adc #1
cmp #220 cmp #220
bcs MoveJoyY__joydown__24__nomove bcs MoveJoyY__joydown__54__nomove
sta HasYpos_ypos_b0,x sta HasYpos_ypos_b0,x
MoveJoyY__joydown__24__nomove: MoveJoyY__joydown__54__nomove:
;;; end action MoveJoyY__joydown__24 ;;; end action MoveJoyY__joydown__52
Joystick__postframe__21__SkipMoveDown: Joystick__postframe__45__SkipMoveDown:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__21__SkipMoveUp bcs Joystick__postframe__45__SkipMoveUp
;;; start action MoveJoyY__joyup__25 ;;; start action MoveJoyY__joyup__55
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
sec sec
sbc #1 sbc #1
bcc MoveJoyY__joyup__25__nomove bcc MoveJoyY__joyup__57__nomove
sta HasYpos_ypos_b0,x sta HasYpos_ypos_b0,x
MoveJoyY__joyup__25__nomove: MoveJoyY__joyup__57__nomove:
;;; end action MoveJoyY__joyup__25 ;;; end action MoveJoyY__joyup__55
Joystick__postframe__21__SkipMoveUp: Joystick__postframe__45__SkipMoveUp:
inx inx
cpx #4 cpx #4
jne Joystick__postframe__21____each jne Joystick__postframe__44____each
Joystick__postframe__21____exit: Joystick__postframe__44____exit:
;;; end action Joystick__postframe__21 ;;; end action Joystick__postframe__43
;;; start action SpriteShuffler__postframe__26 ;;; start action SpriteShuffler__postframe__58
; load two sprite slots at left side of array ; load two sprite slots at left side of array
lda SpriteSlot_sprite_b0 lda SpriteSlot_sprite_b0
@ -495,36 +495,36 @@ Joystick__postframe__21____exit:
sta SpriteShuffler__8__tmp+1 sta SpriteShuffler__8__tmp+1
; move two slots to the left ; move two slots to the left
ldx #0 ldx #0
SpriteShuffler__postframe__26__loop: SpriteShuffler__postframe__60__loop:
lda SpriteSlot_sprite_b0+2,x lda SpriteSlot_sprite_b0+2,x
sta SpriteSlot_sprite_b0,x sta SpriteSlot_sprite_b0,x
inx inx
cpx #4-2 cpx #4-2
bne SpriteShuffler__postframe__26__loop bne SpriteShuffler__postframe__60__loop
; store two sprite slots at right side of array ; store two sprite slots at right side of array
lda SpriteShuffler__8__tmp+0 lda SpriteShuffler__8__tmp+0
sta SpriteSlot_sprite_b0+4-2 sta SpriteSlot_sprite_b0+4-2
lda SpriteShuffler__8__tmp+1 lda SpriteShuffler__8__tmp+1
sta SpriteSlot_sprite_b0+4-1 sta SpriteSlot_sprite_b0+4-1
;;; end action SpriteShuffler__postframe__26 ;;; end action SpriteShuffler__postframe__58
;;; start action SpriteHider__postframe__27 ;;; start action SpriteHider__postframe__61
lda #4-1 lda #4-1
sta SpriteHider__9__tmp+0 sta SpriteHider__9__tmp+0
;;; end action SpriteHider__postframe__27 ;;; end action SpriteHider__postframe__61
;;; start action SpriteHider__postframe__28 ;;; start action SpriteHider__postframe__64
ldy #0 ldy #0
SpriteHider__postframe__28____each: SpriteHider__postframe__65____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
cmp #192 cmp #192
bcc SpriteHider__postframe__28__skip bcc SpriteHider__postframe__66__skip
; swap this sprite slot with slot at end of array ; swap this sprite slot with slot at end of array
lda SpriteSlot_sprite_b0,y lda SpriteSlot_sprite_b0,y
pha pha
@ -534,20 +534,20 @@ SpriteHider__postframe__28____each:
pla pla
sta SpriteSlot_sprite_b0,x sta SpriteSlot_sprite_b0,x
dec SpriteHider__9__tmp+0 dec SpriteHider__9__tmp+0
SpriteHider__postframe__28__skip: SpriteHider__postframe__66__skip:
iny iny
cpy #2 cpy #2
jne SpriteHider__postframe__28____each jne SpriteHider__postframe__65____each
SpriteHider__postframe__28____exit: SpriteHider__postframe__65____exit:
;;; end action SpriteHider__postframe__28 ;;; end action SpriteHider__postframe__64
FRAME_END FRAME_END
jmp FrameLoop__start__2__NextFrame ; loop to next frame jmp FrameLoop__start__4__NextFrame ; loop to next frame
;;; end action FrameLoop__start__2 ;;; end action FrameLoop__start__3
; start main routine ; start main routine
.segment "VECTORS" .segment "VECTORS"
Return: .word $6060 Return: .word $6060

View File

@ -142,22 +142,22 @@ __BRK:
dey dey
bne :- bne :-
;;; start action FrameLoop__start__2 ;;; start action FrameLoop__start__3
FrameLoop__start__2__NextFrame: FrameLoop__start__4__NextFrame:
FRAME_START FRAME_START
;;; start action Kernel2Sprite__preframe__3 ;;; start action Kernel2Sprite__preframe__5
.define KLINES #192 .define KLINES #192
.define KPAD 32 .define KPAD 32
;;; end action Kernel2Sprite__preframe__3 ;;; end action Kernel2Sprite__preframe__5
;;; start action Kernel2Sprite__preframe__4 ;;; start action Kernel2Sprite__preframe__8
ldy #0 ldy #0
Kernel2Sprite__preframe__4____each: Kernel2Sprite__preframe__9____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
; set player object flags ; set player object flags
@ -201,12 +201,12 @@ Kernel2Sprite__preframe__4____each:
iny iny
cpy #2 cpy #2
jne Kernel2Sprite__preframe__4____each jne Kernel2Sprite__preframe__9____each
Kernel2Sprite__preframe__4____exit: Kernel2Sprite__preframe__9____exit:
;;; end action Kernel2Sprite__preframe__4 ;;; end action Kernel2Sprite__preframe__8
;;; start action Kernel2Sprite__preframe__5 ;;; start action Kernel2Sprite__preframe__11
; L0 L1 H0 H1 -> L0 H0 L1 H1 ; L0 L1 H0 H1 -> L0 H0 L1 H1
lda Kernel2Sprite__2__tmp+1 lda Kernel2Sprite__2__tmp+1
@ -218,34 +218,34 @@ Kernel2Sprite__preframe__4____exit:
sty Kernel2Sprite__2__tmp+5 sty Kernel2Sprite__2__tmp+5
sta Kernel2Sprite__2__tmp+6 sta Kernel2Sprite__2__tmp+6
;;; end action Kernel2Sprite__preframe__5 ;;; end action Kernel2Sprite__preframe__11
;;; start action Kernel2Sprite__preframe__6 ;;; start action Kernel2Sprite__preframe__13
lda #162 lda #162
sta COLUBK sta COLUBK
;;; end action Kernel2Sprite__preframe__6 ;;; end action Kernel2Sprite__preframe__13
;;; start action Kernel2Sprite__preframe__7 ;;; start action Kernel2Sprite__preframe__16
;;; end action Kernel2Sprite__preframe__7 ;;; end action Kernel2Sprite__preframe__16
;;; start action SetXPos__preframe__8 ;;; start action SetXPos__preframe__17
sta HMCLR sta HMCLR
;;; end action SetXPos__preframe__8 ;;; end action SetXPos__preframe__17
;;; start action SetXPos__preframe__9 ;;; start action SetXPos__preframe__19
ldy #0 ldy #0
SetXPos__preframe__9____each: SetXPos__preframe__20____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
lda HasXpos_xpos_b0,x lda HasXpos_xpos_b0,x
;;; start action SetHorizPos__SetHorizPos__10 ;;; start action SetHorizPos__SetHorizPos__22
; SetHorizPos routine ; SetHorizPos routine
; A = X coordinate ; A = X coordinate
@ -253,9 +253,9 @@ SetXPos__preframe__9____each:
sta WSYNC ; start a new line sta WSYNC ; start a new line
sec ; set carry flag sec ; set carry flag
nop nop
SetHorizPos__SetHorizPos__10__DivideLoop: SetHorizPos__SetHorizPos__23__DivideLoop:
sbc #15 ; subtract 15 sbc #15 ; subtract 15
bcs SetHorizPos__SetHorizPos__10__DivideLoop ; branch until negative bcs SetHorizPos__SetHorizPos__23__DivideLoop ; branch until negative
eor #7 ; calculate fine offset eor #7 ; calculate fine offset
asl asl
asl asl
@ -264,42 +264,42 @@ SetHorizPos__SetHorizPos__10__DivideLoop:
sta RESP0,y ; fix coarse position sta RESP0,y ; fix coarse position
sta HMP0,y ; set fine offset sta HMP0,y ; set fine offset
;;; end action SetHorizPos__SetHorizPos__10 ;;; end action SetHorizPos__SetHorizPos__22
iny iny
cpy #2 cpy #2
jne SetXPos__preframe__9____each jne SetXPos__preframe__20____each
SetXPos__preframe__9____exit: SetXPos__preframe__20____exit:
;;; end action SetXPos__preframe__9 ;;; end action SetXPos__preframe__19
;;; start action SetXPos__preframe__11 ;;; start action SetXPos__preframe__24
;;; end action SetXPos__preframe__11 ;;; end action SetXPos__preframe__24
;;; start action SetXPos__preframe__12 ;;; start action SetXPos__preframe__25
sta WSYNC sta WSYNC
sta HMOVE sta HMOVE
;;; end action SetXPos__preframe__12 ;;; end action SetXPos__preframe__25
KERNEL_START KERNEL_START
;;; start action Kernel2Sprite__kernel__13 ;;; start action Kernel2Sprite__kernel__27
ldy #0 ldy #0
sty VDELP0 sty VDELP0
iny iny
sta VDELP1 sta VDELP1
;;; end action Kernel2Sprite__kernel__13 ;;; end action Kernel2Sprite__kernel__27
;;; start action Kernel2Sprite__kernel__14 ;;; start action Kernel2Sprite__kernel__30
; define macro for each line ; define macro for each line
.macro Kernel2Sprite__kernel__14__DrawLine do_wsync .macro Kernel2Sprite__kernel__32__DrawLine do_wsync
.local DoDraw1 .local DoDraw1
.local DoDraw2 .local DoDraw2
; draw player 0 ; draw player 0
@ -330,22 +330,22 @@ DoDraw2:
.endmacro .endmacro
ldy #192 ldy #192
Kernel2Sprite__kernel__14__LVScan: Kernel2Sprite__kernel__32__LVScan:
;;; start action Kernel2Sprite__scanline1__15 ;;; start action Kernel2Sprite__scanline1__33
;;; end action Kernel2Sprite__scanline1__15 ;;; end action Kernel2Sprite__scanline1__33
Kernel2Sprite__kernel__14__DrawLine 1 ; macro: draw scanline w/ WSYNC Kernel2Sprite__kernel__32__DrawLine 1 ; macro: draw scanline w/ WSYNC
dey ; next scanline dey ; next scanline
Kernel2Sprite__kernel__14__DrawLine 0 ; macro: draw scanline no WSYNC Kernel2Sprite__kernel__32__DrawLine 0 ; macro: draw scanline no WSYNC
dey ; next scanline dey ; next scanline
bne Kernel2Sprite__kernel__14__LVScan ; repeat until out of lines bne Kernel2Sprite__kernel__32__LVScan ; repeat until out of lines
;;; end action Kernel2Sprite__kernel__14 ;;; end action Kernel2Sprite__kernel__30
;;; start action Kernel2Sprite__kernel__16 ;;; start action Kernel2Sprite__kernel__34
lda #0 lda #0
sta GRP0 sta GRP0
@ -353,94 +353,94 @@ Kernel2Sprite__kernel__14__LVScan:
sta GRP0 sta GRP0
sta GRP1 sta GRP1
;;; end action Kernel2Sprite__kernel__16 ;;; end action Kernel2Sprite__kernel__34
KERNEL_END KERNEL_END
;;; start action Joystick__postframe__17 ;;; start action Joystick__postframe__37
; 2 control inputs share a single byte, 4 bits each ; 2 control inputs share a single byte, 4 bits each
lda SWCHA lda SWCHA
sta Joystick__3__tmp+0 sta Joystick__3__tmp+0
;;; end action Joystick__postframe__17 ;;; end action Joystick__postframe__37
;;; start action Joystick__postframe__18 ;;; start action Joystick__postframe__39
ldx #0 ldx #0
Joystick__postframe__18____each: Joystick__postframe__40____each:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__18__SkipMoveRight bcs Joystick__postframe__41__SkipMoveRight
;;; start action MoveJoyX__joyright__19 ;;; start action MoveJoyX__joyright__42
lda HasXpos_xpos_b0,x lda HasXpos_xpos_b0,x
clc clc
adc #1 adc #1
cmp #152 cmp #152
bcs MoveJoyX__joyright__19__nomove bcs MoveJoyX__joyright__44__nomove
sta HasXpos_xpos_b0,x sta HasXpos_xpos_b0,x
MoveJoyX__joyright__19__nomove: MoveJoyX__joyright__44__nomove:
;;; end action MoveJoyX__joyright__19 ;;; end action MoveJoyX__joyright__42
Joystick__postframe__18__SkipMoveRight: Joystick__postframe__41__SkipMoveRight:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__18__SkipMoveLeft bcs Joystick__postframe__41__SkipMoveLeft
;;; start action MoveJoyX__joyleft__20 ;;; start action MoveJoyX__joyleft__45
lda HasXpos_xpos_b0,x lda HasXpos_xpos_b0,x
sec sec
sbc #1 sbc #1
bcc MoveJoyX__joyleft__20__nomove bcc MoveJoyX__joyleft__47__nomove
sta HasXpos_xpos_b0,x sta HasXpos_xpos_b0,x
MoveJoyX__joyleft__20__nomove: MoveJoyX__joyleft__47__nomove:
;;; end action MoveJoyX__joyleft__20 ;;; end action MoveJoyX__joyleft__45
Joystick__postframe__18__SkipMoveLeft: Joystick__postframe__41__SkipMoveLeft:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__18__SkipMoveDown bcs Joystick__postframe__41__SkipMoveDown
;;; start action MoveJoyY__joydown__21 ;;; start action MoveJoyY__joydown__48
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
clc clc
adc #1 adc #1
cmp #220 cmp #220
bcs MoveJoyY__joydown__21__nomove bcs MoveJoyY__joydown__50__nomove
sta HasYpos_ypos_b0,x sta HasYpos_ypos_b0,x
MoveJoyY__joydown__21__nomove: MoveJoyY__joydown__50__nomove:
;;; end action MoveJoyY__joydown__21 ;;; end action MoveJoyY__joydown__48
Joystick__postframe__18__SkipMoveDown: Joystick__postframe__41__SkipMoveDown:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__18__SkipMoveUp bcs Joystick__postframe__41__SkipMoveUp
;;; start action MoveJoyY__joyup__22 ;;; start action MoveJoyY__joyup__51
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
sec sec
sbc #1 sbc #1
bcc MoveJoyY__joyup__22__nomove bcc MoveJoyY__joyup__53__nomove
sta HasYpos_ypos_b0,x sta HasYpos_ypos_b0,x
MoveJoyY__joyup__22__nomove: MoveJoyY__joyup__53__nomove:
;;; end action MoveJoyY__joyup__22 ;;; end action MoveJoyY__joyup__51
Joystick__postframe__18__SkipMoveUp: Joystick__postframe__41__SkipMoveUp:
inx inx
cpx #4 cpx #4
jne Joystick__postframe__18____each jne Joystick__postframe__40____each
Joystick__postframe__18____exit: Joystick__postframe__40____exit:
;;; end action Joystick__postframe__18 ;;; end action Joystick__postframe__39
;;; start action SpriteShuffler__postframe__23 ;;; start action SpriteShuffler__postframe__54
; load two sprite slots at left side of array ; load two sprite slots at left side of array
lda SpriteSlot_sprite_b0 lda SpriteSlot_sprite_b0
@ -449,36 +449,36 @@ Joystick__postframe__18____exit:
sta SpriteShuffler__8__tmp+1 sta SpriteShuffler__8__tmp+1
; move two slots to the left ; move two slots to the left
ldx #0 ldx #0
SpriteShuffler__postframe__23__loop: SpriteShuffler__postframe__56__loop:
lda SpriteSlot_sprite_b0+2,x lda SpriteSlot_sprite_b0+2,x
sta SpriteSlot_sprite_b0,x sta SpriteSlot_sprite_b0,x
inx inx
cpx #4-2 cpx #4-2
bne SpriteShuffler__postframe__23__loop bne SpriteShuffler__postframe__56__loop
; store two sprite slots at right side of array ; store two sprite slots at right side of array
lda SpriteShuffler__8__tmp+0 lda SpriteShuffler__8__tmp+0
sta SpriteSlot_sprite_b0+4-2 sta SpriteSlot_sprite_b0+4-2
lda SpriteShuffler__8__tmp+1 lda SpriteShuffler__8__tmp+1
sta SpriteSlot_sprite_b0+4-1 sta SpriteSlot_sprite_b0+4-1
;;; end action SpriteShuffler__postframe__23 ;;; end action SpriteShuffler__postframe__54
;;; start action SpriteHider__postframe__24 ;;; start action SpriteHider__postframe__57
lda #4-1 lda #4-1
sta SpriteHider__9__tmp+0 sta SpriteHider__9__tmp+0
;;; end action SpriteHider__postframe__24 ;;; end action SpriteHider__postframe__57
;;; start action SpriteHider__postframe__25 ;;; start action SpriteHider__postframe__60
ldy #0 ldy #0
SpriteHider__postframe__25____each: SpriteHider__postframe__61____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
cmp #192 cmp #192
bcc SpriteHider__postframe__25__skip bcc SpriteHider__postframe__62__skip
; swap this sprite slot with slot at end of array ; swap this sprite slot with slot at end of array
lda SpriteSlot_sprite_b0,y lda SpriteSlot_sprite_b0,y
pha pha
@ -488,20 +488,20 @@ SpriteHider__postframe__25____each:
pla pla
sta SpriteSlot_sprite_b0,x sta SpriteSlot_sprite_b0,x
dec SpriteHider__9__tmp+0 dec SpriteHider__9__tmp+0
SpriteHider__postframe__25__skip: SpriteHider__postframe__62__skip:
iny iny
cpy #2 cpy #2
jne SpriteHider__postframe__25____each jne SpriteHider__postframe__61____each
SpriteHider__postframe__25____exit: SpriteHider__postframe__61____exit:
;;; end action SpriteHider__postframe__25 ;;; end action SpriteHider__postframe__60
FRAME_END FRAME_END
jmp FrameLoop__start__2__NextFrame ; loop to next frame jmp FrameLoop__start__4__NextFrame ; loop to next frame
;;; end action FrameLoop__start__2 ;;; end action FrameLoop__start__3
; start main routine ; start main routine
.segment "VECTORS" .segment "VECTORS"
Return: .word $6060 Return: .word $6060

View File

@ -658,12 +658,12 @@ __BRK:
dey dey
bne :- bne :-
;;; start action FrameLoop__start__2 ;;; start action FrameLoop__start__3
FrameLoop__start__2__NextFrame: FrameLoop__start__4__NextFrame:
FRAME_START FRAME_START
;;; start action Kernel2Sprite__preframe__3 ;;; start action Kernel2Sprite__preframe__5
.define KLINES #192 .define KLINES #192
.define KPAD 32 .define KPAD 32
@ -678,17 +678,17 @@ FrameLoop__start__2__NextFrame:
sta Kernel2Sprite__2__tmp+6 sta Kernel2Sprite__2__tmp+6
sta Kernel2Sprite__2__tmp+7 sta Kernel2Sprite__2__tmp+7
;;; end action Kernel2Sprite__preframe__3 ;;; end action Kernel2Sprite__preframe__5
;;; start action Kernel2Sprite__preframe__4 ;;; start action Kernel2Sprite__preframe__8
ldy #0 ldy #0
Kernel2Sprite__preframe__4____each: Kernel2Sprite__preframe__9____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
; flags set according to sprite slot value ; flags set according to sprite slot value
; skip sprite if negative ; skip sprite if negative
jmi Kernel2Sprite__preframe__4__nosprite jmi Kernel2Sprite__preframe__10__nosprite
; set player object flags ; set player object flags
lda Sprite_plyrflags_b0,x lda Sprite_plyrflags_b0,x
sta NUSIZ0,y sta NUSIZ0,y
@ -727,16 +727,16 @@ Kernel2Sprite__preframe__4____each:
ldx Kernel2Sprite__2__tmp+12 ; restore X ldx Kernel2Sprite__2__tmp+12 ; restore X
lda HasYpos_ypos_b0,x lda HasYpos_ypos_b0,x
sta Kernel2Sprite__2__tmp+10,y sta Kernel2Sprite__2__tmp+10,y
Kernel2Sprite__preframe__4__nosprite: Kernel2Sprite__preframe__10__nosprite:
iny iny
cpy #2 cpy #2
jne Kernel2Sprite__preframe__4____each jne Kernel2Sprite__preframe__9____each
Kernel2Sprite__preframe__4____exit: Kernel2Sprite__preframe__9____exit:
;;; end action Kernel2Sprite__preframe__4 ;;; end action Kernel2Sprite__preframe__8
;;; start action Kernel2Sprite__preframe__5 ;;; start action Kernel2Sprite__preframe__11
; shuffle pointers into (MSB, LSB) byte order ; shuffle pointers into (MSB, LSB) byte order
; L0 L1 H0 H1 -> L0 H0 L1 H1 ; L0 L1 H0 H1 -> L0 H0 L1 H1
@ -749,34 +749,34 @@ Kernel2Sprite__preframe__4____exit:
sty Kernel2Sprite__2__tmp+5 sty Kernel2Sprite__2__tmp+5
sta Kernel2Sprite__2__tmp+6 sta Kernel2Sprite__2__tmp+6
;;; end action Kernel2Sprite__preframe__5 ;;; end action Kernel2Sprite__preframe__11
;;; start action Kernel2Sprite__preframe__6 ;;; start action Kernel2Sprite__preframe__13
lda #162 lda #162
sta COLUBK sta COLUBK
;;; end action Kernel2Sprite__preframe__6 ;;; end action Kernel2Sprite__preframe__13
;;; start action Kernel2Sprite__preframe__7 ;;; start action Kernel2Sprite__preframe__16
;;; end action Kernel2Sprite__preframe__7 ;;; end action Kernel2Sprite__preframe__16
;;; start action SetXPos__preframe__8 ;;; start action SetXPos__preframe__17
sta HMCLR sta HMCLR
;;; end action SetXPos__preframe__8 ;;; end action SetXPos__preframe__17
;;; start action SetXPos__preframe__9 ;;; start action SetXPos__preframe__19
ldy #0 ldy #0
SetXPos__preframe__9____each: SetXPos__preframe__20____each:
ldx SpriteSlot_sprite_b0,y ldx SpriteSlot_sprite_b0,y
lda HasXpos_xpos_b0,x lda HasXpos_xpos_b0,x
;;; start action SetHorizPos__SetHorizPos__10 ;;; start action SetHorizPos__SetHorizPos__22
; SetHorizPos routine ; SetHorizPos routine
; A = X coordinate ; A = X coordinate
@ -784,9 +784,9 @@ SetXPos__preframe__9____each:
sta WSYNC ; start a new line sta WSYNC ; start a new line
sec ; set carry flag sec ; set carry flag
nop nop
SetHorizPos__SetHorizPos__10__DivideLoop: SetHorizPos__SetHorizPos__23__DivideLoop:
sbc #15 ; subtract 15 sbc #15 ; subtract 15
bcs SetHorizPos__SetHorizPos__10__DivideLoop ; branch until negative bcs SetHorizPos__SetHorizPos__23__DivideLoop ; branch until negative
eor #7 ; calculate fine offset eor #7 ; calculate fine offset
asl asl
asl asl
@ -795,28 +795,28 @@ SetHorizPos__SetHorizPos__10__DivideLoop:
sta RESP0,y ; fix coarse position sta RESP0,y ; fix coarse position
sta HMP0,y ; set fine offset sta HMP0,y ; set fine offset
;;; end action SetHorizPos__SetHorizPos__10 ;;; end action SetHorizPos__SetHorizPos__22
iny iny
cpy #2 cpy #2
jne SetXPos__preframe__9____each jne SetXPos__preframe__20____each
SetXPos__preframe__9____exit: SetXPos__preframe__20____exit:
;;; end action SetXPos__preframe__9 ;;; end action SetXPos__preframe__19
;;; start action SetXPos__preframe__11 ;;; start action SetXPos__preframe__24
;;; end action SetXPos__preframe__11 ;;; end action SetXPos__preframe__24
;;; start action SetXPos__preframe__12 ;;; start action SetXPos__preframe__25
sta WSYNC sta WSYNC
sta HMOVE sta HMOVE
;;; end action SetXPos__preframe__12 ;;; end action SetXPos__preframe__25
;;; start action VersatilePlayfield__preframe__13 ;;; start action VersatilePlayfield__preframe__27
ldx Location_room_b0+0 ldx Location_room_b0+0
@ -826,33 +826,33 @@ SetXPos__preframe__9____exit:
sta VersatilePlayfield__10__tmp+1 sta VersatilePlayfield__10__tmp+1
;;; end action VersatilePlayfield__preframe__13 ;;; end action VersatilePlayfield__preframe__27
KERNEL_START KERNEL_START
;;; start action Kernel2Sprite__kernel__14 ;;; start action Kernel2Sprite__kernel__30
ldy #0 ldy #0
sty VDELP0 sty VDELP0
iny iny
sta VDELP1 sta VDELP1
;;; end action Kernel2Sprite__kernel__14 ;;; end action Kernel2Sprite__kernel__30
;;; start action Kernel2Sprite__kernel__15 ;;; start action Kernel2Sprite__kernel__33
ldy #192 ldy #192
Kernel2Sprite__kernel__15__LVScan: Kernel2Sprite__kernel__35__LVScan:
;;; start action Kernel2Sprite__scanline__16 ;;; start action Kernel2Sprite__scanline__36
; draw player 0 ; draw player 0
lda Kernel2Sprite__2__tmp+8 ; height lda Kernel2Sprite__2__tmp+8 ; height
dcp Kernel2Sprite__2__tmp+10 ; ypos dcp Kernel2Sprite__2__tmp+10 ; ypos
bcs Kernel2Sprite__scanline__16__DoDraw1 bcs Kernel2Sprite__scanline__37__DoDraw1
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__16__DoDraw1: Kernel2Sprite__scanline__37__DoDraw1:
lda (Kernel2Sprite__2__tmp+0),y lda (Kernel2Sprite__2__tmp+0),y
.if 0 = 0 .if 0 = 0
sta WSYNC sta WSYNC
@ -863,50 +863,50 @@ Kernel2Sprite__scanline__16__DoDraw1:
; draw player 1 ; draw player 1
lda Kernel2Sprite__2__tmp+9 ; height lda Kernel2Sprite__2__tmp+9 ; height
dcp Kernel2Sprite__2__tmp+11 ; ypos dcp Kernel2Sprite__2__tmp+11 ; ypos
bcs Kernel2Sprite__scanline__16__DoDraw2 bcs Kernel2Sprite__scanline__37__DoDraw2
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__16__DoDraw2: Kernel2Sprite__scanline__37__DoDraw2:
lda (Kernel2Sprite__2__tmp+2),y lda (Kernel2Sprite__2__tmp+2),y
sta GRP1 sta GRP1
lda (Kernel2Sprite__2__tmp+6),y lda (Kernel2Sprite__2__tmp+6),y
sta COLUP1 sta COLUP1
;;; end action Kernel2Sprite__scanline__16 ;;; end action Kernel2Sprite__scanline__36
;;; start action Kernel2Sprite__scanline__17 ;;; start action Kernel2Sprite__scanline__38
;;; end action Kernel2Sprite__scanline__17 ;;; end action Kernel2Sprite__scanline__38
;;; start action VersatilePlayfield__scanline__18 ;;; start action VersatilePlayfield__scanline__39
.if 0 = 0 .if 0 = 0
lda (VersatilePlayfield__10__tmp+0),y lda (VersatilePlayfield__10__tmp+0),y
tax tax
.endif .endif
;;; end action VersatilePlayfield__scanline__18 ;;; end action VersatilePlayfield__scanline__39
;;; start action VersatilePlayfield__scanline__19 ;;; start action VersatilePlayfield__scanline__41
.if 0 = 1 .if 0 = 1
lda (VersatilePlayfield__10__tmp+0),y lda (VersatilePlayfield__10__tmp+0),y
sta $00,x sta $00,x
.endif .endif
;;; end action VersatilePlayfield__scanline__19 ;;; end action VersatilePlayfield__scanline__41
dey ; next scanline dey ; next scanline
;;; start action Kernel2Sprite__scanline__20 ;;; start action Kernel2Sprite__scanline__43
; draw player 0 ; draw player 0
lda Kernel2Sprite__2__tmp+8 ; height lda Kernel2Sprite__2__tmp+8 ; height
dcp Kernel2Sprite__2__tmp+10 ; ypos dcp Kernel2Sprite__2__tmp+10 ; ypos
bcs Kernel2Sprite__scanline__20__DoDraw1 bcs Kernel2Sprite__scanline__44__DoDraw1
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__20__DoDraw1: Kernel2Sprite__scanline__44__DoDraw1:
lda (Kernel2Sprite__2__tmp+0),y lda (Kernel2Sprite__2__tmp+0),y
.if 1 = 0 .if 1 = 0
sta WSYNC sta WSYNC
@ -917,45 +917,45 @@ Kernel2Sprite__scanline__20__DoDraw1:
; draw player 1 ; draw player 1
lda Kernel2Sprite__2__tmp+9 ; height lda Kernel2Sprite__2__tmp+9 ; height
dcp Kernel2Sprite__2__tmp+11 ; ypos dcp Kernel2Sprite__2__tmp+11 ; ypos
bcs Kernel2Sprite__scanline__20__DoDraw2 bcs Kernel2Sprite__scanline__44__DoDraw2
lda #0 lda #0
.byte $2C .byte $2C
Kernel2Sprite__scanline__20__DoDraw2: Kernel2Sprite__scanline__44__DoDraw2:
lda (Kernel2Sprite__2__tmp+2),y lda (Kernel2Sprite__2__tmp+2),y
sta GRP1 sta GRP1
lda (Kernel2Sprite__2__tmp+6),y lda (Kernel2Sprite__2__tmp+6),y
sta COLUP1 sta COLUP1
;;; end action Kernel2Sprite__scanline__20 ;;; end action Kernel2Sprite__scanline__43
;;; start action Kernel2Sprite__scanline__21 ;;; start action Kernel2Sprite__scanline__45
;;; end action Kernel2Sprite__scanline__21 ;;; end action Kernel2Sprite__scanline__45
;;; start action VersatilePlayfield__scanline__22 ;;; start action VersatilePlayfield__scanline__46
.if 1 = 0 .if 1 = 0
lda (VersatilePlayfield__10__tmp+0),y lda (VersatilePlayfield__10__tmp+0),y
tax tax
.endif .endif
;;; end action VersatilePlayfield__scanline__22 ;;; end action VersatilePlayfield__scanline__46
;;; start action VersatilePlayfield__scanline__23 ;;; start action VersatilePlayfield__scanline__48
.if 1 = 1 .if 1 = 1
lda (VersatilePlayfield__10__tmp+0),y lda (VersatilePlayfield__10__tmp+0),y
sta $00,x sta $00,x
.endif .endif
;;; end action VersatilePlayfield__scanline__23 ;;; end action VersatilePlayfield__scanline__48
dey ; next scanline dey ; next scanline
bne Kernel2Sprite__kernel__15__LVScan ; repeat until out of lines bne Kernel2Sprite__kernel__35__LVScan ; repeat until out of lines
;;; end action Kernel2Sprite__kernel__15 ;;; end action Kernel2Sprite__kernel__33
;;; start action Kernel2Sprite__kernel__24 ;;; start action Kernel2Sprite__kernel__50
lda #0 lda #0
sta GRP0 sta GRP0
@ -963,223 +963,223 @@ Kernel2Sprite__scanline__20__DoDraw2:
sta GRP0 sta GRP0
sta GRP1 sta GRP1
;;; end action Kernel2Sprite__kernel__24 ;;; end action Kernel2Sprite__kernel__50
KERNEL_END KERNEL_END
;;; start action Joystick__postframe__25 ;;; start action Joystick__postframe__52
; 2 control inputs share a single byte, 4 bits each ; 2 control inputs share a single byte, 4 bits each
lda SWCHA lda SWCHA
sta Joystick__3__tmp+0 sta Joystick__3__tmp+0
;;; end action Joystick__postframe__25 ;;; end action Joystick__postframe__52
;;; start action Joystick__postframe__26 ;;; start action Joystick__postframe__54
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__26__SkipMoveRight bcs Joystick__postframe__56__SkipMoveRight
;;; start action JoyFaceDirection__joyright__27 ;;; start action JoyFaceDirection__joyright__57
lda Sprite_plyrflags_b0 lda Sprite_plyrflags_b0
and #$f7 and #$f7
sta Sprite_plyrflags_b0 sta Sprite_plyrflags_b0
;;; end action JoyFaceDirection__joyright__27 ;;; end action JoyFaceDirection__joyright__57
;;; start action SuperFly__joyright__28 ;;; start action SuperFly__joyright__60
lda HasXpos_xpos_b0 lda HasXpos_xpos_b0
clc clc
adc #2 adc #2
cmp #142 cmp #142
jcc SuperFly__joyright__28__nomove jcc SuperFly__joyright__62__nomove
;;; start action SuperFly__goeast__29 ;;; start action SuperFly__goeast__63
ldy Location_room_b0 ldy Location_room_b0
lda Room_east_b0,y lda Room_east_b0,y
sta Location_room_b0 sta Location_room_b0
;;; end action SuperFly__goeast__29 ;;; end action SuperFly__goeast__63
lda #2 lda #2
SuperFly__joyright__28__nomove: SuperFly__joyright__62__nomove:
sta HasXpos_xpos_b0 sta HasXpos_xpos_b0
;;; end action SuperFly__joyright__28 ;;; end action SuperFly__joyright__60
Joystick__postframe__26__SkipMoveRight: Joystick__postframe__56__SkipMoveRight:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__26__SkipMoveLeft bcs Joystick__postframe__56__SkipMoveLeft
;;; start action JoyFaceDirection__joyleft__30 ;;; start action JoyFaceDirection__joyleft__66
lda Sprite_plyrflags_b0 lda Sprite_plyrflags_b0
ora #$08 ora #$08
sta Sprite_plyrflags_b0 sta Sprite_plyrflags_b0
;;; end action JoyFaceDirection__joyleft__30 ;;; end action JoyFaceDirection__joyleft__66
;;; start action SuperFly__joyleft__31 ;;; start action SuperFly__joyleft__69
lda HasXpos_xpos_b0 lda HasXpos_xpos_b0
sec sec
sbc #2 sbc #2
jcs SuperFly__joyleft__31__nomove jcs SuperFly__joyleft__71__nomove
;;; start action SuperFly__gowest__32 ;;; start action SuperFly__gowest__72
ldy Location_room_b0 ldy Location_room_b0
lda Room_west_b0,y lda Room_west_b0,y
sta Location_room_b0 sta Location_room_b0
;;; end action SuperFly__gowest__32 ;;; end action SuperFly__gowest__72
lda #142 lda #142
SuperFly__joyleft__31__nomove: SuperFly__joyleft__71__nomove:
sta HasXpos_xpos_b0 sta HasXpos_xpos_b0
;;; end action SuperFly__joyleft__31 ;;; end action SuperFly__joyleft__69
Joystick__postframe__26__SkipMoveLeft: Joystick__postframe__56__SkipMoveLeft:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__26__SkipMoveDown bcs Joystick__postframe__56__SkipMoveDown
;;; start action SuperFly__joydown__33 ;;; start action SuperFly__joydown__75
lda HasYpos_ypos_b0 lda HasYpos_ypos_b0
clc clc
adc #2 adc #2
cmp #220 cmp #220
jcc SuperFly__joydown__33__nomove jcc SuperFly__joydown__77__nomove
;;; start action SuperFly__gosouth__34 ;;; start action SuperFly__gosouth__78
ldy Location_room_b0 ldy Location_room_b0
lda Room_south_b0,y lda Room_south_b0,y
sta Location_room_b0 sta Location_room_b0
;;; end action SuperFly__gosouth__34 ;;; end action SuperFly__gosouth__78
lda #2 lda #2
SuperFly__joydown__33__nomove: SuperFly__joydown__77__nomove:
sta HasYpos_ypos_b0 sta HasYpos_ypos_b0
;;; end action SuperFly__joydown__33 ;;; end action SuperFly__joydown__75
Joystick__postframe__26__SkipMoveDown: Joystick__postframe__56__SkipMoveDown:
asl Joystick__3__tmp+0 asl Joystick__3__tmp+0
bcs Joystick__postframe__26__SkipMoveUp bcs Joystick__postframe__56__SkipMoveUp
;;; start action SuperFly__joyup__35 ;;; start action SuperFly__joyup__81
lda HasYpos_ypos_b0 lda HasYpos_ypos_b0
sec sec
sbc #2 sbc #2
jcs SuperFly__joyup__35__nomove jcs SuperFly__joyup__83__nomove
;;; start action SuperFly__gonorth__36 ;;; start action SuperFly__gonorth__84
ldy Location_room_b0 ldy Location_room_b0
lda Room_north_b0,y lda Room_north_b0,y
sta Location_room_b0 sta Location_room_b0
;;; end action SuperFly__gonorth__36 ;;; end action SuperFly__gonorth__84
lda #200 lda #200
SuperFly__joyup__35__nomove: SuperFly__joyup__83__nomove:
sta HasYpos_ypos_b0 sta HasYpos_ypos_b0
;;; end action SuperFly__joyup__35 ;;; end action SuperFly__joyup__81
Joystick__postframe__26__SkipMoveUp: Joystick__postframe__56__SkipMoveUp:
;;; end action Joystick__postframe__26 ;;; end action Joystick__postframe__54
;;; start action BadMove__postframe__37 ;;; start action BadMove__postframe__87
ldx #0 ldx #0
BadMove__postframe__37____each: BadMove__postframe__88____each:
;;; start action JoyFaceDirection__joyright__38 ;;; start action JoyFaceDirection__joyright__90
lda Sprite_plyrflags_b0+1,x lda Sprite_plyrflags_b0+1,x
and #$f7 and #$f7
sta Sprite_plyrflags_b0+1,x sta Sprite_plyrflags_b0+1,x
;;; end action JoyFaceDirection__joyright__38 ;;; end action JoyFaceDirection__joyright__90
;;; start action SuperFly__joyright__39 ;;; start action SuperFly__joyright__93
lda HasXpos_xpos_b0+1,x lda HasXpos_xpos_b0+1,x
clc clc
adc #1 adc #1
cmp #142 cmp #142
jcc SuperFly__joyright__39__nomove jcc SuperFly__joyright__95__nomove
;;; start action SuperFly__goeast__40 ;;; start action SuperFly__goeast__96
ldy Location_room_b0+1,x ldy Location_room_b0+1,x
lda Room_east_b0,y lda Room_east_b0,y
sta Location_room_b0+1,x sta Location_room_b0+1,x
;;; end action SuperFly__goeast__40 ;;; end action SuperFly__goeast__96
lda #2 lda #2
SuperFly__joyright__39__nomove: SuperFly__joyright__95__nomove:
sta HasXpos_xpos_b0+1,x sta HasXpos_xpos_b0+1,x
;;; end action SuperFly__joyright__39 ;;; end action SuperFly__joyright__93
inx inx
cpx #3 cpx #3
jne BadMove__postframe__37____each jne BadMove__postframe__88____each
BadMove__postframe__37____exit: BadMove__postframe__88____exit:
;;; end action BadMove__postframe__37 ;;; end action BadMove__postframe__87
;;; start action RoomShuffle__postframe__41 ;;; start action RoomShuffle__postframe__99
ldy 4 ldy 4
ldx SpriteSlot_sprite_b0+1 ldx SpriteSlot_sprite_b0+1
bmi RoomShuffle__postframe__41__empty ; empty slot, load 1st entry bmi RoomShuffle__postframe__101__empty ; empty slot, load 1st entry
RoomShuffle__postframe__41__loop: RoomShuffle__postframe__101__loop:
inx inx
cpx 4 cpx 4
bcc RoomShuffle__postframe__41__norecycle bcc RoomShuffle__postframe__101__norecycle
; TODO: need to get index of specific entity ; TODO: need to get index of specific entity
RoomShuffle__postframe__41__empty: RoomShuffle__postframe__101__empty:
ldx #1 ; skip null sprite and super dude? ldx #1 ; skip null sprite and super dude?
RoomShuffle__postframe__41__norecycle: RoomShuffle__postframe__101__norecycle:
lda Location_room_b0,x lda Location_room_b0,x
cmp Location_room_b0 cmp Location_room_b0
beq RoomShuffle__postframe__41__exit beq RoomShuffle__postframe__101__exit
dey dey
bne RoomShuffle__postframe__41__loop bne RoomShuffle__postframe__101__loop
ldx #$ff ldx #$ff
RoomShuffle__postframe__41__exit: RoomShuffle__postframe__101__exit:
stx SpriteSlot_sprite_b0+1 stx SpriteSlot_sprite_b0+1
;;; end action RoomShuffle__postframe__41 ;;; end action RoomShuffle__postframe__99
;;; start action VersatilePlayfield__postframe__42 ;;; start action VersatilePlayfield__postframe__102
lda #0 lda #0
sta PF0 sta PF0
sta PF1 sta PF1
sta PF2 sta PF2
;;; end action VersatilePlayfield__postframe__42 ;;; end action VersatilePlayfield__postframe__102
FRAME_END FRAME_END
jmp FrameLoop__start__2__NextFrame ; loop to next frame jmp FrameLoop__start__4__NextFrame ; loop to next frame
;;; end action FrameLoop__start__2 ;;; end action FrameLoop__start__3
; start main routine ; start main routine
.segment "VECTORS" .segment "VECTORS"
Return: .word $6060 Return: .word $6060

View File

@ -20,11 +20,11 @@ __Reset:
__BRK: __BRK:
CLEAN_START CLEAN_START
;;; start action Demo__start__2 ;;; start action Demo__start__3
jmp Title__Start jmp Title__Start
;;; end action Demo__start__2 ;;; end action Demo__start__3
; start main routine ; start main routine
.segment "VECTORS" .segment "VECTORS"
Return: .word $6060 Return: .word $6060
@ -311,56 +311,56 @@ Bitmap48_height_b0:
.byte 36 .byte 36
__Start: __Start:
;;; start action FrameLoop__start__3 ;;; start action FrameLoop__start__5
FrameLoop__start__3__NextFrame: FrameLoop__start__6__NextFrame:
FRAME_START FRAME_START
;;; start action StaticKernel__preframe__4 ;;; start action StaticKernel__preframe__7
;;; start action Kernel48Pixel__kernelsetup__5 ;;; start action Kernel48Pixel__kernelsetup__10
;;; end action Kernel48Pixel__kernelsetup__5 ;;; end action Kernel48Pixel__kernelsetup__10
;;; start action Kernel48Pixel__kernelsetup__6 ;;; start action Kernel48Pixel__kernelsetup__11
;;; end action Kernel48Pixel__kernelsetup__6 ;;; end action Kernel48Pixel__kernelsetup__11
;;; start action StaticKernel__kernelsetup__7 ;;; start action StaticKernel__kernelsetup__12
lda #160 lda #160
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__7 ;;; end action StaticKernel__kernelsetup__12
;;; start action StaticKernel__kernelsetup__8 ;;; start action StaticKernel__kernelsetup__15
;;; end action StaticKernel__kernelsetup__8 ;;; end action StaticKernel__kernelsetup__15
;;; start action StaticKernel__kernelsetup__9 ;;; start action StaticKernel__kernelsetup__16
;;; end action StaticKernel__kernelsetup__9 ;;; end action StaticKernel__kernelsetup__16
;;; end action StaticKernel__preframe__4 ;;; end action StaticKernel__preframe__7
KERNEL_START KERNEL_START
;;; start action StaticKernel__kernel__10 ;;; start action StaticKernel__kernel__17
ldx #0 ldx #0
StaticKernel__kernel__10____each: StaticKernel__kernel__18____each:
sta WSYNC sta WSYNC
;;; start action Kernel48Pixel__kernelsetup__11 ;;; start action Kernel48Pixel__kernelsetup__20
cpx #2+1 cpx #2+1
jcs Kernel48Pixel__kernelsetup__11____skipxhi jcs Kernel48Pixel__kernelsetup__21____skipxhi
cpx #2 cpx #2
jcc Kernel48Pixel__kernelsetup__11____skipxlo jcc Kernel48Pixel__kernelsetup__21____skipxlo
lda #36 lda #36
sta Kernel48Pixel__2__tmp+0 ; scanline counter sta Kernel48Pixel__2__tmp+0 ; scanline counter
@ -385,117 +385,117 @@ StaticKernel__kernel__10____each:
SLEEPH 24-8 ; sleep 24 cycles SLEEPH 24-8 ; sleep 24 cycles
sta HMCLR ; clear HMOVE registers sta HMCLR ; clear HMOVE registers
Kernel48Pixel__kernelsetup__11____skipxlo: Kernel48Pixel__kernelsetup__21____skipxlo:
Kernel48Pixel__kernelsetup__11____skipxhi: Kernel48Pixel__kernelsetup__21____skipxhi:
;;; end action Kernel48Pixel__kernelsetup__11 ;;; end action Kernel48Pixel__kernelsetup__20
;;; start action Kernel48Pixel__kernelsetup__12 ;;; start action Kernel48Pixel__kernelsetup__23
cpx #2+1 cpx #2+1
jcs Kernel48Pixel__kernelsetup__12____skipxhi jcs Kernel48Pixel__kernelsetup__24____skipxhi
cpx #2 cpx #2
jcc Kernel48Pixel__kernelsetup__12____skipxlo jcc Kernel48Pixel__kernelsetup__24____skipxlo
lda #252 lda #252
sta COLUP0 sta COLUP0
sta COLUP1 sta COLUP1
Kernel48Pixel__kernelsetup__12____skipxlo: Kernel48Pixel__kernelsetup__24____skipxlo:
Kernel48Pixel__kernelsetup__12____skipxhi: Kernel48Pixel__kernelsetup__24____skipxhi:
;;; end action Kernel48Pixel__kernelsetup__12 ;;; end action Kernel48Pixel__kernelsetup__23
;;; start action StaticKernel__kernelsetup__13 ;;; start action StaticKernel__kernelsetup__26
lda BGColor_bgcolor_b0,x lda BGColor_bgcolor_b0,x
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__13 ;;; end action StaticKernel__kernelsetup__26
;;; start action StaticKernel__kernelsetup__14 ;;; start action StaticKernel__kernelsetup__29
cpx #2+1 cpx #2+1
jcs StaticKernel__kernelsetup__14____skipxhi jcs StaticKernel__kernelsetup__30____skipxhi
cpx #2 cpx #2
jcc StaticKernel__kernelsetup__14____skipxlo jcc StaticKernel__kernelsetup__30____skipxlo
lda #252 lda #252
sta COLUPF sta COLUPF
StaticKernel__kernelsetup__14____skipxlo: StaticKernel__kernelsetup__30____skipxlo:
StaticKernel__kernelsetup__14____skipxhi: StaticKernel__kernelsetup__30____skipxhi:
;;; end action StaticKernel__kernelsetup__14 ;;; end action StaticKernel__kernelsetup__29
;;; start action StaticKernel__kernelsetup__15 ;;; start action StaticKernel__kernelsetup__32
;;; end action StaticKernel__kernelsetup__15 ;;; end action StaticKernel__kernelsetup__32
jsr Kernel48Pixel__kerneldraw__16 jsr Kernel48Pixel__kerneldraw__33
;;; start action StaticKernel__kerneldraw__17 ;;; start action StaticKernel__kerneldraw__36
ldy KernelSection_lines_b0,x ldy KernelSection_lines_b0,x
StaticKernel__kerneldraw__17__loop: StaticKernel__kerneldraw__38__loop:
sta WSYNC sta WSYNC
dey dey
bne StaticKernel__kerneldraw__17__loop bne StaticKernel__kerneldraw__38__loop
;;; end action StaticKernel__kerneldraw__17 ;;; end action StaticKernel__kerneldraw__36
inx inx
cpx #5 cpx #5
jne StaticKernel__kernel__10____each jne StaticKernel__kernel__18____each
StaticKernel__kernel__10____exit: StaticKernel__kernel__18____exit:
;;; end action StaticKernel__kernel__10 ;;; end action StaticKernel__kernel__17
KERNEL_END KERNEL_END
;;; start action JoyButton__postframe__18 ;;; start action JoyButton__postframe__39
lda INPT4 ;read button input lda INPT4 ;read button input
bmi JoyButton__postframe__18__NotPressed bmi JoyButton__postframe__41__NotPressed
;;; start action Advance__joybutton__19 ;;; start action Advance__joybutton__42
jmp Title2__Start jmp Title2__Start
;;; end action Advance__joybutton__19 ;;; end action Advance__joybutton__42
JoyButton__postframe__18__NotPressed: JoyButton__postframe__41__NotPressed:
;;; end action JoyButton__postframe__18 ;;; end action JoyButton__postframe__39
FRAME_END FRAME_END
jmp FrameLoop__start__3__NextFrame ; loop to next frame jmp FrameLoop__start__6__NextFrame ; loop to next frame
;;; end action FrameLoop__start__3 ;;; end action FrameLoop__start__5
.rodata .rodata
__ALIGNORIGIN: __ALIGNORIGIN:
.rodata .rodata
Kernel48Pixel__kerneldraw__16: Kernel48Pixel__kerneldraw__33:
cpx #2+1 cpx #2+1
jcs Kernel48Pixel__kerneldraw__16____skipxhi jcs Kernel48Pixel__kerneldraw__34____skipxhi
cpx #2 cpx #2
jcc Kernel48Pixel__kerneldraw__16____skipxlo jcc Kernel48Pixel__kerneldraw__34____skipxlo
txa txa
pha pha
Kernel48Pixel__kerneldraw__16__Loop: Kernel48Pixel__kerneldraw__35__Loop:
ldy Kernel48Pixel__2__tmp+0 ; counts backwards ldy Kernel48Pixel__2__tmp+0 ; counts backwards
sta WSYNC ; sync to next scanline sta WSYNC ; sync to next scanline
lda Bitmap48_bitmap0_e3_b0,y ; load B0 (1st sprite byte) lda Bitmap48_bitmap0_e3_b0,y ; load B0 (1st sprite byte)
@ -514,19 +514,19 @@ Kernel48Pixel__kerneldraw__16__Loop:
sty GRP1 ; B5 -> [GRP1]; B4 -> GRP0 sty GRP1 ; B5 -> [GRP1]; B4 -> GRP0
sta GRP0 ; ?? -> [GRP0]; B5 -> GRP1 sta GRP0 ; ?? -> [GRP0]; B5 -> GRP1
dec Kernel48Pixel__2__tmp+0 ; go to next line dec Kernel48Pixel__2__tmp+0 ; go to next line
bpl Kernel48Pixel__kerneldraw__16__Loop ; repeat until < 0 bpl Kernel48Pixel__kerneldraw__35__Loop ; repeat until < 0
pla pla
tax tax
Kernel48Pixel__kerneldraw__16____skipxlo: Kernel48Pixel__kerneldraw__34____skipxlo:
Kernel48Pixel__kerneldraw__16____skipxhi: Kernel48Pixel__kerneldraw__34____skipxhi:
rts rts
.assert >(Kernel48Pixel__kerneldraw__16) = >(*), error, "Kernel48Pixel__kerneldraw__16 crosses a page boundary!" .assert >(Kernel48Pixel__kerneldraw__33) = >(*), error, "Kernel48Pixel__kerneldraw__33 crosses a page boundary!"
.assert (* - Kernel48Pixel__kerneldraw__16) <= 63, error, .sprintf("Kernel48Pixel__kerneldraw__16 does not fit in 63 bytes, it took %d!", (* - Kernel48Pixel__kerneldraw__16)) .assert (* - Kernel48Pixel__kerneldraw__33) <= 63, error, .sprintf("Kernel48Pixel__kerneldraw__33 does not fit in 63 bytes, it took %d!", (* - Kernel48Pixel__kerneldraw__33))
.endscope .endscope
Title__Start = Title::__Start Title__Start = Title::__Start
.scope Title2 .scope Title2
@ -861,56 +861,56 @@ __Start:
dey dey
bne :- bne :-
;;; start action FrameLoop__start__20 ;;; start action FrameLoop__start__44
FrameLoop__start__20__NextFrame: FrameLoop__start__45__NextFrame:
FRAME_START FRAME_START
;;; start action StaticKernel__preframe__21 ;;; start action StaticKernel__preframe__46
;;; start action Kernel48Pixel__kernelsetup__22 ;;; start action Kernel48Pixel__kernelsetup__49
;;; end action Kernel48Pixel__kernelsetup__22 ;;; end action Kernel48Pixel__kernelsetup__49
;;; start action Kernel48Pixel__kernelsetup__23 ;;; start action Kernel48Pixel__kernelsetup__50
;;; end action Kernel48Pixel__kernelsetup__23 ;;; end action Kernel48Pixel__kernelsetup__50
;;; start action StaticKernel__kernelsetup__24 ;;; start action StaticKernel__kernelsetup__51
lda BGColor_bgcolor_b0 lda BGColor_bgcolor_b0
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__24 ;;; end action StaticKernel__kernelsetup__51
;;; start action StaticKernel__kernelsetup__25 ;;; start action StaticKernel__kernelsetup__54
;;; end action StaticKernel__kernelsetup__25 ;;; end action StaticKernel__kernelsetup__54
;;; start action StaticKernel__kernelsetup__26 ;;; start action StaticKernel__kernelsetup__55
;;; end action StaticKernel__kernelsetup__26 ;;; end action StaticKernel__kernelsetup__55
;;; end action StaticKernel__preframe__21 ;;; end action StaticKernel__preframe__46
KERNEL_START KERNEL_START
;;; start action StaticKernel__kernel__27 ;;; start action StaticKernel__kernel__56
ldx #0 ldx #0
StaticKernel__kernel__27____each: StaticKernel__kernel__57____each:
sta WSYNC sta WSYNC
;;; start action Kernel48Pixel__kernelsetup__28 ;;; start action Kernel48Pixel__kernelsetup__59
cpx #2+1 cpx #2+1
jcs Kernel48Pixel__kernelsetup__28____skipxhi jcs Kernel48Pixel__kernelsetup__60____skipxhi
cpx #2 cpx #2
jcc Kernel48Pixel__kernelsetup__28____skipxlo jcc Kernel48Pixel__kernelsetup__60____skipxlo
lda #43 lda #43
sta Kernel48Pixel__2__tmp+0 ; scanline counter sta Kernel48Pixel__2__tmp+0 ; scanline counter
@ -935,84 +935,84 @@ StaticKernel__kernel__27____each:
SLEEPH 24-8 ; sleep 24 cycles SLEEPH 24-8 ; sleep 24 cycles
sta HMCLR ; clear HMOVE registers sta HMCLR ; clear HMOVE registers
Kernel48Pixel__kernelsetup__28____skipxlo: Kernel48Pixel__kernelsetup__60____skipxlo:
Kernel48Pixel__kernelsetup__28____skipxhi: Kernel48Pixel__kernelsetup__60____skipxhi:
;;; end action Kernel48Pixel__kernelsetup__28 ;;; end action Kernel48Pixel__kernelsetup__59
;;; start action Kernel48Pixel__kernelsetup__29 ;;; start action Kernel48Pixel__kernelsetup__62
cpx #2+1 cpx #2+1
jcs Kernel48Pixel__kernelsetup__29____skipxhi jcs Kernel48Pixel__kernelsetup__63____skipxhi
cpx #2 cpx #2
jcc Kernel48Pixel__kernelsetup__29____skipxlo jcc Kernel48Pixel__kernelsetup__63____skipxlo
lda PFColor_pfcolor_b0 lda PFColor_pfcolor_b0
sta COLUP0 sta COLUP0
sta COLUP1 sta COLUP1
Kernel48Pixel__kernelsetup__29____skipxlo: Kernel48Pixel__kernelsetup__63____skipxlo:
Kernel48Pixel__kernelsetup__29____skipxhi: Kernel48Pixel__kernelsetup__63____skipxhi:
;;; end action Kernel48Pixel__kernelsetup__29 ;;; end action Kernel48Pixel__kernelsetup__62
;;; start action StaticKernel__kernelsetup__30 ;;; start action StaticKernel__kernelsetup__65
lda BGColor_bgcolor_b0,x lda BGColor_bgcolor_b0,x
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__30 ;;; end action StaticKernel__kernelsetup__65
;;; start action StaticKernel__kernelsetup__31 ;;; start action StaticKernel__kernelsetup__68
cpx #2+1 cpx #2+1
jcs StaticKernel__kernelsetup__31____skipxhi jcs StaticKernel__kernelsetup__69____skipxhi
cpx #2 cpx #2
jcc StaticKernel__kernelsetup__31____skipxlo jcc StaticKernel__kernelsetup__69____skipxlo
lda PFColor_pfcolor_b0 lda PFColor_pfcolor_b0
sta COLUPF sta COLUPF
StaticKernel__kernelsetup__31____skipxlo: StaticKernel__kernelsetup__69____skipxlo:
StaticKernel__kernelsetup__31____skipxhi: StaticKernel__kernelsetup__69____skipxhi:
;;; end action StaticKernel__kernelsetup__31 ;;; end action StaticKernel__kernelsetup__68
;;; start action StaticKernel__kernelsetup__32 ;;; start action StaticKernel__kernelsetup__71
;;; end action StaticKernel__kernelsetup__32 ;;; end action StaticKernel__kernelsetup__71
jsr Kernel48Pixel__kerneldraw__33 jsr Kernel48Pixel__kerneldraw__72
;;; start action StaticKernel__kerneldraw__34 ;;; start action StaticKernel__kerneldraw__75
ldy KernelSection_lines_b0,x ldy KernelSection_lines_b0,x
StaticKernel__kerneldraw__34__loop: StaticKernel__kerneldraw__77__loop:
sta WSYNC sta WSYNC
dey dey
bne StaticKernel__kerneldraw__34__loop bne StaticKernel__kerneldraw__77__loop
;;; end action StaticKernel__kerneldraw__34 ;;; end action StaticKernel__kerneldraw__75
inx inx
cpx #5 cpx #5
jne StaticKernel__kernel__27____each jne StaticKernel__kernel__57____each
StaticKernel__kernel__27____exit: StaticKernel__kernel__57____exit:
;;; end action StaticKernel__kernel__27 ;;; end action StaticKernel__kernel__56
KERNEL_END KERNEL_END
;;; start action Colors__postframe__35 ;;; start action Colors__postframe__78
inc PFColor_pfcolor_b0 inc PFColor_pfcolor_b0
bne :+ bne :+
@ -1020,27 +1020,27 @@ StaticKernel__kernel__27____exit:
inc BGColor_bgcolor_b0+2 inc BGColor_bgcolor_b0+2
: :
;;; end action Colors__postframe__35 ;;; end action Colors__postframe__78
FRAME_END FRAME_END
jmp FrameLoop__start__20__NextFrame ; loop to next frame jmp FrameLoop__start__45__NextFrame ; loop to next frame
;;; end action FrameLoop__start__20 ;;; end action FrameLoop__start__44
.rodata .rodata
__ALIGNORIGIN: __ALIGNORIGIN:
.rodata .rodata
Kernel48Pixel__kerneldraw__33: Kernel48Pixel__kerneldraw__72:
cpx #2+1 cpx #2+1
jcs Kernel48Pixel__kerneldraw__33____skipxhi jcs Kernel48Pixel__kerneldraw__73____skipxhi
cpx #2 cpx #2
jcc Kernel48Pixel__kerneldraw__33____skipxlo jcc Kernel48Pixel__kerneldraw__73____skipxlo
txa txa
pha pha
Kernel48Pixel__kerneldraw__33__Loop: Kernel48Pixel__kerneldraw__74__Loop:
ldy Kernel48Pixel__2__tmp+0 ; counts backwards ldy Kernel48Pixel__2__tmp+0 ; counts backwards
sta WSYNC ; sync to next scanline sta WSYNC ; sync to next scanline
lda Bitmap48_bitmap0_e2_b0,y ; load B0 (1st sprite byte) lda Bitmap48_bitmap0_e2_b0,y ; load B0 (1st sprite byte)
@ -1059,19 +1059,19 @@ Kernel48Pixel__kerneldraw__33__Loop:
sty GRP1 ; B5 -> [GRP1]; B4 -> GRP0 sty GRP1 ; B5 -> [GRP1]; B4 -> GRP0
sta GRP0 ; ?? -> [GRP0]; B5 -> GRP1 sta GRP0 ; ?? -> [GRP0]; B5 -> GRP1
dec Kernel48Pixel__2__tmp+0 ; go to next line dec Kernel48Pixel__2__tmp+0 ; go to next line
bpl Kernel48Pixel__kerneldraw__33__Loop ; repeat until < 0 bpl Kernel48Pixel__kerneldraw__74__Loop ; repeat until < 0
pla pla
tax tax
Kernel48Pixel__kerneldraw__33____skipxlo: Kernel48Pixel__kerneldraw__73____skipxlo:
Kernel48Pixel__kerneldraw__33____skipxhi: Kernel48Pixel__kerneldraw__73____skipxhi:
rts rts
.assert >(Kernel48Pixel__kerneldraw__33) = >(*), error, "Kernel48Pixel__kerneldraw__33 crosses a page boundary!" .assert >(Kernel48Pixel__kerneldraw__72) = >(*), error, "Kernel48Pixel__kerneldraw__72 crosses a page boundary!"
.assert (* - Kernel48Pixel__kerneldraw__33) <= 63, error, .sprintf("Kernel48Pixel__kerneldraw__33 does not fit in 63 bytes, it took %d!", (* - Kernel48Pixel__kerneldraw__33)) .assert (* - Kernel48Pixel__kerneldraw__72) <= 63, error, .sprintf("Kernel48Pixel__kerneldraw__72 does not fit in 63 bytes, it took %d!", (* - Kernel48Pixel__kerneldraw__72))
.endscope .endscope
Title2__Start = Title2::__Start Title2__Start = Title2::__Start
.endscope .endscope

View File

@ -68,69 +68,69 @@ __BRK:
dey dey
bne :- bne :-
;;; start action FrameLoop__start__2 ;;; start action FrameLoop__start__3
FrameLoop__start__2__NextFrame: FrameLoop__start__4__NextFrame:
FRAME_START FRAME_START
;;; start action StaticKernel__preframe__3 ;;; start action StaticKernel__preframe__5
;;; start action StaticKernel__kernelsetup__4 ;;; start action StaticKernel__kernelsetup__8
lda #24 lda #24
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__4 ;;; end action StaticKernel__kernelsetup__8
;;; start action StaticKernel__kernelsetup__5 ;;; start action StaticKernel__kernelsetup__11
;;; end action StaticKernel__kernelsetup__5 ;;; end action StaticKernel__kernelsetup__11
;;; start action StaticKernel__kernelsetup__6 ;;; start action StaticKernel__kernelsetup__12
;;; end action StaticKernel__kernelsetup__6 ;;; end action StaticKernel__kernelsetup__12
;;; end action StaticKernel__preframe__3 ;;; end action StaticKernel__preframe__5
KERNEL_START KERNEL_START
;;; start action StaticKernel__kernel__7 ;;; start action StaticKernel__kernel__13
ldx #0 ldx #0
StaticKernel__kernel__7____each: StaticKernel__kernel__14____each:
sta WSYNC sta WSYNC
;;; start action StaticKernel__kernelsetup__8 ;;; start action StaticKernel__kernelsetup__16
lda BGColor_bgcolor_b0,x lda BGColor_bgcolor_b0,x
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__8 ;;; end action StaticKernel__kernelsetup__16
;;; start action StaticKernel__kernelsetup__9 ;;; start action StaticKernel__kernelsetup__19
cpx #5+2 cpx #5+2
jcs StaticKernel__kernelsetup__9____skipxhi jcs StaticKernel__kernelsetup__20____skipxhi
cpx #5 cpx #5
jcc StaticKernel__kernelsetup__9____skipxlo jcc StaticKernel__kernelsetup__20____skipxlo
lda PFColor_pfcolor_b0-5,x lda PFColor_pfcolor_b0-5,x
sta COLUPF sta COLUPF
StaticKernel__kernelsetup__9____skipxlo: StaticKernel__kernelsetup__20____skipxlo:
StaticKernel__kernelsetup__9____skipxhi: StaticKernel__kernelsetup__20____skipxhi:
;;; end action StaticKernel__kernelsetup__9 ;;; end action StaticKernel__kernelsetup__19
;;; start action StaticKernel__kernelsetup__10 ;;; start action StaticKernel__kernelsetup__22
cpx #4 cpx #4
jcc StaticKernel__kernelsetup__10____skipxlo jcc StaticKernel__kernelsetup__23____skipxlo
lda Playfield_pf_b0-4,x lda Playfield_pf_b0-4,x
sta PF0 sta PF0
@ -139,63 +139,63 @@ StaticKernel__kernelsetup__9____skipxhi:
lda Playfield_pf_b16-4,x lda Playfield_pf_b16-4,x
sta PF2 sta PF2
StaticKernel__kernelsetup__10____skipxlo: StaticKernel__kernelsetup__23____skipxlo:
;;; end action StaticKernel__kernelsetup__10 ;;; end action StaticKernel__kernelsetup__22
ldy KernelSection_lines_b0,x ldy KernelSection_lines_b0,x
StaticKernel__kernel__7__loop: StaticKernel__kernel__15__loop:
sta WSYNC sta WSYNC
dey dey
bne StaticKernel__kernel__7__loop bne StaticKernel__kernel__15__loop
inx inx
cpx #8 cpx #8
jne StaticKernel__kernel__7____each jne StaticKernel__kernel__14____each
StaticKernel__kernel__7____exit: StaticKernel__kernel__14____exit:
;;; end action StaticKernel__kernel__7 ;;; end action StaticKernel__kernel__13
KERNEL_END KERNEL_END
;;; start action JoyButton__postframe__11 ;;; start action JoyButton__postframe__25
lda INPT4 ;read button input lda INPT4 ;read button input
bmi JoyButton__postframe__11__NotPressed bmi JoyButton__postframe__27__NotPressed
;;; start action Local__joybutton__12 ;;; start action Local__joybutton__28
inc Local__6__tmp+0 inc Local__6__tmp+0
inc PFColor_pfcolor_b0 inc PFColor_pfcolor_b0
;;; end action Local__joybutton__12 ;;; end action Local__joybutton__28
JoyButton__postframe__11__NotPressed: JoyButton__postframe__27__NotPressed:
;;; end action JoyButton__postframe__11 ;;; end action JoyButton__postframe__25
FRAME_END FRAME_END
;;; start action ResetSwitch__nextframe__13 ;;; start action ResetSwitch__nextframe__31
lsr SWCHB ; test Game Reset switch lsr SWCHB ; test Game Reset switch
bcs ResetSwitch__nextframe__13__NoStart bcs ResetSwitch__nextframe__32__NoStart
;;; start action ResetConsole__resetswitch__14 ;;; start action ResetConsole__resetswitch__33
jmp Main::__Reset ; jump to Reset handler jmp Main::__Reset ; jump to Reset handler
;;; end action ResetConsole__resetswitch__14 ;;; end action ResetConsole__resetswitch__33
ResetSwitch__nextframe__13__NoStart: ResetSwitch__nextframe__32__NoStart:
;;; end action ResetSwitch__nextframe__13 ;;; end action ResetSwitch__nextframe__31
jmp FrameLoop__start__2__NextFrame ; loop to next frame jmp FrameLoop__start__4__NextFrame ; loop to next frame
;;; end action FrameLoop__start__2 ;;; end action FrameLoop__start__3
; start main routine ; start main routine
.segment "VECTORS" .segment "VECTORS"
Return: .word $6060 Return: .word $6060

View File

@ -70,69 +70,69 @@ __BRK:
dey dey
bne :- bne :-
;;; start action FrameLoop__start__2 ;;; start action FrameLoop__start__3
FrameLoop__start__2__NextFrame: FrameLoop__start__4__NextFrame:
FRAME_START FRAME_START
;;; start action StaticKernel__preframe__3 ;;; start action StaticKernel__preframe__5
;;; start action StaticKernel__kernelsetup__4 ;;; start action StaticKernel__kernelsetup__8
lda #24 lda #24
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__4 ;;; end action StaticKernel__kernelsetup__8
;;; start action StaticKernel__kernelsetup__5 ;;; start action StaticKernel__kernelsetup__11
;;; end action StaticKernel__kernelsetup__5 ;;; end action StaticKernel__kernelsetup__11
;;; start action StaticKernel__kernelsetup__6 ;;; start action StaticKernel__kernelsetup__12
;;; end action StaticKernel__kernelsetup__6 ;;; end action StaticKernel__kernelsetup__12
;;; end action StaticKernel__preframe__3 ;;; end action StaticKernel__preframe__5
KERNEL_START KERNEL_START
;;; start action StaticKernel__kernel__7 ;;; start action StaticKernel__kernel__13
ldx #0 ldx #0
StaticKernel__kernel__7____each: StaticKernel__kernel__14____each:
sta WSYNC sta WSYNC
;;; start action StaticKernel__kernelsetup__8 ;;; start action StaticKernel__kernelsetup__16
lda BGColor_bgcolor_b0,x lda BGColor_bgcolor_b0,x
sta COLUBK sta COLUBK
;;; end action StaticKernel__kernelsetup__8 ;;; end action StaticKernel__kernelsetup__16
;;; start action StaticKernel__kernelsetup__9 ;;; start action StaticKernel__kernelsetup__19
cpx #5+2 cpx #5+2
jcs StaticKernel__kernelsetup__9____skipxhi jcs StaticKernel__kernelsetup__20____skipxhi
cpx #5 cpx #5
jcc StaticKernel__kernelsetup__9____skipxlo jcc StaticKernel__kernelsetup__20____skipxlo
lda PFColor_pfcolor_b0-5,x lda PFColor_pfcolor_b0-5,x
sta COLUPF sta COLUPF
StaticKernel__kernelsetup__9____skipxlo: StaticKernel__kernelsetup__20____skipxlo:
StaticKernel__kernelsetup__9____skipxhi: StaticKernel__kernelsetup__20____skipxhi:
;;; end action StaticKernel__kernelsetup__9 ;;; end action StaticKernel__kernelsetup__19
;;; start action StaticKernel__kernelsetup__10 ;;; start action StaticKernel__kernelsetup__22
cpx #4 cpx #4
jcc StaticKernel__kernelsetup__10____skipxlo jcc StaticKernel__kernelsetup__23____skipxlo
lda Playfield_pf_b0-4,x lda Playfield_pf_b0-4,x
sta PF0 sta PF0
@ -141,69 +141,69 @@ StaticKernel__kernelsetup__9____skipxhi:
lda Playfield_pf_b16-4,x lda Playfield_pf_b16-4,x
sta PF2 sta PF2
StaticKernel__kernelsetup__10____skipxlo: StaticKernel__kernelsetup__23____skipxlo:
;;; end action StaticKernel__kernelsetup__10 ;;; end action StaticKernel__kernelsetup__22
;;; start action StaticKernel__kerneldraw__11 ;;; start action StaticKernel__kerneldraw__25
ldy KernelSection_lines_b0,x ldy KernelSection_lines_b0,x
StaticKernel__kerneldraw__11__loop: StaticKernel__kerneldraw__27__loop:
sta WSYNC sta WSYNC
dey dey
bne StaticKernel__kerneldraw__11__loop bne StaticKernel__kerneldraw__27__loop
;;; end action StaticKernel__kerneldraw__11 ;;; end action StaticKernel__kerneldraw__25
inx inx
cpx #8 cpx #8
jne StaticKernel__kernel__7____each jne StaticKernel__kernel__14____each
StaticKernel__kernel__7____exit: StaticKernel__kernel__14____exit:
;;; end action StaticKernel__kernel__7 ;;; end action StaticKernel__kernel__13
KERNEL_END KERNEL_END
;;; start action JoyButton__postframe__12 ;;; start action JoyButton__postframe__28
lda INPT4 ;read button input lda INPT4 ;read button input
bmi JoyButton__postframe__12__NotPressed bmi JoyButton__postframe__30__NotPressed
;;; start action Local__joybutton__13 ;;; start action Local__joybutton__31
inc Local__6__tmp+0 inc Local__6__tmp+0
inc PFColor_pfcolor_b0 inc PFColor_pfcolor_b0
;;; end action Local__joybutton__13 ;;; end action Local__joybutton__31
JoyButton__postframe__12__NotPressed: JoyButton__postframe__30__NotPressed:
;;; end action JoyButton__postframe__12 ;;; end action JoyButton__postframe__28
FRAME_END FRAME_END
;;; start action ResetSwitch__nextframe__14 ;;; start action ResetSwitch__nextframe__34
lsr SWCHB ; test Game Reset switch lsr SWCHB ; test Game Reset switch
bcs ResetSwitch__nextframe__14__NoStart bcs ResetSwitch__nextframe__35__NoStart
;;; start action ResetConsole__resetswitch__15 ;;; start action ResetConsole__resetswitch__36
jmp Main::__Reset ; jump to Reset handler jmp Main::__Reset ; jump to Reset handler
;;; end action ResetConsole__resetswitch__15 ;;; end action ResetConsole__resetswitch__36
ResetSwitch__nextframe__14__NoStart: ResetSwitch__nextframe__35__NoStart:
;;; end action ResetSwitch__nextframe__14 ;;; end action ResetSwitch__nextframe__34
jmp FrameLoop__start__2__NextFrame ; loop to next frame jmp FrameLoop__start__4__NextFrame ; loop to next frame
;;; end action FrameLoop__start__2 ;;; end action FrameLoop__start__3
; start main routine ; start main routine
.segment "VECTORS" .segment "VECTORS"
Return: .word $6060 Return: .word $6060