Some additions to the README file

tridoraemu: fix crash on invalid vmem addresses

examples: removed 5cubes due to unclear licensing

add stuff to gitignore, licenses, README

import Vivado project

added missing assembly files, extended .gitignore

stdlib: use DEL instead of BS
This commit is contained in:
slederer 2024-09-12 21:00:33 +02:00
parent 284ebb3404
commit 951140467a
40 changed files with 11021 additions and 270 deletions

View file

@ -23,7 +23,7 @@ On the first run, this may take a while as the go build system fetches some exte
Start the *tridoraemu* binary in the same directory as the SD-Card image file (*sdcard.img*) and the ROM file (*rommon.prog*). It needs to be started on the command line as it uses the terminal window for the serial console. On startup, the emulator opens the VGA framebuffer window which is only used for graphics output.
The Tridora software (esp. the editor) requires a decent vt100-compatible (plus colors) terminal emulator. It has been successfully tested with (new) Windows Terminal, WezTerm and xterm.
The Tridora software (esp. the editor) requires a decent vt100-compatible (plus colors) terminal emulator. It has been successfully tested with (new) Windows Terminal, Alacritty, WezTerm and xterm.
The color scheme in the editor is meant for a dark terminal background.

View file

@ -75,16 +75,17 @@ func (f *Framebuffer) write(value word, byteaddr word) (error) {
}
func (f *Framebuffer) readVmem() word {
result := f.vmem[f.readAddr]
result := f.vmem[f.readAddr & (VmemWords - 1)]
f.readAddr += 1
return result
}
func (f *Framebuffer) writeVmem(value word) {
f.vmem[f.writeAddr] = value
vaddr := f.writeAddr & (VmemWords - 1)
f.vmem[vaddr] = value
y := f.writeAddr / WordsPerLine
x := f.writeAddr % WordsPerLine * PixelPerWord
y := vaddr / WordsPerLine
x := vaddr % WordsPerLine * PixelPerWord
for i := 0; i < PixelPerWord; i++ {
pixel := (value & PixelMask) >> (VmemWidth - BitsPerPixel)