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
### `CONFIG_FANCY_BANNER`
### `CONFIG_BANNER_FANCY`
If enabled, prints more colorful startup banner. Eye candy only.
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`
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_D5XX
#define CONFIG_FANCY_BANNER
#define CONFIG_BANNER_FANCY
#define CONFIG_BANNER_PAL_NTSC
#define CONFIG_DOS_WEDGE
#define CONFIG_BCD_SAFE_INTERRUPTS
#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_D5XX
#define CONFIG_FANCY_BANNER
#define CONFIG_BANNER_FANCY
#define CONFIG_BANNER_PAL_NTSC
#define CONFIG_DOS_WEDGE
#define CONFIG_BCD_SAFE_INTERRUPTS
#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_D5XX
#define CONFIG_FANCY_BANNER
#define CONFIG_BANNER_FANCY
#define CONFIG_BANNER_PAL_NTSC
#define CONFIG_DOS_WEDGE
#define CONFIG_BCD_SAFE_INTERRUPTS
#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_return = KERNAL.print_return
.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() {
#if CONFIG_FANCY_BANNER
#if CONFIG_BANNER_FANCY
.byte $1C, $12, $A3, $A3, $A3, $A3, $A3, $A3, $A3, $92, $0D
.byte $9E, $12, $A3, $A3, $A3, $A3, $A3, $A3, $92, $05, $20
+1 -1
View File
@@ -4,7 +4,7 @@
.macro TARGET_HOOK_BANNER() {
#if CONFIG_FANCY_BANNER
#if CONFIG_BANNER_FANCY
// New banner from Retrofan
.byte $9a, $12, $20, $20, $7f, $a9, $20, $20, $1f, $20, $9a, $20, $20, $20
@@ -4,7 +4,7 @@
.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 $9E, $12, $A3, $A3, $A3, $A3, $A3, $A3, $92, $05, $20
+2 -2
View File
@@ -1,5 +1,5 @@
cmd_stop:
ldx #38 // "BREAK"
ldx #30 // "BREAK"
jsr print_packed_message
// Are we in direct mode
@@ -8,7 +8,7 @@ cmd_stop:
beq !+
// Not direct mode
ldx #37
ldx #31
jsr print_packed_message
lda CURLIN+1
+1 -1
View File
@@ -150,7 +150,7 @@ do_basic_error:
beq !+
// We were in a program, so show IN <line>
ldx #37
ldx #31
jsr print_packed_message
lda CURLIN+1
+11 -9
View File
@@ -19,13 +19,12 @@ INITMSG:
bne !-
!:
// Print PAL/NTSC
ldx #30 // NTSC
lda TVSFLG
beq !+
ldx #31 // PAL
!:
jsr print_packed_message
// Print PAL/NTSC, if configured
#if CONFIG_BANNER_PAL_NTSC
jsr print_pal_ntsc
#endif
// Work out free bytes, display them
jsr basic_do_new
@@ -37,8 +36,11 @@ INITMSG:
sbc TXTTAB+1
jsr print_integer
jsr print_space
// Print rest of the start up message
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_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:
@@ -42,3 +47,15 @@ __kernal_message_from_hex:
__kernal_message_to_hex:
.text " TO "
.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
// 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
"NTSC, ", // #30
"PAL, ", // #31
"BREAK AT $", // #32
"BREAK", // #30
" IN ", // #31
"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
"BYTES FREE\r\r", // #34 // https://github.com/stefanhaustein/expressionparser
" BASIC BYTES FREE", // #34 // https://github.com/stefanhaustein/expressionparser
"MEMORY CORRUPT", // #35
"NOT IMPLEMENTED", // #36
" IN ", // #37
"BREAK", // #38
NULL};
// XXX: create separate list for Kernal