• R/O
  • HTTP
  • SSH
  • HTTPS

bif-6809: コミット

ソースコード及び仕様書など
Source and documentation


コミットメタ情報

リビジョンadd4194fa4ea1e79cff7dd7222329e006db40ec1 (tree)
日時2019-04-20 13:43:45
作者Joel Matthew Rees <joel.rees@gmai...>
コミッターJoel Matthew Rees

ログメッセージ

Description of cross_v, improving the README, etc.

変更サマリ

差分

--- a/BIFDOC.TXT
+++ b/BIFDOC.TXT
@@ -17,14 +17,14 @@ any purpose with or without fee is hereby granted, provided that the
1717 accompanying copyright notices and this permission notice appear in
1818 all copies.
1919
20-THE SOFTWARE IS PROVIDED “AS IS” AND ISC DISCLAIMS ALL WARRANTIES
21-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
22-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY
23-SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
24-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
25-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
26-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
27-SOFTWARE.
20+THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHORS DISCLAIM ALL
21+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
22+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
23+AUTHORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
24+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
25+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
26+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27+PERFORMANCE OF THIS SOFTWARE.
2828 =========
2929 (This is essentially the ISC license.)
3030
@@ -50,7 +50,7 @@ DISKS FORMATTED FOR USE BY OTHER OPERATING SYSTEMS WHILE BIF IS RUNNING!
5050
5151 Contact as of January 2000:
5252 http://reiisi.blogspot.com
53- joel.rees+knock@gmail.com
53+ joel.rees+knock at gmail dot com
5454 https://defining-computers.blogspot.com/
5555 https://ja.osdn.net/users/reiisi/
5656 https://sourceforge.net/u/reiisi/profile/
@@ -108,6 +108,9 @@ refer to this documentation. Some of the descriptions are incomplete,
108108 particularly where definitions are intended to be used inside other
109109 definitions.
110110
111+Current on-line versions of Brodie's work will need some adjustment
112+to work with this dialect of Forth.
113+
111114 The object contains a simple one-sector editor (for 32-column screens)
112115 in the EDITOR vocabulary. It does not provide search and replace, but
113116 it is sufficient, for the patient, to write code. My apologies for it.
@@ -117,7 +120,7 @@ Installation Manual should have no problem installing the editor shown
117120 there.
118121
119122 The assembler in the BIF screens is a full postfix assembler. The
120-double integer screens show a quick example of its use.
123+double integer screens show a quick example of its use. (Theoretically.)
121124
122125
123126 *******************************************************************************
--- a/README.TXT
+++ b/README.TXT
@@ -1,14 +1,14 @@
11 Information about BIF as of April 2019.
22
3- Joel Matthew Rees, Amagasaki, Hyogo, Japan.
3+ Author: Joel Matthew Rees, Amagasaki, Hyogo, Japan.
44 https://ja.osdn.net/projects/bif-6809/
5- joel.rees+knock@gmail.com
5+ joel.rees+knock at gmail dot com
66 http://reiisi.blogspot.com
77 https://defining-computers.blogspot.com/
88 https://ja.osdn.net/users/reiisi/
99 https://sourceforge.net/u/reiisi/profile/
1010 etc.
11- Copyright 2000, 2019 Joel Matthew Rees
11+ Copyright from 2000 to 2019 Joel Matthew Rees
1212
1313 -----
1414
@@ -39,26 +39,35 @@ any purpose with or without fee is hereby granted, provided that the
3939 accompanying copyright notices and this permission notice appear in
4040 all copies.
4141
42-THE SOFTWARE IS PROVIDED “AS IS” AND ISC DISCLAIMS ALL WARRANTIES
43-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
44-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY
45-SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
46-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
47-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
48-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
49-SOFTWARE.
42+THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHORS DISCLAIM ALL
43+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
44+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
45+AUTHORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
46+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
47+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
48+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
49+PERFORMANCE OF THIS SOFTWARE.
5050 =========
5151
5252 I add here the stipulation that I claim right to the word "BIF" as
5353 the name of a programming language.
5454
5555 If you are going to distribute or redistribute the obect or source of
56-bif in any of its forms, it really makes no sense not to include the
57-BIFDOC.TXT and this README.TXT. If you do something like that and
58-you or anyone that gets the results has problems with it, and you come
59-to me looking for help, expect to be teased mercilessly about it. And
60-expect to be on the bottom of my priority list, not out of spite,
61-out of self-protection.
56+bif in any of its forms, it really makes no sense at all to fail to
57+include either the BIFDOC.TXT file and this README.TXT file.
58+
59+In the present world, it also makes no sense to fail to include the
60+source code, or at least a link to a known good repository -- such as
61+
62+https://ja.osdn.net/projects/bif-6809/
63+https://ja.osdn.net/projects/bif-6809/scm/git/bif-6809/
64+
65+
66+If you do something like that and you or anyone that gets the
67+resulting distribution has problems with it, and somebody comes
68+to me looking for help, expect to be teased mercilessly about it.
69+And expect to be on the bottom of my priority list, not out of
70+spite, out of self-protection.
6271
6372 -----
6473
@@ -146,6 +155,13 @@ Forth style screen listings.
146155 The program stripln can be used to strip line numbers from such screen
147156 listings, as well.
148157
158+I really should put in more work on the tools for converting between
159+normal text files and Forth/BIF screens, but those projects aren't even
160+on my back burners any more. Maybe later. In the meantime, you're
161+welcome to take a crack at it.
162+
163+-----
164+
149165 The documentation is ASCII text, with CR/LF line termination, and should
150166 be examined carefully by anyone considering a port. Bear in mind that
151167 it was written toward Color Computer users.
@@ -158,134 +174,239 @@ work on the train just gave me more things to do on the train.)
158174
159175 -----
160176
161-There are three subdirectories at this point:
177+There are four subdirectories at this point:
162178
163-junkbox --
179+* junkbox --
164180
165181 Various tools I've used. Most are one-time tools that might be useful
166182 again in a similar situation.
167183
168-edtasm_v --
184+* edtasm_v --
169185
170186 This is where I'm recreating what I used at college, to use as a baseline
171-in further projects.
187+in further projects. The code here can be assembled by the disk-based
188+EDTASM+ tools.
172189
173-cross_v --
190+Put the EDTASM+ disk (image) in the 1st drive (Coco drive 0) and the
191+source code disk (image) in the 2nd (Coco drive 1). Assemble with
192+something like
174193
175-Once I have the baseline re-established, and am able to compile the
176-assembler and other tools, I'll switch to using cross-development tools
177-to reorganize and restructure the code to make it more generally useful.
194+ AD BIF6809X.BIN:1 /WE
178195
179------
196+to save the binary in BIF6809X on the 2nd drive (Coco drive 1) and
197+wait for errors so you can see what happened before it scrolls off
198+the screen.
199+
200+I've essentially frozen my work on this version, to provide a point
201+of reference if someone wants to port BIF-6809 to a non-Coco machine.
202+
203+See BIFDOC.TXT for further information about use.
204+
205+* cross_v --
206+
207+I have been using the lwtools assembler and the MAME imgtool utility
208+as the basis of a cross-assembly environment. (See the commands.txt
209+file for clues.) At this point, assembly is successful, and execution
210+succeeds to the point of being able to load the post-fix assembler
211+which I put together for college, which resides in the tools.dsk image.
212+
213+This code is essentially a mirror of edtasm_v, with source code changes
214+that allow assembly using the lwtools assembler, and line endings
215+friendly to *nix tools.
216+
217+Again, see BIFDOC.TXT for further information about use.
218+
219+* reorg_v
220+
221+Now that I have the baseline sort-of re-established, and am able
222+to compile the post-fix assembler and other tools, I'll use the
223+cross-development tools to reorganize and restructure the code
224+to make it more generally useful.
225+
226+That work will start in reorg_v.
180227
181-For the time being, until I get it more-or-less back to the state it
182-was in when I used it in college, I'm focusing on the source in the
183-edtasm_v subdirectory.
184228
185229 ===================
186230
187-Files under edtasm_v --
231+Files --
188232
189-6809 Assembly Language Source files under edtasm_v:
233+-----
234+* Top-level directory, ./ :
190235
191236 README.TXT
192237 this file.
238+
193239 BIFDOC.TXT
194240 general explanations, including descriptions of every word.
241+
242+commands.txt
243+ *nix command lines that I want to remember. May be useful.
244+
245+-----
246+* edtasm_v/ and cross_v/ :
247+
195248 BIFU.I
196249 structure of the per-user variable page.
250+
197251 BIF.M
198252 macros, including the inner interpreter (basis of the virtual machine),
199253 the dictionary (symbol table) structure offsets,
200254 and invocations for the fundamental objects.
255+
201256 BIFDP.A
202257 things kept in the direct page,
203258 including the behaviours for the fundamental objects (was not a good idea after all),
204259 and the index to the per user variable page.
260+
205261 BIFST.A
206262 cold and warm boot routines and the initial value table for the per-user variable page.
263+
207264 BIF.ASM
208265 the main source file (includes other parts),
209266 basic expression evaluation, more of the inner interpreter,
210267 basic vocabulary access, basic symbol parsing.
268+
211269 BIFB.A
212270 basic I/O, more of the inner interpreter, extended expression evaluation,
213271 the rest of the basic symbol table access.
272+
214273 BIF1.A
215274 data movers, common expression evaluation,
216275 stack pointer access, more of the inner interpreter,
217276 high-level compiler.
277+
218278 BIF1B.A
219279 common expression evaluation, extended expression evaluation,
220280 innards of the high-level compiler, more of the high-level compiler,
221281 compiler directive.
282+
222283 BIF2.A
223284 more common expression evaluation, common constants,
224285 I/O constants, character typing constants,
225286 symbol table globals, compiler globals, parser globals, I/O globals.
287+
226288 BIF2B.A
227289 compiler globals, more high-level compiler,
228290 more common expression evaluation, formatted output.
291+
229292 BIF3.A
230293 more basic symbol table, symbol table, more compiler, more formatted output,
231294 more data movers, more low-level parser (formatted input), more I/O,
232295 more extended expression evaluation, more expression evaluation,
233296 more compiler directives, an extension to the inner interpreter.
297+
234298 BIF3B.A
235299 more formatted output, more innards of the high-level compiler,
236300 more high-level compiler.
301+
237302 BIF4.A
238303 more innards of the expression evaluator, more common expression evaluation,
239304 more I/O (buffer handling).
305+
240306 BIF4B.A
241307 more high-level compiler, more compiler directive.
308+
242309 BIF5.A
243310 more innards of the high-level compiler, more I/O (buffering),
244311 disk access, error handling, more formatted output.
312+
245313 BIF5B.A
246314 more error handling, screen-based sector (character) editor.
315+
247316 BIF6.A
248317 more parser (formatted input), I/O (terminal), compiler (input),
249318 symbol table (lookup).
319+
250320 BIF6B.A
251321 symbol table, compiler innards, null vector test,
252322 more screen-based sector editor.
323+
253324 BIF7.A
254325 compiler, formatted output, compiler directives
326+
255327 BIF7B.A
256328 error handling, symbol tables, compiler directives.
329+
330+bifsource.dsk
331+ The Color Computer Disk Extended BASIC format disk image with
332+ the above assembly language source files readable under EDTASM+ .
333+
334+ Under cross_v, the only interesting file in bifsource.dsk is the
335+ object file, BIF6809.BIN, which is the output of the lwtools
336+ assembler. I'm reusing the disk image from edtasm_v for my own
337+ convenience.
338+
339+tools.dsk
340+ The startup disk for the FORTH/BIF system.
341+
342+ You basically want this disk (image) in your first drive whenever
343+ bif-6809 is running.
344+
345+ Important contents include the following:
346+
347+ SCREEN 0: Human readable index. (Forth had no file system of its own.)
348+
349+ SCREEN 4: Human readable error message text.
350+
351+ SCREEN 6: Basic disk SCREEN (sector, for Coco) listing and editing tools.
352+
353+ SCREEN 16: Post-fix assembler.
354+
355+ Once you get used to it, you can copy the error messages in
356+ SCREEN 4 of the tools.dsk (image) to a fresh disk (image) and
357+ use it instead. (And you'll probably want SCREENs 6-15, as well.)
358+
359+blank.dsk (not present)
360+ You can make blank, unformatted disk images with a *nix command
361+ something like
362+
363+ dd if=/dev/zero of=blank.dsk bs=256 count=630
364+
365+-----
366+* reorg_v
367+
368+(More later.)
369+
370+
371+-----
372+* junkbox
373+
257374 stripln.c,
258375 32col.c,
259376 C language source and Macintosh executables for stripping line
260377 numbers and reformatting 32 column source code "screens". The two
261378 XXX.GXX.out files below are output of the 32col program.
262379
263------
264-
265-Hopefully, I will shortly have time to reconstruct useful things from the
266-following files on the tools.dsk disk image and/or the cs431 disk image:
267-
268380 TOOLS.G00, TOOLS.G00.out
269381 FORTH source for disk listing, screen handling, definition dumping,
270382 sector copying, forward referencing, buffer maintenance,
271383 experimenting with hardware, double (32 bit) integer math, etc.,
272384 and a post-fix assembler.
385+
386+ This is how I brought the contents of the tools.dsk image with
387+ me. Probably not useful to anyone except me.
388+
273389 PAIRS.G28, PAIRS.G28.out
274- a "database" example from one of my FORTH books.
390+ a "database" example from one of my FORTH books. Might be
391+ interesting for those wondering how the dictionary (symbol
392+ table) works.
393+
275394 TOOLS_G00_ERRORS.text
276395 Contains the tools output readable in regular text editor format
277396 and the error messages, with their corresponding number in
278397 hexadecimal. I should make a separate file for the error messages
279398 (or something).
280399
281-and
400+ This may be useful for understanding the contents of tools.dsk .
282401
283402 SCR33.ARR
284- arrays for CS431.
403+ One way to do arrays. Probably not useful for anyone except me.
404+
285405 SCR34.LOC
286- some math for CS431.
406+ Some random math. Probably not useful for anyone except me.
407+
287408 SCR40.431
288- test suite for CS431.
409+ A test suite. Probably not useful for anyone except me.
289410
290411 ===================
291412
--- a/commands.txt
+++ b/commands.txt
@@ -34,3 +34,5 @@ imgtool put coco_jvc_rsdos bifsource.dsk BIFU.INC BIFU.INC --ftype=assembler -
3434
3535 ../../lwtools-4.14/lwasm/lwasm --list=bif6809.list BIF.ASM
3636
37+dd if=/dev/zero of=blank.dsk bs=256 count=630
38+
旧リポジトリブラウザで表示