OSDN Git Service

Description of cross_v, improving the README, etc.
authorJoel Matthew Rees <joel.rees@gmail.com>
Sat, 20 Apr 2019 04:43:45 +0000 (13:43 +0900)
committerJoel Matthew Rees <joel.rees@gmail.com>
Sat, 20 Apr 2019 04:43:45 +0000 (13:43 +0900)
BIFDOC.TXT
README.TXT
commands.txt

index 2e58a15..640a814 100644 (file)
@@ -17,14 +17,14 @@ any purpose with or without fee is hereby granted, provided that the
 accompanying copyright notices and this permission notice appear in \r
 all copies.\r
 \r
-THE SOFTWARE IS PROVIDED “AS IS” AND ISC DISCLAIMS ALL WARRANTIES \r
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF \r
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY \r
-SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES \r
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN \r
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, \r
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS \r
-SOFTWARE.\r
+THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHORS DISCLAIM ALL \r
+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED \r
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE\r
+AUTHORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL \r
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR \r
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER \r
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR \r
+PERFORMANCE OF THIS SOFTWARE.\r
 =========\r
 (This is essentially the ISC license.)\r
 \r
@@ -50,7 +50,7 @@ DISKS FORMATTED FOR USE BY OTHER OPERATING SYSTEMS WHILE BIF IS RUNNING!
 \r
 Contact as of January 2000:\r
                                        http://reiisi.blogspot.com\r
-                                       joel.rees+knock@gmail.com\r
+                                       joel.rees+knock at gmail dot com\r
                                        https://defining-computers.blogspot.com/\r
                                        https://ja.osdn.net/users/reiisi/\r
                                        https://sourceforge.net/u/reiisi/profile/\r
@@ -108,6 +108,9 @@ refer to this documentation.  Some of the descriptions are incomplete,
 particularly where definitions are intended to be used inside other\r
 definitions.\r
 \r
+Current on-line versions of Brodie's work will need some adjustment \r
+to work with this dialect of Forth.\r
+\r
 The object contains a simple one-sector editor (for 32-column screens)\r
 in the EDITOR vocabulary.  It does not provide search and replace, but\r
 it is sufficient, for the patient, to write code.  My apologies for it.\r
@@ -117,7 +120,7 @@ Installation Manual should have no problem installing the editor shown
 there.\r
 \r
 The assembler in the BIF screens is a full postfix assembler.  The\r
-double integer screens show a quick example of its use.\r
+double integer screens show a quick example of its use. (Theoretically.)\r
 \r
 \r
 *******************************************************************************\r
index b50a6a4..4d19008 100644 (file)
@@ -1,14 +1,14 @@
 Information about BIF as of April 2019.\r
 \r
-       Joel Matthew Rees, Amagasaki, Hyogo, Japan.\r
+       Author: Joel Matthew Rees, Amagasaki, Hyogo, Japan.\r
                                        https://ja.osdn.net/projects/bif-6809/\r
-                                       joel.rees+knock@gmail.com\r
+                                       joel.rees+knock at gmail dot com\r
                                        http://reiisi.blogspot.com\r
                                        https://defining-computers.blogspot.com/\r
                                        https://ja.osdn.net/users/reiisi/\r
                                        https://sourceforge.net/u/reiisi/profile/\r
                                        etc.\r
-       Copyright 2000, 2019 Joel Matthew Rees\r
+       Copyright from 2000 to 2019 Joel Matthew Rees\r
 \r
 -----\r
 \r
@@ -39,26 +39,35 @@ any purpose with or without fee is hereby granted, provided that the
 accompanying copyright notices and this permission notice appear in \r
 all copies.\r
 \r
