In /loader delete dejunk, recrack, lzss_loader, superseded by a2_(load|pack).py
authorNick Downing <nick@ndcode.org>
Fri, 1 Jul 2022 02:12:40 +0000 (12:12 +1000)
committerNick Downing <nick@ndcode.org>
Fri, 1 Jul 2022 02:22:24 +0000 (12:22 +1000)
loader/Makefile
loader/dejunk.py [deleted file]
loader/lzss_loader.asm [deleted file]
loader/recrack.py [deleted file]
loader/recrack_loader.asm [deleted file]

index ce04df1..39622a0 100755 (executable)
@@ -11,8 +11,6 @@ HEX2BIN=hex2bin.py
 
 LOAD_ADDR=0x800
 END_ADDR=0xa000
-LZSS_LOADER=0x800
-RECRACK_LOADER=0x9ded
 
 .PHONY: all
 all: \
@@ -23,10 +21,7 @@ lzss_unpack_rev_aux_mem.bin \
 lzss_unpack_fwd.bin \
 lzss_unpack_fwd_aux_mem.bin \
 star_blazer.ihx \
-star_blazer.a2bin \
-star_blazer_dejunked0.a2bin \
-star_blazer_dejunked1.a2bin \
-star_blazer_recrack_lzss.a2bin
+star_blazer.a2bin
 
 star_blazer_pack_rev.a2bin: lzss_unpack_rev.bin star_blazer.ihx
        ../utils/a2_pack.py --rev ${LOAD_ADDR} $^ $@
@@ -82,36 +77,6 @@ star_blazer.ihx: star_blazer.a2bin star_blazer_segments.txt
 star_blazer.a2bin: ../orig/Star_Blazer_1981_Star_Craft.do
        ${DOS33} $^ LOAD "STAR BLAZER" $@
 
-star_blazer_dejunked0.a2bin: star_blazer.a2bin
-       ./dejunk.py $< $@ 0
-
-star_blazer_dejunked1.a2bin: star_blazer.a2bin
-       ./dejunk.py $< $@ 0xff
-
-star_blazer_recrack_lzss.a2bin: lzss_loader.bin star_blazer_recrack.a2bin
-       ./lzss_encode.py ${LZSS_LOADER} $^ $@
-
-lzss_loader.bin: lzss_loader.ihx
-       ${HEX2BIN} $< $@
-
-lzss_loader.ihx: lzss_loader.rel
-       ${ASLINK} -n -m -u -il -b text=${LZSS_LOADER} $@ $^
-
-lzss_loader.rel: lzss_loader.asm
-       ${AS6500} -l -o $<
-
-star_blazer_recrack.a2bin: recrack_loader.bin star_blazer_dejunked0.a2bin
-       ./recrack.py $^ $@
-
-recrack_loader.bin: recrack_loader.ihx
-       ${HEX2BIN} $< $@
-
-recrack_loader.ihx: recrack_loader.rel
-       ${ASLINK} -n -m -u -il -b text=${RECRACK_LOADER} $@ $^
-
-recrack_loader.rel: recrack_loader.asm
-       ${AS6500} -l -o $<
-
 clean:
        rm -f \
 *.a2bin \
