; ; MACRO BUFFER_KEYINTER ; _mInfoALIGN 256,0 ; ;KEYBOARD BUFFER ; SBUF: BLOCK 64,0 ; HEAD DB #00 ; HOST DB #00 ; K_LOCK EQU $-KEYFLAG ; LANG_L EQU 7 ; PAUSE_L EQU 6 ; RES5_L EQU 5 ; RES4_L EQU 4 ; NUM_L EQU 3 ; SCRL_L EQU 2 ; INS_L EQU 1 ; CAPS_L EQU 0 ; KEYFLAG DB #02 ;D0-Key Pressed ; K_SHIFT EQU $-KEYFLAG ; L_SHIFT EQU 7 ; R_SHIFT EQU 6 ; X_CTRL EQU 5 ; X_ALT EQU 4 ; L_CTRL EQU 3 ; L_ALT EQU 2 ; R_CTRL EQU 1 ; R_ALT EQU 0 ; KEYCTRL DB #00 ; KEYFLG EQU $-KEYFLAG ; FLAG_E0 EQU 7 ; FLAG_F0 EQU 6 ; FLAG_E1 EQU 5 ; FLAG_04 EQU 4 ; FLAG_03 EQU 3 ; FLAG_02 EQU 2 ; FLAG_01 EQU 1 ; FLAG_00 EQU 0 ; DB #00 ; SOUND_K EQU $-KEYFLAG ; FLAG_S7 EQU 7 ; FLAG_S6 EQU 6 ; FLAG_S5 EQU 5 ; FLAG_S4 EQU 4 ; FLAG_S3 EQU 3 ; FLAG_S2 EQU 2 ; SF_ALT EQU 1 ; SF_BUFF EQU 0 ; DB #03 ; ; ; ; D15 - LShift ; ; D14 - RShift ; ; D13 - CTRL ; ; D12 - ALT ; ; D11 - LCTRL ; ; D10 - LALT ; ; D9 - RCTRL ; ; D8 - RALT ; ; D7 - Language Lock ; ; D6 - Reserved ; ; D5 - Reserved ; ; D4 - Reserved ; ; D3 - Num Lock ; ; D2 - Scroll Lock ; ; D1 - Insert Lock ; ; D0 - Caps Lock ; ; ; ; D15 - Keystroke ; ; D14 ; ; D13 \ ; ; D12 \ ; ; D11 -- Position code (0...5Ah) ; ; D10 / ; ; D9 / ; ; D8 ; ; D7..D0 - ASCII code ; ; ; ENDM ; ; ; MACRO TABLE_XLAT_T ; _mInfoALIGN 256,0 ; ; 0 1 2 3 4 5 6 7 8 9 A B C D E F ; XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00 ; DB #00,#37,#29,#00,#36,#10,#02,#00,#00,#00,#2A,#1E,#1D,#11,#03,#00 ;10 ; DB #00,#2C,#2B,#1F,#12,#05,#04,#00,#00,#38,#2D,#20,#14,#13,#06,#00 ;20 ; DB #00,#2F,#2E,#22,#21,#15,#07,#00,#00,#00,#30,#23,#16,#08,#09,#00 ;30 ; DB #00,#31,#24,#17,#18,#0B,#0A,#00,#00,#32,#33,#25,#26,#19,#0C,#00 ;40 ; DB #00,#00,#27,#00,#1A,#0D,#00,#00,#1C,#34,#28,#1B,#00,#35,#00,#00 ;50 ; DB #00,#00,#00,#00,#00,#00,#0E,#00,#00,#51,#00,#54,#57,#00,#00,#00 ;60 ; DB #50,#4F,#52,#55,#56,#58,#01,#49,#45,#4D,#53,#4C,#4B,#59,#48,#00 ;70 ; DB #00,#00,#00,#41,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 ;80 ; ENDM ; ; ; ВХОД: L - логический номер в таблице ; ВЫХОД: IY - начало записи ; ПОРТИТ: HL, DE, IY. MACRO LOGDRV_ENTRY_FIND tbl_addr LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL EX DE,HL LD IY,tbl_addr ADD IY,DE ENDM ; ; MACRO _CALC_DEVICE_ENTRY tbl_addr CP DSS_MAX_DRIVES_AMOUNT+1 JR C,.norm ; Error! LD A,DSS_MAX_DRIVES_AMOUNT .norm: LD C,A ADD A,A ADD A,C LD C,A LD B,0 LD HL,tbl_addr ADD HL,BC ENDM ; ; MACRO SET_PAGE_X new_page LD A,(BANKTBL+new_page) LD B,A LD C,SLOT3 IN A,(SLOT3) OUT (C),B ENDM ; ; MACRO _mDSS_Version DB 'DSS_' db '0'+VERS db '.' db MODF/10+'0' db MODF-(MODF/10)*10+'0' ENDM ; ; MACRO C_OSTYPE IF OSTYPE = DP C_OSNAME DB "-DP [",#30+REVISION,']',0 ELSEIF OSTYPE = BETA C_OSNAME DB '-BETA [',#30+REVISION,']',0 ELSEIF OSTYPE = RC C_OSNAME DB '-RC [',#30+REVISION,']',0 ELSEIF OSTYPE = RELEASE C_OSRELEASE ;DB "-RELEASE",0 ELSE C_OSNAME DB "-UNKNOWN",0 ENDIF ENDM ; ; MACRO C_OSNAME DB "ESTEX",0 ENDM ; ; MACRO C_OSRELEASE DB "Estex DSS",0 ENDM ; //////////////////////////////////////////////////////////////////////// ; ; MACRO _mSavePath force ; IF SAVE_PATH_MACRO ; PUSH HL ; IF force==1 ; LD HL,BACK_CUR_PATH.force ; ELSE ; LD HL,BACK_CUR_PATH ; ENDIF ; EX (SP),HL ; CALL SAVE_CUR_PATH ; ENDIF ; ENDM ; MACRO _mRestorePath ; IF SAVE_PATH_MACRO ; CALL BACK_CUR_PATH.force ; ENDIF ; ENDM ; MACRO _mRestorStackAfterRestorePath ; IF SAVE_PATH_MACRO ; POP HL ;CLEAR STACK "BACK_CUR_PATH" ; ENDIF ; ENDM ;