Giter Club home page Giter Club logo

Comments (9)

lindoran avatar lindoran commented on August 16, 2024

https://drive.google.com/file/d/1Xg6LNHMTUqN-xAakSZLLslO4duYN43rG/view?usp=sharing

from pigfx.

chregu82 avatar chregu82 commented on August 16, 2024

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.

chregu82 avatar chregu82 commented on August 16, 2024

After some googling I think maybe the PIP command could work. The main problem is, it must send unmanipulated binary data.

from pigfx.

lindoran avatar lindoran commented on August 16, 2024

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.

chregu82 avatar chregu82 commented on August 16, 2024

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.

lindoran avatar lindoran commented on August 16, 2024

This is excellent news! Thank you for your time :)

from pigfx.

chregu82 avatar chregu82 commented on August 16, 2024

Please try V1.7.4.

from pigfx.

lindoran avatar lindoran commented on August 16, 2024

from pigfx.

lindoran avatar lindoran commented on August 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.