diff --git a/loader/dejunk.py b/loader/dejunk.py
deleted file mode 100755 (executable)
index 90d2704..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-
-EXIT_SUCCESS = 0
-EXIT_FAILURE = 1
-
-if len(sys.argv) < 4:
-  print(f'usage: {sys.argv[0]:s} in.a2bin out.a2bin fill_value')
-  sys.exit(EXIT_FAILURE)
-in_a2bin = sys.argv[1]
-out_a2bin = sys.argv[2]
-fill_value = int(sys.argv[3], 0)
-
-with open(in_a2bin, 'rb') as fin:
-  a2bin = list(fin.read())
-  hdr = a2bin[:4]
-  bin = a2bin[4:]
-assert len(bin) == 0x9300
-
-# file was constructed from a memory dump after copy protected loader ran
-# after loading at 0x0300:
-#   [0x0300, 0x0a00) is not used except for a jump to crack loader at 0x3f00
-#   [0x0a00, 0x2000) is program
-#   [0x2000, 0x4000) is hi-res screen 0 which is reused by the crack loader:
-#     [0x2000, 0x27ed) is end of program which is copied to 0x9600
-#     [0x27ed, 0x3200) is junk copied after end of program at 0x9ded
-#     [0x3200, 0x3c00) is junk copied to end of memory at 0xb600
-#     [0x3c00, 0x3f00) is junk copied to start of memory at 0x0000, except:
-#       [0x3c20, 0x3c22) is vec_start (duplicated in crack loader, kept anyway)
-#       [0x3c22, 0x3c24) is vec_init_game
-#       [0x3c24, 0x3c26) is vec_start_game
-#       [0x3c28, 0x3c2a) is vec_calculate_object_shape
-#       [0x3c4e, 0x3c50) is vec_draw_miscellaneous_from_table
-#       [0x3e00, 0x3e02) is unknown vector, maybe collide with a certain object
-#     [0x3f00, 0x4000) is junk except the crack loader at [0x3f00, 0x3f79)
-#   [0x4000, 0x8c08) is program
-#   [0x8c08, 0x8e00) is junk which I think is from the shape editor he used
-#   [0x8e00, 0x9600) is program
-
-vec_start = bin[0x3920:0x3922] # [0x3c20, 0x3c22)
-vec_init_game = bin[0x3922:0x3924] # [0x3c22, 0x3c24)
-vec_start_game = bin[0x3924:0x3926] # [0x3c24, 0x3c26)
-vec_calculate_objct_shape = bin[0x3928:0x392a] # [0x3c28, 0x3c2a)
-vec_draw_miscellaneous_from_table = bin[0x394e:0x3950] # [0x3c4e, 0x3c50)
-vec_unknown = bin[0x3b00:0x3b02] # [0x3e00, 0x3e02)
-
-bin[0x0003:0x0700] = [fill_value] * 0x06fd # [0x0300, 0x0a00)
-bin[0x24ed:0x3c00] = [fill_value] * 0x1713 # [0x27ed, 0x3f00)
-bin[0x3c79:0x3d00] = [fill_value] * 0x0087 # [0x3f79, 0x4000)
-bin[0x8908:0x8b00] = [fill_value] * 0x01f8 # [0x8c08, 0x8e00)
-
-bin[0x3920:0x3922] = vec_start # [0x3c20, 0x3c22)
-bin[0x3922:0x3924] = vec_init_game # [0x3c22, 0x3c24)
-bin[0x3924:0x3926] = vec_start_game # [0x3c24, 0x3c26)
-bin[0x3928:0x392a] = vec_calculate_objct_shape # [0x3c28, 0x3c2a)
-bin[0x394e:0x3950] = vec_draw_miscellaneous_from_table # [0x3c4e, 0x3c50)
-bin[0x3b00:0x3b02] = vec_unknown # [0x3e00, 0x3e00)
-
-with open(out_a2bin, 'wb') as fout:
-  fout.write(bytes(hdr + bin))
diff --git a/loader/lzss_loader.asm b/loader/lzss_loader.asm
deleted file mode 100644 (file)
index 8c423ea..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-       .r65c02
-
-       .area   zpage
-       .setdp
-
-       .ds     80
-src:   .ds     2                       ; address of last byte read
-dest:  .ds     2                       ; address of next byte to write
-count: .ds     2                       ; count of bit buffer refills to do
-bits:  .ds     1                       ; bit buffer (highest 1 = sentinel)
-len:   .ds     1                       ; length
-dist:  .ds     2                       ; distance, or address of repeated data
-
-       .area   text
-
-       cld
-
-       lda     #0
-       sta     src
-       lda     #0
-       sta     src + 1
-
-       lda     #0
-       sta     dest
-       lda     #0
-       sta     dest + 1
-
-       lda     #0
-       sta     count
-       lda     #0
-       sta     count + 1
-
-       lda     #0
-       sta     bits
-       clc
-
-       ldy     #0
-       ; optimization: the first byte has to be literal
-       ;beq    loop
-
-literal:
-       lda     src
-       bne     0$
-       dec     src + 1
-0$:    dec     src
-
-       lda     [src],y
-       sta     [dest],y
-
-       lda     dest
-       bne     1$
-       dec     dest + 1
-1$:    dec     dest
-
-loop:  ;clc
-       ror     bits
-       bne     literal_or_pointer
-
-       inc     count
-       bne     0$
-       inc     count + 1
-       bne     0$
-       jmp     0
-
-0$:    lda     src
-       bne     1$
-       dec     src + 1
-1$:    dec     src
-
-       lda     [src],y
-       ;sec
-       ror     a
-       sta     bits
-
-literal_or_pointer:
-       ; cf=0 literal, cf=1 pointer
-       bcc     literal
-
-       ; pointer
-       clc
-       ror     bits
-       bne     short_or_long_pointer
-
-       lda     src
-       bne     0$
-       dec     src + 1
-0$:    dec     src
-
-       lda     [src],y
-       ;sec
-       ror     a
-       sta     bits
-
-short_or_long_pointer:
-       ; cf=0 short pointer, cf=1 long pointer
-       ; take source byte (short pointer or high of long pointer)
-       lda     src
-       bne     0$
-       dec     src + 1
-0$:    dec     src
-
-       lda     [src],y
-       bcs     long_pointer
-
-       ; short pointer, lddddddd
-       sty     dist + 1 ; 0
-       bpl     1$
-       and     #0x7f
-       iny
-1$:    sta     dist
-
-       bcc     pointer
-
-long_pointer:
-       ; high of long pointer, lllllldd
-       tax
-       and     #3
-       sta     dist + 1
-
-       lda     src
-       bne     0$
-       dec     src + 1
-0$:    dec     src
-
-       lda     [src],y
-       sta     dist
-
-       txa
-       lsr     a
-       lsr     a
-       tay
-
-pointer: ; dist set up, y = len - 2
-       iny
-       iny
-       sty     len
-
-       ; dest -= len
-       sec
-       lda     dest
-       sbc     len
-       sta     dest
-       bcs     0$
-       dec     dest + 1
-
-       ; dist += dest + 1
-       sec
-0$:    ;lda    dest
-       adc     dist
-       sta     dist
-       lda     dest + 1
-       adc     dist + 1
-       sta     dist + 1
-
-1$:    lda     [dist],y
-       sta     [dest],y
-       dey
-       bne     1$
-       beq     loop ; rely on cf = 0 here
diff --git a/loader/recrack.py b/loader/recrack.py
deleted file mode 100755 (executable)
index ef71f05..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-
-EXIT_SUCCESS = 0
-EXIT_FAILURE = 1
-
-if len(sys.argv) < 4:
-  print(f'usage: {sys.argv[0]:s} recrack_loader.a2bin in.a2bin out.a2bin')
-  sys.exit(EXIT_FAILURE)
-recrack_loader_bin = sys.argv[1]
-in_a2bin = sys.argv[2]
-out_a2bin = sys.argv[3]
-
-with open(recrack_loader_bin, 'rb') as fin:
-  recrack_loader = list(fin.read())
-
-with open(in_a2bin, 'rb') as fin:
-  a2bin = list(fin.read())
-  hdr = a2bin[:4]
-  bin = a2bin[4:]
-load_addr = hdr[0] | (hdr[1] << 8)
-load_size = hdr[2] | (hdr[3] << 8)
-assert load_size == len(bin)
-
-assert load_size == 0x9300
-entry_point = 0x9ded
-
-bin = (
-  [0x4c, 0xed, 0x9d] + # jmp 0x9ded, end of image
-    bin[0x0a00 - load_addr:0x2000 - load_addr] + # [0x0a00, 0x2000)
-    [0] * 0x2000 + # [0x2000, 0x4000)
-    bin[0x4000 - load_addr:0x9600 - load_addr] + # [0x4000, 0x9600)
-    bin[0x2000 - load_addr:0x27ed - load_addr] + # [0x9600, 0x9ded)
-    recrack_loader
-)
-load_addr = 0x09fd
-load_size = len(bin)
-
-hdr = [load_addr & 0xff, load_addr >> 8, load_size & 0xff, load_size >> 8]
-
-with open(out_a2bin, 'wb') as fout:
-  fout.write(bytes(hdr + bin))
diff --git a/loader/recrack_loader.asm b/loader/recrack_loader.asm
deleted file mode 100644 (file)
index acca387..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-vec_start = 0x20
-start = 0x17d1
-
-vec_init_game = 0x22
-init_game = 0x1708
-
-vec_start_game = 0x24
-start_game = 0x171b
-
-vec_calculate_object_shape = 0x28
-calculate_object_shape = 0x0d6c
-
-vec_draw_misc_from_table = 0x4e
-draw_misc_from_table = 0x1d1c
-
-vec_restart = 0x0200
-restart = 0x1999
-
-       .r65c02
-
-       .area   text
-
-       cld
-       ldx     #0xff
-       txs
-
-       ; this doesn't seem to be referenced after start
-       ;lda    #<start
-       ;sta    vec_start
-       ;lda    #>start
-       ;sta    vec_start + 1
-
-       lda     #<init_game
-       sta     vec_init_game
-       lda     #>init_game
-       sta     vec_init_game + 1
-
-       lda     #<start_game
-       sta     vec_start_game
-       lda     #>start_game
-       sta     vec_start_game + 1
-
-       lda     #<calculate_object_shape
-       sta     vec_calculate_object_shape
-       lda     #>calculate_object_shape
-       sta     vec_calculate_object_shape + 1
-
-       lda     #<draw_misc_from_table
-       sta     vec_draw_misc_from_table
-       lda     #>draw_misc_from_table
-       sta     vec_draw_misc_from_table + 1
-
-       lda     #<restart
-       sta     vec_restart
-       lda     #>restart
-       sta     vec_restart + 1
-
-       jmp     start