284 lines
10 KiB
Plaintext
284 lines
10 KiB
Plaintext
|
||
; LAST UPDATE: 28.04.2025 savelij
|
||
|
||
DSSF
|
||
; ”ãªæ¨¨ ¨¤¥â¨ä¨ª 樨 á¨á⥬ë
|
||
.VERSION EQU 0x00 ; (‚¥àá¨ï DSS)
|
||
|
||
; ”ãªæ¨¨ ¤«ï à ¡®âë á ¤¨áª®¬
|
||
.CHDISK EQU 0x01 ; (‘¬¥ ⥪ã饣® ¤¨áª )
|
||
.CURDISK EQU 0x02 ; (<28>®¬¥à ⥪ã饣® ¤¨áª )
|
||
.DSKINFO EQU 0x03 ; (ˆä®à¬ æ¨ï ® ¤¨áª¥)
|
||
.G_ENTRY EQU 0x04
|
||
.RESCANDRIVES EQU 0x08
|
||
.BOOTDSK EQU 0x09 ; (<28>®¬¥à á¨á⥬®£® ¤¨áª )
|
||
|
||
; ”ãªæ¨¨ ¤«ï à ¡®âë á ä ©« ¬¨
|
||
.CREATE EQU 0x0A ; (‘®§¤ ¨¥ ä ©« )
|
||
.CREAT_N EQU 0x0B ; (‘®§¤ ¨¥ ®¢®£® ä ©« )
|
||
.DELETE EQU 0x0E ; (“¤ «¥¨¥ ä ©« )
|
||
.RENAME EQU 0x10 ; (<28>¥à¥¨¬¥®¢ ¨¥ ä ©« )
|
||
.OPEN EQU 0x11 ; (Žâªàë⨥ ä ©« )
|
||
.CLOSE EQU 0x12 ; (‡ ªàë⨥ ä ©« )
|
||
.READ EQU 0x13 ; (—⥨¥ ¨§ ä ©« )
|
||
.WRITE EQU 0x14 ; (‡ ¯¨áì ¢ ä ©«)
|
||
.MOVE_FP EQU 0x15 ; (<28>¥à¥¬¥é¥¨¥ 㪠§ â¥«ï ¢ ä ©«¥)
|
||
.ATTRIB EQU 0x16 ; (<28>®«ã票¥/¨§¬¥¥¨¥ âਡãâ ä ©« )
|
||
.GET_D_T EQU 0x17 ; (ˆä®à¬ æ¨ï ® ¤ ⥠¨ ¢à¥¬¥¨ ä ©« )
|
||
.PUT_D_T EQU 0x18 ; (ˆ§¬¥¥¨¥ ¤ âë ¨ ¢à¥¬¥¨ ä ©« )
|
||
.F_FIRST EQU 0x19 ; (<28>®¨áª ¯¥à¢®£® ᮢ¯ ¤ î饣® ä ©« )
|
||
.F_NEXT EQU 0x1A ; (<28>®¨áª á«¥¤ãî饣® ᮢ¯ ¤ î饣® ä ©« )
|
||
.MKDIR EQU 0x1B ; (‘®§¤ ¨¥ ª â «®£ )
|
||
.RMDIR EQU 0x1C ; (“áâà ¥¨¥ ª â «®£ )
|
||
.CHDIR EQU 0x1D ; (‘¬¥ ⥪ã饣® ª â «®£ )
|
||
.CURDIR EQU 0x1E ; (ˆä®à¬ æ¨ï ® ⥪ã饬 ª â «®£¥)
|
||
|
||
; ”ãªæ¨¨ ¤«ï à ¡®âë á ¤ ⮩ ¨ ¢à¥¬¥¥¬
|
||
.GETTIME EQU 0x21 ; (’¥ªãé ï ¤ â ¨ ¢à¥¬ï)
|
||
.SETTIME EQU 0x22 ; (“áâ ®¢¨âì ⥪ãéãî ¤ âã ¨ ¢à¥¬ï)
|
||
|
||
; ”ãªæ¨¨ ã¯à ¢«¥¨ï ¯ ¬ïâìî
|
||
.SETWIN EQU 0x38 ; (<28>®¤ª«î票¥ áâà ¨æë ¯ ¬ïâ¨)
|
||
.SETWIN1 EQU 0x39 ; (<28>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢ ¯¥à¢®¥ ®ª®)
|
||
.SETWIN2 EQU 0x3A ; (<28>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢® ¢â®à®¥ ®ª®)
|
||
.SETWIN3 EQU 0x3B ; (<28>®¤ª«î票¥ áâà ¨æë ¯ ¬ï⨠¢ âà¥âì¥ ®ª®)
|
||
.INFOMEM EQU 0x3C ; (ˆä®à¬ æ¨ï ® ¯ ¬ïâ¨)
|
||
.GETMEM EQU 0x3D ; (‚뤥«¥¨¥ ¡«®ª ¯ ¬ïâ¨)
|
||
.FREEMEM EQU 0x3E ; (Žá¢®¡®¦¤¥¨¥ ¡«®ª ¯ ¬ïâ¨)
|
||
.SETMEM EQU 0x3F ; (ˆ§¬¥¥¨¥ ¡«®ª ¯ ¬ïâ¨)
|
||
|
||
; ”ãªæ¨¨ ¢¢®¤ á ª« ¢¨ âãàë
|
||
.WAITKEY EQU 0x30 ; (ަ¨¤ ¨¥ ᨬ¢®« á ª« ¢¨ âãàë)
|
||
.SCANKEY EQU 0x31 ; (ޝà®á ª« ¢¨ âãàë ¡¥§ ®¦¨¤ ¨ï)
|
||
.ECHOKEY EQU 0x32 ; (ަ¨¤ ¨¥ ᨬ¢®« á ª« ¢¨ âãàë á ¯¥ç âìî)
|
||
.CTRLKEY EQU 0x33 ; (<28>®«ãç¨âì á®áâ®ï¨¥ ª« ¢¨ âãàë)
|
||
.EDIT EQU 0x34
|
||
.K_CLEAR EQU 0x35 ; (Žç¨áâ¨âì ¡ãä¥à ª« ¢¨ âãàë ¨ ¢ë¯®«¨âì äãªæ¨î)
|
||
.K_SETUP EQU 0x36 ; (“¯à ¢«¥¨¥ áâனª ¬¨ ª« ¢¨ âãàë)
|
||
.TESTKEY EQU 0x37 ; (ޝà®á ¡ãä¥à ª« ¢¨ âãàë)
|
||
|
||
; ”ãªæ¨¨ ¤«ï ¨á¯®«¥¨ï ¯à®£à ¬¬
|
||
.EXEC EQU 0x40 ; (‚믮«¨âì ä ©«)
|
||
.EXIT EQU 0x41 ; (‡ ¢¥à襨¥ ¯à®£à ¬¬ë)
|
||
.GET_ERR EQU 0x42 ; (<28>®«ãç¨âì ª®¤ § ¢¥àè¥¨ï ¯à®£à ¬¬ë)
|
||
|
||
; ”ãªæ¨¨ ¤«ï à ¡®âë á® áâப ¬¨ ¨ ª®¬ ¤®© áâப®©
|
||
.GSWITCH EQU 0x43 ; (‚뤥«¨âì ¯ à ¬¥âà ª®¬ ¤®© áâப¨)
|
||
.DOSNAME EQU 0x44 ; (<28>८¡à §®¢ âì ¨¬ï ä ©« )
|
||
.EX_PATH EQU 0x45 ; (<28> §¡®à ª®¬ ¤®© áâப¨)
|
||
|
||
; ”ãªæ¨¨ ¤«ï à ¡®âë á ¯¥à¥¬¥ë¬¨
|
||
.ENVIRON EQU 0x46 ; (‘¨á⥬®¥ ®ªà㦥¨¥)
|
||
.APPINFO EQU 0x47 ; (<28>®«ã票¥ ¨ä®à¬ 樨 ¯à¨«®¦¥¨ï)
|
||
|
||
; ”ãªæ¨¨ à ¡®âë á íªà ®¬
|
||
.SETVMOD EQU 0x50 ; (‚ë¡®à ०¨¬ íªà )
|
||
.GETVMOD EQU 0x51 ; (<28>®«ãç¨âì ⥪ã騩 ०¨¬ íªà )
|
||
.LOCATE EQU 0x52 ; (“áâ ®¢¨âì ¯®§¨æ¨î ªãàá®à )
|
||
.CURSOR EQU 0x53 ; (<28>®«ãç¨âì ⥪ãéãî ¯®§¨æ¨î ªãàá®à )
|
||
.SELPAGE EQU 0x54 ; (‚ë¡à âì ªâ¨¢ãî áâà ¨æã íªà )
|
||
.SCROLL EQU 0x55 ; (<28>பàã⪠®ª )
|
||
.CLEAR EQU 0x56 ; (Žç¨á⪠®ª )
|
||
.RDCHAR EQU 0x57 ; (‘ç¨â âì ᨬ¢®« á íªà )
|
||
.WRCHAR EQU 0x58 ; (<28> ¯¥ç â âì ᨬ¢®« íªà ¥)
|
||
.WINCOPY EQU 0x59 ; (‡ ¯®¬¨âì ®ª® íªà )
|
||
.WINREST EQU 0x5A ; (‚®ááâ ®¢¨âì ®ª® íªà )
|
||
.PUTCHAR EQU 0x5B ; (<28> ¯¥ç â âì ᨬ¢®« ¢ ⥪ã饩 ¯®§¨æ¨¨ ªãàá®à )
|
||
.PCHARS EQU 0x5C ; (<28> ¯¥ç â âì áâபã ᨬ¢®«®¢ ¢ ⥪ã饩 ¯®§¨æ¨¨ ªãàá®à )
|
||
.LIB_SUB EQU 0x5D ; [ ] 11/02/2024 - ”ãªæ¨ï á ¯®¯®«ï¥¬ë¬¨ ¯®¤äãªæ¨ï¬¨)))
|
||
|
||
; ”ãªæ¨¨ ¤«ï ¯¥ç ⨠¯à¨â¥à¥
|
||
.PRINT EQU 0x5F ; (‚뢮¤ ᨬ¢®« ¯à¨â¥à ¡¥§ ®¦¨¤ ¨ï)
|
||
|
||
EX_PATH
|
||
.GET_ALL EQU 0x00 ; <20>®¤äãªæ¨ï 0 - <20> §®¡à âì áâபã
|
||
.GET_DRIVE EQU 0x01 ; <20>®¤äãªæ¨ï 1 - ‚뤥«¨âì ¨¬ï ¤¨áª
|
||
.GET_PATH EQU 0x02 ; <20>®¤äãªæ¨ï 2 - ‚뤥«¨âì ¤¨à¥ªâ®à¨î
|
||
.GET_NAME EQU 0x03 ; <20>®¤äãªæ¨ï 3 - ‚뤥«¨âì ¨¬ï ä ©«
|
||
.GET_TYPE EQU 0x04 ; <20>®¤äãªæ¨ï 4 - ‚뤥«¨âì à áè¨à¥¨¥ ä ©«
|
||
.GET_ALL_EX EQU 0x05 ; <20>®¤äãªæ¨ï 5 - ‚뤥«¨âì ¨¬ï ¤¨áª , ¯ãâì ª ä ©«ã, ¨¬ï ä ©« ¨ à áè¨à¥¨¥ ä ©«
|
||
.GSWITCH EQU 0x07 ; <20>®¤äãªæ¨ï 7 - ‚뤥«¨âì ¯ à ¬¥âà ª®¬ ¤®© áâப¨
|
||
.GETNAME EQU 0x08 ; <20>®¤äãªæ¨ï 8 - <20>८¡à §®¢ âì ¨§ 11 ᨬ¢®«ì®£® ä®à¬ â ¢ ä®à¬ â „Ž‘
|
||
.MASK EQU 0x09 ; <20>®¤äãªæ¨ï 9 - <20>८¡à §®¢ âì ¨§ ä®à¬ â „Ž‘ ¢ 11 ᨬ¢®«ìë© ä®à¬ â
|
||
|
||
SETVMOD
|
||
.SCREEN_0 EQU 0
|
||
.SCREEN_1 EQU 1
|
||
.TXT40X32 EQU 2 ; ⥪áâ®¢ë© 40x32x16 梥⮢
|
||
.TXT80X32 EQU 3 ; ⥪áâ®¢ë© 80x32x16 梥⮢
|
||
.GRF320X256 EQU 0x81 ; £à ä¨ç¥áª¨© 320x256x256 梥⮢
|
||
.GRF640X256 EQU 0x82 ; £à ä¨ç¥áª¨© 640x256x16 梥⮢
|
||
|
||
FILEMODE
|
||
.RW EQU 0
|
||
.R EQU 1
|
||
.W EQU 2
|
||
|
||
ENVIRON
|
||
.INIT EQU 0xFF
|
||
.READ EQU 0
|
||
.GET EQU 1
|
||
.SET EQU 2
|
||
|
||
EXPATH
|
||
.GET_ALL EQU 0x00 ; <20> §®¡à âì áâபã
|
||
.GET_DRIVE EQU 0x01 ; ‚뤥«¨âì ¨¬ï ¤¨áª
|
||
.GET_PATH EQU 0x02 ; ‚뤥«¨âì ¤¨à¥ªâ®à¨î
|
||
.GET_NAME EQU 0x03 ; ‚뤥«¨âì ¨¬ï ä ©«
|
||
.GET_TYPE EQU 0x04 ; ‚뤥«¨âì à áè¨à¥¨¥ ä ©«
|
||
.GET_ALL_EX EQU 0x05 ; ‚뤥«¨âì ¨¬ï ¤¨áª , ¯ãâì ª ä ©«ã, ¨¬ï ä ©« ¨ à áè¨à¥¨¥ ä ©«
|
||
.RESERVED EQU 0x06 ; ‡ १¥à¢¨à®¢ ®
|
||
.GSWITCH EQU 0x07 ; ‚뤥«¨âì ¯ à ¬¥âà ª®¬ ¤®© áâப¨
|
||
.GETNAME EQU 0x08 ; <20>८¡à §®¢ âì ¨§ 11 ᨬ¢®«ì®£® ä®à¬ â ¢ ä®à¬ â „Ž‘
|
||
.MASK EQU 0x09 ; <20>८¡à §®¢ âì ¨§ ä®à¬ â „Ž‘ ¢ 11 ᨬ¢®«ìë© ä®à¬ â
|
||
|
||
; ä ©«®¢ ï ᯥæ¨ä¨ª æ¨ï ¯®¨áª ¯¥à¢®£® ᮢ¯ ¤ î饣® ä ©« F_FIRST
|
||
FFIRST
|
||
_INIT_VAR
|
||
_SETVAR .MaskName, 8 ; ¬ ᪠¨¬¥¨ ¤«ï ¯®¨áª
|
||
_SETVAR .MaskExt, 3 ; ¬ ᪠à áè¨à¥¨ï ¤«ï ¯®¨áª
|
||
_SETVAR .MaskAttr, BYTE ; ¬ ᪠ââਡã⮢ ¤«ï ¯®¨áª
|
||
_SETVAR .NTRes, BYTE ; 1 § १¥à¢¨à®¢ ®
|
||
_SETVAR .CrtTimeTenth, BYTE ; 1 ¬¨««¨á¥ªã¤ë ¢à¥¬¥¨ á®§¤ ¨ï ä ©«
|
||
_SETVAR .CrtTime, WORD ; 2 ¢à¥¬ï á®§¤ ¨ï ä ©«
|
||
_SETVAR .CrtDate, WORD ; 2 ¤ â á®§¤ ¨ï ä ©«
|
||
_SETVAR .LstAccDate, WORD ; 2 ¤ â ¯®á«¥¤¥£® ®¡à é¥¨ï ª ä ©«ã
|
||
_SETVAR .FstClusHI, WORD ; 2 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||
_SETVAR .WrtTime, WORD ; 2 ¢à¥¬ï ¯®á«¥¤¥© § ¯¨á¨
|
||
_SETVAR .WrtDate, WORD ; 2 ¤ â ¯®á«¥¤¥© § ¯¨á¨
|
||
_SETVAR .FstClusLO, WORD ; 2 ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||
_SETVAR .FileSize, DWORD ; 4 à §¬¥à ä ©«
|
||
_SETVAR .Attr, BYTE ; ââਡãâë ©¤¥®£® ä ©«
|
||
_SETVAR .Name, 8 ; ¨¬ï ©¤¥®£® ä ©«
|
||
_SETVAR .Ext, 3 ; à áè¨à¥¨¥ ©¤¥®£® ä ©«
|
||
_SETVAR .SIZE, 0 ; à §¬¥à áâàãªâãàë
|
||
|
||
; áâ âãáë ª« ¢¨ âãàë
|
||
KEYBSTAT
|
||
; C - ०¨¬ ª« ¢¨ âãàë
|
||
_BITMASK RUSLAT, 7 ; RUS/LAT
|
||
_BITMASK NUMLOCK, 3 ; Num Lock
|
||
_BITMASK SCROLLLOCK, 2 ; Scroll Lock
|
||
_BITMASK INSERT, 1 ; Insert
|
||
_BITMASK CAPSLOCK, 0 ; Caps Lock
|
||
; B - á®áâ®ï¨¥ è¨ä⮢
|
||
_BITMASK LEFTSHIFT, 7 ; Left Shift
|
||
_BITMASK RIGHTSHIFT, 6 ; Right Shift
|
||
_BITMASK CTRL, 5 ; Ctrl
|
||
_BITMASK ALT, 4 ; Alt
|
||
_BITMASK LEFTCTTRL, 3 ; Left Ctrl
|
||
_BITMASK LEFTALT, 2 ; Left Alt
|
||
_BITMASK RIGHTCTRL, 1 ; Right Ctrl
|
||
_BITMASK RIGHTALT, 0 ; Right Alt
|
||
|
||
; à ᪫ ¤ª ª« ¢¨ âãàë
|
||
KEYBMAP
|
||
_INIT_VAR
|
||
_SETVAR .NORMAL ; Normal
|
||
_SETVAR .SHIFT ; Shift
|
||
_SETVAR .CAPSLOCK ; Caps Lock
|
||
_SETVAR .CAPSSHIFT ; Caps Lock + Shift
|
||
_SETVAR .NORMALALTK ; Normal ( «ìâ¥à ⨢ ï ª« ¢¨ âãà )
|
||
_SETVAR .SHIFTALTK ; Shift ( «ìâ¥à ⨢ ï ª« ¢¨ âãà )
|
||
_SETVAR .CAPSLOCKALTK ; Caps Lock ( «ìâ¥à ⨢ ï ª« ¢¨ âãà )
|
||
_SETVAR .CAPSHIFTALTK ; Caps Lock + Shift ( «ìâ¥à ⨢ ï ª« ¢¨ âãà )
|
||
|
||
; <20>ਫ®¦¥¨¥ <20>. ’ ¡«¨æ ¯®§¨æ¨®ëå ª®¤®¢
|
||
SC ; ¢®§¢à é ¥¬ë¥ ᪠ª®¤ë
|
||
_INIT_VAR
|
||
; key ASCII/SCAN
|
||
_SETVAR .APOSTROF ; ` #00 #00
|
||
_SETVAR .ESC ; Esc #1B #01
|
||
_SETVAR .1 ; 1 #31 #02
|
||
_SETVAR .2 ; 2 #32 #03
|
||
_SETVAR .3 ; 3 #33 #04
|
||
_SETVAR .4 ; 4 #34 #05
|
||
_SETVAR .5 ; 5 #35 #06
|
||
_SETVAR .6 ; 6 #36 #07
|
||
_SETVAR .7 ; 7 #37 #08
|
||
_SETVAR .8 ; 8 #38 #09
|
||
_SETVAR .9 ; 9 #39 #0A
|
||
_SETVAR .0 ; 0 #30 #0B
|
||
_SETVAR .MINUS ; - #2D #0C
|
||
_SETVAR .EQUAL ; = #3D #0D
|
||
_SETVAR .BKSP ; BackSpace #08 #0E
|
||
_SETVAR .TAB ; Tab #09 #0F
|
||
_SETVAR .Q ; Q #51 #10
|
||
_SETVAR .W ; W #57 #11
|
||
_SETVAR .E ; E #45 #12
|
||
_SETVAR .R ; R #52 #13
|
||
_SETVAR .T ; T #54 #14
|
||
_SETVAR .Y ; Y #59 #15
|
||
_SETVAR .U ; U #55 #16
|
||
_SETVAR .I ; I #49 #17
|
||
_SETVAR .O ; O #4F #18
|
||
_SETVAR .P ; P #50 #19
|
||
_SETVAR .QSKOBKAL ; [ #5B #1A
|
||
_SETVAR .QSKOBKAR ; ] #5D #1B
|
||
_SETVAR .CAPSLOCK ; CapsLock #00 #1C
|
||
_SETVAR .A ; A #41 #1D
|
||
_SETVAR .S ; S #53 #1E
|
||
_SETVAR .D ; D #44 #1F
|
||
_SETVAR .F ; F #46 #20
|
||
_SETVAR .G ; G #47 #21
|
||
_SETVAR .H ; H #48 #22
|
||
_SETVAR .J ; J #4A #23
|
||
_SETVAR .K ; K #4B #24
|
||
_SETVAR .L ; L #4C #25
|
||
_SETVAR .DOTZAP ; ; #3B #26
|
||
_SETVAR .KAVYCH ; ' #27 #27
|
||
_SETVAR .ENTER ; Enter #0D #28
|
||
_SETVAR .LSHIFT ; LShift --- #29
|
||
_SETVAR .Z ; Z #5A #2A
|
||
_SETVAR .X ; X #58 #2B
|
||
_SETVAR .C ; C #43 #2C
|
||
; key ASCII/SCAN
|
||
_SETVAR .V ; V #56 #2D
|
||
_SETVAR .B ; B #42 #2E
|
||
_SETVAR .N ; N #4E #2F
|
||
_SETVAR .M ; M #4D #30
|
||
_SETVAR .ZAP ; , #2C #31
|
||
_SETVAR .DOT ; . #2E #32
|
||
_SETVAR .DIV ; / #2F #33
|
||
_SETVAR .RSHIFT ; RShift --- #34
|
||
_SETVAR .BSLASH ; #5C #35
|
||
_SETVAR .LCTRL ; LCtrl --- #36
|
||
_SETVAR .LALT ; LAlt --- #37
|
||
_SETVAR .SPACE ; Space #20 #38
|
||
_SETVAR .RALT ; RAlt --- #39
|
||
_SETVAR .RCTRL ; RCtrl --- #3A
|
||
_SETVAR .F1 ; F1 #00 #3B
|
||
_SETVAR .F2 ; F2 #00 #3C
|
||
_SETVAR .F3 ; F3 #00 #3D
|
||
_SETVAR .F4 ; F4 #00 #3E
|
||
_SETVAR .F5 ; F5 #00 #3F
|
||
_SETVAR .F6 ; F6 #00 #40
|
||
_SETVAR .F7 ; F7 #00 #41
|
||
_SETVAR .F8 ; F8 #00 #42
|
||
_SETVAR .F9 ; F9 #00 #43
|
||
_SETVAR .F10 ; F10 #00 #44
|
||
_SETVAR .F11 ; F11 #00 #45
|
||
_SETVAR .F12 ; F12 #00 #46
|
||
_SETVAR .PRTSCRN ; PrScrn --- #47
|
||
_SETVAR .SCRLLOCK ; ScrlLock #00 #48
|
||
_SETVAR .NUMLOCK ; NumLock #00 #49
|
||
_SETVAR .XDIV ; / #2F #4A
|
||
_SETVAR .XMUL ; * #2A #4B
|
||
_SETVAR .XMINUS ; - #2D #4C
|
||
_SETVAR .XDOTZAP ; + #2B #4D
|
||
_SETVAR .XENTER ; enter #0D #4E
|
||
_SETVAR .XDEL ; Del . #00 #4F
|
||
_SETVAR .X0 ; Ins 0 #00 #50
|
||
_SETVAR .X1 ; End 1 #00 #51
|
||
_SETVAR .X2 ; Down 2 #00 #52
|
||
_SETVAR .X3 ; PgDw 3 #00 #53
|
||
_SETVAR .X4 ; Left 4 #00 #54
|
||
_SETVAR .X5 ; 5 #00 #55
|
||
_SETVAR .X6 ; Right 6 #00 #56
|
||
_SETVAR .X7 ; Home 7 #00 #57
|
||
_SETVAR .X8 ; Up 8 #00 #58
|
||
_SETVAR .X9 ; PgUp 9 #00 #59
|
||
_INIT_VAR 0x80
|
||
_SETVAR .RUS
|
||
|