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