migrated to ACME assembler

commit 145d64aa6e78838ed07cefed372f0ad6a4687e97
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 20:16:57 2020 +0200

    ACME adaptation

commit 885209d7822286744ea53232ae7461472a01d5d6
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 19:57:25 2020 +0200

    ACME adaptation

commit 334d84486bc603551887e7cbeb59d329f2224cc7
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 18:29:15 2020 +0200

    ACME adaptation

commit b5966f49bcd8f0ca79cbec93819a31238924707e
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 18:09:31 2020 +0200

    ACME adaptation

commit 786536a93a5eab5e676fca99625b4eb094a554e7
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 17:24:48 2020 +0200

    ACME adaptation

commit 704c70dfb1f5d68775d6f3da220803b8a3990f56
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 15:07:12 2020 +0200

    ACME adaptation

commit 136874964c9083b375f151475310f9636871fc72
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 14:45:14 2020 +0200

    ACME adaptation

commit 8eca0d5700b72d04336e72c5cd3a68e18b85f96d
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 14:06:52 2020 +0200

    ACME adaptation

commit 11d29eb7ee318239d782f85498b6d0524624d5c4
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 13:56:45 2020 +0200

    ACME apaptation

commit c9b5e5e04cceb92c66bc027e6440bc0f7c5a499f
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 13:49:04 2020 +0200

    ACME adaptation

commit f5cc254cbc921f07863807468cb3fe26b410b409
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 20 13:01:18 2020 +0200

    ACME adaptation

commit e135a27bf9c30cc0965379c954564e06406303b1
Author: FeralChild64 <you@example.com>
Date:   Sat Sep 19 21:55:01 2020 +0200

    ACME adaptation

commit e9dfddf90d9e2795e88b7da40ae050d733faeb56
Author: FeralChild64 <you@example.com>
Date:   Sat Sep 19 21:48:47 2020 +0200

    Makefile fix

commit 07030104c65cf5e5beeacf6d629ccb9245e58657
Author: FeralChild64 <you@example.com>
Date:   Sat Sep 19 21:42:00 2020 +0200

    ACME adaptation

commit f824362ee5bcfbffca86c430b57773b2ffd65655
Author: FeralChild64 <you@example.com>
Date:   Sat Sep 19 20:14:56 2020 +0200

    ACME adaptation

commit 3a3c59007dcd4940d89b8669f34ca56b61c25fdf
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 18 21:51:45 2020 +0200

    ACME adaptation

commit 6790ef7bc88a41de2881c69b7524dd4ab8c74b5d
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 18 20:35:23 2020 +0200

    ACME adaptation

commit 38ad18b90e9ec713aa7ca49576b3388ce1733357
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 18 18:46:20 2020 +0200

    ACME adaptation

commit 541340371122a9702f7b2d9771c298223cffd0e9
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 18 16:49:46 2020 +0200

    ACME adaptation

commit 25cfd5e186459be1a260d3eb8cfff767838de370
Author: FeralChild64 <you@example.com>
Date:   Thu Sep 17 20:13:33 2020 +0200

    ACME adaptation

commit f61599444d5b1d03d8fd8e4a6a7c3b85069bedb3
Author: FeralChild64 <you@example.com>
Date:   Thu Sep 17 19:29:23 2020 +0200

    ACME adaptation

commit b290be31ec7bb2e5723607697da1bbc621c84429
Author: FeralChild64 <you@example.com>
Date:   Thu Sep 17 17:20:14 2020 +0200

    ACME adaptation

commit 877be9e856880d98fd4bcb25b42aaaacda9dc463
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 16 21:47:38 2020 +0200

    ACME adaptation

commit bb20edaf85d386e41d5c2f715b745b68fbd3362e
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 16 21:31:30 2020 +0200

    ACME adaptation

commit c5d31bd8685abce37c8e254d15aac20bd1570d9f
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 16 18:40:49 2020 +0200

    ACME adaptation

commit 29349826b38f8a89649171559dc8cf24c560aff1
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 23:35:47 2020 +0200

    ACME adaptation

commit 8bcd6a621c4b11766d0cf34f79858ba90a67248e
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 22:52:25 2020 +0200

    ACME adaptation

commit e87a69edc2ce4bfcc460c31e08dcc352a985f88d
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 22:43:27 2020 +0200

    ACME adaptation

commit f49a097bd52e96d00b866c02bda7121e4543233c
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 19:02:07 2020 +0200

    ACME adaptation

commit fa0e9214a633b8e8f867cc70925b390940dcd426
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 17:47:19 2020 +0200

    ACME adaptation

commit 1b763b91e7a03e426227129c7f22f0ce57a4c197
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 17:17:10 2020 +0200

    ACME adaptation

commit e92a4b57b232cd85eb1e71090b8a89c7c8461ebc
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 17:15:37 2020 +0200

    ACME adaptation

commit de3c693e8a7e73ea5289198946058e3240894e6a
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 14 17:10:05 2020 +0200

    ACME adaptation

commit f9bd7ae0f04e932d613be9ed5cb19af9be5d338e
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 13 14:34:44 2020 +0200

    ACME adaptation

commit 694dee52555dbfc2b1f7f452a9671ff51106c057
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 13 14:16:14 2020 +0200

    ACME adaptation

commit 0af2c55edfcd22942d9f25417eb0d35f55b71604
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 11 17:38:09 2020 +0200

    ACME adaptation

