jedimatt42 / tipi Goto Github PK
View Code? Open in Web Editor NEWTI-99/4A to Raspberry PI messaging through console sideport
License: Other
TI-99/4A to Raspberry PI messaging through console sideport
License: Other
Should be able to delete files from here. Preferably a checkbox, actions metaphor.
The RUN folder should be created if absent under the tipi user's home directory. And should probably be renamed something more meaningful like: .tipivars
The TipiVariables module should create the folder if absent.
Support multi-select on the upload file dialog
Need to be able to set protected bit.
TI FTP Client? Or BASIC command to copy an FTP file to a TIPI file?
Would be good to be able to rename files from webui
Should show Current and Latest version information from output of /home/tipi/tipi/services/setup/upgrade.sh
Should show attribution:
Includes Ralph Benzinger's xdt99 suite - https://github.com/endlos99/xdt99/blob/master/COPYING
Based on the Raspberry PI Raspbian Lite image - https://www.raspberrypi.org/downloads/raspbian/
Is it safe to remove webman?
The RPi side doesn't need 16 GPIO pins dedicated to reading 2 8-bit registers. We can reduce the number of pins on the target CPLD and leave pins open on the RPi.
Use 1 register select pin, if HIGH, the TI Data register is selected, if LOW the TI Control register is selected. then 8 pins for the parallel output of the register.
That's a 7 pin reduction.
Output pins on the RPi are all used up. And we only get 4 bits for control output.
If we used 2 shift registers, we could trade 12 pins from 4, and get 16 actual output bits for PI data and control signals.
Clk-d, clk-c, data, le.
This could be synthesized inside the CPLD.
Maybe someday disk images will be supported, and allow sector IO... but the goal of TIPI is to get away from disk images... so sector IO just doesn't make sense.
However, I would like to catalog things that are known not to work. And if there is an alternative for the same program that does work.
For specific filename characters that we convert from the DSR, we should also convert on upload:
Uploaded files with the '/' or '' in their name should be replaced with '.' instead before saving to TIPI.
less cores and a slower CPU? can we make it faster?
Need to respect the protected bit if it is set in the TIFILES header.
When traversing to a directory in the WebUI, it would be handy to be able to assign them to
DSK1_DIR
DSK2_DIR
or DSK3_DIR right there.
It would also be handy to be able to clear the assignments.
I want to reduce the 2x 8 bit<->gpio sets, to one set, and one selector bit. So the RPIO, when reading a data byte, would set the selector bit LOW, and then read the single set of 8 gpio pins. When reading the control byte, it would set the selector bit HIGH, and then read the same gpio pins. The CPLD/FPGA/Logic will have to control which latched data is presented based on the selector bit.
With this, the RPi interface drops from 22 to 15 wires. And the burden being on the RPi side, I wouldn't expect any performance loss.
The attached file contains a DV80 file with zero records... created by:
$ touch empty.txt
$ xdm99.py -T empty.txt -f "DIS/VAR80" -n EMPTY -o EMPTY
I can successfully load it into editor/assembler (Fred Kaal's EA5) but the CatalogFile is omitting it... I must have broken something.
The address line hook up to the rom is not right.
A0 on rom is LSb, should be ti A15. Banking lines should be rom A13 and A14
-M@
program is here: http://www.stuartconner.me.uk/ti/ti.htm#the_valley
works fine for old and run commands but not call load
¯_(ツ)_/¯
I propose a TIPI.CONFIG special file.
regardless of what record number is written, it fronts a map, the data in a record should be in the format:
=
The configuration should be able to be opened as a DV80 file, and written... So, any TI editor can load the entire configuration map, and see the available setting/keys and their values.
value may be:
for no mapping of DSK1
DSK1=
or for any mapping to a directory beneath tipi:
DSK1=TIPI.bas.WHATEVER
This TIPI.CONFIG should only contain mutable settings. For immutable details continue to use TIPI.STATUS ( which I would propose also be changed to a = format.
Greg said he wasn't patient enough...
Leonard said it hung, and then after a reboot of the 4a it was fine.
Let's just configure the software to be a git clone directly in /home/tipi/tipi so there are no strange softlink steps.
The comparator is wired to A3-A6, but it should be A4-A7. And in cru selection, A3 must be HIGH.
Reading the character from the VDP isn't going to work in bitmap mode.
Request that the code handle the http prefix being lowercase either through PI. or URI1-3.
reading as display variable 80 from web doesn't support BASIC well, because you cannot test for eof without the status opcode. Reading to end causes an error, and that is harder to work with.
on error should be a viable work-around - for now.
wpa_cli reconfigure isn't working. Just reboot instead.
At it is now, the RPi is running at 1 full core load constantly... It is never backing off of the cpu when waiting for the TI to ask for something.
I want to put a yield ( time.sleep(0.01) ) in the 'reset' loop, which will slow down initial command response, but the test here, will be if the mouse performance doesn't notice, then it is probably fine.
I'd like to see the RPi down to around 0.05 load when the TI isn't using it.
DEADLINE loader expects and validates the volume name of the disk...
Suggestion is that the last part of the path name should be reported as the volume name when directories are mapped to DSK?_DIR entries.
There should be a soft reset for the TI related services on the RPi, controlled by one of the GPIO pins.
The 4A could also trigger this with a powerup routine so things are in known state with every reboot.
XB2.7 TI/Editor/Assembler LF - PI.STATUS
reports error 15 after loading all lines just fine.
Probably an error in support of the STATUS opcode for the special files.
Logging is poor, and fails with ERROR 7.
Add CALL TIPION() CALL TIPIOFF() to enable CRU Bit, and keep the hardware in the memory map so TI BASIC can use it.
Might require 2 cru bits, to decouple from the OS ROM code turning it off right after the call is made.
using ea editor and preditor both i removed 50 lines from a text file and saved it only to find the lines still there on the file.. my specific line changes seemed to save at the top, but the erased lines did not
Make it easy to shutdown the PI from the TI.
clicked on the view program icon and got that error
They are presented to the TI as the name with 2 unprintable characters...
They should be presented instead in the 'long-filename' format of SIXCHR`15C
Example was the SFIRST/O and SLAST/O files with EA.
And make sure that naming them SFIRST.O and SLAST.O presents to the TI as SFIRST/O etc.
Need to protect / restrict files served to those under 'tipi_disk'
Greg loaded the root of tipi up with 256 tifiles, and though the thing crashed... it eventually finished.
Should add a spinner first, so we know it is busy... maybe... then find a faster way to identify the TI'ness of files.
Fix it, and make sure it is guest ok = yes by default.
This is the first thing Greg tried to do... I've changed the sd-card image to enable the samba share by default. But, since we want to support file type conversion through upload, multi-select/batch upload would be a big time saver for the user.
Fix it so they know to continue waiting...
Q*BERT doesn't become a good TIFILES named file... do something about it.
many users have a mess of HDX files in V9T9 format they may want to migrate to TIPI.
Lines longer than the record length need to be magically wrapped.
it seems to truncate the rest of the string, you may just be redisplaying at the wrong part of the string
The latest version of tipi.service has tipi.sh running as user: tipi. Is this correct? If so, did you chmod the following devices to be readable/writeable by the tipi user:
/dev/mem
/dev/gpiomem
Or maybe you addded 'tipi' to kmem and gpio groups?
The service won't start otherwise.
An ! causes BASIC programs to not be recognized as BASIC when editing/saving via the web code.
INSTALL.md documentation on creating the SD card image needs to include steps to configure raspbian to automount USB storage, ideally under /home/tipi/tipi_disk/USBx
'U' works when the tool doesn't think the update is available.
And when there is an update, the prompt isn't showing up.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.