diff README.txt @ 57:2088fd998865

sbc09 directry clean up
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 23 Jul 2018 16:07:12 +0900
parents
children ef64e3f4e229
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.txt	Mon Jul 23 16:07:12 2018 +0900
@@ -0,0 +1,417 @@
+6809 Simulator/Emulator with os9 level1/level2
+                                       Shini KONO (kono@ie.u-ryukyu.ac.jp) Mon Jul 23 10:59:06 JST 2018
+
+  using nitros9
+        hg clone http://hg.code.sf.net/p/nitros9/code nitros9-code
+
+  This emulator support vrbf ( simulate unix directory as a rbf disk ) and
+  ROM based boot. 
+
+      make clean; make
+
+  to run lv1 or lv2 
+
+      make lv1 
+         or
+      make lv2
+
+=======================
+
+sbc09 stands for Lennart Benschop 6809 Single Board Computer.
+It contains a assembler and simulator for the Motorola M6809 processor.
+
+copyleft (c) 1994-2014 by the sbc09 team, see AUTHORS for more details.
+license: GNU General Public License version 2, see LICENSE for more details.
+
+
+Forum thread: http://archive.worldofdragon.org/phpBB3/viewtopic.php?f=8&t=4880
+Project: https://github.com/6809/sbc09
+
+
+For the usage of the assembler a09 and 6809 single board system v09 
+read doc/sbc09.creole!
+
+
+This distribution includes two different kinds of simulators:
+ 1. The old sim6809 based "simple" simulator built as v09s, v09st
+ 2. The 6809 single board system as a stand alone environment built as v09
+
+
+
+Structure
+---------
+
+src/
+  Source for the developement tools and virtual machines ...
+
+  a09.c
+      The 6809 assembler. It's fairly portable (ANSI) C. It works on both
+      Unix and DOS (TC2.0).
+
+      Features of the assembler:
+      - generates binary file starting at  the first address
+        where code is actually generated. So an initial block of RMB's
+        (maybe at a different ORG) is not included in the file.
+      - Accepts standard syntax.
+      - full expression evaluator.
+      - Statements SET, MACRO, PUBLIC, EXTERN IF/ELSE/ENDIF INCLUDE not yet
+        implemented. Some provisions are already made internally for macros
+        and/or relocatable objects.
+
+  v09s.c
+      The (old) 6809 simulator. Loads a binary image (from a09) at adress $100
+      and starts executing. SWI2 and SWI3 are for character output/input.
+      SYNC stops simulation. When compiling set -DBIG_ENDIAN if your
+      computer is big-endian. Set TERM_CONTROL for a crude single character
+      (instead of ANSI line-by-line) input. Works on Unix.
+
+  v09stc.c
+      Same as v09s.c but for Turbo C. Has its own term control.
+
+  v09.c
+  engine.c
+  io.c
+      The 6809 single board simulator/emulator v09.
+       
+  mon2.asm
+      Monitor progam, alternative version of monitor.asm
+      (used in ROM image alt09.rom)
+
+  monitor.asm
+      Monitor progam (used in ROM image v09.rom for v09)
+
+  makerom.c
+      Helper tool to generate ROM images for v09.
+
+
+basic/
+  Basic interpreters ...
+
+  basic.asm
+      Tiny Basic
+  fbasic.asm
+      Tiny Basic with Lennarts floating point routines.
+
+
+doc/
+  Documentation ...
+
+
+examples/
+  Several test and benchmark programs, simple routines and some bigger stuff
+  like a Forth system (ef09).
+
+  ef09.asm Implementation of E-Forth, a very rudimentary and portable Forth.
+      Type WORDS to see what words you have. You can evaluate RPN integer
+      expressions, like "12 34 + 5 * . " You can make new words like
+      " : SQUARED DUP * ; " etc.
+
+
+examples_forth/
+  Forth environment with examples.
+  For the 6809 single board system.
+
+
+
+
+Notes on Linux Fedora Core 6
+----------------------------
+2012-06-04
+
+Compiling v09s, v09st:
+
+ * BIG_ENDIAN (already used by LINUX itself, changed to CPU_BIG_ENDIAN)
+   Now automatically set according to BIG_ENDIAN and BYTE_ORDER
+   if existing.
+
+ * If TERM_CONTROL mode is active the keyboard is not really in raw mode -
+   keyboard signals are still allowed.
+
+ * A tracefilter based on register values can be placed in the TRACE area to
+   get tracing output triggered by special states 
+   
+
+
+a09 Assembler
+-------------
+
+Bugfixes:
+ * addres modes  a,INDEXREG b,INDEXREG d,INDEXREG now known
+    as *legal*!
+
+Extended version:
+    http://lennartb.home.xs4all.nl/A09.c
+    (see above)
+
+ * options -x and -s produces output in Intel Binary/Srecord format,
+   contains the above mentioned bugfixes (but fixed by the original
+   author).
+
+
+
+
+v09s* Simulator
+---------------
+
+### CC register
+
+E F H I N Z V C  Flag
+8 7 6 5 4 3 2 1  Bit
+| | | | | | | |
+| | | | | | | +- $01
+| | | | | | +--- $02
+| | | | | +----- $04
+| | | | +------- $08
+| | | +--------- $10
+| | +----------- $20
+| +------------- $40
++--------------- $80
+
+
+# differences from real 6809:
+
+ldd #$0fc9
+addb #$40
+adca #$00
+
+H is set on VCC but not on real 6809, sim6809 does what?
+
+          
+### special behavior
+
+    swi2        output character (STDOUT) in register B
+    swi3        read character from keyboard into register B
+    sync        exit simulator
+
+
+### start program
+v09s BINARY
+
+### start program with tracing output on STDOUT
+v09st BINARY
+
+### run program and leave memory dump (64k)
+
+# memory dump in file dump.v09
+v09s -d BINARY 
+
+
+
+### Bugfixes
+
+ * static int index;
+   otherwise the global C library function index() is referenced!
+   Write access on it leads to a core dump.
+
+ * BIG_ENDIAN is not useable in FLAG because (POSIX?) Unix
+   (especially Linux) defines its byte order.
+   If BIG_ENDIAN == BYTE_ORDER -> architecture is big endian!
+   Changed to CPU_BIG_ENDIAN, which is refering BIG_ENDIAN and
+   BYTE_ORDER automatically (if existent).
+
+
+
+
+
+
+eForth
+------
+
+Source:
+
+    ef09.asm
+
+    Backspace character changed from 127 to 8.
+
+
+Memory-Layout:
+
+    0100   At this address the binary is placed to, the Forth entry point
+    03C0   USER area start
+    4000   Memory TOP
+
+
+I/O:
+    Keyboard input:
+     * ^H or BSP deletes character
+     * RETURN -> interrupts (long) output
+
+Start:
+
+    ../v09s ef09
+
+
+Bugs:
+    SEE     ;
+    STAR (*)    : * UM* DROP ;  ... wrong,
+            : * M* DROP ; ... correct (sign!)
+
+Typical commands:
+
+ Commands alway in upper case!!!
+
+WORD    list of defined words of the current vocabulary
+
+BYE     exit Forth (back to shell)
+DUMP        hex memory dump 
+SEE         HL-word decompiler, corrected:
+        * stops at EXIT
+        * handles more special primitives (literals, strings,
+          variable, constants))
+        * handles Direct Threading
+        * output line by line with address
+.S      shows the content of the parameter stack
+
+count FOR ... NEXT
+        replacement for
+        hi lo DO ...  I ... LOOP
+        hi lo - 1+ FOR ... R@ lo + ... NEXT
+
+
+
+
+Extensions:
+
+    ZEQUAL      0=      Primitive
+    PLUS1       1+      Primitive, added
+2012-06-07
+    ROLL        ROLL        HL, added
+    CONST       CONSTANT    HL, added
+    doCONST             Primitive, added
+
+2012-06-08
+    TWOSTAR     2*      Primtive, added
+    TWOSLASH    2/      Primtive, added
+    MINUS1      1-      Primtive, added
+    SWAPHL      ><      Primtive, added
+    STAR256     256*        Primtive, added
+    SLASH256    256/        Primtive, added
+    CMOVE       CMOVE       Primtive
+    FILL        FILL        Primtive
+2012-06-09
+    ULESS       U<      Primitive
+    LESS        <       Primitive
+    DO      DO      HL, added
+    QDO     ?DO     HL, added
+    DODO        (DO)        Primitive, added
+    DOQDO       (?DO)       Primitive, added
+    LOOP        LOOP        HL, added
+    PLOOP       +LOOP       HL, added
+    DOLOOP      (LOOP)      Primitive, added
+    DOPLOOP     (+LOOP)     Primitive, added
+    
+2012-06-11
+    NEGAT       NEGATE      Primitive, alternative added
+    UMSTA       UM*     Primitive, but without MUL
+    LSHIFT      LSHIFT      Primitive, added
+    RSHIFT      RSHIFT      Primitive, added
+2012-06-12
+    LEAVE       LEAVE       Primitive, added (fig Forth)
+    MDO     -DO     HL, added
+    DOMDO       (-DO)       Primitive, added
+    I       I       Primitive, added (same as R@)
+    CMOVEW      CMOVE       Primitive, other implementation
+    STAR        *       korr.: uses M* (instead UM*)
+    BLANK       BL      Constant
+
+2012-06-19
+    USLASH      U/      Primitive, same as UM/MOD
+                    UM/MOD uses USLASH
+
+2012-06-20
+    DPLUS       D+      Primitive
+    DSUB        D-      HL
+    ZERO        0       Constant
+    ONE     1       Constant
+    TWO     2       Constant
+    MONE        -1      Constant
+    DOCLIT      doCLIT      Primitive
+2012-06-21
+    SEE     SEE     extended: handles LIT, CLIT
+2012-06-22
+    SEE     SEE     extended: handles
+                    BRANCH,?BRANCH,?DO,-DO,LOOP,+LOOP,."..."
+
+2012-09-07
+    SEE     SEE     ABORT", (DO) added, remarks corrected.
+
+TODO:
+ * XXX marks points to open issues.
+ * SEE command:
+   handling of
+    - [COMPILE]
+    - DOCONST, DOVAR, DOUSE
+
+
+TEST:
+
+HEX ok
+0 8000 8001 U/ . . FFFE 2 ok
+FFFE 8001 U* . . U* ?  ok
+FFFE 8001 UM* . . 7FFF FFFE ok
+FFFE 8001 UM* 2 0 D+ . . 8000 0 ok
+
+0 8000 7FFF U/ . . FFFF FFFF ok
+0 FFFF FFFF U/ . . FFFF FFFF ok
+0 FFFE FFFF U/ . . FFFE FFFE ok
+FFFF FFFF UM* . . FFFE 1 ok
+FFFF FFFE FFFF U/ . . FFFF FFFE ok
+
+
+
+
+
+Links/References
+================
+
+
+Project:
+  https://github.com/6809/sbc09
+  Maintained by the original author and others.
+
+Source:
+  http://groups.google.com/group/alt.sources/browse_thread/thread/8bfd60536ec34387/94a7cce3fdc5df67
+  Autor: Lennart Benschop  lennart@blade.stack.urc.tue.nl, 
+                lennartb@xs4all.nl (Webpage, Subject must start with "Your Homepage"!)
+
+  Newsgroups: alt.sources
+  From: lennart@blade.stack.urc.tue.nl (Lennart Benschop)
+  Date: 3 Nov 1993 15:21:16 GMT
+  Local: Mi 3 Nov. 1993 17:21
+  Subject: 6809 assembler and simulator (examples) 2/2
+
+
+Homepage/Download links of Lennart Benschop:
+  http://lennartb.home.xs4all.nl/m6809.html
+  http://lennartb.home.xs4all.nl/sbc09.tar.gz
+  http://lennartb.home.xs4all.nl/A09.c
+
+
+Emulator for 6809 written in Python, can run sbc09 ROM:
+  https://github.com/jedie/DragonPy/
+
+
+Newer posting in alt.sources (1994):
+
+  Newsgroups: alt.sources
+  From: lenn...@blade.stack.urc.tue.nl (Lennart Benschop)
+  Date: 17 May 1994 08:13:25 GMT
+  Local: Di 17 Mai 1994 10:13
+  Subject: 6809 assembler/simulator (3 of 3)
+
+
+Referenced by:
+
+  http://foldoc.org/6809
+    Reference points to posting with buggy version from 1993.
+
+  http://lennartb.home.xs4all.nl/m6809.html
+    BAD LINK: http://www.sandelman.ocunix.on.ca/People/Alan_DeKok/interests/6809.html
+    -> http://www.sandelman.ottawa.on.ca/People/Alan_DeKok/interests/
+    6809 specific site will be redirected, but does not exist.
+
+    Internet-Archiv:
+    https://web.archive.org/web/20070112041235/http://www.striker.ottawa.on.ca/6809/
+    2014-05-01: Lennart B. lennartb@xs4all.nl has been informed.
+
+  http://archive.worldofdragon.org/phpBB3/viewtopic.php?f=5&t=4308&start=60#p9750