mirror of
https://github.com/Tolik-Trek/FORMAT.git
synced 2026-06-15 09:21:40 +03:00
237 lines
8.4 KiB
NASM
Executable File
237 lines
8.4 KiB
NASM
Executable File
;------------------------------
|
||
;Estex DOS system api codes
|
||
;!!!‚ᥠ®¬¥à äãªæ¨ï ¯¥à¥¤ îâáï ç¥à¥§ ॣ¨áâà C!!!
|
||
;!!!…᫨ ®¬¥à äãªæ¨¨ ¯¥à¥¤ ñâáï ¨ ç¥, ®¡ í⮬ ¡ã¤¥â á®®¡é¥® ¢ ®¯¨á ¨¨!!!
|
||
;------------------------------
|
||
|
||
ESTEX_getver = 0x00 ;¯®«ãç¨âì ¢¥àá¨î ¤®á
|
||
|
||
ESTEX_chdisk = 0x01 ;ᬥ ⥪ã饣® ¤¨áª
|
||
ESTEX_curdisk = 0x02 ;¯®«ãç¨âì ⥪ã騩 ¤¨áª
|
||
ESTEX_diskinfo = 0x03 ;¨ä ® ¤¨áª¥
|
||
ESTEX_DEVRESCAN = 0x08 ;¯¥à¥áª ¨à®¢ âì ¢á¥ ¤¥¢ ©áë (¤¨áª¨).
|
||
ESTEX_bootdisk = 0x09 ;¯®«ãç¨âì ¨«¨ ãáâ ®¢¨âì á¨áâ¥¬ë© ¤¨áª
|
||
|
||
ESTEX_fcreate = 0x0a ;á®§¤ âì ä ©« (á ®¡ã«¥¨¥¬ áâ ண®)
|
||
ESTEX_fcreate_new = 0x0b ;á®§¤ âì ä ©« (á ®è¨¡ª®© ¥á«¨ áâ àë© ä ©« ¥áâì)
|
||
ESTEX_fdelete = 0x0e ;㤠«¨âì ä ©«
|
||
ESTEX_frename = 0x10 ;¯¥à¥¨¬¥®¢ âì ä ©«
|
||
ESTEX_fopen = 0x11 ;®âªàëâì ä ©«
|
||
ESTEX_fclose = 0x12 ;§ ªàëâì ä ©«
|
||
ESTEX_fread = 0x13 ;¯à®ç¨â âì ¤ ë¥ ¨§ ä ©«
|
||
ESTEX_fwrite = 0x14 ;§ ¯¨á âì ¢ ä ©«
|
||
EXTEX_fmovefp = 0x15 ;¯¥à¥¬¥áâ¨âì 㪠§ â¥«ì ¢ ä ©«¥
|
||
ESTEX_fattribute = 0x16 ;¯®«ãç¨âì ¨/¨«¨ ¨§¬¥¨âì âਡãâë
|
||
ESTEX_fget_dt = 0x17 ;¯®«ãç¨âì ¤ âã ä ©«
|
||
ESTEX_fset_dt = 0x18 ;ãáâ ®¢¨âì ¤ âã ä ©«
|
||
ESTEX_find_first = 0x19 ;¯®¨áª ¯¥à¢®£®...
|
||
ESTEX_find_next = 0x1a ;¯®¨áª á«¥¤ãî饣®
|
||
|
||
ESTEX_mkdir = 0x1b ;á®§¤ âì ª â «®£
|
||
ESTEX_rmdir = 0x1c ;㤠«¨âì ª â «®£
|
||
ESTEX_chdir = 0x1d ;ᬥ¨âì ª â «®£
|
||
ESTEX_curdir = 0x1e ;¯®«ãç¨âì ⥪ã騩 ª â «®£
|
||
|
||
ESTEX_systime_get = 0x21 ;¯®«ãç¨âì á¨á⥬®¥ ¢à¥¬ï
|
||
ESTEX_systime_set = 0x22 ;ãáâ ®¢¨âì á¨á⥬®¥ ¢à¥¬ï
|
||
|
||
ESTEX_setmemwin = 0x38 ;<3B>®¤ª«î票¥ áâà ¨æë ¯ ¬ïâ¨
|
||
ESTEX_setmemwin1 = 0x39 ;<3B>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢ 1 ®ª®
|
||
ESTEX_setmemwin2 = 0x3a ;<3B>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢ 2 ®ª®
|
||
ESTEX_setmemwin3 = 0x3b ;<3B>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢ 3 ®ª®
|
||
ESTEX_getmeminfo = 0x3c ;<3B>®«ãç¨âì ¨ä®à¬ æ¨î ® ¯ ¬ïâ¨
|
||
ESTEX_getmem = 0x3d ;‡ ¯à®á¨âì (¯®«ãç¨âì) ¡«®ª ¯ ¬ïâ¨
|
||
ESTEX_freemem = 0x3e ;Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ïâ¨
|
||
ESTEX_setmem = 0x3a ;ˆ§¬¥¨âì ¡«®ª ¯ ¬ïâ¨
|
||
|
||
ESTEX_waitkey = 0x30 ;ަ¨¤ ¨¥ ᨬ¢®« á ª« ¢¨ âãàë
|
||
ESTEX_scankey = 0x31 ;ޝà®á ª« ¢¨ âãàë ¡¥§ ®¦¨¤ ¨ï
|
||
ESTEX_echokey = 0x32 ;ަ¨¤ ¨¥ ᨬ¢®« á ª« ¢¨ âãàë á ¯¥ç âìî
|
||
ESTEX_keystat = 0x33 ;<3B>®«ãç¨âì á®áâ®ï¨¥ ª« ¢¨ âãàë
|
||
ESTEX_clearkey = 0x35 ;Žç¨áâ¨âì ¡ãä¥à ª« ¢¨ âãàë ¨ ¢ë¯®«¨âì äãªæ¨î
|
||
ESTEX_keyset = 0x36 ;“¯à ¢«¥¨¥ áâனª ¬¨ ª« ¢¨ âãàë
|
||
ESTEX_testkey = 0x37 ;ޝà®á ¡ãä¥à ª« ¢¨ âãàë
|
||
|
||
ESTEX_exec = 0x40 ;‚믮«¨âì ä ©«
|
||
ESTEX_exit = 0x41 ;‡ ¢¥à襨¥ ¯à®£à ¬¬ë
|
||
ESTEX_wait = 0x42 ;<3B>®«ãç¨âì ª®¤ § ¢¥àè¥¨ï ¯à®£à ¬¬ë
|
||
|
||
ESTEX_cmd_getswitch = 0x43 ;‚뤥«¨âì ¯ à ¬¥âà ª®¬ ¤®© áâப¨
|
||
ESTEX_cmd_dosname = 0x44 ;<3B>८¡à §®¢ âì ¨¬ï ä ©«
|
||
ESTEX_cmd_parse = 0x45 ;<3B> §¡®à ª®¬ ¤®© áâப¨
|
||
|
||
ESTEX_env = 0x46 ;‘¨á⥬®¥ ®ªà㦥¨¥
|
||
|
||
ESTEX_appinfo = 0x47 ;<3B>®«ã票¥ ¨ä®à¬ 樨 ¯à¨«®¦¥¨ï
|
||
|
||
ESTEX_setvmode = 0x50 ;‚ë¡®à ०¨¬ íªà
|
||
ESTEX_getvmode = 0x51 ;<3B>®«ãç¨âì ⥪ã騩 ०¨¬ íªà
|
||
ESTEX_setcursor = 0x52 ;“áâ ®¢¨âì ¯®§¨æ¨î ªãàá®à
|
||
ESTEX_getcursor = 0x53 ;<3B>®«ãç¨âì ⥪ãéãî ¯®§¨æ¨î ªãàá®à
|
||
ESTEX_setscr = 0x54 ;‚ë¡à âì ªâ¨¢ãî áâà ¨æã íªà
|
||
ESTEX_scrollscr = 0x55 ;<3B>பàã⪠®ª
|
||
ESTEX_clearscr = 0x56 ;Žç¨á⪠®ª
|
||
ESTEX_rdchar = 0x57 ;‘ç¨â âì ᨬ¢®« á íªà
|
||
ESTEX_wrchar = 0x58 ;<3B> ¯¥ç â âì ᨬ¢®« íªà ¥
|
||
ESTEX_scrwincopy = 0x59 ;‡ ¯®¬¨âì ®ª® íªà
|
||
ESTEX_scrwinrest = 0x5a ;‚®ááâ ®¢¨âì ®ª® íªà
|
||
ESTEX_pchar = 0x5b ;<3B> ¯¥ç â âì ᨬ¢®« ¢ ⥪ã饩 ¯®§¨æ¨¨ ªãàá®à
|
||
ESTEX_pchars = 0x5c ;<3B> ¯¥ç â âì áâபã ᨬ¢®«®¢ ¢ ⥪ã饩 ¯®§¨æ¨¨ ªãàá®à
|
||
|
||
;-------------------------------------------
|
||
_ENVIRONMENT:
|
||
._GET_SYS = 0 ;¯®«ãç¨âì á¨á⥬®¥ ®ªà㦥¨¥
|
||
._GET_VAL = 1 ;¯®«ãç¨âì ¯ à ¬¥âàë 㪠§ ®© ¯¥à¥¬¥®©
|
||
._SET_ENV = 2 ;ãáâ ®¢¨âì ¯¥à¥¬¥ãî
|
||
|
||
;-------------------------------------------
|
||
_CMD_PARSE:
|
||
._PARSE_CMD = 0 ;<3B> §®¡à âì áâபã
|
||
._GET_DSK = 1 ;‚뤥«¨âì ¨¬ï ¤¨áª
|
||
._GET_DIR = 2 ;‚뤥«¨âì ¤¨à¥ªâ®à¨î
|
||
._GET_FILENAME = 3 ;‚뤥«¨âì ¨¬ï ä ©«
|
||
._GET_FILE_EXT = 4 ;‚뤥«¨âì à áè¨à¥¨¥ ä ©«
|
||
._GET_FULL_FILEPATH = 5 ;‚뤥«¨âì ¨¬ï ¤¨áª , ¯ãâì ª ä ©«ã, ¨¬ï ä ©« ¨ à áè¨à¥¨¥ ä ©«
|
||
._NOFUNC = 6 ;‡ १¥à¢¨à®¢
|
||
._SELECT_ARG = 7 ;‚뤥«¨âì ¯ à ¬¥âà ª®¬ ¤®© áâப¨
|
||
._CONV_TO_DOS = 8 ;<3B>८¡à §®¢ âì ¨§ 11 ᨬ¢®«ì®£® ä®à¬ â ¢ ä®à¬ â „Ž‘
|
||
._CONF_FROM_DOS = 9 ;<3B>८¡à §®¢ âì ¨§ ä®à¬ â „Ž‘ ¢ 11 ᨬ¢®«ìë© ä®à¬ â
|
||
|
||
;--------------------------------------------
|
||
_FOPEN:
|
||
._IORW = 0 ;®âªàëâì ¤«ï çâ¥¨ï ¨ § ¯¨á¨
|
||
._IOREAD = 1 ;®âªàëâì ⮫쪮 ¤«ï ç⥨ï
|
||
._IOWRITE = 2 ;®âªàëâì ¤«ï § ¯¨á¨
|
||
|
||
;--------------------------------------------
|
||
_MOVEFP:
|
||
._SEEK_SET = 0 ;®â ç « ä ©«
|
||
._SEEK_CUR = 1 ;®â ⥪ã饣® § 票ï 㪠§ ⥫ï
|
||
._SEEK_END = 2 ;®â ª®æ ä ©«
|
||
|
||
_VMODE:
|
||
._T40 = 0x02 ;⥪áâ®¢ë© à¥¦¨¬ 40 ᨬ¢®«®¢
|
||
._T80 = 0x03 ;⥪â®á¢ë© ०¨¬ 80 ᨬ¢®«®
|
||
._320p = 0x81 ;£à ä¨ç¥áª¨© ०¨¬ 320*256*8¡¨â
|
||
._640p = 0x81 ;£à ä¨ç¥áª¨© ०¨¬ 640*256*4¡¨â
|
||
._SCREEN0 = 0x0 ;áâà ¨æ ०¨¬ 0
|
||
._SCREEN1 = 0x01 ;áâà ¨æ ०¨¬ 1
|
||
|
||
._normal = 0x50 ;०¨¬ ¢ë¢®¤ - ®¡ëçë© (¢á¥ ¤ ë¥ ¢ RAM ¨ VRAM)
|
||
._transparent = 00001000b ;०¨¬ ¢ë¢®¤ á ¯à®§à çë¬ æ¢¥â®¬ (0xff ¨£®à¨àã¥âáï)
|
||
._spr = 00000100b ;०¨¬ á¯à ©â (¤ ë¥ ¯®¯ ¤ îâ ⮫쪮 ¢ VRAM)
|
||
|
||
;--------------------------------------------
|
||
mmu0 = 0x82 ;cpu window 0 = addr 0x0000
|
||
mmu1 = 0xa2 ;... 1 = 0x4000
|
||
mmu2 = 0xc2 ;... 2 = 0x8000
|
||
mmu3 = 0xe2 ;... 3 = 0xc000
|
||
|
||
port_y = 0x89 ;port for Y coord
|
||
rgmod = 0xc9 ;¯¥à¥ª«îç ¥â áâà ¨æë ०¨¬
|
||
border = 0xfe ;¡®à¤îà
|
||
rgscr = 0xe9
|
||
rgacc = 0xa9
|
||
|
||
;sys_port3c equ 3ch
|
||
;sys_port7c equ 7ch
|
||
sys_port_on = 0x7c
|
||
sys_port_off = 0x3c
|
||
|
||
d_tbon = 3 ; ¤ ë¥ ¤«ï ¢ª«î票ï turbo
|
||
d_tboff = 2 ; ¤ ë¥ ¤«ï ¢ëª«î票ï turbo
|
||
d_rom16on = 1
|
||
d_rom16off = 0
|
||
|
||
cnf_page = 0x40 ;§ ¯à¥â § ¯¨áì áî¤ !!!
|
||
|
||
;com port
|
||
CTC_CHAN0 = 0x10
|
||
CTC:
|
||
._CHAN0 = 0x10
|
||
._CHAN1 = 0x11
|
||
._CHAN2 = 0x12
|
||
._CHAN3 = 0x13
|
||
|
||
|
||
SIO:
|
||
.DATA_REG_A = 0x18
|
||
.CONTROL_A = 0x19
|
||
.DATA_REG_B = 0x1a
|
||
.CONTROL_B = 0x1b
|
||
|
||
;lpt port
|
||
PIO:
|
||
.DATA_REG_A = 0x1c
|
||
.COMMAND_REG_A = 0x1d
|
||
.DATA_REG_B = 0x1e
|
||
.COMMAND_REG_B = 0x1f
|
||
|
||
;ISA-8
|
||
;-------------------------------------------------------------------------------
|
||
;If you want to interaction with ISA devices, you have to make following steps:
|
||
;1) send 10h value to port 1FFDh(system port);
|
||
;2) send control byte to port 0E2h(third memory window port);
|
||
;control byte:
|
||
;D7...should be 1
|
||
;D6...should be 1
|
||
;D5...should be 0
|
||
;D4...should be 1
|
||
;D3...should be 0
|
||
;D2...specify access mode (0 - ISA memory, 1 - ISA ports)
|
||
;D1...specify number of ISA slot
|
||
;D0...should be 0
|
||
;fixed bug with D2 and D1 bits (functional exchange, but not documented).
|
||
|
||
;The read/write signals are forming from read/write signals memory range 0C000h-0FFFFh.
|
||
;And the address lines A13...A0 has taken from processor data-BUS.
|
||
;The other ISA-signals such as RESET, AEN, A19...A14 can be set in port 9FBDh. And default value is 00h.
|
||
;port 9FBDh:
|
||
;D7...RESET, 1=reset, 0=normal
|
||
;D6...AEN, 1=
|
||
;D5...A19
|
||
;D4...A18
|
||
;D3...A17
|
||
;D2...A16
|
||
;D1...A15
|
||
;D0...A14
|
||
sc_port = 0x1ffd
|
||
ISA:
|
||
.DIR = 0x9fbd
|
||
.BASE_ADDR = 0xc000
|
||
.SLOT0_RAM = 0xd0
|
||
.SLOT1_RAM = 0xd2
|
||
.SLOT0_PORT = 0xd4
|
||
.SLOT1_PORT = 0xd6
|
||
|
||
;VMODE:
|
||
;._normal = 0x50 ;०¨¬ ¢ë¢®¤ - ®¡ëçë© (¢á¥ ¤ ë¥ ¢ RAM ¨ VRAM)
|
||
;._transparent = 00001000b ;०¨¬ ¢ë¢®¤ á ¯à®§à çë¬ æ¢¥â®¬ (0xff ¨£®à¨àã¥âáï)
|
||
;._spr = 00000100b ;०¨¬ á¯à ©â (¤ ë¥ ¯®¯ ¤ îâ ⮫쪮 ¢ VRAM)
|
||
|
||
cr = 0x0d ;¢®§¢à â ª®à¥âª¨
|
||
lf = 0x0a ;®¢ ï áâப
|
||
space = 0x20 ;ᨬ¢®« ¯à®¡¥«
|
||
tab = 0x09 ;ᨬ¢®« â ¡ã«ï樨
|
||
|
||
|
||
|
||
;--------------------------------------------
|
||
;BIOS
|
||
BIOS_reset_drive = 0x51 ; ‘¡à®á ª®â஫«¥à ¨ áâனª ¤¨áª
|
||
BIOS_rd_sector = 0x55 ; —⥨¥ (ᥪâ®à®¢) á ãáâனá⢠.
|
||
BIOS_wr_sector = 0x56 ; ‡ ¯¨áì (ᥪâ®à®¢) ãáâனá⢮.
|
||
BIOS_get_drv_list = 0x5f ; ¯®«ãç¨âì ᯨ᮪ ¤¨áª®¢ëå ãáâனáâ¢
|
||
BIOS_get_cursor_coords = 0x8e ; <20>®«ãç¨âì ⥪ã饥 ¯®«®¦¥¨¥ (ªãàá®à ) ¢ë¢®¤ íªà .
|
||
BIOS_get_mem_pg = 0xc4 ; ¯®«ãç¨âì 䨧. ®¬¥à áâà. ¡«®ª
|
||
BIOS_get_pg_tbl = 0xc5 ; get pages table from handle (id_blk)
|
||
BIOS_clear_scr = 0x8d ; ®ç¨á⪠íªà , 㪠§ ¨¥¬ ᨬ¢®« § ¯®«¥¨ï
|
||
BIOS_get_cursor = 0x8e ; ã§ âì ¯®«®¦. ªãàá®à
|
||
BIOS_set_cursor = 0x84 ; ãáâ. ¯®«®¦. ªãàá®à
|
||
BIOS_print_chars = 0x82 ; ¢ë¢®¤ ᨬ¢®«®¢ íªà á ⥪ã饣® § ª®¬¥áâ ¡¥§ âਡã⮢
|
||
BIOS_screen_save = 0xb2 ; á®åà ¨âì íªà ...
|
||
BIOS_screen_restore = 0xb3 ; ¢®ááâ ®¢¨âì íªà ...
|
||
BIOS_screen_get_char = 0xb4 ; ¯à®ç¨â âì (¢§ïâì) ᨬ¢®« á íªà
|
||
BIOS_screen_set_char = 0xb5 ; ãáâ ®¢¨âì ᨬ¢®« íªà ¥
|
||
BIOS_screen_move = 0xb7 ; ¯¥à¥¬¥é¥¨¥ ®ª (íªà )
|