MZ-700 – Japanese code tables

MZ-700 – Japanese code tables

“SharpSCII”

The abbreviations used in the following tables are:
L means least significant digit ( bits 0 – 3 )
M means most significant digits ( bits 7 – 4 ).

MZ-700-ASCII table

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.

japanese MZ-700-ASCII code table

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 ).

japanese plotter ASCII table

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.