-THE SOFTWARE IS PROVIDED “AS IS” AND ISC DISCLAIMS ALL WARRANTIES \r
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF \r
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY \r
-SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES \r
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN \r
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, \r
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS \r
-SOFTWARE.\r
+THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHORS DISCLAIM ALL \r
+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED \r
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE\r
+AUTHORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL \r
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR \r
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER \r
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR \r
+PERFORMANCE OF THIS SOFTWARE.\r
 =========\r
 \r
 I add here the stipulation that I claim right to the word "BIF" as \r
 the name of a programming language.\r
 \r
 If you are going to distribute or redistribute the obect or source of \r
-bif in any of its forms, it really makes no sense not to include the \r
-BIFDOC.TXT and this README.TXT. If you do something like that and \r
-you or anyone that gets the results has problems with it, and you come \r
-to me looking for help, expect to be teased mercilessly about it. And \r
-expect to be on the bottom of my priority list, not out of spite, \r
-out of self-protection.\r
+bif in any of its forms, it really makes no sense at all to fail to \r
+include either the BIFDOC.TXT file and this README.TXT file.\r
+\r
+In the present world, it also makes no sense to fail to include the \r
+source code, or at least a link to a known good repository -- such as \r
+\r
+https://ja.osdn.net/projects/bif-6809/\r
+https://ja.osdn.net/projects/bif-6809/scm/git/bif-6809/\r
+\r
+\r
+If you do something like that and you or anyone that gets the \r
+resulting distribution has problems with it, and somebody comes \r
+to me looking for help, expect to be teased mercilessly about it. \r
+And expect to be on the bottom of my priority list, not out of \r
+spite, out of self-protection.\r
 \r
 -----\r
 \r
@@ -146,6 +155,13 @@ Forth style screen listings.
 The program stripln can be used to strip line numbers from such screen \r
 listings, as well. \r
 \r
+I really should put in more work on the tools for converting between \r
+normal text files and Forth/BIF screens, but those projects aren't even \r
+on my back burners any more. Maybe later. In the meantime, you're \r
+welcome to take a crack at it.\r
+\r
+-----\r
+\r
 The documentation is ASCII text, with CR/LF line termination, and should\r
 be examined carefully by anyone considering a port.  Bear in mind that\r
 it was written toward Color Computer users.\r
@@ -158,134 +174,239 @@ work on the train just gave me more things to do on the train.)
 \r
 -----\r
 \r
-There are three subdirectories at this point:\r
+There are four subdirectories at this point:\r
 \r
-junkbox -- \r
+junkbox -- \r
 \r
 Various tools I've used. Most are one-time tools that might be useful \r
 again in a similar situation.\r
 \r
-edtasm_v --\r
+edtasm_v --\r
 \r
 This is where I'm recreating what I used at college, to use as a baseline\r
-in further projects.\r
+in further projects. The code here can be assembled by the disk-based \r
+EDTASM+ tools. \r
 \r
-cross_v --\r
+Put the EDTASM+ disk (image) in the 1st drive (Coco drive 0) and the \r
+source code disk (image) in the 2nd (Coco drive 1). Assemble with \r
+something like\r
 \r
-Once I have the baseline re-established, and am able to compile the \r
-assembler and other tools, I'll switch to using cross-development tools\r
-to reorganize and restructure the code to make it more generally useful.\r
+   AD BIF6809X.BIN:1 /WE\r
 \r
------\r
+to save the binary in BIF6809X on the 2nd drive (Coco drive 1) and \r
+wait for errors so you can see what happened before it scrolls off \r
+the screen.\r
+\r
+I've essentially frozen my work on this version, to provide a point\r
+of reference if someone wants to port BIF-6809 to a non-Coco machine.\r
+\r
+See BIFDOC.TXT for further information about use.\r
+\r
+* cross_v --\r
+\r
+I have been using the lwtools assembler and the MAME imgtool utility \r
+as the basis of a cross-assembly environment. (See the commands.txt \r
+file for clues.) At this point, assembly is successful, and execution \r
+succeeds to the point of being able to load the post-fix assembler \r
+which I put together for college, which resides in the tools.dsk image.\r
+\r
+This code is essentially a mirror of edtasm_v, with source code changes\r
+that allow assembly using the lwtools assembler, and line endings \r
+friendly to *nix tools.\r
+\r
+Again, see BIFDOC.TXT for further information about use.\r
+\r
+* reorg_v\r
+\r
+Now that I have the baseline sort-of re-established, and am able \r
+to compile the post-fix assembler and other tools, I'll use the \r
+cross-development tools to reorganize and restructure the code \r
+to make it more generally useful. \r
+\r
+That work will start in reorg_v.\r
 \r
