Getting Plasma running in the game.

This commit is contained in:
Martin Haye 2014-06-25 06:37:10 -07:00
parent e98b96cf57
commit 10f9d8640b
7 changed files with 1681 additions and 2 deletions

7
.gitignore vendored
View File

@ -17,3 +17,10 @@
/Platform/Apple/virtual/src/include/build.props
/Platform/Apple/tools/A2Copy/build/
/Platform/Apple/tools/PackPartitions/build/
# Ignore object and asm files produced by PLASMA
*.o
*.a
PLASMA/src/plasm
PLASMA/src/plvm
PLASMA/src/*#*

View File

@ -17,8 +17,10 @@
<target name="clean">
<delete failonerror="false" dir="${build.dir}"/>
<ant dir="${src.dir}/raycast" target="clean" useNativeBasedir="true" inheritAll="false"/>
<ant dir="${src.dir}/core" target="clean" useNativeBasedir="true" inheritAll="false"/>
<ant dir="${src.dir}/plasma" target="clean" useNativeBasedir="true" inheritAll="false"/>
<ant dir="${src.dir}/raycast" target="clean" useNativeBasedir="true" inheritAll="false"/>
<ant dir="${src.dir}/font" target="clean" useNativeBasedir="true" inheritAll="false"/>
</target>
<target name="build">
@ -29,6 +31,8 @@
<!-- Build sub-projects -->
<echo>Building core.</echo>
<ant dir="${src.dir}/core" target="build" useNativeBasedir="true" inheritAll="false"/>
<echo>Building PLASMA.</echo>
<ant dir="${src.dir}/plasma" target="build" useNativeBasedir="true" inheritAll="false"/>
<echo>Building raycast.</echo>
<ant dir="${src.dir}/raycast" target="build" useNativeBasedir="true" inheritAll="false"/>
<echo>Building font engine.</echo>
@ -45,6 +49,7 @@
<delete failonerror="false" dir="${build.dir}/root"/>
<mkdir dir="${build.dir}/root"/>
<copy todir="${build.dir}/root">
<fileset dir="${src.dir}/plasma/build" includes="*.sys*"/>
<fileset dir="${src.dir}/core/build" includes="*.sys*"/>
<fileset dir="./build" includes="game.part*.bin"/>
</copy>

View File

@ -32,7 +32,7 @@
relative="true" parallel="false" failonerror="true" verbose="true">
<fileset dir="${src.dir}" includes="*.s"/>
<arg value="-o"/>
<arg value="${build.dir}/core.system.sys#2000"/>
<arg value="${build.dir}/cmd.sys#2000"/>
<arg line="${ASM_SETTINGS}"/>
<srcfile/>
</apply>

View File

@ -0,0 +1,42 @@
<?xml version="1.0"?>
<project name="plasma" default="build">
<property name="projName" value="plasma"/> <!-- base part of output bin name -->
<property name="src.dir" location="."/>
<property name="include.dir" location="../include"/>
<property file="${include.dir}/build.props"/> <!-- needs to define ACME_BIN_DIR -->
<property name="build.dir" value="${src.dir}/build"/>
<property name="ACME_TOOL" location="${ACME_BIN_DIR}/acme"/>
<property name="ASM_SETTINGS" value="-f plain"/>
<target name="all">
<antcall target="clean"/>
<antcall target="build"/>
</target>
<target name="clean">
<delete failonerror="false" dir="${build.dir}"/>
</target>
<target name="build">
<!-- Create build directory -->
<mkdir dir="${build.dir}"/>
<!-- Assemble all .s files -->
<apply executable="${ACME_TOOL}" dir="${src.dir}"
relative="true" parallel="false" failonerror="true" verbose="true">
<fileset dir="${src.dir}" includes="*.s"/>
<arg value="-o"/>
<arg value="${build.dir}/plvm02.system.sys#2000"/>
<arg line="${ASM_SETTINGS}"/>
<srcfile/>
</apply>
</target>
</project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
;**********************************************************
;*
;* VM ZERO PAGE LOCATIONS
;*
;**********************************************************
SRC = $06
SRCL = SRC
SRCH = SRC+1
DST = SRC+2
DSTL = DST
DSTH = DST+1
ESTKSZ = $20
ESTK = $C0
ESTKL = ESTK
ESTKH = ESTK+ESTKSZ/2
VMZP = ESTK+ESTKSZ
IFP = VMZP
IFPL = IFP
IFPH = IFP+1
IP = IFP+2
IPL = IP
IPH = IP+1
IPY = IP+2
TMP = IP+3
TMPL = TMP
TMPH = TMP+1
NPARMS = TMPL
FRMSZ = TMPH
DVSIGN = TMP+2
ESP = TMP+2
DROP = $EF
NEXTOP = $F0
OPIDX = NEXTOP+8
OPPAGE = OPIDX+1