====== NEC PC-9801 - INT 18h ====== ===== AH = 00h - Get Keystroke ===== **Input:** * AH = 00h **Output:** * AX = keystroke The keystroke is removed from the input buffer. TODO: Blocks until a keystroke is received? ===== AH = 01h - Check Keystroke ===== **Input:** * AH = 01h **Output:** * AX = keystroke * BH = 1 if keystroke in buffer, else 0. The keystroke is NOT removed from the input buffer. ===== AH = 02h - Get Shift Status ===== **Input:** * AH = 02h **Output:** * AL = shift flags: * bit 0 - SHIFT (pressed) * bit 1 - CAPS (held) * bit 2 - KANA (held) * bit 3 - GRPH (pressed) * bit 4 - CTRL (pressed) ===== AH = 03h - Initialize Keyboard Interface ===== TODO ===== AH = 04h - Access Keystroke Bitmap ===== **Input:** * AH = 04h * AL = byte of keystroke bitmap (bits 0-3) **Output** * AH = keystroke bitmap value (byte at ''52Ah + (AL & 0x0F)'') TODO ===== AH = 05h - Get and Check Keystroke ===== **Input:** * AH = 00h **Output:** * AX = keystroke * BH = 1 if keystroke in buffer, 0 otherwise. The keystroke is removed from the input buffer. Non-blocking. Seems to be a combination of AH = 01h and AH = 00h. ===== AH = 0Ah - Set GDC Display Mode ==== TODO ===== AH = 0Bh - Get GDC Display Mode ==== TODO ===== AH = 0Ch - Enable GDC Text Layer ==== TODO ===== AH = 0Dh - Disable GDC Text Layer ==== TODO ===== AH = 0Eh - Set GDC Text Display Area ==== **Input:** * AH = 0Eh * DX = offset TODO ===== AH = 11h - Show Cursor ==== **Input:** * AH = 11h ===== AH = 12h - Hide Cursor ==== **Input:** * AH = 12h ===== AH = 13h - Set Cursor Position ==== **Input:** * AH = 13h * DX = offset TODO ===== AH = 14h - Read Custom Glyph ===== Input: * AH = 14h * BX:CX = glyph data destination (34 bytes, 16x16) * DX = glyph code TODO ===== AH = 16h - Fill Text Display ===== **Input:** * AH = 16h * DH = attribute * DL = character ===== AH = 17h ===== TODO ===== AH = 18h ===== TODO ===== AH = 1Ah - Write Custom Glyph ===== Input: * AH = 1Ah * BX:CX = glyph data (34 bytes, 16x16) * DX = glyph code (must be 0x76xx or 0x77xx, count of custom glyphs limited) TODO ===== AH = 31h ===== TODO ===== AH = 40h - Enable Graphics Layer ===== Input: * AH = 40h TODO ===== AH = 41h - Disable Graphics Layer ===== Input: * AH = 41h TODO ===== AH = 42h - Configure Graphics Mode ===== TODO ===== AH = 43h ===== TODO ===== AH = 4Dh ===== TODO