diff --git a/Makefile b/Makefile index 0dacf6a7..e69e5731 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ SRC_KERNAL_ULTIMATE64 = $(SRC_KERNAL_COMMON) $(wildcard c64/kernal/,platform_ult # Rules - maintainance -all: build/chargen build/newkern_generic build/newbasic_generic build/newkern_mega65 build/newbasic_mega65 build/newkern_ultimate64 build/newbasic_ultimate64 +all: build/chargen build/newkern_generic build/newbasic_generic build/newc65 build/newkern_ultimate64 build/newbasic_ultimate64 clean: @rm -rf build diff --git a/bin/REEADME.txt b/bin/REEADME.txt new file mode 100644 index 00000000..d3a254bc --- /dev/null +++ b/bin/REEADME.txt @@ -0,0 +1,14 @@ + +Follow these rules, or bad things will happen! + + +- Don't mix ROMs for different platforms - use generic BASIC with generic KERNAL, Mega65 BASIC with Mega65 KERNAL, etc. + +- Don't mix these ROMs with any other ROMs; the only exception is CHARGEN, this one is fully interchangeable. + +- Don't mix ROMs from different builds/versions (again, CHARGEN is an exception). + +- The generic ROM set should be compatible with any C64-compatible machine; platform-specific ROMs might not work on other platforms. + + +Have fun! diff --git a/bin/basic b/bin/basic_generic.rom similarity index 100% rename from bin/basic rename to bin/basic_generic.rom diff --git a/bin/basic_mega65.rom b/bin/basic_mega65.rom new file mode 100644 index 00000000..ccea4daf Binary files /dev/null and b/bin/basic_mega65.rom differ diff --git a/bin/basic_ultimate64.rom b/bin/basic_ultimate64.rom new file mode 100644 index 00000000..034b50d0 Binary files /dev/null and b/bin/basic_ultimate64.rom differ diff --git a/bin/chargen b/bin/chargen.rom similarity index 100% rename from bin/chargen rename to bin/chargen.rom diff --git a/bin/kernal b/bin/kernal_generic.rom similarity index 99% rename from bin/kernal rename to bin/kernal_generic.rom index b169ad25..52d24cdc 100644 Binary files a/bin/kernal and b/bin/kernal_generic.rom differ diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom new file mode 100644 index 00000000..52d24cdc Binary files /dev/null and b/bin/kernal_mega65.rom differ diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom new file mode 100644 index 00000000..52d24cdc Binary files /dev/null and b/bin/kernal_ultimate64.rom differ diff --git a/c64/basic/,platform_generic/,hooks_generic.s b/c64/basic/,platform_generic/,hooks_generic.s new file mode 100644 index 00000000..4f743e84 --- /dev/null +++ b/c64/basic/,platform_generic/,hooks_generic.s @@ -0,0 +1,9 @@ + +;; Platform-specific hooks + + +.macro PLATFORM_HOOK_BANNER + + .byte $05, " OPEN ROMS, ", $00 + +.macend diff --git a/c64/basic/,platform_generic/.dummy b/c64/basic/,platform_generic/.dummy deleted file mode 100644 index e69de29b..00000000 diff --git a/c64/basic/,platform_mega65/,hooks_mega65.s b/c64/basic/,platform_mega65/,hooks_mega65.s new file mode 100644 index 00000000..d8eecbaf --- /dev/null +++ b/c64/basic/,platform_mega65/,hooks_mega65.s @@ -0,0 +1,41 @@ + +;; Platform-specific hooks + + +.macro PLATFORM_HOOK_BANNER + + ;; New banner from Retrofan + .byte $9a, $12, $20, $20, $7f, $a9, $20, $20, $1f, $20, $9a, $20, $20, $20 + .byte $20, $1f, $20, $9a, $a9, $20, $20, $20, $92, $a1, $1f, $12, $20, $9a, $a9, $20 + .byte $20, $20, $7f, $1f, $20, $20, $9a, $a3, $a3, $a3, $a3, $a3, $a3, $a3, $1f, $20 + .byte $20, $20, $20, $05, $92, $4d, $45, $47, $41, $9a, $12, $20, $20, $20, $20, $20 + .byte $20, $1f, $20, $9a, $20, $20, $92, $a2, $bb, $1f, $12, $20, $9a, $20, $20, $92 + .byte $ac, $a2, $a2, $1f, $12, $20, $9a, $20, $20, $1f, $20, $9a, $20, $20, $1f, $20 + .byte $20, $1e, $a3, $a3, $a3, $a3, $a3, $a3, $1f, $20, $20, $20, $20, $05, $92, $42 + .byte $41, $53, $49, $43, $9a, $12, $20, $20, $92, $7f, $a9, $12, $20, $20, $1f, $20 + .byte $9a, $20, $20, $a2, $92, $be, $1f, $12, $20, $9a, $20, $20, $92, $bc, $12, $20 + .byte $20, $1f, $20, $9a, $20, $20, $20, $20, $20, $1f, $20, $20, $9e, $a3, $a3, $a3 + .byte $a3, $a3, $1f, $20, $20, $20, $20, $05, $92, $2d, $2d, $2d, $2d, $2d, $2d, $9a + .byte $12, $20, $20, $1f, $20, $20, $9a, $20, $20, $1f, $20, $9a, $20, $20, $20, $20 + .byte $1f, $20, $9a, $20, $20, $20, $20, $20, $1f, $20, $9a, $20, $20, $1f, $20, $9a + .byte $20, $20, $1f, $20, $20, $96, $a3, $a3, $a3, $a3, $1f + .byte $92, $0D, $0D, $05, $00 + + ;; Original Deft-supplied banner + ;; .byte $9A,$12,$A3,$A3,$A3,$A3,$A3,$A3,$DF,$9B,$92,$20,$05,$12,$A0,$A0 + ;; .byte $DF,$9B,$92,$20,$05,$12,$A0,$A0,$DF,$9B,$92,$20,$05,$12,$A0,$A0 + ;; .byte $DF,$9B,$92,$20,$05,$12,$A0,$A0,$DF,$9A,$92,$20,$05,$20,$20,$20 + ;; .byte $4D,$20,$45,$20,$47,$20,$41,$0D,$99,$12,$A3,$A3,$A3,$A3,$A3,$A3 + ;; .byte $A3,$DF,$92,$7F,$12,$CD,$CD,$DF,$92,$7F,$12,$DF,$05,$92,$20,$20 + ;; .byte $99,$7F,$12,$DF,$05,$92,$20,$20,$99,$7F,$12,$DF,$92,$7F,$12,$DF + ;; .byte $05,$92,$20,$20,$99,$42,$20,$41,$20,$53,$20,$49,$20,$43,$0D,$9E + ;; .byte $12,$A3,$A3,$A3,$A3,$A3,$A3,$A3,$A3,$DF,$9B,$92,$7F,$12,$DF,$92 + ;; .byte $7F,$12,$DF,$92,$7F,$12,$CD,$05,$92,$20,$20,$9B,$7F,$12,$CD,$92 + ;; .byte $7F,$12,$DF,$92,$7F,$12,$CD,$92,$7F,$12,$DF,$9A,$92,$20,$05,$20 + ;; .byte $9A,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$0D,$96,$12,$A3,$A3,$A3,$A3,$A3 + ;; .byte $A3,$A3,$A3,$A3,$DF,$9A,$92,$7F,$12,$DF,$92,$7F,$9B,$20,$9A,$7F + ;; .byte $12,$A0,$A0,$9B,$92,$20,$9A,$7F,$12,$A0,$A0,$9B,$92,$20,$9A,$7F + ;; .byte $12,$DF,$92,$7F,$9B,$20,$9A,$20,$9B,"0.2.0.0",$0D + ;; .byte $0D,$05,$92,$00 + +.macend diff --git a/c64/basic/,platform_mega65/.dummy b/c64/basic/,platform_mega65/.dummy deleted file mode 100644 index e69de29b..00000000 diff --git a/c64/basic/,platform_ultimate64/,hooks_ultimate64.s b/c64/basic/,platform_ultimate64/,hooks_ultimate64.s new file mode 100644 index 00000000..717d70bc --- /dev/null +++ b/c64/basic/,platform_ultimate64/,hooks_ultimate64.s @@ -0,0 +1,9 @@ + +;; Platform-specific hooks + + +.macro PLATFORM_HOOK_BANNER + + .byte $05, " OPEN ROMS FOR ULTIMATE 64", $0D, $0D, " ", $00 + +.macend diff --git a/c64/basic/basic_cold_start.s b/c64/basic/basic_cold_start.s index 6e231458..de4faf76 100644 --- a/c64/basic/basic_cold_start.s +++ b/c64/basic/basic_cold_start.s @@ -15,42 +15,7 @@ basic_cold_start: ; Used 217 bytes startup_banner: - ;; Simple banner - .byte $05, " OPEN ROMS, ", $00 - - ;; New banner from Retrofan - ;; .byte $9a, $12, $20, $20, $7f, $a9, $20, $20, $1f, $20, $9a, $20, $20, $20 - ;; .byte $20, $1f, $20, $9a, $a9, $20, $20, $20, $92, $a1, $1f, $12, $20, $9a, $a9, $20 - ;; .byte $20, $20, $7f, $1f, $20, $20, $9a, $a3, $a3, $a3, $a3, $a3, $a3, $a3, $1f, $20 - ;; .byte $20, $20, $20, $05, $92, $4d, $45, $47, $41, $9a, $12, $20, $20, $20, $20, $20 - ;; .byte $20, $1f, $20, $9a, $20, $20, $92, $a2, $bb, $1f, $12, $20, $9a, $20, $20, $92 - ;; .byte $ac, $a2, $a2, $1f, $12, $20, $9a, $20, $20, $1f, $20, $9a, $20, $20, $1f, $20 - ;; .byte $20, $1e, $a3, $a3, $a3, $a3, $a3, $a3, $1f, $20, $20, $20, $20, $05, $92, $42 - ;; .byte $41, $53, $49, $43, $9a, $12, $20, $20, $92, $7f, $a9, $12, $20, $20, $1f, $20 - ;; .byte $9a, $20, $20, $a2, $92, $be, $1f, $12, $20, $9a, $20, $20, $92, $bc, $12, $20 - ;; .byte $20, $1f, $20, $9a, $20, $20, $20, $20, $20, $1f, $20, $20, $9e, $a3, $a3, $a3 - ;; .byte $a3, $a3, $1f, $20, $20, $20, $20, $05, $92, $2d, $2d, $2d, $2d, $2d, $2d, $9a - ;; .byte $12, $20, $20, $1f, $20, $20, $9a, $20, $20, $1f, $20, $9a, $20, $20, $20, $20 - ;; .byte $1f, $20, $9a, $20, $20, $20, $20, $20, $1f, $20, $9a, $20, $20, $1f, $20, $9a - ;; .byte $20, $20, $1f, $20, $20, $96, $a3, $a3, $a3, $a3, $1f - ;; .byte $92, $0D, $0D, $05, $00 - - ;; Original Deft-supplied banner - ;; .byte $9A,$12,$A3,$A3,$A3,$A3,$A3,$A3,$DF,$9B,$92,$20,$05,$12,$A0,$A0 - ;; .byte $DF,$9B,$92,$20,$05,$12,$A0,$A0,$DF,$9B,$92,$20,$05,$12,$A0,$A0 - ;; .byte $DF,$9B,$92,$20,$05,$12,$A0,$A0,$DF,$9A,$92,$20,$05,$20,$20,$20 - ;; .byte $4D,$20,$45,$20,$47,$20,$41,$0D,$99,$12,$A3,$A3,$A3,$A3,$A3,$A3 - ;; .byte $A3,$DF,$92,$7F,$12,$CD,$CD,$DF,$92,$7F,$12,$DF,$05,$92,$20,$20 - ;; .byte $99,$7F,$12,$DF,$05,$92,$20,$20,$99,$7F,$12,$DF,$92,$7F,$12,$DF - ;; .byte $05,$92,$20,$20,$99,$42,$20,$41,$20,$53,$20,$49,$20,$43,$0D,$9E - ;; .byte $12,$A3,$A3,$A3,$A3,$A3,$A3,$A3,$A3,$DF,$9B,$92,$7F,$12,$DF,$92 - ;; .byte $7F,$12,$DF,$92,$7F,$12,$CD,$05,$92,$20,$20,$9B,$7F,$12,$CD,$92 - ;; .byte $7F,$12,$DF,$92,$7F,$12,$CD,$92,$7F,$12,$DF,$9A,$92,$20,$05,$20 - ;; .byte $9A,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$0D,$96,$12,$A3,$A3,$A3,$A3,$A3 - ;; .byte $A3,$A3,$A3,$A3,$DF,$9A,$92,$7F,$12,$DF,$92,$7F,$9B,$20,$9A,$7F - ;; .byte $12,$A0,$A0,$9B,$92,$20,$9A,$7F,$12,$A0,$A0,$9B,$92,$20,$9A,$7F - ;; .byte $12,$DF,$92,$7F,$9B,$20,$9A,$20,$9B,"0.2.0.0",$0D - ;; .byte $0D,$05,$92,$00 + `PLATFORM_HOOK_BANNER ;; Work out free bytes, and display jsr basic_do_new diff --git a/c64/kernal/,platform_ultimate64/,aliases-ultimate64.s b/c64/kernal/,platform_ultimate64/,aliases-ultimate64.s deleted file mode 100644 index 1f30e332..00000000 --- a/c64/kernal/,platform_ultimate64/,aliases-ultimate64.s +++ /dev/null @@ -1,10 +0,0 @@ - -;; 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 diff --git a/c64/basic/,platform_ultimate64/,aliases-ultimate64.s b/c64/kernal/,platform_ultimate64/,aliases_ultimate64.s similarity index 100% rename from c64/basic/,platform_ultimate64/,aliases-ultimate64.s rename to c64/kernal/,platform_ultimate64/,aliases_ultimate64.s