mirror of
https://github.com/forth-ev/VolksForth.git
synced 2025-02-18 03:30:36 +00:00
Merge branch 'master' of https://github.com/forth-ev/VolksForth into c64-390
This commit is contained in:
commit
dedc8f469f
146
6502/Atari8bit/3.81.4/readme.org
Normal file
146
6502/Atari8bit/3.81.4/readme.org
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
#+Title: VolksForth Atari 8-bit Readme Version 1.1
|
||||||
|
#+Date: 13. August 2006
|
||||||
|
#+Author: Carsten Strotmann
|
||||||
|
|
||||||
|
VolksForth is a 16bit Forth System produced by the german Forth
|
||||||
|
Gesellschaft e.V. Main development of this system was done between
|
||||||
|
1985 until 1989. The VolksForth Project was revived in 2005 with the
|
||||||
|
goal to produce a managable Forthsystem for computer systems with
|
||||||
|
restricted system resources.
|
||||||
|
|
||||||
|
Some modern Forth Systems were influenced by or were derived from
|
||||||
|
VolksForth (GNU-Forth, bigForth).
|
||||||
|
|
||||||
|
The current Version of VolskForth is 3.81. Work on Version 3.90 has
|
||||||
|
been started.
|
||||||
|
|
||||||
|
At this time VolksForth is available for this Systems:
|
||||||
|
|
||||||
|
* VolksForth MS-DOS (Intel x86 Architecture i8086-ia64)
|
||||||
|
* VolksForth 6502 (Commodore 64, Commodore Plus 4, Atari 8bit, Apple I, Apple II)
|
||||||
|
* VolksForth Z80 (CP/M, Schneider CPC CP/M)
|
||||||
|
* VolksForth 68000 (Atari ST)
|
||||||
|
|
||||||
|
VolksForth is in work for this Systems:
|
||||||
|
|
||||||
|
* VolksForth MS-DOS (Atari Portfolio)
|
||||||
|
* VolksForth Z80 (Schneider CPC AMSDOS)
|
||||||
|
* VolksForth 68000 (Mac Classic, Amiga)
|
||||||
|
|
||||||
|
Copyright
|
||||||
|
|
||||||
|
The VolksForth Sources are made avail- able under the terms of the BSD
|
||||||
|
License http://www.opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
The Handbook is Copyright (c) 1985 - 2020 Forth Gesellschaft e.V. (
|
||||||
|
Klaus Schleisiek, Ulrich Hoffmann, Bernd Pennemann, Georg Rehfeld and
|
||||||
|
Dietrich Weineck).
|
||||||
|
|
||||||
|
The Handbook, binary Files and Source- code for VolksForth as well as
|
||||||
|
Informa- tion about Forth Gesellschaft are available on the Forth
|
||||||
|
Gesellschaft Webserver at http://www.forth-ev.de/
|
||||||
|
|
||||||
|
(most of the Information is still in german. We are planning to
|
||||||
|
provide future versions with full englisch documentation)
|
||||||
|
|
||||||
|
Information and Help about the Program- ming Language Forth can be
|
||||||
|
found in the Internet, starting with the Website of the
|
||||||
|
Forthgesellschaft, or in the Usenet Forum de.comp.lang.forth (via
|
||||||
|
Google Groups: http://groups.google.de/group/de.comp.lang.forth )
|
||||||
|
|
||||||
|
** Details on VolksForth 6502 (Atari 8bit)
|
||||||
|
|
||||||
|
*** Requirements
|
||||||
|
Atari 8bit with 48 KB RAM, Floppy Atari 800, 800XL, Atari 130 XE
|
||||||
|
600XL (+ Atari 1064),
|
||||||
|
|
||||||
|
*** Files
|
||||||
|
|
||||||
|
This is list of VolksForth Files in this Distribution.
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
|
||||||
|
DISK 1:
|
||||||
|
|
||||||
|
DOS.SYS
|
||||||
|
DUP.SYS - Atari DOS 2.5
|
||||||
|
VFORTH.COM - the plain volksForth
|
||||||
|
kernel
|
||||||
|
4TH.COM - volksForth binary
|
||||||
|
STAR4TH.COM - volksForth with
|
||||||
|
SPARTA/REAL/BEWE
|
||||||
|
DOS Extensions
|
||||||
|
DEBUG.COM - volksForth with
|
||||||
|
Debug Tools
|
||||||
|
(Tracer etc)
|
||||||
|
CALL.F - Sourcecode for CALL,
|
||||||
|
to call Machine-
|
||||||
|
language Suproutines
|
||||||
|
CREATE.F - Sourcecode for CREATE
|
||||||
|
DIR.F - Sourcecode for DIR and
|
||||||
|
DIR" Commands, to list
|
||||||
|
Diskdirectories
|
||||||
|
AS65.F - Sourcecode for the
|
||||||
|
resident 6502 Assembler
|
||||||
|
TAS65.F - Sourcecode for the
|
||||||
|
transient 6502 Assembler
|
||||||
|
(living in HEAP)
|
||||||
|
SAVESYS.F - Sourcecode for
|
||||||
|
SAVE-SYSTEM command
|
||||||
|
SIEVE.F - Primes Sieve Benchmark
|
||||||
|
4TH.F - Build volksForth binary
|
||||||
|
from plain kernel
|
||||||
|
README.TXT - This Text
|
||||||
|
COPYING - License Information
|
||||||
|
|
||||||
|
Disk 2
|
||||||
|
DOS.SYS
|
||||||
|
DUP.SYS - Atari DOS 2.5
|
||||||
|
4TH.COM - volksForth binary
|
||||||
|
COPYING - License Information
|
||||||
|
DEBUG.F - Script to build an
|
||||||
|
volksForth with
|
||||||
|
DEBUGGER
|
||||||
|
TAS65.F - Sourcecode for the
|
||||||
|
transient 6502 Assembler
|
||||||
|
(living in HEAP)
|
||||||
|
CREATE.F - Sourcecode for CREATE
|
||||||
|
TOOLS.F - Debugging Tools
|
||||||
|
TRACER.F - Interactive Tracer
|
||||||
|
DEBUGT.F - more Debugging Tools
|
||||||
|
SEE.F - build Decompiler without
|
||||||
|
Disassembler
|
||||||
|
SEE2.F - built Decompiler with
|
||||||
|
Disassembler
|
||||||
|
DISAS.F - 6502 Disassembler
|
||||||
|
DECOMP.F - volksForth Decompiler
|
||||||
|
DIS.F - build 6502 Disassembler
|
||||||
|
MTASK.F - volksForth Multitasker
|
||||||
|
MTDEMO.F - Multitask Demo
|
||||||
|
"RatRace"
|
||||||
|
CALL.F - Sourcecode for CALL,
|
||||||
|
to call Machine-
|
||||||
|
language Suproutines
|
||||||
|
SPARTA.F - Sparta/Real/BEWE-DOS
|
||||||
|
Support
|
||||||
|
LAUNCH.F - Sparta DOS CLI
|
||||||
|
Support
|
||||||
|
SPAR4TH.F - Build volksForth with
|
||||||
|
Sparta-DOS Support
|
||||||
|
TEST.F
|
||||||
|
TEST2.F
|
||||||
|
TEST3.F - Test Files for
|
||||||
|
nested INCLUDE"
|
||||||
|
#+end_example
|
||||||
|
*** Editor
|
||||||
|
This verion of volksForth for Atari 8bit does not contain an Editor
|
||||||
|
for Sourcecode. An Forth Editor will be supplied for Version 3.90. We
|
||||||
|
recommend Ken Siders KEDIT ( http://atari.ksiders.tzo.com/ ) or the
|
||||||
|
CompyShop Editor.
|
||||||
|
|
||||||
|
*** Emulator
|
||||||
|
VolksForth 6502 Atari 8bit 3.81 has been tested in the Atari 8bit
|
||||||
|
Emulator "Atari800" (atari800.sourceforge.net)
|
||||||
|
|
||||||
|
Have fun with VolksForth
|
||||||
|
the VolksForth Team
|
@ -1,186 +0,0 @@
|
|||||||
VolksForth Atari 8-bit Readme
|
|
||||||
|
|
||||||
Version 1.1
|
|
||||||
13. August 2006 (cas)
|
|
||||||
|
|
||||||
VolksForth is a 16bit Forth System
|
|
||||||
produced by the german Forth
|
|
||||||
Gesellschaft e.V. Main development
|
|
||||||
of this system was done between 1985
|
|
||||||
until 1989. The VolksForth Project was
|
|
||||||
revived in 2005 with the goal to
|
|
||||||
produce a managable Forthsystem for
|
|
||||||
computer systems with restricted system
|
|
||||||
resources.
|
|
||||||
|
|
||||||
Some modern Forth Systems were influenced
|
|
||||||
by or were derived from VolksForth
|
|
||||||
(GNU-Forth, bigForth).
|
|
||||||
|
|
||||||
The current Version of VolskForth is 3.81.
|
|
||||||
Work on Version 3.90 has started.
|
|
||||||
|
|
||||||
At this time VolksForth is available
|
|
||||||
for this Systems:
|
|
||||||
|
|
||||||
VolksForth MS-DOS (Intel x86
|
|
||||||
Architecture
|
|
||||||
i8086-ia64)
|
|
||||||
|
|
||||||
VolksForth 6502 (Commodore 64,
|
|
||||||
Commodore Plus 4,
|
|
||||||
Atari 8bit, Apple I)
|
|
||||||
|
|
||||||
VolksForth Z80 (CP/M,
|
|
||||||
Schneider CPC CP/M)
|
|
||||||
|
|
||||||
VolksForth 68000 (Atari ST)
|
|
||||||
|
|
||||||
VolksForth is in work for this Systems:
|
|
||||||
|
|
||||||
VolksForth MS-DOS (Atari Portfolio)
|
|
||||||
VolksForth 6502 (Apple II)
|
|
||||||
VolksForth Z80 (Schneider CPC AMSDOS)
|
|
||||||
VolksForth 68000 (Mac Classic)
|
|
||||||
|
|
||||||
Copyright
|
|
||||||
|
|
||||||
The VolksForth Sources are made avail-
|
|
||||||
able under the terms of the BSD License
|
|
||||||
http://www.opensource.org/licenses/bsd-license.php
|
|
||||||
|
|
||||||
The Handbook is Copyright (c)
|
|
||||||
1985 - 2006 Forth Gesellschaft e.V.
|
|
||||||
( Klaus Schleisiek, Ulrich Hoffmann,
|
|
||||||
Bernd Pennemann, Georg Rehfeld and
|
|
||||||
Dietrich Weineck).
|
|
||||||
|
|
||||||
The Handbook, binary Files and Source-
|
|
||||||
code for VolksForth as well as Informa-
|
|
||||||
tion about Forth Gesellschaft are
|
|
||||||
available on the Forth Gesellschaft
|
|
||||||
Webserver at http://www.forth-ev.de/
|
|
||||||
|
|
||||||
(most of the Information is still
|
|
||||||
in german. We are planning to provide
|
|
||||||
future versions with full englisch
|
|
||||||
documentation)
|
|
||||||
|
|
||||||
Information and Help about the Program-
|
|
||||||
ming Language Forth can be found in the
|
|
||||||
Internet, starting with the Website of
|
|
||||||
the Forthgesellschaft, or in the Usenet
|
|
||||||
Forum de.comp.lang.forth
|
|
||||||
(via Google Groups:
|
|
||||||
http://groups.google.de/group/de.comp.lang.forth )
|
|
||||||
|
|
||||||
Details on VolksForth 6502
|
|
||||||
(Atari 8bit)
|
|
||||||
|
|
||||||
* Requirements
|
|
||||||
Atari 8bit with 48 KB RAM, Floppy
|
|
||||||
Atari 800, 800XL, Atari 130 XE
|
|
||||||
600XL (+ Atari 1064),
|
|
||||||
|
|
||||||
* Files
|
|
||||||
|
|
||||||
This is list of VolksForth Files in
|
|
||||||
this Distribution.
|
|
||||||
|
|
||||||
DISK 1:
|
|
||||||
|
|
||||||
DOS.SYS
|
|
||||||
DUP.SYS - Atari DOS 2.5
|
|
||||||
VFORTH.COM - the plain volksForth
|
|
||||||
kernel
|
|
||||||
4TH.COM - volksForth binary
|
|
||||||
STAR4TH.COM - volksForth with
|
|
||||||
SPARTA/REAL/BEWE
|
|
||||||
DOS Extensions
|
|
||||||
DEBUG.COM - volksForth with
|
|
||||||
Debug Tools
|
|
||||||
(Tracer etc)
|
|
||||||
CALL.F - Sourcecode for CALL,
|
|
||||||
to call Machine-
|
|
||||||
language Suproutines
|
|
||||||
CREATE.F - Sourcecode for CREATE
|
|
||||||
DIR.F - Sourcecode for DIR and
|
|
||||||
DIR" Commands, to list
|
|
||||||
Diskdirectories
|
|
||||||
AS65.F - Sourcecode for the
|
|
||||||
resident 6502 Assembler
|
|
||||||
TAS65.F - Sourcecode for the
|
|
||||||
transient 6502 Assembler
|
|
||||||
(living in HEAP)
|
|
||||||
SAVESYS.F - Sourcecode for
|
|
||||||
SAVE-SYSTEM command
|
|
||||||
SIEVE.F - Primes Sieve Benchmark
|
|
||||||
4TH.F - Build volksForth binary
|
|
||||||
from plain kernel
|
|
||||||
README.TXT - This Text
|
|
||||||
COPYING - License Information
|
|
||||||
|
|
||||||
Disk 2
|
|
||||||
DOS.SYS
|
|
||||||
DUP.SYS - Atari DOS 2.5
|
|
||||||
4TH.COM - volksForth binary
|
|
||||||
COPYING - License Information
|
|
||||||
DEBUG.F - Script to build an
|
|
||||||
volksForth with
|
|
||||||
DEBUGGER
|
|
||||||
TAS65.F - Sourcecode for the
|
|
||||||
transient 6502 Assembler
|
|
||||||
(living in HEAP)
|
|
||||||
CREATE.F - Sourcecode for CREATE
|
|
||||||
TOOLS.F - Debugging Tools
|
|
||||||
TRACER.F - Interactive Tracer
|
|
||||||
DEBUGT.F - more Debugging Tools
|
|
||||||
SEE.F - build Decompiler without
|
|
||||||
Disassembler
|
|
||||||
SEE2.F - built Decompiler with
|
|
||||||
Disassembler
|
|
||||||
DISAS.F - 6502 Disassembler
|
|
||||||
DECOMP.F - volksForth Decompiler
|
|
||||||
DIS.F - build 6502 Disassembler
|
|
||||||
MTASK.F - volksForth Multitasker
|
|
||||||
MTDEMO.F - Multitask Demo
|
|
||||||
"RatRace"
|
|
||||||
CALL.F - Sourcecode for CALL,
|
|
||||||
to call Machine-
|
|
||||||
language Suproutines
|
|
||||||
SPARTA.F - Sparta/Real/BEWE-DOS
|
|
||||||
Support
|
|
||||||
LAUNCH.F - Sparta DOS CLI
|
|
||||||
Support
|
|
||||||
SPAR4TH.F - Build volksForth with
|
|
||||||
Sparta-DOS Support
|
|
||||||
TEST.F
|
|
||||||
TEST2.F
|
|
||||||
TEST3.F - Test Files for
|
|
||||||
nested INCLUDE"
|
|
||||||
|
|
||||||
* Editor
|
|
||||||
This verion of volksForth for Atari
|
|
||||||
8bit does not contain an Editor for
|
|
||||||
Sourcecode. An Forth Editor will be
|
|
||||||
supplied for Version 3.90. We
|
|
||||||
recommend Ken Siders KEDIT
|
|
||||||
( http://atari.ksiders.tzo.com/ )
|
|
||||||
or the CompyShop Editor.
|
|
||||||
|
|
||||||
* Emulator
|
|
||||||
VolksForth 6502 Atari 8bit 3.81 has
|
|
||||||
been tested in the Atari 8bit Emulator
|
|
||||||
"Atari800" (atari800.sourceforge.net)
|
|
||||||
|
|
||||||
The Forth Live-Linux CD-ROM (available
|
|
||||||
in the Downloadsection of the Forth
|
|
||||||
Gesellschaft Website) includes the
|
|
||||||
current Versions of VolksForth direct
|
|
||||||
usable without Installation including
|
|
||||||
the Handbooks as PDF-Files.
|
|
||||||
|
|
||||||
Have fun with VolksForth
|
|
||||||
the VolksForth Team
|
|
||||||
|
|
||||||
|
|
146
6502/Atari8bit/readme.org
Normal file
146
6502/Atari8bit/readme.org
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
#+Title: VolksForth Atari 8-bit Readme Version 1.1
|
||||||
|
#+Date: 13. August 2006
|
||||||
|
#+Author: Carsten Strotmann
|
||||||
|
|
||||||
|
VolksForth is a 16bit Forth System produced by the german Forth
|
||||||
|
Gesellschaft e.V. Main development of this system was done between
|
||||||
|
1985 until 1989. The VolksForth Project was revived in 2005 with the
|
||||||
|
goal to produce a managable Forthsystem for computer systems with
|
||||||
|
restricted system resources.
|
||||||
|
|
||||||
|
Some modern Forth Systems were influenced by or were derived from
|
||||||
|
VolksForth (GNU-Forth, bigForth).
|
||||||
|
|
||||||
|
The current Version of VolskForth is 3.81. Work on Version 3.90 has
|
||||||
|
been started.
|
||||||
|
|
||||||
|
At this time VolksForth is available for this Systems:
|
||||||
|
|
||||||
|
* VolksForth MS-DOS (Intel x86 Architecture i8086-ia64)
|
||||||
|
* VolksForth 6502 (Commodore 64, Commodore Plus 4, Atari 8bit, Apple I, Apple II)
|
||||||
|
* VolksForth Z80 (CP/M, Schneider CPC CP/M)
|
||||||
|
* VolksForth 68000 (Atari ST)
|
||||||
|
|
||||||
|
VolksForth is in work for this Systems:
|
||||||
|
|
||||||
|
* VolksForth MS-DOS (Atari Portfolio)
|
||||||
|
* VolksForth Z80 (Schneider CPC AMSDOS)
|
||||||
|
* VolksForth 68000 (Mac Classic, Amiga)
|
||||||
|
|
||||||
|
Copyright
|
||||||
|
|
||||||
|
The VolksForth Sources are made avail- able under the terms of the BSD
|
||||||
|
License http://www.opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
The Handbook is Copyright (c) 1985 - 2020 Forth Gesellschaft e.V. (
|
||||||
|
Klaus Schleisiek, Ulrich Hoffmann, Bernd Pennemann, Georg Rehfeld and
|
||||||
|
Dietrich Weineck).
|
||||||
|
|
||||||
|
The Handbook, binary Files and Source- code for VolksForth as well as
|
||||||
|
Informa- tion about Forth Gesellschaft are available on the Forth
|
||||||
|
Gesellschaft Webserver at http://www.forth-ev.de/
|
||||||
|
|
||||||
|
(most of the Information is still in german. We are planning to
|
||||||
|
provide future versions with full englisch documentation)
|
||||||
|
|
||||||
|
Information and Help about the Program- ming Language Forth can be
|
||||||
|
found in the Internet, starting with the Website of the
|
||||||
|
Forthgesellschaft, or in the Usenet Forum de.comp.lang.forth (via
|
||||||
|
Google Groups: http://groups.google.de/group/de.comp.lang.forth )
|
||||||
|
|
||||||
|
** Details on VolksForth 6502 (Atari 8bit)
|
||||||
|
|
||||||
|
*** Requirements
|
||||||
|
Atari 8bit with 48 KB RAM, Floppy Atari 800, 800XL, Atari 130 XE
|
||||||
|
600XL (+ Atari 1064),
|
||||||
|
|
||||||
|
*** Files
|
||||||
|
|
||||||
|
This is list of VolksForth Files in this Distribution.
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
|
||||||
|
DISK 1:
|
||||||
|
|
||||||
|
DOS.SYS
|
||||||
|
DUP.SYS - Atari DOS 2.5
|
||||||
|
VFORTH.COM - the plain volksForth
|
||||||
|
kernel
|
||||||
|
4TH.COM - volksForth binary
|
||||||
|
STAR4TH.COM - volksForth with
|
||||||
|
SPARTA/REAL/BEWE
|
||||||
|
DOS Extensions
|
||||||
|
DEBUG.COM - volksForth with
|
||||||
|
Debug Tools
|
||||||
|
(Tracer etc)
|
||||||
|
CALL.F - Sourcecode for CALL,
|
||||||
|
to call Machine-
|
||||||
|
language Suproutines
|
||||||
|
CREATE.F - Sourcecode for CREATE
|
||||||
|
DIR.F - Sourcecode for DIR and
|
||||||
|
DIR" Commands, to list
|
||||||
|
Diskdirectories
|
||||||
|
AS65.F - Sourcecode for the
|
||||||
|
resident 6502 Assembler
|
||||||
|
TAS65.F - Sourcecode for the
|
||||||
|
transient 6502 Assembler
|
||||||
|
(living in HEAP)
|
||||||
|
SAVESYS.F - Sourcecode for
|
||||||
|
SAVE-SYSTEM command
|
||||||
|
SIEVE.F - Primes Sieve Benchmark
|
||||||
|
4TH.F - Build volksForth binary
|
||||||
|
from plain kernel
|
||||||
|
README.TXT - This Text
|
||||||
|
COPYING - License Information
|
||||||
|
|
||||||
|
Disk 2
|
||||||
|
DOS.SYS
|
||||||
|
DUP.SYS - Atari DOS 2.5
|
||||||
|
4TH.COM - volksForth binary
|
||||||
|
COPYING - License Information
|
||||||
|
DEBUG.F - Script to build an
|
||||||
|
volksForth with
|
||||||
|
DEBUGGER
|
||||||
|
TAS65.F - Sourcecode for the
|
||||||
|
transient 6502 Assembler
|
||||||
|
(living in HEAP)
|
||||||
|
CREATE.F - Sourcecode for CREATE
|
||||||
|
TOOLS.F - Debugging Tools
|
||||||
|
TRACER.F - Interactive Tracer
|
||||||
|
DEBUGT.F - more Debugging Tools
|
||||||
|
SEE.F - build Decompiler without
|
||||||
|
Disassembler
|
||||||
|
SEE2.F - built Decompiler with
|
||||||
|
Disassembler
|
||||||
|
DISAS.F - 6502 Disassembler
|
||||||
|
DECOMP.F - volksForth Decompiler
|
||||||
|
DIS.F - build 6502 Disassembler
|
||||||
|
MTASK.F - volksForth Multitasker
|
||||||
|
MTDEMO.F - Multitask Demo
|
||||||
|
"RatRace"
|
||||||
|
CALL.F - Sourcecode for CALL,
|
||||||
|
to call Machine-
|
||||||
|
language Suproutines
|
||||||
|
SPARTA.F - Sparta/Real/BEWE-DOS
|
||||||
|
Support
|
||||||
|
LAUNCH.F - Sparta DOS CLI
|
||||||
|
Support
|
||||||
|
SPAR4TH.F - Build volksForth with
|
||||||
|
Sparta-DOS Support
|
||||||
|
TEST.F
|
||||||
|
TEST2.F
|
||||||
|
TEST3.F - Test Files for
|
||||||
|
nested INCLUDE"
|
||||||
|
#+end_example
|
||||||
|
*** Editor
|
||||||
|
This verion of volksForth for Atari 8bit does not contain an Editor
|
||||||
|
for Sourcecode. An Forth Editor will be supplied for Version 3.90. We
|
||||||
|
recommend Ken Siders KEDIT ( http://atari.ksiders.tzo.com/ ) or the
|
||||||
|
CompyShop Editor.
|
||||||
|
|
||||||
|
*** Emulator
|
||||||
|
VolksForth 6502 Atari 8bit 3.81 has been tested in the Atari 8bit
|
||||||
|
Emulator "Atari800" (atari800.sourceforge.net)
|
||||||
|
|
||||||
|
Have fun with VolksForth
|
||||||
|
the VolksForth Team
|
Binary file not shown.
Binary file not shown.
@ -1,161 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
|
|
||||||
void help(char *name)
|
|
||||||
{
|
|
||||||
printf("%s - BINARY to Intel HEX file convertor version 1.00\n"\
|
|
||||||
"(c)BCL Vysoke Myto 2001 (benedikt@lphard.cz)\n\n",name);
|
|
||||||
printf("Usage: %s [-option] binfile hexfile\n"\
|
|
||||||
" -l Bytes to read from binary file\n"\
|
|
||||||
" -i Binary file starting offset\n"\
|
|
||||||
" -o Output file offset (where HEX data starts)\n"\
|
|
||||||
" -t Exclude EOF record\n"\
|
|
||||||
" -a Append to end of existing HEX file\n"\
|
|
||||||
" -q Quiet mode (no statistics are printed)\n", name);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc,char *argv[])/*Main routine*/
|
|
||||||
{
|
|
||||||
char *ifile = NULL;
|
|
||||||
char *ofile = NULL;
|
|
||||||
char c;
|
|
||||||
FILE *inp, *outp;
|
|
||||||
int ch,csum;
|
|
||||||
int ofsa = 0;
|
|
||||||
int cnt = 0;
|
|
||||||
struct stat statbuf;
|
|
||||||
long int foffset = 0;
|
|
||||||
long int fsize = 0;
|
|
||||||
long int fsub;
|
|
||||||
long int fpoint = 0;
|
|
||||||
long int adrs = 0;
|
|
||||||
unsigned char quiet = 0;
|
|
||||||
unsigned char eofrec = 0;
|
|
||||||
unsigned char append = 0;
|
|
||||||
|
|
||||||
opterr = 0; //print error message if unknown option
|
|
||||||
|
|
||||||
while ((c = getopt (argc, argv, "l:i:o:taqv")) != -1)
|
|
||||||
switch (c) {
|
|
||||||
case 'l':
|
|
||||||
fsize = atol(optarg);
|
|
||||||
break;
|
|
||||||
case 'i':
|
|
||||||
foffset = atol(optarg);
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
adrs = atol(optarg);
|
|
||||||
break;
|
|
||||||
case 't':
|
|
||||||
eofrec = 1;
|
|
||||||
break;
|
|
||||||
case 'a':
|
|
||||||
append = 1;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
case 'v':
|
|
||||||
printf("%s - BINARY to Intel HEX file convertor version 1.00\n"\
|
|
||||||
"(c)BCL Vysoke Myto 2001 (benedikt@lphard.cz)\n",argv[0]);
|
|
||||||
return 0;
|
|
||||||
case '?':
|
|
||||||
help (argv[0]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((argc - optind) != 2) {
|
|
||||||
printf("ERROR: Missing input/output file.\n");
|
|
||||||
help(argv[0]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
ifile = argv[optind];
|
|
||||||
ofile = argv[optind+1];
|
|
||||||
|
|
||||||
/*Open file check*/
|
|
||||||
if((inp = fopen(ifile, "rb")) == NULL){
|
|
||||||
printf("ERROR: Cannot open input file.\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
fseek (inp, foffset, SEEK_SET);
|
|
||||||
|
|
||||||
if (append == 0) {
|
|
||||||
if((outp = fopen(ofile, "wt")) == NULL){
|
|
||||||
printf("ERROR: Cannot open output file.\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if((outp = fopen(ofile, "at")) == NULL){
|
|
||||||
printf("ERROR: Cannot re-open output file.\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
fseek (outp, 0, SEEK_END);
|
|
||||||
}
|
|
||||||
|
|
||||||
fstat(fileno(inp), &statbuf);
|
|
||||||
if (quiet == 0) printf("Input file size=%ld\n",statbuf.st_size);
|
|
||||||
if (foffset > statbuf.st_size) {
|
|
||||||
printf("ERROR: Input offset > input file length\n");
|
|
||||||
}
|
|
||||||
if ((fsize == 0) || (fsize > (statbuf.st_size - foffset)))
|
|
||||||
fsize = statbuf.st_size - foffset;
|
|
||||||
|
|
||||||
// fprintf(outp,":020000020000FC\n");/*Start Header*/
|
|
||||||
fsub = fsize - fpoint;
|
|
||||||
if (fsub > 0x20) {
|
|
||||||
fprintf(outp,":20%04X00",adrs);/*Hex line Header*/
|
|
||||||
csum = 0x20 + (adrs>>8) + (adrs & 0xFF);
|
|
||||||
adrs += 0x20;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fprintf(outp, ":%02X%04X00", fsub,adrs);/*Hex line Header*/
|
|
||||||
csum = fsub + (adrs>>8) + (adrs & 0xFF);
|
|
||||||
adrs += fsub;
|
|
||||||
}
|
|
||||||
while (fsub > 0){
|
|
||||||
ch = fgetc(inp);
|
|
||||||
fprintf(outp,"%02X",ch);/*Put data*/
|
|
||||||
cnt++; fpoint++;
|
|
||||||
fsub = fsize - fpoint;
|
|
||||||
csum = ch + csum;
|
|
||||||
if((fsub == 0)||(cnt == 0x20)){
|
|
||||||
cnt = 0; csum = 0xFF & (~csum + 1);
|
|
||||||
fprintf(outp,"%02X\n",csum);/*Put checksum*/
|
|
||||||
if(fsub == 0) break;
|
|
||||||
if(adrs > 0xFFFF){
|
|
||||||
ofsa = 0x1000 + ofsa;
|
|
||||||
adrs = 0;
|
|
||||||
fprintf(outp,":02000002%04X",ofsa);/*Change offset address*/
|
|
||||||
csum = 0x02 + 0x02 + (ofsa>>8) + (ofsa & 0xFF);
|
|
||||||
csum = 0xFF & (~csum + 1);
|
|
||||||
fprintf(outp,"%02X\n", csum);
|
|
||||||
}
|
|
||||||
adrs = 0xFFFF & adrs;
|
|
||||||
if (fsub > 0x20) {
|
|
||||||
fprintf(outp,":20%04X00",adrs);/*Next Hex line Header*/
|
|
||||||
csum = 0x20 + (adrs>>8) + (adrs & 0xFF);
|
|
||||||
adrs += 0x20;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(fsub > 0){
|
|
||||||
fprintf(outp, ":%02X%04X00", fsub,adrs);/*Next Hex line Header*/
|
|
||||||
csum = fsub + (adrs>>8) + (adrs & 0xFF);
|
|
||||||
adrs += fsub;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (eofrec == 0) fprintf(outp,":00000001FF\n");/*End footer*/
|
|
||||||
fflush (outp);
|
|
||||||
|
|
||||||
fstat(fileno(outp), &statbuf);
|
|
||||||
if (quiet == 0) printf("Output file size=%ld\n",statbuf.st_size);
|
|
||||||
|
|
||||||
fclose(inp);
|
|
||||||
fclose(outp);
|
|
||||||
return 0;
|
|
||||||
}
|
|
11
README.ORG
11
README.ORG
@ -11,15 +11,16 @@ resources.
|
|||||||
Some modern Forth Systems were influenced by or were derived from
|
Some modern Forth Systems were influenced by or were derived from
|
||||||
VolksForth (GNU-Forth, bigForth).
|
VolksForth (GNU-Forth, bigForth).
|
||||||
|
|
||||||
The current Version of VolksForth is 3.91. Work on Version 4.00 has
|
The current Version of VolksForth is 3.81. Version 3.9.x will be
|
||||||
started.
|
interim versions on the way to sync all VolksForth targets and move
|
||||||
|
towards compliance with the 2012 Forth standard.
|
||||||
|
|
||||||
Version 3.9x is based on the Forth 83 standard, Version 4.00 will be
|
Version 3.8.x is based on the Forth 83 standard, Version 4.00 will be
|
||||||
based on the latest 200x Standard (https://forth-standard.org).
|
based on the current 2012 Standard (https://forth-standard.org).
|
||||||
|
|
||||||
At this time VolksForth is available for this Systems:
|
At this time VolksForth is available for this Systems:
|
||||||
|
|
||||||
* VolksForth MS-DOS (Intel x86 Architektur i8086)
|
* VolksForth MS-DOS (Intel x86 architecture i8086/i186/i286/i386/i486 etc)
|
||||||
* VolksForth 6502 (Commodore 64, Commodore Plus 4, Atari XL/XE)
|
* VolksForth 6502 (Commodore 64, Commodore Plus 4, Atari XL/XE)
|
||||||
* VolksForth Z80 (CP/M, Schneider CPC)
|
* VolksForth Z80 (CP/M, Schneider CPC)
|
||||||
* VolksForth 68000 (Atari ST, Amiga with EmuTOS)
|
* VolksForth 68000 (Atari ST, Amiga with EmuTOS)
|
||||||
|
@ -4,369 +4,427 @@
|
|||||||
|
|
||||||
Comparison of user visible words in each target base kernel image
|
Comparison of user visible words in each target base kernel image
|
||||||
|
|
||||||
| Word | CP/M | MS-DOS | C64/C16 | Atari ST | Atari 8bit | Apple 1/2 | PET | py65 | |
|
| Word | C64/C16 | CP/M | MS-DOS | Atari ST | Atari 8bit | Apple 1/2 | PET | py65 | |
|
||||||
|---------------+------+--------+---------+----------+------------+-----------+-----+------+---|
|
|---------------+---------+------+--------+----------+------------+-----------+-----+------+---|
|
||||||
| ASSEMBLER | | | | | | | | core | |
|
| ASSEMBLER | core | | | | | | | core | |
|
||||||
| FORTH-83 | | | | | | | | core | |
|
| FORTH-83 | core | | | | | | | core | |
|
||||||
| (R/W | | | | | | | | core | |
|
| (R/W | | | | | | | | core | |
|
||||||
| DRVINIT | | | | | | | | core | |
|
| DRVINIT | core | | | | | | | core | |
|
||||||
| DRV? | | | | | | | | core | |
|
| DRV? | core | | | | | | | core | |
|
||||||
| >DRIVE | | | | | | | | core | |
|
| >DRIVE | core | | | | | | | core | |
|
||||||
| DRIVE | | | | | | | | core | |
|
| DRIVE | core | | | | | | | core | |
|
||||||
| BLK/DRV | | | | | | | | core | |
|
| BLK/DRV | core | | | | | | | core | |
|
||||||
| B/BLK | | | | | | | | core | |
|
| B/BLK | core | | | | | | | core | |
|
||||||
| DISPLAY | | | | | | | | core | |
|
| DISPLAY | core | | | | | | | core | |
|
||||||
| 65TYPE | | | | | | | | | |
|
| KEYBOARD | core | | | | | | | core | |
|
||||||
| 65AT? | | | | | | | | | |
|
| 65TYPE | | | | | | | | | |
|
||||||
| 65AT | | | | | | | | | |
|
| 65AT? | | | | | | | | | |
|
||||||
| 65PAGE | | | | | | | | | |
|
| 65AT | | | | | | | | | |
|
||||||
| 65DEL | | | | | | | | | |
|
| 65PAGE | | | | | | | | | |
|
||||||
| 65CR | | | | | | | | | |
|
| 65DEL | | | | | | | | | |
|
||||||
| 65EMIT | | | | | | | | | |
|
| 65CR | | | | | | | | | |
|
||||||
| (EMIT | | | | | | | | | |
|
| 65EMIT | | | | | | | | | |
|
||||||
| KEYBOARD | | | | | | | | core | |
|
| (EMIT | | | | | | | | | |
|
||||||
| 65EXPECT | | | | | | | | | |
|
| 65EXPECT | | | | | | | | | |
|
||||||
| 65DECODE | | | | | | | | | |
|
| 65DECODE | | | | | | | | | |
|
||||||
| #LF | | | | | | | | core | |
|
| #LF | | | | | | | | core | |
|
||||||
| #ESC | | | | | | | | core | |
|
| #ESC | | | | | | | | core | |
|
||||||
| #CR | | | | | | | | core | |
|
| #CR | core | | | | | | | core | |
|
||||||
| #BS | | | | | | | | core | |
|
| #BS | core | | | | | | | core | |
|
||||||
| 65KEY | | | | | | | | | |
|
| 65KEY | | | | | | | | | |
|
||||||
| CUROFF | | | | | | | | core | |
|
| CUROFF | core | | | | | | | core | |
|
||||||
| CURON | | | | | | | | core | |
|
| CURON | core | | | | | | | core | |
|
||||||
| GETKEY | | | | | | | | core | |
|
| GETKEY | core | | | | | | | core | |
|
||||||
| 65KEY? | | | | | | | | | |
|
| 65KEY? | | | | | | | | | |
|
||||||
| RESTART | | | | | | | | core | |
|
| RESTART | core | | | | | | | core | |
|
||||||
| COLD | | | | | | | | core | |
|
| COLD | core | | | | | | | core | |
|
||||||
| 'RESTART | | | | | | | | core | |
|
| 'RESTART | core | | | | | | | core | |
|
||||||
| 'COLD | | | | | | | | core | |
|
| 'COLD | core | | | | | | | core | |
|
||||||
| EXPECT | | | | | | | | core | |
|
| EXPECT | core | | | | | | | core | |
|
||||||
| DECODE | | | | | | | | core | |
|
| DECODE | core | | | | | | | core | |
|
||||||
| KEY? | | | | | | | | core | |
|
| KEY? | core | | | | | | | core | |
|
||||||
| KEY | | | | | | | | core | |
|
| KEY | core | | | | | | | core | |
|
||||||
| INPUT: | | | | | | | | core | |
|
| INPUT: | core | | | | | | | core | |
|
||||||
| COL | | | | | | | | core | |
|
| COL | core | | | | | | | core | |
|
||||||
| ROW | | | | | | | | core | |
|
| ROW | core | | | | | | | core | |
|
||||||
| AT? | | | | | | | | core | |
|
| AT? | core | | | | | | | core | |
|
||||||
| AT | | | | | | | | core | |
|
| AT | core | | | | | | | core | |
|
||||||
| PAGE | | | | | | | | core | |
|
| PAGE | core | | | | | | | core | |
|
||||||
| DEL | | | | | | | | core | |
|
| DEL | core | | | | | | | core | |
|
||||||
| TYPE | | | | | | | | core | |
|
| TYPE | core | | | | | | | core | |
|
||||||
| CR | | | | | | | | core | |
|
| CR | core | | | | | | | core | |
|
||||||
| EMIT | | | | | | | | core | |
|
| EMIT | core | | | | | | | core | |
|
||||||
| OUTPUT: | | | | | | | | core | |
|
| OUTPUT: | core | | | | | | | core | |
|
||||||
| ?CR | | | | | | | | core | |
|
| ?CR | core | | | | | | | core | |
|
||||||
| STOP? | | | | | | | | core | |
|
| STOP? | core | | | | | | | core | |
|
||||||
| BYE | | | | | | | | core | |
|
| BYE | core | | | | | | | core | |
|
||||||
| SAVE | | | | | | | | core | |
|
| SAVE | core | | | | | | | core | |
|
||||||
| EMPTY | | | | | | | | core | |
|
| EMPTY | core | | | | | | | core | |
|
||||||
| FORGET | | | | | | | | core | |
|
| FORGET | core | | | | | | | core | |
|
||||||
| (FORGET | | | | | | | | core | |
|
| (FORGET | core | | | | | | | core | |
|
||||||
| CLEAR | | | | | | | | core | |
|
| CLEAR | core | | | | | | | core | |
|
||||||
| ALL-BUFFERS | | | | | | | | core | |
|
| ALL-BUFFERS | core | | | | | | | core | |
|
||||||
| FREEBUFFER | | | | | | | | core | |
|
| FREEBUFFER | core | | | | | | | core | |
|
||||||
| ALLOTBUFFER | | | | | | | | core | |
|
| ALLOTBUFFER | core | | | | | | | core | |
|
||||||
| FIRST | | | | | | | | core | |
|
| FIRST | core | | | | | | | core | |
|
||||||
| LIMIT | | | | | | | | core | |
|
| LIMIT | core | | | | | | | core | |
|
||||||
| CONVEY | | | | | | | | core | |
|
| CONVEY | core | | | | | | | core | |
|
||||||
| COPY | | | | | | | | core | |
|
| COPY | core | | | | | | | core | |
|
||||||
| FLUSH | | | | | | | | core | |
|
| BLKMOVE | core | | | | | | | | |
|
||||||
| EMPTY-BUFFERS | | | | | | | | core | |
|
| (COPY | core | | | | | | | | |
|
||||||
| SAVE-BUFFERS | | | | | | | | core | |
|
| FLUSH | core | | | | | | | core | |
|
||||||
| UPDATE | | | | | | | | core | |
|
| EMPTY-BUFFERS | core | | | | | | | core | |
|
||||||
| BLOCK | | | | | | | | core | |
|
| SAVE-BUFFERS | core | | | | | | | core | |
|
||||||
| BUFFER | | | | | | | | core | |
|
| UPDATE | core | | | | | | | core | |
|
||||||
| (BLOCK | | | | | | | | core | |
|
| BLOCK | core | | | | | | | core | |
|
||||||
| (BUFFER | | | | | | | | core | |
|
| BUFFER | core | | | | | | | core | |
|
||||||
| CORE? | | | | | | | | core | |
|
| (BLOCK | core | | | | | | | core | |
|
||||||
| R/W | | | | | | | | core | |
|
| (BUFFER | core | | | | | | | core | |
|
||||||
| DISKERR | | | | | | | | core | |
|
| CORE? | core | | | | | | | core | |
|
||||||
| (DISKERR | | | | | | | | core | |
|
| R/W | core | | | | | | | core | |
|
||||||
| B/BUF | | | | | | | | core | |
|
| DISKERR | core | | | | | | | core | |
|
||||||
| PREV | | | | | | | | core | |
|
| (DISKERR | core | | | | | | | core | |
|
||||||
| FILE | | | | | | | | core | |
|
| B/BUF | core | | | | | | | core | |
|
||||||
| UNLOCK | | | | | | | | core | |
|
| BUFFERS | core | | | | | | | | |
|
||||||
| LOCK | | | | | | | | core | |
|
| PREV | core | | | | | | | core | |
|
||||||
| PAUSE | | | | | | | | core | |
|
| FILE | core | | | | | | | core | |
|
||||||
| LIST | | | | | | | | core | |
|
| UNLOCK | core | | | | | | | core | |
|
||||||
| L/S | | | | | | | | core | |
|
| LOCK | core | | | | | | | core | |
|
||||||
| C/L | | | | | | | | core | |
|
| PAUSE | core | | | | | | | core | |
|
||||||
| .S | | | | | | | | core | |
|
| LIST | core | | | | | | | core | |
|
||||||
| U. | | | | | | | | core | |
|
| L/S | core | | | | | | | core | |
|
||||||
| . | | | | | | | | core | |
|
| C/L | core | | | | | | | core | |
|
||||||
| D. | | | | | | | | core | |
|
| .S | core | | | | | | | core | |
|
||||||
| U.R | | | | | | | | core | |
|
| U. | core | | | | | | | core | |
|
||||||
| .R | | | | | | | | core | |
|
| . | core | | | | | | | core | |
|
||||||
| D.R | | | | | | | | core | |
|
| D. | core | | | | | | | core | |
|
||||||
| #S | | | | | | | | core | |
|
| U.R | core | | | | | | | core | |
|
||||||
| # | | | | | | | | core | |
|
| .R | core | | | | | | | core | |
|
||||||
| SIGN | | | | | | | | core | |
|
| D.R | core | | | | | | | core | |
|
||||||
| #> | | | | | | | | core | |
|
| #S | core | | | | | | | core | |
|
||||||
| <# | | | | | | | | core | |
|
| # | core | | | | | | | core | |
|
||||||
| HOLD | | | | | | | | core | |
|
| SIGN | core | | | | | | | core | |
|
||||||
| SPACES | | | | | | | | core | |
|
| #> | core | | | | | | | core | |
|
||||||
| SPACE | | | | | | | | core | |
|
| <# | core | | | | | | | core | |
|
||||||
| -TRAILING | | | | | | | | core | |
|
| HOLD | core | | | | | | | core | |
|
||||||
| BL | | | | | | | | core | |
|
| SPACES | core | | | | | | | core | |
|
||||||
| ERROR" | | | | | | | | core | |
|
| SPACE | core | | | | | | | core | |
|
||||||
| ABORT" | | | | | | | | core | |
|
| -TRAILING | core | | | | | | | core | |
|
||||||
| (ABORT" | | | | | | | | core | |
|
| BL | core | | | | | | | core | |
|
||||||
| (ERROR | | | | | | | | core | |
|
| ERROR" | core | | | | | | | core | |
|
||||||
| R# | | | | | | | | core | |
|
| ABORT" | core | | | | | | | core | |
|
||||||
| SCR | | | | | | | | core | |
|
| (ABORT" | core | | | | | | | core | |
|
||||||
| ABORT | | | | | | | | core | |
|
| (ERROR | core | | | | | | | core | |
|
||||||
| 'ABORT | | | | | | | | core | |
|
| R# | core | | | | | | | core | |
|
||||||
| STANDARDI/O | | | | | | | | core | |
|
| SCR | core | | | | | | | core | |
|
||||||
| QUIT | | | | | | | | core | |
|
| ABORT | core | | | | | | | core | |
|
||||||
| 'QUIT | | | | | | | | core | |
|
| 'ABORT | core | | | | | | | core | |
|
||||||
| (QUIT | | | | | | | | core | |
|
| STANDARDI/O | core | | | | | | | core | |
|
||||||
| DEPTH | | | | | | | | core | |
|
| QUIT | core | | | | | | | core | |
|
||||||
| RDEPTH | | | | | | | | core | |
|
| 'QUIT | core | | | | | | | core | |
|
||||||
| --> | | | | | | | | core | |
|
| (QUIT | core | | | | | | | core | |
|
||||||
| +THRU | | | | | | | | core | |
|
| DEPTH | core | | | | | | | core | |
|
||||||
| THRU | | | | | | | | core | |
|
| RDEPTH | core | | | | | | | core | |
|
||||||
| +LOAD | | | | | | | | core | |
|
| --> | core | | | | | | | core | |
|
||||||
| LOAD | | | | | | | | core | |
|
| +THRU | core | | | | | | | core | |
|
||||||
| PUSH | | | | | | | | core | |
|
| THRU | core | | | | | | | core | |
|
||||||
| .STATUS | | | | | | | | core | |
|
| +LOAD | core | | | | | | | core | |
|
||||||
| ?STACK | | | | | | | | core | |
|
| LOAD | core | | | | | | | core | |
|
||||||
| IS | | | | | | | | core | |
|
| PUSH | core | | | | | | | core | |
|
||||||
| (IS | | | | | | | | core | |
|
| .STATUS | core | | | | | | | core | |
|
||||||
| DEFER | | | | | | | | core | |
|
| ?STACK | core | | | | | | | core | |
|
||||||
| ] | | | | | | | | core | |
|
| IS | core | | | | | | | core | |
|
||||||
| [ | | | | | | | | core | |
|
| (IS | core | | | | | | | core | |
|
||||||
| INTERPRET | | | | | | | | core | |
|
| DEFER | core | | | | | | | core | |
|
||||||
| NO.EXTENSIONS | | | | | | | | core | |
|
| ] | core | | | | | | | core | |
|
||||||
| NOTFOUND | | | | | | | | core | |
|
| [ | core | | | | | | | core | |
|
||||||
| >INTERPRET | | | | | | | | core | |
|
| INTERPRET | core | | | | | | | core | |
|
||||||
| NULLSTRING? | | | | | | | | core | |
|
| NO.EXTENSIONS | core | | | | | | | core | |
|
||||||
| ['] | | | | | | | | core | |
|
| NOTFOUND | core | | | | | | | core | |
|
||||||
| [COMPILE] | | | | | | | | core | |
|
| >INTERPRET | core | | | | | | | core | |
|
||||||
| ' | | | | | | | | core | |
|
| NULLSTRING? | core | | | | | | | core | |
|
||||||
| FIND | | | | | | | | core | |
|
| ['] | core | | | | | | | core | |
|
||||||
| (FIND | | | | | | | | core | |
|
| [COMPILE] | core | | | | | | | core | |
|
||||||
| WORDS | | | | | | | | core | |
|
| ' | core | | | | | | | core | |
|
||||||
| ORDER | | | | | | | | core | |
|
| FIND | core | | | | | | | core | |
|
||||||
| DEFINITIONS | | | | | | | | core | |
|
| (FIND | core | | | | | | | core | |
|
||||||
| ONLYFORTH | | | | | | | | core | |
|
| WORDS | core | | | | | | | core | |
|
||||||
| ONLY | | | | | | | | core | |
|
| ORDER | core | | | | | | | core | |
|
||||||
| FORTH | | | | | | | | core | |
|
| DEFINITIONS | core | | | | | | | core | |
|
||||||
| VOCABULARY | | | | | | | | core | |
|
| ONLYFORTH | core | | | | | | | core | |
|
||||||
| TOSS | | | | | | | | core | |
|
| ONLY | core | | | | | | | core | |
|
||||||
| ALSO | | | | | | | | core | |
|
| FORTH | core | | | | | | | core | |
|
||||||
| CONTEXT | | | | | | | | core | |
|
| VOCABULARY | core | | | | | | | core | |
|
||||||
| CURRENT | | | | | | | | core | |
|
| TOSS | core | | | | | | | core | |
|
||||||
| VP | | | | | | | | core | |
|
| ALSO | core | | | | | | | core | |
|
||||||
| ALIAS | | | | | | | | core | |
|
| CONTEXT | core | | | | | | | core | |
|
||||||
| USER | | | | | | | | core | |
|
| CURRENT | core | | | | | | | core | |
|
||||||
| UALLOT | | | | | | | | core | |
|
| VP | core | | | | | | | core | |
|
||||||
| VARIABLE | | | | | | | | core | |
|
| ALIAS | core | | | | | | | core | |
|
||||||
| CONSTANT | | | | | | | | core | |
|
| USER | core | | | | | | | core | |
|
||||||
| ; | | | | | | | | core | |
|
| UALLOT | core | | | | | | | core | |
|
||||||
| : | | | | | | | | core | |
|
| VARIABLE | core | | | | | | | core | |
|
||||||
| .NAME | | | | | | | | core | |
|
| CONSTANT | core | | | | | | | core | |
|
||||||
| >BODY | | | | | | | | core | |
|
| ; | core | | | | | | | core | |
|
||||||
| NAME> | | | | | | | | core | |
|
| : | core | | | | | | | core | |
|
||||||
| >NAME | | | | | | | | core | |
|
| CREATE: | core | | | | | | | | |
|
||||||
| CREATE | | | | | | | | core | |
|
| .NAME | core | | | | | | | core | |
|
||||||
| WARNING | | | | | | | | core | |
|
| >BODY | core | | | | | | | core | |
|
||||||
| \vert | | | | | | | | core | |
|
| NAME> | core | | | | | | | core | |
|
||||||
| ?HEAD | | | | | | | | core | |
|
| >NAME | core | | | | | | | core | |
|
||||||
| DOES> | | | | | | | | core | |
|
| NFA? | core | | | | | | | | |
|
||||||
| HEAP? | | | | | | | | core | |
|
| CREATE | core | | | | | | | core | |
|
||||||
| HEAP | | | | | | | | core | |
|
| WARNING | core | | | | | | | core | |
|
||||||
| HALLOT | | | | | | | | core | |
|
| \vert | core | | | | | | | core | |
|
||||||
| CLEARSTACK | | | | | | | | core | |
|
| ?HEAD | core | | | | | | | core | |
|
||||||
| RESTRICT | | | | | | | | core | |
|
| DOES> | core | | | | | | | core | |
|
||||||
| IMMEDIATE | | | | | | | | core | |
|
| HEAP? | core | | | | | | | core | |
|
||||||
| RECURSIVE | | | | | | | | core | |
|
| HEAP | core | | | | | | | core | |
|
||||||
| REVEAL | | | | | | | | core | |
|
| HALLOT | core | | | | | | | core | |
|
||||||
| HIDE | | | | | | | | core | |
|
| CLEARSTACK | core | | | | | | | core | |
|
||||||
| LAST | | | | | | | | core | |
|
| RESTRICT | core | | | | | | | core | |
|
||||||
| NUMBER | | | | | | | | core | |
|
| IMMEDIATE | core | | | | | | | core | |
|
||||||
| NUMBER? | | | | | | | | core | |
|
| RECURSIVE | core | | | | | | | core | |
|
||||||
| DPL | | | | | | | | core | |
|
| REVEAL | core | | | | | | | core | |
|
||||||
| CONVERT | | | | | | | | core | |
|
| HIDE | core | | | | | | | core | |
|
||||||
| ACCUMULATE | | | | | | | | core | |
|
| LAST | core | | | | | | | core | |
|
||||||
| DIGIT? | | | | | | | | core | |
|
| NUMBER | core | | | | | | | core | |
|
||||||
| DECIMAL | | | | | | | | core | |
|
| 'NUMBER? | core | | | | | | | | |
|
||||||
| HEX | | | | | | | | core | |
|
| NUMBER? | core | | | | | | | core | |
|
||||||
| \NEEDS | | | | | | | | core | |
|
| DPL | core | | | | | | | core | |
|
||||||
| \\ | | | | | | | | core | |
|
| PREVIOUS | core | | | | | | | | |
|
||||||
| \ | | | | | | | | core | |
|
| CHAR | core | | | | | | | | |
|
||||||
| .( | | | | | | | | core | |
|
| END? | core | | | | | | | | |
|
||||||
| ( | | | | | | | | core | |
|
| CONVERT | core | | | | | | | core | |
|
||||||
| ." | | | | | | | | core | |
|
| ACCUMULATE | core | | | | | | | core | |
|
||||||
| (." | | | | | | | | core | |
|
| DIGIT? | core | | | | | | | core | |
|
||||||
| " | | | | | | | | core | |
|
| DECIMAL | core | | | | | | | core | |
|
||||||
| (" | | | | | | | | core | |
|
| HEX | core | | | | | | | core | |
|
||||||
| "LIT | | | | | | | | core | |
|
| \NEEDS | core | | | | | | | core | |
|
||||||
| ," | | | | | | | | core | |
|
| \\ | core | | | | | | | core | |
|
||||||
| ASCII | | | | | | | | core | |
|
| \ | core | | | | | | | core | |
|
||||||
| STATE | | | | | | | | core | |
|
| .( | core | | | | | | | core | |
|
||||||
| NAME | | | | | | | | core | |
|
| ( | core | | | | | | | core | |
|
||||||
| PARSE | | | | | | | | core | |
|
| ." | core | | | | | | | core | |
|
||||||
| WORD | | | | | | | | core | |
|
| (." | core | | | | | | | core | |
|
||||||
| SOURCE | | | | | | | | core | |
|
| " | core | | | | | | | core | |
|
||||||
| CAPITALIZE | | | | | | | | core | |
|
| (" | core | | | | | | | core | |
|
||||||
| CAPITAL | | | | | | | | core | |
|
| "LIT | core | | | | | | | core | |
|
||||||
| /STRING | | | | | | | | core | |
|
| ," | core | | | | | | | core | |
|
||||||
| SKIP | | | | | | | | core | |
|
| ASCII | core | | | | | | | core | |
|
||||||
| SCAN | | | | | | | | core | |
|
| STATE | core | | | | | | | core | |
|
||||||
| QUERY | | | | | | | | core | |
|
| NAME | core | | | | | | | core | |
|
||||||
| TIB | | | | | | | | core | |
|
| PARSE | core | | | | | | | core | |
|
||||||
| SPAN | | | | | | | | core | |
|
| WORD | core | | | | | | | core | |
|
||||||
| BLK | | | | | | | | core | |
|
| SOURCE | core | | | | | | | core | |
|
||||||
| >IN | | | | | | | | core | |
|
| CAPITALIZE | core | | | | | | | core | |
|
||||||
| >TIB | | | | | | | | core | |
|
| CAPITAL | core | | | | | | | core | |
|
||||||
| #TIB | | | | | | | | core | |
|
| /STRING | core | | | | | | | core | |
|
||||||
| COMPILE | | | | | | | | core | |
|
| SKIP | core | | | | | | | core | |
|
||||||
| C, | | | | | | | | core | |
|
| SCAN | core | | | | | | | core | |
|
||||||
| , | | | | | | | | core | |
|
| QUERY | core | | | | | | | core | |
|
||||||
| ALLOT | | | | | | | | core | |
|
| TIB | core | | | | | | | core | |
|
||||||
| PAD | | | | | | | | core | |
|
| SPAN | core | | | | | | | core | |
|
||||||
| HERE | | | | | | | | core | |
|
| BLK | core | | | | | | | core | |
|
||||||
| FILL | | | | | | | | core | |
|
| >IN | core | | | | | | | core | |
|
||||||
| ERASE | | | | | | | | core | |
|
| >TIB | core | | | | | | | core | |
|
||||||
| COUNT | | | | | | | | core | |
|
| #TIB | core | | | | | | | core | |
|
||||||
| PLACE | | | | | | | | core | |
|
| COMPILE | core | | | | | | | core | |
|
||||||
| MOVE | | | | | | | | core | |
|
| C, | core | | | | | | | core | |
|
||||||
| CMOVE> | | | | | | | | core | |
|
| , | core | | | | | | | core | |
|
||||||
| CMOVE | | | | | | | | core | |
|
| ALLOT | core | | | | | | | core | |
|
||||||
| UD/MOD | | | | | | | | core | |
|
| PAD | core | | | | | | | core | |
|
||||||
| UD/MOD | | | | | | | | core | |
|
| HERE | core | | | | | | | core | |
|
||||||
| */ | | | | | | | | core | |
|
| FILL | core | | | | | | | core | |
|
||||||
| */MOD | | | | | | | | core | |
|
| ERASE | core | | | | | | | core | |
|
||||||
| MOD | | | | | | | | core | |
|
| COUNT | core | | | | | | | core | |
|
||||||
| / | | | | | | | | core | |
|
| PLACE | core | | | | | | | core | |
|
||||||
| /MOD | | | | | | | | core | |
|
| MOVE | core | | | | | | | core | |
|
||||||
| 2/ | | | | | | | | core | |
|
| CMOVE> | core | | | | | | | core | |
|
||||||
| M/MOD | | | | | | | | core | |
|
| CMOVE | core | | | | | | | core | |
|
||||||
| UM/MOD | | | | | | | | core | |
|
| UD/MOD | core | | | | | | | core | |
|
||||||
| 2* | | | | | | | | core | |
|
| U/MOD | core | | | | | | | core | |
|
||||||
| * | | | | | | | | core | |
|
| */ | core | | | | | | | core | |
|
||||||
| M* | | | | | | | | core | |
|
| */MOD | core | | | | | | | core | |
|
||||||
| UM* | | | | | | | | core | |
|
| MOD | core | | | | | | | core | |
|
||||||
| LEAVE | | | | | | | | core | |
|
| / | core | | | | | | | core | |
|
||||||
| +LOOP | | | | | | | | core | |
|
| /MOD | core | | | | | | | core | |
|
||||||
| LOOP | | | | | | | | core | |
|
| 2/ | core | | | | | | | core | |
|
||||||
| ?DO | | | | | | | | core | |
|
| M/MOD | core | | | | | | | core | |
|
||||||
| DO | | | | | | | | core | |
|
| UM/MOD | core | | | | | | | core | |
|
||||||
| UNTIL | | | | | | | | core | |
|
| 2* | core | | | | | | | core | |
|
||||||
| REPEAT | | | | | | | | core | |
|
| * | core | | | | | | | core | |
|
||||||
| WHILE | | | | | | | | core | |
|
| M* | core | | | | | | | core | |
|
||||||
| BEGIN | | | | | | | | core | |
|
| UM* | core | | | | | | | core | |
|
||||||
| ELSE | | | | | | | | core | |
|
| UNLOOP | core | | | | | | | | |
|
||||||
| THEN | | | | | | | | core | |
|
| LEAVE | core | | | | | | | core | |
|
||||||
| IF | | | | | | | | core | |
|
| +LOOP | core | | | | | | | core | |
|
||||||
| CASE? | | | | | | | | core | |
|
| LOOP | core | | | | | | | core | |
|
||||||
| ?PAIRS | | | | | | | | core | |
|
| ?DO | core | | | | | | | core | |
|
||||||
| <RESOLVE | | | | | | | | core | |
|
| DO | core | | | | | | | core | |
|
||||||
| <MARK | | | | | | | | core | |
|
| UNTIL | core | | | | | | | core | |
|
||||||
| >RESOLVE | | | | | | | | core | |
|
| REPEAT | core | | | | | | | core | |
|
||||||
| >MARK | | | | | | | | core | |
|
| WHILE | core | | | | | | | core | |
|
||||||
| ?BRANCH | | | | | | | | core | |
|
| BEGIN | core | | | | | | | core | |
|
||||||
| BRANCH | | | | | | | | core | |
|
| ELSE | core | | | | | | | core | |
|
||||||
| J | | | | | | | | core | |
|
| THEN | core | | | | | | | core | |
|
||||||
| I | | | | | | | | core | |
|
| IF | core | | | | | | | core | |
|
||||||
| (+LOOP | | | | | | | | core | |
|
| CASE? | core | | | | | | | core | |
|
||||||
| (LOOP | | | | | | | | core | |
|
| ?PAIRS | core | | | | | | | core | |
|
||||||
| ENDLOOP | | | | | | | | core | |
|
| <RESOLVE | core | | | | | | | core | |
|
||||||
| BOUNDS | | | | | | | | core | |
|
| <MARK | core | | | | | | | core | |
|
||||||
| (?DO | | | | | | | | core | |
|
| >RESOLVE | core | | | | | | | core | |
|
||||||
| (DO | | | | | | | | core | |
|
| >MARK | core | | | | | | | core | |
|
||||||
| ABS | | | | | | | | core | |
|
| ?BRANCH | core | | | | | | | core | |
|
||||||
| DBAS | | | | | | | | core | |
|
| BRANCH | core | | | | | | | core | |
|
||||||
| EXTEND | | | | | | | | core | |
|
| J | core | | | | | | | core | |
|
||||||
| UMIN | | | | | | | | core | |
|
| I | core | | | | | | | core | |
|
||||||
| UMAX | | | | | | | | core | |
|
| (+LOOP | core | | | | | | | core | |
|
||||||
| MAX | | | | | | | | core | |
|
| (LOOP | core | | | | | | | core | |
|
||||||
| MIN | | | | | | | | core | |
|
| ENDLOOP | core | | | | | | | core | |
|
||||||
| D< | | | | | | | | core | |
|
| BOUNDS | core | | | | | | | core | |
|
||||||
| D= | | | | | | | | core | |
|
| (?DO | core | | | | | | | core | |
|
||||||
| D0= | | | | | | | | core | |
|
| (DO | core | | | | | | | core | |
|
||||||
| = | | | | | | | | core | |
|
| ABS | core | | | | | | | core | |
|
||||||
| U> | | | | | | | | core | |
|
| DBAS | core | | | | | | | core | |
|
||||||
| 0<> | | | | | | | | core | |
|
| EXTEND | core | | | | | | | core | |
|
||||||
| 0> | | | | | | | | core | |
|
| UMIN | core | | | | | | | core | |
|
||||||
| > | | | | | | | | core | |
|
| UMAX | core | | | | | | | core | |
|
||||||
| U< | | | | | | | | core | |
|
| MAX | core | | | | | | | core | |
|
||||||
| < | | | | | | | | core | |
|
| MIN | core | | | | | | | core | |
|
||||||
| UWITHIN | | | | | | | | core | |
|
| D< | core | | | | | | | core | |
|
||||||
| 0= | | | | | | | | core | |
|
| D= | core | | | | | | | core | |
|
||||||
| 0< | | | | | | | | core | |
|
| D0= | core | | | | | | | core | |
|
||||||
| LITERAL | | | | | | | | core | |
|
| = | core | | | | | | | core | |
|
||||||
| LIT | | | | | | | | core | |
|
| U> | core | | | | | | | core | |
|
||||||
| CLIT | | | | | | | | core | |
|
| 0<> | core | | | | | | | core | |
|
||||||
| OFF | | | | | | | | core | |
|
| 0> | core | | | | | | | core | |
|
||||||
| ON | | | | | | | | core | |
|
| > | core | | | | | | | core | |
|
||||||
| 4 | | | | | | | | core | |
|
| U< | core | | | | | | | core | |
|
||||||
| 3 | | | | | | | | core | |
|
| < | core | | | | | | | core | |
|
||||||
| 2 | | | | | | | | core | |
|
| UWITHIN | core | | | | | | | core | |
|
||||||
| 1 | | | | | | | | core | |
|
| 0= | core | | | | | | | core | |
|
||||||
| 0 | | | | | | | | core | |
|
| 0< | core | | | | | | | core | |
|
||||||
| -1 | | | | | | | | core | |
|
| LITERAL | core | | | | | | | core | |
|
||||||
| FALSE | | | | | | | | core | |
|
| LIT | core | | | | | | | core | |
|
||||||
| TRUE | | | | | | | | core | |
|
| CLIT | core | | | | | | | core | |
|
||||||
| 2- | | | | | | | | core | |
|
| OFF | core | | | | | | | core | |
|
||||||
| 1- | | | | | | | | core | |
|
| ON | core | | | | | | | core | |
|
||||||
| 3+ | | | | | | | | core | |
|
| 4 | core | | | | | | | core | |
|
||||||
| 2+ | | | | | | | | core | |
|
| 3 | core | | | | | | | core | |
|
||||||
| 1+ | | | | | | | | core | |
|
| 2 | core | | | | | | | core | |
|
||||||
| D+ | | | | | | | | core | |
|
| 1 | core | | | | | | | core | |
|
||||||
| DNEGATE | | | | | | | | core | |
|
| 0 | core | | | | | | | core | |
|
||||||
| NEGATE | | | | | | | | core | |
|
| -1 | core | | | | | | | core | |
|
||||||
| NOT | | | | | | | | core | |
|
| FALSE | core | | | | | | | core | |
|
||||||
| - | | | | | | | | core | |
|
| TRUE | core | | | | | | | core | |
|
||||||
| XOR | | | | | | | | core | |
|
| 2- | core | | | | | | | core | |
|
||||||
| AND | | | | | | | | core | |
|
| 1- | core | | | | | | | core | |
|
||||||
| OR | | | | | | | | core | |
|
| 4+ | core | | | | | | | | |
|
||||||
| + | | | | | | | | core | |
|
| 3+ | core | | | | | | | core | |
|
||||||
| 2DUP | | | | | | | | core | |
|
| 2+ | core | | | | | | | core | |
|
||||||
| 2DROP | | | | | | | | core | |
|
| 1+ | core | | | | | | | core | |
|
||||||
| 2SWAP | | | | | | | | core | |
|
| D+ | core | | | | | | | core | |
|
||||||
| ROLL | | | | | | | | core | |
|
| DNEGATE | core | | | | | | | core | |
|
||||||
| PICK | | | | | | | | core | |
|
| NEGATE | core | | | | | | | core | |
|
||||||
| UNDER | | | | | | | | core | |
|
| NOT | core | | | | | | | core | |
|
||||||
| NIP | | | | | | | | core | |
|
| - | core | | | | | | | core | |
|
||||||
| ROT | | | | | | | | core | |
|
| XOR | core | | | | | | | core | |
|
||||||
| -ROT | | | | | | | | core | |
|
| AND | core | | | | | | | core | |
|
||||||
| OVER | | | | | | | | core | |
|
| OR | core | | | | | | | core | |
|
||||||
| ?DUP | | | | | | | | core | |
|
| + | core | | | | | | | core | |
|
||||||
| DUP | | | | | | | | core | |
|
| 2DUP | core | | | | | | | core | |
|
||||||
| SWAP | | | | | | | | core | |
|
| 2DROP | core | | | | | | | core | |
|
||||||
| DROP | | | | | | | | core | |
|
| 2SWAP | core | | | | | | | core | |
|
||||||
| +! | | | | | | | | core | |
|
| ROLL | core | | | | | | | core | |
|
||||||
| ! | | | | | | | | core | |
|
| PICK | core | | | | | | | core | |
|
||||||
| @ | | | | | | | | core | |
|
| UNDER | core | | | | | | | core | |
|
||||||
| CTOGGLE | | | | | | | | core | |
|
| NIP | core | | | | | | | core | |
|
||||||
| C! | | | | | | | | core | |
|
| ROT | core | | | | | | | core | |
|
||||||
| C@ | | | | | | | | core | |
|
| -ROT | core | | | | | | | core | |
|
||||||
| PERFORM | | | | | | | | core | |
|
| OVER | core | | | | | | | core | |
|
||||||
| EXECUTE | | | | | | | | core | |
|
| ?DUP | core | | | | | | | core | |
|
||||||
| ?EXIT | | | | | | | | core | |
|
| DUP | core | | | | | | | core | |
|
||||||
| EXIT | | | | | | | | core | |
|
| SWAP | core | | | | | | | core | |
|
||||||
| RDROP | | | | | | | | core | |
|
| DROP | core | | | | | | | core | |
|
||||||
| R@ | | | | | | | | core | |
|
| +! | core | | | | | | | core | |
|
||||||
| R> | | | | | | | | core | |
|
| ! | core | | | | | | | core | |
|
||||||
| >R | | | | | | | | core | |
|
| @ | core | | | | | | | core | |
|
||||||
| RP! | | | | | | | | core | |
|
| CTOGGLE | core | | | | | | | core | |
|
||||||
| RP@ | | | | | | | | core | |
|
| C! | core | | | | | | | core | |
|
||||||
| UP! | | | | | | | | core | |
|
| C@ | core | | | | | | | core | |
|
||||||
| UP@ | | | | | | | | core | |
|
| PERFORM | core | | | | | | | core | |
|
||||||
| SP! | | | | | | | | core | |
|
| EXECUTE | core | | | | | | | core | |
|
||||||
| SP@ | | | | | | | | core | |
|
| ?EXIT | core | | | | | | | core | |
|
||||||
| UDP | | | | | | | | core | |
|
| UNNEST | core | | | | | | | | |
|
||||||
| VOC-LINK | | | | | | | | core | |
|
| EXIT | core | | | | | | | core | |
|
||||||
| ERRORHANDLER | | | | | | | | core | |
|
| RDROP | core | | | | | | | core | |
|
||||||
| INPUT | | | | | | | | core | |
|
| R@ | core | | | | | | | core | |
|
||||||
| OUTPUT | | | | | | | | core | |
|
| R> | core | | | | | | | core | |
|
||||||
| BASE | | | | | | | | core | |
|
| >R | core | | | | | | | core | |
|
||||||
| OFFSET | | | | | | | | core | |
|
| RP! | core | | | | | | | core | |
|
||||||
| DP | | | | | | | | core | |
|
| RP@ | core | | | | | | | core | |
|
||||||
| R0 | | | | | | | | core | |
|
| UP! | core | | | | | | | core | |
|
||||||
| S0 | | | | | | | | core | |
|
| UP@ | core | | | | | | | core | |
|
||||||
| ORIGIN | | | | | | | | core | |
|
| SP! | core | | | | | | | core | |
|
||||||
| NOOP | | | | | | | | core | |
|
| SP@ | core | | | | | | | core | |
|
||||||
| RECOVER | | | | | | | | core | |
|
| UDP | core | | | | | | | core | |
|
||||||
| END-TRACE | | | | | | | | core | |
|
| VOC-LINK | core | | | | | | | core | |
|
||||||
|
| ERRORHANDLER | core | | | | | | | core | |
|
||||||
|
| INPUT | core | | | | | | | core | |
|
||||||
|
| OUTPUT | core | | | | | | | core | |
|
||||||
|
| BASE | core | | | | | | | core | |
|
||||||
|
| OFFSET | core | | | | | | | core | |
|
||||||
|
| DP | core | | | | | | | core | |
|
||||||
|
| R0 | core | | | | | | | core | |
|
||||||
|
| S0 | core | | | | | | | core | |
|
||||||
|
| ORIGIN | core | | | | | | | core | |
|
||||||
|
| NOOP | core | | | | | | | core | |
|
||||||
|
| RECOVER | core | | | | | | | core | |
|
||||||
|
| END-TRACE | core | | | | | | | core | |
|
||||||
|
| LOGO | core | | | | | | | | |
|
||||||
|
| (64 | core | | | | | | | | |
|
||||||
|
| C) | core | | | | | | | | |
|
||||||
|
| (16 | core | | | | | | | | |
|
||||||
|
| C64INIT | core | | | | | | | | |
|
||||||
|
| INIT-SYSTEM | core | | | | | | | | |
|
||||||
|
| INK-POT | core | | | | | | | | |
|
||||||
|
| FINDEX | core | | | | | | | | |
|
||||||
|
| INDEX | core | | | | | | | | |
|
||||||
|
| 1541RW | core | | | | | | | | |
|
||||||
|
| DISKCLOSE | core | | | | | | | | |
|
||||||
|
| DISKOPEN | core | | | | | | | | |
|
||||||
|
| WRITESECTOR | core | | | | | | | | |
|
||||||
|
| READSECTOR | core | | | | | | | | |
|
||||||
|
| DERROR? | core | | | | | | | | |
|
||||||
|
| I/O-STATUS? | core | | | | | | | | |
|
||||||
|
| BUSINPUT | core | | | | | | | | |
|
||||||
|
| BUS@ | core | | | | | | | | |
|
||||||
|
| BUSTYPE | core | | | | | | | | |
|
||||||
|
| BUS! | core | | | | | | | | |
|
||||||
|
| BUSIN | core | | | | | | | | |
|
||||||
|
| (BUSIN | core | | | | | | | | |
|
||||||
|
| BUSCLOSE | core | | | | | | | | |
|
||||||
|
| BUSOPEN | core | | | | | | | | |
|
||||||
|
| BUSOUT | core | | | | | | | | |
|
||||||
|
| (BUSOUT | core | | | | | | | | |
|
||||||
|
| ?DEVICE | core | | | | | | | | |
|
||||||
|
| (?DEVICE | core | | | | | | | | |
|
||||||
|
| BUSOFF | core | | | | | | | | |
|
||||||
|
| I/O | core | | | | | | | | |
|
||||||
|
| (DRV | core | | | | | | | | |
|
||||||
|
| C64TYPE | core | | | | | | | | |
|
||||||
|
| C64AT? | core | | | | | | | | |
|
||||||
|
| C64AT | core | | | | | | | | |
|
||||||
|
| C64PAGE | core | | | | | | | | |
|
||||||
|
| C64DEL | core | | | | | | | | |
|
||||||
|
| C64CR | core | | | | | | | | |
|
||||||
|
| C64EMIT | core | | | | | | | | |
|
||||||
|
| PRINTABLE | core | | | | | | | | |
|
||||||
|
| CON! | core | | | | | | | | |
|
||||||
|
| C64EXPECT | core | | | | | | | | |
|
||||||
|
| C64DECODE | core | | | | | | | | |
|
||||||
|
| C64KEY | core | | | | | | | | |
|
||||||
|
| C64KEY? | core | | | | | | | | |
|
||||||
|
| CUSTOM-REMOVE | core | | | | | | | | |
|
||||||
|
| | | | | | | | | | |
|
||||||
|
15
sources/6502/Atari8bit/4th.fth
Normal file
15
sources/6502/Atari8bit/4th.fth
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
CR
|
||||||
|
.( Build 4TH.COM from plain kernel )
|
||||||
|
|
||||||
|
\needs SAVESYSTEM INCLUDE" D:SAVESYS.F"
|
||||||
|
\needs CALL INCLUDE" D:CALL.F"
|
||||||
|
\needs S" INCLUDE" D:STRING.F"
|
||||||
|
\needs 2@ INCLUDE" D:2WORDS.F"
|
||||||
|
\needs DIR INCLUDE" D:DIR.F"
|
||||||
|
SAVE
|
||||||
|
SAVE-SYSTEM D:4TH.COM
|
||||||
|
|
||||||
|
CR
|
||||||
|
.( 4TH.COM saved )
|
||||||
|
CR
|
||||||
|
|
150
sources/6502/Atari8bit/as65.fs
Normal file
150
sources/6502/Atari8bit/as65.fs
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
\ 6502 Assembler clv10oct87
|
||||||
|
\ Basis: Forth Dimensions VOL III No. 5)
|
||||||
|
\ internal loading 04may85BP/re)
|
||||||
|
\ Forth-6502 Assembler clv10oct87
|
||||||
|
\ Basis: Forth Dimensions VOL III No. 5)
|
||||||
|
|
||||||
|
CR .( Loading 6502 Assembler...) CR
|
||||||
|
|
||||||
|
Onlyforth Assembler also definitions
|
||||||
|
|
||||||
|
\ Forth-83 6502-Assembler 20oct87re
|
||||||
|
|
||||||
|
: end-code context 2- @ context ! ;
|
||||||
|
|
||||||
|
Create index
|
||||||
|
$0909 , $1505 , $0115 , $8011 ,
|
||||||
|
$8009 , $1D0D , $8019 , $8080 ,
|
||||||
|
$0080 , $1404 , $8014 , $8080 ,
|
||||||
|
$8080 , $1C0C , $801C , $2C80 ,
|
||||||
|
|
||||||
|
| Variable mode
|
||||||
|
|
||||||
|
: Mode: ( n -) Create c,
|
||||||
|
Does> ( -) c@ mode ! ;
|
||||||
|
|
||||||
|
0 Mode: .A 1 Mode: #
|
||||||
|
2 | Mode: mem 3 Mode: ,X
|
||||||
|
4 Mode: ,Y 5 Mode: X)
|
||||||
|
6 Mode: )Y $F Mode: )
|
||||||
|
|
||||||
|
\ upmode cpu 20oct87re
|
||||||
|
|
||||||
|
| : upmode ( addr0 f0 - addr1 f1)
|
||||||
|
IF mode @ 8 or mode ! THEN
|
||||||
|
1 mode @ $F and ?dup IF
|
||||||
|
0 DO dup + LOOP THEN
|
||||||
|
over 1+ @ and 0= ;
|
||||||
|
|
||||||
|
: cpu ( 8b -) Create c,
|
||||||
|
Does> ( -) c@ c, mem ;
|
||||||
|
|
||||||
|
00 cpu brk $18 cpu clc $D8 cpu cld
|
||||||
|
$58 cpu cli $B8 cpu clv $CA cpu dex
|
||||||
|
$88 cpu dey $E8 cpu inx $C8 cpu iny
|
||||||
|
$EA cpu nop $48 cpu pha $08 cpu php
|
||||||
|
$68 cpu pla $28 cpu plp $40 cpu rti
|
||||||
|
$60 cpu rts $38 cpu sec $F8 cpu sed
|
||||||
|
$78 cpu sei $AA cpu tax $A8 cpu tay
|
||||||
|
$BA cpu tsx $8A cpu txa $9A cpu txs
|
||||||
|
$98 cpu tya
|
||||||
|
|
||||||
|
\ m/cpu 20oct87re
|
||||||
|
|
||||||
|
: m/cpu ( mode opcode -) Create c, ,
|
||||||
|
Does>
|
||||||
|
dup 1+ @ $80 and IF $10 mode +! THEN
|
||||||
|
over $FF00 and upmode upmode
|
||||||
|
IF mem true Abort" invalid" THEN
|
||||||
|
c@ mode @ index + c@ + c, mode @ 7 and
|
||||||
|
IF mode @ $F and 7 <
|
||||||
|
IF c, ELSE , THEN THEN mem ;
|
||||||
|
|
||||||
|
$1C6E $60 m/cpu adc $1C6E $20 m/cpu and
|
||||||
|
$1C6E $C0 m/cpu cmp $1C6E $40 m/cpu eor
|
||||||
|
$1C6E $A0 m/cpu lda $1C6E $00 m/cpu ora
|
||||||
|
$1C6E $E0 m/cpu sbc $1C6C $80 m/cpu sta
|
||||||
|
$0D0D $01 m/cpu asl $0C0C $C1 m/cpu dec
|
||||||
|
$0C0C $E1 m/cpu inc $0D0D $41 m/cpu lsr
|
||||||
|
$0D0D $21 m/cpu rol $0D0D $61 m/cpu ror
|
||||||
|
$0414 $81 m/cpu stx $0486 $E0 m/cpu cpx
|
||||||
|
$0486 $C0 m/cpu cpy $1496 $A2 m/cpu ldx
|
||||||
|
$0C8E $A0 m/cpu ldy $048C $80 m/cpu sty
|
||||||
|
$0480 $14 m/cpu jsr $8480 $40 m/cpu jmp
|
||||||
|
$0484 $20 m/cpu bit
|
||||||
|
|
||||||
|
\ Assembler conditionals 20oct87re
|
||||||
|
|
||||||
|
| : range? ( branch -- branch )
|
||||||
|
dup abs $7F u> Abort" out of range " ;
|
||||||
|
|
||||||
|
: [[ ( BEGIN) here ;
|
||||||
|
: ?] ( UNTIL) c, here 1+ - range? c, ;
|
||||||
|
: ?[ ( IF) c, here 0 c, ;
|
||||||
|
: ?[[ ( WHILE) ?[ swap ;
|
||||||
|
: ]? ( THEN) here over c@ IF swap !
|
||||||
|
ELSE over 1+ - range? swap c! THEN ;
|
||||||
|
: ][ ( ELSE) here 1+ 1 jmp
|
||||||
|
swap here over 1+ - range? swap c! ;
|
||||||
|
: ]] ( AGAIN) jmp ;
|
||||||
|
: ]]? ( REPEAT) jmp ]? ;
|
||||||
|
|
||||||
|
\ Assembler conditionals 20oct87re
|
||||||
|
$90 Constant CS $B0 Constant CC
|
||||||
|
$D0 Constant 0= $F0 Constant 0<>
|
||||||
|
$10 Constant 0< $30 Constant 0>=
|
||||||
|
$50 Constant VS $70 Constant VC
|
||||||
|
|
||||||
|
: not $20 [ Forth ] xor ;
|
||||||
|
|
||||||
|
: beq 0<> ?] ; : bmi 0>= ?] ;
|
||||||
|
: bne 0= ?] ; : bpl 0< ?] ;
|
||||||
|
: bcc CS ?] ; : bvc VS ?] ;
|
||||||
|
: bcs CC ?] ; : bvs VC ?] ;
|
||||||
|
|
||||||
|
\ 2inc/2dec winc/wdec 20oct87re
|
||||||
|
|
||||||
|
: 2inc ( adr -- )
|
||||||
|
dup lda clc 2 # adc
|
||||||
|
dup sta CS ?[ swap 1+ inc ]? ;
|
||||||
|
|
||||||
|
: 2dec ( adr -- )
|
||||||
|
dup lda sec 2 # sbc
|
||||||
|
dup sta CC ?[ swap 1+ dec ]? ;
|
||||||
|
|
||||||
|
: winc ( adr -- )
|
||||||
|
dup inc 0= ?[ swap 1+ inc ]? ;
|
||||||
|
|
||||||
|
: wdec ( adr -- )
|
||||||
|
dup lda 0= ?[ over 1+ dec ]? dec ;
|
||||||
|
|
||||||
|
: ;c:
|
||||||
|
recover jsr end-code ] 0 last ! 0 ;
|
||||||
|
|
||||||
|
\ ;code Code code> bp/re03feb85
|
||||||
|
|
||||||
|
Onlyforth
|
||||||
|
|
||||||
|
: Assembler
|
||||||
|
Assembler [ Assembler ] mem ;
|
||||||
|
|
||||||
|
: ;Code
|
||||||
|
[compile] Does> -3 allot
|
||||||
|
[compile] ; -2 allot Assembler ;
|
||||||
|
immediate
|
||||||
|
|
||||||
|
: Code Create here dup 2- ! Assembler ;
|
||||||
|
|
||||||
|
: >label ( adr -)
|
||||||
|
here | Create immediate swap ,
|
||||||
|
4 hallot heap 1 and hallot ( 6502-alig)
|
||||||
|
here 4 - heap 4 cmove
|
||||||
|
heap last @ count $1F and + ! dp !
|
||||||
|
Does> ( - adr) @
|
||||||
|
state @ IF [compile] Literal THEN ;
|
||||||
|
|
||||||
|
: Label
|
||||||
|
[ Assembler ] here >label Assembler ;
|
||||||
|
|
||||||
|
Onlyforth
|
||||||
|
|
150
sources/6502/Atari8bit/as65.fth
Normal file
150
sources/6502/Atari8bit/as65.fth
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
\ 6502 Assembler clv10oct87
|
||||||
|
\ Basis: Forth Dimensions VOL III No. 5)
|
||||||
|
\ internal loading 04may85BP/re)
|
||||||
|
\ Forth-6502 Assembler clv10oct87
|
||||||
|
\ Basis: Forth Dimensions VOL III No. 5)
|
||||||
|
|
||||||
|
CR .( Loading 6502 Assembler...) CR
|
||||||
|
|
||||||
|
Onlyforth Assembler also definitions
|
||||||
|
|
||||||
|
\ Forth-83 6502-Assembler 20oct87re
|
||||||
|
|
||||||
|
: end-code context 2- @ context ! ;
|
||||||
|
|
||||||
|
Create index
|
||||||
|
$0909 , $1505 , $0115 , $8011 ,
|
||||||
|
$8009 , $1D0D , $8019 , $8080 ,
|
||||||
|
$0080 , $1404 , $8014 , $8080 ,
|
||||||
|
$8080 , $1C0C , $801C , $2C80 ,
|
||||||
|
|
||||||
|
| Variable mode
|
||||||
|
|
||||||
|
: Mode: ( n -) Create c,
|
||||||
|
Does> ( -) c@ mode ! ;
|
||||||
|
|
||||||
|
0 Mode: .A 1 Mode: #
|
||||||
|
2 | Mode: mem 3 Mode: ,X
|
||||||
|
4 Mode: ,Y 5 Mode: X)
|
||||||
|
6 Mode: )Y $F Mode: )
|
||||||
|
|
||||||
|
\ upmode cpu 20oct87re
|
||||||
|
|
||||||
|
| : upmode ( addr0 f0 - addr1 f1)
|
||||||
|
IF mode @ 8 or mode ! THEN
|
||||||
|
1 mode @ $F and ?dup IF
|
||||||
|
0 DO dup + LOOP THEN
|
||||||
|
over 1+ @ and 0= ;
|
||||||
|
|
||||||
|
: cpu ( 8b -) Create c,
|
||||||
|
Does> ( -) c@ c, mem ;
|
||||||
|
|
||||||
|
00 cpu brk $18 cpu clc $D8 cpu cld
|
||||||
|
$58 cpu cli $B8 cpu clv $CA cpu dex
|
||||||
|
$88 cpu dey $E8 cpu inx $C8 cpu iny
|
||||||
|
$EA cpu nop $48 cpu pha $08 cpu php
|
||||||
|
$68 cpu pla $28 cpu plp $40 cpu rti
|
||||||
|
$60 cpu rts $38 cpu sec $F8 cpu sed
|
||||||
|
$78 cpu sei $AA cpu tax $A8 cpu tay
|
||||||
|
$BA cpu tsx $8A cpu txa $9A cpu txs
|
||||||
|
$98 cpu tya
|
||||||
|
|
||||||
|
\ m/cpu 20oct87re
|
||||||
|
|
||||||
|
: m/cpu ( mode opcode -) Create c, ,
|
||||||
|
Does>
|
||||||
|
dup 1+ @ $80 and IF $10 mode +! THEN
|
||||||
|
over $FF00 and upmode upmode
|
||||||
|
IF mem true Abort" invalid" THEN
|
||||||
|
c@ mode @ index + c@ + c, mode @ 7 and
|
||||||
|
IF mode @ $F and 7 <
|
||||||
|
IF c, ELSE , THEN THEN mem ;
|
||||||
|
|
||||||
|
$1C6E $60 m/cpu adc $1C6E $20 m/cpu and
|
||||||
|
$1C6E $C0 m/cpu cmp $1C6E $40 m/cpu eor
|
||||||
|
$1C6E $A0 m/cpu lda $1C6E $00 m/cpu ora
|
||||||
|
$1C6E $E0 m/cpu sbc $1C6C $80 m/cpu sta
|
||||||
|
$0D0D $01 m/cpu asl $0C0C $C1 m/cpu dec
|
||||||
|
$0C0C $E1 m/cpu inc $0D0D $41 m/cpu lsr
|
||||||
|
$0D0D $21 m/cpu rol $0D0D $61 m/cpu ror
|
||||||
|
$0414 $81 m/cpu stx $0486 $E0 m/cpu cpx
|
||||||
|
$0486 $C0 m/cpu cpy $1496 $A2 m/cpu ldx
|
||||||
|
$0C8E $A0 m/cpu ldy $048C $80 m/cpu sty
|
||||||
|
$0480 $14 m/cpu jsr $8480 $40 m/cpu jmp
|
||||||
|
$0484 $20 m/cpu bit
|
||||||
|
|
||||||
|
\ Assembler conditionals 20oct87re
|
||||||
|
|
||||||
|
| : range? ( branch -- branch )
|
||||||
|
dup abs $7F u> Abort" out of range " ;
|
||||||
|
|
||||||
|
: [[ ( BEGIN) here ;
|
||||||
|
: ?] ( UNTIL) c, here 1+ - range? c, ;
|
||||||
|
: ?[ ( IF) c, here 0 c, ;
|
||||||
|
: ?[[ ( WHILE) ?[ swap ;
|
||||||
|
: ]? ( THEN) here over c@ IF swap !
|
||||||
|
ELSE over 1+ - range? swap c! THEN ;
|
||||||
|
: ][ ( ELSE) here 1+ 1 jmp
|
||||||
|
swap here over 1+ - range? swap c! ;
|
||||||
|
: ]] ( AGAIN) jmp ;
|
||||||
|
: ]]? ( REPEAT) jmp ]? ;
|
||||||
|
|
||||||
|
\ Assembler conditionals 20oct87re
|
||||||
|
$90 Constant CS $B0 Constant CC
|
||||||
|
$D0 Constant 0= $F0 Constant 0<>
|
||||||
|
$10 Constant 0< $30 Constant 0>=
|
||||||
|
$50 Constant VS $70 Constant VC
|
||||||
|
|
||||||
|
: not $20 [ Forth ] xor ;
|
||||||
|
|
||||||
|
: beq 0<> ?] ; : bmi 0>= ?] ;
|
||||||
|
: bne 0= ?] ; : bpl 0< ?] ;
|
||||||
|
: bcc CS ?] ; : bvc VS ?] ;
|
||||||
|
: bcs CC ?] ; : bvs VC ?] ;
|
||||||
|
|
||||||
|
\ 2inc/2dec winc/wdec 20oct87re
|
||||||
|
|
||||||
|
: 2inc ( adr -- )
|
||||||
|
dup lda clc 2 # adc
|
||||||
|
dup sta CS ?[ swap 1+ inc ]? ;
|
||||||
|
|
||||||
|
: 2dec ( adr -- )
|
||||||
|
dup lda sec 2 # sbc
|
||||||
|
dup sta CC ?[ swap 1+ dec ]? ;
|
||||||
|
|
||||||
|
: winc ( adr -- )
|
||||||
|
dup inc 0= ?[ swap 1+ inc ]? ;
|
||||||
|
|
||||||
|
: wdec ( adr -- )
|
||||||
|
dup lda 0= ?[ over 1+ dec ]? dec ;
|
||||||
|
|
||||||
|
: ;c:
|
||||||
|
recover jsr end-code ] 0 last ! 0 ;
|
||||||
|
|
||||||
|
\ ;code Code code> bp/re03feb85
|
||||||
|
|
||||||
|
Onlyforth
|
||||||
|
|
||||||
|
: Assembler
|
||||||
|
Assembler [ Assembler ] mem ;
|
||||||
|
|
||||||
|
: ;Code
|
||||||
|
[compile] Does> -3 allot
|
||||||
|
[compile] ; -2 allot Assembler ;
|
||||||
|
immediate
|
||||||
|
|
||||||
|
: Code Create here dup 2- ! Assembler ;
|
||||||
|
|
||||||
|
: >label ( adr -)
|
||||||
|
here | Create immediate swap ,
|
||||||
|
4 hallot heap 1 and hallot ( 6502-alig)
|
||||||
|
here 4 - heap 4 cmove
|
||||||
|
heap last @ count $1F and + ! dp !
|
||||||
|
Does> ( - adr) @
|
||||||
|
state @ IF [compile] Literal THEN ;
|
||||||
|
|
||||||
|
: Label
|
||||||
|
[ Assembler ] here >label Assembler ;
|
||||||
|
|
||||||
|
Onlyforth
|
||||||
|
|
17
sources/6502/Atari8bit/call.fth
Normal file
17
sources/6502/Atari8bit/call.fth
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
\NEEDS CODE INCLUDE" D:TAS65.F"
|
||||||
|
|
||||||
|
( Call Machine Routine at "addr" )
|
||||||
|
( return value is A-Reg and Y-Reg)
|
||||||
|
HEX
|
||||||
|
CODE CALL ( addr -- res )
|
||||||
|
4C # lda n sta
|
||||||
|
SP x) lda n 1+ sta
|
||||||
|
SP )y lda n 2+ sta
|
||||||
|
n jsr
|
||||||
|
n sta
|
||||||
|
n 1+ sty
|
||||||
|
00 # ldx
|
||||||
|
01 # ldy
|
||||||
|
n lda SP x) sta
|
||||||
|
n 1+ lda SP )y sta
|
||||||
|
next jmp end-code
|
23
sources/6502/Atari8bit/dir.fth
Normal file
23
sources/6502/Atari8bit/dir.fth
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
CR
|
||||||
|
.( List Directory Command for volksForth )
|
||||||
|
-1 ?HEAD ! ( move head of DIRX in Heap )
|
||||||
|
: DIRX
|
||||||
|
&6 OPEN-FILE DUP
|
||||||
|
$80 > IF ." File Error:" . ABORT THEN
|
||||||
|
DROP SOURCE-ID ! CR
|
||||||
|
BEGIN $580 &18 SOURCE-ID @ READ-LINE
|
||||||
|
$80 < WHILE
|
||||||
|
DROP $580 SWAP TYPE
|
||||||
|
REPEAT 2DROP
|
||||||
|
SOURCE-ID @ CLOSE-FILE DROP CR ;
|
||||||
|
|
||||||
|
( Generic Directory listing for )
|
||||||
|
( current directory )
|
||||||
|
: DIR " D:*.*" COUNT DIRX ;
|
||||||
|
|
||||||
|
( Directory Listing with Parameter )
|
||||||
|
( Example: DIR" D2:*.COM"
|
||||||
|
: DIR" FILE" DIRX ;
|
||||||
|
|
||||||
|
CR .( DIR and DIR" Command loaded )
|
||||||
|
CR
|
9
sources/6502/Atari8bit/random.fth
Normal file
9
sources/6502/Atari8bit/random.fth
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
\ Random Numbers
|
||||||
|
|
||||||
|
: RND ( -- n ) \ Random Number 0-255
|
||||||
|
$D20A C@ ;
|
||||||
|
|
||||||
|
: RANDOM ( n -- 0..n-1 )
|
||||||
|
RND $100 * RND + UM* NIP ;
|
||||||
|
|
||||||
|
|
19
sources/6502/Atari8bit/savesys.fth
Normal file
19
sources/6502/Atari8bit/savesys.fth
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
: SAVESYSTEM
|
||||||
|
$FFFF $600 !
|
||||||
|
ORIGIN 8 - $602 !
|
||||||
|
HERE $604 !
|
||||||
|
FILE" W/O OPEN-FILE DROP
|
||||||
|
DUP $600 6 ROT
|
||||||
|
WRITE-FILE ( save header ) DROP
|
||||||
|
DUP ORIGIN 8 - HERE
|
||||||
|
ORIGIN 8 - - 1+ ROT
|
||||||
|
WRITE-FILE DROP
|
||||||
|
$02E0 $602 !
|
||||||
|
$02E1 $604 !
|
||||||
|
ORIGIN 8 - $606 !
|
||||||
|
DUP $602 6 ROT
|
||||||
|
WRITE-FILE DROP
|
||||||
|
CLOSE-FILE DROP ;
|
||||||
|
|
||||||
|
' SAVESYSTEM ALIAS SAVE-SYSTEM
|
||||||
|
|
9
sources/6502/Atari8bit/sound.fth
Normal file
9
sources/6502/Atari8bit/sound.fth
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
\ Atari Sound Commands
|
||||||
|
|
||||||
|
( $D200 = Pokey AUDBASE )
|
||||||
|
|
||||||
|
: SOUND ( CH# FREQ DIST VOL -- )
|
||||||
|
SWAP $10 * + ROT DUP + $D200 +
|
||||||
|
ROT OVER C! 1+ C! ;
|
||||||
|
|
||||||
|
|
20
sources/6502/Atari8bit/tas65.fth
Normal file
20
sources/6502/Atari8bit/tas65.fth
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
\ transient Assembler clv10oct87
|
||||||
|
\ Basis: Forth Dimensions VOL III No. 5)
|
||||||
|
\ internal loading 04may85BP/re)
|
||||||
|
\ Forth-6502 Assembler clv10oct87
|
||||||
|
\ Basis: Forth Dimensions VOL III No. 5)
|
||||||
|
|
||||||
|
CR .( Loading 6502 transient Assembler...) CR
|
||||||
|
|
||||||
|
Onlyforth Assembler also definitions
|
||||||
|
here $800 hallot heap dp !
|
||||||
|
|
||||||
|
INCLUDE" D:AS65.FS"
|
||||||
|
|
||||||
|
dp !
|
||||||
|
|
||||||
|
Onlyforth
|
||||||
|
|
||||||
|
CR .( Transient Assembler loaded...) CR
|
||||||
|
|
||||||
|
|
122
sources/6502/math.fth
Normal file
122
sources/6502/math.fth
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
\ A SINUS-TABLE 20OCT87RE
|
||||||
|
\ SINUS-TABLE FROM FD Vol IV/1
|
||||||
|
|
||||||
|
\needs code INCLUDE" D:TAS65.FS"
|
||||||
|
|
||||||
|
| : TABLE ( VALUES N -)
|
||||||
|
CREATE 0 DO , LOOP
|
||||||
|
;CODE ( N - VALUE)
|
||||||
|
SP X) LDA CLC 1 # ADC .A ASL TAY
|
||||||
|
W )Y LDA SP X) STA
|
||||||
|
INY W )Y LDA 1 # LDY SP )Y STA
|
||||||
|
NEXT JMP END-CODE
|
||||||
|
|
||||||
|
10000 9998 9994 9986 9976 9962 9945 9925
|
||||||
|
9903 9877 9848 9816 9781 9744 9703 9659
|
||||||
|
9613 9563 9511 9455 9397 9336 9272 9205
|
||||||
|
9135 9063 8988 8910 8829 8746 8660 8572
|
||||||
|
8480 8387 8290 8192 8090 7986 7880 7771
|
||||||
|
7660 7547 7431 7314 7193 7071 6947 6820
|
||||||
|
6691 6561 6428 6293 6157 6018 5878 5736
|
||||||
|
5592 5446 5299 5150 5000 4848 4695 4540
|
||||||
|
4384 4226 4067 3907 3746 3584 3420 3256
|
||||||
|
3090 2924 2756 2588 2419 2250 2079 1908
|
||||||
|
1736 1564 1392 1219 1045 0872 0698 0523
|
||||||
|
0349 0175 0000
|
||||||
|
|
||||||
|
&91 | TABLE SINTABLE
|
||||||
|
|
||||||
|
| : S180 ( DEG -- SIN*10000:SIN 0-180)
|
||||||
|
DUP &90 >
|
||||||
|
IF &180 SWAP - THEN
|
||||||
|
SINTABLE ;
|
||||||
|
|
||||||
|
: SIN ( DEG -- SIN*10000)
|
||||||
|
&360 MOD DUP 0< IF &360 + THEN
|
||||||
|
DUP &180 >
|
||||||
|
IF &180 - S180 NEGATE
|
||||||
|
ELSE S180 THEN ;
|
||||||
|
|
||||||
|
: COS ( DEG -- COS*10000)
|
||||||
|
&360 MOD &90 + SIN ;
|
||||||
|
|
||||||
|
: TAN ( DEG -- TAN*10000)
|
||||||
|
DUP SIN SWAP COS ?DUP
|
||||||
|
IF &100 SWAP */ ELSE 3 * THEN ;
|
||||||
|
|
||||||
|
CODE D2* ( D1 - D2)
|
||||||
|
2 # LDA SETUP JSR
|
||||||
|
N 2+ ASL N 3 + ROL N ROL N 1+ ROL
|
||||||
|
SP 2DEC N 3 + LDA SP )Y STA
|
||||||
|
N 2+ LDA SP X) STA
|
||||||
|
SP 2DEC N 1+ LDA SP )Y STA
|
||||||
|
N LDA SP X) STA
|
||||||
|
NEXT JMP END-CODE
|
||||||
|
|
||||||
|
: DU< &32768 + ROT &32768 + ROT ROT D< ;
|
||||||
|
|
||||||
|
| : EASY-BITS ( N1 -- N2)
|
||||||
|
0 DO
|
||||||
|
>R D2* D2* R@ - DUP 0<
|
||||||
|
IF R@ + R> 2* 1-
|
||||||
|
ELSE R> 2* 3 +
|
||||||
|
THEN
|
||||||
|
LOOP ;
|
||||||
|
|
||||||
|
| : 2'S-BIT
|
||||||
|
>R D2* DUP 0<
|
||||||
|
IF D2* R@ - R> 1+
|
||||||
|
ELSE D2* R@ 2DUP U<
|
||||||
|
IF DROP R> 1- ELSE - R> 1+ THEN
|
||||||
|
THEN ;
|
||||||
|
|
||||||
|
| : 1'S-BIT
|
||||||
|
>R DUP 0<
|
||||||
|
IF 2DROP R> 1+
|
||||||
|
ELSE D2* &32768 R@ DU< 0=
|
||||||
|
NEGATE R> +
|
||||||
|
THEN ;
|
||||||
|
|
||||||
|
: SQRT ( UD1 - U2)
|
||||||
|
0 1 8 EASY-BITS
|
||||||
|
ROT DROP 6 EASY-BITS
|
||||||
|
2'S-BIT 1'S-BIT ;
|
||||||
|
|
||||||
|
\ Test
|
||||||
|
\
|
||||||
|
\ : XX
|
||||||
|
\ &16 * &62500 UM*
|
||||||
|
\ SQRT 0 <# # # # ASCII . HOLD #S #>
|
||||||
|
\ TYPE SPACE ;
|
||||||
|
|
||||||
|
CODE 100* ( N1 - N2)
|
||||||
|
SP X) LDA N STA SP )Y LDA N 1+ STA
|
||||||
|
N ASL N 1+ ROL N ASL N 1+ ROL
|
||||||
|
N LDA N 2+ STA N 1+ LDA N 3 + STA
|
||||||
|
N 2+ ASL N 3 + ROL N 2+ ASL N 3 + ROL
|
||||||
|
N 2+ ASL N 3 + ROL
|
||||||
|
CLC N LDA N 2+ ADC N STA
|
||||||
|
N 1+ LDA N 3 + ADC N 1+ STA
|
||||||
|
N 2+ ASL N 3 + ROL
|
||||||
|
CLC N LDA N 2+ ADC SP X) STA
|
||||||
|
N 1+ LDA N 3 + ADC SP )Y STA
|
||||||
|
NEXT JMP END-CODE
|
||||||
|
|
||||||
|
LABEL 4/+
|
||||||
|
N 7 + LSR N 6 + ROR N 5 + ROR N 4 + ROR
|
||||||
|
N 7 + LSR N 6 + ROR N 5 + ROR N 4 + ROR
|
||||||
|
CLC N LDA N 4 + ADC N STA
|
||||||
|
N 1+ LDA N 5 + ADC N 1+ STA
|
||||||
|
SP X) LDA N 6 + ADC SP X) STA
|
||||||
|
SP )Y LDA N 7 + ADC SP )Y STA RTS
|
||||||
|
|
||||||
|
CODE 100U/ ( U - N)
|
||||||
|
N STX N 4 + STX
|
||||||
|
SP X) LDA .A ASL N 1+ STA N 5 + STA
|
||||||
|
SP )Y LDA .A ROL SP X) STA N 6 + STA
|
||||||
|
TXA .A ROL SP )Y STA N 7 + STA
|
||||||
|
4/+ JSR
|
||||||
|
N 7 + LSR N 6 + ROR N 5 + ROR N 4 + ROR
|
||||||
|
4/+ JSR
|
||||||
|
NEXT JMP END-CODE
|
||||||
|
|
19
sources/generic/array.fth
Normal file
19
sources/generic/array.fth
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
\ Arrays with bounds checking
|
||||||
|
|
||||||
|
| : (ARRAYERROR
|
||||||
|
ABORT" Array out of bounds!" ;
|
||||||
|
|
||||||
|
: ARRAY ( size -- )
|
||||||
|
CREATE DUP , 2* ALLOT
|
||||||
|
DOES> ( i -- addr )
|
||||||
|
OVER 0< (ARRAYERROR
|
||||||
|
2DUP @ 1- - 0> (ARRAYERROR
|
||||||
|
SWAP 1+ 2* + ;
|
||||||
|
|
||||||
|
: CARRAY ( size -- )
|
||||||
|
CREATE DUP , ALLOT
|
||||||
|
DOES> ( i -- addr )
|
||||||
|
OVER 0< (ARRAYERROR
|
||||||
|
2DUP @ 1- - 0> (ARRAYERROR
|
||||||
|
+ 1+ ;
|
||||||
|
|
4
sources/generic/create.fth
Normal file
4
sources/generic/create.fth
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
: CREATE: create hide
|
||||||
|
current @ context ! 0 ] ;
|
||||||
|
|
||||||
|
|
9
sources/generic/double.fth
Normal file
9
sources/generic/double.fth
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
\ Double Cell 32bit arithmetics words
|
||||||
|
|
||||||
|
.( load additional double 32bit words )
|
||||||
|
|
||||||
|
: D/ ( d u -- d ) \ floored result
|
||||||
|
SWAP OVER /MOD >R
|
||||||
|
SWAP UM/MOD SWAP DROP R> ;
|
||||||
|
|
||||||
|
|
33
sources/generic/sieve.fth
Normal file
33
sources/generic/sieve.fth
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
\ Sieve benchmark
|
||||||
|
|
||||||
|
CR .( Loading Sieve Benchmark... ) CR
|
||||||
|
Onlyforth
|
||||||
|
|
||||||
|
: allot ( u --)
|
||||||
|
dup sp@ here - $180 - u>
|
||||||
|
abort" no room" allot ;
|
||||||
|
|
||||||
|
&8192 Constant size
|
||||||
|
Create flags size allot
|
||||||
|
: do-prime ( -- #primes )
|
||||||
|
flags size 1 fill 0
|
||||||
|
size 0 DO flags I + c@
|
||||||
|
IF I 2* 3+ dup I +
|
||||||
|
BEGIN dup size <
|
||||||
|
WHILE 0 over flags + c!
|
||||||
|
over +
|
||||||
|
REPEAT 2drop 1+
|
||||||
|
THEN
|
||||||
|
LOOP ;
|
||||||
|
: benchmark
|
||||||
|
do-prime . ." Primzahlen" ;
|
||||||
|
: .primes size 0 DO flags I + c@
|
||||||
|
IF I 2* 3+ . THEN ?cr
|
||||||
|
stop? IF LEAVE THEN LOOP ;
|
||||||
|
|
||||||
|
CR .( Start Benchmark ) CR
|
||||||
|
benchmark CR
|
||||||
|
|
||||||
|
.primes CR
|
||||||
|
|
||||||
|
.( Benchmark finished ) CR
|
4
tools/from-atascii.sh
Executable file
4
tools/from-atascii.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# converts from ATASCII (Atari 400/800/XL/XE) to ASCII
|
||||||
|
|
||||||
|
tr '\233\177' '\12\11' < ${1} > ${2}
|
4
tools/to-atascii.sh
Executable file
4
tools/to-atascii.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# converts from ASCII to ATASCII (Atari 400/800/XL/XE)
|
||||||
|
|
||||||
|
tr '\12\11' '\233\177' < ${1} > ${2}
|
Loading…
x
Reference in New Issue
Block a user