ecs: set up for nes

This commit is contained in:
Steven Hugg 2022-02-21 09:24:03 -06:00
parent 07c0ae2f9c
commit 9351406450
3 changed files with 33 additions and 3 deletions

View File

@ -156,3 +156,31 @@ take up at least one byte if stateful
might need free list
need jump table?
you'd like to change "mode" from any event
need constant folding, set arrays from other exprs
a = [Sprite,-Player]
foreach a do begin
xpos = ypos
end
on gowest do with x:[Location]
---
ldy {{<room}}
lda {{<Room:west}},y
sta {{<room}}
---
on preframe do
with y=[SpriteSlot] limit 2
with x=y.sprite
---
lda {{<xpos}}
{{!SetHorizPos}}
---
on preframe do
foreach x=[Missile,HasXpos]
---
lda {{<xpos}}
ldy {{<index}}
{{!SetHorizPos}}
---

View File

@ -2,7 +2,7 @@ import { ECSCompiler } from "../../common/ecs/compiler";
import { Dialect_CA65, ECSError, EntityManager } from "../../common/ecs/ecs";
import { CompileError } from "../../common/tokenizer";
import { CodeListingMap } from "../../common/workertypes";
import { BuildStep, BuildStepResult, gatherFiles, getWorkFileAsString, putWorkFile, staleFiles } from "../workermain";
import { BuildStep, BuildStepResult, fixParamsWithDefines, gatherFiles, getWorkFileAsString, putWorkFile, staleFiles } from "../workermain";
export function assembleECS(step: BuildStep): BuildStepResult {
let em = new EntityManager(new Dialect_CA65()); // TODO
@ -15,6 +15,7 @@ export function assembleECS(step: BuildStep): BuildStepResult {
var destpath = step.prefix + '.ca65';
if (staleFiles(step, [destpath])) {
let code = getWorkFileAsString(step.path);
fixParamsWithDefines(step.path, step.params);
try {
compiler.debuginfo = true;
compiler.parseFile(code, step.path);
@ -37,7 +38,7 @@ export function assembleECS(step: BuildStep): BuildStepResult {
nexttool: "ca65",
path: destpath,
args: [destpath],
files: [destpath, 'vcs-ca65.h'], //TODO
files: [destpath].concat(step.files),
listings
};
}

View File

@ -1135,7 +1135,8 @@ var TOOL_PRELOADFS = {
'fastbasic': '65-atari8',
'silice': 'Silice',
'wiz': 'wiz',
'ecs': '65-none', // TODO: support multiple platforms
'ecs-vcs': '65-none', // TODO: support multiple platforms
'ecs-nes': '65-nes', // TODO: support multiple platforms
}
//const waitFor = delay => new Promise(resolve => setTimeout(resolve, delay)); // for testing