home .. forth .. misc mail list archive ..

No Subject


Dear Charles,

>Jeff,  
>   It seems to me that any time you are doing _anything_ except putting 
>pictures on the monitor you have to deal with the AAAAA XOR, or is it 
>55555 XOR, or FFFFF XOR from the MuP21 viewpoint?  That seems easy enough to 
>deal with though.  

On MuP21 you NEVER HAVE to deal with AAAAA XOR on the bus.  Most people
don't know if a logical 0 is 0V or 5V on the bus.  It is not the same
on all computers, but it only matters when doing cross development.
If you are on a positive polarity bus machine then you must XOR all
data and addresses with FFFF if you are doing cross development for
a negative polarity bus machine.  You use AAAAA between a postive 
logic bus, or 55555 from a negative logic bus going to MuP21.  
On MuP21 you cannot see the bus polarity just as you never see it on
any other machine, unless you exchange binary object formats with
machines that use a different polarity.  You NEVER have to xor with
AAAAA on MuP21 execpt for i/o or binary data image exchange.

>                   My problem is that Chuck mentioned in one of his talks
>that one of the arguments to the AND and -OR instructions needs to be a 
>pattern.  Is this true? and if so you need to be conscious of it at all 
>times, even when you are not dealing with the outside world.  I'm not 
>complaining, I just need some clarification and I haven't got my MuP21 
>kit working well enough to do the testing yet.

No.  Chuck used to scare me when he would say things like that in 
his early talks about MuP21.  He often uses a stream of consciousness
that is from his HARDWARE oriented view of the chip.  HE must always
be conscious of the bus polarity when designing circuits!  I would
always wince knowing that people would interpret his comment as
implying what you took it to mean.
One of my first hardware experiments on the real chip was to run
sequences of logic and math instructions to see if it is really is
completely invisible from on the chip, and of course it was.  You
just cannot see the underlying hardware polarity in the software.
You only see it when making sense of i/o from the outside world.
If you read a byte of input you have to xor it with AA or 55 to
make it look like it did on a different machine.
You also need to do it do data in a binary image passed between
machines. 
I have told Chuck that he has a problem because of his being to
close to the hardware, that creates unneeded confusion for others
who want to understand.  If you publish the opcodes xored with AAAAA
then OPCODEs and DATA are exactly the same, and they all look normal
to MuP21.  Chuck has too much of a hardware viewpoint I think.
Really in P21Forth the AAAAA xor just goes away except for i/o.
If you are writing cross assemblers or cross compilers then you 
have to think about it.

>                                                  One more question:  I 
>understand you have a MuP21 Forth available from Offete for $50.00.  What 
>hardware is required.  I have Ting's kit.  What would I need to add to be 
>able to run your Forth?
>
>Thanks,
>Charley.  (charley@netcom.com)
>

I just delivered the P21Forth 1.0 to Dr. Ting.  We burned a ROM and 
that is how it is being distributed.  You just plug in the UVPROM and
you are ready to go.
The system goes directly from the OK boot code into P21Forth without
any menus.  Then it checks for input on any of the 8 bits on the input.
If there are none it assumes parallel input.  If it sees that bit 7
of input is connected to the serial output of an rs232 device it will
assume serial input and prompt for a "B".  It then sets the baud
rate and begins serial input.  It defaults to video output.
VIDEO+SERIAL will vector system output to both video and serial.  This
will require that bit 0 of output is tied to the rs232 input on the
other device.  Also ground the rs232 connection.
So you need three wires to a db25 or db9 to a serial port.  Or if
you are VERY good at chords you can use a keypad for parallel 
input.  I have an old ascii keyboard connected to one system on
bits 0-6 for input, and bit 7 is the serial input.  The same
software boots up with a serial keyboard, parallel keyboard, or
both.
If you use a computer for a terminal then you can send and
receive files from your computer as was done with the old Novix
and RTX kits.
There are also BLOCKS on the PCMCIA (uh UVPROM) interface.  Of
course on the ROM you can only read them.  On the original 
development system the PCMCIA card is read/write.  The code is
the same on the UVPROM, it just doesn't change when you write to
it.
The user manual has lots of documentation and lots of demos and
ANS required documentation.  It also comes with source code, but
I have not ported all the source and the metacompiler to the
UVPROM yet.  I just included the metacompiler and source from
the PC.  But I will be releaseing an upgrade with some added
stuff and I hope the full source on the PROM.
I will have some questions about what people would like to
see added to the next release.  Of course I have plans for
several things already.  

Jeff Fox
Ultra Technology