Document fait avec Nvu Document made with Nvu


Graphic emulators

Unix (X11, MAC OS X, Linux)


It is no necessarily evident to have the card physically to implement the real-time FORTH kernel presented in this site. Most of the personal computers (MAC or PC) benefit from a very important power of calculation, it is interesting to use it for emulate the other machines without too much loss of performance.

The firs emulator of the FORTH core was developed by a virtuoso of the PC world, FBROTON, who realized a program extremely complete and easy to install under Windows. It has very acceptable performances when it is installed on a PC with Pentium III processor. Furthermore, machine man interface is very simple of use wha makes it accessible to every person not too much exloss in data processing.

Problem with this emulator, it is that it is only operational on PC under Windows, what is not too annoying knowing that i is the operating system which is installed on most of the existing computers. On the other hand, for a person as I for example, who have a MAC, it is necessary to use a PC emulator to use this emulator. This adds a software layer which degrades enormously and so very unpleasantly performances.

MAC world has just evolved considerably with the new operating system MAC OS X integrating a kernel UNIX. This makes it compatible with workstations SUN and even with PC although they are equipped with the operating system LINUX. As APPLE had the brilliant idea to supply the development software packages in his new operating system, I was able to realize an emulator which, after light adaptation of the compilation script, showed itself operational on a SUN station and even on a PC under LINUX.

This was the first step of my emulator which was operational in terminal mode. For the graphic interface, a solution UNIX exists: OpenGL ( This standard allows to have very powerful graphic routines on any UNIX machine as an extension of the C language. What allowed me to enrich my emulator of a emulation of the interface VGA integrated into the FPGA of the FORTH core.

Emulator under UNIX is now noisy by using OpenAL ( ).


Discover the magnificent emulator of the FORTH core for PC under Windows realized by FBROTON. You will find a complete documentation which will allow you to use in best all the offered possibilities.

Unix (X11, MAC OS X, Linux)

Here is finally a version of the emulator of the FORTH core for the world UNIX. The specific additional registers in emulator are the same that those of FBROTON's emulator to preserve a certain compatibility.

WARNING : These software packages are free of right and can be on no account sold.
 Operating system
MAC OS X application version 5.00.
(Universal Binary for PPC and X86 from MAC OS 10.4).
Referenced in
Version 5.00. It is not mandatory to install Linux on your PC. You have to download the CDROM KNOPPIX or UBUNTU, decompress the file, launch KNOPPIX, go to the directory "CoeurFORTH" then launch "CoeurFORTH" in a terminal.

Tested with CD UBUNTU 10.10.

Here is a graphic representation of what one obtains under MAC OS X:

Description of the various simulated interfaces:

Window Associated extension registers


Not applicable

This window contains a VT100 terminal and a control part allowing FPGA configuration and emulator functions access:

- choice between mulu or addc instruction a the initialization,
- choice between 16 or 32 bits core,
- choice between internal ROM or external FLASH at the initialization,
- initialization push button (RESET),
- adjustment of the core performances,
- adjustment of the graphic screen resolution,
- adjustment of the sound output level,
- display of the core performances,
- display of the graphic performances,
- display of the sound level,
- indication of the real time respect,
- display of the occupancy rate of the host processor,
- access to the other emulator functions.

Discrete inputs outputs

272 (0x110) PORT_A
273 (0x111) PORT_B

write: value[15..0]
read: (value&input)[15..0]

lit indicator if value&input=1

See the corresponding technical page (with a video).

Analogical input output

274 (0x112) sampling
275 (0x113) analogical input output

if writing sampling = 0
-direct analogical input output
- reading sampling = 1
-2048 samples 10 us (1) to 8 samples 2,55 ms (255) FIFO
- reading sampling = available samples number

Analog range value must be -128 to +127

See the corresponding technical page (with a video).

Step by step engines

276 (0x114):

bits[15..7] = 0xFF8 if angle 0 (in top side)
0x000 otherwise (read only)
bit[6] = 1 to drive the index  (read/write)
bit[5] = 1 to drive the big hand (read/write)
bit[4] = 1 to drive the little hand (read/write)
bits[3..0] = phase4,phase3,phase2,phase1

1 tour = 120 steps (3°/step)

See the corresponding technical page (with a video).

bar graph

277 (0x115):

write: value[15..0]
bit 0 is corresponding to the left green indicator
bit 15 is corresponding to the right red indicator

lit indicator if value=1

See the corresponding technical page (with a video).

Little keyboard

278 (0x116) read only:

bits[15..4] = 0xFFF if key down
0x000 otherwise
bits[3,2] = line number (0 in top side)
bits[1,0] = row number (0 in left side)

bits[3..0] are memorized when key is released

See the corresponding technical page (with a video).

7 segments displays

280 (0x118) display 0 (in left side)
281 (0x119) display 1
287 (0x11F) display 7 (in right side)

bits[15..8] = 0x00
bits[7..0] = a,b,c,d,e,f,g,dp

lit segment if 1

See the corresponding technical page (with a video).
Matric displays

290 (0x122) column 0 (in left side)
291 (0x123) column 1
299 (0x12B) column 9 (in right side)

bits[15..8] = 0x00
bits[7..0] = 0, dot in bottom side, ..., dot in top side

lit dot if 1

See the corresponding technical page (with a video).
UART connections

257 (0x101) UARTA_BAUD
258 !0x102) UARTA_CTRL
259 (0x102) UARTA_DATA
260 (0x103) UARTB_BAUD
261 !0x104) UARTB_CTRL
262 (0x105) UARTB_DATA

each UART can be connected to the TERMINAL of the control window, one of the 7 SOCKETs towards another emulator or to a true connection RS232 of the host-computer
CAN interfaces

Up to 8 emulators could be connected on 2 CAN buses able to be linked together.

See the corresponding technical page (with a video).