; Клавиатура и мышь PS/2 Test program for Z180 CPU
; Test VGA
; Test CMOS
; TEST LPT - настроено!
; (C) Eugene Po - efu@mail.ru (http://orion.efu.name)

CNTLA0	.equ	00h		; ASCI Control Register A 0
CNTLB0	.equ	02h		; ASCI Control Register B 0
CNTR	.equ	0Ah		; CSI/O Control/Status Register
TRDR	.equ	0BH		; CSI/O Transmit/Receive Data Register
AECR0	.equ 	12h		; ASCI0 Extension Control Register
CCR	.equ	1Fh		; CPU Control Register
DCNTL	.equ	32h		; DMA/WAIT Control Register
;RCR	.equ	36h		; Refresh Control Register
CBR	.equ	38h		; MMU Common Base Register
BBR	.equ	39h		; MMU Bank Base Register 
CBAR	.equ	3Ah		; MMU Common/Bank Area Register
OMCR	.equ	3Eh		; Operation Mode Control Register

; CPU Timing IOC = 0
; порты внешних устройств =====================================================
SNDADR	.equ	01000110b	; порт 44h, в ZX 65533
SNDDAT	.equ	01000100b	; порт 46h, в ZX 49149

PS2DATA	.EQU	01100000b	; порт 60h данных PS/2 контроллера
PS2CNTR	.EQU	01000100b	; порт 64h управлениЯ PS/2 контроллера

CMOSADR	.equ	01110001b	; порт 71h данных 
CMOSDAT	.equ	01110010b	; порт 72h адреса

PIODRA	.equ	01111000b	; порт 78h PIO A Data register
PIODRB	.equ	01111001b	; порт 79h PIO B Data register
PIOCRA	.equ	01111010b	; порт 7Ah PIO A Control register
PIOCRB	.equ	01111011b	; порт 7Bh PIO B Control register

VIDEO_RAM	.equ 08000h	; начало видеопамяти
;==============================================================================
.org (0000h)
  di			; отключить прерывания
  ld sp,0F800h		; установить стек
  xor a			; обнулить аккумулятор
  out0 (36h),a		; откл. регенерацию памяти (пищалку)
;  out0 (OMCR),a		; IOC=0
  ld a,00110000b
;  out0 (DCNTL),a	; доп. такты ожидания
;  ld a,00010111b
;  out0 (CCR),a		; замедлить 33%
  ld	a,00001110b
  out0	(CNTR),a	; разрешить прием и передачу CSI/O на скорости 18,432/1280
;=============================================================================
; распределение памяти Bank Area = 0, Common Area 1 = F000h
;=============================================================================  
  ld a,0A8H		; Common Area 1 - 0A000h, Bank Area - 08000h
  out0 (CBAR),a
  ld a,0B8H		; VGA текстовую видеопамять от 0B8000h отражаем на Bank Area (08000h)
  out0 (BBR),a
  ld a,10H		; RAM от 10000H отражаем на Common Area 1 (0A000h)
  out0 (CBR),a
;=============================================================================
; настройка Serial Port 0
;=============================================================================
;  in0 a,(AECR0)
;  set 4,a
;  out0 (AECR0),a	; установка внешнего тактирования ASCI0 18,432 мГц
;  set a,7		; установить рабочую частоту PHI = 18,432 мГц
;  out0 (CCR),a		; CPU Control Register
  ld a,01110100b	; прием и передача вкл. RTS=1,8,N,1
  out0 (CNTLA0),a	; Init CNTLA0 (COM1)
  ld a,10111000b	; PS=30, DR=64, SS=1, 9600BPS для PHI=18,432 мГц или 4800 длЯ PHI/2
;  ld a,10111111b	; DR=64, SS=111, 28800BPS для внешнего генератора 1,8432 мГц
  out0 (CNTLB0),a	; Init CNTLB0 (COM1)

  ld hl,R_String	; вывод строки-разделитель
  call out_string
  ld a,1		; разрешить доступ к видеопамяти и портам ввода/вывода видеоадаптера 
  ld bc,3C3h
  out (c),a
;==============================================================================
; Test RAM0
;==============================================================================
TEST_RAM0:
  ld a,55h
  ld (0A000h),a		; записываем
  ld a,(0A000h)		; читаем байт
  cp 55h		; сравниваем
  jp z,RAM0_OK		; если равны, то сообщение OK, иначе ERR
  ld hl,RAM0_ERR_String	; вывод строки
  call beep
  call out_string
  call beep
  jp TEST_RAM1  
RAM0_OK:
  ld hl,WelcomeString	; вывод строки приветствиЯ
  call out_string
  call beep		; писк
  ld hl,RAM0_OK_String	; вывод строки
  call out_string
;==============================================================================
; Test RAM1
;==============================================================================
TEST_RAM1:
  ld a,55h
  ld (8000h),a		; записываем
  ld a,(8000h)		; читаем байт
  cp 55h		; сравниваем
  jr z,RAM1_OK		; если равны, то сообщение OK, иначе ERR
  ld hl,RAM1_ERR_String	; вывод строки
  call beep
  call out_string
  call beep
  jr HT
RAM1_OK:
  call beep		; писк
  ld hl,RAM1_OK_String	; вывод строки
  call out_string
;=============================================================================
HT:
	call TEST_VGA		; проверка VGA
;	call VGA_INIT		; инициализация VGA
	call TEST_Keyb	; проверка PS/2
	call	INIT_PIO	; проверка параллельного интерфейса
	call	INIT_SND	; проверка звукового чипа
;==============================================================================
TEST:
  call in_sym
  cp 'v'
  call z,TEST_VGA
  cp 'i'
  call z,VGA_INIT
  cp 'k'
  call z,TEST_Keyb
  cp 'c'
  call z,TEST_CMOS
  cp 'p'
  call z,TEST_PIO
  cp '2'
  call z,INIT_PIO
  cp 'm'
  call z,TEST_SND
  cp 's'
  call z,INIT_SND
  cp '1'
  call z,TEST_CSIO
;  call KEYB_IN
  jr TEST
;==============================================================================
STOP:
  set 7,a		; установка бита 7
  out0 (36h),a		; вкл. регенерацию памяти , т.е. пищалку
  ld hl,StopString	; СТОП!!!
  call out_string
  halt			; СТОП!!!
WaitFF:
  ld a,0F0h
  out0 (DCNTL),a	; доп. такты ожидания
  jr TEST
Wait00:
  ld a,00h
  out0 (DCNTL),a	; доп. такты ожидания
  jr TEST
;==============================================================================
ReadDataKeyb:
  ld bc,PS2CNTR		; номер порта команд  в bc
  in a,(c)		; читаем байт состояния
  rra			; проверЯем готовность приЮма
  jp nc,ReadDataKeyb	; если не готов (бит 0 = 0)- читаем ещЮ
  ld bc,PS2DATA		; номер порта данных в bc
  in a,(c)		; получить в A
  ld hl,SCAN_CODE_SET1	; адрес таблицы
  add a,l
  ld l,a
  ld a,(hl)		; символ из таблицы
  call out_sym		; отправить в терминал
  jp ReadDataKeyb
;==============================================================================
; подпрограммы
;==============================================================================
; ввод символа с клавиатуры из терминала в A
;==============================================================================
in_sym:
  in0 a,(04h)		; читать статус порта COM1 (STAT0)
  rla			; проверяем бит 7
  jr nc,NO_IN		; если ничего не пришло (флаг C=0), вернуть в A 0FFh
  IN0 a,(08h)		; принять из COM1
  ret
NO_IN:
  ld a,0FFh
  ret
;==============================================================================
; Test VGA
;==============================================================================
TEST_VGA:
  ld a,23h		; 
  ld bc,3C2h		; регистр определения различных режимов работы MOR
  out (c),a		;
  ld bc,3CCh		; читаем то, что записали из порта VGA MOR
  in a,(c)
  cp 23h
  jp z,VGA_OK
  
  ld hl,VGA_ERR_String	; вывод строки ERR
  call out_string
  ret
;=============================================================================
; инициализация VGA
;==============================================================================
VGA_INIT:
  ld a,1		; разрешить доступ к видеопамяти и портам ввода/вывода видеоадаптера 
  ld bc,3C3h
  out (c),a
  ld hl,REGS_DATA	; таблица данных регистров
  ld a,(hl)		; содержимое из таблицы
  ld bc,3C2h		; Регистр определения различных режимов работы
  out (c),a
  inc hl
  ld a,(hl)		; содержимое из таблицы
  ld bc,3DAh		; Регистр управления дополнительным устройством
  out (c),a
  inc hl
;=============================================================================
; Регистры синхронизатора SEC 5 шт.
;=============================================================================
  xor a
VGA_SEC:
  ld bc,3C4h
  out (c),a		; индекс из A
  ld d,(hl)		; значение из таблицы
  ld bc,3C5h
  out (c),d		; данные из D
  inc hl  		; следующая ячейка
  cp 5
  inc a			; следующий номер регистра
  jp c,VGA_SEC		; пока не загрузится 5 ячеек
;=============================================================================
; Регистры контроллера CRTC 25 шт. - 18H
;=============================================================================
  xor a
VGA_CRT:  
  ld bc,3D4h
  out (c),a
  ld d,(hl)		; значение из таблицы
  ld bc,3D5h
  out (c),d
  inc hl  		; следующая ячейка
  cp 18h
  inc a			; следующий номер регистра
  jp c,VGA_CRT		; пока не загрузится 25 ячеек
;=============================================================================
; Регистры графического контроллера GC 9 шт.
;=============================================================================
  xor a
VGA_GC:
  ld bc,3CEh
  out (c),a
  ld d,(hl)		; значение из таблицы
  ld bc,3CFh
  out (c),d
  inc hl  		; следующая ячейка
  cp 9
  inc a			; следующий номер регистра
  jp c,VGA_GC		; пока не загрузится 9 ячеек
;=============================================================================
; Регистры графического контроллера AC 21 шт.
;=============================================================================
  xor a
VGA_AC:
;  ld bc,3BAh
;  in d,(c)		; переключить регистр в исходное состояние для монохромного режима
  ld bc,3DAh
  in d,(c)		; переключить регистр в исходное состояние для цветного режима
  ld bc,3C0h
  out (c),a
  ld d,(hl)		; значение из таблицы
  ld bc,3C0h
  out (c),d
  inc hl  		; следующая ячейка
  cp 21
  inc a			; следующий номер регистра
  jp c,VGA_AC		; пока не загрузится 21 ячеек
;=============================================================================
; Загрузка шрифтов в 2 плоскость видеопамяти
;=============================================================================
  ld bc,03c4h	; Регистр разрешения записи цветового слоя (Color Plane Write Enable - CPWE) (индекс 2)
  ld a,2
  out (c),a
  ld bc,03c5h
  ld a,0100b	; Если бит D2 равен единице, то можно записывать данные в второй цветовой слой.
  out (c),a
  ld hl,FONT
  ld de,VIDEO_RAM
  ld bc,4096
  ldir		; копируем шрифт
  ld bc,03c4h	; Регистр разрешения записи цветового слоя (Color Plane Write Enable - CPWE) (индекс 2)
  ld a,2
  out (c),a
  ld bc,03c5h
  ld a,1	; можно записывать данные только в нулевой цветовой слой
  out (c),a
;=============================================================================
; Выводим сообщение в память VGA
;=============================================================================
  ld hl,Welcome_string
  ld de,VIDEO_RAM
Print_String:
  ld a,(hl)
  ld (de),a
  cp 0dh
  inc hl
  inc de
  inc de
  jp c,Print_String
  call beep		; писк
  ld hl,VGA_INIT_String	; вывод строки INIT
  call out_string
  ret
VGA_OK:
  call beep		; писк
  ld hl,VGA_OK_String	; вывод строки OK
  call out_string
  ret
;==============================================================================
; инициализация и тест PS/2 контроллера
;==============================================================================
TEST_Keyb:
;  ld bc,PS2CNTR		; номер порта управления в bc
  in a,(PS2CNTR)		; читаем байт состояния
  rra
  rra			; проверяем готовность приёма
  jr c,KEYB_NOT_READY	; если не готов (бит 1 = 1)
  
  ld a,0AAH
  out (PS2CNTR),a		; самотестирование контроллера
  ld d,0FFh		; проверять ff раз
KEYB_TEST:
  dec d
  ld a,d
  jr z,KEYB_NOT_READY
  in a,(PS2CNTR)	; читаем байт состояния
  rra			; проверяем готовность чтения
  jr c,KEYB_TEST	; если не готов (бит 1 = 1)- читаем ещё
  
;  ld bc,PS2DATA		; номер порта в bc
  in a,(PS2DATA)		; получить ответ самотестирования
  cp 055H
  jr nz,KEYB_ERROR
  ld hl,KeybOkString
  call out_string	; Test OK - внутренний тест прошел
  call beep
  ret
  
KEYB_ERROR:
  cp 0FDH
  ld hl,KeybErrorString
  call beep
  call z,out_string	; Diag. Failure - ошибка внутреннего теста.
  call beep
  ret
  
KEYB_NOT_READY:
  ld hl,KeybNRstring	; контроллер не готов
  call beep
  call out_string
  call beep
  ret
;==============================================================================
; Запрос нажатой клавиши PS/2
;==============================================================================
KEYB_IN:
  in a,(PS2CNTR)	; читаем байт состояния
  rra			; проверяем готовность чтения
  ret c			; если не готов (бит 1 = 1) - возврат
  in a,(PS2DATA)
  call HEX_A
  ret
;==============================================================================
; пищалка
;==============================================================================
beep:
  set 7,a		; установка бита 7
  out0 (36h),a		; вкл. регенерацию памяти , т.е. пищалку
  ld b, 80h
beep_wait:
  push bc
  ld b, 0FFh
beep_wait1:
  nop  
  djnz beep_wait1
  pop bc
  djnz beep_wait
  xor a			; обнулить аккумулятор
  out0 (36h),a		; откл. регенерацию памяти (пищалку)
  ret
;==============================================================================
; вывод байта из A в HEX виде
;==============================================================================
HEX_A:
  PUSH	AF
  RRCA
  RRCA
  RRCA
  RRCA
  CALL	NIBBLE
  POP	AF
NIBBLE:
  AND	0FH	; обнулим старшие 4 бита
  add a,30h	; прибавим 30h
  CP	39h	; не больше кода символа "9"?
  jr c,hex_out
  add a,7	; прибавим 7 до символов A-F
;  DAA
hex_out:
  call out_sym	; вывод на экран
  ret
;==============================================================================
; вывод строки по HL в порт до 0
;==============================================================================
out_string:  
  ld a,(hl)
  cp 0			; пока не встретитсЯ символ "00H"
  ret z
  call out_sym
  inc hl
  jp out_string
;==============================================================================
; вывод символа из A в порт
;==============================================================================
out_sym:
  ld c,a
test_sym:
  in0 a,(04h)		; читать статус порта COM1 (STAT0)
  rra
  rra			; проверяем бит 1
  jr nc,test_sym	; если буфер не пустой - байт не передан (флаг C=0), опять проверить
  out0 (06h),c		; отправить в COM1
  ret
;=============================================================================
; проверка CMOS
;=============================================================================
TEST_CMOS:
  ld d,0
Read_CMOS:
  ld a,d
  out (CMOSADR),a
  in a,(CMOSDAT)
  call HEX_A		; вывести в терминал
  ld a,'.'
  call out_sym		; вывести разделитель
  inc d
  ld a,d
  cp 37h
  jr nz,Read_CMOS
  ret

  ld a,2h		; запросить минуты
  ld c,CMOSADR
  out (c),a
  ld c,CMOSDAT
  in a,(c)
  call HEX_A		; вывести в терминал
  ld a,':'
  call out_sym		; вывести разделитель
  ld a,0h		; запросить секунды
  out (71h),a
  in a,(72h)
  call HEX_A		; вывести в терминал
  ld hl,SYM_CR_LF
  call out_string	; конец строки
  ret  
;=============================================================================
; проверка LPT
;=============================================================================
TEST_PIO:
  ld hl,SYM_CR_LF
  call out_string	; конец строки
  ld hl,LPTA_StatusString
  call out_string	; строка сообщения
  
  in a,(PIODRA)		; читать данные PIO-A port
  call HEX_A		; показать байт состояния
  ld a,'-'
  call out_sym
  in a,(PIOCRA)		; читать состояние PIO-A port
  call HEX_A		; показать байт состояния
 
  ld hl,SYM_CR_LF
  call out_string	; конец строки
  ld hl,LPTB_StatusString
  call out_string	; строка сообщения
  
  in a,(PIODRB)		; читать данные PIO-B port
  call HEX_A		; показать байт состояния
  ld a,'-'
  call out_sym
  in a,(PIOCRB)		; читать состояние PIO-B port
  call HEX_A		; показать байт состояния
  ret
;=============================================================================
; инициализация PIO - параллельного интерфейса
;=============================================================================
INIT_PIO:
  ld a,0fh		; Output mode
  out (PIOCRA),a
  out (PIOCRB),a
  ld a,07h		; отключить прерывания
  out (PIOCRA),a
  out (PIOCRB),a
  ld a,03h		; отключить прерывания
  out (PIOCRA),a
  out (PIOCRB),a
  in a,(PIODRA)		; читаем данные
  cpl			; инвертируем
  ld b,a
  out (PIODRA),a	; записываем
  in a,(PIODRA)		; читаем данные
  cp b
  jr z,PIO_OK
  ld hl,PIO_ErrString
  call out_string
  call beep
  call beep
  ret
PIO_OK:  
  ld hl,PIO_OKString
  call out_string
  call beep
  ret
;=============================================================================
; инициализация звукового чипа Yamaha
; на выходе: Z сброшен - сопроцессор присутствует. В противном случае - нет.
;=============================================================================
INIT_SND:
  XOR   A          	; A=0
  OUT   (SNDADR),A    ; выбор регистра 0
  OUT   (SNDDAT),A    ; вывод 0 в выбранный регистр
  IN    A,(SNDADR)	; ввод значения из выбранного регистра
  or	a
  jr	nz,SND_ERR
  ld	hl,SoundOKString	; контроллер обнаружен
  call	out_string
  call	beep
  ret
SND_ERR:
  ld	hl,SoundErrString	; контроллер не готов
  call	out_string
  call	beep
  call	beep
  call	beep
  RET
;=============================================================================
; проверка звукового чипа Yamaha - выдать звук
; https://zxpress.ru/book_articles.php?id=667
;=============================================================================
TEST_SND:
	LD A,3        	;в порт 65533 загружается номер 3-го регистра
	OUT (SNDADR),A  ;(грубая установка тона в канале В)
	LD A,5        	;(высота тона 5)
	OUT (SNDDAT),A     ;

	LD A,7        ;
	OUT (SNDADR),A	;значение регистра 7
	LD A,%11111101	;(включается канал В,без шумовых эффектов
	OUT (SNDDAT),A     ;
	
	LD A,9        	;(амплитуда канала В)
	OUT (SNDADR),A  ;прогрвммирование регистра 9
	LD A,16       	;(т.к. амплитуда равна 16,то включается гене-
	OUT (SNDDAT),A  ;ратор огибающей
	
	LD A,12       	;(грубое управление периодом огибающей)
	OUT (SNDADR),A  ;программирование регистра 12
	LD A,255      	;величена периода огибающей
	OUT (SNDDAT),A     ;
	
	LD A,13       	;программирование типа огибающей
	OUT (SNDADR),A     ;
	LD A,%11111110;
	OUT (SNDDAT),A     ;
	
	ld	hl,SoundTestString	; конец теста
	call	out_string
	ret
;==============================================================================
; проверка асинхронного последовательного канала
; стр. 149 datasheet
;==============================================================================
TEST_CSIO:
;  call	beep		; задержка
;  in0	a,(CNTR)
;  call	HEX_A		; показать байт состояния

  ld	hl,SYM_CR_LF
  call	out_string	; конец строки
  call	beep

  in0	a,(CNTR)
  set	4,a
  out0	(CNTR),a	; разрешить передачу CSI/O
  xor	a
  out0	(TRDR),a	; отправить 0
  call	beep		; задержка
  in0	a,(CNTR)
  set	5,a
  out0	(CNTR),a	; разрешить прием CSI/O
  in0	a,(TRDR)	; прочитать
  call	HEX_A		; показать прочитанный байт
  ld	hl,SYM_CR_LF
  call	out_string	; конец строки
  
  ret
;==============================================================================
; сообщения
;==============================================================================
R_String:
  .db "------------------------------------------------------------------------------"
SYM_CR_LF:
  .db 0dh, 0ah, 0
VGA_ERR_String:
  .db "VGA Card Error!!!", 0dh, 0ah, 0
VGA_OK_String:
  .db "VGA Card Present.", 0dh, 0ah, 0
VGA_INIT_String:
  .db "VGA Card Init end.", 0dh, 0ah, 0
RAM_VGA_ERR_String:
  .db "RAM VGA Error!!!", 0dh, 0ah, 0
RAM_VGA_OK_String:
  .db "RAM VGA OK", 0dh, 0ah, 0
RAM0_ERR_String:
  .db "RAM0 Error!!!", 0dh, 0ah, 0
RAM0_OK_String:
  .db "RAM0 OK", 0dh, 0ah, 0
RAM1_ERR_String:
  .db "RAM1 Error!!!", 0dh, 0ah, 0
RAM1_OK_String:
  .db "RAM1 OK", 0dh, 0ah, 0
WelcomeString:
  .db "Orion-XT starting. ver. 0.1. Serial #22011101", 0dh, 0ah
  .db "(v)GA test, (i)nit VGA, (k)eyboard test, (c)MOS test, (p)IO test, (s)ound init, (m)usic test, 1-SD Test 2-PIO test", 0dh, 0ah, 0
Welcome_string:
  .db	"Orion-XT starting on VGA.", 0Dh, 0Ah
KeybOkString:
  .db "Keyboard Init.", 0dh, 0ah, 0
KeybErrorString:
  .db "Keyboard Test Error!!!", 0dh, 0ah, 0
KeybNRstring:
  .db "Keyboard not ready!", 0dh, 0ah, 0
LPTA_StatusString:
  .db "PIO-A status (Data-Control): ", 0
LPTB_StatusString:
  .db "PIO-B status (Data-Control): ", 0
PIO_OKString:
  .db "PIO Chip OK", 0dh, 0ah, 0
PIO_ErrString:
  .db "PIO Chip not found!!!", 0dh, 0ah, 0
SoundOKString:
  .db "Sound Chip OK", 0dh, 0ah, 0
SoundErrString:
  .db "Sound Chip not found!!!", 0dh, 0ah, 0
SoundTestString:
  .db "Soud Test End.", 0dh, 0ah, 0
StopString:
  .db 0dh, 0ah, "STOP!!!", 0dh, 0ah, 0
SCAN_CODE_SET1:
 .db 0,"1234567890-+",0,0,"QWERTYUIOP[]",0,0,"ASDFGHJKL;",22h,0,0,"ZXCVBNM,./",0,"*",0," ",0,0,0,0,0,0,0,0,0,0,0,0,0,"789-456+1230.",0,0
;SCAN_CODE_SET2:
; .db 0,0,0,0,0,0,0,0,0,0,0,0,0,126,0,0,0,0,0,0,'Q','1',0,0,0,'Z','S','A','W','2',0,0,'C','X','D','E','4','3',0,0,' ','V"
; .db "F','T','R','5',0,0,'N','B','H','G','Y','6',0,'J',0,'M',0,'U','7','8',0,0,44,'K','I','O','0','9',0,0,'.','/','L',59,'P','-',0,0,0
; .db 39,0,'[','=',0,0,0,0,0,']',0,92,0,0,0,0,0,0,0,0,0,0,0,'1',0,'4','7',0,0,0,'0','.','2','5','6','8',0,0,'0','+','3','-','*','9',0,0,0,0,0,0
;=============================================================================
REGS_DATA:
; MISC
; .db    67h, 00h
.db    10100111b, 00h	; 400 x 720
; SEQ
.db    03h, 00h, 03h, 00h, 02h
; CRTC
.db    5Fh, 4Fh, 50h, 82h, 55h, 81h, 0BFh, 01Fh
.db    00h, 4Fh, 0Dh, 0Eh, 00h, 00h, 00h, 50h
.db    9Ch, 0Eh, 8Fh, 28h, 1Fh, 96h, 0B9h, 0A3h
.db    0FFh
; GC
.db    00h, 00h, 00h, 00h, 00h, 10h, 0Eh, 00h
.db    0FFh
; AC
.db    00h, 01h, 02h, 03h, 04h, 05h, 14h, 07h
.db    38h, 39h, 3Ah, 3Bh, 3Ch, 3Dh, 3Eh, 3Fh
.db    0Ch, 00h, 0Fh, 08h, 00h
;=============================================================================
FONT:
fon16_ascii0    .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii1    .db   000h,000h,07Eh,081h,0A5h,081h,081h,0A5h
                .db   099h,081h,081h,07Eh,000h,000h,000h,000h
fon16_ascii2    .db   000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0DBh
                .db   0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h
fon16_ascii3    .db   000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh
                .db   0FEh,07Ch,038h,010h,000h,000h,000h,000h
fon16_ascii4    .db   000h,000h,000h,000h,010h,038h,07Ch,0FEh
                .db   07Ch,038h,010h,000h,000h,000h,000h,000h
fon16_ascii5    .db   000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h
                .db   0E7h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii6    .db   000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh
                .db   07Eh,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii7    .db   000h,000h,000h,000h,000h,000h,018h,03Ch
                .db   03Ch,018h,000h,000h,000h,000h,000h,000h
fon16_ascii8    .db   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h
                .db   0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii9    .db   000h,000h,000h,000h,000h,03Ch,066h,042h
                .db   042h,066h,03Ch,000h,000h,000h,000h,000h
fon16_ascii10   .db   0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh
                .db   0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii11   .db   000h,000h,01Eh,006h,00Eh,01Ah,078h,0CCh
                .db   0CCh,0CCh,0CCh,078h,000h,000h,000h,000h
fon16_ascii12   .db   000h,000h,03Ch,066h,066h,066h,066h,03Ch
                .db   018h,07Eh,018h,018h,000h,000h,000h,000h
fon16_ascii13   .db   000h,000h,03Fh,033h,03Fh,030h,030h,030h
                .db   030h,070h,0F0h,0E0h,000h,000h,000h,000h
fon16_ascii14   .db   000h,000h,07Fh,063h,07Fh,063h,063h,063h
                .db   063h,067h,0E7h,0E6h,0C0h,000h,000h,000h
fon16_ascii15   .db   000h,000h,000h,018h,018h,0DBh,03Ch,0E7h
                .db   03Ch,0DBh,018h,018h,000h,000h,000h,000h
fon16_ascii16   .db   000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h
                .db   0F0h,0E0h,0C0h,080h,000h,000h,000h,000h
fon16_ascii17   .db   000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh
                .db   01Eh,00Eh,006h,002h,000h,000h,000h,000h
fon16_ascii18   .db   000h,000h,018h,03Ch,07Eh,018h,018h,018h
                .db   07Eh,03Ch,018h,000h,000h,000h,000h,000h
fon16_ascii19   .db   000h,000h,066h,066h,066h,066h,066h,066h
                .db   066h,000h,066h,066h,000h,000h,000h,000h
fon16_ascii20   .db   000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh
                .db   01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h
fon16_ascii21   .db   000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h
                .db   06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h
fon16_ascii22   .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h
fon16_ascii23   .db   000h,000h,018h,03Ch,07Eh,018h,018h,018h
                .db   07Eh,03Ch,018h,07Eh,000h,000h,000h,000h
fon16_ascii24   .db   000h,000h,018h,03Ch,07Eh,018h,018h,018h
                .db   018h,018h,018h,018h,000h,000h,000h,000h
fon16_ascii25   .db   000h,000h,018h,018h,018h,018h,018h,018h
                .db   018h,07Eh,03Ch,018h,000h,000h,000h,000h
fon16_ascii26   .db   000h,000h,000h,000h,000h,018h,00Ch,0FEh
                .db   00Ch,018h,000h,000h,000h,000h,000h,000h
fon16_ascii27   .db   000h,000h,000h,000h,000h,030h,060h,0FEh
                .db   060h,030h,000h,000h,000h,000h,000h,000h
fon16_ascii28   .db   000h,000h,000h,000h,000h,000h,0C0h,0C0h
                .db   0C0h,0FEh,000h,000h,000h,000h,000h,000h
fon16_ascii29   .db   000h,000h,000h,000h,000h,028h,06Ch,0FEh
                .db   06Ch,028h,000h,000h,000h,000h,000h,000h
fon16_ascii30   .db   000h,000h,000h,000h,010h,038h,038h,07Ch
                .db   07Ch,0FEh,0FEh,000h,000h,000h,000h,000h
fon16_ascii31   .db   000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch
                .db   038h,038h,010h,000h,000h,000h,000h,000h
fon16_ascii32   .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii33   .db   000h,000h,018h,03Ch,03Ch,03Ch,018h,018h
                .db   018h,000h,018h,018h,000h,000h,000h,000h
fon16_ascii34   .db   000h,066h,066h,066h,024h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii35   .db   000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch
                .db   06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h
fon16_ascii36   .db   018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h
                .db   006h,086h,0C6h,07Ch,018h,018h,000h,000h
fon16_ascii37   .db   000h,000h,000h,000h,0C2h,0C6h,00Ch,018h
                .db   030h,060h,0C6h,086h,000h,000h,000h,000h
fon16_ascii38   .db   000h,000h,038h,06Ch,06Ch,038h,076h,0DCh
                .db   0CCh,0CCh,0CCh,076h,000h,000h,000h,000h
fon16_ascii39   .db   000h,030h,030h,030h,060h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii40   .db   000h,000h,00Ch,018h,030h,030h,030h,030h
                .db   030h,030h,018h,00Ch,000h,000h,000h,000h
fon16_ascii41   .db   000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch
                .db   00Ch,00Ch,018h,030h,000h,000h,000h,000h
fon16_ascii42   .db   000h,000h,000h,000h,000h,066h,03Ch,0FFh
                .db   03Ch,066h,000h,000h,000h,000h,000h,000h
fon16_ascii43   .db   000h,000h,000h,000h,000h,018h,018h,07Eh
                .db   018h,018h,000h,000h,000h,000h,000h,000h
fon16_ascii44   .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   000h,018h,018h,018h,030h,000h,000h,000h
fon16_ascii45   .db   000h,000h,000h,000h,000h,000h,000h,0FEh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii46   .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   000h,000h,018h,018h,000h,000h,000h,000h
fon16_ascii47   .db   000h,000h,000h,000h,002h,006h,00Ch,018h
                .db   030h,060h,0C0h,080h,000h,000h,000h,000h
fon16_ascii48   .db   000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h
                .db   0C6h,0C6h,06Ch,038h,000h,000h,000h,000h
fon16_ascii49   .db   000h,000h,018h,038h,078h,018h,018h,018h
                .db   018h,018h,018h,07Eh,000h,000h,000h,000h
fon16_ascii50   .db   000h,000h,07Ch,0C6h,006h,00Ch,018h,030h
                .db   060h,0C0h,0C6h,0FEh,000h,000h,000h,000h
fon16_ascii51   .db   000h,000h,07Ch,0C6h,006h,006h,03Ch,006h
                .db   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii52   .db   000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh
                .db   00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h
fon16_ascii53   .db   000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h
                .db   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii54   .db   000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h
                .db   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii55   .db   000h,000h,0FEh,0C6h,006h,006h,00Ch,018h
                .db   030h,030h,030h,030h,000h,000h,000h,000h
fon16_ascii56   .db   000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h
                .db   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii57   .db   000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h
                .db   006h,006h,00Ch,078h,000h,000h,000h,000h
fon16_ascii58   .db   000h,000h,000h,000h,018h,018h,000h,000h
                .db   000h,018h,018h,000h,000h,000h,000h,000h
fon16_ascii59   .db   000h,000h,000h,000h,018h,018h,000h,000h
                .db   000h,018h,018h,030h,000h,000h,000h,000h
fon16_ascii60   .db   000h,000h,000h,006h,00Ch,018h,030h,060h
                .db   030h,018h,00Ch,006h,000h,000h,000h,000h
fon16_ascii61   .db   000h,000h,000h,000h,000h,07Eh,000h,000h
                .db   07Eh,000h,000h,000h,000h,000h,000h,000h
fon16_ascii62   .db   000h,000h,000h,060h,030h,018h,00Ch,006h
                .db   00Ch,018h,030h,060h,000h,000h,000h,000h
fon16_ascii63   .db   000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h
                .db   018h,000h,018h,018h,000h,000h,000h,000h
fon16_ascii64   .db   000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh
                .db   0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h
fon16_ascii65   .db   000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii66   .db   000h,000h,0FCh,066h,066h,066h,07Ch,066h
                .db   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii67   .db   000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h
                .db   0C0h,0C2h,066h,03Ch,000h,000h,000h,000h
fon16_ascii68   .db   000h,000h,0F8h,06Ch,066h,066h,066h,066h
                .db   066h,066h,06Ch,0F8h,000h,000h,000h,000h
fon16_ascii69   .db   000h,000h,0FEh,066h,062h,068h,078h,068h
                .db   060h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii70   .db   000h,000h,0FEh,066h,062h,068h,078h,068h
                .db   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii71   .db   000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh
                .db   0C6h,0C6h,066h,03Ah,000h,000h,000h,000h
fon16_ascii72   .db   000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii73   .db   000h,000h,03Ch,018h,018h,018h,018h,018h
                .db   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii74   .db   000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch
                .db   0CCh,0CCh,0CCh,078h,000h,000h,000h,000h
fon16_ascii75   .db   000h,000h,0E6h,066h,066h,06Ch,078h,078h
                .db   06Ch,066h,066h,0E6h,000h,000h,000h,000h
fon16_ascii76   .db   000h,000h,0F0h,060h,060h,060h,060h,060h
                .db   060h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii77   .db   000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii78   .db   000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii79   .db   000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii80   .db   000h,000h,0FCh,066h,066h,066h,07Ch,060h
                .db   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii81   .db   000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h
                .db   0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h
fon16_ascii82   .db   000h,000h,0FCh,066h,066h,066h,07Ch,06Ch
                .db   066h,066h,066h,0E6h,000h,000h,000h,000h
fon16_ascii83   .db   000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch
                .db   006h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii84   .db   000h,000h,07Eh,07Eh,05Ah,018h,018h,018h
                .db   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii85   .db   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii86   .db   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h
                .db   0C6h,06Ch,038h,010h,000h,000h,000h,000h
fon16_ascii87   .db   000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h
                .db   0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h
fon16_ascii88   .db   000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h
                .db   07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii89   .db   000h,000h,066h,066h,066h,066h,03Ch,018h
                .db   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii90   .db   000h,000h,0FEh,0C6h,086h,00Ch,018h,030h
                .db   060h,0C2h,0C6h,0FEh,000h,000h,000h,000h
fon16_ascii91   .db   000h,000h,03Ch,030h,030h,030h,030h,030h
                .db   030h,030h,030h,03Ch,000h,000h,000h,000h
fon16_ascii92   .db   000h,000h,000h,080h,0C0h,0E0h,070h,038h
                .db   01Ch,00Eh,006h,002h,000h,000h,000h,000h
fon16_ascii93   .db   000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch
                .db   00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h
fon16_ascii94   .db   010h,038h,06Ch,0C6h,000h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii95   .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,0FFh,000h,000h
fon16_ascii96   .db   030h,030h,018h,000h,000h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii97   .db   000h,000h,000h,000h,000h,078h,00Ch,07Ch
                .db   0CCh,0CCh,0CCh,07Ch,000h,000h,000h,000h
fon16_ascii98   .db   000h,000h,060h,060h,060h,078h,06Ch,066h
                .db   066h,066h,066h,07Ch,000h,000h,000h,000h
fon16_ascii99   .db   000h,000h,000h,000h,000h,07Ch,0C6h,0C0h
                .db   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii100  .db   000h,000h,00Ch,00Ch,00Ch,03Ch,06Ch,0CCh
                .db   0CCh,0CCh,0CCh,07Ch,000h,000h,000h,000h
fon16_ascii101  .db   000h,000h,000h,000h,000h,07Ch,0C6h,0FEh
                .db   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii102  .db   000h,000h,038h,06Ch,064h,060h,0F0h,060h
                .db   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii103  .db   000h,000h,000h,000h,000h,07Ch,0CCh,0CCh
                .db   0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h
fon16_ascii104  .db   000h,000h,060h,060h,060h,07Ch,066h,066h
                .db   066h,066h,066h,066h,000h,000h,000h,000h
fon16_ascii105  .db   000h,000h,018h,018h,000h,038h,018h,018h
                .db   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii106  .db   000h,000h,006h,006h,000h,00Eh,006h,006h
                .db   006h,006h,006h,006h,066h,066h,03Ch,000h
fon16_ascii107  .db   000h,000h,0E0h,060h,060h,066h,06Ch,078h
                .db   078h,06Ch,066h,0E6h,000h,000h,000h,000h
fon16_ascii108  .db   000h,000h,038h,018h,018h,018h,018h,018h
                .db   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii109  .db   000h,000h,000h,000h,000h,0ECh,0FEh,0D6h
                .db   0D6h,0D6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii110  .db   000h,000h,000h,000h,000h,07Ch,066h,066h
                .db   066h,066h,066h,066h,000h,000h,000h,000h
fon16_ascii111  .db   000h,000h,000h,000h,000h,07Ch,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii112  .db   000h,000h,000h,000h,000h,07Ch,066h,066h
                .db   066h,066h,066h,07Ch,060h,060h,060h,000h
fon16_ascii113  .db   000h,000h,000h,000h,000h,07Ch,0CCh,0CCh
                .db   0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,00Ch,000h
fon16_ascii114  .db   000h,000h,000h,000h,000h,0DCh,076h,066h
                .db   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii115  .db   000h,000h,000h,000h,000h,07Ch,0C6h,060h
                .db   038h,00Ch,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii116  .db   000h,000h,010h,030h,030h,0FCh,030h,030h
                .db   030h,030h,036h,01Ch,000h,000h,000h,000h
fon16_ascii117  .db   000h,000h,000h,000h,000h,0CCh,0CCh,0CCh
                .db   0CCh,0CCh,0CCh,07Ch,000h,000h,000h,000h
fon16_ascii118  .db   000h,000h,000h,000h,000h,066h,066h,066h
                .db   066h,066h,03Ch,018h,000h,000h,000h,000h
fon16_ascii119  .db   000h,000h,000h,000h,000h,0C6h,0C6h,0D6h
                .db   0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h
fon16_ascii120  .db   000h,000h,000h,000h,000h,0C6h,06Ch,038h
                .db   038h,038h,06Ch,0C6h,000h,000h,000h,000h
fon16_ascii121  .db   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,07Eh,006h,0C6h,07Ch,000h
fon16_ascii122  .db   000h,000h,000h,000h,000h,0FEh,0CCh,018h
                .db   030h,060h,0C6h,0FEh,000h,000h,000h,000h
fon16_ascii123  .db   000h,000h,00Eh,018h,018h,018h,070h,018h
                .db   018h,018h,018h,00Eh,000h,000h,000h,000h
fon16_ascii124  .db   000h,000h,018h,018h,018h,018h,000h,018h
                .db   018h,018h,018h,018h,000h,000h,000h,000h
fon16_ascii125  .db   000h,000h,070h,018h,018h,018h,00Eh,018h
                .db   018h,018h,018h,070h,000h,000h,000h,000h
fon16_ascii126  .db   000h,000h,076h,0DCh,000h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii127  .db   000h,000h,000h,000h,010h,038h,06Ch,0C6h
                .db   0C6h,0C6h,0FEh,000h,000h,000h,000h,000h
fon16_ascii128  .db   000h,000h,01Eh,036h,066h,0C6h,0C6h,0FEh
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii129  .db   000h,000h,0FEh,062h,062h,060h,07Ch,066h
                .db   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii130  .db   000h,000h,0FCh,066h,066h,066h,07Ch,066h
                .db   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii131  .db   000h,000h,0FEh,062h,062h,060h,060h,060h
                .db   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii132  .db   000h,000h,01Eh,036h,066h,066h,066h,066h
                .db   066h,066h,066h,0FFh,0C3h,081h,000h,000h
fon16_ascii133  .db   000h,000h,0FEh,066h,062h,068h,078h,068h
                .db   060h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii134  .db   000h,000h,0D6h,0D6h,054h,054h,07Ch,07Ch
                .db   054h,0D6h,0D6h,0D6h,000h,000h,000h,000h
fon16_ascii135  .db   000h,000h,07Ch,0C6h,006h,006h,03Ch,006h
                .db   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii136  .db   000h,000h,0C6h,0C6h,0CEh,0CEh,0D6h,0E6h
                .db   0E6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii137  .db   038h,038h,0C6h,0C6h,0CEh,0CEh,0D6h,0E6h
                .db   0E6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii138  .db   000h,000h,0E6h,066h,06Ch,06Ch,078h,078h
                .db   06Ch,06Ch,066h,0E6h,000h,000h,000h,000h
fon16_ascii139  .db   000h,000h,01Eh,036h,066h,0C6h,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii140  .db   000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii141  .db   000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii142  .db   000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii143  .db   000h,000h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii144  .db   000h,000h,0FCh,066h,066h,066h,07Ch,060h
                .db   060h,060h,060h,0F0h,000h,000h,000h,000h
fon16_ascii145  .db   000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h
                .db   0C0h,0C2h,066h,03Ch,000h,000h,000h,000h
fon16_ascii146  .db   000h,000h,07Eh,05Ah,018h,018h,018h,018h
                .db   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii147  .db   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh
                .db   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii148  .db   000h,03Ch,018h,07Eh,0DBh,0DBh,0DBh,0DBh
                .db   0DBh,07Eh,018h,03Ch,000h,000h,000h,000h
fon16_ascii149  .db   000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h
                .db   07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii150  .db   000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh
                .db   0CCh,0CCh,0CCh,0FEh,006h,006h,000h,000h
fon16_ascii151  .db   000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh
                .db   006h,006h,006h,006h,000h,000h,000h,000h
fon16_ascii152  .db   000h,000h,0DBh,0DBh,0DBh,0DBh,0DBh,0DBh
                .db   0DBh,0DBh,0DBh,0FFh,000h,000h,000h,000h
fon16_ascii153  .db   000h,000h,0DBh,0DBh,0DBh,0DBh,0DBh,0DBh
                .db   0DBh,0DBh,0DBh,0FFh,003h,003h,000h,000h
fon16_ascii154  .db   000h,000h,0F8h,0B0h,030h,030h,03Eh,033h
                .db   033h,033h,033h,07Eh,000h,000h,000h,000h
fon16_ascii155  .db   000h,000h,0C3h,0C3h,0C3h,0C3h,0F3h,0DBh
                .db   0DBh,0DBh,0DBh,0F3h,000h,000h,000h,000h
fon16_ascii156  .db   000h,000h,0F0h,060h,060h,060h,07Ch,066h
                .db   066h,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii157  .db   000h,000h,07Ch,0C6h,006h,026h,03Eh,026h
                .db   006h,006h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii158  .db   000h,000h,0CEh,0DBh,0DBh,0DBh,0FBh,0DBh
                .db   0DBh,0DBh,0DBh,0CEh,000h,000h,000h,000h
fon16_ascii159  .db   000h,000h,03Fh,066h,066h,066h,03Eh,03Eh
                .db   066h,066h,066h,0E7h,000h,000h,000h,000h
fon16_ascii160  .db   000h,000h,000h,000h,000h,078h,00Ch,07Ch
                .db   0CCh,0CCh,0CCh,076h,000h,000h,000h,000h
fon16_ascii161  .db   000h,002h,006h,03Ch,060h,060h,07Ch,066h
                .db   066h,066h,066h,03Ch,000h,000h,000h,000h
fon16_ascii162  .db   000h,000h,000h,000h,000h,0FCh,066h,066h
                .db   07Ch,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii163  .db   000h,000h,000h,000h,000h,07Eh,032h,032h
                .db   030h,030h,030h,078h,000h,000h,000h,000h
fon16_ascii164  .db   000h,000h,000h,000h,000h,01Eh,036h,036h
                .db   066h,066h,066h,0FFh,0C3h,0C3h,000h,000h
fon16_ascii165  .db   000h,000h,000h,000h,000h,07Ch,0C6h,0FEh
                .db   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii166  .db   000h,000h,000h,000h,000h,0D6h,0D6h,054h
                .db   07Ch,054h,0D6h,0D6h,000h,000h,000h,000h
fon16_ascii167  .db   000h,000h,000h,000h,000h,03Ch,066h,006h
                .db   00Ch,006h,066h,03Ch,000h,000h,000h,000h
fon16_ascii168  .db   000h,000h,000h,000h,000h,0C6h,0C6h,0CEh
                .db   0D6h,0E6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii169  .db   000h,000h,000h,038h,038h,0C6h,0C6h,0CEh
                .db   0D6h,0E6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii170  .db   000h,000h,000h,000h,000h,0E6h,06Ch,078h
                .db   078h,06Ch,066h,0E6h,000h,000h,000h,000h
fon16_ascii171  .db   000h,000h,000h,000h,000h,01Eh,036h,066h
                .db   066h,066h,066h,066h,000h,000h,000h,000h
fon16_ascii172  .db   000h,000h,000h,000h,000h,0C6h,0EEh,0FEh
                .db   0FEh,0D6h,0D6h,0C6h,000h,000h,000h,000h
fon16_ascii173  .db   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                .db   0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii174  .db   000h,000h,000h,000h,000h,07Ch,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii175  .db   000h,000h,000h,000h,000h,0FEh,0C6h,0C6h
                .db   0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h
fon16_ascii176  .db   011h,044h,011h,044h,011h,044h,011h,044h
                .db   011h,044h,011h,044h,011h,044h,011h,044h
fon16_ascii177  .db   055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh
                .db   055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh
fon16_ascii178  .db   0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h
                .db   0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h
fon16_ascii179  .db   018h,018h,018h,018h,018h,018h,018h,018h
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii180  .db   018h,018h,018h,018h,018h,018h,018h,0F8h
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii181  .db   018h,018h,018h,018h,018h,0F8h,018h,0F8h
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii182  .db   036h,036h,036h,036h,036h,036h,036h,0F6h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii183  .db   000h,000h,000h,000h,000h,000h,000h,0FEh
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii184  .db   000h,000h,000h,000h,000h,0F8h,018h,0F8h
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii185  .db   036h,036h,036h,036h,036h,0F6h,006h,0F6h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii186  .db   036h,036h,036h,036h,036h,036h,036h,036h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii187  .db   000h,000h,000h,000h,000h,0FEh,006h,0F6h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii188  .db   036h,036h,036h,036h,036h,0F6h,006h,0FEh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii189  .db   036h,036h,036h,036h,036h,036h,036h,0FEh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii190  .db   018h,018h,018h,018h,018h,0F8h,018h,0F8h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii191  .db   000h,000h,000h,000h,000h,000h,000h,0F8h
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii192  .db   018h,018h,018h,018h,018h,018h,018h,01Fh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii193  .db   018h,018h,018h,018h,018h,018h,018h,0FFh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii194  .db   000h,000h,000h,000h,000h,000h,000h,0FFh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii195  .db   018h,018h,018h,018h,018h,018h,018h,01Fh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii196  .db   000h,000h,000h,000h,000h,000h,000h,0FFh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii197  .db   018h,018h,018h,018h,018h,018h,018h,0FFh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii198  .db   018h,018h,018h,018h,018h,01Fh,018h,01Fh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii199  .db   036h,036h,036h,036h,036h,036h,036h,037h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii200  .db   036h,036h,036h,036h,036h,037h,030h,03Fh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii201  .db   000h,000h,000h,000h,000h,03Fh,030h,037h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii202  .db   036h,036h,036h,036h,036h,0F7h,000h,0FFh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii203  .db   000h,000h,000h,000h,000h,0FFh,000h,0F7h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii204  .db   036h,036h,036h,036h,036h,037h,030h,037h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii205  .db   000h,000h,000h,000h,000h,0FFh,000h,0FFh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii206  .db   036h,036h,036h,036h,036h,0F7h,000h,0F7h
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii207  .db   018h,018h,018h,018h,018h,0FFh,000h,0FFh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii208  .db   036h,036h,036h,036h,036h,036h,036h,0FFh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii209  .db   000h,000h,000h,000h,000h,0FFh,000h,0FFh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii210  .db   000h,000h,000h,000h,000h,000h,000h,0FFh
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii211  .db   036h,036h,036h,036h,036h,036h,036h,03Fh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii212  .db   018h,018h,018h,018h,018h,01Fh,018h,01Fh
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii213  .db   000h,000h,000h,000h,000h,01Fh,018h,01Fh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii214  .db   000h,000h,000h,000h,000h,000h,000h,03Fh
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii215  .db   036h,036h,036h,036h,036h,036h,036h,0FFh
                .db   036h,036h,036h,036h,036h,036h,036h,036h
fon16_ascii216  .db   018h,018h,018h,018h,018h,0FFh,018h,0FFh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii217  .db   018h,018h,018h,018h,018h,018h,018h,0F8h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii218  .db   000h,000h,000h,000h,000h,000h,000h,01Fh
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii219  .db   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
                .db   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii220  .db   000h,000h,000h,000h,000h,000h,000h,0FFh
                .db   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
fon16_ascii221  .db   0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h
                .db   0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h
fon16_ascii222  .db   00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh
                .db   00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh
fon16_ascii223  .db   0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii224  .db   000h,000h,000h,000h,000h,0DCh,066h,066h
                .db   066h,066h,066h,07Ch,060h,060h,0F0h,000h
fon16_ascii225  .db   000h,000h,000h,000h,000h,07Ch,0C6h,0C0h
                .db   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii226  .db   000h,000h,000h,000h,000h,07Eh,05Ah,018h
                .db   018h,018h,018h,03Ch,000h,000h,000h,000h
fon16_ascii227  .db   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                .db   0C6h,0C6h,07Eh,006h,006h,0C6h,07Ch,000h
fon16_ascii228  .db   000h,000h,000h,000h,03Ch,018h,07Eh,0DBh
                .db   0DBh,0DBh,0DBh,07Eh,018h,018h,03Ch,000h
fon16_ascii229  .db   000h,000h,000h,000h,000h,0C6h,06Ch,038h
                .db   038h,038h,06Ch,0C6h,000h,000h,000h,000h
fon16_ascii230  .db   000h,000h,000h,000h,000h,0CCh,0CCh,0CCh
                .db   0CCh,0CCh,0CCh,0FEh,006h,006h,000h,000h
fon16_ascii231  .db   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                .db   0C6h,07Eh,006h,006h,000h,000h,000h,000h
fon16_ascii232  .db   000h,000h,000h,000h,000h,0D6h,0D6h,0D6h
                .db   0D6h,0D6h,0D6h,0FEh,000h,000h,000h,000h
fon16_ascii233  .db   000h,000h,000h,000h,000h,0D6h,0D6h,0D6h
                .db   0D6h,0D6h,0D6h,0FEh,003h,003h,000h,000h
fon16_ascii234  .db   000h,000h,000h,000h,000h,0F8h,0B0h,030h
                .db   03Eh,033h,033h,07Eh,000h,000h,000h,000h
fon16_ascii235  .db   000h,000h,000h,000h,000h,0C6h,0C6h,0C6h
                .db   0F6h,0DEh,0DEh,0F6h,000h,000h,000h,000h
fon16_ascii236  .db   000h,000h,000h,000h,000h,0F0h,060h,060h
                .db   07Ch,066h,066h,0FCh,000h,000h,000h,000h
fon16_ascii237  .db   000h,000h,000h,000h,000h,03Ch,066h,006h
                .db   01Eh,006h,066h,03Ch,000h,000h,000h,000h
fon16_ascii238  .db   000h,000h,000h,000h,000h,0CEh,0DBh,0DBh
                .db   0FBh,0DBh,0DBh,0CEh,000h,000h,000h,000h
fon16_ascii239  .db   000h,000h,000h,000h,000h,07Eh,0CCh,0CCh
                .db   0FCh,06Ch,0CCh,0CEh,000h,000h,000h,000h
fon16_ascii240  .db   000h,06Ch,000h,0FEh,066h,062h,068h,078h
                .db   068h,062h,066h,0FEh,000h,000h,000h,000h
fon16_ascii241  .db   000h,000h,000h,06Ch,000h,07Ch,0C6h,0FEh
                .db   0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h
fon16_ascii242  .db   000h,000h,000h,030h,018h,00Ch,006h,00Ch
                .db   018h,030h,000h,07Eh,000h,000h,000h,000h
fon16_ascii243  .db   000h,000h,000h,00Ch,018h,030h,060h,030h
                .db   018h,00Ch,000h,07Eh,000h,000h,000h,000h
fon16_ascii244  .db   000h,000h,00Eh,01Bh,01Bh,018h,018h,018h
                .db   018h,018h,018h,018h,018h,018h,018h,018h
fon16_ascii245  .db   018h,018h,018h,018h,018h,018h,018h,018h
                .db   0D8h,0D8h,0D8h,070h,000h,000h,000h,000h
fon16_ascii246  .db   000h,000h,000h,000h,018h,018h,000h,07Eh
                .db   000h,018h,018h,000h,000h,000h,000h,000h
fon16_ascii247  .db   000h,000h,000h,000h,000h,076h,0DCh,000h
                .db   076h,0DCh,000h,000h,000h,000h,000h,000h
fon16_ascii248  .db   000h,038h,06Ch,06Ch,038h,000h,000h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii249  .db   000h,000h,000h,000h,000h,000h,000h,018h
                .db   018h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii250  .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   018h,000h,000h,000h,000h,000h,000h,000h
fon16_ascii251  .db   000h,000h,000h,001h,003h,002h,006h,004h
                .db   0CCh,068h,038h,010h,000h,000h,000h,000h
fon16_ascii252  .db   000h,000h,000h,03Ch,042h,099h,0A5h,0A1h
                .db   0A5h,099h,042h,03Ch,000h,000h,000h,000h
fon16_ascii253  .db   000h,070h,0D8h,030h,060h,0C8h,0F8h,000h
                .db   000h,000h,000h,000h,000h,000h,000h,000h
fon14_ascii254  .db   0FFh,0FFh,081h,081h,0BDh,0BDh,0A5h,0A5h
                .db   0A5h,0A5h,0BDh,0BDh,081h,081h,0FFh,0FFh
fon16_ascii255  .db   000h,000h,000h,000h,000h,000h,000h,000h
                .db   000h,000h,042h,07Eh,000h,000h,000h,000h
      .end
