added help text for head align tool
This commit is contained in:
1 parent
cefa6ec1fb
commit
d8248db843
3 files changed
+145
-9
No files matched your search
@@ -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
|
||||
|
||||
@@ -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 !-
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user