Comments (9)
https://drive.google.com/file/d/1Xg6LNHMTUqN-xAakSZLLslO4duYN43rG/view?usp=sharing
from pigfx.
Well, actually I never used a Z80 machine of any kind or even CP/M. I do all my tests with a terminal software on Windows. There may be problems, if the data is not sent binary. Commands like type probably don't just send the binary file.
I found this about the type command: The TYPE command expands tabs, CTRL-I characters, assuming tab positions are set at every eighth column.
So I assume, this command manipulates the data if there's a TAB byte.
I also made the experience that the DOS type command doesn't work correct either, as it interprets one specific byte as end of transfer and stops.
So, all you have to do is find your method of choice for sending binary data to the terminal, unfortunately I don't know how to do this in CP/M.
from pigfx.
After some googling I think maybe the PIP command could work. The main problem is, it must send unmanipulated binary data.
from pigfx.
I tried useing PIP to simply redirect the file to the device file for the console, PIP kind of frezes up; you can break with ctrl C, the sprite doesn't load however when you send the animate seqence nothing shows ... so it's sort of working .... but not as intended. This issue is almost definitely CPM. There are a few options in pascal and C I can try to load the sprite maps to the terminal but im expecting similar results due to how CPM takes control of the console port; its generally protected space in middle and high level programing languages. there may be a way to directly access the port directly similar to the way the ZMODEM protocol works (I have used this interface with CPM and a TTL serial link to move files to and from a windows work station) but since the SBC i am using has only 1 serial interface it's not practical for this application (the computer is hooked to the PiGFX interface). Would it be possible to do a simple character based transfer? an example would be simply sending a list of color values in ASCII after the sprite definition. so for example [#<>;<>;<>;{list of color values in decimal separated by semicolon}a <--- denotes end of command sequence. obviously this would be very cumbersome for something really large, but a 8x8 tile, would only be 48 values less if you could figure a way to use a syntax that includes something similar to RLE (that's a big ask, I understand). The memory management on the client side could be paged or could be done with segmenting so that the memory is freed after the sprites are loaded. This type of thing would make it much simpler to implement on very old character based systems, which have limiting control over the console.
from pigfx.
I think I see the problem... As there are probably more users with CP/M who have limited access to the serial interface, I'm going to implement a text based bitmap loading interface. The rest of the sprite handling doesn't need any changes.
Your suggestion looks promising. However it'll probably be something like [#;;a followed by a semicolon separated color pixel list with x*y elements. This is a very slow and byte-wasting way of loading a bitmap, but better than nothing.
This could be done with RLE compression in a similar way.
from pigfx.
This is excellent news! Thank you for your time :)
from pigfx.
Please try V1.7.4.
from pigfx.
from pigfx.
This is working quite well! No issues so far, loading the dinos at the fastest terminal speed takes about a minute or two which is understandable given what all is happening. the way I'll handle this in my first program is using smaller tiles and loading in pieces. I think this will work very well!
from pigfx.
Related Issues (20)
- replaceLFwithCR + sendCRLF don't do anything HOT 21
- Compiling Error HOT 5
- Command for filled/empty shapes resulting in the same filled shape?
- How to load custom fonts? HOT 2
- [Feature request?] Change baudrate interactively HOT 4
- Feature request: Screen saver/blanker
- Bypass PIGFX card without removing it? HOT 1
- Compile fail. HOT 2
- unable to correctly set baudrate. HOT 14
- USB keyboard feature not working. HOT 11
- Pi/KBD freezes after several hours. HOT 8
- Having troubles with Pi Zero W HOT 1
- Composite output HOT 4
- Something not right, with apps that request number input and do not recognize enter key. HOT 3
- New Line/Enter not working in certian situations. HOT 5
- Resolution 800x480
- Pi pico ? HOT 5
- Hotswap USB keyboard...is this possible? HOT 2
- Qemu instructions and scripts out of date HOT 2
- Screen resolution of 1920*1080 possible
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pigfx.