PAL/NTSC display is now optional
This commit is contained in:
1 parent
3ca8c0ead5
commit
8339e36324
14 files changed
+72
-25
No files matched your search
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user