added help text for head align tool

This commit is contained in:
FeralChild64 committed 2020-06-04 17:32:55 +02:00
1 parent cefa6ec1fb
commit d8248db843
3 files changed
+145 -9

No files matched your search

+4 -4
View File
@@ -46,10 +46,10 @@
// I/O devices
#define CONFIG_IEC
#define CONFIG_IEC_DOLPHINDOS
#define CONFIG_IEC_DOLPHINDOS_FAST
#define CONFIG_IEC_JIFFYDOS
#define CONFIG_IEC_JIFFYDOS_BLANK
//#define CONFIG_IEC_DOLPHINDOS
//#define CONFIG_IEC_DOLPHINDOS_FAST
//#define CONFIG_IEC_JIFFYDOS
//#define CONFIG_IEC_JIFFYDOS_BLANK
// #define CONFIG_IEC_BURST_CIA1 // please keep disabled for now
// #define CONFIG_IEC_BURST_CIA2 // please keep disabled for now
// #define CONFIG_IEC_BURST_SOFT // please keep disabled for now
+8 -5
View File
@@ -13,14 +13,13 @@
// XXX for Mega65 it can be done more easily, by just disabling the badlines
// XXX consider "PRESS PLAY ON TAPE" before start, with option to stop
// XXX add some text explaining what tool it is ('head align chart', or something similar)
// XXX make tape wedge (and this tool) available also without tape turbo support
// XXX create separate configuration for tape users
// XXX block NMIs
// XXX fix Mega65 build compilation issues
.label __ha_start = 11 // starting row of the chart
.label __ha_start = 12 // starting row of the chart
.label __ha_rows = 10 // number of rows for scrolling
// Helper tables
@@ -34,7 +33,7 @@
.label __ha_sta_addr = $1202; // 2 bytes, for code generator
.label __ha_pulses = $1204; // 64 bytes
.label __ha_gfxflag = $1244; // 1 byte
.label __ha_loopcnt = $1245; // 1 byte
.label __ha_storage = $1245; // 1 byte
// Generated code location
@@ -98,6 +97,10 @@ tape_head_align:
cpx #$40
bne !-
// Print help message
jsr tape_head_align_print_help
// Make sure the row where the chart is being created is not visible
lda #(CONFIG_COLOR_TXT * $10 + CONFIG_COLOR_TXT)
@@ -225,7 +228,7 @@ tape_head_align_loop_2:
ldx #$00
!:
stx __ha_loopcnt
stx __ha_storage
lda __ha_pulses, x
cmp #$FF
@@ -233,7 +236,7 @@ tape_head_align_loop_2:
jsr tape_head_align_draw_pulse
ldx __ha_loopcnt
ldx __ha_storage
inx
cpx #$40
bne !-
+133
View File
@@ -0,0 +1,133 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# M65 KERNAL_1 #TAKE
// #LAYOUT# * * #IGNORE
//
// Tape head alignemnt tool - prints out a help message on screen
//
#if CONFIG_TAPE_HEAD_ALIGN
tape_head_align_print_help:
// Make screen font visible
lda CPU_R6510
pha
and #%11111011
sta CPU_R6510
// Print help message
ldy #$00
// Retrieve address
!:
lda tape_head_align_help_text, y
iny
cmp #$FF
beq tape_head_align_print_end
sta EAL+0
lda tape_head_align_help_text, y
iny
sta EAL+1
!:
// Retrieve and print character
lda tape_head_align_help_text, y
iny
cmp #$FF
beq !--
sty __ha_storage
jsr tape_head_align_print_char
ldy __ha_storage
bne !- // branch alwats
tape_head_align_print_end:
// Restore normal memory configuration and quit
pla
sta CPU_R6510
rts
tape_head_align_print_string:
tape_head_align_print_char:
// Calculate start address of character in .A
sta SAL+0
lda #$00
sta SAL+1
asl SAL+0
rol SAL+1
asl SAL+0
rol SAL+1
asl SAL+0
rol SAL+1
clc
lda SAL+1
adc #$D0
sta SAL+1
// Print out the character
ldy #$07
!:
lda (SAL), y
sta (EAL), y
dey
bpl !-
// Prepare EAL for the next character
lda EAL+0
clc
adc #$08
sta EAL+0
bne !+
inc EAL+1
!:
rts
//
// Strings to print
//
.encoding "screencode_upper"
tape_head_align_help_text:
.word $2000 + (40 * 8) * 1 + 8 * 2
.text "ADJUST HEAD FOR MINIMUM SIGNAL NOISE"
.byte $FF
.word $2000 + (40 * 8) * 5 + 8 * 2
.text "IF THE DECK HAS A PITCH (SPEED) KNOB"
.byte $FF
.word $2000 + (40 * 8) * 6 + 8 * 6
.text "USE IT TO PLACE DOTTED LINES"
.byte $FF
.word $2000 + (40 * 8) * 7 + 8 * 3
.text "EXACTLY HALF A WAY BETWEEN SIGNALS"
.byte $FF
.byte $FF
#endif