In this tar file:

VIOv20.asm      disassembly of the original VIO 1P 2.0 ROM
VIOv20.bin      binary image "  "     "      "   "  "   "
VIOv20.hex      Intel hex image "     "      "   "  "   "
vio_v20mod.asm  modified assembly to eliminate weird mangling of "`afg["
vio_v20mod.bin  binary from asm file above
vio_v20mod.hex  Intel hex from bin file above
vio_v20mod.lst  listing produces during assembly
VIOchar.bin     original character ROM
VIOchar.hex     Intel hex image 
VIOchar.txt     Textual presentation of the character ROM


z80asm -i vio_v20mod.asm -o vio_v20mod.bin
z80asm -i vio_v20mod.asm -lvio_v20mod.lst

The weird mangling process:
At a28eh a routine checks the character to print with a short table. If a
character matches, the value is replaced by the corresponding value from
the second part of the table. Clever code, and a nice demonstration of the 
cpir instruction which is really a search instruction. 
But as it mangled every character to be printed, I nopped the call out.
That and a remark at the end of the code are the only changes to the code.


First half of the table. For these characters is searched:
a295h - 60h  `
a296h - 61h  a
a297h - 66h  f
a298h - 67h  g
a299h - 5Bh  [

Second half of the table. These are the replacements:
a29Ah - 61h  a
a29Bh - 66h  f
a29Ch - 68h  h
a29Dh - 6Ch  l
a29Eh - 5Eh  ^

fjkraan@xs4all.nl, 2013-02-12
