Compression now fully working. Also, changed core to be a .system file, so we don't need BASIC.SYSTEM any more.

This commit is contained in:
Martin Haye 2014-03-18 13:29:02 -07:00
parent b8d146ca73
commit f6a6e844bb
6 changed files with 39 additions and 13 deletions

View File

@ -640,12 +640,7 @@ class PackPartitions
{
// Make a list of all the chunks that will be in the partition
def chunks = []
code.values().each {
debugCompression = (it.num == 1)
println "Code #${it.num} debug=$debugCompression."
chunks.add([type:TYPE_CODE, num:it.num, buf:compress(it.buf)])
debugCompression = false
}
code.values().each { chunks.add([type:TYPE_CODE, num:it.num, buf:compress(it.buf)]) }
fonts.values().each { chunks.add([type:TYPE_FONT, num:it.num, buf:compress(it.buf)]) }
frames.values().each { chunks.add([type:TYPE_FRAME_IMG, num:it.num, buf:compress(it.buf)]) }
maps2D.values().each { chunks.add([type:TYPE_2D_MAP, num:it.num, buf:compress(it.buf)]) }

View File

@ -45,7 +45,7 @@
<delete failonerror="false" dir="${build.dir}/root"/>
<mkdir dir="${build.dir}/root"/>
<copy todir="${build.dir}/root">
<fileset dir="${src.dir}/core/build" includes="*.bin*"/>
<fileset dir="${src.dir}/core/build" includes="*.sys*"/>
<fileset dir="./build" includes="game.part*.bin"/>
</copy>
<mkdir dir="${build.dir}/root/"/>

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.bin#800"/>
<arg value="${build.dir}/core.system.sys#2000"/>
<arg line="${ASM_SETTINGS}"/>
<srcfile/>
</apply>

View File

@ -44,9 +44,34 @@ prodosMemMap = $BF58
;------------------------------------------------------------------------------
; Initial vectors - these have to start at $800
jmp init
codeBegin:
clc
bcc locationCheck
jmp main_dispatch
jmp aux_dispatch
locationCheck:
jsr monrts
tsx
lda $100,x
cmp #>*
bne +
jmp init
+ sta pSrc+1
lda #>*
sta pDst+1
ldy #0
sty pSrc
sty pDst
ldx #>(tableEnd-codeBegin+$100)
- lda (pSrc),y
sta (pDst),y
iny
bne -
inc pSrc+1
inc pDst+1
dex
bne -
jmp codeBegin
;------------------------------------------------------------------------------
; Variables
@ -317,6 +342,9 @@ fatalError: !zone
;------------------------------------------------------------------------------
init: !zone
; put something interesting on the screen :)
jsr home
+prStr : !text "Welcome to Lawless Legends.",0
; close all files
lda #0
jsr closeFile

View File

@ -77,6 +77,7 @@ clsApple = $C062
; ROM routines
prntax = $F941
textinit= $FB2F
home = $FC58
rdkey = $FD0C
getln1 = $FD6F
crout = $FD8E
@ -89,6 +90,7 @@ prerr = $FF2D
bell = $FF3A
iosave = $FF4A
iorest = $FF3F
monrts = $FF58
monitor = $FF69
getnum = $FFA7

View File

@ -27,8 +27,7 @@ pDst = $8 ; len 2
pTex = $A ; len 2
pixNum = $C ; len 1
byteNum = $D ; len 1
mapWidth = $12 ; len 1
mapHeight = $13 ; len 1
unused0E = $E ; len 6
pRayData = $14 ; len 2
txNum = $16 ; len 1
txColumn = $17 ; len 1
@ -56,6 +55,8 @@ screenCol = $60 ; len 1
playerDir = $61 ; len 1
playerX = $62 ; len 2 (hi=integer, lo=fraction)
playerY = $64 ; len 2 (hi=integer, lo=fraction)
mapWidth = $66 ; len 1
mapHeight = $67 ; len 1
;---------------------------------
; The following are in aux mem...
@ -72,8 +73,8 @@ decodeTo23b = $AA00
decodeTo45 = $AB00
decodeTo56 = $AC00
decodeTo57 = $AD00
clrBlitRollE = $AE00 ; size 3*(128/2) = $C0, plus 2 for tya and rts
clrBlitRollO = $AEC2 ; size 3*(128/2) = $C0, plus 2 for tya and rts
clrBlitRollE = $AE00 ; size 3*(128/2) = $C0, plus 2 for tya and rts
clrBlitRollO = $AEC2 ; size 3*(128/2) = $C0, plus 2 for tya and rts
texAddrLo = $AF84
texAddrHi = texAddrLo + MAX_TEXTURES
blitRoll = $B000 ; Unrolled blitting code. Size 29*128 = $E80, plus 1 for rts