an informally proposed computer system 
Author Message
 an informally proposed computer system

This is one iteration of a thing I have been posting to c.l.forth for a while.

: FIRE the Individual's Recursively Forth Environment ;

New This Iteration
    Copyright 1994 Richard Allen Hohensee
    released for redistribution with author aknowledgement
    File//Dictionary Namespace Interface
        If FIND doesn't find a token, FIND passes it to a heirarchical
            filesystem name search. Also available would be a  ~/
            or similar prefix the filesystem accepts as whitespace so you
            can have files in your cd with names like    2   + swap etc.
            default action of a found file is to attempt to include it.
    IFCA machine model
        Interrupt, Flow, Cell and Address stacks
            'Stack' is used here loosely. Each is different.
           The I part is described below under 'operating software'.
           F is the flow stack, for return addresses, loop indices and
            backward branch ( loop) target addresses. May also have a
            transparent frame-pointer-like arrangement between return
            addresses, maybe using a low-order bit to flag return
           The cell stack has an associated size register that
            determines the size of a data item, where size is 2^n bytes,
            and size reg. contains n. The cell stack is the main ALU type
            thingy. The cell stack is where most forth primitives
            would act, like dup, + , etc. So they all become
            multi-sized operators with one state variable, size.{*filter*}
            Miller and others have done semantically similar stuff before.
            I believe this can be achieved as a superset of ANS, i.e you
            can still use 2dup etc. if you are so inclined.
           Address stack is a plain 32 bit stack, for pointers, with a
            NOPOP state variable controlled by instructions NPON and NPOFF
            or some such. The werd ... ! .... sticks toc at memloc pointed
            at by toa. If nopop is on, toa doesn't change.
            Specific instructions for address arithmatic and manipulation,
            to maintain 'operandlessness'. Address math references SIZE
            register also.
            Legal/possibly useful sequence;
            4 size!  npon addrname 7777 !  a1+  92383493287492374928 !
     Memcursor has an associated bitbuffer window for typing into specific
         memory locations in hex, binary or octal. This gives a
         theoretically complete interface to the system, and can serve in
         a pinch as a machine monitor for any CPU.

     The above stuff is mentioned briefly below as Bana.

     Modules ( see below) connected by a bus based electrically on VME.

    Tripos/AmogaDos-like intertask communication by message passing. No
    MMU, no virtual memory. OS has no concept of user/supervisor modes.

and for redundancy...............

Design goals
    unified Forth-like system of hardware, software and docs.
        extremely low-cost minimum configuration
        easy to program
        incrementally and extremely upgradeable/extendable
        well and widely documented and self-documenting
        fast warm boot
    astounding audio
    telecom capable out of the box
    numerous outside-world connectors

specific non-goals
    OS portability beyond CPU independance sketched herein
    virtual memory
    Object orientation
    system security and crash resistance

    A modular enclosure with a cpu module with dimensions similar to a
    single volume of an encyclopedia. Modules stackable like beehive
    sections. Extensible via a large female card-edge connector on the
    cpu module, an Accessbus port on the cpu module, or by adding
    modules. Each module includes a power supply sufficient for that
    module when fully configured. There is an outfit that makes
    enclosures that fit the modularity aspect of the above, Bud or
    Budd Enclosures.

Required Instruction Set
    A selection of core words from the ANS Forth standard. Particular
    attention should be paid to implementing ANS words which represent
    the instruction sets of existing silicon Forth engines. If an
    arbitrary cpu were required to implement an ANS Forth ( and a ML
    monitor) from a CPU-specific 'pre-boot rom' on bootup, some CPU
    independance is achieved. Then all system software supported by the
    system vendor would be included from forth source, from rom or

    Also required, a Bana vocabulary or 'dialect'( my personal
        mostly hypothetical Forth mutation, parts of which are mentioned
        elsewhere in here, which you're welcome to leave out of your
        fantasy :o)

Hardware Features of the Default ( minimum cost) CPU Module
    reset and vectored reset buttons
    Motorola 68020 or 68020-based 32 bit by 32 bit MPU.
        ( 68360 is cpu32+/020 based, 32 data pins, at least 28 address
            pins, various IO and timers on-chip)
    Low-cost modem and modular plug
    AccessBus low-cost 80 kilobaud 4 wire multi-master bus for
        human input devices and other lowspeed devices.
    Cheap keyboard OR game controller/rom reader standard
    Two complete crt driver systems, TV with rich color and a
            low-end monitor driver ( a 6845 or 68xxx equivalent?)
    Support for the addons on the MPU
    256k static ram, socketed for more
    headphone jack
    realtime clock a couple sources of non-determinism; a thermistor, a
        register wired to read bus noise, etc.
    a wirewrap area
    and at the card-edge connector.....
            NTSC/PAL/SECAM out
            monochrome and CGA
            data in/out as audio and video for bulk storage on consumer
            std serial and parallel
            analog to internal adc
            MIDI in,out,through
            9 channel by several voice audio/music via MuP21-based
                 subsystem chip  ( DIBS! Leave this one to me! )
            IEEE422  ( suggested by D. Edwards)
            Whatever's cheap ( a basic genlock? )
            MetaMIDI ( apparently, an outfit called Zeta something is
                working on a successor to MIDI. As a guitarist, let me
                tell you that this is inevitable.)

