OpenCores
URL https://opencores.org/ocsvn/System09/System09/trunk

Subversion Repositories System09

[/] [System09/] [branches/] [mkfiles_rev1/] [src/] [sys09bug/] [readme.txt] - Blame information for rev 95

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 22 dilbert57
System09 Monitor Program
2
========================
3
John Kent
4
3rd February 2008
5
 
6
1. Introduction.
7
 
8
System09 is FPGA SOC (System On a Chip) that uses a 6809 instruction compatible FPGA core.
9
The system is based around the old SWTPc (South West Technical Product Computer),
10
the difference being the FPGA version runs witha 25 MHz E Clock where as the SWTPc
11
ran with a 1MHz to 2MHz E clock.
12
 
13
2. Disk Operating Systems
14
 
15
The SWTPc ran the FLEX9, OS9 and Uniflex operating systems.
16
 
17
2.1 Flex9
18
 
19
Flex is a single user operating system developed by TSC (Technical Systems Consultants).
20
It was to the Motorola 8 bit microprocessor family what CP/M was to the 8080 and Z80 family.
21
Flex9 typically used SBUG1.8 as the monitor program for providing the terminal drivers
22
and primative debug functions.
23
 
24
2.2 UniFlex
25
 
26
UniFlex was TSC's multi tasking version of their Flex operating system.
27
I don't know much about it, other that the fact that much of the  code is available on the
28
internet. UniFlex made use of the extended memory, and used thw SWTPc DMAF-2 Floppy
29
Disk Controller.
30
 
31
2.3 OS9
32
 
33
OS9 is a realtime multitasking operating system. It used to come in a basic 64K version
34
called Level 1 and an extended memory version that used the DAT (Dynamic Address Translation)
35
to map in up to 1 MByte of memory and was called level 2.
36
 
37
The SWTPc emulator from Evensons Consulting Services uses just the ACIA serial port
38
at $E000, a SWTPc MP-T timer module at $E040 for interrupts and a Western Digital
39
FD1771 or FD179X Floppy disk controller to run OS9 level 1.
40
 
41
OS9 had two special 2KByte boot ROMs at resided at $F000 and $F800.
42
These contain the start up code to load OS9 from the disk drive and run it.
43
 
44
3. Monitor Features
45
 
46
System09 is based on SBUG1.8, which was typically used for the Flex9 operating system
47
however I have had to strip out some of the functionality to fit video display and
48
PS/2 keyboard drivers. The VDU and PS/2 keyboard operate in parallel with the serial
49
port so that commands may be entered either locally on the FPGA system remotely by
50
the serial port on say a PC running a terminal program such as hyperterm.
51
 
52
3.1 Mass storage
53
 
54
SBUG1.8 had two disk boots, one was for a the DC-1 or compatible floppy disk controller
55
that was mapped at $E01X and the other was for the DMAF2 which used the 6844 DMA controller
56
and was mapped at $F000 just below the SBUG1.8 monitor program.
57
 
58
In system09 there is no Western Digital Compatible Floppy disk Controller. (At least not yet.)
59
Instead provisons have been made for booting from either a Compact Flash card or an IDE hard drive.
60
 
61
The method for interfaceing to an IDE drive or CF card varies from FPGA board to FPGA board.
62
Some FPGA boards such as the Spartan 3 and Spartan 3E starter boards do not have provision
63
for a Compact Flash card or IDE card, although they do have expansion ports that could be
64
used for CF or IDE interfaces.
65
 
66
Some FPGA boards, such as the BurchED B5-X300 have a dedicated CF add on module, which allows
67
you to map the CF card in any way you like. The XESS XST-3S1000 and XST-3.0 carrier board on the
68
other hand provides a 16 bit peripheral bus that can be used to access the IDE drive connector,
69
ethernet controller or two expansion connectors. The Trenz TE0141 and TE0140 boards have the
70
CF card mapped into the memory address and data bus, but have done so in such a fashion that it
71
can only be used in 8 bit transfer mode.
72
 
73
CF cards can be programmed to run in 8 bit mode or 16 bit mode. 8 Bit mode is handier for
74
interfaceing to 8 bit micros sych as system09, however this mode is not necessarily supported
75
by IDE disk drives.
76
 
77
4. FPGA Cards
78
 
79
4.1 BurchEd B5-X300
80
 
81
The B5-X300 version of Sys09bug is covered by the "FPGAOPT" options flag.
82
It provides text VDU drivers and PS/2 keyboard interface, ACIA serial port,
83
and Compact Flash Bootstrap. The B5-X300 uses a 300Kgate Spartan 2E FPGA which
84
means the Block RAM used to hold the monitor ROMs is only 4Kbits.
85
four Block RAMs are required to implement a 2KByte monitor program.
86
 
87
4.2 Digilent / Xilinx Spartan 3 Starter Board
88
 
89
The Xilinx spartan 3 starter board was designed by Digilent. It uses the Spartan 3 FPGA
90
and intially came in a 200K gate version although a 1000KGate version is also available.
91
The Spartan 3 starterboard is fitted wit 256K x 32 bits of RAM, which is mapped as 1M x 8 bits.
92
 
93
The Spartan 3 starter board does not have any mass storage interfaces, although it does have
94
expansion sockets that may be used to add external CF or IDE interfaces. The SRAM on the
95
otherhand can be used as a RAM disk, and data can be downloaded via serial link.
96
 
97
David Rumball designed his version of system09 called the Microbox 2000 which was based on
98
the spartan 3 starter board. He was able to use a configuration flash loader to load
99
a ROM disk into RAM. He also implemented a RAM disk and a virtual disk that was hosted on
100
a PC using the FLEXNET software.
101
 
102
I borrowed some of his work to extend sys09bug on the spartan 3 starter but have yet to get
103
it working.
104
 
105
4.3 Digilent / Xilinx Spartan 3E starter board
106
 
107
Digilent produced a Spartan 3e starter board for Xilinx. The big difference between the
108
Spartan 3 board and the spartan 3E board is that the latter uses SDRAM rather than SRAM
109
and is consequently harder to use. The spartan 3E starter was used to verify the operation
110
of the 6809 core, however because of the difficulty implementing the SDRAM controller
111
I used Block RAM instead.  The design implemented a PIA interrupt timer that sys09bug could
112
use to single step through instructions one at a time. The S3E version of System09 implements
113
a Trace command that performs a register dump after each instruction is executed.
114
This allowed comparison of the FPGA 6809 core with a reference design using the original chip.
115
 
116
Because RAM was limitted in the S3E, System09 also does not implement the DAT so the monitor
117
start up code at the top of memory to test for memory is not implemented in the S3E version.
118
 
119
4.4 XESS XSA-3S1000 / XST-3.0
120
 
121
 
122
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.