Embedded Controller Forth
for the 8051 family

Windows 2000, XP, and 7
USB/Serial interface
ExpressSCH/PCB surface mount
SCADA Forth51 boards

First posted
Friday December 3, 2010 10:10
Updated
Sunday December 12, 2010 17:19

____

Hi-Lo Systems eprom programmer software is on 5 1/4 floppy. So we jerry-rigged



one of our two 5 1/4 drives to copy the software to hard disk and 3.5 floppy.
W2k Explorer would didn't recognize both the 3.5 and 5.25 diskettes. Jumper settings maybe? So we removed the connector from the 3.5.

We were then able to copy the HIi-Lo files. Then inserted a Laboratory Microsystems 5.25 disk. Explorer read the 5.25 but displayed the Hi-Lo files! We had to restart W2k to read the Laboratory Microsystems file.

Point is that Windows is a buggy OS.

We discovered another horrible programming error in Internet Explorer as a result of loading Compuware/Numega Bounds Checker.

Next we installed the Hi-Lo eprom programmer.



XT bus card at the bottom just above an AT bus digitizer card.

We are not optimistic about it working because W2k bus accesses from Ring 3 Windows apps prohibited. But it's worth a try.

Saturday December 11, 2010  16:14

Embedded Controller Forth for the 8051 family

http://www.prosefights.org/cs/w2kbelkin/w2kbelkin.htm#videos

  1. Project introduction - Friday December 10, 2010.

Dr Payne is considering directing more PhD degrees after an absense of 39 years.

PhD candidates don't have to have any formal education. Jerry Boutelle, author of the Nautilus 1 and 2 metacompiler was not a college graduate. But well-schooled in computers. And programmed in C.

They must be smart [absolutely brilliant], learn hardware and software - if they don't already know both, be creative.

And be able to get The Job done. Albert Gore willing, of course.

Success of PhD thesis project will determine whether degree is granted or not.

Our success rate is 100% so far.

FujiPix A600 6.3 megapixel camera audio/video made Friday December 3, 2010 designed to show 8051 family hardware running Forth51 using a Belkin USB/Serial cable, a generic 5 port USB/PCI card, using a celeron processor mounted on a 2 slot PC/AT and 4 slot PCI motherboard running Windows 2000.

HyperTerminal is used for the display/keyboard to a Dallas 89C430 8051 family microcontroller.

Thursday December 9, 2010 1914


 


We are old.

 

Hello techzone,

bill


Here's the set up



That's the Belkin USB/Serial adapter next to the two Harbor Freight less than $1.99 multimeters.

The multimeters were used to monitor DTR and CTS voltage with the null modem seen hanging
with other wires to the right of the table.
Reason for 3 hard disks mounted outside machine is that this machine
is used to write vxd, wdm and APIs for Windows 2000.

Crashes which destroy windows are dealt with by configuring the destoyed disk as a secondary, then trying to repair it from a working primary.

This strategy has always worked. So far. We've never been forced to reinstall Windows 2000 and all of our associated software.

Board seen in the bottom AT slot is a multiple channel D/A board fifo buffering.

Windows masks interrupts so it does not make very good real-time OS. However, we managed to write an interrupt handler which made Windows a real-time OS by catching up on data from the fifo buffers.

The 8051 family motherboard is seen to the right of the mouse.

Here's the Dallas 89C430.

 

We were astounded that it worked since the original design was for an 8051 microcontroller executing one instruction in 12 clock cycles!

Note 12 MHz crystal oscillator.

The 89C430, like most new 8051 family synthesizble microcontrollers, executes most instructions in one clock.

What you see is all we need to build and test surface mount 8051 systems. But
we want to get what you see working on Windows XP and 7 before we proceed.
Interface to Embedded Controller Forth for the 8051 Family originally was a Forth 86 program layered on DOS.

Batch part of Windows converstion is about done - with no lines of code written.

Forth is a table-driven technology. Changes to the Televideo 910 tables in the 8051 code are required to make it comptible with HyperTerminal supported protocols

Next task is to select, not write, a modern editor, then get batch communications between Windows and the 8051 hardware/FORTH51 system working.
 



CamelForth

Forth assumes a file of length a multiple of 1024 bytes.

'Screens' are arranged as 16 rows by 64 columns.

