build system can create different ROMs per platforn
This commit is contained in:
1 parent
212724d8f5
commit
4c60ad1653
10 files changed
+166
-183
No files matched your search
+3
-18
@@ -1,27 +1,12 @@
|
||||
|
||||
# Intermediate compilation files
|
||||
# Compilation related files
|
||||
|
||||
c64/basic/combined.s
|
||||
c64/kernal/combined.s
|
||||
padding
|
||||
temp.s
|
||||
temp.map
|
||||
packed_messages.s
|
||||
|
||||
src/collect_data
|
||||
src/compress_text
|
||||
src/pngprepare
|
||||
src/preprocess
|
||||
ophis.bin
|
||||
c64/basic/OUT.BIN
|
||||
c64/kernal/OUT.BIN
|
||||
|
||||
# Compilation output
|
||||
|
||||
chargen
|
||||
newbasic
|
||||
newkern
|
||||
newc65
|
||||
newrom
|
||||
build/*
|
||||
|
||||
# Various IDE project files, temporary files, etc.
|
||||
|
||||
|
||||
@@ -1,61 +1,165 @@
|
||||
all: Ophis src/collect_data src/preprocess
|
||||
|
||||
# Source files
|
||||
|
||||
SRC_COMMON = $(wildcard c64/aliases/*.s)
|
||||
SRC_BASIC_COMMON = $(SRC_COMMON) $(wildcard c64/basic/*.s)
|
||||
SRC_KERNAL_COMMON = $(SRC_COMMON) $(wildcard c64/kernal/*.s)
|
||||
|
||||
SRC_BASIC_GENERIC = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,platform_generic/*.s)
|
||||
SRC_BASIC_MEGA65 = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,platform_mega65/*.s)
|
||||
SRC_BASIC_ULTIMATE64 = $(SRC_BASIC_COMMON) $(wildcard c64/basic/,platform_ultimate64/*.s)
|
||||
|
||||
SRC_KERNAL_GENERIC = $(SRC_KERNAL_COMMON) $(wildcard c64/kernal/,platform_generic/*.s)
|
||||
SRC_KERNAL_MEGA65 = $(SRC_KERNAL_COMMON) $(wildcard c64/kernal/,platform_mega65/*.s)
|
||||
SRC_KERNAL_ULTIMATE64 = $(SRC_KERNAL_COMMON) $(wildcard c64/kernal/,platform_ultimate64/*.s)
|
||||
|
||||
# Rules - maintainance
|
||||
|
||||
all: build/chargen build/newkern_generic build/newbasic_generic build/newkern_mega65 build/newbasic_mega65 build/newkern_ultimate64 build/newbasic_ultimate64
|
||||
|
||||
clean:
|
||||
@rm -rf build
|
||||
@rm -f temp.s
|
||||
@rm -f temp.map
|
||||
@rm -f c64/basic/packed_messages.s
|
||||
|
||||
.PHONY: prep
|
||||
prep: Ophis build/collect_data build/compress_text build/preprocess build/similarity
|
||||
|
||||
Ophis:
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
src/pngprepare: src/pngprepare.c Makefile
|
||||
$(CC) $(COPT) -I/usr/local/include -L/usr/local/lib -o src/pngprepare src/pngprepare.c -lpng
|
||||
# Rules - tools
|
||||
|
||||
chargen: src/pngprepare assets/8x8font.png
|
||||
src/pngprepare charrom assets/8x8font.png chargen
|
||||
build/pngprepare: src/pngprepare.c Makefile
|
||||
@mkdir -p build
|
||||
$(CC) $(COPT) -I/usr/local/include -L/usr/local/lib -o build/pngprepare src/pngprepare.c -lpng
|
||||
|
||||
src/collect_data: src/collect_data.c Makefile
|
||||
gcc -Wall -o src/collect_data src/collect_data.c
|
||||
build/collect_data: src/collect_data.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -Wall -o build/collect_data src/collect_data.c
|
||||
|
||||
src/preprocess: src/preprocess.c Makefile
|
||||
gcc -g -Wall -o src/preprocess src/preprocess.c
|
||||
build/preprocess: src/preprocess.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -g -Wall -o build/preprocess src/preprocess.c
|
||||
|
||||
src/similarity: src/similarity.c Makefile
|
||||
gcc -g -Wall -o src/similarity src/similarity.c
|
||||
build/similarity: src/similarity.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -g -Wall -o build/similarity src/similarity.c
|
||||
|
||||
src/compress_text: src/compress_text.c Makefile
|
||||
gcc -g -Wall -o src/compress_text src/compress_text.c -lm
|
||||
build/compress_text: src/compress_text.c Makefile
|
||||
@mkdir -p build
|
||||
gcc -g -Wall -o build/compress_text src/compress_text.c -lm
|
||||
|
||||
newrom: c64/kernal/OUT.BIN c64/basic/OUT.BIN
|
||||
cat c64/basic/OUT.BIN c64/kernal/OUT.BIN >newrom
|
||||
# Rules - chargen
|
||||
|
||||
newkern: newrom Makefile
|
||||
dd if=newrom bs=8192 count=1 skip=2 of=newkern
|
||||
build/chargen: build/pngprepare assets/8x8font.png
|
||||
build/pngprepare charrom assets/8x8font.png build/chargen
|
||||
|
||||
newbasic: newrom Makefile
|
||||
dd if=newrom bs=8192 count=1 skip=0 of=newbasic
|
||||
# Rules - platform 'generic'
|
||||
|
||||
newc65: newkern newbasic chargen Makefile
|
||||
dd if=/dev/zero bs=4096 count=10 of=newc65
|
||||
cat newbasic chargen chargen newkern >>newc65
|
||||
dd if=/dev/zero bs=65536 count=1 of=padding
|
||||
cat padding >>newc65
|
||||
build/basic_generic/OUT.BIN: build/preprocess $(SRC_BASIC_GENERIC) c64/basic/packed_messages.s
|
||||
@mkdir -p build/basic_generic
|
||||
@rm -f build/basic_generic/*
|
||||
@for SRC in $(SRC_BASIC_GENERIC); do \
|
||||
ln -s ../../$$SRC build/basic_generic/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/basic_generic -l a000 -h e4d2
|
||||
|
||||
build/kernal_generic/OUT.BIN: build/preprocess $(SRC_KERNAL_GENERIC)
|
||||
@mkdir -p build/kernal_generic
|
||||
@rm -f build/kernal_generic/*
|
||||
@for SRC in $(SRC_KERNAL_GENERIC); do \
|
||||
ln -s ../../$$SRC build/kernal_generic/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/kernal_generic -l e4d3 -h ffff
|
||||
|
||||
c64/basic/packed_messages.s: Makefile src/compress_text
|
||||
src/compress_text > c64/basic/packed_messages.s
|
||||
build/newrom_generic: build/basic_generic/OUT.BIN build/kernal_generic/OUT.BIN
|
||||
cat build/basic_generic/OUT.BIN build/kernal_generic/OUT.BIN > build/newrom_generic
|
||||
|
||||
c64/kernal/OUT.BIN: src/preprocess c64/kernal/*.s
|
||||
src/preprocess -d c64/kernal -l e4d3 -h ffff
|
||||
build/newkern_generic: build/newrom_generic Makefile
|
||||
dd if=build/newrom_generic bs=8192 count=1 skip=2 of=build/newkern_generic
|
||||
|
||||
c64/basic/OUT.BIN: src/preprocess c64/basic/*.s c64/basic/packed_messages.s
|
||||
src/preprocess -d c64/basic -l a000 -h e4d2
|
||||
build/newbasic_generic: build/newrom_generic Makefile
|
||||
dd if=build/newrom_generic bs=8192 count=1 skip=0 of=build/newbasic_generic
|
||||
|
||||
testremote: newkern newbasic
|
||||
x64 -kernal newkern -basic newbasic -remotemonitor
|
||||
# Rules - platform 'Mega 65'
|
||||
|
||||
test: newkern newbasic
|
||||
x64 -kernal newkern -basic newbasic -8 empty.d64
|
||||
build/basic_mega65/OUT.BIN: build/preprocess $(SRC_BASIC_MEGA65) c64/basic/packed_messages.s
|
||||
@mkdir -p build/basic_mega65
|
||||
@rm -f build/basic_mega65/*
|
||||
@for SRC in $(SRC_BASIC_MEGA65); do \
|
||||
ln -s ../../$$SRC build/basic_mega65/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/basic_mega65 -l a000 -h e4d2
|
||||
|
||||
testm65: newc65
|
||||
m65 -b ../mega65-core/bin/mega65r1.bit -k ../mega65-core/bin/KICKUP.M65 -R newc65 -4
|
||||
build/kernal_mega65/OUT.BIN: build/preprocess $(SRC_KERNAL_MEGA65)
|
||||
@mkdir -p build/kernal_mega65
|
||||
@rm -f build/kernal_mega65/*
|
||||
@for SRC in $(SRC_KERNAL_MEGA65); do \
|
||||
ln -s ../../$$SRC build/kernal_mega65/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/kernal_mega65 -l e4d3 -h ffff
|
||||
|
||||
testsimilarity: newkern newbasic src/similarity
|
||||
src/similarity kernal newrom
|
||||
src/similarity basic newrom
|
||||
build/newrom_mega65: build/basic_mega65/OUT.BIN build/kernal_mega65/OUT.BIN
|
||||
cat build/basic_mega65/OUT.BIN build/kernal_mega65/OUT.BIN > build/newrom_mega65
|
||||
|
||||
build/newkern_mega65: build/newrom_mega65 Makefile
|
||||
dd if=build/newrom_mega65 bs=8192 count=1 skip=2 of=build/newkern_mega65
|
||||
|
||||
build/newbasic_mega65: build/newrom_mega65 Makefile
|
||||
dd if=build/newrom_mega65 bs=8192 count=1 skip=0 of=build/newbasic_mega65
|
||||
|
||||
build/newc65: build/newkern_mega65 build/newbasic_mega65 build/chargen Makefile
|
||||
dd if=/dev/zero bs=4096 count=10 of=build/newc65
|
||||
cat build/newbasic_mega65 build/chargen build/chargen build/newkern_mega65 >>build/newc65
|
||||
dd if=/dev/zero bs=65536 count=1 of=build/padding
|
||||
cat build/padding >>build/newc65
|
||||
|
||||
# Rules - platform 'Ultimate 64'
|
||||
|
||||
build/basic_ultimate64/OUT.BIN: build/preprocess $(SRC_BASIC_ULTIMATE64) c64/basic/packed_messages.s
|
||||
@mkdir -p build/basic_ultimate64
|
||||
@rm -f build/basic_ultimate64/*
|
||||
@for SRC in $(SRC_BASIC_ULTIMATE64); do \
|
||||
ln -s ../../$$SRC build/basic_ultimate64/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/basic_ultimate64 -l a000 -h e4d2
|
||||
|
||||
build/kernal_ultimate64/OUT.BIN: build/preprocess $(SRC_KERNAL_ULTIMATE64)
|
||||
@mkdir -p build/kernal_ultimate64
|
||||
@rm -f build/kernal_ultimate64/*
|
||||
@for SRC in $(SRC_KERNAL_ULTIMATE64); do \
|
||||
ln -s ../../$$SRC build/kernal_ultimate64/$$(basename $$SRC); \
|
||||
done
|
||||
build/preprocess -d build/kernal_ultimate64 -l e4d3 -h ffff
|
||||
|
||||
build/newrom_ultimate64: build/basic_ultimate64/OUT.BIN build/kernal_ultimate64/OUT.BIN
|
||||
cat build/basic_ultimate64/OUT.BIN build/kernal_ultimate64/OUT.BIN > build/newrom_ultimate64
|
||||
|
||||
build/newkern_ultimate64: build/newrom_ultimate64 Makefile
|
||||
dd if=build/newrom_ultimate64 bs=8192 count=1 skip=2 of=build/newkern_ultimate64
|
||||
|
||||
build/newbasic_ultimate64: build/newrom_ultimate64 Makefile
|
||||
dd if=build/newrom_ultimate64 bs=8192 count=1 skip=0 of=build/newbasic_ultimate64
|
||||
|
||||
# Rules - misc
|
||||
|
||||
c64/basic/packed_messages.s: Makefile build/compress_text
|
||||
build/compress_text > c64/basic/packed_messages.s
|
||||
|
||||
# Rules - tests
|
||||
|
||||
testremote: build/newkern_generic build/newbasic_generic
|
||||
x64 -kernal build/newkern-generic -basic build/newbasic-generic -remotemonitor
|
||||
|
||||
test: build/newkern_generic build/newbasic_generic
|
||||
x64 -kernal build/newkern_generic -basic build/newbasic_generic -8 empty.d64
|
||||
|
||||
testm65: build/newc65
|
||||
m65 -b ../mega65-core/bin/mega65r1.bit -k ../mega65-core/bin/KICKUP.M65 -R build/newc65 -4
|
||||
|
||||
testsimilarity: build/newrom_generic src/similarity
|
||||
build/similarity kernal build/newrom_generic
|
||||
build/similarity basic build/newrom_generic
|
||||
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
@@ -0,0 +1,10 @@
|
||||
|
||||
;; Registers according to Ultimate 64 Command Interface ddescription,
|
||||
;; https://1541u-documentation.readthedocs.io/en/latest/command%20interface.html
|
||||
|
||||
.alias U64_CONTROL $DF1C ; write
|
||||
.alias U64_STATUS $DF1C ; read
|
||||
.alias U64_COMMAND_DATA $DF1D ; write
|
||||
.alias U64_IDENTIFICATION $DF1D ; read
|
||||
.alias U64_RESPONSE_DATA $DF1E ; read only
|
||||
.alias U64_STATUS_DATA $DF1F ; read only
|
||||
@@ -1,126 +0,0 @@
|
||||
packed_message_chars:
|
||||
.byte $45 ; 'E' = $1 (nybl)
|
||||
.byte $54 ; 'T' = $2 (nybl)
|
||||
.byte $4F ; 'O' = $3 (nybl)
|
||||
.byte $4E ; 'N' = $4 (nybl)
|
||||
.byte $49 ; 'I' = $5 (nybl)
|
||||
.byte $52 ; 'R' = $6 (nybl)
|
||||
.byte $41 ; 'A' = $7 (nybl)
|
||||
.byte $4C ; 'L' = $8 (nybl)
|
||||
.byte $53 ; 'S' = $9 (nybl)
|
||||
.byte $44 ; 'D' = $a (nybl)
|
||||
.byte $46 ; 'F' = $b (nybl)
|
||||
.byte $55 ; 'U' = $c (nybl)
|
||||
.byte $50 ; 'P' = $d (nybl)
|
||||
.byte $4D ; 'M' = $e (nybl)
|
||||
.byte $43 ; 'C' = $F1 / $xF $43
|
||||
.byte $47 ; 'G' = $F2 / $xF $47
|
||||
.byte $59 ; 'Y' = $F3 / $xF $59
|
||||
.byte $56 ; 'V' = $F4 / $xF $56
|
||||
.byte $42 ; 'B' = $F5 / $xF $42
|
||||
.byte $48 ; 'H' = $F6 / $xF $48
|
||||
.byte $58 ; 'X' = $F7 / $xF $58
|
||||
.byte $57 ; 'W' = $F8 / $xF $57
|
||||
.byte $24 ; '$' = $F9 / $xF $24
|
||||
.byte $27 ; ''' = $Fa / $xF $27
|
||||
.byte $0D ; '␍' = $Fb / $xF $0D
|
||||
.byte $51 ; 'Q' = $Fc / $xF $51
|
||||
.byte $2E ; '.' = $Fd / $xF $2E
|
||||
.byte $23 ; '#' = $FE/F + $23
|
||||
.byte $4B ; 'K' = $FE/F + $4B
|
||||
.byte $28 ; '(' = $FE/F + $28
|
||||
.byte $5A ; 'Z' = $FE/F + $5A
|
||||
.byte $2B ; '+' = $FE/F + $2B
|
||||
.byte $2D ; '-' = $FE/F + $2D
|
||||
.byte $2A ; '*' = $FE/F + $2A
|
||||
.byte $2F ; '/' = $FE/F + $2F
|
||||
.byte $5E ; '^' = $FE/F + $5E
|
||||
.byte $3E ; '>' = $FE/F + $3E
|
||||
.byte $3D ; '=' = $FE/F + $3D
|
||||
.byte $3C ; '<' = $FE/F + $3C
|
||||
packed_message_tokens:
|
||||
.byte $00,$01,$02,$ff,$03,$04,$ff,$03
|
||||
.byte $05,$04,$ff,$03,$05,$06,$ff,$07
|
||||
.byte $05,$08,$ff,$05,$09,$03,$ff,$05
|
||||
.byte $0a,$03,$ff,$0b,$0c,$ff,$0d,$07
|
||||
.byte $0e,$ff,$0f,$10,$11,$ff,$12,$ff
|
||||
.byte $13,$10,$14,$ff,$15,$16,$17,$ff
|
||||
.byte $0d,$18,$ff,$19,$ff,$15,$16,$1a
|
||||
.byte $ff,$1b,$1c,$ff,$1d,$1e,$ff,$1f
|
||||
.byte $20,$ff,$21,$22,$23,$ff,$0d,$24
|
||||
.byte $ff,$25,$26,$ff,$27,$00,$28,$ff
|
||||
.byte $03,$17,$ff,$29,$00,$2a,$ff,$2b
|
||||
.byte $2c,$ff,$1b,$2d,$ff,$2e,$ff,$2f
|
||||
.byte $ff,$30,$ff,$31,$ff,$32,$ff,$33
|
||||
.byte $ff,$34,$ff,$35,$36,$ff,$1a,$37
|
||||
.byte $ff
|
||||
.byte $05
|
||||
.byte $38
|
||||
.byte $ff
|
||||
packed_message_words:
|
||||
.byte $23,$30,$e7,$4f,$59,$00,$b5,$81
|
||||
.byte $90,$b5,$81,$00,$3d,$14,$00,$43
|
||||
.byte $20,$b3,$c4,$a0,$a1,$f4,$5f,$43
|
||||
.byte $10,$d6,$19,$14,$20,$54,$dc,$20
|
||||
.byte $3c,$2d,$c2,$00,$e5,$99,$54,$f2
|
||||
.byte $00,$b5,$81,$47,$e1,$00,$58,$81
|
||||
.byte $f2,$78,$00,$4c,$ef,$42,$16,$00
|
||||
.byte $41,$f7,$20,$f8,$52,$f6,$3c,$20
|
||||
.byte $b3,$60,$9f,$59,$42,$7f,$58,$00
|
||||
.byte $61,$2c,$64,$00,$f2,$39,$cf,$42
|
||||
.byte $00,$3c,$20,$3b,$00,$a7,$27,$00
|
||||
.byte $fc,$c7,$42,$52,$f3,$00,$3f,$56
|
||||
.byte $16,$b8,$3f,$57,$00,$e1,$e3,$6f
|
||||
.byte $59,$00,$c4,$a1,$bf,$27,$a0,$92
|
||||
.byte $72,$1e,$14,$20,$f5,$7a,$00,$9c
|
||||
.byte $f5,$9f,$43,$65,$d2,$00,$61,$a5
|
||||
.byte $ef,$27,$a0,$76,$67,$f3,$00,$a5
|
||||
.byte $f4,$59,$53,$40,$f5,$f3,$00,$ff
|
||||
.byte $5a,$16,$30,$a5,$61,$f1,$20,$2f
|
||||
.byte $59,$d1,$00,$e5,$9e,$72,$f1,$f6
|
||||
.byte $00,$92,$65,$4f,$47,$00,$83,$4f
|
||||
.byte $47,$00,$b3,$6e,$c8,$70,$f1,$3e
|
||||
.byte $d8,$1f,$58,$00,$f1,$74,$fa,$20
|
||||
.byte $f1,$34,$25,$4c,$10,$bc,$4f,$43
|
||||
.byte $25,$34,$00,$f4,$16,$5b,$f3,$00
|
||||
.byte $83,$7a,$00,$61,$7a,$f3,$fd,$fb
|
||||
.byte $00,$83,$7a,$54,$f2,$00,$f4,$16
|
||||
.byte $5b,$f3,$54,$f2,$00,$97,$f4,$54
|
||||
.byte $f2,$00,$16,$63,$60,$f5,$f3,$21
|
||||
.byte $90,$b6,$11,$fd,$fb,$fb,$00,$f1
|
||||
.byte $36,$6c,$d2,$00,$5e,$d8,$1e,$14
|
||||
.byte $21
|
||||
.byte $a0
|
||||
packed_keywords:
|
||||
.byte $14,$a0,$b3,$60,$41,$f7,$20,$a7
|
||||
.byte $27,$00,$54,$dc,$2f,$23,$00,$54
|
||||
.byte $dc,$20,$a5,$e0,$61,$7a,$00,$81
|
||||
.byte $20,$f2,$32,$30,$6c,$40,$5b,$00
|
||||
.byte $61,$92,$36,$10,$f2,$39,$cf,$42
|
||||
.byte $00,$61,$2c,$64,$00,$61,$e0,$92
|
||||
.byte $3d,$00,$34,$00,$f8,$75,$20,$83
|
||||
.byte $7a,$00,$97,$f4,$10,$f4,$16,$5b
|
||||
.byte $f3,$00,$a1,$b0,$d3,$ff,$4b,$10
|
||||
.byte $d6,$54,$2f,$23,$00,$d6,$54,$20
|
||||
.byte $f1,$34,$20,$85,$92,$00,$f1,$86
|
||||
.byte $00,$f1,$ea,$00,$9f,$59,$90,$3d
|
||||
.byte $14,$00,$f1,$83,$91,$00,$f2,$12
|
||||
.byte $00,$41,$f8,$00,$27,$f5,$fe,$28
|
||||
.byte $23,$00,$b4,$00,$9d,$f1,$fe,$28
|
||||
.byte $2f,$48,$14,$00,$43,$20,$92,$1d
|
||||
.byte $00,$fe,$2b,$fe,$2d,$fe,$2a,$fe
|
||||
.byte $2f,$fe,$5e,$74,$a0,$36,$00,$fe
|
||||
.byte $3e,$fe,$3d,$fe,$3c,$9f,$47,$40
|
||||
.byte $54,$20,$7f,$42,$90,$c9,$60,$b6
|
||||
.byte $10,$d3,$90,$9f,$51,$60,$64,$a0
|
||||
.byte $83,$f2,$00,$1f,$58,$d0,$f1,$39
|
||||
.byte $00,$95,$40,$27,$40,$72,$40,$d1
|
||||
.byte $1f,$4b,$00,$81,$40,$92,$6f,$24
|
||||
.byte $00,$f4,$78,$00,$79,$f1,$00,$f1
|
||||
.byte $f6,$6f,$24,$00,$81,$b2,$f9,$00
|
||||
.byte $65,$f2,$f6,$2f,$24,$00,$e5,$af
|
||||
.byte $24
|
||||
.byte $00
|
||||
.byte $f2
|
||||
.byte $30
|
||||
.alias packed_keyword_table_len $DC
|
||||
Whitespace-only changes.
Whitespace-only changes.
@@ -0,0 +1,10 @@
|
||||
|
||||
;; Registers according to Ultimate 64 Command Interface ddescription,
|
||||
;; https://1541u-documentation.readthedocs.io/en/latest/command%20interface.html
|
||||
|
||||
.alias U64_CONTROL $DF1C ; write
|
||||
.alias U64_STATUS $DF1C ; read
|
||||
.alias U64_COMMAND_DATA $DF1D ; write
|
||||
.alias U64_IDENTIFICATION $DF1D ; read
|
||||
.alias U64_RESPONSE_DATA $DF1E ; read only
|
||||
.alias U64_STATUS_DATA $DF1F ; read only
|
||||
Reference in new issue
Block a user