-For the time being, until I get it more-or-less back to the state it \r
-was in when I used it in college, I'm focusing on the source in the\r
-edtasm_v subdirectory.\r
 \r
 ===================\r
 \r
-Files under edtasm_v --\r
+Files --\r
 \r
-6809 Assembly Language Source files under edtasm_v:\r
+-----\r
+* Top-level directory, ./ :\r
 \r
 README.TXT\r
        this file.\r
+\r
 BIFDOC.TXT\r
        general explanations, including descriptions of every word.\r
+\r
+commands.txt\r
+       *nix command lines that I want to remember. May be useful.\r
+\r
+-----\r
+* edtasm_v/ and cross_v/ :\r
+\r
 BIFU.I\r
        structure of the per-user variable page.\r
+\r
 BIF.M\r
        macros, including the inner interpreter (basis of the virtual machine),\r
        the dictionary (symbol table) structure offsets,\r
        and invocations for the fundamental objects.\r
+\r
 BIFDP.A\r
        things kept in the direct page, \r
        including the behaviours for the fundamental objects (was not a good idea after all),\r
        and the index to the per user variable page. \r
+\r
 BIFST.A\r
        cold and warm boot routines and the initial value table for the per-user variable page.\r
+\r
 BIF.ASM\r
        the main source file (includes other parts),\r
        basic expression evaluation, more of the inner interpreter, \r
        basic vocabulary access, basic symbol parsing.\r
+\r
 BIFB.A\r
        basic I/O, more of the inner interpreter, extended expression evaluation,\r
        the rest of the basic symbol table access.\r
+\r
 BIF1.A\r
        data movers, common expression evaluation,\r
        stack pointer access, more of the inner interpreter,\r
        high-level compiler.\r
+\r
 BIF1B.A\r
        common expression evaluation, extended expression evaluation,\r
        innards of the high-level compiler, more of the high-level compiler,\r
        compiler directive.\r
+\r
 BIF2.A\r
        more common expression evaluation, common constants,\r
        I/O constants, character typing constants,\r
        symbol table globals, compiler globals, parser globals, I/O globals.\r
+\r
 BIF2B.A\r
        compiler globals, more high-level compiler,\r
        more common expression evaluation, formatted output.\r
+\r
 BIF3.A\r
        more basic symbol table, symbol table, more compiler, more formatted output,\r
        more data movers, more low-level parser (formatted input), more I/O,\r
        more extended expression evaluation, more expression evaluation, \r
        more compiler directives, an extension to the inner interpreter.\r
+\r
 BIF3B.A\r
        more formatted output, more innards of the high-level compiler,\r
        more high-level compiler.\r
+\r
 BIF4.A\r
        more innards of the expression evaluator, more common expression evaluation,\r
        more I/O (buffer handling).\r
+\r
 BIF4B.A\r
        more high-level compiler, more compiler directive.\r
+\r
 BIF5.A\r
        more innards of the high-level compiler, more I/O (buffering),\r
        disk access, error handling, more formatted output.\r
+\r
 BIF5B.A\r
        more error handling, screen-based sector (character) editor.\r
+\r
 BIF6.A\r
        more parser (formatted input), I/O (terminal), compiler (input),\r
        symbol table (lookup).\r
+\r
 BIF6B.A\r
        symbol table, compiler innards, null vector test, \r
        more screen-based sector editor.\r
+\r
 BIF7.A\r
        compiler, formatted output, compiler directives\r
