mirror of
https://github.com/forth-ev/VolksForth.git
synced 2024-11-29 05:49:26 +00:00
Merge pull request #10 from pzembrod/master
Migrate most of c64/c16.volksforth target compile sources from vforth4_2.d64 to .fth files
This commit is contained in:
commit
f1e0dedb17
@ -30,11 +30,21 @@ test: test-c64.result test-c16.result
|
|||||||
|
|
||||||
test64: test-c64.result
|
test64: test-c64.result
|
||||||
|
|
||||||
|
debug-64: emulator/tcbase.T64 emulator/build-vf.sh \
|
||||||
|
disks/vforth4_2.d64 disks/tc38q.d64 $(vf_fth_files_petscii)
|
||||||
|
emulator/build-vf.sh vf-c64-main.fth
|
||||||
|
|
||||||
# Temporary bincmp target while the old and the new binaries are still
|
# Temporary bincmp target while the old and the new binaries are still
|
||||||
# expected to be binary identical.
|
# expected to be binary identical.
|
||||||
|
# Note: There is now 1 byte difference between the
|
||||||
|
# old c64/c16-volksforth83 and the new c64/c16-vf-reference:
|
||||||
|
# Byte $1b64 changed from $7c (old) to $dc (new).
|
||||||
|
# This corresponds to the ." |" string in .name (blk/page $4e).
|
||||||
|
# Since both represent the same character in PETSCII, namely | ,
|
||||||
|
# the difference is acceptable, and a new reference binary was set.
|
||||||
bincmp: cbmfiles/c64-vf-latest cbmfiles/c16-vf-latest
|
bincmp: cbmfiles/c64-vf-latest cbmfiles/c16-vf-latest
|
||||||
cmp cbmfiles/c64-vf-latest cbmfiles/c64-volksforth83
|
cmp -b -l cbmfiles/c64-vf-latest tests/c64-vf-reference
|
||||||
cmp cbmfiles/c16-vf-latest cbmfiles/c16-volksforth83
|
cmp -b -l cbmfiles/c16-vf-latest tests/c16-vf-reference
|
||||||
|
|
||||||
run-devenv: emulator/devenv.T64
|
run-devenv: emulator/devenv.T64
|
||||||
emulator/run-in-vice.sh devenv
|
emulator/run-in-vice.sh devenv
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -449,12 +449,15 @@ Code cSave ( f t+1 Name Nlen dev--err)
|
|||||||
|
|
||||||
\ *** Block No. 16, Hexblock 10
|
\ *** Block No. 16, Hexblock 10
|
||||||
|
|
||||||
\ Target compiler loadscr clv14oct87
|
\ Target compiler loadscr 11jul20pz
|
||||||
\ Idea and first Implementation by ks/bp
|
\ Idea and first Implementation by ks/bp
|
||||||
\ Implemented on 6502 by ks/bp
|
\ Implemented on 6502 by ks/bp
|
||||||
\ volksFORTH83-Version by bp/we
|
\ volksFORTH83-Version by bp/we
|
||||||
|
|
||||||
Onlyforth hex
|
Onlyforth hex
|
||||||
|
: (blk@ blk @ ;
|
||||||
|
Defer blk@ ' (blk@ is blk@
|
||||||
|
|
||||||
\needs (16 .( ?! (16 (64 ?! C) quit
|
\needs (16 .( ?! (16 (64 ?! C) quit
|
||||||
Assembler \needs nonrelocate 5 load
|
Assembler \needs nonrelocate 5 load
|
||||||
Assembler nonrelocate
|
Assembler nonrelocate
|
||||||
@ -472,9 +475,6 @@ clear
|
|||||||
\ hex 17 20 +thru \ predefinitions
|
\ hex 17 20 +thru \ predefinitions
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 17, Hexblock 11
|
\ *** Block No. 17, Hexblock 11
|
||||||
|
|
||||||
\ Target header pointers bp27jun85we
|
\ Target header pointers bp27jun85we
|
||||||
@ -785,7 +785,7 @@ Forth definitions
|
|||||||
|
|
||||||
\ *** Block No. 28, Hexblock 1c
|
\ *** Block No. 28, Hexblock 1c
|
||||||
|
|
||||||
\ compiling names into targ. bp27jun85we
|
\ compiling names into targ. 11jul20pz
|
||||||
|
|
||||||
: (theader
|
: (theader
|
||||||
?thead @ IF 1 ?thead +!
|
?thead @ IF 1 ?thead +!
|
||||||
|
@ -13,9 +13,10 @@ basedir="$(realpath --relative-to="$PWD" "${emulatordir}/..")"
|
|||||||
source="$1"
|
source="$1"
|
||||||
target="$2"
|
target="$2"
|
||||||
|
|
||||||
rm -f "${basedir}/cbmfiles/${target}"
|
test -n "$target" && rm -f "${basedir}/cbmfiles/${target}"
|
||||||
|
|
||||||
keybuf="include ${source}\nsave-target ${target}\ndos s0:notdone\n"
|
keybuf="include ${source}\nsave-target ${target}\ndos s0:notdone\n"
|
||||||
|
test -z "$target" && keybuf="include ${source}\n"
|
||||||
|
|
||||||
DISK9=vforth4_2 DISK10=tc38q "${emulatordir}/run-in-vice.sh" \
|
DISK9=vforth4_2 DISK10=tc38q "${emulatordir}/run-in-vice.sh" \
|
||||||
"tcbase" "${keybuf}"
|
"tcbase" "${keybuf}"
|
||||||
|
@ -6,8 +6,9 @@ hex
|
|||||||
1 drive
|
1 drive
|
||||||
|
|
||||||
Onlyforth hex
|
Onlyforth hex
|
||||||
c load \ clear memory and
|
\ clear memory and clr labels .status
|
||||||
d e thru \ clr labels .status
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 9, Hexblock 9
|
\ *** Block No. 9, Hexblock 9
|
||||||
|
|
||||||
|
@ -6,8 +6,9 @@ hex
|
|||||||
1 drive
|
1 drive
|
||||||
|
|
||||||
Onlyforth hex
|
Onlyforth hex
|
||||||
c load \ clear memory and
|
\ clear memory and clr labels .status
|
||||||
d e thru \ clr labels .status
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 9, Hexblock 9
|
\ *** Block No. 9, Hexblock 9
|
||||||
|
|
||||||
|
@ -6,8 +6,9 @@ hex
|
|||||||
1 drive
|
1 drive
|
||||||
|
|
||||||
Onlyforth hex
|
Onlyforth hex
|
||||||
c load \ clear memory and
|
\ clear memory and clr labels .status
|
||||||
d e thru \ clr labels .status
|
include vf-tc-prep.fth
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 9, Hexblock 9
|
\ *** Block No. 9, Hexblock 9
|
||||||
|
|
||||||
|
82
6502/C64/src/vf-finalize.fth
Normal file
82
6502/C64/src/vf-finalize.fth
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
|
||||||
|
\ *** Block No. 123, Hexblock 7b
|
||||||
|
7b fthpage
|
||||||
|
|
||||||
|
\ The remainder to do after loading the
|
||||||
|
\ system-dependent part of the sources.
|
||||||
|
|
||||||
|
Host ' Transient 8 + @
|
||||||
|
Transient Forth Context @ 6 + !
|
||||||
|
Target
|
||||||
|
|
||||||
|
Forth also definitions
|
||||||
|
|
||||||
|
(C16 : (64 ) \ jumps belhind C)
|
||||||
|
(C64 : (16 )
|
||||||
|
BEGIN name count 0= abort" C) missing"
|
||||||
|
@ [ Ascii C Ascii ) $100 * + ] Literal
|
||||||
|
= UNTIL ; immediate
|
||||||
|
|
||||||
|
: C) ; immediate
|
||||||
|
|
||||||
|
(C16 : (16 ) (C64 : (64 ) ; immediate
|
||||||
|
|
||||||
|
: forth-83 ; \ last word in Dictionary
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 124, Hexblock 7c
|
||||||
|
7c fthpage
|
||||||
|
|
||||||
|
( System dependent Constants bp/ks)
|
||||||
|
|
||||||
|
Vocabulary Assembler
|
||||||
|
Assembler definitions
|
||||||
|
Transient Assembler
|
||||||
|
|
||||||
|
PushA Constant PushA
|
||||||
|
\ put A sign-extended on stack
|
||||||
|
Push0A Constant Push0A
|
||||||
|
\ put A on stack
|
||||||
|
Push Constant Push
|
||||||
|
\ MSB in A and LSB on jsr-stack
|
||||||
|
|
||||||
|
RP Constant RP
|
||||||
|
UP Constant UP
|
||||||
|
SP Constant SP
|
||||||
|
IP Constant IP
|
||||||
|
N Constant N
|
||||||
|
Puta Constant Puta
|
||||||
|
W Constant W
|
||||||
|
Setup Constant Setup
|
||||||
|
Next Constant Next
|
||||||
|
xyNext Constant xyNext
|
||||||
|
(2drop Constant Poptwo
|
||||||
|
(drop Constant Pop
|
||||||
|
|
||||||
|
\ *** Block No. 125, Hexblock 7d
|
||||||
|
7d fthpage
|
||||||
|
|
||||||
|
\ System patchup clv06aug87
|
||||||
|
|
||||||
|
Forth definitions
|
||||||
|
|
||||||
|
(C64 C000 ' limit >body ! 7B00 s0 ! 7F00 r0 ! )
|
||||||
|
|
||||||
|
(C16 8000 ' limit >body ! 7700 s0 ! 7b00 r0 ! )
|
||||||
|
|
||||||
|
\ (C16+ fd00 ' limit >body !
|
||||||
|
\ 7B00 s0 ! 7F00 r0 ! )
|
||||||
|
|
||||||
|
s0 @ dup s0 2- ! 6 + s0 7 - !
|
||||||
|
here dp !
|
||||||
|
|
||||||
|
Host Tudp @ Target udp !
|
||||||
|
Host Tvoc-link @ Target voc-link !
|
||||||
|
Host move-threads
|
||||||
|
|
||||||
|
\ Final part of loadscreen
|
||||||
|
|
||||||
|
Assembler nonrelocate
|
||||||
|
|
||||||
|
.unresolved
|
@ -2,17 +2,12 @@
|
|||||||
|
|
||||||
include vf-pr-target.fth
|
include vf-pr-target.fth
|
||||||
|
|
||||||
Onlyforth
|
include vf-sys-indep.fth
|
||||||
|
|
||||||
(C64 $801 ) (C16 $1001 ) dup displace !
|
$7E $93 thru \ CBM-Interface
|
||||||
|
(c16+ $94 load ) \ c16init RamIRQ
|
||||||
|
|
||||||
Target definitions here!
|
include vf-finalize.fth
|
||||||
|
|
||||||
$10 $7D thru
|
|
||||||
|
|
||||||
Assembler nonrelocate
|
|
||||||
|
|
||||||
.unresolved
|
|
||||||
|
|
||||||
' .blk is .status
|
' .blk is .status
|
||||||
|
|
||||||
|
2999
6502/C64/src/vf-sys-indep.fth
Normal file
2999
6502/C64/src/vf-sys-indep.fth
Normal file
File diff suppressed because it is too large
Load Diff
75
6502/C64/src/vf-tc-prep.fth
Normal file
75
6502/C64/src/vf-tc-prep.fth
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
\ *** Block No. 12, Hexblock c
|
||||||
|
|
||||||
|
\ ramfill 3:
|
||||||
|
|
||||||
|
Onlyforth
|
||||||
|
|
||||||
|
Code ramfill ( adr n 8b -)
|
||||||
|
sei 34 # lda 1 sta
|
||||||
|
3 # lda setup jsr
|
||||||
|
N 3 + ldx txa N 2+ ora 0<>
|
||||||
|
?[ N lda 0 # ldy
|
||||||
|
[[ 0 # cpx 0<>
|
||||||
|
?[[ [[ N 4 + )Y sta iny 0= ?]
|
||||||
|
N 5 + inc dex ]]?
|
||||||
|
N 2+ ldx 0<> ?[
|
||||||
|
[[ N 4 + )Y sta iny N 2+ cpy CS ?] ]?
|
||||||
|
]?
|
||||||
|
36 # lda 1 sta cli
|
||||||
|
0 # ldx 1 # ldy Next jmp
|
||||||
|
end-code
|
||||||
|
|
||||||
|
$C000 $4000 (16 $300 - C) 0 ramfill
|
||||||
|
|
||||||
|
forget ramfill
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 13, Hexblock d
|
||||||
|
|
||||||
|
( Deleting Assembler Labels bp27jun85we)
|
||||||
|
|
||||||
|
: delete Assembler name find
|
||||||
|
IF >name count $1F and
|
||||||
|
bounds ?DO $1F I c! LOOP
|
||||||
|
ELSE count type space THEN ;
|
||||||
|
|
||||||
|
delete setup delete xyNext
|
||||||
|
delete Puta delete SP
|
||||||
|
delete Pop delete Next
|
||||||
|
delete N delete UP
|
||||||
|
delete Poptwo delete W
|
||||||
|
delete IP delete RP
|
||||||
|
delete Push delete Push0A
|
||||||
|
delete PushA delete ;c:
|
||||||
|
|
||||||
|
forget delete Onlyforth
|
||||||
|
|
||||||
|
|
||||||
|
\ *** Block No. 14, Hexblock e
|
||||||
|
|
||||||
|
( Definition for .status 28jun85we)
|
||||||
|
|
||||||
|
: status
|
||||||
|
blk @ ?dup IF
|
||||||
|
." blk " u.
|
||||||
|
." here " here u.
|
||||||
|
." there " there u.
|
||||||
|
." heap " heap u. cr
|
||||||
|
THEN ;
|
||||||
|
|
||||||
|
' status is .status
|
||||||
|
|
||||||
|
variable current-page 0 current-page !
|
||||||
|
|
||||||
|
: fthpage ( page# -- )
|
||||||
|
dup current-page !
|
||||||
|
." page " u.
|
||||||
|
." here " here u.
|
||||||
|
." there " there u.
|
||||||
|
." heap " heap u. cr ;
|
||||||
|
|
||||||
|
: blk-or-page@ ( -- blk#/page# )
|
||||||
|
blk @ ?dup ?exit
|
||||||
|
current-page @ ;
|
||||||
|
|
||||||
|
' blk-or-page@ is blk@
|
BIN
6502/C64/tests/c16-vf-reference
Normal file
BIN
6502/C64/tests/c16-vf-reference
Normal file
Binary file not shown.
BIN
6502/C64/tests/c64-vf-reference
Normal file
BIN
6502/C64/tests/c64-vf-reference
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user