PAL/NTSC display is now optional

This commit is contained in:
FeralChild64 committed 2019-10-06 22:27:30 +02:00
1 parent 3ca8c0ead5
commit 8339e36324
14 files changed
+72 -25

No files matched your search

+7 -1
View File
@@ -82,12 +82,18 @@ Each of them needs a couple of bytes in KERNAL segment - but they can share some
## Miscelaneous features ## Miscelaneous features
### `CONFIG_FANCY_BANNER` ### `CONFIG_BANNER_FANCY`
If enabled, prints more colorful startup banner. Eye candy only. If enabled, prints more colorful startup banner. Eye candy only.
Needs some space in BASIC segment, varies between targets. Needs some space in BASIC segment, varies between targets.
### `CONFIG_BANNER_PAL_NTSC`
If enabled, prints video system on startup banner. Eye candy only.
Feature needs 3 bytes in BASIC and 23 bytes in KERNAL segment.
### `CONFIG_DOS_WEDGE` ### `CONFIG_DOS_WEDGE`
If enabled, a simple DOS wedge is available from the direct mode - supports `@<drive_number>`, `@<command>`, `@$`, `@$<params>` and `@` commands. If enabled, a simple DOS wedge is available from the direct mode - supports `@<drive_number>`, `@<command>`, `@$`, `@$<params>` and `@` commands.
+2 -1
View File
@@ -20,7 +20,8 @@
// #define CONFIG_SID_D4XX // #define CONFIG_SID_D4XX
// #define CONFIG_SID_D5XX // #define CONFIG_SID_D5XX
#define CONFIG_FANCY_BANNER #define CONFIG_BANNER_FANCY
#define CONFIG_BANNER_PAL_NTSC
#define CONFIG_DOS_WEDGE #define CONFIG_DOS_WEDGE
#define CONFIG_BCD_SAFE_INTERRUPTS #define CONFIG_BCD_SAFE_INTERRUPTS
#define CONFIG_EXTENDED_SCNKEY // for now has to be enabled #define CONFIG_EXTENDED_SCNKEY // for now has to be enabled
+2 -1
View File
@@ -20,7 +20,8 @@
// #define CONFIG_SID_D4XX // #define CONFIG_SID_D4XX
// #define CONFIG_SID_D5XX // #define CONFIG_SID_D5XX
#define CONFIG_FANCY_BANNER #define CONFIG_BANNER_FANCY
#define CONFIG_BANNER_PAL_NTSC
#define CONFIG_DOS_WEDGE #define CONFIG_DOS_WEDGE
#define CONFIG_BCD_SAFE_INTERRUPTS #define CONFIG_BCD_SAFE_INTERRUPTS
#define CONFIG_EXTENDED_SCNKEY // for now has to be enabled #define CONFIG_EXTENDED_SCNKEY // for now has to be enabled
+2 -1
View File
@@ -20,7 +20,8 @@
#define CONFIG_SID_D4XX #define CONFIG_SID_D4XX
#define CONFIG_SID_D5XX #define CONFIG_SID_D5XX
#define CONFIG_FANCY_BANNER #define CONFIG_BANNER_FANCY
#define CONFIG_BANNER_PAL_NTSC
#define CONFIG_DOS_WEDGE #define CONFIG_DOS_WEDGE
#define CONFIG_BCD_SAFE_INTERRUPTS #define CONFIG_BCD_SAFE_INTERRUPTS
#define CONFIG_EXTENDED_SCNKEY // for now has to be enabled #define CONFIG_EXTENDED_SCNKEY // for now has to be enabled
+4
View File
@@ -11,3 +11,7 @@
.label print_hex_byte = KERNAL.print_hex_byte .label print_hex_byte = KERNAL.print_hex_byte
.label print_return = KERNAL.print_return .label print_return = KERNAL.print_return
.label print_space = KERNAL.print_space .label print_space = KERNAL.print_space
#if CONFIG_BANNER_PAL_NTSC
.label print_pal_ntsc = KERNAL.print_pal_ntsc
#endif
+1 -1
View File
@@ -4,7 +4,7 @@
.macro TARGET_HOOK_BANNER() { .macro TARGET_HOOK_BANNER() {
#if CONFIG_FANCY_BANNER #if CONFIG_BANNER_FANCY
.byte $1C, $12, $A3, $A3, $A3, $A3, $A3, $A3, $A3, $92, $0D .byte $1C, $12, $A3, $A3, $A3, $A3, $A3, $A3, $A3, $92, $0D
.byte $9E, $12, $A3, $A3, $A3, $A3, $A3, $A3, $92, $05, $20 .byte $9E, $12, $A3, $A3, $A3, $A3, $A3, $A3, $92, $05, $20
+1 -1
View File
@@ -4,7 +4,7 @@
.macro TARGET_HOOK_BANNER() { .macro TARGET_HOOK_BANNER() {
#if CONFIG_FANCY_BANNER #if CONFIG_BANNER_FANCY
// New banner from Retrofan // New banner from Retrofan
.byte $9a, $12, $20, $20, $7f, $a9, $20, $20, $1f, $20, $9a, $20, $20, $20 .byte $9a, $12, $20, $20, $7f, $a9, $20, $20, $1f, $20, $9a, $20, $20, $20
@@ -4,7 +4,7 @@
.macro TARGET_HOOK_BANNER() { .macro TARGET_HOOK_BANNER() {
#if CONFIG_FANCY_BANNER #if CONFIG_BANNER_FANCY
.byte $1C, $12, $A3, $A3, $A3, $A3, $A3, $A3, $A3, $92, $0D .byte $1C, $12, $A3, $A3, $A3, $A3, $A3, $A3, $A3, $92, $0D
.byte $9E, $12, $A3, $A3, $A3, $A3, $A3, $A3, $92, $05, $20 .byte $9E, $12, $A3, $A3, $A3, $A3, $A3, $A3, $92, $05, $20
+2 -2
View File
@@ -1,5 +1,5 @@
cmd_stop: cmd_stop:
ldx #38 // "BREAK" ldx #30 // "BREAK"
jsr print_packed_message jsr print_packed_message
// Are we in direct mode // Are we in direct mode
@@ -8,7 +8,7 @@ cmd_stop:
beq !+ beq !+
// Not direct mode // Not direct mode
ldx #37 ldx #31
jsr print_packed_message jsr print_packed_message
lda CURLIN+1 lda CURLIN+1
+1 -1
View File
@@ -150,7 +150,7 @@ do_basic_error:
beq !+ beq !+
// We were in a program, so show IN <line> // We were in a program, so show IN <line>
ldx #37 ldx #31
jsr print_packed_message jsr print_packed_message
lda CURLIN+1 lda CURLIN+1
+11 -9
View File
@@ -19,13 +19,12 @@ INITMSG:
bne !- bne !-
!: !:
// Print PAL/NTSC
ldx #30 // NTSC // Print PAL/NTSC, if configured
lda TVSFLG
beq !+ #if CONFIG_BANNER_PAL_NTSC
ldx #31 // PAL jsr print_pal_ntsc
!: #endif
jsr print_packed_message
// Work out free bytes, display them // Work out free bytes, display them
jsr basic_do_new jsr basic_do_new
@@ -37,8 +36,11 @@ INITMSG:
sbc TXTTAB+1 sbc TXTTAB+1
jsr print_integer jsr print_integer
jsr print_space
// Print rest of the start up message // Print rest of the start up message
ldx #34 ldx #34
jmp print_packed_message jsr print_packed_message
// XXX put them into packed message
jsr print_return
jmp print_return
+17
View File
@@ -12,6 +12,11 @@
.label __MSG_KERNAL_FROM_HEX = __kernal_message_from_hex - __kernal_messages_start .label __MSG_KERNAL_FROM_HEX = __kernal_message_from_hex - __kernal_messages_start
.label __MSG_KERNAL_TO_HEX = __kernal_message_to_hex - __kernal_messages_start .label __MSG_KERNAL_TO_HEX = __kernal_message_to_hex - __kernal_messages_start
#if CONFIG_BANNER_PAL_NTSC
.label __MSG_KERNAL_PAL = __kernal_message_pal - __kernal_messages_start
.label __MSG_KERNAL_NTSC = __kernal_message_ntsc - __kernal_messages_start
#endif
__kernal_messages_start: __kernal_messages_start:
@@ -42,3 +47,15 @@ __kernal_message_from_hex:
__kernal_message_to_hex: __kernal_message_to_hex:
.text " TO " .text " TO "
.byte $80 + $24 // end of string mark + '$' .byte $80 + $24 // end of string mark + '$'
#if CONFIG_BANNER_PAL_NTSC
__kernal_message_pal:
.text "PAL,"
.byte $80 + $20 // end of string mark + space
__kernal_message_ntsc:
.text "NTSC,"
.byte $80 + $20 // end of string mark + space
#endif // CONFIG_BANNER_PAL_NTSC
+17
View File
@@ -0,0 +1,17 @@
//
// Print video system on startup banner
//
#if CONFIG_BANNER_PAL_NTSC
print_pal_ntsc:
ldx #__MSG_KERNAL_NTSC
lda TVSFLG
beq !+
ldx #__MSG_KERNAL_PAL
!:
jmp print_kernal_message
#endif // CONFIG_BANNER_PAL_NTSC
+4 -6
View File
@@ -159,15 +159,13 @@ char *error_list[]={
"LOAD", // https://www.discogs.com/Gimmik-Load-Error/release/482462 "LOAD", // https://www.discogs.com/Gimmik-Load-Error/release/482462
// Non-error messages // Non-error messages
"READY.\r", // #29 // https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconc_whatistsonative.htm https://github.com/stefanhaustein/expressionparser "READY.\r", // #29 // https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconc_whatistsonative.htm https://github.com/stefanhaustein/expressionparser
"NTSC, ", // #30 "BREAK", // #30
"PAL, ", // #31 " IN ", // #31
"BREAK AT $", // #32 "BRK AT $", // #32
"ERROR", // #33 // Simply the word error that is attached to the other parts of messages https://fjkraan.home.xs4all.nl/comp/apple2faq/app2asoftfaq.html "ERROR", // #33 // Simply the word error that is attached to the other parts of messages https://fjkraan.home.xs4all.nl/comp/apple2faq/app2asoftfaq.html
"BYTES FREE\r\r", // #34 // https://github.com/stefanhaustein/expressionparser " BASIC BYTES FREE", // #34 // https://github.com/stefanhaustein/expressionparser
"MEMORY CORRUPT", // #35 "MEMORY CORRUPT", // #35
"NOT IMPLEMENTED", // #36 "NOT IMPLEMENTED", // #36
" IN ", // #37
"BREAK", // #38
NULL}; NULL};
// XXX: create separate list for Kernal // XXX: create separate list for Kernal