diff options
Diffstat (limited to 'v4.0/src/SELECT/SELECT5.ASM')
| -rw-r--r-- | v4.0/src/SELECT/SELECT5.ASM | 576 |
1 files changed, 576 insertions, 0 deletions
diff --git a/v4.0/src/SELECT/SELECT5.ASM b/v4.0/src/SELECT/SELECT5.ASM new file mode 100644 index 0000000..68920be --- /dev/null +++ b/v4.0/src/SELECT/SELECT5.ASM | |||
| @@ -0,0 +1,576 @@ | |||
| 1 | |||
| 2 | |||
| 3 | PAGE 55,132 ;AN000; | ||
| 4 | NAME SELECT ;AN000; | ||
| 5 | TITLE SELECT - DOS - SELECT.EXE ;AN000; | ||
| 6 | SUBTTL SELECT5.asm ;AN000; | ||
| 7 | .ALPHA ;AN000; | ||
| 8 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 9 | ; | ||
| 10 | ; SELECT5.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 | ; Module contains code for : | ||
| 26 | ; - VDISK screen | ||
| 27 | ; - CONFIG.SYS screen | ||
| 28 | ; - Fixed disk partition screen | ||
| 29 | ; - Date/Time screen | ||
| 30 | ; | ||
| 31 | ; CHANGE HISTORY: | ||
| 32 | ; | ||
| 33 | ; ;AN002; for DCR225 by G.G. | ||
| 34 | ; | ||
| 35 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 36 | DATA SEGMENT BYTE PUBLIC 'DATA' ;AN000; | ||
| 37 | EXTRN SEL_FLG:BYTE ;AN000; | ||
| 38 | EXTRN EXEC_DEALLOC:BYTE ;AN000; | ||
| 39 | EXTRN EXEC_FDISK:BYTE ;AN000;DT | ||
| 40 | EXTRN EXEC_ERR:BYTE ;AN000;DT | ||
| 41 | EXTRN BCHAR:BYTE ;AN000;DT | ||
| 42 | DATA ENDS ;AN000; | ||
| 43 | ; | ||
| 44 | .XLIST ;AN000; | ||
| 45 | INCLUDE PANEL.MAC ;AN000; | ||
| 46 | INCLUDE SELECT.INC ;AN000; | ||
| 47 | INCLUDE CASTRUC.INC ;AN000; | ||
| 48 | INCLUDE STRUC.INC ;AN000; | ||
| 49 | INCLUDE MACROS.INC ;AN000; | ||
| 50 | INCLUDE EXT.INC ;AN000; | ||
| 51 | INCLUDE VARSTRUC.INC ;AN000; | ||
| 52 | INCLUDE ROUT_EXT.INC ;AN000; | ||
| 53 | INCLUDE PAN-LIST.INC ;AN000; | ||
| 54 | .LIST ;AN000; | ||
| 55 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 56 | ; | ||
| 57 | EXTRN DEALLOCATE_HELP:FAR ;AN000;DT | ||
| 58 | EXTRN ALLOCATE_HELP:FAR ;AN000;DT | ||
| 59 | EXTRN DEALLOCATE_BLOCK:FAR ;AN000;DT | ||
| 60 | EXTRN ALLOCATE_BLOCK:FAR ;AN000;DT | ||
| 61 | EXTRN DEALLOCATE_MEMORY_CALL:FAR ;AN000;DT | ||
| 62 | EXTRN ALLOCATE_MEMORY_CALL:FAR ;AN000;DT | ||
| 63 | EXTRN PM_BASECHAR:BYTE ;AN000; | ||
| 64 | EXTRN PM_BASEATTR:BYTE ;AN000; | ||
| 65 | EXTRN CRD_CCBVECOFF:WORD ;AN000; | ||
| 66 | EXTRN CRD_CCBVECSEG:WORD ;AN000; | ||
| 67 | ; | ||
| 68 | ; | ||
| 69 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 70 | SELECT SEGMENT PARA PUBLIC 'SELECT' ;AN000;segment for far routine | ||
| 71 | ASSUME CS:SELECT,DS:DATA ;AN000; | ||
| 72 | ; | ||
| 73 | INCLUDE CASEXTRN.INC ;AN000; | ||
| 74 | ; | ||
| 75 | EXTRN CREATE_AUTOEXEC_BAT:NEAR ;AN000; | ||
| 76 | EXTRN CREATE_CONFIG_SYS:NEAR ;AN000; | ||
| 77 | EXTRN CREATE_SHELL_BAT:NEAR ;AN000;DT | ||
| 78 | EXTRN SCAN_INFO_CALL:NEAR ;AN000;DT | ||
| 79 | EXTRN DATE_TIME_SCREEN:NEAR ;AN000;DT | ||
| 80 | ; | ||
| 81 | PUBLIC FIRST_DISK_SCREEN ;AN000; | ||
| 82 | PUBLIC VDISK_SCREEN ;AN000; | ||
| 83 | EXTRN PROCESS_ESC_F3:near ;AN000; | ||
| 84 | EXTRN FORMAT_DISK_SCREEN:near ;AN000; | ||
| 85 | EXTRN EXIT_DOS:near ;AN000; | ||
| 86 | EXTRN INSTALL_ERROR:near ;AN000; | ||
| 87 | EXTRN EXIT_SELECT:NEAR ;AN000; | ||
| 88 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 89 | ; | ||
| 90 | ; ������������������������������������Ŀ | ||
| 91 | ; �VDISK_SCREEN � | ||
| 92 | ; � � | ||
| 93 | ; �������������������������������������� | ||
| 94 | ; | ||
| 95 | ; The VDISK PARAMETERS SCREEN is presented if the user selected to | ||
| 96 | ; install virtual disk support and the user wants to view/change parameters. | ||
| 97 | ; Note.The view/change parameters condition is not specified in the May 5, 1987 | ||
| 98 | ; Functional Specification. | ||
| 99 | ; The screen gets parameters for the VDISK command. | ||
| 100 | ; Valid keys are ENTER, ESC, F1, F3 and ASCII characters. | ||
| 101 | ; Note.User entered parameter values are not checked for validity. | ||
| 102 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 103 | VDISK_SCREEN: ;AN000; | ||
| 104 | .IF < F_VDISK eq E_VDISK_NO > ;AN000; if VDISK support not required | ||
| 105 | GOTO CONFIG_SYS_SCREEN ;AN000; goto the next screen (CONFIG.SYS) | ||
| 106 | .ENDIF ;AN000; | ||
| 107 | ; | ||
| 108 | INIT_PQUEUE PAN_VDISK ;AN000; initialize queue | ||
| 109 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 110 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 111 | INIT_STRING STR_VDISK,S_VDISK,M_VDISK ;AN000; get new parameters for VDISK | ||
| 112 | DISPLAY_PANEL ;AN000; display VDISK panel | ||
| 113 | ; | ||
| 114 | GET_STRING STR_VDISK,S_VDISK,M_VDISK,FK_TEXT ;AN000; get new parameters for VDISK | ||
| 115 | ; | ||
| 116 | .IF < N_USER_FUNC eq E_ENTER > ;AN000; if user entered ENTER key | ||
| 117 | COPY_STRING S_VDISK, M_VDISK, S_USER_STRING ;AN000; save new parameters for VDISK | ||
| 118 | PUSH_HEADING VDISK_SCREEN ;AN000; save screen address on SELECT STACK | ||
| 119 | GOTO CONFIG_SYS_SCREEN ;AN000; goto the next screen (CONFIG.SYS) | ||
| 120 | .ELSE ;AN000; | ||
| 121 | GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or F3, take action | ||
| 122 | .ENDIF ;AN000; | ||
| 123 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 124 | ; | ||
| 125 | ; ������������������������������������Ŀ | ||
| 126 | ; �CONFIG_SYS_SCREEN � | ||
| 127 | ; � � | ||
| 128 | ; �������������������������������������� | ||
| 129 | ; | ||
| 130 | ; The CONFIG.SYS PARAMETERS SCREEN is presented if the user selected to | ||
| 131 | ; view/change SELECT generated commands ( F_REVIEW = 2 ). | ||
| 132 | ; The screen gets parameters for CONFIG.SYS commands ( BREAK, BUFFERS, | ||
| 133 | ; FCBS, FILES, LASTDRIVE, STACKS, VERIFY ). | ||
| 134 | ; The TAB key is used to move to the next item on the parameter list. | ||
| 135 | ; If the cursor is on the last item in the parameter list, TAB key | ||
| 136 | ; will cause the cursor to wrap around to the first item of the parameter list. | ||
| 137 | ; When the TAB key is depressed, the current parameter value is saved in | ||
| 138 | ; a temporary location. The temporary parameter values are copied to actual | ||
| 139 | ; values only when the ENTER key is depressed. | ||
| 140 | ; Valid keys are ENTER, ESC, F1, F3, TAB and ASCII characters. | ||
| 141 | ; Note.User entered parameter values are not checked for validity. | ||
| 142 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 143 | CONFIG_SYS_SCREEN: ;AN000; | ||
| 144 | COPY_STRING ST_BREAK, MT_BREAK, S_BREAK ;AN000; copy BREAK par to temp location | ||
| 145 | COPY_STRING ST_BUFFERS,MT_BUFFERS,S_BUFFERS ;AN000; copy BUFFERS par to temp location | ||
| 146 | COPY_STRING ST_FCBS, MT_FCBS, S_FCBS ;AN000; copy FCBS par to temp location | ||
| 147 | COPY_STRING ST_FILES, MT_FILES, S_FILES ;AN000; copy FILES par to temp location | ||
| 148 | COPY_STRING ST_LASTDRIVE,MT_LASTDRIVE,S_LASTDRIVE ;AN000; copy LASTDRIVE par to temp location | ||
| 149 | COPY_STRING ST_STACKS, MT_STACKS, S_STACKS ;AN000; copy STACKS par to temp location | ||
| 150 | COPY_STRING ST_VERIFY, MT_VERIFY, S_VERIFY ;AN000; copy VERIFY par to temp location | ||
| 151 | ; | ||
| 152 | INIT_PQUEUE PAN_CONFIG_PARS ;AN000; initialize queue | ||
| 153 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 154 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 155 | INIT_STRING STR_BREAK, ST_BREAK, MT_BREAK ;AN000; display BREAK parameters | ||
| 156 | INIT_STRING STR_BUFFERS,ST_BUFFERS,MT_BUFFERS ;AN000; display BUFFERS parameters | ||
| 157 | INIT_STRING STR_FCBS, ST_FCBS, MT_FCBS ;AN000; display FCBS parameters | ||
| 158 | INIT_STRING STR_FILES, ST_FILES, MT_FILES ;AN000; display FILES parameters | ||
| 159 | INIT_STRING STR_LASTDRIVE,ST_LASTDRIVE,MT_LASTDRIVE ;AN000; display LASTDRIVE parameters | ||
| 160 | INIT_STRING STR_STACKS,ST_STACKS, MT_STACKS ;AN000; display STACKS parameters | ||
| 161 | INIT_STRING STR_VERIFY,ST_VERIFY, MT_VERIFY ;AN000; display VERIFY parameters | ||
| 162 | DISPLAY_PANEL ;AN000; display CONFIG.SYS parameters panel | ||
| 163 | ; | ||
| 164 | INIT_VAR N_COUNTER, 1 ;AN000; | ||
| 165 | ; | ||
| 166 | .REPEAT ;AN000; repeat code block | ||
| 167 | ; | ||
| 168 | .SELECT ;AN000; | ||
| 169 | ; | ||
| 170 | .WHEN < N_COUNTER eq 1 > ;AN000; | ||
| 171 | GET_STRING STR_BREAK,ST_BREAK,MT_BREAK,FK_TAB ;AN000; get new parameter for BREAK | ||
| 172 | COPY_STRING ST_BREAK,MT_BREAK,S_USER_STRING ;AN000; save new BREAK parameter | ||
| 173 | ; | ||
| 174 | .WHEN < N_COUNTER eq 2 > ;AN000; | ||
| 175 | GET_STRING STR_BUFFERS,ST_BUFFERS,MT_BUFFERS,FK_TAB ;AN000; get new parameter for BUFFERS | ||
| 176 | COPY_STRING ST_BUFFERS,MT_BUFFERS,S_USER_STRING ;AN000; save new BUFFERS parameter | ||
| 177 | ; | ||
| 178 | .WHEN < N_COUNTER eq 3 > ;AC000;JW | ||
| 179 | GET_STRING STR_FCBS,ST_FCBS,MT_FCBS,FK_TAB ;AN000; get new parameter for FCBS | ||
| 180 | COPY_STRING ST_FCBS, MT_FCBS, S_USER_STRING ;AN000; save new FCBS parameter | ||
| 181 | ; | ||
| 182 | .WHEN < N_COUNTER eq 4 > ;AC000;JW; | ||
| 183 | GET_STRING STR_FILES,ST_FILES,MT_FILES,FK_TAB ;AN000; get new parameter for FILES | ||
| 184 | COPY_STRING ST_FILES,MT_FILES,S_USER_STRING ;AN000; save new FILES parameter | ||
| 185 | ; | ||
| 186 | .WHEN < N_COUNTER eq 5 > ;AC000;JW; | ||
| 187 | GET_STRING STR_LASTDRIVE,ST_LASTDRIVE,MT_LASTDRIVE, FK_TAB ;AN000; get new parameter for LASTDRIVE | ||
| 188 | COPY_STRING ST_LASTDRIVE,MT_LASTDRIVE,S_USER_STRING ;AN000;save new LASTDRIVE parameter | ||
| 189 | ; | ||
| 190 | .WHEN < N_COUNTER eq 6 > ;AC000;JW; | ||
| 191 | GET_STRING STR_STACKS,ST_STACKS,MT_STACKS,FK_TAB ;AN000;get new parameter for STACKS | ||
| 192 | COPY_STRING ST_STACKS,MT_STACKS,S_USER_STRING ;AN000; save new STACKS parameter | ||
| 193 | ; | ||
| 194 | .OTHERWISE ;AN000; | ||
| 195 | GET_STRING STR_VERIFY,ST_VERIFY,MT_VERIFY,FK_TAB ;AN000;get new parameter for VERIFY | ||
| 196 | COPY_STRING ST_VERIFY,MT_VERIFY,S_USER_STRING ;AN000; save new VERIFY parameter | ||
| 197 | ; | ||
| 198 | .ENDSELECT ;AN000; | ||
| 199 | ; | ||
| 200 | INC_VAR N_COUNTER ;AN000; inc counter | ||
| 201 | ; | ||
| 202 | .IF < N_COUNTER a 7 > ;AC000;JW; if counter > 8 | ||
| 203 | INIT_VAR N_COUNTER, 1 ;AN000; set counter = 1 | ||
| 204 | .ENDIF ;AN000; | ||
| 205 | ; | ||
| 206 | .UNTIL < N_USER_FUNC eq E_ENTER > or near ;AN000; break if loop if ENTER entered | ||
| 207 | .UNTIL < N_USER_FUNC eq E_ESCAPE > or near ;AN000; or ESCAPE entered | ||
| 208 | .UNTIL < N_USER_FUNC eq E_F3 > near ;AN000; or F3 entered | ||
| 209 | ; | ||
| 210 | .IF < N_USER_FUNC eq E_ENTER > near ;AN000; if user entered ENTER key | ||
| 211 | COPY_STRING S_BREAK, M_BREAK, ST_BREAK ;AN000; save BREAK parameter | ||
| 212 | COPY_STRING S_BUFFERS,M_BUFFERS, ST_BUFFERS ;AN000; save BUFFERS parameter | ||
| 213 | COPY_STRING S_FCBS, M_FCBS, ST_FCBS ;AN000; save FCBS parameter | ||
| 214 | COPY_STRING S_FILES, M_FILES, ST_FILES ;AN000; save FILES parameter | ||
| 215 | COPY_STRING S_LASTDRIVE,M_LASTDRIVE,ST_LASTDRIVE ;AN000;save LASTDRIVE parameter | ||
| 216 | COPY_STRING S_STACKS, M_STACKS, ST_STACKS ;AN000; save STACKS parameter | ||
| 217 | COPY_STRING S_VERIFY, M_VERIFY, ST_VERIFY ;AN000; save VERIFY parameter | ||
| 218 | PUSH_HEADING CONFIG_SYS_SCREEN ;AN000; save screen address on SELECT STACK | ||
| 219 | GOTO FIRST_DISK_SCREEN ;AN000; goto the first fixed disk screen | ||
| 220 | .ELSE ;AN000; | ||
| 221 | GOTO PROCESS_ESC_F3 ;AN000; user entered ESC or F3, take action | ||
| 222 | .ENDIF ;AN000; | ||
| 223 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 224 | ; | ||
| 225 | ; ������������������������������������Ŀ | ||
| 226 | ; �FIRST_DISK_SCREEN � | ||
| 227 | ; � � | ||
| 228 | ; �������������������������������������� | ||
| 229 | ; | ||
| 230 | ; The PARTITION FIXED DISK SCREEN is presented if the first fixed drive | ||
| 231 | ; exists and is completely unused. | ||
| 232 | ; When SELECT is invoked, the system configuration is checked and if fixed | ||
| 233 | ; disks exist, the fixed disk status is obtained and variables are initialized. | ||
| 234 | ; The screen allows the user to create partitions for the fixed drive. | ||
| 235 | ; If the user chooses to let SELECT define partition sizes, the first fixed | ||
| 236 | ; disk will be partitioned as follows: | ||
| 237 | ; - A Primary DOS partition is created using the entire disk. | ||
| 238 | ; SELECT will partition the second fixed disk if it exists as follows: | ||
| 239 | ; - An Extended DOS partition is created using the entire disk space and a | ||
| 240 | ; logical drive is created using the entire Extended DOS partition. | ||
| 241 | ; Valid keys are ENTER, ESC, F1, F3, cursor up/down, 1/2. | ||
| 242 | ; Note.After FDISK, the partitions have to formatted. Since the system is going | ||
| 243 | ; to reboot, SELECT must know if the user had created his own partitions or not | ||
| 244 | ; so that the partitions can be automatically formatted. The MENU parameter | ||
| 245 | ; in the AUTOEXEC.BAT file is changed FDISK. | ||
| 246 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 247 | FIRST_DISK_SCREEN: ;AN000; | ||
| 248 | .IF < I_DEST_DRIVE ne E_DEST_DRIVE_C > or ;AC111;JW | ||
| 249 | .IF < N_DISK_1 eq E_DISK_INV > ;AN000; if first fixed disk not present | ||
| 250 | GOTO DATE_TIME_SCREEN ;AN000; goto DATE_TIME screen | ||
| 251 | .ENDIF ;AN000; | ||
| 252 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 253 | ; | ||
| 254 | ; ������������������������������������Ŀ | ||
| 255 | ; �MAKE_BACKUP_DISKETTE � | ||
| 256 | ; � � | ||
| 257 | ; � � | ||
| 258 | ; �������������������������������������� | ||
| 259 | ; | ||
| 260 | ; WE NEED TO MAKE A DUPLICATE OF THE SELECT/SHELL DISKETTE | ||
| 261 | ; FOR R/W PURPOSES! | ||
| 262 | ; | ||
| 263 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 264 | MAKE_BACKUP_DISKETTE: ;AN000; | ||
| 265 | ; | ||
| 266 | .REPEAT ;AN000;JW | ||
| 267 | .REPEAT ;AN000; | ||
| 268 | ; | ||
| 269 | INIT_PQUEUE PAN_INSTALL_DOS ;AN000; initialize queue | ||
| 270 | PREPARE_PANEL PAN_DISKCOPY ;AN000; | ||
| 271 | PREPARE_PANEL PAN_HBAR ;AN000; | ||
| 272 | PREPARE_CHILDREN ;AN000; | ||
| 273 | DISPLAY_PANEL ;AN000; | ||
| 274 | ; | ||
| 275 | GET_FUNCTION FK_ENT_ESC_F3 ;AN002;GHG get user entered function (ENTER or ESC ) | ||
| 276 | ; | ||
| 277 | .IF < N_USER_FUNC ne E_ENTER > ;AN002;GHG if user entered ENTER key | ||
| 278 | GOTO PROCESS_ESC_F3 ;AN002;GHG exit to DOS command line | ||
| 279 | .ENDIF ;AN002;GHG | ||
| 280 | ; | ||
| 281 | FIND_FILE S_AUTO_REBOOT, E_FILE_ATTR ;AN000;DT Look for AUTOEXEC.BAT (INSTALL diskette) | ||
| 282 | .LEAVE < nc > ;AN000;DT | ||
| 283 | HANDLE_ERROR ERR_DOS_DISK, E_RETURN ;AN000;DT | ||
| 284 | ; | ||
| 285 | .UNTIL ;AN000;DT | ||
| 286 | ; | ||
| 287 | .IF < MEM_SIZE ne 256 > near ;AN000;DT | ||
| 288 | CALL HOOK_INT_2F ;AN000;GHG | ||
| 289 | .ELSE ;AN000; | ||
| 290 | DEALLOCATE_MEMORY ;AN000; | ||
| 291 | CALL HOOK_INT_2F_256KB ;AN000; | ||
| 292 | .ENDIF ;AN000; | ||
| 293 | ; | ||
| 294 | INIT_VAR N_DSKCPY_ERR,E_DSKCPY_OK ;AN000;JW | ||
| 295 | EXEC_PROGRAM S_DISKCOPY,S_DISKCOPY_PARM,PARM_BLOCK,EXEC_NO_DIR;AN000; control will not return | ||
| 296 | .IF < c > ;AN000; | ||
| 297 | MOV EXEC_ERR,TRUE ;AN000; | ||
| 298 | .ENDIF ;AN000; | ||
| 299 | CALL RESTORE_INT_2F ;AN000;GHG | ||
| 300 | ; | ||
| 301 | .UNTIL < N_DSKCPY_ERR ne E_DSKCPY_RETRY > near ;AN000;JW | ||
| 302 | ; | ||
| 303 | .IF < MEM_SIZE eq 256 > near ;AN000;DT | ||
| 304 | CLEAR_SCREEN ;AN000; | ||
| 305 | DISPLAY_MESSAGE 12 ;AN000;DT Insert SELECT diskette | ||
| 306 | .REPEAT ;AN000; | ||
| 307 | CALL GET_ENTER_KEY ;AN000; get user entered function | ||
| 308 | FIND_FILE S_DOS_SEL_360, E_FILE_ATTR ;AN000; | ||
| 309 | .LEAVE < nc > ;AN000; | ||
| 310 | DISPLAY_MESSAGE 11 ;AN000;DT Beep | ||
| 311 | .UNTIL ;AN000; | ||
| 312 | ALLOCATE_MEMORY ;AN000; | ||
| 313 | CALL INITIALIZE ;AN000;DT and read them in | ||
| 314 | INITIALIZE_BCHAR BCHAR ;AN000;Initialize the background character | ||
| 315 | INSERT_DISK SUB_INSTALL_COPY, S_DOS_COM_360 ;AN000;JW | ||
| 316 | .ENDIF ;AN000; | ||
| 317 | .IF < EXEC_ERR eq TRUE > ;AN000; | ||
| 318 | HANDLE_ERROR ERR_GENERAL, E_RETURN ;AN000; | ||
| 319 | GOTO MAKE_BACKUP_DISKETTE ;AN000; | ||
| 320 | .ENDIF ;AN000; | ||
| 321 | CALL CURSOROFF ;AN000; set cursor off | ||
| 322 | ; | ||
| 323 | OR SEL_FLG,INSTALLRW ;AN000; indicate INSTALL diskette is R/W | ||
| 324 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 325 | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| 326 | ; � Create the CONFIG.340, AUTOEXEC.340, and SHELL.BAT on the � | ||
| 327 | ; � INSTALL COPY diskette in drive A: � | ||
| 328 | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| 329 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 330 | CREATE_CONFIG S_CONFIG_NEW, N_RETCODE ;AN000; | ||
| 331 | .IF c ;AN000; | ||
| 332 | GOTO INSTALL_ERROR ;AN000; | ||
| 333 | .ENDIF ;AN000; | ||
| 334 | ; | ||
| 335 | INIT_VAR N_HOUSE_CLEAN,E_CLEAN_YES ;AN000; set to perform cleanup on exit | ||
| 336 | ; | ||
| 337 | CREATE_AUTOEXEC S_AUTO_NEW,E_DEST_SHELL,N_RETCODE ;AN000; create autoexec with SHELL commands | ||
| 338 | .IF c ;AN000; | ||
| 339 | GOTO INSTALL_ERROR ;AN000; | ||
| 340 | .ENDIF ;AN000; | ||
| 341 | ; | ||
| 342 | CREATE_SHELL S_SHELL_NEW, N_RETCODE ;AN000;DT | ||
| 343 | .IF c ;AN000;DT | ||
| 344 | GOTO INSTALL_ERROR ;AN000;DT | ||
| 345 | .ENDIF ;AN000;DT | ||
| 346 | ; | ||
| 347 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 348 | ; ������������������������������������Ŀ | ||
| 349 | ; �DISK_PARTITION_OPTION � | ||
| 350 | ; � � | ||
| 351 | ; � � | ||
| 352 | ; �������������������������������������� | ||
| 353 | ; | ||
| 354 | ; If the first fixed disk is not new (existing partition) | ||
| 355 | ; goto different screen. Else present screen with partition | ||
| 356 | ; options. | ||
| 357 | ; | ||
| 358 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 359 | .IF < N_DISK_1 eq E_DISK_VAL_PART > ;AN000; if first disk has partitions | ||
| 360 | GOTO BOTH_DISK_SCREEN ;AN000; goto next screen (BOTH_DISK) | ||
| 361 | .ENDIF ;AN000; | ||
| 362 | ; | ||
| 363 | DISK_PARTITION_OPTION: ;AN000; | ||
| 364 | INIT_VAR N_DISK_NUM, '1' ;AN000;JW | ||
| 365 | INIT_CHAR N_DISK_NUM, E_DISK_ROW, E_DISK_COL, SUB_FIXED_1 ;AN000; display the disk number JW | ||
| 366 | ; | ||
| 367 | INIT_PQUEUE PAN_FIXED_FIRST ;AN000; initialize queue | ||
| 368 | PREPARE_PANEL SUB_FIXED_1 ;AN000; prepare fixed disk 1 message | ||
| 369 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 370 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 371 | INIT_SCROLL SCR_FIXED_FIRST, F_PARTITION ;AN000; | ||
| 372 | DISPLAY_PANEL ;AN000; display first fixed disk partition screen | ||
| 373 | ; | ||
| 374 | GET_SCROLL SCR_FIXED_FIRST,F_PARTITION,FK_SCROLL ;AN000; get user selected option for creating partitions | ||
| 375 | ; | ||
| 376 | PROCESS_F3 ;AN000; | ||
| 377 | PROCESS_ESC ;AN000; | ||
| 378 | ; | ||
| 379 | COPY_WORD F_PARTITION, I_USER_INDEX ;AN000; | ||
| 380 | .IF < F_PARTITION eq E_PART_DEFAULT > ;AN000; | ||
| 381 | INIT_VAR N_FORMAT_MODE, E_FORMAT_SELECT ;AN000; | ||
| 382 | .ELSE ;AN000; | ||
| 383 | INIT_VAR N_FORMAT_MODE, E_FORMAT_NEW ;AN000; | ||
| 384 | .ENDIF ;AN000; | ||
| 385 | ; | ||
| 386 | SAVE_PARAMETERS S_SELECT_TMP, N_RETCODE ;AN000; | ||
| 387 | .IF c ;AN000; | ||
| 388 | GOTO INSTALL_ERROR ;AN000; | ||
| 389 | .ENDIF ;AN000; | ||
| 390 | ; | ||
| 391 | CHANGE_AUTOEXEC S_AUTO_REBOOT, S_AUTO_FDISK ;AN000; | ||
| 392 | .IF c ;AN000; | ||
| 393 | GOTO INSTALL_ERROR ;AN000; | ||
| 394 | .ENDIF ;AN000; | ||
| 395 | ; | ||
| 396 | .IF < MEM_SIZE eq 256 > ;AN000;DT | ||
| 397 | DEALLOCATE_MEMORY ;AN000; | ||
| 398 | .ENDIF ;AN000;DT | ||
| 399 | ; | ||
| 400 | .IF < F_PARTITION eq E_PART_USER > near ;AN000; if user selected to define his own partition sizes | ||
| 401 | ; | ||
| 402 | SAVE_PANEL_LIST ;AN000; save panel list for test team | ||
| 403 | INIT_VAR S_STR120_1, 0 ;AN000; | ||
| 404 | APPEND_STRING S_STR120_1,M_STR120_1,S_SLASH_Q ;AN000;DT add /Q parameter (no insert disk at end) | ||
| 405 | CALL CURSORON ;AN000; set cursor to show | ||
| 406 | EXEC_PROGRAM S_FDISK,S_STR120_1,PARM_BLOCK,EXEC_NO_DIR ;AN000; control will not return | ||
| 407 | .IF c ;AN000; | ||
| 408 | GOTO FDISK_ERROR ;AN000; | ||
| 409 | .ENDIF ;AN000; | ||
| 410 | ; | ||
| 411 | GOTO FDISK_REBOOT ;AN000;DT | ||
| 412 | .ENDIF ;AN000; | ||
| 413 | ; | ||
| 414 | INIT_VAR N_WORD_1, 1 ;AN000; | ||
| 415 | SCAN_DISK_TABLE E_DISK_1, N_WORD_1, N_RETCODE ;AN000; | ||
| 416 | .IF < N_RETCODE eq 0 > and ;AN000; | ||
| 417 | .IF < N_NAME_PART eq E_FREE_MEM_DISK > ;AN000; | ||
| 418 | WORD_TO_CHAR N_SIZE_PART, S_STR120_2 ;AN000; | ||
| 419 | MERGE_STRING S_STR120_1,M_STR120_1,SC_1,SC_PRI ;AN000; | ||
| 420 | APPEND_STRING S_STR120_1,M_STR120_1,S_STR120_2;AN000; | ||
| 421 | APPEND_STRING S_STR120_1,M_STR120_1,S_SLASH_Q ;AN000;DT add /Q parameter (no insert disk at end) | ||
| 422 | EXEC_PROGRAM S_FDISK,S_STR120_1,PARM_BLOCK,EXEC_NO_DIR ;AN000; | ||
| 423 | .IF c ;AN000; | ||
| 424 | GOTO FDISK_ERROR ;AN000; | ||
| 425 | .ENDIF ;AN000; | ||
| 426 | .ENDIF ;AN000; | ||
| 427 | ; | ||
| 428 | .IF < N_DISK_2 eq E_DISK_NO_PART > near ;AN000; | ||
| 429 | INIT_VAR N_WORD_1, 1 ;AN000; | ||
| 430 | SCAN_DISK_TABLE E_DISK_2, N_WORD_1, N_RETCODE ;AN000; | ||
| 431 | .IF < N_RETCODE eq 0 > and near ;AN000; | ||
| 432 | .IF < N_NAME_PART eq E_FREE_MEM_DISK > near ;AN000; | ||
| 433 | WORD_TO_CHAR N_SIZE_PART, S_STR120_2 ;AN000; | ||
| 434 | MERGE_STRING S_STR120_1,M_STR120_1,SC_2,SC_EXT ;AN000; | ||
| 435 | APPEND_STRING S_STR120_1,M_STR120_1,S_STR120_2;AN000; | ||
| 436 | APPEND_STRING S_STR120_1,M_STR120_1,SC_LOG ;AN000; | ||
| 437 | APPEND_STRING S_STR120_1,M_STR120_1,S_STR120_2;AN000; | ||
| 438 | APPEND_STRING S_STR120_1,M_STR120_1,S_SLASH_Q ;AN000;DT add /Q parameter (no insert disk at end) | ||
| 439 | EXEC_PROGRAM S_FDISK,S_STR120_1,PARM_BLOCK,EXEC_NO_DIR ;AN000; | ||
| 440 | .IF c ;AN000; | ||
| 441 | GOTO FDISK_ERROR ;AN000; | ||
| 442 | .ENDIF ;AN000; | ||
| 443 | .ENDIF ;AN000; | ||
| 444 | .ENDIF ;AN000; | ||
| 445 | ; | ||
| 446 | FDISK_REBOOT: ;AN000; | ||
| 447 | .IF < MEM_SIZE eq 256 > ;AN000;DT | ||
| 448 | CLEAR_SCREEN ;AN000; | ||
| 449 | DISPLAY_MESSAGE 9 ;AN000; | ||
| 450 | .ELSE ;AN000; | ||
| 451 | CALL CURSOROFF ;AN000; set to hide cursor | ||
| 452 | INIT_PQUEUE PAN_REBOOT ;AN000; initialize queue | ||
| 453 | PREPARE_PANEL SUB_REBOOT_KEYS ;AN000; | ||
| 454 | DISPLAY_PANEL ;AN000; | ||
| 455 | SAVE_PANEL_LIST ;AN000; save panel list for test team | ||
| 456 | .ENDIF ;AN000; | ||
| 457 | ; | ||
| 458 | GET_FUNCTION FK_REBOOT ;AN000; Reboot | ||
| 459 | ; | ||
| 460 | FDISK_ERROR: ;AN000; | ||
| 461 | .IF < MEM_SIZE eq 256 > near ;AN000;DT | ||
| 462 | CLEAR_SCREEN ;AN000; | ||
| 463 | DISPLAY_MESSAGE 12 ;AN000;DT Insert SELECT diskette | ||
| 464 | ; | ||
| 465 | .REPEAT ;AN000; | ||
| 466 | GET_FUNCTION FK_ENT ;AN000; get user entered function | ||
| 467 | FIND_FILE S_DOS_SEL_360, E_FILE_ATTR ;AN000; | ||
| 468 | .LEAVE < nc > ;AN000; | ||
| 469 | DISPLAY_MESSAGE 11 ;AN000;DT Beep | ||
| 470 | .UNTIL ;AN000; | ||
| 471 | ; | ||
| 472 | ALLOCATE_MEMORY ;AN000; | ||
| 473 | CALL INITIALIZE ;AN000;DT and read them in | ||
| 474 | .ENDIF ;AN000; | ||
| 475 | .IF < SUB_ERROR eq 1 > ;AN023; If error is because no Primary DOS partition | ||
| 476 | CALL CURSOROFF ;AN023; set cursor off | ||
| 477 | GOTO DISK_PARTITION_OPTION ;AN023; return to partition options | ||
| 478 | .ENDIF ;AN023; | ||
| 479 | GOTO INSTALL_ERROR ;AN000; | ||
| 480 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 481 | ; | ||
| 482 | ; ������������������������������������Ŀ | ||
| 483 | ; �BOTH_DISK_SCREEN � | ||
| 484 | ; � � | ||
| 485 | ; � � | ||
| 486 | ; �������������������������������������� | ||
| 487 | ; | ||
| 488 | ; Ask user if they want to change the existing partition | ||
| 489 | ; layout or leave it the same (for both disks if 2nd exists). | ||
| 490 | ; | ||
| 491 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 492 | BOTH_DISK_SCREEN: ;AN000; | ||
| 493 | BOTH_DISK_PART_OPTION: ;AN000; | ||
| 494 | ; | ||
| 495 | .IF < N_DISK_1_S2 eq E_SPACE_EDOS > or ;AN000; | ||
| 496 | .IF < N_DISK_1_S2 eq E_SPACE_DISK > ;AN000; | ||
| 497 | INIT_VAR N_DISK_NUM, '1' ;AN000;JW | ||
| 498 | .ELSEIF < N_DISK_2_S2 eq E_SPACE_EDOS > or ;AN000; | ||
| 499 | .IF < N_DISK_2_S2 eq E_SPACE_DISK > ;AN000; | ||
| 500 | INIT_VAR N_DISK_NUM, '2' ;AN000;JW | ||
| 501 | .ELSE ;AN000; | ||
| 502 | GOTO DATE_TIME_SCREEN ;AN000; no more partitions to be created | ||
| 503 | .ENDIF ;AN000; | ||
| 504 | ; | ||
| 505 | INIT_CHAR N_DISK_NUM, E_DISK_ROW, E_DISK_COL, SUB_FIXED_1 ;AN000; display the disk number JW | ||
| 506 | INIT_PQUEUE PAN_FIXED_BOTH ;AN000; initialize queue | ||
| 507 | PREPARE_PANEL SUB_FIXED_1 ;AN000; prepare fixed disk message JW | ||
| 508 | PREPARE_PANEL PAN_HBAR ;AN000; prepare horizontal bar | ||
| 509 | PREPARE_CHILDREN ;AN000; prepare child panels | ||
| 510 | INIT_SCROLL SCR_FIXED_BOTH, F_PARTITION ;AN000; | ||
| 511 | DISPLAY_PANEL ;AN000; display first fixed disk partition screen | ||
| 512 | ; | ||
| 513 | GET_SCROLL SCR_FIXED_BOTH,F_PARTITION,FK_SCROLL ;AN000; get user selected option for creating partitions | ||
| 514 | ; | ||
| 515 | PROCESS_ESC ;AN000; | ||
| 516 | PROCESS_F3 ;AN000; | ||
| 517 | ; | ||
| 518 | COPY_WORD F_PARTITION, I_USER_INDEX ;AN000; | ||
| 519 | CHANGE_AUTOEXEC S_AUTO_REBOOT, S_AUTO_FDISK ;AN000; | ||
| 520 | .IF c ;AN000; | ||
| 521 | GOTO INSTALL_ERROR ;AN000; | ||
| 522 | .ENDIF ;AN000; | ||
| 523 | ; | ||
| 524 | .IF < F_PARTITION eq E_PART_USER > near ;AN000; if user will define his own partition | ||
| 525 | ; | ||
| 526 | .IF < MEM_SIZE eq 256 > ;AN000;DT | ||
| 527 | DEALLOCATE_MEMORY ;AN000; | ||
| 528 | .ENDIF ;AN000;DT | ||
| 529 | ; | ||
| 530 | INIT_VAR N_FORMAT_MODE, E_FORMAT_USED ;AN000; | ||
| 531 | SAVE_PARAMETERS S_SELECT_TMP, N_RETCODE ;AN000; | ||
| 532 | SAVE_PANEL_LIST ;AN000; save panel list for test team | ||
| 533 | INIT_VAR S_STR120_1, 0 ;AN000; | ||
| 534 | APPEND_STRING S_STR120_1,M_STR120_1,S_SLASH_Q ;AN000;DT add /Q parameter (no insert disk at end) | ||
| 535 | CALL CURSORON ;AN000; set to show cursor | ||
| 536 | EXEC_PROGRAM S_FDISK,S_STR120_1,PARM_BLOCK,EXEC_NO_DIR ;AN000; control will not return | ||
| 537 | .IF c ;AN000; | ||
| 538 | .IF < SUB_ERROR eq 2 > ;AN034; SEH If user made no changes to partition | ||
| 539 | CALL CURSOROFF ;AN034; SEH Set cursor off | ||
| 540 | GOTO BOTH_DISK_SCREEN ;AN034; SEH Go to previous screen | ||
| 541 | .ELSE ;AN034; SEH | ||
| 542 | GOTO FDISK_ERROR ;AN000; | ||
| 543 | .ENDIF ;AN034; SEH | ||
| 544 | .ENDIF ;AN000; | ||
| 545 | ; | ||
| 546 | GOTO FDISK_REBOOT ;AN000;DT | ||
| 547 | .ELSE ;AN000; | ||
| 548 | GOTO DATE_TIME_SCREEN ;AN000; no more partitions to be created | ||
| 549 | .ENDIF ;AN000; | ||
| 550 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 551 | ; | ||
| 552 | ; GET KEY ROUTINE (256KB) | ||
| 553 | ; | ||
| 554 | ; Input: none | ||
| 555 | ; | ||
| 556 | ; Output: none | ||
| 557 | ; | ||
| 558 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 559 | PUBLIC GET_ENTER_KEY ;AN063;SEH | ||
| 560 | GET_ENTER_KEY PROC NEAR ;AN000;DT | ||
| 561 | GEKEY_AGN: ;AN000;DT | ||
| 562 | MOV AH,0 ;AN000;DT | ||
| 563 | INT 16H ;AN000;DT get keystroke | ||
| 564 | CMP AL,13 ;AN000;DT If ENTER the continue | ||
| 565 | JE GEKEY_EXIT ;AN000;DT | ||
| 566 | DISPLAY_MESSAGE 11 ;AN000;DT BEEP | ||
| 567 | JMP GEKEY_AGN ;AN000;DT | ||
| 568 | ; | ||
| 569 | GEKEY_EXIT: ;AN000;DT | ||
| 570 | RET ;AN000;DT | ||
| 571 | GET_ENTER_KEY ENDP ;AN000;DT | ||
| 572 | ; | ||
| 573 | ; | ||
| 574 | SELECT ENDS ;AN000; | ||
| 575 | END ;AN000; | ||
| 576 | \ No newline at end of file | ||