; =================================================== ; Orion-128 computer ; System I/O ports ; ; Disassembled by Romychs @ 2026-10-08 ; =================================================== ; System port mapped to RAM address. ; Matrix keyboard rows 0..7 PORT_F400_KBD EQU 0xf400 ; System port mapped to RAM address. ; Matrix keyboard columns 0..7 PORT_F401_KBD EQU 0xf401 ; System port mapped to RAM address. ; bit 0 - Tape Output ; bit 2 - Output "RUS/LAT" LED indicator ; bit 3 - Output "TapeIn" LED indicator ; bit 4 - Tape Input ; bit 5 - Input "Ctrl" keyboard key ; bit 6 - Input "Shift" keyboard key ; bit 7 - Input "RUS/LAT" keyboard key PORT_F402_KBD EQU 0xf402 ; System port mapped to RAM address. PORT_F500_USR1 EQU 0xf500 ; System port mapped to RAM address. ; Used to output LPT Data PORT_F600_USR2 EQU 0xf600 ; System port mapped to RAM address. PORT_F601_USR2 EQU 0xf601 ; System port mapped to RAM address. ; LPT Control port: ; bit 3 - input BUSY sygnal ; bit 7 - output #STROBE sygnal PORT_F602_USR2 EQU 0xf602 ; System port mapped to RAM address. PORT_F603_USR2 EQU 0xf603 ; System port mapped to RAM address. ; VG93 State/Command FDC_F700_STATE EQU 0xf700 ; System port mapped to RAM address. ; VG93 Track number FDC_F701_TRACK EQU 0xf701 ; System port mapped to RAM address. ; VG93 Sector number FDC_F702_SECTOR EQU 0xf702 ; System port mapped to RAM address. ; VG93 read/write data from floppy FDC_F703_DATA EQU 0xf703 ; System port mapped to RAM address. FDC_F704_REQ EQU 0xf704 ; System port mapped to RAM address. ; Select floppy disk side FDC_F708_SIDE EQU 0xf708 ; -------------------------------------------------- ; Write only system port mapped to RAM address. ; Set video mode. ; bit 0 - palette 0-1, 1-2; ; bit 1 - color count 0 - 16 colors, 1 - 4 colors; ; bit 2 - 0-mono, 1-color; ; -------------------------------------------------- PORT_SYS1 EQU 0xF8 ; Write only system port mapped to RAM address. ; Set active RAM page ; bits D[3:0] - page number PORT_SYS2 EQU 0xf900 ; Write only system port mapped to RAM address. ; Switch Screen ; bits D[1:0] - screen number; ; bit D6 - RAM Refresh; ; bit D7 - 12k/16k (384px/512px screen width) PORT_SYS3 EQU 0xfa00 ; Write only system port mapped to RAM address. PORT_SYS4 EQU 0xfb00 ; =================================================== ; I/O Ports ; =================================================== ; Set active RAM page ; bits D[3:0] - page number P_SW_MEM EQU 0xf9 ; Switch screen RAM window ; D1 D0 ; 0 0 — screen 1 (0xС000—0xEFFF) ; 0 1 — screen 2 (0x8000—0xAFFF) ; 1 0 — screen 3 (0x4000—0x6FFF) ; 1 1 — screen 4 (0x0000—0x2FFF) P_SW_SCR EQU 0xfa