A Forth editor must not change the size of any 1024 block of characters.

Leo Brodie has a good explanation of a Forth editor.

Audio/Video part 1.

Audio/Video part 2.


Subroutine T, calls a forth 'word' was interactively entered for compilation.

Batch compilation is from a file called the 'screen file.' Batch compilation is nothing more than a fast typist!
What you see the author doing in the above audio/videos, you could do over Internet using Netmeeting using the Forth51 machine you see in the video. We've done this.



8051 family software can be developed on several orders of magnitude faster using a
forth system for a variety of reasons which include:
  • Real time interactive or batch VM operating system.
  • Produced from metacompilable source as opposed to assembler source.
  • Metacompiler hosted by Forth86 running on DOS, or in a DOS window running on Windows though 95, 98, 2000, XP and 7.
  • Interactive development on the target 8051 as opposed to cross development system.
  • Incremental compiler and assembler on the target 8051 system.
  • Forth Virtual Machine technology is more reliable, from experience, by about an
    order of magnitude than C/assembler implementations.
  • Most memory efficient software technology. Not that this may make difference in now gigabyte technologies. But don't count on this.

    Reduced Forth memory requirement may be a factor is Forth reliabilty? C is a memory hog.
Two Forth51 machines working over USB is extremely important to our future projects.

The machines did not work on XP for whatever reason including the Forth51 machines died.

Now that we know the 51 hardware is working, we look for software problems on XP.

And will find the problems.

This means that we can debug new surface mount hardware using the above machines.

Going directly to USB from serial on, in retrospect, was a good way to get started with ExpressSCH and Express PCB. Technology has changed since we shelved the project.

Now have inexpensive USB/Serial converter cables using FTDI or Prolific chips.

We can now use a serial surface mount interface to help debug a USB-only Forth51 machine interface.

The PC board seen above is about 25 years out of date. This is a statement about forth hardware/software reliability.

The 8051 family is not out of date. In fact, the 8051 family is super-high tech pennies-to build new ultra-low power parts ideal for SCADA applications - such as smart meters.

Forth technology allows interactive debugging and update over Internet.

Netmeeting has been used to access the machine seen above over Internet using Windows 95 or 98.
Richard Hanson was at the remote end.

Those who implement smart meters using ROMs with C/assembler software technology may possibly, in some cases, be in for an expensive lesson. If they have trouble figuring out what went wrong and ROMs require replacement, then they may be in big financial trouble.

But they deserve this.

All of our 8051 Forth applications have executed out of ROM and work very reliably. Interactive portions of the Forth operating system were NOT removed, although not used, from the apps.

Forth software was ahead of its time and threatened C/assembler technology.

PC/FORTH [Laboratory Micorsystems] took over Microsoft DOS initially.

Forth86 does not take over Windows when operating in a DOS window.

C/assembler proponents mounted an effective bad-mouthing MSM PR campaign to demean Forth.

Now is our turn to denigrate C/assembler for microcontroller applications!

For good reasons, of course. Unreliability is primary.

Forth51 machine seen below collects data from a continuous stress-grading lumber tester

Prior to below machine, continuous lumber tester electronics were analog.

Director of Research Dr Friend Becktel [PhD EE Purdue, former Sandian] make the decision to use the 8051 and Forth51.

Washington State University BSEE engineer JRA designed the non-forth portions of below board.



The above system collects the data, displays a measurement, and causes an ink mark to be sprayed on the piece tested.

The gold-colored chip is a 754ADJ A/D converter. Author only designed in 8051 part of the board.

Measured values are displayed on the board to the left. These values are also sent to a PC using the internal 8031 serial port.

These board are located all over the world running in extreme harsh environment in lumber planing mills since 1993. Both the hardware and software a super-reliable.

Here's a close-up of the embedded controller forth for the 8051 family design layout.



An Intel 80C31BH is at the far right. Reset button is above it. The 8250 UART is used to develop the software. The two 82C55A ports are used to drive the display and active paint spray jets which paint grade information on a lumber piece.

Photos taken December 6, 2010.

Author designed the 8051 forth machine and two 82C55 ports hardware.

Author wrote the Forth51 app in high-level Forth51, Forth 51 assembler and code fragment assembler.

