kervinck / gigatron-rom

System, apps and tooling for the Gigatron TTL microcomputer
BSD 2-Clause "Simplified" License
236 stars 80 forks source link

Implementation of a fast byte by byte multiplication routine. #200

Closed psr closed 3 years ago

psr commented 3 years ago

Implementation of a SYS_MultiplyBytes_120 routine. This is pretty fast but uses a very large lookup table. It's just for fun, it's not intended to become part of a future ROM.

Also includes the proof of concept code, and a modified Mandelbrot implementation.

It is not tested on real hardware and this is significant, as it uses instructions that I haven't seen used elsewhere.

This PR is dependent on commits also included in PR #199. It would be best to merge that one first, as they are independently useful, and that will give a cleaner history of what was added to where.

at67 commented 3 years ago

Some good stuff here, cheers.

psr commented 3 years ago

Thanks! I had fun doing it. I intend to post about it on the forum, but first I want to see if I can make MulShift8 in Mandelbrot go any faster.

By the way, I wasn't able to work out how to run the ROM in your emulator, and ended up using the JS one. I don't doubt that custom ROMs work, but I couldn't manage to follow the instructions.

On Fri, 4 Jun 2021, 17:20 at67, @.***> wrote:

Some good stuff here, cheers.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/kervinck/gigatron-rom/pull/200#issuecomment-854853309, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMIMYO3F2HF7SXJ5IOTMLTRD4LVANCNFSM46AM753A .

at67 commented 3 years ago

It's pretty easy, just create a _loaderconfig.ini file in your executable's directory, copy the new ROM somewhere, (the same directory as the executable is easiest), and create a relative or absolute path entry, (relative to the executable's directory), such as this:

[ROMS]
RomName0    = ROMv3y.rom
RomType0    = 0x28

Each new external ROM you add, just increment X in the RomNameX and RomTypeX fields, (RomType is not currently used other than for a visual version number display).

psr commented 3 years ago

Ah, I think maybe I'd put it in the wrong directory. Thanks.

On Sat, 5 Jun 2021, 16:13 at67, @.***> wrote:

It's pretty easy, just create a loader_config.ini file in your executable's directory, copy the new ROM somewhere, (the same directory as the executable is easiest), and create a relative or absolute path entry, (relative to the executable's directory), such as this:

[ROMS] RomName0 = ROMv3y.rom RomType0 = 0x28

Each new external ROM, just increment X in the RomNameX and RomTypeX fields, (RomType is not currently used other than for a visual version number display).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/kervinck/gigatron-rom/pull/200#issuecomment-855253831, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMIMZQ5TJE2P2GULJXXHDTRI5JDANCNFSM46AM753A .