MZ-700 – Japanese code tables
The codes from $11 to $16 are control characters. The values $11 to $14 are associated with cursor control characters, which will move the cursor. The code $15 sets the cursor to its home position. The home position is at the first line at its first column normally. The code $16 clears the screen.
$0D sets the cursor to the first column of the next line. DEL deletes the last character before the actual cursor position. INS means insert a character at the cursor position. SP spaces 1 character.
Display code table part I
Any MZ-700 ASCII character to be printed on the screen must be translated first into the display code.
This can be done by the following assembler instructions in your own program using a monitor routine:
LD A,character ; load character to translate ; into the accumulator CALL $0BB9 ; invoke translation from ; ASCII into display code
At first you move the character to translate to the display code into the accumulator register. After the execution of the monitor’s translation routine you get back the display code of the character to display in the accumulator register. All other registers are unchanged.
If you want to translate a display code into the MZ-700 ASCII code, execute the following procedure:
LD A,character ; character to translate ; into the accumulator CALL $0BCE ; invoke translation from ; display code into ASCII
If you want to change or print a character on the sreen directly, you have to poke the display code of the MZ-700 ASCII character into the V-RAM starting at location $D000. For this, see the structure of the video storage.
The codes from $C1 to $C6 are control characters. $C1 to $C4 are cursor control characters, which will move the cursor. $C5 sets the cursor to its home position. The home position is at the first line at its first column normally. $C6 clears the screen. SP spaces 1 character.
Display code table part II
The following display code table isn’t supported by the BASIC interpreter 1Z-013B and all characters contained in the table can’t be typed in from the keyboard. These characters can’t be printed by the plotter ( see the plotter table ).
You can display them on the screen using the BASIC command POKE. You have to POKE into the character V-RAM starting at location $D000 ( 53,248 decimal ) and first you have to POKE the high order bit of the associated color information byte in the color V-RAM starting at location $D800 ( 55,296 decimal ). See the structure of the V-RAM for detailed information.
The following example displays all characters of the table:
10 COLOR,,7,0:REM character white, background black 20 PRINT "";:REM clear the screen 30 FOR J=55296 to 56296:REM range from $D800 to $DBE8 40 POKE J,240:REM invoke 2nd character set 50 NEXT J:REM next color information byte 60 A=53248:I=0:H=0:REM A is pointer to the character V-RAM, I is character to print 70 POKE A,I:REM put character into the character V-RAM 80 A=A+2:REM space and 1 character 90 I=I+1:IF I=256 THEN GOTO 120:REM increment character counter, stop at 256 100 H=H+1:IF H=20 THEN A=A+40:H=0::REM increment if line end 110 GOTO 70:REM loop for next process 120 GOTO 120:REM loop at end
The following example is to be execute while active in the monitor 1Z-013A and displays both character sets:
B000 2100D0 LD HL,$D000 ; pointer to the character V-RAM B003 CD21B0 CALL $B021 ; display part 1 of the table B006 2108D2 LD HL,$D208 ; pointer to 2nd ; print area in the V-RAM B009 CD21B0 CALL $B021 ; prepare part 2 of the table B00C 3EF1 LD A,$F1 ; 2nd character set, ; background blue, ; character white B00E 2108DA LD HL,$DA08 ; set LDIR parameters, HL=from B011 1109DA LD DE,$DA09 ; DE=to B014 01FF00 LD BC,$00FF ; BC=length B017 77 LD (HL),A ; color information byte ; into $DA08 B018 EDB0 LDIR ; copy color information byte ; 255 times B01A C31AB0 JP $B01A ; loop until RESET B021 AF XOR A ; init A=$00 B022 0600 LD B,$00 ; init B=$00 B024 77 LD (HL),A ; store current char. ; into char. V-RAM B025 23 INC HL ; increment address pointer B026 3C INC A ; increment value ; of next character B027 05 DEC B ; decrement loop counter B028 C224B0 JP NZ,$B024 ; once more if not all processed B02B C9 RET ; goback to caller
MZ1-P01 plotter ASCII table
The plotter MZ1-P01 ( inbuilt in MZ-731 ) cannot print all characters shown in the MZ-700 ASCII code table. The characters shown in the following picture are available for the plotter. Any unprintable characters will be plotted in two digits hex by the plotter and in this case the plotter changes the color pen.
SP will print one space character ( blank ).
This is an example ploutout of my german characterset with 26 characters per line:
Thanks to Marukun / Takeshi Maruyama for scanning and checking all japanese tables for errors.
These tables would not exist here without his kindly help.