OKVIR mapa jezgara
OKVIR je Forth čije je jezgro pisano ručno u asembleru, posebno za svaku porodicu procesora: od 8086 i Z80, preko Cortex-M i RISC-V, do WASM-a i GPU-a. Iznad svih jezgara radi isti Forth, a svako jezgro se proverava protiv iste reference, forth.c.
Ekran na vrhu strane je mali sistem sa prozorima. Crta ga Forth (platno.fs) u WASM jezgru od 8577 bajtova, pravo na GPU kroz WebGL2. JavaScript samo prenosi događaje i bafer. Tabele ispod su ispisane iz istih podataka koje čita i taj ekran, pa se uvek slažu.
Prozor Demo radi kao demo iz vremena kad su se merili u kilobajtima. Šejder je program: 3D logo, tunel i plazma se biraju dugmetom, a „film“ ih ređa jedan za drugim. Skroler i merila nivoa preko slike crtaju Forth reči, svaki kadar iznova.
Porodice
Jedno ručno jezgro po porodici procesora, isti Forth iznad; sudija je forth.c
| Porodica | Čipovi i mašine | Ćelija | Domaćin | Jezgro | Testovi |
|---|---|---|---|---|---|
| Thumb-2 | Cortex-M3/M4/M7, R5F (STM32 F1/F4/G4/H7, AM62/AM64 M4F i R5F) | 32 | Zephyr, goli čip | radi | 25/25 |
| Thumb-1 | Cortex-M0, M0+ (STM32 F0, nRF51, RP2040) | 32 | Zephyr, goli čip | popravljen, čeka proveru | 22/22 |
| x86-64 | server, radna mašina (Ryzen) | 32 i 64 | nginx, konzola forth | radi | 38/38 |
| x86-32 | i386 i noviji, Linux (int 0x80), bez libc | 32 | Linux (goli sistemski pozivi) | radi | 34/34 |
| DOS 16-bit | 8086/8088 i noviji, realni režim, .COM (jezgro 563 B) | 16 | MS-DOS, FreeDOS, dosbox-x | radi | 29/29 |
| DOS 32-bit | 386+, zaštićeni režim bez ekstendera, sopstveni GDT (.EXE 94 KB) | 32 | DOS bez EMM386, dosbox-x | radi | 34/34 |
| WASM | pregledač | 32 → 64 | pregledač | radi | 19/19 |
| SPIR-V | GPU preko Vulkana: Vega 8, NVIDIA, Intel, llvmpipe | 32 | GPU, hiperparalelno | radi | 19/19 |
| PTX | GPU NVIDIA (RTX 5060 Ti na k3) | 32 + f32 | GPU, hiperparalelno | čeka proveru | 19/19 |
| AArch64 | Cortex-A53/A72: RPi Zero 2 W, RPi 3/4, AM62/AM64 A53, ARM serveri | 64 | goli čip, Linux | provereno | — |
| ARMv6 | ARM1176: RPi Zero, Zero W (goli čip) | 32 | goli čip | čeka proveru | 25/25 |
| RISC-V | RV32IMC: ESP32-C3/C6, CH32V, GD32VF | 32 | Zephyr, goli čip | provereno | — |
| Xtensa | ESP32, ESP32-S2/S3 (LX6, LX7) | 32 | ESP-IDF, Zephyr | nema alata | — |
| C2000 | TI Piccolo TMS320F2803x/F2806x (bajt je 16 bita) | 16 ili 32 | goli čip | plan | — |
| PRU | TI PRU-ICSS na AM335x/AM64 (bez prekida i keša) | 32 | goli čip, uz remoteproc | plan | — |
| Z80 | Z80 i srodni | 16 | goli čip | provereno | — |
| 8051 | 8051, 8052 | 16 | goli čip | provereno | — |
| PIC | PIC16 (F18855) | 16 | goli čip | provereno | 26/26 |
Nove mete
Mete koje je Miki tražio 28.9.; QEMU = može se dokazati na bez ploče
| Meta | Procesor | Porodica jezgra | Dokaz bez ploče | Stanje |
|---|---|---|---|---|
| ESP32-C3, C6 | RISC-V RV32IMC | RISC-V | QEMU | provereno |
| ESP32, S2, S3 | Xtensa LX6 / LX7 | Xtensa (nova) | traži alate | plan |
| RPi Zero, Zero W | ARM1176JZF-S (ARMv6) | ARMv6 (nova) | QEMU raspi0 | plan |
| RPi Zero 2 W | Cortex-A53 | AArch64 | QEMU raspi3 | provereno |
| AM62, AM64: A53 | Cortex-A53 | AArch64 | jezgro da, ploča ne | provereno |
| AM62, AM64: M4F, R5F | Cortex-M4F, Cortex-R5F | Thumb-2 | jezgro da, ploča ne | provereno |
| PRU-ICSS | TI PRU, 200 MHz | PRU (nova) | nema emulatora | plan |
| Piccolo C2000 | TMS320F28x | C2000 (nova) | nema emulatora | plan |
| Industrijski Ethernet | EtherCAT, PROFINET, preko PRU | PRU | traži ploču | plan |
| PC DOS (XT/AT, 386+) | 8086 / 80386 | DOS 16-bit, DOS 32-bit | dosbox-x | provereno |
| PC 32-bit Linux | i386–i686 | x86-32 | nativno | provereno |