-
Speed of current version
06/13/2018 at 02:42 • 0 commentsCurrent version of firmware of 3niti alpha simu1 simulates only TWO 27-triad pages - one in RAM (in PIC's data registers) and one in ROM (in PIC's EEPROM). I found my notes with approximate speed of each instruction, measured in 2011 (in microseconds):
from RAM from ROM NNN (SAN) 21 28 NNO (SAO) 21 28 NNP (SAP) 21 28 NON (SAF) 18 25 NOO (SPCD) 23 30 NOP (SAB) 18 25 NPN (SAL) 22 29 NPO (SAM) 22 29 NPP (SAH) 22 29 ONN (RLA) 23 32 ONO (ADD) 45 52 ONP (RRA) 23 32 OON (LAI #) 27 41 OOO (ADI #) 55 69 OOP (OPA #) 44 58 OPN (LDI ###) 48 76 OPO (JMP ###) 55 83 OPP (OPB ###) 93 121 PNN (LAN) 22 29* 29 36* PNO (LAO) 22 29* 29 36* PNP (LAP) 22 29* 29 36* PON (LAF) 19 26 POO (LPCD) 24 31 POP (LAB) 19 26 PPN (LAL) 23 30 PPO (LAM) 23 30 PPP (LAH) 23 30 where * means with reading data from ROM
So for example LAF (load A from F) takes 19us (nineteen microseconds) if executed from RAM (52,631 times per second) and 26us (twenty six microseconds) if executed from ROM (38,461 times per second).
When I add external I2C memory support with page caching in the PIC the speeds above (RAM column) will be true only if execution keeps running in the same page - to jump to other page firmware will need to read 27 triads from external memory and cache into RAM again...
-
3niti alpha simu1 PCB/KIT on Tindie
05/21/2018 at 23:12 • 0 comments3niti alpha simu1 simulator of ternary computer on binary microcontroller (PIC16F870) is available on Tindie:
https://www.tindie.com/products/TRC/3niti-alpha-simu1/
You can order PCB, KIT or pre-build board
-
Quick tests
05/16/2018 at 14:14 • 0 commentsIn order to test 3niti alpha with front panel you can do steps below:
Power ON with all switched in neutral position (O) should gives you all indicators OFF (all O) and 3niti alpha will stay in PAUSE mode. Then you move right switch (S/G) down that should start program running (Go), but because all memory should be zeroes at this point (OOO) it should perform ADI 0 instruction and address indicators (left 9 lamps) will start count up with step 2:
(if you already have something at OOO OOO OOO and later then this test will actually launch that program)
Now power OFF and power ON 3niti alpha again (with all switches at neutral position)
While in PAUSE mode move left switch up:
It will set address switches to POO OOO OOO - now move switch I/M up:
It will move chosen address to program counter (PC) and left 9 ternary lamps will indicate this change (see above) - in the same time previous value of PC (OOO OOO OOO) will be stored internally. Now move switch I/M back and PC will stay with that address:
Here INTERRUPT was performed to force 3niti alpha to jump to specified address and to store previous value of program counter to know where to return. If you move I/M down it will jump back to "main" program by restoring PC value (OOO OOO OOO):
Now test read/write capabilities - power OFF and ON with neutral position again:
Set address switches to OPO OOO OOO:
Then set data to write (NNP):
Writing is performed by moving switch W/R up:
As you can see data indicators started to show new value - if now you return switch back to neutral position, indicator will switch back to showing value from memory cell where program counter points:
Here it's OOO OOO OOO and OOO. Move data switches back to OOO:
Now you may try to read value from OPO OOO OOO by moving switch W/R down:
NOTE: for latest firmware of 3niti alpha simu1 only 2 paragraphs (27-triad blocks) of memory are implemented:
OOO xxx ABC - for "read-only" (stored in EEPROM of PIC16 and writable only through serial connection by PDBL console commands) and
OPN xxx ABC - read-write memory, writable from front panel (stored in DATA registers of PIC16).
I'll extend memory in near future (external memory should be used for that purpose - it's already there on the board - only software support is required)
-
Historical Videos
03/07/2017 at 04:28 • 0 comments