Discussion:
ciforth ARM 5.5.1 arriving shortly
(too old to reply)
a***@spenarnc.xs4all.nl
2024-07-21 10:34:24 UTC
Permalink
I have run arm forths on the
Raspberry 1 : 32 bits
Orange pi one plus : 64 bits
Orangepi 800 : 64 bit

You can have fun only if you control the hardware for
those single board computers.
For the Orangepi 800 I have full schematics (20 page pdf)
and the description of the soc (RK3399). (1000 page pdf).
(Same for OPI 1+).

I have defined a common interface.
Numbering the gpio pins: system dependant.

A word MMAP-IO that assumes the variable
PERIPHERALS is containing the hardware address.
If you have root privilege MMAP-IO fills
VMA-IO with the virtual address.
Now can you access all hardware in as far you can
distill information from the soc description.

The API I decided upon is
(function gpio -- )
Make gpio perform the function.
-2 (input ) and -1 (output) are fixed.
Other function value are implementation defined.

gpio-on gpio-off ( gpio -- )
turn the pin on and off.
gpio-in (gpio -- bit) deliver a cell with one bit up.

You can get reasonably far with this.
The orange pi 800 (similar to the raspberry pi 400)
has a r.pi 1 connector. I connected a lcd1602
(16 by 2 character display) to the orange pi one plus.
The same software can be used, merely by configuring
the gpio numbers .

In ciforth WANT fashion the library contains the software
for the 3 boards, governed by properly defining
?RP1 ?OP1 ?OP2 .

(I have reported on MMAP-IO before. It went from
c-with-resident-lib to c-static-linked to
1-megabyte-assembler to 10-line-assembler to
6-line-high-level-forth ).

In the NeShan board RICV I managed to configure
the serial port to midi 31.25 baudrate, impossible
to do under linux with the facilities provided.
--
Don't praise the day before the evening. One swallow doesn't make spring.
You must not say "hey" before you have crossed the bridge. Don't sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat purring. - the Wise from Antrim -
LIT
2024-07-21 14:52:13 UTC
Permalink
Maybe it could be possible to make it use "normal"
screens, without LFs? At least as option...
a***@spenarnc.xs4all.nl
2024-07-21 19:28:27 UTC
Permalink
Post by LIT
Maybe it could be possible to make it use "normal"
screens, without LFs? At least as option...
It is advisable to provide context, lest your remarks
become incomprehensible.

The delivered source is not only rigorously tested, the documentation
is without reservation applicable and complete, not only that, but I
burn in the system several weeks before I publish it.

The source is available. Be my guest, to change it,
but no guarrantee.
It makes no sense IMHO, but anyway.
One advise, you must redefine \ .
It is now
: \ ^J PARSE 2DROP ;
You must make \ conditional on BLK.
Using SAVE-SYSTEM you can make this permanent.
Alternatively, if you modify the assembler source.
you can use fasm for i86, but use version 1.70.2.
If you download the generic system you see toblock.frt.
You can put a blank in LINE-END and compile it.
Then do

toblock <forth.lab >forthnew.lab.

Groetjes Albert
--
Don't praise the day before the evening. One swallow doesn't make spring.
You must not say "hey" before you have crossed the bridge. Don't sell the
hide of the bear until you shot it. Better one bird in the hand than ten in
the air. First gain is a cat purring. - the Wise from Antrim -
Loading...