From 2d04cacc5322951f187bb17e017c12920ac8ebe2 Mon Sep 17 00:00:00 2001 From: Mark Zbikowski Date: Thu, 25 Apr 2024 21:24:10 +0100 Subject: MZ is back! --- v4.0/src/SELECT/GET_HELP.ASM | 233 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 v4.0/src/SELECT/GET_HELP.ASM (limited to 'v4.0/src/SELECT/GET_HELP.ASM') diff --git a/v4.0/src/SELECT/GET_HELP.ASM b/v4.0/src/SELECT/GET_HELP.ASM new file mode 100644 index 0000000..4aacaa5 --- /dev/null +++ b/v4.0/src/SELECT/GET_HELP.ASM @@ -0,0 +1,233 @@ +PAGE 55,132 ;AN000; +NAME SELECT ;AN000; +TITLE SELECT - GET_HELP_ID ;AN000; +SUBTTL Get_Help.asm ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; GET_HELP_ID +; +; Entry: +; +; +; +; Exit: +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SELECT SEGMENT PARA PUBLIC 'SELECT' ;AN000;segment for far routine + ASSUME CS:SELECT ;AN000; + ; + ; +INP_HELP_ID DW 12,10,10 ;AN000; help_id 1, row', col' STR_DOS_LOC + DW 19,12,15 ;AN000; help_id 2, row', col' STR_EXT_PARMS + DW 31,11,20 ;AN000; help_id 3, row', col' STR_DOS_PATH + DW 32,11,20 ;AN000; help_id 4, row', col' STR_DOS_APPEND + DW 33,11,20 ;AN000; help_id 5, row', col' STR_DOS_PROMPT + DW 34,12,20 ;AN000; help_id 6, row', col' STR_SHELL + DW 35,12,20 ;AN000; help_id 7, row', col' STR_KSAM + DW 35,12,20 ;AN000; help_id 8, row', col' STR_FASTOPEN + DW 36,12,20 ;AN000; help_id 9, row', col' STR_SHARE + DW 37,12,20 ;AN000; help_id 10, row', col' STR_GRAPHICS + DW 38,12,20 ;AN000; help_id 11, row', col' STR_XMAEM + DW 39,12,20 ;AN000; help_id 12, row', col' STR_XMA2EMS + DW 40,13,20 ;AN000; help_id 13, row', col' STR_VDISK + DW 41,12,20 ;AN000; help_id 14, row', col' STR_BREAK + DW 42,12,20 ;AN000; help_id 15, row', col' STR_BUFFERS + DW 43,11,20 ;AC000; help_id 16, row', col' STR_DOS_APPEND_P JW + DW 44, 2,20 ;AN000; help_id 17, row', col' STR_FCBS + DW 45, 2,20 ;AN000; help_id 18, row', col' STR_FILES + DW 46, 2,20 ;AN000; help_id 19, row', col' STR_LASTDRIVE + DW 47, 2,20 ;AN000; help_id 20, row', col' STR_STACKS + DW 48, 2,20 ;AN000; help_id 21, row', col' STR_VERIFY + DW 13,10,10 ;AN000; help_id 22, row', col' NUM_PRINTER + DW 18,10,20 ;AN000; help_id 23, row', col' NUM_EXT_DISK + DW 53,12,20 ;AN000; help_id 24, row', col' NUM_YEAR + DW 53,12,20 ;AN000; help_id 25, row', col' NUM_MONTH + DW 53,12,20 ;AN000; help_id 26, row', col' NUM_DAY + DW 53,12,20 ;AN000; help_id 27, row', col' NUM_HOUR + DW 53,12,20 ;AN000; help_id 28, row', col' NUM_MINUTE + DW 53,11,20 ;AN000; help_id 29, row', col' NUM_SECOND +INP_HELP_ID_LEN EQU ($-INP_HELP_ID)/6 ;AN000; +INP_HELP_ID_ELE EQU 3 ;AN000; + ; +SCR_HELP_ID DW 3 ;AN000; scr_id1 + DW 3,12,20 ;AN000; help_id1,row1',col1' + DW 4, 1,20 ;AN000; + DW 5, 3,20 ;AN000; + DW 2 ;AN000; scr_id2 + DW 6, 1,20 ;AN000; + DW 7, 3,20 ;AN000; + DW 1 ;AN000; + DW 8, 3,20 ;AN000; SCR_CTY_1 + DW 1 ;AN000; + DW 8, 3,20 ;AN000; SCR_CTY_2 + DW 1 ;AN000; + DW 9,10,20 ;AN000; SCR_KYB_1 + DW 1 ;AN000; + DW 9,10,20 ;AN000; SCR_KYB_2 + DW 1 ;AN000; + DW 10,10,23 ;AN000; SCR_FR_KYB + DW 1 ;AN000; + DW 10,10,23 ;AN000; SCR_IT_KYB + DW 1 ;AN000; + DW 10,10,23 ;AN000; SCR_UK_KYB + DW 1 ;AN000; + DW 11,10,20 ;AN111; SCR_DEST_B_C JW + DW 1 ;AN000; + DW 14, 1,25 ;AN000; SCR_PRT_TYPE + DW 1 ;AN000; + DW 15, 9,20 ;AN000; SCR_PARALLEL + DW 1 ;AN000; + DW 16,10,20 ;AN000; SCR_SERIAL + DW 1 ;AN000; + DW 17, 8,20 ;AN000; SCR_PRT_REDIR + DW 2 ;AN000; + DW 20, 6,20 ;AN000; SCR_REVIEW + DW 21, 6,20 ;AN000; SCR_REVIEW + DW 9 ;AN000; + DW 22,10,11 ;AN000; + DW 23,11,11 ;AN000; + DW 24,12,11 ;AN000; + DW 25, 1,11 ;AN000; + DW 26, 2,11 ;AN000; + DW 27, 3,11 ;AN000; + DW 28, 4,11 ;AN000; + DW 29, 5,11 ;AN000; + DW 30, 6,11 ;AN000; + DW 6 ;AN000; + DW 22,10,11 ;AN000; + DW 24,11,11 ;AN000; + DW 26,12,11 ;AN000; + DW 27, 1,11 ;AN000; + DW 29, 2,11 ;AN000; + DW 30, 3,11 ;AN000; SCR_FUNC_DISKET + DW 2 ;AN000; + DW 49, 1,11 ;AN000; + DW 50, 1,11 ;AN000; SCR_FIXED_FIRST + DW 2 ;AN000; + DW 51, 1,11 ;AN000; + DW 52, 1,11 ;AN000; SCR_FIXED_BOTH + DW 2 ;AN000; + DW 54, 1,11 ;AN000; + DW 55, 1,11 ;AN000; SCR_FORMAT + DW 0 ;AN000; SCR_CONTEXT_HLP + DW 0 ;AN000; SCR_INDEX_HLP + DW 0 ;AN000; SCR_TITLE_HLP + DW 0 ;AN000; + DW 0 ;AN000; + DW 2 ;AN000; SCR_COPY_DEST JW + DW 18,10,10 ;AC035; SEH new help text + DW 19,10,10 ;AC035; SEH new help text + DW 1 ;AN000; + DW 11,10,20 ;AN111; SCR_DEST_A_C JW + DW 2 ;AN000; + DW 56, 6,20 ;AN000; SCR_choose_screen + DW 57, 6,20 ;AN000; SCR_choose_screen +SCR_HELP_ID_LEN EQU 28 ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; GET_HELP_ID +; +; Entry: +; AX = 1 for input field help_id's +; BX = field_id +; AX = 2 for scroll help_id's +; BX = scroll_id +; CX = index +; +; Exit: +; AX = help_id +; DH = row' +; DL = col' +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +THREE DW 3 ;AN000; + ; + PUBLIC GET_HELP_ID ;AN000; +GET_HELP_ID PROC ;AN000; + CMP AX,1 ;AN000; + JNE GH_8 ;AN000; + ; + CMP AX,INP_HELP_ID_LEN ;AN000; + JA GH_8 ;AN000; + ; + PUSH BX ;AN000; + PUSH CX ;AN000; + MOV AX,BX ;AN000; + DEC AX ;AN000; + MOV BX,INP_HELP_ID_ELE*2 ;AN000; + MUL BX ;AN000; + MOV BX,AX ;AN000; + MOV AX,CS:[BX].INP_HELP_ID ;AN000; + MOV CX,CS:[BX+2].INP_HELP_ID;AN000; + MOV DX,CS:[BX+4].INP_HELP_ID;AN000; + XCHG CH,CL ;AN000; + MOV DH,CH ;AN000; + POP CX ;AN000; + POP BX ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; AX = 2 for scroll help_id's +; BX = scroll_id +; CX = index +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +GH_8: CMP AX,2 ;AN000; + JNE GH_20 ;AN000; + ; + CMP BX,SCR_HELP_ID_LEN ;AN000; + JA GH_20 ;AN000; + ; + OR CX,CX ;AN000; + JE GH_20 ;AN000; + ; + PUSH CX ;AN000; search for matching scroll_id + PUSH SI ;AN000; + MOV DX,1 ;AN000; + XOR SI,SI ;AN000; + ; +GH_9: CMP DX,BX ;AN000; + JE GH_10 ;AN000; + MOV AX,CS:[SI]+SCR_HELP_ID ;AN000; get number of help screens + PUSH DX ;AN000; + MUL THREE ;AN000; + POP DX ;AN000; + ADD AX,1 ;AN000; +additional entries (row',col',count) + SHL AX,1 ;AN000; account for WORD entries + ADD SI,AX ;AN000; + INC DX ;AN000; + CMP DX,SCR_HELP_ID_LEN ;AN000; + JBE GH_9 ;AC000; JW Changed to JBE + JMP GH_15 ;AN000; + ; +GH_10: CMP CX,CS:[SI]+SCR_HELP_ID ;AN000; check for index out of range? + JBE GH_11 ;AN000; then + MOV CX,1 ;AN000; set to first help_id.... + ; +GH_11: MOV AX,CX ;AN000; scroll_id found!!!! + DEC AX ;AN000; + MUL THREE ;AN000; + INC AX ;AN000; + SHL AX,1 ;AN000; + ADD SI,AX ;AN000; + MOV AX,CS:[SI]+SCR_HELP_ID ;AN000; + MOV CX,CS:[SI+2].SCR_HELP_ID;AN000; + MOV DX,CS:[SI+4].SCR_HELP_ID;AN000; + XCHG CH,CL ;AN000; + MOV DH,CH ;AN000; +GH_15: POP SI ;AN000; + POP CX ;AN000; +GH_20: ;AN000; + RET ;AN000; +GET_HELP_ID ENDP ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SELECT ENDS ;AN000; + END GET_HELP_ID ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + -- cgit v1.2.3