Serial port interface to PC added later for reason to view data produced each shift with Microsoft Excel. Author wrote 8051 internal serial port code.

All of the code was implemented interactively. Once working it was metacompiled and ROMed along with the Forth51 operating system.

The above machine literally made millions of dollars. In addition to several tons of steel, huge variable drive electric motors, belts, .... .

Hardware and software development cost little.

Machines worked with little or no field maintenance.

Only sensitive part is that us who did the implementation made little money. Maybe less than $3k.

But we somewhat made up for this writing 'real time' MASM/Windows 311 for Workgroups, Windows 95/98 vxd drivers, Windows 2000 wmd drivers and APIs.

But we use Microsoft C for driver/VB APIs. And C++/_asm for vxd and wdm drivers.

Author wrote an interrupt handler for a PC when at Sandia Labs in high level Forth.
oo slow. Not a good idea.

Microsoft in-line _asm mirrors the features of PC/ASSEMBLER® and is lots more up to date.

Purpose of this project is 8051 family Forth microcontroller hardware surface mount development boards using ExpressSCH/PCB which run Forth51.

Forth Inc 8051 offerings.

What's wrong?: 1, 2, 3, 4, 5, and 6. So far.

Silicon Labs development system. 1 Note out-of-date through-hole 'play area.'

2 Board not produced from ExpressSCH/PCB.

3 SwiftX 8051 prohibitive and incongruent cost relative to the Silcon Labs board and C/assembler Keil starter system.



Sandia National Laboratories [paid for by the National Security Agency] Forth project was designed to defeat high cost of microcontroller hardware/software development. So we joined the FIG effort.

4 No book, like Embedded Controller Forth for the 8051 Family.

5 Source code for 8086 and 8051 family not posted on Internet.

6 And, perhaps, something more subtle. Forth fanatics strayed from FIG forth by eliminating state-smart words, <BUILDS, WORDS substituted for VLIST, ... and other changes, not improvements, but damages.

Forth fanatics apparently did not consider the work required to update FIG forth documentation, especially FORTH Encyclopedia by Derick and Baker. We did. That's another reason we stuck with FIG forth.

Forth Encyclopedia defines the 'true' microcomputer forth which is based on a 8080 RM implementation of VM FIG forth.

Forth Inc. apparently sells an 'updated' version of FIG forth for financial reasons - all 1,095 of them for the 8051 forth.
We read at the above link
However, FIG Forth was not necessarily representative of commercial Forth implementations of the same era. Some of the most successful commercial Forth systems used implementation techniques different from the FIG Forth model. ...

The Forth-79 Standard resulted from a series of meetings from 1978 to 1980, by the Forth Standards Team, an international group of Forth users and vendors (interim versions known as Forth 77 and Forth 78 were also released by the group).

The Forth-83 Standard, also by the Forth Standards Team, was released in 1983. Forth-83 attempted to fix some of the deficiencies of Forth-79.

The ANS Forth committee addressed the serious fragmentation of the Forth community caused by the differences between Forth-79 and Forth-83, and the divergence from either of these two industry standards caused by marketplace pressures. ...

Above appears to us to be written by fanatic forthians. All forths, other than FIG, we avoid for the reason that they are poorly documented products which don't improve over FIG forth and perform worse. This would likely lead to project failure. The C/assembler crowd will then move in.

At Sandia labs we converted to Forth 83, then disovered that nothing really new was added. And FIG documentation no longer applied. So we converted back to FIG forth.

Forth itself about ended with FIG forth in our opinion. No real improvements only changes by forth fanatics followed.

But extensions like G Forth which morphed into CNC languages have moved ahead.

Legal issues argue strongly for adoption of FIG forth too.


We tried to buy a battery for an old Toshiba 1000SE running DOS 3.3 to act as another terminal to our Forth51 machines. No 7.2 volt batteries available.

Battery store saleman phoned Jeraldo. We met Jeraldo at a Blake's Lotta Burger at Osuna and Edith.

Jeraldo didn't know of any easy inexpensive way to get a battery.

Jeraldo sold us an old Compaq laptop.

Forth86 worked on it from 3.5 DOS diskette.

He asked $10-20 for it. We paid him $27 since he came to Blakes.

3.5 floppy diskette formated with XP Windows Explorer.

Forth86/51 software used to test Windows 2000 copied on to it.

