diff options
| author | 2024-04-25 21:24:10 +0100 | |
|---|---|---|
| committer | 2024-04-25 22:32:27 +0000 | |
| commit | 2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch) | |
| tree | 80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/SELECT/SELECT3.ASM | |
| parent | Merge pull request #430 from jpbaltazar/typoptbr (diff) | |
| download | ms-dos-main.tar.gz ms-dos-main.tar.xz ms-dos-main.zip | |
Diffstat (limited to 'v4.0/src/SELECT/SELECT3.ASM')
| -rw-r--r-- | v4.0/src/SELECT/SELECT3.ASM | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/v4.0/src/SELECT/SELECT3.ASM b/v4.0/src/SELECT/SELECT3.ASM new file mode 100644 index 0000000..64c46c5 --- /dev/null +++ b/v4.0/src/SELECT/SELECT3.ASM | |||
| @@ -0,0 +1,286 @@ | |||
| 1 | |||
| 2 | |||
| 3 | PAGE 60,132 ;AN000; | ||
| 4 | NAME SELECT ;AN000; | ||
| 5 | TITLE SELECT - DOS - SELECT.EXE ;AN000; | ||
| 6 | SUBTTL SELECT3.asm ;AN000; | ||
| 7 | .ALPHA ;AN000; | ||
| 8 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 9 | ; | ||
| 10 | ; SELECT3.ASM : Copyright 1988 Microsoft | ||
| 11 | ; | ||
| 12 | ; DATE: August 8/87 | ||
| 13 | ; | ||
| 14 | ; COMMENTS: Assemble with MASM 3.0 (using the -A option) | ||
| 15 | ; | ||
| 16 | ; Panel flow is defined in the following files: | ||
| 17 | ; | ||
| 18 | ; � SELECT1.ASM | ||
| 19 | ; � SELECT2.ASM | ||
| 20 | ; � SELECT3.ASM | ||
| 21 | ; � SELECT4.ASM | ||
| 22 | ; � SELECT5.ASM | ||
| 23 | ; � SELECT6.ASM | ||
| 24 | ; | ||
| 25 | ; | ||
| 26 | ; The following screens are contained in this module: | ||
| 27 | ; - External diskette parameters | ||
| 28 | ; - Review selection choice | ||
| 29 | ; - Review selections for fixed disk | ||
| 30 | ; - Review selections for diskette | ||
| 31 | ; | ||
| 32 | ; | ||
| 33 | ; ;AN001; GHG changes for 0 Parallel/Serial printer ports | ||
| 34 | ; | ||
| 35 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 36 | DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000; Dummy DATA Seg | ||
| 37 | EXTRN SEG_LOC:WORD ;AN000; | ||
| 38 | EXTRN NAMES_OFF:WORD ;AN000; | ||
| 39 | EXTRN N_PRN_NAMES:WORD ;AN000; | ||
| 40 | EXTRN MAX_NAME:WORD ;AN000; | ||
| 41 | EXTRN SIZE_NAMES:ABS ;AN000; | ||
| 42 | DATA ENDS ;AN000; | ||
| 43 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 44 | ; | ||
| 45 | ; | ||
| 46 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 47 | .XLIST ;AN000; | ||
| 48 | INCLUDE PANEL.MAC ;AN000; | ||
| 49 | INCLUDE SELECT.INC ;AN000; | ||
| 50 | INCLUDE PAN-LIST.INC ;AN000; | ||
| 51 | INCLUDE CASTRUC.INC ;AN000; | ||
| 52 | INCLUDE STRUC.INC ;AN000; | ||
| 53 | INCLUDE MACROS.INC ;AN000; | ||
| 54 | INCLUDE EXT.INC ;AN000; | ||
| 55 | INCLUDE VARSTRUC.INC ;AN000; | ||
| 56 | INCLUDE ROUT_EXT.INC ;AN000; | ||
| 57 | .LIST ;AN000; | ||
| 58 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 59 | ; | ||
| 60 | ; Continuation of code ... | ||
| 61 | ; | ||
| 62 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 63 | SELECT SEGMENT PARA PUBLIC 'SELECT' ;AN000; | ||
| 64 | ASSUME CS:SELECT,DS:DATA ;AN000; | ||
| 65 | ; | ||
| 66 | INCLUDE CASEXTRN.INC ;AN000; | ||
| 67 | ; | ||
| 68 | EXTRN EXIT_SELECT:NEAR ;AN000; | ||
| 69 | EXTRN INSTALL_ERROR:NEAR ;AN000; | ||
| 70 | EXTRN PROCESS_ESC_F3:NEAR ;AN000; | ||
| 71 | EXTRN DOS_PARAMETERS_SCREEN:NEAR ;AN000; | ||
| 72 | EXTRN EXIT_DOS:NEAR ;AN000; | ||
| 73 | EXTRN FIRST_DISK_SCREEN:NEAR ;AN000; | ||
| 74 | PUBLIC choose_shell_screen ;AC020; SEH | ||
| 75 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 76 | ; | ||
| 77 | ; ������������������������������������Ŀ | ||
| 78 | ; �choose_shell_screen � | ||
| 79 | ; � � | ||
| 80 | ; �������������������������������������� | ||
| 81 | ; | ||
| 82 | ; The CHOOSE SHELL SCREEN is always presented. | ||
| 83 | ; This screen allows the user to decide whether or not the DOS | ||
| 84 | ; shell will be installed. | ||
| 85 | ; Valid keys are ENTER, ESC, F1, F3 and numeric 1 and 2. | ||
| 86 | ;---- | ||
| 87 | ; Note: This screen (and, hence, all shell support) can be eradicated | ||
| 88 | ; by defining the symbol NOSHELL. | ||
| 89 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 90 | choose_shell_screen: ;AN000; | ||
| 91 | IFNDEF NOSHELL | ||
| 92 | INIT_PQUEUE PAN_choose_shell ;AN000; initialize queue | ||
| 93 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 94 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 95 | INIT_SCROLL SCR_choose_shell, f_shell ;AN000; | ||
| 96 | DISPLAY_PANEL ;AN000; display CHOOSE SHELL SCREEN | ||
| 97 | ; | ||
| 98 | GET_SCROLL SCR_choose_shell, f_shell, FK_SCROLL ;AN000; get new shell option | ||
| 99 | ; | ||
| 100 | .IF < N_USER_FUNC eq E_ENTER > ;AN000; if user entered ENTER key | ||
| 101 | .THEN ;AN000; | ||
| 102 | COPY_WORD f_shell, I_USER_INDEX ;AN000; save new shell option | ||
| 103 | PUSH_HEADING choose_shell_screen ;AN000; save address on SELECT STACK | ||
| 104 | GOTO REVIEW_SELECTION_SCREEN ;AN000; goto the next screen (REVIEW_SELECTION) | ||
| 105 | .ELSE ;AN000; | ||
| 106 | GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or F3, take action | ||
| 107 | .ENDIF ;AN000; | ||
| 108 | ENDIF | ||
| 109 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 110 | ; | ||
| 111 | ; ������������������������������������Ŀ | ||
| 112 | ; �REVIEW_SELECTION_SCREEN � | ||
| 113 | ; � � | ||
| 114 | ; �������������������������������������� | ||
| 115 | ; | ||
| 116 | ; The REVIEW SELECTION SCREEN is always presented. | ||
| 117 | ; The screen asks the user if SELECT generated choices are to be presented. | ||
| 118 | ; Valid keys are ENTER, ESC, F1, F3 and numeric 1 and 2. | ||
| 119 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 120 | REVIEW_SELECTION_SCREEN: ;AN000; | ||
| 121 | INIT_PQUEUE PAN_REVIEW ;AN000; initialize queue | ||
| 122 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 123 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 124 | INIT_SCROLL SCR_REVIEW, F_REVIEW ;AN000; | ||
| 125 | DISPLAY_PANEL ;AN000; display REVIEW SELECTION SCREEN | ||
| 126 | ; | ||
| 127 | GET_SCROLL SCR_REVIEW, F_REVIEW, FK_SCROLL ;AN000; get new review option | ||
| 128 | ; | ||
| 129 | .IF < N_USER_FUNC eq E_ENTER > ;AN000; if user entered ENTER key | ||
| 130 | .THEN ;AN000; | ||
| 131 | COPY_WORD F_REVIEW, I_USER_INDEX ;AN000; save new review option | ||
| 132 | PUSH_HEADING REVIEW_SELECTION_SCREEN ;AN000; save address on SELECT STACK | ||
| 133 | GOTO REVIEW_DISK_SCREEN ;AN000; goto the next screen (REVIEW_FUNCTIONS) | ||
| 134 | .ELSE ;AN000; | ||
| 135 | GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or F3, take action | ||
| 136 | .ENDIF ;AN000; | ||
| 137 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 138 | ; | ||
| 139 | ; ������������������������������������Ŀ | ||
| 140 | ; �REVIEW_DISK_SCREEN � | ||
| 141 | ; � � | ||
| 142 | ; �������������������������������������� | ||
| 143 | ; | ||
| 144 | ; The REVIEW SELECT DOS FUNCTIONS SELECTION SCREEN is presented if | ||
| 145 | ; the user selected to view/change the selections generated by | ||
| 146 | ; SELECT ( F_REVIEW = 2 ) | ||
| 147 | ; The screen asks the user to select functions required from the | ||
| 148 | ; displayed list. Functions are Code Page Switching, Expanded Memory Support, | ||
| 149 | ; ANSI.SYS support, FASTOPEN support, GRAFTABL support, GRAPHICS support, | ||
| 150 | ; SHARE support, and VDISK support. | ||
| 151 | ; There are two versions of this screen. The screen version displayed | ||
| 152 | ; will depend on whether the install destination is drive B:/A: or drive C:. | ||
| 153 | ; This screen version will be presented if install destination is drive C:. | ||
| 154 | ; The screen lists the parameters for which selections have been made by | ||
| 155 | ; SELECT. The user may accept these choices (yes/no) | ||
| 156 | ; or change them by cursoring to the parameter and pressing the SPACE key. | ||
| 157 | ; The SPACE key will toggle the choice for the selected parameter. | ||
| 158 | ; The cursor key is used to move to the next item on the parameter list. | ||
| 159 | ; If the cursor is on the last item in the parameter list, cursor down key | ||
| 160 | ; will cause the cursor to wrap around to the first item of the parameter list. | ||
| 161 | ; If the cursor is on the first item in the parameter list, cursor up key | ||
| 162 | ; will cause the cursor to wrap around to the last item of the parameter list. | ||
| 163 | ; When the SPACE key is depressed, the current parameter value is saved in | ||
| 164 | ; a temporary location. The temporary parameter values are copied to actual | ||
| 165 | ; values only when the ENTER key is depressed. | ||
| 166 | ; Valid keys are ENTER, ESC, F1, F3, SPACE, cursor up and cursor down. | ||
| 167 | ; If a parameter is not supported due to the hardware environment, the | ||
| 168 | ; choice presented to the user will be NO but internally will be stored as N/A. | ||
| 169 | ; a N/A choice would not be toggled by the user and a beep would be issued | ||
| 170 | ; instead. | ||
| 171 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 172 | REVIEW_DISK_SCREEN: ;AN000; | ||
| 173 | .IF < F_REVIEW eq E_REVIEW_ACCEPT > ;AN000; if accept SELECT generated commands | ||
| 174 | .THEN ;AN000; | ||
| 175 | GOTO FIRST_DISK_SCREEN ;AN000; skip related screens | ||
| 176 | .ENDIF ;AN000; | ||
| 177 | ; | ||
| 178 | .IF < I_DEST_DRIVE ne E_DEST_DRIVE_C > ;AC000; if install to drive B: or A: JW | ||
| 179 | .THEN ;AN000; | ||
| 180 | GOTO REVIEW_DISKETTE_SCREEN ;AN000; goto disket functions screen | ||
| 181 | .ENDIF ;AN000; | ||
| 182 | ; | ||
| 183 | INIT_PQUEUE PAN_FUNC_DISK ;AN000; initialize queue | ||
| 184 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 185 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 186 | INIT_SCROLL SCR_FUNC_DISK, 0 ;AN000; | ||
| 187 | INIT_SUPPORT SUPPORT_STATUS,E_CPSW_C, F_CPSW ;AN000; cpsw support | ||
| 188 | INIT_SUPPORT SUPPORT_STATUS, E_XMA_C, F_XMA ;AN000; expanded memory support | ||
| 189 | INIT_SUPPORT SUPPORT_STATUS,E_ANSI_C, F_ANSI ;AN000; ANSI.SYS support | ||
| 190 | INIT_SUPPORT SUPPORT_STATUS,E_FASTOPEN_C,F_FASTOPEN;AN000; FASTOPEN support | ||
| 191 | INIT_SUPPORT SUPPORT_STATUS,E_GRAFTABL_C,F_GRAFTABL;AN000; GRAFTABL support | ||
| 192 | INIT_SUPPORT SUPPORT_STATUS,E_GRAPHICS_C,F_GRAPHICS;AN000; GRAPHICS support | ||
| 193 | INIT_SUPPORT SUPPORT_STATUS,E_SHARE_C,F_SHARE;AN000; SHARE support | ||
| 194 | INIT_SUPPORT SUPPORT_STATUS,E_SHELL_C,F_SHELL;AN000; SHELL support | ||
| 195 | INIT_SUPPORT SUPPORT_STATUS,E_VDISK_C,F_VDISK;AN000; VDISK support | ||
| 196 | INIT_SCROLL_STATUS SCR_FUNC_DISK,SUPPORT_STATUS ;AN000; | ||
| 197 | DISPLAY_PANEL ;AN000; display functions list screen | ||
| 198 | ; | ||
| 199 | INIT_VAR I_USER_INDEX, 1 ;AN000; set counter = 1 | ||
| 200 | ; | ||
| 201 | .REPEAT ;AN000; repeat code block | ||
| 202 | ; | ||
| 203 | GET_SCROLL SCR_FUNC_DISK,I_USER_INDEX,FK_REVIEW ;AN000; get new value | ||
| 204 | ; | ||
| 205 | .IF < N_USER_FUNC eq E_SPACE > ;AN000; if user entered TAB | ||
| 206 | .THEN ;AN000; | ||
| 207 | TOGGLE_SUPPORT SUPPORT_STATUS, I_USER_INDEX ;AN000; toggle support of parameter | ||
| 208 | .ELSE ;AN000; else | ||
| 209 | .LEAVE ;AN000; break from repeat loop | ||
| 210 | .ENDIF ;AN000; | ||
| 211 | ; | ||
| 212 | .UNTIL ;AN000; end of repeat loop | ||
| 213 | ; | ||
| 214 | .IF < N_USER_FUNC eq E_ENTER > near ;AN000; if user entered ENTER key | ||
| 215 | .THEN ;AN000; get revised values for | ||
| 216 | RET_SUPPORT SUPPORT_STATUS,E_CPSW_C, F_CPSW ;AN000; cpsw support | ||
| 217 | RET_SUPPORT SUPPORT_STATUS, E_XMA_C, F_XMA ;AN000; expanded memory support | ||
| 218 | RET_SUPPORT SUPPORT_STATUS,E_ANSI_C, F_ANSI ;AN000; ANSI.SYS support | ||
| 219 | RET_SUPPORT SUPPORT_STATUS,E_FASTOPEN_C,F_FASTOPEN;AN000; FASTOPEN support | ||
| 220 | RET_SUPPORT SUPPORT_STATUS,E_GRAFTABL_C,F_GRAFTABL;AN000; GRAFTABL support | ||
| 221 | RET_SUPPORT SUPPORT_STATUS,E_GRAPHICS_C,F_GRAPHICS;AN000; GRAPHICS support | ||
| 222 | RET_SUPPORT SUPPORT_STATUS,E_SHARE_C,F_SHARE;AN000; SHARE support | ||
| 223 | RET_SUPPORT SUPPORT_STATUS,E_SHELL_C,F_SHELL;AN000; SHELL support | ||
| 224 | RET_SUPPORT SUPPORT_STATUS,E_VDISK_C,F_VDISK;AN000; VDISK support | ||
| 225 | PUSH_HEADING REVIEW_DISK_SCREEN ;AN000; save screen address on SELECT STACK | ||
| 226 | GOTO DOS_PARAMETERS_SCREEN ;AN000; goto the next screen (DOS_PARAMETERS) | ||
| 227 | .ELSE ;AN000; | ||
| 228 | GOTO PROCESS_ESC_F3 ;AN000; user entered ESCAPE or F3, take action | ||
| 229 | .ENDIF ;AN000; | ||
| 230 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 231 | ; | ||
| 232 | ; ������������������������������������Ŀ | ||
| 233 | ; �REVIEW_DISKETTE_SCREEN � | ||
| 234 | ; � � | ||
| 235 | ; �������������������������������������� | ||
| 236 | ; | ||
| 237 | ; The REVIEW SELECT DOS FUNCTIONS SELECTION SCREEN is presented if | ||
| 238 | ; the user selected to view/change the selections generated by | ||
| 239 | ; SELECT ( F_REVIEW = 2 ) | ||
| 240 | ; This screen version will be presented if install destination is drive A:/B: | ||
| 241 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 242 | REVIEW_DISKETTE_SCREEN: ;AN000; | ||
| 243 | INIT_PQUEUE PAN_FUNC_DISKET ;AN000; initialize queue | ||
| 244 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 245 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 246 | INIT_SCROLL SCR_FUNC_DISKET, 0 ;AN000; | ||
| 247 | INIT_SUPPORT SUPPORT_STATUS,E_CPSW_B, F_CPSW ;AN000; cpsw support | ||
| 248 | INIT_SUPPORT SUPPORT_STATUS,E_ANSI_B, F_ANSI ;AN000; ANSI.SYS support | ||
| 249 | INIT_SUPPORT SUPPORT_STATUS,E_GRAFTABL_B,F_GRAFTABL;AN000; GRAFTABL support | ||
| 250 | INIT_SUPPORT SUPPORT_STATUS,E_GRAPHICS_B,F_GRAPHICS;AN000; GRAPHICS support | ||
| 251 | INIT_SUPPORT SUPPORT_STATUS,E_SHELL_B,F_SHELL;AN000; SHELL support | ||
| 252 | INIT_SUPPORT SUPPORT_STATUS,E_VDISK_B,F_VDISK;AN000; VDISK support | ||
| 253 | INIT_SCROLL_STATUS SCR_FUNC_DISKET, SUPPORT_STATUS ;AN000; | ||
| 254 | DISPLAY_PANEL ;AN000; display functions list screen | ||
| 255 | ; | ||
| 256 | INIT_VAR I_USER_INDEX, 1 ;AN000; set counter = 1 | ||
| 257 | ; | ||
| 258 | .REPEAT ;AN000; repeat code block | ||
| 259 | ; | ||
| 260 | GET_SCROLL SCR_FUNC_DISKET,I_USER_INDEX,FK_REVIEW;AN000; get new value | ||
| 261 | ; | ||
| 262 | .IF < N_USER_FUNC eq E_SPACE > ;AN000; if user entered TAB | ||
| 263 | .THEN ;AN000; | ||
| 264 | TOGGLE_SUPPORT SUPPORT_STATUS, I_USER_INDEX ;AN000; toggle support of parameter | ||
| 265 | .ELSE ;AN000; | ||
| 266 | .LEAVE ;AN000; else | ||
| 267 | .ENDIF ;AN000; break from loop | ||
| 268 | ; | ||
| 269 | .UNTIL ;AN000; end of repeat block | ||
| 270 | ; | ||
| 271 | .IF < N_USER_FUNC eq E_ENTER > near ;AN000; if user entered ENTER key | ||
| 272 | .THEN ;AN000; get revised values | ||
| 273 | RET_SUPPORT SUPPORT_STATUS,E_CPSW_B, F_CPSW ;AN000; cpsw support | ||
| 274 | RET_SUPPORT SUPPORT_STATUS,E_ANSI_B, F_ANSI ;AN000; ANSI.SYS support | ||
| 275 | RET_SUPPORT SUPPORT_STATUS,E_GRAFTABL_B,F_GRAFTABL;AN000; GRAFTABL support | ||
| 276 | RET_SUPPORT SUPPORT_STATUS,E_GRAPHICS_B,F_GRAPHICS;AN000; GRAPHICS support | ||
| 277 | RET_SUPPORT SUPPORT_STATUS,E_SHELL_B,F_SHELL;AN000; SHELL support | ||
| 278 | RET_SUPPORT SUPPORT_STATUS,E_VDISK_B,F_VDISK;AN000; VDISK support | ||
| 279 | PUSH_HEADING REVIEW_DISKETTE_SCREEN ;AN000; save screen address onto SELECT STACK | ||
| 280 | GOTO DOS_PARAMETERS_SCREEN ;AN000; goto the next screen (DOS_PARAMETERS) | ||
| 281 | .ELSE ;AN000; | ||
| 282 | GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or E3, take action | ||
| 283 | .ENDIF ;AN000; | ||
| 284 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 285 | SELECT ENDS ;AN000; | ||
| 286 | END ;AN000; | ||