commit 2015e17334bd56a1e8a13a5abc098d9c2e7ea44f
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 11 16:46:05 2020 +0200

    ACME adaptation

commit b1e972162798d60f4483cd6cc261e856c20c2c8c
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 11 16:24:31 2020 +0200

    ACME adaptation

commit 9d027e868466901ba53bf074a79ec8cf16273021
Author: FeralChild64 <you@example.com>
Date:   Fri Sep 11 15:04:31 2020 +0200

    ACME adaptation

commit 957186deddd1aa4f3b4f1aa1f421e4239a584e57
Author: FeralChild64 <you@example.com>
Date:   Thu Sep 10 22:49:07 2020 +0200

    ACME adaptation

commit b8060f67a455cfac109f08d96b62c360d693b931
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 23:07:28 2020 +0200

    ACME adaptation

commit e54d004568f44bbfe5c070ef1d7cf3544112e497
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 22:58:20 2020 +0200

    ACME adaptation

commit f90b77f073c5a605cb31c6ee451f65c8a8aff7d8
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 22:12:09 2020 +0200

    ACME adaptation

commit b211bb4afcd9c58fe1f5c92f3007717d611cd531
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 22:01:40 2020 +0200

    ACME adaptation

commit 8d7ea343b07e9e08e5f77f3c414758a6cffd0440
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 21:38:34 2020 +0200

    ACME adaptation

commit 46413eb0d92d6400aba0ff8dfe556e61e8a44d78
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 21:07:47 2020 +0200

    ACME adaptation

commit 9f98f69ecc21f7b74a5eb89e247f5a2c6fcb655d
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 20:05:03 2020 +0200

    ACME adaptation

commit 7bb9f1cadc682c7e0a4a6796739d860d473ca110
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 19:55:12 2020 +0200

    ACME adaptation

commit 5fc115392b5bdca6b56f67ad866b1884d2d2bdf8
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 19:31:10 2020 +0200

    ACME adaptation

commit b7940fc60e568d859df9e3156f6bacc6d685b2cc
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 19:16:09 2020 +0200

    ACME adaptation

commit 56288cb97197561afa0816b29c134ec1190e8eab
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 18:48:23 2020 +0200

    ACME adaptation

commit 10401a60fc7922a53d782120ef6795d889140218
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 16:34:16 2020 +0200

    ACME adaptation

commit 8ce76e4d2b56837a691ae84b1a412a2ae32a157b
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 16:20:44 2020 +0200

    ACME adaptation

commit 33fade899fa6172ea6b5b5f6683bb61f544429fd
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 15:28:46 2020 +0200

    ACME adaptation

commit a416f04734402fcfbc57a933731376df2e0180a1
Author: FeralChild64 <you@example.com>
Date:   Wed Sep 9 12:40:03 2020 +0200

    ACME adaptation

commit f8daee005b1d29f6912723be2ac94bc5fbeb0508
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 7 23:29:54 2020 +0200

    ACME adaptation

commit 83fe6bdd0b08a44fdbfc6eefe323a4b194ccaf5b
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 7 22:23:16 2020 +0200

    ACME adaptation

commit cb1f75620b9c83000a15c9c7f7acefdfee79a979
Author: FeralChild64 <you@example.com>
Date:   Mon Sep 7 19:23:12 2020 +0200

    ACME adaptation

commit e524d517c933ae1f0aeb49764d307fadb4845025
Author: FeralChild64 <you@example.com>
Date:   Sun Sep 6 08:24:25 2020 +0200

    ACME adaptation - replaced comments

commit 2ab572c3a21f4a78a7312d0e684bc11d91d1717a
Author: FeralChild64 <you@example.com>
Date:   Sat Sep 5 17:59:10 2020 +0200

    ACME adaptation - replaced the assembler
This commit is contained in:
FeralChild64 committed 2020-09-20 20:22:36 +02:00
1 parent bfc8291e41
commit c8d255130c
685 files changed
+15835 -16296

No files matched your search