Then 3.5 DOS 3.3 diskette inserted into Compaq. All worked.

Joseph Flores at Sandia Labs adapted, as opposed to writing, a mini full screen editor code to run on the 8051. We ROMed that editor.


The mini full screen editor is running on a Forth51 machine using an ATMEL 89C55 part on Wednesday December 8, 2010!

Note that disk access works for the editor with the command 4 E on the Compaq.

Audio/Video of mini full screen editor working on ATMEL 89C55 microcontoller - Thursday December 9, 2010.

Both the Compaq and ATMEL 89C55 were left on night of Wednesday December 8, 2010.

Morning of December 9, 2010 Enter key on Compaq hit. 'ok' appeared on the screen.

Forth86 has taken over MS DOS on the Compaq. Forth86 is hosting the 8051 terminal/disk interface software.

Screens of the interface software, DS4.SCR are the screens you see the mini full screen 8051 processing.

Ray Duncan of Laboratory Microsystems was the first to comment to the author about the reliability of Forth.

We've left both Forth86 and Forth51 run for several weeks while on vacation. On return we turned on the screen, hit Enter, and the 'ok' appears.

When we first started the Forth project, we used Laboratory Microsystems PC/FORTH running on 8 MHz PCs with 5 1/4 inch floppys.

The PC took about a half hour to metacompile an 8051 target using the Nautilus I metacompiler.

We expect with new one clock per instruction 8051 family microcontrollers using a oscillator in the 40 MHz range and USB 2.0 or even serial communications that edit and compile speed on the 8051 family will be very fast.

We will hopefully see once we get surface mount Forth51 boards built with ExpressSCH/PCB.



Jeraldo does Linux work on a laptop.

Only use 575-571-5792 to contact Jeraldo. Other information is out of date.

Windows 98 desktop located downstairs. But laptop allows for more project workspace.


And now we are going to defeat the relatively high cost of 8051 family forth board development using ExpressSCH/PCB. Albert Gore willing, of course.



Friday December 10, 2010 14:38

Below development systems are designed for people who want to get into the embedded controller business. And have a traditional education in C/assembler.

American university computer science departments are usually staffed with professors who lack practical industrial experience.

Computer science professors teach what they were told is good: C.

C++, C#, Java Richard Hanson told me at lunch on Friday December 10, 2010.

Computer science professors don't teach what they don't know.

Computer science students are brainwashed into emulating both what their professors know and do not know.

Both, if they do not know a technology, identify that technology as bad.

And they are aided by MSM technical media promoting technology and products like the C51.

And nearly all are adverse to learning about other technologies.

Look at the cost of $1,895!





http://www.prosefights.org/cs/w2kbelkin/w2kbelkin.htm#c51



 


Sent Thursday December 9, 2010.

 

Friday December 10, 2010 07:12

MCU Development Kits C8051F340DK will be given to us at lunch Friday December 10, 2010 by Richard Hanson.

Russell Anderson presumably has a copy of the 8051 system Hanson is holding.

Anderson wanted Forth51 to work on that system.

Anderson has a copy of Embedded Controller Forth for the 8051.

Anderson was unemployed as of October 12, 2010.

We have an idea. :-)

 

 

Hello techzone,

We are retired super-senior [>70] citizen hardware/software techies.

We wish to keep our high tech consulting businesses going to supplement our social security and retirement checks.

We are concerned about high prices asked for software development systems. Like C51.

We may not be able afford these costs and still make a profit.

So what does techzone suggest we do?

bill

Software, including access of the Forth51 hardware/software systems over Internet, is complete, finished, done.

High-reliability hardware/VM software and associated SCADA applications are focus of this work. As opposed to C/assembler implementations.

ExpressPCB and surface mount boards should replace the old hardware.

Microchip gets honorable mention for inclusion of its parts library in ExpressSCH.

Microchip penetration into embedded microcontroller hardware marketplace is impressive. Only to be rivaled by the 8051 family. :-)

80C51 VM SCADA.

May the forth be with you.

Obi-Wan Kenobi?

Imam ghoft een C/assembler-e ishghalgar-e SCADA embedded controller business bayad az safheh-ye ruzgar mahv shavad.

Dr Mamoud Ahmadi Nejad?

This page is formatted with CSS by the author