Power-on sequence of Default ( 68020 ) configuration
    020 fetches memloc (0004) from pre-pre-boot rom, which tells it to
    jump immediately to pre-boot rom. Pre-boot rom moves a section of
    itself to sram, which section is the ANS Forth kernal and a few
    basic system tasks. ( BTW, note that OS runs out of sram. I have
    included no dram in default system. This is an area where the
    compactness of Forth can be a huge advantage, particularly when this
    compactness is system-wide.). 020 then checks for a vector switch. If
    unvectored, jump to sram, Forth OK prompt. If soft vectored, sram
    contains include directives for additions to Forth dictionary, i.e. an
    include 'file'. If hard vectored, owner don't like Forth. Hey, it's
    her/his machine.

Address Space
    lots of 'reserved for expansion' address space
    2^32 byte address space, access characteristics ( endianism,
         minimum size of a store, etc.) based on the 68020
    addresses of default hardware registers guaranteed
    reserved address spaces for chips not necessarily installed, e.g.
         32 SID chips, Amiga chips, 16 bit DACS, various ADCs, just about
         anything ( we've got 4 gig to play with)
    system dictionary space rooted in sram, remainder for
        video data, non-sourcecode executables, etc.

Default Operating Software
    cpu-specific machine language monitor
    Single user-multitasking forthlike OS.
        Each task is a virtual Forth engine. Single-user means that
            one need not be overprotected from crashes, and a non-terminal
            interface is possible. Several tasks may recieve user input
        Task management vocabulary
            with words like CREATETASK, DELETETASK, CHANGEPRI, HOLD,
                ( derived for use as example possibilities from a thesis
                on the TRIPOS OS by Brian James Knight, Cambridge U.,
    basic interface paradigm is the metacursor, which I have
        implemented on a c64. A metacursor is a cursor-like sprite
        that can be scrolled throughout the address-space of the
        system. This is distinctly different than the terminal or GUI
        paradigm of most popular systems, including Forth. This requires
        that the visual output hardware ( the video chips) be able to
        address the entire address space of the system.
    virtual (hardware implementable) CPU stack ( for 0 latency task
        switching  with e.g. 2^N sc32s on a chip/wafer)
    all system software includeable and callable in typical Forth fashion,
        i.e. in rom as source( except cpu-specific ML monitor/de{*filter*},
        which should be able to call Forth ).
    preemptive multi-tasking
    disc operators in rom
    GUI available for graphical tasks and for the pre-literate
       files that have icons must _contain_ them.
       Basic GUI object is a screen, not a window.
       option of mouseless pointer operation with arrow keys and
             de/accellerator keys, to charachter or pixel resolution
             depending on current screen
    Singletask/absolute mode
    Various task management features, e.g. task elapsed and CPU time
    Unusual task timing types ( for music I could use a task type that
        starts over without complaint from the top when interrupted by its
        own initialization interrupt. )
    ANSI Terminal emulation vocablulary with
          zmodem and kermit
          a non-patented compress/decompress
          full duplex split screen sketch mode
    heirarchical file system,
          the usual file tools, with sensible names and a Forth
               RPN non-syntax
          triple 'are-you-sure?' directory types/partitions
          branch size prompting by file/directory
          'suffixdate' word for filenames. Date appended to email message
             names ( or first n chars of sender eddress) so they have a
             UID and can be treated uniformly as files.
    virtual memory block interface
    music composition/instrument-definition  vocabulary
    algebraic parser word for newbies/user interfaces   ( 'let' ? )

    *sram addons
    *quality keyboard
    Dvorak keyboard with hex pad
    Asian keyboards
    various other AccessBus gadgets; mouse, VR glove, proportional
    joystick, Infrared transmitters, rom reader, PCMCIA, drumpads, clavier,

    *Std. drivebay module with SCSI
    CPU upgrades
    Master tcomm host module and slave tcomm host modules
    video module ( support for Newtek Video Toaster, etc.)
    phone module
    dual drive mag tape
    radio module
        * should be available at introduction of default module

?Funding ( deleted )

    Lots of really fun stuff ( Forth, AccessBus, MIDI, modem and term,
    new audio chip)  in one cheap box or kit, massively upgradeable. A
   hacker's box, an artist's box, the coherence and interactivity of a
   Forth development board with plug and play telecomm at the entry price
   of a video game, purveyed by an organization intent on profit through
   enabling, including, and making things cost _less_. Emphasis on audio
   and telecomm at the entry level, but upgradeable to luxurious
   multimedia capability, and beyond.

There's more.

    Rick Hohensee                                  

    P.O. Box 11340       Washington, D.C. 20008
Last quit guys nice.

Sat, 01 Mar 1997 20:29:08 GMT  
 [ 1 post ] 

 Relevant Pages 

1. a proposed computer

2. Proposed change for EditTools.Mod for System 3

3. Proposed Specs and Syntax for System Arguments

4. computer algebra systems and apl

5. Great Prices On Computer Hardware and Operating Systems

6. Complete P133 Computer System

7. Forth and Maintenance of Computer Systems?

8. Building a FORTH chip/computer system


10. Logo Computer System Inc ??

11. Computer System 'HOLY WATER'

12. System Exec on a remote computer?


Powered by phpBB® Forum Software