+67 -77
View File
@@ -1,96 +1,86 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
//
// Jumptable for BASIC V2 dialect commands
//
;
; Jumptable for BASIC V2 dialect commands
;
!set ITEM_80 = cmd_end
!set ITEM_81 = cmd_for
!set ITEM_82 = cmd_next
!set ITEM_83 = cmd_data
!set ITEM_84 = cmd_inputhash
!set ITEM_85 = cmd_input
!set ITEM_86 = array_create ; cmd_dim
!set ITEM_87 = cmd_read
!set ITEM_88 = assign_variable ; cmd_let
!set ITEM_89 = cmd_goto
!set ITEM_8A = cmd_run
!set ITEM_8B = cmd_if
!set ITEM_8C = do_restore ; cmd_restore
!set ITEM_8D = cmd_gosub
!set ITEM_8E = cmd_return
!set ITEM_8F = cmd_rem
.const command_list = List().add(
!set ITEM_90 = cmd_stop
!set ITEM_91 = cmd_on
!set ITEM_92 = cmd_wait
!set ITEM_93 = cmd_load
!set ITEM_94 = cmd_save
!set ITEM_95 = cmd_verify
!set ITEM_96 = cmd_def
!set ITEM_97 = cmd_poke
!set ITEM_98 = cmd_printhash
!set ITEM_99 = cmd_print
!set ITEM_9A = cmd_cont
!set ITEM_9B = cmd_list
!set ITEM_9C = do_clr ; cmd_clr
!set ITEM_9D = cmd_cmd
!set ITEM_9E = cmd_sys
!set ITEM_9F = cmd_open
// $80 - $8F
cmd_end,
cmd_for,
cmd_next,
cmd_data,
cmd_inputhash,
cmd_input,
array_create, // cmd_dim
cmd_read,
assign_variable, // cmd_let
cmd_goto,
cmd_run,
cmd_if,
do_restore, // cmd_restore
cmd_gosub,
cmd_return,
cmd_rem,
// $90-$9F
cmd_stop,
cmd_on,
cmd_wait,
cmd_load,
cmd_save,
cmd_verify,
cmd_def,
cmd_poke,
cmd_printhash,
cmd_print,
cmd_cont,
cmd_list,
do_clr, // cmd_clr
cmd_cmd,
cmd_sys,
cmd_open,
// $A0-$A6
cmd_close,
cmd_get,
cmd_new,
cmd_tab, // XXX this token probably does not belong here
do_SYNTAX_error, // 'TO' is not a standalone command
do_SYNTAX_error, // 'FN' is not a standalone command
cmd_spc // XXX this token probably does not belong here
!set ITEM_A0 = cmd_close
!set ITEM_A1 = cmd_get
!set ITEM_A2 = cmd_new
!set ITEM_A3 = cmd_tab ; XXX this token probably does not belong here
!set ITEM_A4 = do_SYNTAX_error ; 'TO' is not a standalone command
!set ITEM_A5 = do_SYNTAX_error ; 'FN' is not a standalone command
!set ITEM_A6 = cmd_spc ; XXX this token probably does not belong here
// 'THEN' ($A7) and 'STEP' ($A9) are not standalone commands
// 'NOT' ($A8) is an operator, not a command
; 'THEN' ($A7) and 'STEP' ($A9) are not standalone commands
; 'NOT' ($A8) is an operator, not a command
// 'GO' ($CB) is handled separately
)
; 'GO' ($CB) is handled separately
#if !HAS_OPCODES_65C02
!ifndef HAS_OPCODES_65C02 {
command_jumptable_lo:
put_jumptable_lo(command_list)
!byte <(ITEM_80-1), <(ITEM_81-1), <(ITEM_82-1), <(ITEM_83-1), <(ITEM_84-1), <(ITEM_85-1), <(ITEM_86-1), <(ITEM_87-1)
!byte <(ITEM_88-1), <(ITEM_89-1), <(ITEM_8A-1), <(ITEM_8B-1), <(ITEM_8C-1), <(ITEM_8D-1), <(ITEM_8E-1), <(ITEM_8F-1)
!byte <(ITEM_90-1), <(ITEM_91-1), <(ITEM_92-1), <(ITEM_93-1), <(ITEM_94-1), <(ITEM_95-1), <(ITEM_96-1), <(ITEM_97-1)
!byte <(ITEM_98-1), <(ITEM_99-1), <(ITEM_9A-1), <(ITEM_9B-1), <(ITEM_9C-1), <(ITEM_9D-1), <(ITEM_9E-1), <(ITEM_9F-1)
!byte <(ITEM_A0-1), <(ITEM_A1-1), <(ITEM_A2-1), <(ITEM_A3-1), <(ITEM_A4-1), <(ITEM_A5-1), <(ITEM_A6-1)
command_jumptable_hi:
put_jumptable_hi(command_list)
!byte >(ITEM_80-1), >(ITEM_81-1), >(ITEM_82-1), >(ITEM_83-1), >(ITEM_84-1), >(ITEM_85-1), >(ITEM_86-1), >(ITEM_87-1)
!byte >(ITEM_88-1), >(ITEM_89-1), >(ITEM_8A-1), >(ITEM_8B-1), >(ITEM_8C-1), >(ITEM_8D-1), >(ITEM_8E-1), >(ITEM_8F-1)
!byte >(ITEM_90-1), >(ITEM_91-1), >(ITEM_92-1), >(ITEM_93-1), >(ITEM_94-1), >(ITEM_95-1), >(ITEM_96-1), >(ITEM_97-1)
!byte >(ITEM_98-1), >(ITEM_99-1), >(ITEM_9A-1), >(ITEM_9B-1), >(ITEM_9C-1), >(ITEM_9D-1), >(ITEM_9E-1), >(ITEM_9F-1)
!byte >(ITEM_A0-1), >(ITEM_A1-1), >(ITEM_A2-1), >(ITEM_A3-1), >(ITEM_A4-1), >(ITEM_A5-1), >(ITEM_A6-1)
#else // HAS_OPCODES_65C02
__before_command_jumptable:
.if (mod(*, $2) == 1) { brk } // align code so that vector never crosses page boundary
} else { ; HAS_OPCODES_65C02
command_jumptable:
put_jumptable(command_list)
; Note: 65C02 has the page boundary vector bug fixed!
// Make sure routine size is always the same - build system limitation
.if (__before_command_jumptable == command_jumptable) { brk }
#endif
!word ITEM_80, ITEM_81, ITEM_82, ITEM_83, ITEM_84, ITEM_85, ITEM_86, ITEM_87
!word ITEM_88, ITEM_89, ITEM_8A, ITEM_8B, ITEM_8C, ITEM_8D, ITEM_8E, ITEM_8F
!word ITEM_90, ITEM_91, ITEM_92, ITEM_93, ITEM_94, ITEM_95, ITEM_96, ITEM_97
!word ITEM_98, ITEM_99, ITEM_9A, ITEM_9B, ITEM_9C, ITEM_9D, ITEM_9E, ITEM_9F
!word ITEM_A0, ITEM_A1, ITEM_A2, ITEM_A3, ITEM_A4, ITEM_A5, ITEM_A6
}
+29 -29
View File
@@ -1,55 +1,55 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
//
// Default handler for all not-yet-implemented commands
//
// Note: NOPs are here just to make debugging easier (no duplicated labels)!
//
;
; Default handler for all not-yet-implemented commands
;
; Note: NOPs are here just to make debugging easier (no duplicated labels)!
;
cmd_for:
nop
+nop
cmd_next:
nop
+nop
cmd_data:
nop
+nop
cmd_inputhash:
nop
+nop
cmd_input:
nop
+nop
cmd_read:
nop
+nop
cmd_gosub:
nop
+nop
cmd_return:
nop
+nop
cmd_on:
nop
+nop
cmd_wait:
nop
+nop
cmd_def:
nop
+nop
cmd_poke:
nop
+nop
cmd_printhash:
nop
+nop
cmd_cont:
nop
+nop
cmd_cmd:
nop
+nop
cmd_open:
nop
+nop
cmd_close:
nop
+nop
cmd_get:
nop
+nop
cmd_tab:
nop
+nop
cmd_spc:
nop
+nop
// Unimplemented tokens
; Unimplemented tokens
jmp do_NOT_IMPLEMENTED_error
+5 -5
View File
@@ -1,8 +1,8 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
// PLACEHOLDER for completeness - jumptable contains direct address
; PLACEHOLDER for completeness - jumptable contains direct address
// CLR command does not stop execution (confirmed on a C64)
; CLR command does not stop execution (confirmed on a C64)
+4 -4
View File
@@ -1,6 +1,6 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
// PLACEHOLDER for completeness - jumptable contains direct address
; PLACEHOLDER for completeness - jumptable contains direct address
+48 -51
View File
@@ -1,60 +1,60 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
cmd_go:
jsr fetch_character_skip_spaces
cmp #$A4 // 'TO' keyword
cmp #$A4 ; 'TO' keyword
beq cmd_goto
#if !ROM_LAYOUT_M65
!ifndef CONFIG_MB_M65 {
// FALLTROUGH
; FALLTROUGH
cmd_go_syntax_error:
jmp do_SYNTAX_error
#else
} else {
cmp #$9E // 'SYS' keyword, for 'GO SYS'
beq_16 cmd_gosys
cmp #$9E ; 'SYS' keyword, for 'GO SYS'
+beq cmd_gosys
dew TXTPTR // unconsume character
dew TXTPTR ; unconsume character
// Fetch desired mode
; Fetch desired mode
jsr fetch_uint8
cmp #64
bne !+
bne @1
// If in native mode - switch to C64 compatibilty
; If in native mode - switch to C64 compatibilty
jsr M65_MODEGET
bcs cmd_go_rts
jsr helper_ask_if_sure
bcs_16 cmd_end
+bcs cmd_end
sec
jsr M65_MODESET // Carry set = switch to C64 mode
jmp_8 cmd_go_switchmode_clr_banner
!:
jsr M65_MODESET ; Carry set = switch to C64 mode
+bra cmd_go_switchmode_clr_banner
@1:
cmp #65
bne_16 do_ILLEGAL_QUANTITY_error
+bne do_ILLEGAL_QUANTITY_error
// If in C64 compatibility mode - switch to native mode
; If in C64 compatibility mode - switch to native mode
jsr M65_MODEGET
bcc cmd_go_rts
jsr helper_ask_if_sure
bcs_16 cmd_end
jsr M65_MODESET // Carry clear = switch to M65 mode
+bcs cmd_end
jsr M65_MODESET ; Carry clear = switch to M65 mode
// FALLTROUGH
; FALLTROUGH
cmd_go_switchmode_clr_banner:
@@ -62,7 +62,7 @@ cmd_go_switchmode_clr_banner:
ldx CURLIN+1
inx
beq_16 INITMSG
+beq INITMSG
lda #147
jmp JCHROUT
@@ -70,90 +70,87 @@ cmd_go_switchmode_clr_banner:
cmd_go_rts:
rts
#endif
}
cmd_run:
// RUN clears all variables
; RUN clears all variables
jsr do_clr
// Initialize OLDTXT pointer, disable Kernal messages
; Initialize OLDTXT pointer, disable Kernal messages
jsr init_oldtxt
lda #$00
jsr JSETMSG
// Check if we have any paramenters
; Check if we have any paramenters
jsr is_end_of_statement
bcs cmd_run_goto_launch
// FALLTROUGH
; FALLTROUGH
cmd_goto:
// GOTO requires line number
// XXX in case of no parameter, go to line 0 - checked with original ROMs
; GOTO requires line number
; XXX in case of no parameter, go to line 0 - checked with original ROMs
jsr fetch_line_number
#if !ROM_LAYOUT_M65
!ifndef CONFIG_MB_M65 {
bcs cmd_go_syntax_error
#else
bcs_16 do_SYNTAX_error
#endif
} else {
+bcs do_SYNTAX_error
}
// Check for direct mode
; Check for direct mode
lda CURLIN+1
bmi cmd_goto_direct
// Not a direct mode - compare desired line number (LINNUM) with the current one (CURLIN)
; Not a direct mode - compare desired line number (LINNUM) with the current one (CURLIN)
lda LINNUM+1
cmp CURLIN+1
bne !+
bne @2
lda LINNUM+0
cmp CURLIN+0
!:
// If desired line number is lower - search line number from start
@2:
; If desired line number is lower - search line number from start
bcc cmd_goto_from_start
// Else - search from the current line
; Else - search from the current line
jsr find_line_from_current
jmp_8 cmd_goto_check
+bra cmd_goto_check
cmd_goto_direct:
// Disable Kernal messages
; Disable Kernal messages
lda #$00
jsr JSETMSG
// FALLTROUGH
; FALLTROUGH
cmd_goto_from_start:
// Direct mode - find the line from the beginning
; Direct mode - find the line from the beginning
jsr find_line_from_start
// FALLTROUGH
; FALLTROUGH
cmd_goto_check:
bcs_16 do_UNDEFD_STATEMENT_error
+bcs do_UNDEFD_STATEMENT_error
// FALLTROUGH
; FALLTROUGH
cmd_run_goto_launch:
// Run it!
; Run it!
pha
pha
+14 -15
View File
@@ -1,38 +1,37 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
cmd_if:
#if ROM_LAYOUT_M65
!ifdef CONFIG_MB_M65 {
jsr helper_if_mega65
bcc cmd_if_true
}
#endif
// Calculate expression
; Calculate expression
jsr FRMEVL
// Check the result - either string size or floating point 0 vs non-0
; Check the result - either string size or floating point 0 vs non-0
lda FAC1_exponent
beq_16 cmd_rem
+beq cmd_rem
// FALLTROUGH
; FALLTROUGH
cmd_if_true:
// Condition fulfilled - look for GOTO or THEN
; Condition fulfilled - look for GOTO or THEN
jsr fetch_character_skip_spaces
cmp #$89 // 'GOTO'
beq_16 cmd_goto
cmp #$89 ; 'GOTO'
+beq cmd_goto
cmp #$A7 // 'THEN'
bne_16 do_SYNTAX_error
cmp #$A7 ; 'THEN'
+bne do_SYNTAX_error
pla
pla
+4 -4
View File
@@ -1,6 +1,6 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
// PLACEHOLDER for completeness - jumptable contains direct address
; PLACEHOLDER for completeness - jumptable contains direct address
+15 -16
View File
@@ -1,44 +1,43 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
// LIST basic text.
// XXX - Does not currently support line number ranges
; LIST basic text.
; XXX - Does not currently support line number ranges
cmd_list:
// Set current line pointer to start of memory
; Set current line pointer to start of memory
jsr init_oldtxt
list_loop:
ldy #1
#if CONFIG_MEMORY_MODEL_60K
!ifdef CONFIG_MEMORY_MODEL_60K {
ldx #<OLDTXT+0
jsr peek_under_roms
cmp #$00
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
} else ifdef CONFIG_MEMORY_MODEL_46K_OR_50K {
jsr peek_under_roms_via_OLDTXT
cmp #$00
#else // CONFIG_MEMORY_MODEL_38K
} else { ; CONFIG_MEMORY_MODEL_38K
lda (OLDTXT),y
#endif
}
bne list_more_lines
// LIST terminates any running program,
// because it has fiddled with the current line pointer.
// (Confirmed by testing on a C64)
; LIST terminates any running program,
; because it has fiddled with the current line pointer.
; (Confirmed by testing on a C64)
jmp end_of_program
list_more_lines:
lda STKEY
bmi !+
jmp cmd_stop
!:
+bpl cmd_stop
jsr list_single_line
jsr follow_link_to_next_line
jmp list_loop
+32 -32
View File
@@ -1,81 +1,81 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
cmd_verify:
// LOAD and VERIFY are very similar, from BASIC perspective there is almost no difference;
// just different parameter passed to Kernal and different error message in case of failure
; LOAD and VERIFY are very similar, from BASIC perspective there is almost no difference;
; just different parameter passed to Kernal and different error message in case of failure
lda #$01 // mark operation as VERIFY
skip_2_bytes_trash_nvz
lda #$01 ; mark operation as VERIFY
+skip_2_bytes_trash_nvz
cmd_load:
lda #$00 // mark operation as LOAD
lda #$00 ; mark operation as LOAD
jsr helper_load_init_params
jsr helper_load_setnam_any // if no file name found, use "*"
jsr helper_load_setnam_any ; if no file name found, use "*"
// Fetch the file name
; Fetch the file name
jsr helper_load_fetch_filename
bcs !+
bcs @1
// Try to fetch device number and secondary address
; Try to fetch device number and secondary address
jsr helper_load_fetch_devnum
bcs !+
bcs @1
jsr helper_load_fetch_secondary
!:
// FALLTROUGH
@1:
; FALLTROUGH
cmd_load_got_params: // input for tape wedge
cmd_load_got_params: ; input for tape wedge
// Perform loading
; Perform loading
ldy TXTTAB+1
ldx TXTTAB+0
lda VERCKB // LOAD or VERIFY
lda VERCKB ; LOAD or VERIFY
jsr JLOAD
bcs_16 do_kernal_error
+bcs do_kernal_error
cmd_load_no_error:
// Store last loaded address
; Store last loaded address
stx VARTAB+0
sty VARTAB+1
// For VERIFY - this is it
; For VERIFY - this is it
lda VERCKB
bne_16 end_of_statement
+bne end_of_statement
// C64 BASIC apparently does not clear variables after a LOAD in the
// middle of a program. For safety, we do.
; C64 BASIC apparently does not clear variables after a LOAD in the
; middle of a program. For safety, we do.
jsr do_clr
// Now relink the loaded program, as we cannot trust the line
// links supplied. For example, the VICE virtual drive emulation
// always supplies $0101 as the address of the next line
; Now relink the loaded program, as we cannot trust the line
; links supplied. For example, the VICE virtual drive emulation
; always supplies $0101 as the address of the next line
jsr LINKPRG
// Now we either start the program from the beginning,
// or go back to the READY prompt if LOAD was called from direct mode.
; Now we either start the program from the beginning,
; or go back to the READY prompt if LOAD was called from direct mode.
// Reset to start of program
; Reset to start of program
jsr init_oldtxt
// If loading was done when running a program - run it
; If loading was done when running a program - run it
ldx CURLIN+1
inx
beq_16 end_of_program // branch if direct mode
+beq end_of_program ; branch if direct mode
pha
pha
+4 -4
View File
@@ -1,12 +1,12 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
cmd_new:
jsr do_new
// NEW command terminates execution (confirmed on a C64)
; NEW command terminates execution (confirmed on a C64)
jmp end_of_program
+30 -32
View File
@@ -1,91 +1,89 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
cmd_print:
// First check if we have anything to print
; First check if we have anything to print
jsr is_end_of_statement
bcs cmd_print_new_line_done
jsr fetch_character
cmp #$3B // semicolon
cmp #$3B ; semicolon
beq cmd_print_done
// FALLTROUGH
; FALLTROUGH
cmd_print_loop:
#if !HAS_OPCODES_65CE02
!ifndef HAS_OPCODES_65CE02 {
jsr unconsume_character
#else
} else {
dew TXTPTR
#endif
}
// FALLTROUGH
; FALLTROUGH
cmd_print_after_comma:
// Now evaluate the expression and check what to print
; Now evaluate the expression and check what to print
jsr tmpstr_free_all
jsr FRMEVL
lda VALTYP
bpl cmd_print_float
// FALLTROUGH
; FALLTROUGH
cmd_print_string:
// Print a string value
; Print a string value
#if CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
!ifdef CONFIG_MEMORY_MODEL_46K_OR_50K {
jsr helper_print_string
jmp_8 cmd_print_next_arg
+bra cmd_print_next_arg
#else // CONFIG_MEMORY_MODEL_38K || CONFIG_MEMORY_MODEL_60K
} else { ; CONFIG_MEMORY_MODEL_38K || CONFIG_MEMORY_MODEL_60K
ldy #$00
!:
@1:
cpy __FAC1 + 0
beq cmd_print_next_arg
#if CONFIG_MEMORY_MODEL_60K
!ifdef CONFIG_MEMORY_MODEL_60K {
ldx #<(__FAC1 + 1)
jsr peek_under_roms
#else // CONFIG_MEMORY_MODEL_38K
} else { ; CONFIG_MEMORY_MODEL_38K
lda (__FAC1 + 1), y
#endif
}
jsr JCHROUT
iny
bpl !-
#endif
bpl @1
}
cmd_print_float:
// XXX probably we should also check INTFLG here
// XXX provide implementation
; XXX probably we should also check INTFLG here
; XXX provide implementation
jmp do_NOT_IMPLEMENTED_error
// FALLTROUGH
; FALLTROUGH
cmd_print_next_arg:
// Look for the next argument
; Look for the next argument
jsr is_end_of_statement
bcs cmd_print_new_line_done
cmp #$2C // comma XXX on C64 behavior is more complicated, fix it
cmp #$2C ; comma XXX on C64 behavior is more complicated, fix it
beq cmd_print_after_comma
cmp #$3B // semicolon
cmp #$3B ; semicolon
beq cmd_print_done
bne cmd_print_loop
@@ -93,10 +91,10 @@ cmd_print_new_line_done:
jsr print_return
// FALLTROUGH
; FALLTROUGH
cmd_print_done:
// Execute next statement
; Execute next statement
rts
+5 -5
View File
@@ -1,13 +1,13 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
// REM statement just skips to the next line
; REM statement just skips to the next line
cmd_rem:
// XXX do we need these PHA's?
; XXX do we need these PHA's?
pha
pha
+5 -5
View File
@@ -1,8 +1,8 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
// PLACEHOLDER for completeness - jumptable contains direct address
; PLACEHOLDER for completeness - jumptable contains direct address
// RESTORE command does not stop execution (confirmed on a C64)
; RESTORE command does not stop execution (confirmed on a C64)
+16 -16
View File
@@ -1,43 +1,43 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
cmd_save:
// Set default device and secondary address
; Set default device and secondary address
jsr helper_load_init_params_no_VERCKB
// Fetch the file name
; Fetch the file name
jsr helper_load_fetch_filename
bcs_16 do_MISSING_FILENAME_error
+bcs do_MISSING_FILENAME_error
// Try to fetch device number and secondary address
; Try to fetch device number and secondary address
jsr helper_load_fetch_devnum
bcs !+
bcs @1
jsr helper_load_fetch_secondary
!:
// Setup the start address
@1:
; Setup the start address
lda #TXTTAB
// Setup the end address
; Setup the end address
ldx VARTAB+0
ldy VARTAB+1
// FALLTROUGH
; FALLTROUGH
cmd_save_do: // entry point for BSAVE
cmd_save_do: ; entry point for BSAVE
// Perform saving
; Perform saving
jsr JSAVE
bcs_16 do_kernal_error
+bcs do_kernal_error
// Execute next statement
; Execute next statement
rts
+7 -7
View File
@@ -1,21 +1,21 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
cmd_stop:
jsr print_return
ldx #IDX__EV2_1E // "BREAK"
ldx #IDX__EV2_1E ; "BREAK"
jsr print_packed_error
// Are we in direct mode
; Are we in direct mode
lda CURLIN+1
cmp #$FF
beq cmd_end
// Not direct mode
; Not direct mode
ldx #IDX__STR_IN
jsr print_packed_misc_str
@@ -23,7 +23,7 @@ cmd_stop:
ldx CURLIN+0
jsr print_integer
// FALLTROUGH
; FALLTROUGH
cmd_end:
+35 -35
View File
@@ -1,46 +1,45 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
#if ROM_LAYOUT_M65
!ifdef CONFIG_MB_M65 {
cmd_gosys:
// NSYS requires an argument
; GO SYS requires an argument
jsr is_end_of_statement
bcs_16 do_SYNTAX_error
bra cmd_sys_nsys_common
#endif
+bcs do_SYNTAX_error
+bra cmd_sys_common
}
cmd_sys:
// SYS requires an argument
; SYS requires an argument
jsr is_end_of_statement
bcs_16 do_SYNTAX_error
+bcs do_SYNTAX_error
#if ROM_LAYOUT_M65
!ifdef CONFIG_MB_M65 {
// Make sure we are in C64 compatibility mode
; Make sure we are in C64 compatibility mode
jsr M65_MODEGET
bcs cmd_sys_nsys_common
bcs cmd_sys_common
sec
jsr M65_MODESET // set legacy C64 compatibility mode
jsr M65_MODESET ; set legacy C64 compatibility mode
jsr INITMSG_autoswitch
// FALLTROUGH
; FALLTROUGH
cmd_sys_nsys_common:
cmd_sys_common:
#endif
}
//
// XXX Temporary ugly hack to support 'SYS PI*656'
//
;
; XXX Temporary ugly hack to support 'SYS PI*656'
;
ldy #$00
@@ -51,7 +50,7 @@ cmd_sys_hack_loop:
lda (TXTPTR), y
beq cmd_sys_hack_apply
iny
bne cmd_sys_hack_loop // branch always
bne cmd_sys_hack_loop ; branch always
cmd_sys_hack_apply:
@@ -59,27 +58,27 @@ cmd_sys_hack_apply:
sta LINNUM+0
lda #>2060
sta LINNUM+1
bne cmd_sys_setup_call // always jumps
bne cmd_sys_setup_call ; always jumps
cmd_sys_hack_not_needed:
//
// XXX End of hack
//
;
; XXX End of hack
;
lda #IDX__EV2_0B // 'SYNTAX ERROR'
lda #IDX__EV2_0B ; 'SYNTAX ERROR'
jsr fetch_uint16
bcs_16 do_SYNTAX_error
+bcs do_SYNTAX_error
cmd_sys_setup_call:
lda #$4C // JMP opcode
lda #$4C ; JMP opcode
sta USRPOK
lda LINNUM+0
sta USRADD+0
lda LINNUM+1
sta USRADD+1
// Setup the register values
; Setup the register values
lda SPREG
pha
ldy SYREG
@@ -87,12 +86,13 @@ cmd_sys_setup_call:
lda SAREG
plp
// Call the routine.
; Call the routine.
jmp USRPOK
//
// XXX Temporary ugly hack to support 'SYS PI*656'
//
;
; XXX Temporary ugly hack to support 'SYS PI*656'
;
cmd_sys_hack_str:
.byte $FF, $AC, $36, $35, $36, $00
!byte $FF, $AC, $36, $35, $36, $00
+18 -19
View File
@@ -1,41 +1,41 @@
// #LAYOUT# M65 BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# M65 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
#if CONFIG_MEMORY_MODEL_38K
!ifndef CONFIG_MEMORY_MODEL_46K_OR_50K {
helper_if_mega65:
// Injest all spaces
; Injest all spaces
ldy #$00
!:
@1:
lda (TXTPTR), Y
cmp #$20
bne !+
bne @2
inw TXTPTR
bra !-
!:
bra @1
@2:
// Check for MEGA65 untokenized keyword
; Check for MEGA65 untokenized keyword
ldy #$05
!:
@3:
lda (TXTPTR), Y
cmp str_mega65, Y
bne_16 helper_if_mega65_fail
+bne helper_if_mega65_fail
dey
bpl !-
bpl @3
// Increment TXTPTR by 6
; Increment TXTPTR by 6
clc
lda TXTPTR+0
adc #$06
sta TXTPTR+0
bcc !+
bcc @4
inc TXTPTR+1
!:
// Report successful check
@4:
; Report successful check
clc
rts
@@ -47,6 +47,5 @@ helper_if_mega65_fail:
str_mega65:
.byte $4D, $45, $47, $41, $36, $35
#endif
!byte $4D, $45, $47, $41, $36, $35
}
@@ -1,54 +1,52 @@
// #LAYOUT# M65 BASIC_0 #TAKE-HIGH
// #LAYOUT# * * #IGNORE
;; #LAYOUT# M65 BASIC_0 #TAKE-HIGH
;; #LAYOUT# * * #IGNORE
// This has to go $E000 or above - routine below banks out the main BASIC ROM!
; This has to go $E000 or above - routine below banks out the main BASIC ROM!
#if CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
!ifdef CONFIG_MEMORY_MODEL_46K_OR_50K {
helper_if_mega65:
// Unmap BASIC lower ROM
; Unmap BASIC lower ROM
lda #$26
sta CPU_R6510
// Injest all spaces
; Injest all spaces
ldy #$00
!:
@1:
lda (TXTPTR), Y
cmp #$20
bne !+
bne @2
inw TXTPTR
bra !-
!:
bra @1
@2:
// Check for MEGA65 untokenized keyword
; Check for MEGA65 untokenized keyword
ldy #$05
!:
@3:
lda (TXTPTR), Y
cmp str_mega65, Y
bne_16 remap_BASIC_sec_rts
+bne remap_BASIC_sec_rts
dey
bpl !-
bpl @3
// Increment TXTPTR by 6
; Increment TXTPTR by 6
clc
lda TXTPTR+0
adc #$06
sta TXTPTR+0
bcc !+
bcc @4
inc TXTPTR+1
!:
// Report successful check
@4:
; Report successful check
jmp remap_BASIC_clc_rts
str_mega65:
.byte $4D, $45, $47, $41, $36, $35
#endif
!byte $4D, $45, $47, $41, $36, $35
}
@@ -1,20 +1,20 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
//
// Tries to fetch device number - sets Carry if failure
//
;
; Tries to fetch device number - sets Carry if failure
;
helper_load_fetch_devnum:
// Fetch the device number
; Fetch the device number
jsr fetch_coma_uint8
bcs !+
bcs @1
sta FA
!:
@1:
rts
@@ -1,27 +1,27 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
//
// Fetches file name, Carry set if not found
//
;
; Fetches file name, Carry set if not found
;
helper_load_fetch_filename:
// Check if end of statement
; Check if end of statement
jsr is_end_of_statement
bcs !+
bcs @1
// Call the expression parser, make sure it returned a string
; Call the expression parser, make sure it returned a string
jsr FRMEVL
lda VALTYP
bpl_16 do_SYNTAX_error
+bpl do_SYNTAX_error
// Set the filename address and pointer
; Set the filename address and pointer
lda __FAC1+0
sta FNLEN
@@ -31,11 +31,11 @@ helper_load_fetch_filename:
lda __FAC1+2
sta FNADDR+1
// Mark success
; Mark success
clc
// FALLTROUGH
; FALLTROUGH
!:
@1:
rts
@@ -1,20 +1,20 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
//
// Tries to fetch secondary address - sets Carry if failure
//
;
; Tries to fetch secondary address - sets Carry if failure
;
helper_load_fetch_secondary:
// Fetch the device number
; Fetch the device number
jsr fetch_coma_uint8
bcs !+
bcs @1
sta SA
!:
@1:
rts
@@ -1,27 +1,27 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
//
// Sets initial parameters for LOAD and simiar commands
//
// Input:
// - VERCKB content in .A
//
;
; Sets initial parameters for LOAD and simiar commands
;
; Input:
; - VERCKB content in .A
;
helper_load_init_params:
// Set LOAD/VERIFY flag
; Set LOAD/VERIFY flag
sta VERCKB
// FALLTROUGH
; FALLTROUGH
helper_load_init_params_no_VERCKB:
// Set default device, set secondary address to 0
; Set default device, set secondary address to 0
jsr SELDEV
ldy #$00 // secondary address
ldy #$00 ; secondary address
jmp JSETFLS
@@ -1,15 +1,15 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
//
// Set '*' as file name
//
;
; Set '*' as file name
;
helper_load_setnam_any:
lda #$01 // name length
lda #$01 ; name length
ldx #<filename_any
ldy #>filename_any
jmp JSETNAM
@@ -1,27 +1,26 @@
// #LAYOUT# STD * #TAKE-HIGH
// #LAYOUT# * BASIC_0 #TAKE-HIGH
// #LAYOUT# * * #IGNORE
;; #LAYOUT# STD * #TAKE-HIGH
;; #LAYOUT# * BASIC_0 #TAKE-HIGH
;; #LAYOUT# * * #IGNORE
// This has to go $E000 or above - routine below banks out the main BASIC ROM!
; This has to go $E000 or above - routine below banks out the main BASIC ROM!
#if CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
!ifdef CONFIG_MEMORY_MODEL_46K_OR_50K {
helper_print_string:
// Unmap BASIC lower ROM
; Unmap BASIC lower ROM
lda #$26
sta CPU_R6510
// Print the string
; Print the string
ldy #$00
!:
@1:
cpy __FAC1 + 0
beq_16 remap_BASIC // branch if end of the string
+beq remap_BASIC ; branch if end of the string
lda (__FAC1 + 1), y
jsr JCHROUT
iny
bpl !-
#endif
bpl @1
}