+\r
 BIF7B.A\r
        error handling, symbol tables, compiler directives.\r
+\r
+bifsource.dsk\r
+       The Color Computer Disk Extended BASIC format disk image with \r
+       the above assembly language source files readable under EDTASM+ . \r
+\r
+       Under cross_v, the only interesting file in bifsource.dsk is the \r
+       object file, BIF6809.BIN, which is the output of the lwtools \r
+       assembler. I'm reusing the disk image from edtasm_v for my own \r
+       convenience. \r
+\r
+tools.dsk\r
+       The startup disk for the FORTH/BIF system. \r
+\r
+       You basically want this disk (image) in your first drive whenever\r
+       bif-6809 is running.\r
+\r
+       Important contents include the following:\r
+\r
+       SCREEN 0: Human readable index. (Forth had no file system of its own.)\r
+\r
+       SCREEN 4: Human readable error message text. \r
+\r
+       SCREEN 6: Basic disk SCREEN (sector, for Coco) listing and editing tools.\r
+\r
+       SCREEN 16: Post-fix assembler.\r
+\r
+       Once you get used to it, you can copy the error messages in \r
+       SCREEN 4 of the tools.dsk (image) to a fresh disk (image) and \r
+       use it instead. (And you'll probably want SCREENs 6-15, as well.)\r
+\r
+blank.dsk (not present)\r
+       You can make blank, unformatted disk images with a *nix command\r
+       something like\r
+\r
+       dd if=/dev/zero of=blank.dsk bs=256 count=630\r
+\r
+-----\r
+* reorg_v\r
+\r
+(More later.)\r
+\r
+\r
+-----\r
+* junkbox\r
+\r
 stripln.c,\r
 32col.c, \r
        C language source and Macintosh executables for stripping line \r
        numbers and reformatting 32 column source code "screens". The two \r
        XXX.GXX.out files below are output of the 32col program.\r
 \r
------\r
-\r
-Hopefully, I will shortly have time to reconstruct useful things from the \r
-following files on the tools.dsk disk image and/or the cs431 disk image:\r
-\r
 TOOLS.G00, TOOLS.G00.out\r
        FORTH source for disk listing, screen handling, definition dumping, \r
        sector copying, forward referencing, buffer maintenance, \r
        experimenting with hardware, double (32 bit) integer math, etc.,\r
        and a post-fix assembler.\r
+\r
+       This is how I brought the contents of the tools.dsk image with \r
+       me. Probably not useful to anyone except me.\r
+\r
 PAIRS.G28, PAIRS.G28.out\r
-       a "database" example from one of my FORTH books.\r
+       a "database" example from one of my FORTH books. Might be \r
+       interesting for those wondering how the dictionary (symbol\r
+       table) works.\r
+\r
 TOOLS_G00_ERRORS.text\r
        Contains the tools output readable in regular text editor format \r
        and the error messages, with their corresponding number in \r
        hexadecimal. I should make a separate file for the error messages\r
        (or something).\r
 \r
-and\r
+       This may be useful for understanding the contents of tools.dsk .\r
 \r
 SCR33.ARR\r
-       arrays for CS431.\r
+       One way to do arrays. Probably not useful for anyone except me.\r
+\r
 SCR34.LOC\r
-       some math for CS431.\r
+       Some random math. Probably not useful for anyone except me.\r
+\r
 SCR40.431\r
-       test suite for CS431.\r
+       A test suite. Probably not useful for anyone except me.\r
 \r
 ===================\r
 \r
index 1953a1b..caa2ac2 100644 (file)
@@ -34,3 +34,5 @@ imgtool put coco_jvc_rsdos bifsource.dsk BIFU.INC  BIFU.INC  --ftype=assembler -
 
 ../../lwtools-4.14/lwasm/lwasm --list=bif6809.list BIF.ASM
 
+dd if=/dev/zero of=blank.dsk bs=256 count=630
+