seg000:0000 ;
seg000:0000 ; -=========================================================================¬
seg000:0000 ; ¦     This file is generated by The Interactive Disassembler (IDA)        ¦
seg000:0000 ; ¦     Copyright (c) 2010 by Hex-Rays SA, <support@hex-rays.com>           ¦
seg000:0000 ; ¦                      Licensed to: Freeware version                      ¦
seg000:0000 ; L=========================================================================-
seg000:0000 ;
seg000:0000 ; Input MD5   : 60ADAF7E26AAC0C3FD48E6F4E2774E73
seg000:0000
seg000:0000 ; File Name   : D:\Documents and Settings\Erdo­an Tan\Desktop\FDISK70.COM
seg000:0000 ; Format      : MS-DOS executable (EXE)
seg000:0000 ; Base Address: 0h Range: 0h-11CE0h Loaded length: E210h
seg000:0000 ; Entry Point : 0:6CAA
seg000:0000
seg000:0000                 .386
seg000:0000                 .model large
seg000:0000
seg000:0000 ; ===========================================================================
seg000:0000
seg000:0000 ; Segment type: Pure code
seg000:0000 seg000          segment byte public 'CODE' use16
seg000:0000                 assume cs:seg000
seg000:0000                 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
seg000:0000 byte_0          db 2 dup(0)             ; CODE XREF: seg000:6D3Fp
seg000:0002 word_2          dw 0                    ; DATA XREF: seg000:6D15w
seg000:0004 algn_4:
seg000:0004                 align 10h
seg000:0010
seg000:0010 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0010
seg000:0010
seg000:0010 _setenvp        proc near               ; CODE XREF: seg000:_@Fp
seg000:0010                 retn
seg000:0010 _setenvp        endp
seg000:0010
seg000:0011
seg000:0011 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0011
seg000:0011
seg000:0011 _nullcheck      proc near               ; CODE XREF: _exit_+4Fp
seg000:0011                 sub     ax, ax
seg000:0013                 retn
seg000:0013 _nullcheck      endp
seg000:0013
seg000:0014
seg000:0014 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0014
seg000:0014
seg000:0014 _fptrap         proc near               ; CODE XREF: _cinit+42j
seg000:0014                                         ; _output+275p ...
seg000:0014                 retn
seg000:0014 _fptrap         endp
seg000:0014
seg000:0015 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0015                 retn
seg000:0016
seg000:0016 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0016
seg000:0016
seg000:0016 _FF_MSGBANNER   proc near               ; CODE XREF: seg000:6CD5p
seg000:0016                                         ; _chkstk-EA7p
seg000:0016                 retn
seg000:0016 _FF_MSGBANNER   endp
seg000:0016
seg000:0017
seg000:0017 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0017
seg000:0017
seg000:0017 _NMSG_WRITE     proc near               ; CODE XREF: seg000:6CDBp
seg000:0017                                         ; _chkstk-EA4p
seg000:0017                 retn
seg000:0017 _NMSG_WRITE     endp
seg000:0017
seg000:0018
seg000:0018 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0018
seg000:0018 ; Attributes: bp-based frame
seg000:0018
seg000:0018 main            proc far                ; CODE XREF: seg000:6D5Ap
seg000:0018
seg000:0018 var_6           = word ptr -6
seg000:0018 var_4           = byte ptr -4
seg000:0018 var_2           = word ptr -2
seg000:0018 arg_0           = word ptr  6
seg000:0018
seg000:0018                 push    bp
seg000:0019                 mov     bp, sp
seg000:001B                 sub     sp, 6
seg000:001E
seg000:001E loc_1E:
seg000:001E                 push    ds
seg000:001F                 push    cs
seg000:0020                 pop     ds
seg000:0021                 assume ds:seg000
seg000:0021                 mov     dx, offset int23h
seg000:0024
seg000:0024 loc_24:
seg000:0024                 mov     ax, 2523h
seg000:0027                 int     21h             ; DOS - SET INTERRUPT VECTOR
seg000:0027                                         ; AL = interrupt number
seg000:0027                                         ; DS:DX = new vector to be used for specified interrupt
seg000:0029                 pop     ds
seg000:002A                 assume ds:nothing
seg000:002A
seg000:002A loc_2A:
seg000:002A                 jmp     short _main_00
seg000:002C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:002C
seg000:002C int23h:                                 ; DATA XREF: main+9o
seg000:002C                 iret
seg000:002D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:002D
seg000:002D _main_00:                               ; CODE XREF: main:loc_2Aj
seg000:002D                 mov     ds:no_fatal_error, 1
seg000:0032                 call    preload_messages
seg000:0035                 or      al, al
seg000:0037                 jz      short loc_4F
seg000:0039
seg000:0039 loc_39:
seg000:0039                 call    get_yes_no_values
seg000:003C                 or      al, al
seg000:003E                 jz      short loc_4F
seg000:0040
seg000:0040 _main_01:
seg000:0040                 push    [bp+arg_0]
seg000:0043                 push    word ptr [bp+4]
seg000:0046
seg000:0046 loc_46:
seg000:0046                 call    parse_command_line
seg000:0049                 pop     bx
seg000:004A
seg000:004A loc_4A:
seg000:004A                 pop     bx
seg000:004B                 or      al, al
seg000:004D
seg000:004D loc_4D:
seg000:004D                 jnz     short loc_52
seg000:004F
seg000:004F loc_4F:                                 ; CODE XREF: main+1Fj
seg000:004F                                         ; main+26j
seg000:004F                 jmp     _main_33
seg000:0052 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0052
seg000:0052 loc_52:                                 ; CODE XREF: main:loc_4Dj
seg000:0052                 cmp     ds:primary_flag, 0
seg000:0057
seg000:0057 loc_57:
seg000:0057                 jz      short loc_5C
seg000:0059
seg000:0059 loc_59:
seg000:0059                 jmp     loc_103
seg000:005C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:005C
seg000:005C loc_5C:                                 ; CODE XREF: main:loc_57j
seg000:005C                 cmp     ds:extended_flag, 0
seg000:0061
seg000:0061 loc_61:
seg000:0061                 jnz     short loc_78
seg000:0063                 cmp     ds:logical_flag, 0
seg000:0068                 jnz     short loc_78
seg000:006A
seg000:006A loc_6A:
seg000:006A                 cmp     ds:disk_flag, 0
seg000:006F                 jnz     short loc_78
seg000:0071
seg000:0071 loc_71:
seg000:0071                 cmp     ds:mbr_flag, 0
seg000:0076                 jz      short loc_7B
seg000:0078
seg000:0078 loc_78:                                 ; CODE XREF: main:loc_61j
seg000:0078                                         ; main+50j ...
seg000:0078                 jmp     loc_103
seg000:007B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:007B
seg000:007B loc_7B:                                 ; CODE XREF: main+5Ej
seg000:007B                 mov     ds:reboot_flag, 0
seg000:0080                 call    check_valid_environment
seg000:0083                 or      al, al
seg000:0085                 jnz     short _main_02
seg000:0087                 jmp     _main_33
seg000:008A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:008A
seg000:008A _main_02:                               ; CODE XREF: main+6Dj
seg000:008A                 call    init_video_information
seg000:008D                 mov     ax, 79
seg000:0090                 push    ax
seg000:0091                 mov     ax, 24
seg000:0094                 push    ax
seg000:0095                 sub     ax, ax
seg000:0097                 push    ax
seg000:0098                 push    ax
seg000:0099                 call    clear_screen
seg000:009C                 add     sp, 8
seg000:009F                 mov     [bp+var_6], 0
seg000:00A4
seg000:00A4 _main_03:                               ; CODE XREF: main+9Bj
seg000:00A4                 mov     bx, [bp+var_6]
seg000:00A7                 mov     ds:good_disk[bx], 1
seg000:00AC                 inc     [bp+var_6]
seg000:00AF                 cmp     [bp+var_6], 8
seg000:00B3                 jb      short _main_03
seg000:00B5                 call    get_disk_info
seg000:00B8                 or      al, al
seg000:00BA                 jz      short _main_07
seg000:00BC                 call    init_partition_tables
seg000:00BF                 mov     ds:cur_disk, 0
seg000:00C4                 cmp     ds:status_flag, 1
seg000:00C9                 jnz     short _main_06
seg000:00CB                 call    change_current_drive
seg000:00CE                 jmp     short _main_07
seg000:00D0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:00D0
seg000:00D0 _main_06:                               ; CODE XREF: main+B1j
seg000:00D0                 call    do_main_menu
seg000:00D3                 call    write_info_to_disk
seg000:00D6
seg000:00D6 _main_07:                               ; CODE XREF: main+A2j
seg000:00D6                                         ; main+B6j
seg000:00D6                 cmp     ds:status_flag, 0
seg000:00DB                 jz      short _main_08
seg000:00DD                 jmp     _main_33
seg000:00E0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:00E0
seg000:00E0 _main_08:                               ; CODE XREF: main+C3j
seg000:00E0                 cmp     ds:reboot_flag, 0
seg000:00E5                 jz      short _main_09
seg000:00E7                 call    reboot_system
seg000:00EA                 sub     ax, ax
seg000:00EC                 push    ax
seg000:00ED                 push    ax
seg000:00EE                 call    DOSEXIT
seg000:00F3
seg000:00F3 _main_09:                               ; CODE XREF: main+CDj
seg000:00F3                 cmp     ds:no_fatal_error, 0
seg000:00F8                 jnz     short _main_10
seg000:00FA                 jmp     _main_33
seg000:00FD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:00FD
seg000:00FD _main_10:                               ; CODE XREF: main+E0j
seg000:00FD                 call    reset_video_information
seg000:0100                 jmp     _main_33
seg000:0103 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0103
seg000:0103 loc_103:                                ; CODE XREF: main:loc_59j
seg000:0103                                         ; main:loc_78j
seg000:0103                 cmp     ds:primary_flag, 0
seg000:0108                 jnz     short _main_11
seg000:010A                 cmp     ds:extended_flag, 0
seg000:010F                 jnz     short _main_11
seg000:0111                 cmp     ds:logical_flag, 0
seg000:0116                 jz      short loc_11F
seg000:0118
seg000:0118 _main_11:                               ; CODE XREF: main+F0j
seg000:0118                                         ; main+F7j
seg000:0118                 cmp     ds:disk_flag, 0
seg000:011D                 jnz     short _main_14
seg000:011F
seg000:011F loc_11F:                                ; CODE XREF: main+FEj
seg000:011F                 cmp     ds:mbr_flag, 0
seg000:0124                 jnz     short _main_14
seg000:0126
seg000:0126 _main_12:                               ; CODE XREF: main+15Bj
seg000:0126                 mov     al, -1
seg000:0128                 push    ax
seg000:0129                 sub     al, al
seg000:012B                 push    ax
seg000:012C                 sub     ax, ax
seg000:012E                 push    ax
seg000:012F                 push    ax
seg000:0130                 mov     ax, 2
seg000:0133                 push    ax
seg000:0134                 mov     ax, 8
seg000:0137
seg000:0137 _main_13:                               ; CODE XREF: main+18Cj
seg000:0137                 push    ax
seg000:0138                 call    display_msg
seg000:013B                 add     sp, 12
seg000:013E                 jmp     _main_33
seg000:0141 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0141
seg000:0141 _main_14:                               ; CODE XREF: main+105j
seg000:0141                                         ; main+10Cj
seg000:0141                 mov     ds:reboot_flag, 0
seg000:0146                 mov     [bp+var_6], 0
seg000:014B
seg000:014B _main_15:                               ; CODE XREF: main+142j
seg000:014B                 mov     bx, [bp+var_6]
seg000:014E                 mov     ds:good_disk[bx], 1
seg000:0153                 inc     [bp+var_6]
seg000:0156                 cmp     [bp+var_6], 8
seg000:015A                 jb      short _main_15
seg000:015C                 call    get_disk_info
seg000:015F                 or      al, al
seg000:0161                 jnz     short _main_16
seg000:0163                 jmp     _main_33
seg000:0166 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0166
seg000:0166 _main_16:                               ; CODE XREF: main+149j
seg000:0166                 mov     al, ds:cur_disk_buff
seg000:0169                 cbw
seg000:016A                 inc     ax
seg000:016B                 mov     cl, ds:number_of_drives
seg000:016F                 sub     ch, ch
seg000:0171                 cmp     ax, cx
seg000:0173                 jg      short _main_12
seg000:0175                 cmp     ds:mbr_flag, 1
seg000:017A                 jz      short loc_17F
seg000:017C                 jmp     _main_22
seg000:017F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:017F
seg000:017F loc_17F:                                ; CODE XREF: main+162j
seg000:017F                 mov     al, 1
seg000:0181                 push    ax
seg000:0182                 sub     al, al
seg000:0184                 push    ax
seg000:0185                 push    ax
seg000:0186                 sub     ax, ax
seg000:0188                 push    ax
seg000:0189                 call    read_boot_record
seg000:018C                 add     sp, 8
seg000:018F                 or      al, al
seg000:0191                 jnz     short _main_18
seg000:0193
seg000:0193 _main_17:                               ; CODE XREF: main:loc_1FEj
seg000:0193                 mov     al, -1
seg000:0195                 push    ax
seg000:0196                 sub     al, al
seg000:0198                 push    ax
seg000:0199                 sub     ax, ax
seg000:019B                 push    ax
seg000:019C                 push    ax
seg000:019D                 mov     ax, 2
seg000:01A0                 push    ax
seg000:01A1                 mov     ax, 11
seg000:01A4                 jmp     short _main_13
seg000:01A6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:01A6
seg000:01A6 _main_18:                               ; CODE XREF: main+179j
seg000:01A6                 cmp     ds:boot_record+1FEh, 55h
seg000:01AB                 jnz     short loc_1D2
seg000:01AD                 cmp     ds:boot_record+1FFh, 0AAh
seg000:01B2                 jnz     short loc_1D2
seg000:01B4                 mov     [bp+var_6], 0
seg000:01B9                 jmp     short loc_1BE
seg000:01BB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:01BB
seg000:01BB _main_20:                               ; CODE XREF: main+1B8j
seg000:01BB                 inc     [bp+var_6]
seg000:01BE
seg000:01BE loc_1BE:                                ; CODE XREF: main+1A1j
seg000:01BE                 cmp     [bp+var_6], 1BDh
seg000:01C3                 ja      short loc_1EC
seg000:01C5                 mov     bx, [bp+var_6]
seg000:01C8                 mov     al, ds:master_boot_record[bx]
seg000:01CC                 mov     ds:boot_record[bx], al
seg000:01D0                 jmp     short _main_20
seg000:01D2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:01D2
seg000:01D2 loc_1D2:                                ; CODE XREF: main+193j
seg000:01D2                                         ; main+19Aj
seg000:01D2                 mov     [bp+var_6], 0
seg000:01D7
seg000:01D7 loc_1D7:                                ; CODE XREF: main+1D2j
seg000:01D7                 mov     bx, [bp+var_6]
seg000:01DA                 mov     al, ds:master_boot_record[bx]
seg000:01DE                 mov     ds:boot_record[bx], al
seg000:01E2                 inc     [bp+var_6]
seg000:01E5                 cmp     [bp+var_6], 1FFh
seg000:01EA                 jbe     short loc_1D7
seg000:01EC
seg000:01EC loc_1EC:                                ; CODE XREF: main+1ABj
seg000:01EC                 sub     al, al
seg000:01EE                 push    ax
seg000:01EF                 sub     ax, ax
seg000:01F1                 push    ax
seg000:01F2                 call    write_boot_record
seg000:01F5                 pop     bx
seg000:01F6                 pop     bx
seg000:01F7                 or      al, al
seg000:01F9                 jz      short loc_1FE
seg000:01FB                 jmp     _main_33
seg000:01FE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:01FE
seg000:01FE loc_1FE:                                ; CODE XREF: main+1E1j
seg000:01FE                 jmp     short _main_17
seg000:0200 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0200
seg000:0200 _main_22:                               ; CODE XREF: main+164j
seg000:0200                 call    init_partition_tables
seg000:0203                 mov     al, ds:cur_disk_buff
seg000:0206                 mov     ds:cur_disk, al
seg000:0209                 cmp     ds:primary_flag, 1
seg000:020E                 jnz     short _main_25
seg000:0210                 mov     al, 1
seg000:0212                 push    ax
seg000:0213                 call    find_partition_type
seg000:0216                 pop     bx
seg000:0217                 or      al, al
seg000:0219                 jnz     short _main_25
seg000:021B                 mov     al, 4
seg000:021D                 push    ax
seg000:021E                 call    find_partition_type
seg000:0221                 pop     bx
seg000:0222                 or      al, al
seg000:0224                 jnz     short _main_25
seg000:0226                 mov     al, 6
seg000:0228                 push    ax
seg000:0229                 call    find_partition_type
seg000:022C                 pop     bx
seg000:022D                 or      al, al
seg000:022F                 jnz     short _main_25
seg000:0231                 push    ax
seg000:0232                 call    find_part_free_space
seg000:0235                 pop     bx
seg000:0236                 mov     [bp+var_4], al
seg000:0239                 mov     al, 22
seg000:023B                 imul    [bp+var_4]
seg000:023E                 mov     bx, ax
seg000:0240                 mov     ax, ds:primary_buff
seg000:0243                 cmp     ds:free_space_mbytes_unused[bx], ax
seg000:0247                 ja      short _main_23
seg000:0249                 mov     ax, ds:free_space_space[bx]
seg000:024D                 jmp     short _main_24
seg000:024F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:024F
seg000:024F _main_23:                               ; CODE XREF: main+22Fj
seg000:024F                 mov     al, ds:cur_disk_buff
seg000:0252                 push    ax
seg000:0253                 push    ds:primary_buff
seg000:0257                 call    mbytes_to_cylinders
seg000:025A                 pop     bx
seg000:025B                 pop     bx
seg000:025C
seg000:025C _main_24:                               ; CODE XREF: main+235j
seg000:025C                 mov     [bp+var_2], ax
seg000:025F                 sub     al, al
seg000:0261                 push    ax
seg000:0262                 mov     al, 80h
seg000:0264                 push    ax
seg000:0265                 mov     al, [bp+var_4]
seg000:0268                 push    ax
seg000:0269                 push    [bp+var_2]
seg000:026C                 call    make_partition
seg000:026F                 add     sp, 8
seg000:0272
seg000:0272 _main_25:                               ; CODE XREF: main+1F6j
seg000:0272                                         ; main+201j ...
seg000:0272                 cmp     ds:extended_flag, 1
seg000:0277                 jnz     short _main_29
seg000:0279                 cmp     ds:cur_disk, 1
seg000:027E                 jge     short _main_26
seg000:0280                 mov     al, 1
seg000:0282                 push    ax
seg000:0283                 call    find_partition_type
seg000:0286                 pop     bx
seg000:0287                 or      al, al
seg000:0289                 jnz     short _main_26
seg000:028B                 mov     al, 4
seg000:028D                 push    ax
seg000:028E                 call    find_partition_type
seg000:0291                 pop     bx
seg000:0292                 or      al, al
seg000:0294                 jnz     short _main_26
seg000:0296                 mov     al, 6
seg000:0298                 push    ax
seg000:0299                 call    find_partition_type
seg000:029C                 pop     bx
seg000:029D                 or      al, al
seg000:029F                 jz      short _main_29
seg000:02A1
seg000:02A1 _main_26:                               ; CODE XREF: main+266j
seg000:02A1                                         ; main+271j ...
seg000:02A1                 mov     al, 5
seg000:02A3                 push    ax
seg000:02A4                 call    find_partition_type
seg000:02A7                 pop     bx
seg000:02A8                 or      al, al
seg000:02AA                 jnz     short _main_29
seg000:02AC                 mov     al, 5
seg000:02AE                 push    ax
seg000:02AF                 call    find_part_free_space
seg000:02B2                 pop     bx
seg000:02B3                 mov     [bp+var_4], al
seg000:02B6                 mov     al, 22
seg000:02B8                 imul    [bp+var_4]
seg000:02BB                 mov     bx, ax
seg000:02BD                 mov     ax, ds:extended_buff
seg000:02C0                 cmp     ds:free_space_mbytes_unused[bx], ax
seg000:02C4                 ja      short _main_27
seg000:02C6                 mov     ax, ds:free_space_space[bx]
seg000:02CA                 jmp     short _main_28
seg000:02CC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:02CC
seg000:02CC _main_27:                               ; CODE XREF: main+2ACj
seg000:02CC                 mov     al, ds:cur_disk_buff
seg000:02CF                 push    ax
seg000:02D0                 push    ds:extended_buff
seg000:02D4                 call    mbytes_to_cylinders
seg000:02D7                 pop     bx
seg000:02D8                 pop     bx
seg000:02D9
seg000:02D9 _main_28:                               ; CODE XREF: main+2B2j
seg000:02D9                 mov     [bp+var_2], ax
seg000:02DC                 mov     al, 5
seg000:02DE                 push    ax
seg000:02DF                 sub     al, al
seg000:02E1                 push    ax
seg000:02E2                 mov     al, [bp+var_4]
seg000:02E5                 push    ax
seg000:02E6                 push    [bp+var_2]
seg000:02E9                 call    make_partition
seg000:02EC                 add     sp, 8
seg000:02EF
seg000:02EF _main_29:                               ; CODE XREF: main+25Fj
seg000:02EF                                         ; main+287j ...
seg000:02EF                 cmp     ds:logical_flag, 1
seg000:02F4                 jnz     short _main_32
seg000:02F6                 mov     al, 5
seg000:02F8                 push    ax
seg000:02F9                 call    find_partition_type
seg000:02FC                 pop     bx
seg000:02FD                 or      al, al
seg000:02FF                 jz      short _main_32
seg000:0301                 call    find_ext_free_space
seg000:0304                 mov     [bp+var_4], al
seg000:0307                 mov     al, 22
seg000:0309                 imul    [bp+var_4]
seg000:030C                 mov     bx, ax
seg000:030E                 mov     ax, ds:logical_buff
seg000:0311                 cmp     ds:free_space_mbytes_unused[bx], ax
seg000:0315                 ja      short _main_30
seg000:0317                 mov     ax, ds:free_space_space[bx]
seg000:031B                 jmp     short _main_31
seg000:031D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:031D
seg000:031D _main_30:                               ; CODE XREF: main+2FDj
seg000:031D                 mov     al, ds:cur_disk_buff
seg000:0320                 push    ax
seg000:0321                 push    ds:logical_buff
seg000:0325                 call    mbytes_to_cylinders
seg000:0328                 pop     bx
seg000:0329                 pop     bx
seg000:032A
seg000:032A _main_31:                               ; CODE XREF: main+303j
seg000:032A                 mov     [bp+var_2], ax
seg000:032D                 mov     al, [bp+var_4]
seg000:0330                 push    ax
seg000:0331                 push    [bp+var_2]
seg000:0334                 call    make_volume
seg000:0337                 pop     bx
seg000:0338                 pop     bx
seg000:0339
seg000:0339 _main_32:                               ; CODE XREF: main+2DCj
seg000:0339                                         ; main+2E7j
seg000:0339                 call    write_info_to_disk
seg000:033C
seg000:033C _main_33:                               ; CODE XREF: main:loc_4Fj
seg000:033C                                         ; main+6Fj ...
seg000:033C                 mov     ds:cur_disk, 0
seg000:0341                 cmp     ds:quiet_flag, 1
seg000:0346                 jnz     short _main_34
seg000:0348                 mov     al, 1
seg000:034A                 push    ax
seg000:034B                 call    find_partition_type
seg000:034E                 pop     bx
seg000:034F                 or      al, al
seg000:0351                 jnz     short _main_34
seg000:0353                 mov     al, 4
seg000:0355                 push    ax
seg000:0356                 call    find_partition_type
seg000:0359                 pop     bx
seg000:035A                 or      al, al
seg000:035C                 jnz     short _main_34
seg000:035E                 mov     al, 6
seg000:0360                 push    ax
seg000:0361                 call    find_partition_type
seg000:0364                 pop     bx
seg000:0365                 or      al, al
seg000:0367                 jnz     short _main_34
seg000:0369                 mov     ax, 1
seg000:036C                 jmp     short _main_36
seg000:036E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:036E
seg000:036E _main_34:                               ; CODE XREF: main+32Ej
seg000:036E                                         ; main+339j ...
seg000:036E                 cmp     ds:quiet_flag, 1
seg000:0373                 jnz     short _main_35
seg000:0375                 cmp     ds:primary_flag, 0
seg000:037A                 jnz     short _main_35
seg000:037C                 cmp     ds:extended_flag, 0
seg000:0381                 jnz     short _main_35
seg000:0383                 cmp     ds:logical_flag, 0
seg000:0388                 jnz     short _main_35
seg000:038A                 mov     ax, 2
seg000:038D                 jmp     short _main_36
seg000:038F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:038F
seg000:038F _main_35:                               ; CODE XREF: main+35Bj
seg000:038F                                         ; main+362j ...
seg000:038F                 sub     ax, ax
seg000:0391
seg000:0391 _main_36:                               ; CODE XREF: main+354j
seg000:0391                                         ; main+375j
seg000:0391                 push    ax
seg000:0392                 call    _exit
seg000:0395 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0395                 pop     bx
seg000:0396                 mov     sp, bp
seg000:0398                 pop     bp
seg000:0399                 retn
seg000:0399 main            endp
seg000:0399
seg000:039A
seg000:039A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:039A
seg000:039A ; Attributes: bp-based frame
seg000:039A
seg000:039A do_main_menu    proc near               ; CODE XREF: main:_main_06p
seg000:039A
seg000:039A mm_err_switch   = byte ptr -0Ah
seg000:039A mm_i            = word ptr -8
seg000:039A mm_temp         = word ptr -6
seg000:039A mm_max_input    = byte ptr -4
seg000:039A mm_input        = byte ptr -2
seg000:039A
seg000:039A                 push    bp
seg000:039B                 mov     bp, sp
seg000:039D                 sub     sp, 10
seg000:03A0                 sub     al, al
seg000:03A2                 mov     [bp+mm_input], al
seg000:03A5                 mov     ds:PercentFlag, al
seg000:03A8                 mov     ds:cur_disk, al
seg000:03AB                 cmp     ds:good_disk, al
seg000:03AF                 jnz     short mainmenu_01
seg000:03B1                 mov     ds:cur_disk, 1
seg000:03B6
seg000:03B6 mainmenu_01:                            ; CODE XREF: do_main_menu+15j
seg000:03B6                 sub     ax, ax
seg000:03B8                 mov     [bp+mm_temp], ax
seg000:03BB                 mov     [bp+mm_i], ax
seg000:03BE                 jmp     short mainmenu_04
seg000:03C0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:03C0
seg000:03C0 mainmenu_02:                            ; CODE XREF: do_main_menu+40j
seg000:03C0                 mov     bx, [bp+mm_i]
seg000:03C3                 cmp     ds:good_disk[bx], 0
seg000:03C8                 jz      short mainmenu_03
seg000:03CA                 mov     [bp+mm_temp], 1
seg000:03CF
seg000:03CF mainmenu_03:                            ; CODE XREF: do_main_menu+2Ej
seg000:03CF                 inc     [bp+mm_i]
seg000:03D2
seg000:03D2 mainmenu_04:                            ; CODE XREF: do_main_menu+24j
seg000:03D2                 mov     al, ds:number_of_drives
seg000:03D5                 sub     ah, ah
seg000:03D7                 cmp     ax, [bp+mm_i]
seg000:03DA                 ja      short mainmenu_02
seg000:03DC                 cmp     [bp+mm_temp], 1
seg000:03E0                 jz      short mainmenu_05
seg000:03E2                 jmp     mainmenu_27
seg000:03E5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:03E5
seg000:03E5 mainmenu_05:                            ; CODE XREF: do_main_menu+46j
seg000:03E5                 mov     ax, 79
seg000:03E8
seg000:03E8 loc_3E8:
seg000:03E8                 push    ax
seg000:03E9
seg000:03E9 loc_3E9:
seg000:03E9                 mov     ax, 24
seg000:03EC
seg000:03EC loc_3EC:
seg000:03EC                 push    ax
seg000:03ED
seg000:03ED loc_3ED:
seg000:03ED                 sub     ax, ax
seg000:03EF                 push    ax
seg000:03F0
seg000:03F0 loc_3F0:
seg000:03F0                 push    ax
seg000:03F1
seg000:03F1 loc_3F1:
seg000:03F1                 call    clear_screen
seg000:03F4
seg000:03F4 loc_3F4:
seg000:03F4                 add     sp, 8
seg000:03F7
seg000:03F7 loc_3F7:
seg000:03F7                 push    ds:menu_1_segment
seg000:03FB
seg000:03FB loc_3FB:
seg000:03FB                 push    ds:menu_1_offset
seg000:03FF
seg000:03FF loc_3FF:
seg000:03FF                 call    display
seg000:0402
seg000:0402 loc_402:                                ; DATA XREF: seg000:6CBAr
seg000:0402                 pop     bx
seg000:0403                 pop     bx
seg000:0404
seg000:0404 loc_404:
seg000:0404                 mov     [bp+mm_i], 0
seg000:0409
seg000:0409 loc_409:
seg000:0409                 jmp     short mainmenu_08
seg000:040B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:040B
seg000:040B mainmenu_06:                            ; CODE XREF: do_main_menu+A3j
seg000:040B                 mov     bx, [bp+mm_i]
seg000:040E
seg000:040E loc_40E:
seg000:040E                 cmp     ds:good_disk[bx], 0
seg000:0413                 jnz     short mainmenu_07
seg000:0415                 cmp     [bp+mm_err_switch], 0 ; DATA XREF: reboot+1Bw
seg000:0419                 jnz     short mainmenu_07
seg000:041B                 lea     ax, [bx+'1']
seg000:041E                 mov     ds:insert, al
seg000:0421                 push    ds:error_30_seg
seg000:0425                 push    ds:error_30_off
seg000:0429                 call    display
seg000:042C                 pop     bx
seg000:042D                 pop     bx
seg000:042E                 mov     [bp+mm_err_switch], 1
seg000:0432
seg000:0432 mainmenu_07:                            ; CODE XREF: do_main_menu+79j
seg000:0432                                         ; do_main_menu+7Fj
seg000:0432                 inc     [bp+mm_i]
seg000:0435
seg000:0435 mainmenu_08:                            ; CODE XREF: do_main_menu:loc_409j
seg000:0435                 mov     al, ds:number_of_drives
seg000:0438                 sub     ah, ah
seg000:043A                 cmp     ax, [bp+mm_i]
seg000:043D                 ja      short mainmenu_06
seg000:043F                 mov     [bp+mm_input], ah
seg000:0442
seg000:0442 mainmenu_10:                            ; CODE XREF: do_main_menu+17Dj
seg000:0442                                         ; do_main_menu:mainmenu_21j ...
seg000:0442                 cmp     [bp+mm_input], 1Bh
seg000:0446                 jnz     short mainmenu_11
seg000:0448                 jmp     mainmenu_28
seg000:044B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:044B
seg000:044B mainmenu_11:                            ; CODE XREF: do_main_menu+ACj
seg000:044B                 push    ds:menu_2_segment
seg000:044F                 push    ds:menu_2_offset
seg000:0453                 call    display
seg000:0456                 pop     bx
seg000:0457                 pop     bx
seg000:0458                 push    ds:menu_3_segment
seg000:045C                 push    ds:menu_3_offset
seg000:0460                 call    display
seg000:0463                 pop     bx
seg000:0464                 pop     bx
seg000:0465                 push    ds:menu_7_segment
seg000:0469                 push    ds:menu_7_offset
seg000:046D                 call    display
seg000:0470                 pop     bx
seg000:0471                 pop     bx
seg000:0472
seg000:0472 mainmenu_12:                            ; DATA XREF: reboot+5w
seg000:0472                 mov     al, ds:cur_disk
seg000:0475                 add     al, '1'
seg000:0477                 mov     ds:insert, al
seg000:047A                 push    ds:menu_5_segment
seg000:047E                 push    ds:menu_5_offset
seg000:0482                 call    display
seg000:0485                 pop     bx
seg000:0486                 pop     bx
seg000:0487                 sub     ax, ax
seg000:0489                 mov     [bp+mm_temp], ax
seg000:048C                 mov     [bp+mm_i], ax
seg000:048F                 jmp     short mainmenu_14
seg000:0491 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0491
seg000:0491 mainmenu_13:                            ; CODE XREF: do_main_menu+119j
seg000:0491                 mov     al, ds:cur_disk
seg000:0494                 cbw
seg000:0495                 shl     ax, 1
seg000:0497                 shl     ax, 1
seg000:0499                 add     ax, [bp+mm_i]
seg000:049C                 mov     cx, 46
seg000:049F                 mul     cx
seg000:04A1                 mov     bx, ax
seg000:04A3                 mov     al, ds:part_table_sys_id[bx]
seg000:04A7                 sub     ah, ah
seg000:04A9                 or      [bp+mm_temp], ax
seg000:04AC                 inc     [bp+mm_i]
seg000:04AF
seg000:04AF mainmenu_14:                            ; CODE XREF: do_main_menu+F5j
seg000:04AF                 cmp     [bp+mm_i], 4
seg000:04B3                 jb      short mainmenu_13
seg000:04B5                 cmp     [bp+mm_temp], 0
seg000:04B9                 jz      short mainmenu_15
seg000:04BB                 call    find_active_partition
seg000:04BE                 or      al, al
seg000:04C0                 jnz     short mainmenu_15
seg000:04C2                 cmp     ds:cur_disk, al
seg000:04C6                 jnz     short mainmenu_15
seg000:04C8                 push    ds:menu_6_segment
seg000:04CC                 push    ds:menu_6_offset
seg000:04D0                 call    display
seg000:04D3                 pop     bx
seg000:04D4                 pop     bx
seg000:04D5
seg000:04D5 mainmenu_15:                            ; CODE XREF: do_main_menu+11Fj
seg000:04D5                                         ; do_main_menu+126j ...
seg000:04D5                 cmp     ds:number_of_drives, 1
seg000:04DA                 jbe     short mainmenu_16
seg000:04DC                 push    ds:menu_4_segment
seg000:04E0                 push    ds:menu_4_offset
seg000:04E4                 call    display
seg000:04E7                 pop     bx
seg000:04E8                 pop     bx
seg000:04E9                 mov     [bp+mm_max_input], 5
seg000:04ED                 jmp     short mainmenu_17
seg000:04EF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:04EF
seg000:04EF mainmenu_16:                            ; CODE XREF: do_main_menu+140j
seg000:04EF                 mov     [bp+mm_max_input], 4
seg000:04F3
seg000:04F3 mainmenu_17:                            ; CODE XREF: do_main_menu+153j
seg000:04F3                 push    ds:input_col
seg000:04F7                 push    ds:input_row
seg000:04FB                 mov     al, [bp+mm_max_input]
seg000:04FE                 push    ax
seg000:04FF
seg000:04FF loc_4FF:
seg000:04FF                 mov     al, 1
seg000:0501                 push    ax
seg000:0502                 call    get_num_input
seg000:0505                 add     sp, 8
seg000:0508
seg000:0508 switch_input1:
seg000:0508                 mov     [bp+mm_input], al
seg000:050B                 cbw
seg000:050C                 cmp     ax, '5'
seg000:050F                 jz      short case_5
seg000:0511                 ja      short case_DEF
seg000:0513                 sub     al, 1Bh
seg000:0515                 jnz     short mainmenu_19
seg000:0517                 jmp     mainmenu_10
seg000:051A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:051A
seg000:051A mainmenu_19:                            ; CODE XREF: do_main_menu+17Bj
seg000:051A                 sub     al, 16h
seg000:051C                 jz      short case_1
seg000:051E                 dec     al
seg000:0520                 jz      short case_2
seg000:0522                 dec     al
seg000:0524                 jz      short case_3
seg000:0526                 dec     al
seg000:0528                 jz      short case_4
seg000:052A
seg000:052A case_DEF:                               ; CODE XREF: do_main_menu+177j
seg000:052A                 call    internal_program_error
seg000:052D
seg000:052D mainmenu_21:
seg000:052D                 jmp     mainmenu_10
seg000:0530 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0530
seg000:0530 case_1:                                 ; CODE XREF: do_main_menu+182j
seg000:0530                 call    create_partition
seg000:0533                 jmp     mainmenu_10
seg000:0536 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0536
seg000:0536 case_2:                                 ; CODE XREF: do_main_menu+186j
seg000:0536                 call    change_active_partition
seg000:0539                 jmp     mainmenu_10
seg000:053C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:053C
seg000:053C case_3:                                 ; CODE XREF: do_main_menu+18Aj
seg000:053C                 call    delete_partition
seg000:053F                 jmp     mainmenu_10
seg000:0542 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0542
seg000:0542 case_4:                                 ; CODE XREF: do_main_menu+18Ej
seg000:0542                 call    display_partition_information
seg000:0545                 jmp     mainmenu_10
seg000:0548 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0548
seg000:0548 case_5:                                 ; CODE XREF: do_main_menu+175j
seg000:0548                 call    change_current_drive
seg000:054B                 jmp     mainmenu_10
seg000:054E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:054E
seg000:054E mainmenu_27:                            ; CODE XREF: do_main_menu+48j
seg000:054E                 mov     ds:no_fatal_error, 0
seg000:0553                 push    ds:error_2_seg
seg000:0557                 push    ds:error_2_off
seg000:055B                 call    display
seg000:055E                 pop     bx
seg000:055F                 pop     bx
seg000:0560
seg000:0560 mainmenu_28:                            ; CODE XREF: do_main_menu+AEj
seg000:0560                 mov     sp, bp
seg000:0562                 pop     bp
seg000:0563                 retn
seg000:0563 do_main_menu    endp
seg000:0563
seg000:0564
seg000:0564 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0564
seg000:0564 ; Attributes: bp-based frame
seg000:0564
seg000:0564 delete_partition proc near              ; CODE XREF: do_main_menu:case_3p
seg000:0564
seg000:0564 dp_i            = word ptr -8
seg000:0564 temp            = byte ptr -6
seg000:0564
seg000:0564                 push    bp
seg000:0565                 mov     bp, sp
seg000:0567                 sub     sp, 8
seg000:056A                 mov     ax, 79
seg000:056D                 push    ax
seg000:056E                 mov     ax, 24
seg000:0571                 push    ax
seg000:0572                 sub     ax, ax
seg000:0574                 push    ax
seg000:0575                 push    ax
seg000:0576                 call    clear_screen
seg000:0579                 add     sp, 8
seg000:057C                 push    ds:menu_25_segment
seg000:0580                 push    ds:menu_25_offset
seg000:0584                 call    display
seg000:0587                 pop     bx
seg000:0588                 pop     bx
seg000:0589                 mov     al, ds:cur_disk
seg000:058C                 add     al, '1'
seg000:058E                 mov     ds:insert, al
seg000:0591                 push    ds:menu_5_segment
seg000:0595                 push    ds:menu_5_offset
seg000:0599                 call    display
seg000:059C                 pop     bx
seg000:059D                 pop     bx
seg000:059E                 sub     al, al
seg000:05A0                 mov     [bp+temp], al
seg000:05A3                 mov     [bp+dp_i], 0
seg000:05A8
seg000:05A8 dp_1:                                   ; CODE XREF: delete_partition+64j
seg000:05A8                 mov     al, ds:cur_disk
seg000:05AB                 cbw
seg000:05AC                 shl     ax, 1
seg000:05AE                 shl     ax, 1
seg000:05B0                 add     ax, [bp+dp_i]
seg000:05B3                 mov     cx, 46
seg000:05B6                 mul     cx
seg000:05B8                 mov     bx, ax
seg000:05BA                 mov     al, ds:part_table_sys_id[bx]
seg000:05BE                 or      [bp+temp], al
seg000:05C1                 inc     [bp+dp_i]
seg000:05C4                 cmp     [bp+dp_i], 4
seg000:05C8                 jb      short dp_1
seg000:05CA                 cmp     [bp+temp], 0
seg000:05CE                 jnz     short dp_2
seg000:05D0                 jmp     dp_16
seg000:05D3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:05D3
seg000:05D3 dp_2:                                   ; CODE XREF: delete_partition+6Aj
seg000:05D3                 push    ds:menu_3_segment
seg000:05D7                 push    ds:menu_3_offset
seg000:05DB                 call    display
seg000:05DE                 pop     bx
seg000:05DF                 pop     bx
seg000:05E0                 push    ds:menu_25_segment
seg000:05E4                 push    ds:menu_25_offset
seg000:05E8                 call    display
seg000:05EB                 pop     bx
seg000:05EC                 pop     bx
seg000:05ED                 push    ds:menu_26_segment
seg000:05F1                 push    ds:menu_26_offset
seg000:05F5                 call    display
seg000:05F8                 pop     bx
seg000:05F9                 pop     bx
seg000:05FA                 push    ds:menu_7_segment
seg000:05FE                 push    ds:menu_7_offset
seg000:0602                 call    display
seg000:0605                 pop     bx
seg000:0606                 pop     bx
seg000:0607                 push    ds:menu_11_segment
seg000:060B                 push    ds:menu_11_offset
seg000:060F                 call    display
seg000:0612                 pop     bx
seg000:0613                 pop     bx
seg000:0614                 push    ds:menu_27_segment
seg000:0618                 push    ds:menu_27_offset
seg000:061C                 call    display
seg000:061F                 pop     bx
seg000:0620                 pop     bx
seg000:0621                 push    ds:menu_57_segment
seg000:0625                 push    ds:menu_57_offset
seg000:0629                 call    display
seg000:062C                 pop     bx
seg000:062D                 pop     bx
seg000:062E                 push    ds:input_col
seg000:0632                 push    ds:input_row
seg000:0636                 mov     al, 4
seg000:0638                 push    ax
seg000:0639                 sub     al, al
seg000:063B                 push    ax
seg000:063C                 call    get_num_input
seg000:063F                 add     sp, 8
seg000:0642
seg000:0642 switch_input2:
seg000:0642                 cbw
seg000:0643                 cmp     ax, '4'
seg000:0646                 jnz     short dp_4
seg000:0648                 jmp     case_delete_4
seg000:064B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:064B
seg000:064B dp_4:                                   ; CODE XREF: delete_partition+E2j
seg000:064B                 ja      short dp_6
seg000:064D                 sub     al, 1Bh
seg000:064F                 jnz     short dp_5
seg000:0651                 jmp     case_delete_ESC
seg000:0654 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0654
seg000:0654 dp_5:                                   ; CODE XREF: delete_partition+EBj
seg000:0654                 sub     al, 16h
seg000:0656                 jz      short case_delete_1
seg000:0658                 dec     al
seg000:065A                 jz      short case_delete_2
seg000:065C                 dec     al
seg000:065E                 jz      short case_delete_3
seg000:0660
seg000:0660 dp_6:                                   ; CODE XREF: delete_partition:dp_4j
seg000:0660                 call    internal_program_error
seg000:0663                 jmp     case_delete_ESC
seg000:0666 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0666
seg000:0666 case_delete_1:                          ; CODE XREF: delete_partition+F2j
seg000:0666                 mov     al, 1
seg000:0668                 push    ax
seg000:0669                 call    find_partition_type
seg000:066C                 pop     bx
seg000:066D                 or      al, al
seg000:066F                 jnz     short dp_8
seg000:0671                 mov     al, 4
seg000:0673                 push    ax
seg000:0674                 call    find_partition_type
seg000:0677                 pop     bx
seg000:0678                 or      al, al
seg000:067A                 jnz     short dp_8
seg000:067C                 mov     al, 6
seg000:067E                 push    ax
seg000:067F                 call    find_partition_type
seg000:0682                 pop     bx
seg000:0683                 or      al, al
seg000:0685                 jz      short dp_9
seg000:0687
seg000:0687 dp_8:                                   ; CODE XREF: delete_partition+10Bj
seg000:0687                                         ; delete_partition+116j
seg000:0687                 call    dos_delete
seg000:068A                 jmp     case_delete_ESC
seg000:068D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:068D
seg000:068D dp_9:                                   ; CODE XREF: delete_partition+121j
seg000:068D                 mov     ax, 79
seg000:0690                 push    ax
seg000:0691                 mov     ax, 17
seg000:0694                 push    ax
seg000:0695                 sub     cx, cx
seg000:0697                 push    cx
seg000:0698                 push    ax
seg000:0699                 call    clear_screen
seg000:069C                 add     sp, 8
seg000:069F                 push    ds:error_6_seg
seg000:06A3                 push    ds:error_6_off
seg000:06A7                 jmp     dp_17
seg000:06AA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:06AA
seg000:06AA case_delete_2:                          ; CODE XREF: delete_partition+F6j
seg000:06AA                 mov     al, 5
seg000:06AC                 push    ax
seg000:06AD                 call    find_partition_type
seg000:06B0                 pop     bx
seg000:06B1                 or      al, al
seg000:06B3                 jz      short dp_11
seg000:06B5                 call    ext_delete
seg000:06B8                 jmp     case_delete_ESC
seg000:06BB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:06BB
seg000:06BB dp_11:                                  ; CODE XREF: delete_partition+14Fj
seg000:06BB                 mov     ax, 79
seg000:06BE                 push    ax
seg000:06BF                 mov     ax, 17
seg000:06C2                 push    ax
seg000:06C3                 sub     cx, cx
seg000:06C5                 push    cx
seg000:06C6                 push    ax
seg000:06C7                 call    clear_screen
seg000:06CA                 add     sp, 8
seg000:06CD                 push    ds:error_7_seg
seg000:06D1                 push    ds:error_7_off
seg000:06D5                 jmp     short dp_17
seg000:06D7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:06D7
seg000:06D7 case_delete_3:                          ; CODE XREF: delete_partition+FAj
seg000:06D7                 mov     al, 5
seg000:06D9                 push    ax
seg000:06DA                 call    find_partition_type
seg000:06DD                 pop     bx
seg000:06DE                 or      al, al
seg000:06E0                 jz      short dp_13
seg000:06E2                 call    find_logical_drive
seg000:06E5                 or      al, al
seg000:06E7                 jz      short dp_13
seg000:06E9                 call    volume_delete
seg000:06EC                 jmp     short case_delete_ESC
seg000:06EE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:06EE
seg000:06EE dp_13:                                  ; CODE XREF: delete_partition+17Cj
seg000:06EE                                         ; delete_partition+183j
seg000:06EE                 mov     ax, 79
seg000:06F1                 push    ax
seg000:06F2                 mov     ax, 17
seg000:06F5                 push    ax
seg000:06F6                 sub     cx, cx
seg000:06F8                 push    cx
seg000:06F9                 push    ax
seg000:06FA                 call    clear_screen
seg000:06FD                 add     sp, 8
seg000:0700                 push    ds:error_36_seg
seg000:0704                 push    ds:error_36_off
seg000:0708                 jmp     short dp_17
seg000:070A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:070A
seg000:070A case_delete_4:                          ; CODE XREF: delete_partition+E4j
seg000:070A                 call    find_non_dos_partition
seg000:070D                 or      al, al
seg000:070F                 jz      short dp_15
seg000:0711                 call    non_dos_delete
seg000:0714                 jmp     short case_delete_ESC
seg000:0716 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0716
seg000:0716 dp_15:                                  ; CODE XREF: delete_partition+1ABj
seg000:0716                 mov     ax, 79
seg000:0719                 push    ax
seg000:071A                 mov     ax, 17
seg000:071D                 push    ax
seg000:071E                 sub     cx, cx
seg000:0720                 push    cx
seg000:0721                 push    ax
seg000:0722                 call    clear_screen
seg000:0725                 add     sp, 8
seg000:0728                 push    ds:error_38_seg
seg000:072C                 push    ds:error_38_off
seg000:0730                 jmp     short dp_17
seg000:0732 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0732
seg000:0732 dp_16:                                  ; CODE XREF: delete_partition+6Cj
seg000:0732                 push    ds:error_14_seg
seg000:0736                 push    ds:error_14_off
seg000:073A
seg000:073A dp_17:                                  ; CODE XREF: delete_partition+143j
seg000:073A                                         ; delete_partition+171j ...
seg000:073A                 call    display
seg000:073D                 pop     bx
seg000:073E                 pop     bx
seg000:073F                 call    wait_for_ESC
seg000:0742
seg000:0742 case_delete_ESC:                        ; CODE XREF: delete_partition+EDj
seg000:0742                                         ; delete_partition+FFj ...
seg000:0742                 mov     ax, 79
seg000:0745                 push    ax
seg000:0746                 mov     ax, 24
seg000:0749                 push    ax
seg000:074A                 sub     ax, ax
seg000:074C                 push    ax
seg000:074D                 push    ax
seg000:074E                 call    clear_screen
seg000:0751                 mov     sp, bp
seg000:0753                 pop     bp
seg000:0754                 retn
seg000:0754 delete_partition endp
seg000:0754
seg000:0755
seg000:0755 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0755
seg000:0755 ; Attributes: bp-based frame
seg000:0755
seg000:0755 dos_delete      proc near               ; CODE XREF: delete_partition:dp_8p
seg000:0755
seg000:0755 ddp_pri         = word ptr -1Ah
seg000:0755 ddp_j           = word ptr -18h
seg000:0755 ddp_i           = word ptr -16h
seg000:0755 ddp_str_input   = word ptr -14h
seg000:0755 ddp_cnt         = word ptr -8
seg000:0755 ddp_ext         = word ptr -6
seg000:0755 ddp_input       = byte ptr -4
seg000:0755 ddp_pnum        = word ptr -2
seg000:0755
seg000:0755                 push    bp
seg000:0756                 mov     bp, sp
seg000:0758                 sub     sp, 26
seg000:075B                 mov     [bp+ddp_input], 0
seg000:075F                 mov     ax, 79
seg000:0762                 push    ax
seg000:0763                 mov     ax, 24
seg000:0766                 push    ax
seg000:0767                 sub     ax, ax
seg000:0769                 push    ax
seg000:076A                 push    ax
seg000:076B                 call    clear_screen
seg000:076E                 add     sp, 8
seg000:0771                 push    ds:menu_28_segment
seg000:0775                 push    ds:menu_28_offset
seg000:0779                 call    display
seg000:077C                 pop     bx
seg000:077D                 pop     bx
seg000:077E                 mov     al, ds:cur_disk
seg000:0781                 add     al, '1'
seg000:0783                 mov     ds:insert, al
seg000:0786                 push    ds:menu_5_segment
seg000:078A                 push    ds:menu_5_offset
seg000:078E                 call    display
seg000:0791                 pop     bx
seg000:0792                 pop     bx
seg000:0793                 push    ds:menu_11_segment
seg000:0797                 push    ds:menu_11_offset
seg000:079B                 call    display
seg000:079E                 pop     bx
seg000:079F                 pop     bx
seg000:07A0                 call    table_display
seg000:07A3                 or      al, al
seg000:07A5                 jnz     short ddp_1
seg000:07A7                 jmp     case_dos_del_DEF
seg000:07AA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:07AA
seg000:07AA ddp_1:                                  ; CODE XREF: dos_delete+50j
seg000:07AA                 mov     al, ds:cur_disk
seg000:07AD                 cbw
seg000:07AE                 mov     bx, ax
seg000:07B0                 shl     bx, 1
seg000:07B2                 push    ds:total_mbytes[bx]
seg000:07B6                 mov     ax, offset disk_size_format ; "%4.1d"
seg000:07B9                 push    ax
seg000:07BA                 mov     ax, offset insert
seg000:07BD                 push    ax
seg000:07BE                 call    sprintf
seg000:07C1                 add     sp, 6
seg000:07C4                 push    ds:menu_15_segment
seg000:07C8                 push    ds:menu_15_offset
seg000:07CC                 call    display
seg000:07CF                 pop     bx
seg000:07D0                 pop     bx
seg000:07D1                 sub     ax, ax
seg000:07D3                 mov     [bp+ddp_cnt], ax
seg000:07D6                 mov     [bp+ddp_pri], ax
seg000:07D9                 mov     [bp+ddp_ext], ax
seg000:07DC                 mov     [bp+ddp_i], ax
seg000:07DF                 jmp     short ddp_4
seg000:07E1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:07E1
seg000:07E1 ddp_2:                                  ; CODE XREF: dos_delete+DFj
seg000:07E1                 mov     al, ds:cur_disk
seg000:07E4                 cbw
seg000:07E5                 shl     ax, 1
seg000:07E7                 shl     ax, 1
seg000:07E9                 add     ax, [bp+ddp_i]
seg000:07EC                 mul     cx
seg000:07EE                 mov     bx, ax
seg000:07F0                 cmp     ds:part_table_sys_id[bx], 5
seg000:07F5                 jnz     short ddp_3
seg000:07F7                 mov     [bp+ddp_ext], 1
seg000:07FC
seg000:07FC ddp_3:                                  ; CODE XREF: dos_delete+A0j
seg000:07FC                                         ; dos_delete+C7j ...
seg000:07FC                 inc     [bp+ddp_i]
seg000:07FF
seg000:07FF ddp_4:                                  ; CODE XREF: dos_delete+8Aj
seg000:07FF                 cmp     [bp+ddp_i], 4
seg000:0803                 jnb     short ddp_6
seg000:0805                 mov     al, ds:cur_disk
seg000:0808                 cbw
seg000:0809                 shl     ax, 1
seg000:080B                 shl     ax, 1
seg000:080D                 add     ax, [bp+ddp_i]
seg000:0810                 mov     cx, 46
seg000:0813                 mul     cx
seg000:0815                 mov     bx, ax
seg000:0817                 cmp     ds:part_table_sys_id[bx], 0
seg000:081C                 jz      short ddp_3
seg000:081E                 inc     [bp+ddp_cnt]
seg000:0821                 cmp     ds:part_table_sys_id[bx], 1
seg000:0826                 jz      short ddp_5
seg000:0828                 cmp     ds:part_table_sys_id[bx], 4
seg000:082D                 jz      short ddp_5
seg000:082F                 cmp     ds:part_table_sys_id[bx], 6
seg000:0834                 jnz     short ddp_2
seg000:0836
seg000:0836 ddp_5:                                  ; CODE XREF: dos_delete+D1j
seg000:0836                                         ; dos_delete+D8j
seg000:0836                 inc     [bp+ddp_pri]
seg000:0839                 jmp     short ddp_3
seg000:083B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:083B
seg000:083B ddp_6:                                  ; CODE XREF: dos_delete+AEj
seg000:083B                 cmp     [bp+ddp_pri], 1
seg000:083F                 jg      short ddp_10
seg000:0841                 jnz     short ddp_7
seg000:0843                 cmp     ds:cur_disk, 0
seg000:0848                 jnz     short ddp_10
seg000:084A
seg000:084A ddp_7:                                  ; CODE XREF: dos_delete+ECj
seg000:084A                 cmp     [bp+ddp_pri], 1
seg000:084E                 jz      short ddp_8
seg000:0850                 jmp     ddp_21
seg000:0853 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0853
seg000:0853 ddp_8:                                  ; CODE XREF: dos_delete+F9j
seg000:0853                 cmp     ds:cur_disk, 0
seg000:0858                 jnz     short ddp_9
seg000:085A                 cmp     [bp+ddp_ext], 0
seg000:085E                 jz      short ddp_10
seg000:0860
seg000:0860 ddp_9:                                  ; CODE XREF: dos_delete+103j
seg000:0860                 jmp     ddp_21
seg000:0863 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0863
seg000:0863 ddp_10:                                 ; CODE XREF: dos_delete+EAj
seg000:0863                                         ; dos_delete+F3j ...
seg000:0863                 push    ds:menu_55_segment
seg000:0867                 push    ds:menu_55_offset
seg000:086B                 call    display
seg000:086E                 pop     bx
seg000:086F                 pop     bx
seg000:0870                 push    ds:input_col
seg000:0874                 push    ds:input_row
seg000:0878                 mov     al, byte ptr [bp+ddp_cnt]
seg000:087B                 push    ax
seg000:087C                 mov     al, 1
seg000:087E                 push    ax
seg000:087F                 call    get_num_input
seg000:0882                 add     sp, 8
seg000:0885                 mov     [bp+ddp_input], al
seg000:0888                 cmp     al, 1Bh
seg000:088A                 jnz     short ddp_11
seg000:088C                 jmp     dos_del_break
seg000:088F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:088F
seg000:088F ddp_11:                                 ; CODE XREF: dos_delete+135j
seg000:088F                 cbw
seg000:0890                 sub     ax, '0'
seg000:0893                 mov     [bp+ddp_pnum], ax
seg000:0896                 mov     [bp+ddp_j], 0
seg000:089B                 mov     [bp+ddp_i], 0
seg000:08A0                 jmp     short ddp_13
seg000:08A2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:08A2
seg000:08A2 ddp_12:                                 ; CODE XREF: dos_delete+176j
seg000:08A2                                         ; dos_delete+181j
seg000:08A2                 inc     [bp+ddp_i]
seg000:08A5
seg000:08A5 ddp_13:                                 ; CODE XREF: dos_delete+14Bj
seg000:08A5                 cmp     [bp+ddp_i], 4
seg000:08A9                 jnb     short ddp_14
seg000:08AB                 mov     al, ds:cur_disk
seg000:08AE                 cbw
seg000:08AF                 shl     ax, 1
seg000:08B1                 shl     ax, 1
seg000:08B3                 mov     bx, [bp+ddp_i]
seg000:08B6                 mov     cx, ax
seg000:08B8                 mov     al, ds:sort[bx]
seg000:08BC                 cbw
seg000:08BD                 add     ax, cx
seg000:08BF                 mov     cx, 46
seg000:08C2                 imul    cx
seg000:08C4                 mov     bx, ax
seg000:08C6                 cmp     ds:part_table_sys_id[bx], 0
seg000:08CB                 jz      short ddp_12
seg000:08CD                 mov     ax, [bp+ddp_pnum]
seg000:08D0                 inc     [bp+ddp_j]
seg000:08D3                 cmp     [bp+ddp_j], ax
seg000:08D6                 jnz     short ddp_12
seg000:08D8
seg000:08D8 ddp_14:                                 ; CODE XREF: dos_delete+154j
seg000:08D8                 mov     al, ds:cur_disk
seg000:08DB                 cbw
seg000:08DC                 shl     ax, 1
seg000:08DE                 shl     ax, 1
seg000:08E0                 mov     bx, [bp+ddp_i]
seg000:08E3                 mov     cx, ax
seg000:08E5                 mov     al, ds:sort[bx]
seg000:08E9                 cbw
seg000:08EA                 mov     [bp+ddp_i], ax
seg000:08ED                 add     ax, cx
seg000:08EF                 mov     cx, 46
seg000:08F2                 mul     cx
seg000:08F4                 mov     bx, ax
seg000:08F6                 cmp     ds:part_table_sys_id[bx], 1
seg000:08FB                 jz      short ddp_15
seg000:08FD                 cmp     ds:part_table_sys_id[bx], 4
seg000:0902                 jz      short ddp_15
seg000:0904                 cmp     ds:part_table_sys_id[bx], 6
seg000:0909                 jz      short ddp_15
seg000:090B                 jmp     ddp_20
seg000:090E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:090E
seg000:090E ddp_15:                                 ; CODE XREF: dos_delete+1A6j
seg000:090E                                         ; dos_delete+1ADj ...
seg000:090E                 mov     byte ptr [bp+ddp_str_input], 0
seg000:0912                 push    ds:menu_41_segment
seg000:0916                 push    ds:menu_41_offset
seg000:091A                 call    display
seg000:091D                 pop     bx
seg000:091E                 pop     bx
seg000:091F                 lea     ax, [bp+ddp_str_input]
seg000:0922                 push    ss
seg000:0923                 push    ax
seg000:0924                 push    ds:input_col
seg000:0928                 push    ds:input_row
seg000:092C                 call    get_string_input
seg000:092F                 add     sp, 8
seg000:0932                 cmp     byte ptr [bp+ddp_str_input], 1Bh
seg000:0936                 jnz     short ddp_16
seg000:0938                 jmp     dos_del_break
seg000:093B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:093B
seg000:093B ddp_16:                                 ; CODE XREF: dos_delete+1E1j
seg000:093B                 lea     ax, [bp+ddp_str_input]
seg000:093E                 push    ax
seg000:093F                 mov     al, ds:cur_disk
seg000:0942                 cbw
seg000:0943                 shl     ax, 1
seg000:0945                 shl     ax, 1
seg000:0947                 add     ax, [bp+ddp_i]
seg000:094A                 mov     cx, 46
seg000:094D                 mul     cx
seg000:094F                 add     ax, offset part_table_vol_label
seg000:0952                 push    ax
seg000:0953                 call    strcmp
seg000:0956                 pop     bx
seg000:0957                 pop     bx
seg000:0958                 or      ax, ax
seg000:095A                 jnz     short ddp_19
seg000:095C                 push    ds:menu_34_segment
seg000:0960                 push    ds:menu_34_offset
seg000:0964                 call    display
seg000:0967                 pop     bx
seg000:0968                 pop     bx
seg000:0969                 push    ds:input_col
seg000:096D                 push    ds:input_row
seg000:0971                 mov     al, byte ptr ds:No
seg000:0974                 push    ax
seg000:0975                 call    get_yn_input
seg000:0978                 add     sp, 6
seg000:097B
seg000:097B ddp_17:
seg000:097B                 mov     [bp+ddp_input], al
seg000:097E                 cbw
seg000:097F                 cmp     ax, 1Bh
seg000:0982                 jz      short dos_del_break
seg000:0984                 ja      short case_dos_del_DEF
seg000:0986                 or      al, al
seg000:0988                 jz      short dos_del_break
seg000:098A                 dec     al
seg000:098C                 jnz     short case_dos_del_DEF
seg000:098E
seg000:098E case_dos_del_1:
seg000:098E                 push    [bp+ddp_i]
seg000:0991                 mov     al, ds:cur_disk
seg000:0994                 push    ax
seg000:0995                 call    remove_partition
seg000:0998                 pop     bx
seg000:0999                 pop     bx
seg000:099A                 call    table_display
seg000:099D                 mov     ax, 79
seg000:09A0                 push    ax
seg000:09A1                 mov     ax, 23
seg000:09A4                 push    ax
seg000:09A5                 sub     ax, ax
seg000:09A7                 push    ax
seg000:09A8                 mov     ax, 16
seg000:09AB                 push    ax
seg000:09AC                 call    clear_screen
seg000:09AF                 add     sp, 8
seg000:09B2                 mov     ds:reboot_flag, 1
seg000:09B7                 push    ds:status_1_seg
seg000:09BB                 push    ds:status_1_off
seg000:09BF
seg000:09BF ddp_18:                                 ; CODE XREF: dos_delete+27Cj
seg000:09BF                                         ; dos_delete+286j ...
seg000:09BF                 call    display
seg000:09C2                 pop     bx
seg000:09C3                 pop     bx
seg000:09C4                 call    wait_for_ESC
seg000:09C7                 jmp     short dos_del_break
seg000:09C9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:09C9
seg000:09C9 ddp_19:                                 ; CODE XREF: dos_delete+205j
seg000:09C9                 push    ds:error_34_seg
seg000:09CD                 push    ds:error_34_off
seg000:09D1                 jmp     short ddp_18
seg000:09D3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:09D3
seg000:09D3 ddp_20:                                 ; CODE XREF: dos_delete+1B6j
seg000:09D3                 push    ds:error_37_seg
seg000:09D7                 push    ds:error_37_off
seg000:09DB                 jmp     short ddp_18
seg000:09DD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:09DD
seg000:09DD ddp_21:                                 ; CODE XREF: dos_delete+FBj
seg000:09DD                                         ; dos_delete:ddp_9j
seg000:09DD                 push    ds:error_32_seg
seg000:09E1                 push    ds:error_32_off
seg000:09E5                 jmp     short ddp_18
seg000:09E7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:09E7
seg000:09E7 case_dos_del_DEF:                       ; CODE XREF: dos_delete+52j
seg000:09E7                                         ; dos_delete+22Fj ...
seg000:09E7                 call    internal_program_error
seg000:09EA
seg000:09EA dos_del_break:                          ; CODE XREF: dos_delete+137j
seg000:09EA                                         ; dos_delete+1E3j ...
seg000:09EA                 mov     ax, 79
seg000:09ED                 push    ax
seg000:09EE                 mov     ax, 24
seg000:09F1                 push    ax
seg000:09F2                 sub     ax, ax
seg000:09F4                 push    ax
seg000:09F5                 push    ax
seg000:09F6                 call    clear_screen
seg000:09F9                 mov     sp, bp
seg000:09FB                 pop     bp
seg000:09FC                 retn
seg000:09FC dos_delete      endp
seg000:09FC
seg000:09FD
seg000:09FD ; --------------- S U B R O U T I N E ---------------------------------------
seg000:09FD
seg000:09FD ; Attributes: bp-based frame
seg000:09FD
seg000:09FD ext_delete      proc near               ; CODE XREF: delete_partition+151p
seg000:09FD
seg000:09FD ed_i            = word ptr -4
seg000:09FD
seg000:09FD                 push    bp
seg000:09FE                 mov     bp, sp
seg000:0A00                 sub     sp, 4
seg000:0A03                 mov     ax, 79
seg000:0A06                 push    ax
seg000:0A07                 mov     ax, 24
seg000:0A0A                 push    ax
seg000:0A0B                 sub     ax, ax
seg000:0A0D                 push    ax
seg000:0A0E                 push    ax
seg000:0A0F                 call    clear_screen
seg000:0A12                 add     sp, 8
seg000:0A15                 push    ds:menu_30_segment
seg000:0A19                 push    ds:menu_30_offset
seg000:0A1D                 call    display
seg000:0A20                 pop     bx
seg000:0A21                 pop     bx
seg000:0A22                 mov     al, ds:cur_disk
seg000:0A25                 add     al, '1'
seg000:0A27                 mov     ds:insert, al
seg000:0A2A                 push    ds:menu_5_segment
seg000:0A2E                 push    ds:menu_5_offset
seg000:0A32                 call    display
seg000:0A35                 pop     bx
seg000:0A36                 pop     bx
seg000:0A37                 push    ds:menu_11_segment
seg000:0A3B                 push    ds:menu_11_offset
seg000:0A3F                 call    display
seg000:0A42                 pop     bx
seg000:0A43                 pop     bx
seg000:0A44                 call    table_display
seg000:0A47                 mov     al, ds:cur_disk
seg000:0A4A                 cbw
seg000:0A4B                 mov     bx, ax
seg000:0A4D                 shl     bx, 1
seg000:0A4F                 push    ds:total_mbytes[bx]
seg000:0A53                 mov     ax, offset extd_size_format ; "%4.1d"
seg000:0A56                 push    ax
seg000:0A57                 mov     ax, offset insert
seg000:0A5A                 push    ax
seg000:0A5B                 call    sprintf
seg000:0A5E                 add     sp, 6
seg000:0A61                 push    ds:menu_15_segment
seg000:0A65                 push    ds:menu_15_offset
seg000:0A69                 call    display
seg000:0A6C                 pop     bx
seg000:0A6D                 pop     bx
seg000:0A6E                 call    find_logical_drive
seg000:0A71                 or      al, al
seg000:0A73                 jz      short ed_1
seg000:0A75                 jmp     ed_7
seg000:0A78 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0A78
seg000:0A78 ed_1:                                   ; CODE XREF: ext_delete+76j
seg000:0A78                 push    ds:menu_31_segment
seg000:0A7C                 push    ds:menu_31_offset
seg000:0A80                 call    display
seg000:0A83                 pop     bx
seg000:0A84                 pop     bx
seg000:0A85                 push    ds:input_col
seg000:0A89                 push    ds:input_row
seg000:0A8D                 mov     al, byte ptr ds:No
seg000:0A90                 push    ax
seg000:0A91                 call    get_yn_input
seg000:0A94                 add     sp, 6
seg000:0A97
seg000:0A97 switch_input4:
seg000:0A97                 cbw
seg000:0A98                 cmp     ax, 1Bh
seg000:0A9B                 jz      short case_ext_del_break
seg000:0A9D                 ja      short ed_3
seg000:0A9F                 or      al, al
seg000:0AA1                 jz      short case_ext_del_break
seg000:0AA3                 dec     al
seg000:0AA5                 jz      short case_ext_del_1
seg000:0AA7
seg000:0AA7 ed_3:                                   ; CODE XREF: ext_delete+A0j
seg000:0AA7                 call    internal_program_error
seg000:0AAA                 jmp     short case_ext_del_break
seg000:0AAC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0AAC
seg000:0AAC case_ext_del_1:                         ; CODE XREF: ext_delete+A8j
seg000:0AAC                 mov     [bp+ed_i], 0
seg000:0AB1
seg000:0AB1 ed_5:                                   ; CODE XREF: ext_delete+10Aj
seg000:0AB1                 mov     al, ds:cur_disk
seg000:0AB4                 cbw
seg000:0AB5                 shl     ax, 1
seg000:0AB7                 shl     ax, 1
seg000:0AB9                 add     ax, [bp+ed_i]
seg000:0ABC                 mov     cx, 46
seg000:0ABF                 mul     cx
seg000:0AC1                 mov     bx, ax
seg000:0AC3                 cmp     ds:part_table_sys_id[bx], 5
seg000:0AC8                 jnz     short ed_6
seg000:0ACA                 push    [bp+ed_i]
seg000:0ACD                 mov     al, ds:cur_disk
seg000:0AD0                 push    ax
seg000:0AD1                 call    remove_partition
seg000:0AD4                 pop     bx
seg000:0AD5                 pop     bx
seg000:0AD6                 call    table_display
seg000:0AD9                 mov     ax, 79
seg000:0ADC                 push    ax
seg000:0ADD                 mov     ax, 23
seg000:0AE0                 push    ax
seg000:0AE1                 sub     ax, ax
seg000:0AE3                 push    ax
seg000:0AE4                 mov     ax, 17
seg000:0AE7                 push    ax
seg000:0AE8                 call    clear_screen
seg000:0AEB                 add     sp, 8
seg000:0AEE                 push    ds:status_2_seg
seg000:0AF2                 push    ds:status_2_off
seg000:0AF6                 call    display
seg000:0AF9                 pop     bx
seg000:0AFA                 pop     bx
seg000:0AFB                 mov     ds:reboot_flag, 1
seg000:0B00
seg000:0B00 ed_6:                                   ; CODE XREF: ext_delete+CBj
seg000:0B00                 inc     [bp+ed_i]
seg000:0B03                 cmp     [bp+ed_i], 4
seg000:0B07                 jb      short ed_5
seg000:0B09                 jmp     short ed_8
seg000:0B0B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0B0B
seg000:0B0B ed_7:                                   ; CODE XREF: ext_delete+78j
seg000:0B0B                 push    ds:error_21_seg
seg000:0B0F                 push    ds:error_21_off
seg000:0B13                 call    display
seg000:0B16                 pop     bx
seg000:0B17                 pop     bx
seg000:0B18
seg000:0B18 ed_8:                                   ; CODE XREF: ext_delete+10Cj
seg000:0B18                 call    wait_for_ESC
seg000:0B1B
seg000:0B1B case_ext_del_break:                     ; CODE XREF: ext_delete+9Ej
seg000:0B1B                                         ; ext_delete+A4j ...
seg000:0B1B                 mov     ax, 79
seg000:0B1E                 push    ax
seg000:0B1F                 mov     ax, 24
seg000:0B22                 push    ax
seg000:0B23                 sub     ax, ax
seg000:0B25                 push    ax
seg000:0B26                 push    ax
seg000:0B27                 call    clear_screen
seg000:0B2A                 mov     sp, bp
seg000:0B2C                 pop     bp
seg000:0B2D                 retn
seg000:0B2D ext_delete      endp
seg000:0B2D
seg000:0B2E
seg000:0B2E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0B2E
seg000:0B2E ; Attributes: bp-based frame
seg000:0B2E
seg000:0B2E volume_delete   proc near               ; CODE XREF: delete_partition+185p
seg000:0B2E
seg000:0B2E vdel_drv_temp   = byte ptr -62h
seg000:0B2E vdel_column     = word ptr -60h
seg000:0B2E vdel_del_drive  = byte ptr -5Eh
seg000:0B2E vdel_low_drive  = byte ptr -5Ch
seg000:0B2E vdel_j          = word ptr -5Ah
seg000:0B2E vdel_point      = word ptr -58h
seg000:0B2E vdel_drive_input= byte ptr -56h
seg000:0B2E vdel_high_drive = byte ptr -54h
seg000:0B2E vdel_i          = word ptr -52h
seg000:0B2E vdel_drives_exist= byte ptr -50h
seg000:0B2E vdel_row        = word ptr -4Eh
seg000:0B2E vdel_temp       = byte ptr -4Ch
seg000:0B2E vdel_string_input= word ptr -4Ah
seg000:0B2E vdel_drive_list = byte ptr -3Eh
seg000:0B2E vdel_drive_list1= byte ptr -3Dh
seg000:0B2E vdel_vol_matches= byte ptr -10h
seg000:0B2E error_low_drive = byte ptr -0Eh
seg000:0B2E vdel_list_index = word ptr -0Ch
seg000:0B2E vdel_s          = dword ptr -0Ah
seg000:0B2E error_high_drive= byte ptr -6
seg000:0B2E drives_reassigned= byte ptr -4
seg000:0B2E vdel_input      = byte ptr -2
seg000:0B2E
seg000:0B2E                 push    bp
seg000:0B2F                 mov     bp, sp
seg000:0B31                 sub     sp, 98
seg000:0B34                 push    si
seg000:0B35                 mov     [bp+vdel_input], 0
seg000:0B39                 mov     byte ptr [bp+vdel_string_input], 0
seg000:0B3D                 mov     ax, 79
seg000:0B40                 push    ax
seg000:0B41                 mov     ax, 24
seg000:0B44                 push    ax
seg000:0B45                 sub     ax, ax
seg000:0B47                 push    ax
seg000:0B48                 push    ax
seg000:0B49                 call    clear_screen
seg000:0B4C                 add     sp, 8
seg000:0B4F                 push    ds:menu_32_segment
seg000:0B53                 push    ds:menu_32_offset
seg000:0B57                 call    display
seg000:0B5A                 pop     bx
seg000:0B5B                 pop     bx
seg000:0B5C                 push    ds:menu_11_segment
seg000:0B60                 push    ds:menu_11_offset
seg000:0B64                 call    display
seg000:0B67                 pop     bx
seg000:0B68                 pop     bx
seg000:0B69                 call    volume_display
seg000:0B6C                 mov     [bp+vdel_high_drive], al
seg000:0B6F                 call    get_num_logical_dos_drives
seg000:0B72                 sub     al, [bp+vdel_high_drive]
seg000:0B75                 neg     al
seg000:0B77                 inc     al
seg000:0B79                 mov     [bp+vdel_low_drive], al
seg000:0B7C                 cmp     al, 'Z'
seg000:0B7E                 jle     short vdel_1
seg000:0B80                 jmp     vdel_47
seg000:0B83 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0B83
seg000:0B83 vdel_1:                                 ; CODE XREF: volume_delete+50j
seg000:0B83                 cmp     [bp+vdel_high_drive], 'Z'
seg000:0B87                 jle     short vdel_2
seg000:0B89                 mov     [bp+vdel_high_drive], 'Z'
seg000:0B8D
seg000:0B8D vdel_2:                                 ; CODE XREF: volume_delete+59j
seg000:0B8D                 mov     al, [bp+vdel_low_drive]
seg000:0B90                 mov     [bp+vdel_temp], al
seg000:0B93                 mov     [bp+vdel_i], 0
seg000:0B98                 jmp     short vdel_5
seg000:0B9A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0B9A
seg000:0B9A vdel_3:                                 ; CODE XREF: volume_delete+8Bj
seg000:0B9A                 mov     si, [bp+vdel_i]
seg000:0B9D                 shl     si, 1
seg000:0B9F                 mov     [bp+si+vdel_drive_list], 0
seg000:0BA3
seg000:0BA3 vdel_4:                                 ; CODE XREF: volume_delete+95j
seg000:0BA3                 mov     [bp+si+vdel_drive_list1], 0FFh
seg000:0BA7                 inc     [bp+vdel_temp]
seg000:0BAA                 inc     [bp+vdel_i]
seg000:0BAD
seg000:0BAD vdel_5:                                 ; CODE XREF: volume_delete+6Aj
seg000:0BAD                 cmp     [bp+vdel_i], 23
seg000:0BB1                 jge     short vdel_6
seg000:0BB3                 mov     al, [bp+vdel_temp]
seg000:0BB6                 cmp     [bp+vdel_high_drive], al
seg000:0BB9                 jl      short vdel_3
seg000:0BBB                 mov     si, [bp+vdel_i]
seg000:0BBE                 shl     si, 1
seg000:0BC0                 mov     [bp+si+vdel_drive_list], al
seg000:0BC3                 jmp     short vdel_4
seg000:0BC5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0BC5
seg000:0BC5 vdel_6:                                 ; CODE XREF: volume_delete+83j
seg000:0BC5                 mov     al, 5
seg000:0BC7                 push    ax
seg000:0BC8                 call    get_partition_size
seg000:0BCB                 pop     bx
seg000:0BCC                 push    ax
seg000:0BCD                 mov     ax, offset ld_p_size_format ; "%4.1d"
seg000:0BD0                 push    ax
seg000:0BD1                 mov     ax, offset insert
seg000:0BD4                 push    ax
seg000:0BD5                 call    sprintf
seg000:0BD8                 add     sp, 6
seg000:0BDB                 push    ds:menu_21_segment
seg000:0BDF                 push    ds:menu_21_offset
seg000:0BE3                 call    display
seg000:0BE6                 pop     bx
seg000:0BE7                 pop     bx
seg000:0BE8                 mov     [bp+drives_reassigned], 0
seg000:0BEC                 jmp     vdel_39
seg000:0BEF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0BEF
seg000:0BEF vdel_7:                                 ; CODE XREF: volume_delete+3FBj
seg000:0BEF                 sub     al, al
seg000:0BF1                 mov     [bp+vdel_drives_exist], al
seg000:0BF4                 mov     [bp+error_low_drive], al
seg000:0BF7                 mov     [bp+error_high_drive], al
seg000:0BFA                 mov     [bp+vdel_i], 0
seg000:0BFF
seg000:0BFF vdel_8:                                 ; CODE XREF: volume_delete+FDj
seg000:0BFF                 mov     si, [bp+vdel_i]
seg000:0C02                 shl     si, 1
seg000:0C04                 mov     al, [bp+si+vdel_drive_list]
seg000:0C07                 mov     [bp+vdel_drv_temp], al
seg000:0C0A                 or      al, al
seg000:0C0C                 jz      short vdel_9
seg000:0C0E                 cmp     [bp+si+vdel_drive_list1], 0FEh
seg000:0C12                 jz      short vdel_9
seg000:0C14                 mov     [bp+vdel_drives_exist], 1
seg000:0C18                 mov     [bp+error_high_drive], al
seg000:0C1B                 cmp     [bp+error_low_drive], 0
seg000:0C1F                 jnz     short vdel_9
seg000:0C21                 mov     [bp+error_low_drive], al
seg000:0C24
seg000:0C24 vdel_9:                                 ; CODE XREF: volume_delete+DEj
seg000:0C24                                         ; volume_delete+E4j ...
seg000:0C24                 inc     [bp+vdel_i]
seg000:0C27                 cmp     [bp+vdel_i], 23
seg000:0C2B                 jl      short vdel_8
seg000:0C2D                 cmp     [bp+vdel_drives_exist], 0
seg000:0C31                 jnz     short vdel_10
seg000:0C33                 jmp     vdel_38
seg000:0C36 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0C36
seg000:0C36 vdel_10:                                ; CODE XREF: volume_delete+103j
seg000:0C36                 mov     ds:valid_input, 0
seg000:0C3B
seg000:0C3B vdel_11:                                ; CODE XREF: volume_delete+1AEj
seg000:0C3B                 cmp     [bp+vdel_input], 1Bh
seg000:0C3F                 jnz     short vdel_12
seg000:0C41                 jmp     vdel_16
seg000:0C44 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0C44
seg000:0C44 vdel_12:                                ; CODE XREF: volume_delete+111j
seg000:0C44                 push    ds:menu_33_segment
seg000:0C48                 push    ds:menu_33_offset
seg000:0C4C                 call    display
seg000:0C4F                 pop     bx
seg000:0C50                 pop     bx
seg000:0C51                 mov     ax, 79
seg000:0C54                 push    ax
seg000:0C55                 mov     ax, 21
seg000:0C58                 push    ax
seg000:0C59                 sub     cx, cx
seg000:0C5B                 push    cx
seg000:0C5C                 push    ax
seg000:0C5D                 call    clear_screen
seg000:0C60                 add     sp, 8
seg000:0C63                 mov     al, [bp+error_high_drive]
seg000:0C66                 push    ax
seg000:0C67                 mov     al, [bp+error_low_drive]
seg000:0C6A                 push    ax
seg000:0C6B                 push    ds:input_col
seg000:0C6F                 push    ds:input_row
seg000:0C73                 mov     al, [bp+vdel_high_drive]
seg000:0C76                 push    ax
seg000:0C77                 mov     al, [bp+vdel_low_drive]
seg000:0C7A                 push    ax
seg000:0C7B                 call    get_alpha_input
seg000:0C7E                 add     sp, 12
seg000:0C81                 mov     [bp+vdel_input], al
seg000:0C84                 mov     [bp+vdel_drive_input], al
seg000:0C87                 mov     [bp+vdel_drives_exist], 0
seg000:0C8B                 mov     [bp+vdel_i], 0
seg000:0C90
seg000:0C90 vdel_13:                                ; CODE XREF: volume_delete+1A5j
seg000:0C90                 mov     al, [bp+vdel_drive_input]
seg000:0C93                 mov     si, [bp+vdel_i]
seg000:0C96                 shl     si, 1
seg000:0C98                 cmp     [bp+si+vdel_drive_list], al
seg000:0C9B                 jnz     short vdel_14
seg000:0C9D                 cmp     [bp+si+vdel_drive_list1], 0FEh
seg000:0CA1                 jz      short vdel_14
seg000:0CA3                 mov     [bp+vdel_drives_exist], 1
seg000:0CA7                 mov     ax, [bp+vdel_i]
seg000:0CAA                 mov     [bp+vdel_list_index], ax
seg000:0CAD
seg000:0CAD vdel_14:                                ; CODE XREF: volume_delete+16Dj
seg000:0CAD                                         ; volume_delete+173j
seg000:0CAD                 mov     al, 24
seg000:0CAF                 imul    ds:cur_disk
seg000:0CB3                 add     ax, [bp+vdel_i]
seg000:0CB6                 mov     cx, 46
seg000:0CB9                 imul    cx
seg000:0CBB                 mov     bx, ax
seg000:0CBD                 mov     al, [bp+vdel_drive_input]
seg000:0CC0                 cmp     ds:ext_table_drive_letter[bx], al
seg000:0CC4                 jnz     short vdel_15
seg000:0CC6                 mov     ax, [bp+vdel_i]
seg000:0CC9                 mov     [bp+vdel_point], ax
seg000:0CCC
seg000:0CCC vdel_15:                                ; CODE XREF: volume_delete+196j
seg000:0CCC                 inc     [bp+vdel_i]
seg000:0CCF                 cmp     [bp+vdel_i], 23
seg000:0CD3                 jl      short vdel_13
seg000:0CD5                 cmp     ds:valid_input, 0
seg000:0CDA                 jnz     short vdel_16
seg000:0CDC                 jmp     vdel_11
seg000:0CDF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0CDF
seg000:0CDF vdel_16:                                ; CODE XREF: volume_delete+113j
seg000:0CDF                                         ; volume_delete+1ACj
seg000:0CDF                 mov     [bp+vdel_vol_matches], 0
seg000:0CE3                 cmp     [bp+vdel_input], 1Bh
seg000:0CE7                 jnz     short vdel_17
seg000:0CE9                 jmp     vdel_22
seg000:0CEC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0CEC
seg000:0CEC vdel_17:                                ; CODE XREF: volume_delete+1B9j
seg000:0CEC                 cmp     [bp+vdel_drives_exist], 0
seg000:0CF0                 jz      short vdel_20
seg000:0CF2                 mov     byte ptr [bp+vdel_string_input], 0
seg000:0CF6                 mov     ax, 79
seg000:0CF9                 push    ax
seg000:0CFA                 mov     ax, 23
seg000:0CFD                 push    ax
seg000:0CFE                 sub     ax, ax
seg000:0D00                 push    ax
seg000:0D01                 mov     ax, 22
seg000:0D04                 push    ax
seg000:0D05                 call    clear_screen
seg000:0D08                 add     sp, 8
seg000:0D0B                 push    ds:menu_41_segment
seg000:0D0F                 push    ds:menu_41_offset
seg000:0D13                 call    display
seg000:0D16                 pop     bx
seg000:0D17                 pop     bx
seg000:0D18                 lea     ax, [bp+vdel_string_input]
seg000:0D1B                 push    ss
seg000:0D1C                 push    ax
seg000:0D1D                 push    ds:input_col
seg000:0D21                 push    ds:input_row
seg000:0D25                 call    get_string_input
seg000:0D28                 add     sp, 8
seg000:0D2B                 cmp     byte ptr [bp+vdel_string_input], 1Bh
seg000:0D2F                 jnz     short vdel_18
seg000:0D31                 mov     [bp+vdel_input], 1Bh
seg000:0D35
seg000:0D35 vdel_18:                                ; CODE XREF: volume_delete+201j
seg000:0D35                 lea     ax, [bp+vdel_string_input]
seg000:0D38                 push    ax
seg000:0D39                 mov     al, 24
seg000:0D3B                 imul    ds:cur_disk
seg000:0D3F                 add     ax, [bp+vdel_point]
seg000:0D42                 mov     cx, 46
seg000:0D45                 imul    cx
seg000:0D47                 add     ax, offset ext_table_vol_label
seg000:0D4A                 push    ax
seg000:0D4B                 call    strcmp
seg000:0D4E                 pop     bx
seg000:0D4F                 pop     bx
seg000:0D50                 or      ax, ax
seg000:0D52                 jnz     short vdel_19
seg000:0D54                 mov     [bp+vdel_vol_matches], 1
seg000:0D58                 jmp     short vdel_22
seg000:0D5A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0D5A
seg000:0D5A vdel_19:                                ; CODE XREF: volume_delete+224j
seg000:0D5A                 cmp     [bp+vdel_input], 1Bh
seg000:0D5E                 jz      short vdel_22
seg000:0D60                 push    ds:error_34_seg
seg000:0D64                 push    ds:error_34_off
seg000:0D68                 jmp     short vdel_21
seg000:0D6A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0D6A
seg000:0D6A vdel_20:                                ; CODE XREF: volume_delete+1C2j
seg000:0D6A                 mov     al, [bp+vdel_drive_input]
seg000:0D6D                 push    ax
seg000:0D6E                 call    dos_upper
seg000:0D71                 pop     bx
seg000:0D72                 mov     ds:insert, al
seg000:0D75                 mov     ds:insert+1, ':'
seg000:0D7A                 mov     ax, 79
seg000:0D7D                 push    ax
seg000:0D7E                 mov     ax, 22
seg000:0D81                 push    ax
seg000:0D82                 sub     ax, ax
seg000:0D84                 push    ax
seg000:0D85                 mov     ax, 21
seg000:0D88                 push    ax
seg000:0D89                 call    clear_screen
seg000:0D8C                 add     sp, 8
seg000:0D8F                 push    ds:error_29_seg
seg000:0D93                 push    ds:error_29_off
seg000:0D97
seg000:0D97 vdel_21:                                ; CODE XREF: volume_delete+23Aj
seg000:0D97                 call    display
seg000:0D9A                 pop     bx
seg000:0D9B                 pop     bx
seg000:0D9C
seg000:0D9C vdel_22:                                ; CODE XREF: volume_delete+1BBj
seg000:0D9C                                         ; volume_delete+22Aj ...
seg000:0D9C                 cmp     [bp+vdel_input], 1Bh
seg000:0DA0                 jnz     short vdel_23
seg000:0DA2                 jmp     vdel_39
seg000:0DA5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0DA5
seg000:0DA5 vdel_23:                                ; CODE XREF: volume_delete+272j
seg000:0DA5                 cmp     [bp+vdel_drives_exist], 0
seg000:0DA9                 jz      short vdel_24
seg000:0DAB                 cmp     [bp+vdel_vol_matches], 0
seg000:0DAF                 jnz     short vdel_25
seg000:0DB1
seg000:0DB1 vdel_24:                                ; CODE XREF: volume_delete+27Bj
seg000:0DB1                 jmp     vdel_39
seg000:0DB4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0DB4
seg000:0DB4 vdel_25:                                ; CODE XREF: volume_delete+281j
seg000:0DB4                 mov     ds:valid_input, 1
seg000:0DB9                 mov     al, [bp+vdel_drive_input]
seg000:0DBC                 sub     al, [bp+vdel_low_drive]
seg000:0DBF                 push    ax
seg000:0DC0                 call    find_ext_drive
seg000:0DC3                 pop     bx
seg000:0DC4                 mov     [bp+vdel_del_drive], al
seg000:0DC7                 push    ds:menu_34_segment
seg000:0DCB                 push    ds:menu_34_offset
seg000:0DCF                 call    display
seg000:0DD2                 pop     bx
seg000:0DD3                 pop     bx
seg000:0DD4                 push    ds:input_col
seg000:0DD8                 push    ds:input_row
seg000:0DDC                 mov     al, byte ptr ds:No
seg000:0DDF                 push    ax
seg000:0DE0                 call    get_yn_input
seg000:0DE3                 add     sp, 6
seg000:0DE6                 mov     [bp+vdel_input], al
seg000:0DE9                 mov     ax, 79
seg000:0DEC                 push    ax
seg000:0DED                 mov     ax, 23
seg000:0DF0                 push    ax
seg000:0DF1                 sub     cx, cx
seg000:0DF3                 push    cx
seg000:0DF4                 push    ax
seg000:0DF5                 call    clear_screen
seg000:0DF8                 add     sp, 8
seg000:0DFB
seg000:0DFB switch_input5:
seg000:0DFB                 mov     al, [bp+vdel_input]
seg000:0DFE                 cbw
seg000:0DFF                 cmp     ax, 1Bh
seg000:0E02                 jnz     short vdel_27
seg000:0E04                 jmp     case_vol_del_break
seg000:0E07 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0E07
seg000:0E07 vdel_27:                                ; CODE XREF: volume_delete+2D4j
seg000:0E07                 ja      short case_vol_del_DEF
seg000:0E09                 or      al, al
seg000:0E0B                 jnz     short vdel_28
seg000:0E0D                 jmp     case_vol_del_break
seg000:0E10 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0E10
seg000:0E10 vdel_28:                                ; CODE XREF: volume_delete+2DDj
seg000:0E10                 dec     al
seg000:0E12                 jz      short case_vol_del_1
seg000:0E14
seg000:0E14 case_vol_del_DEF:                       ; CODE XREF: volume_delete:vdel_27j
seg000:0E14                 call    internal_program_error
seg000:0E17                 jmp     vdel_39
seg000:0E1A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0E1A
seg000:0E1A case_vol_del_1:                         ; CODE XREF: volume_delete+2E4j
seg000:0E1A                 mov     si, [bp+vdel_list_index]
seg000:0E1D                 shl     si, 1
seg000:0E1F                 mov     [bp+si+vdel_drive_list1], 0FEh
seg000:0E23                 mov     [bp+drives_reassigned], 1
seg000:0E27                 mov     [bp+vdel_i], 0
seg000:0E2C                 jmp     short vdel_34
seg000:0E2E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0E2E
seg000:0E2E vdel_31:                                ; CODE XREF: volume_delete+395j
seg000:0E2E                 mov     [bp+vdel_column], 45
seg000:0E33                 mov     ax, [bp+vdel_i]
seg000:0E36                 sub     ax, 8
seg000:0E39                 mov     [bp+vdel_row], ax
seg000:0E3C                 mov     cx, 79
seg000:0E3F                 push    cx
seg000:0E40                 push    ax
seg000:0E41                 mov     cx, 45
seg000:0E44
seg000:0E44 vdel_32:                                ; CODE XREF: volume_delete+3AEj
seg000:0E44                 push    cx
seg000:0E45                 push    ax
seg000:0E46                 call    clear_screen
seg000:0E49                 add     sp, 8
seg000:0E4C                 mov     ax, [bp+vdel_row]
seg000:0E4F                 mov     cx, 10
seg000:0E52                 cwd
seg000:0E53                 idiv    cx
seg000:0E55                 add     al, '0'
seg000:0E57                 les     bx, dword ptr ds:status_3_off
seg000:0E5B                 inc     bx
seg000:0E5C                 mov     word ptr [bp+vdel_s], bx
seg000:0E5F                 mov     word ptr [bp+vdel_s+2], es
seg000:0E62                 mov     es:[bx], al
seg000:0E65                 mov     ax, [bp+vdel_row]
seg000:0E68                 cwd
seg000:0E69                 idiv    cx
seg000:0E6B                 add     dl, '0'
seg000:0E6E                 inc     word ptr [bp+vdel_s]
seg000:0E71                 les     bx, [bp+vdel_s]
seg000:0E74                 mov     es:[bx], dl
seg000:0E77                 mov     ax, [bp+vdel_column]
seg000:0E7A                 cwd
seg000:0E7B                 idiv    cx
seg000:0E7D                 add     al, '0'
seg000:0E7F                 inc     bx
seg000:0E80                 mov     word ptr [bp+vdel_s], bx
seg000:0E83                 mov     word ptr [bp+vdel_s+2], es
seg000:0E86                 mov     es:[bx], al
seg000:0E89                 mov     ax, [bp+vdel_column]
seg000:0E8C                 cwd
seg000:0E8D                 idiv    cx
seg000:0E8F                 add     dl, '0'
seg000:0E92                 inc     bx
seg000:0E93                 mov     word ptr [bp+vdel_s], bx
seg000:0E96                 mov     word ptr [bp+vdel_s+2], es
seg000:0E99                 mov     es:[bx], dl
seg000:0E9C                 push    ds:status_3_seg
seg000:0EA0                 push    ds:status_3_off
seg000:0EA4                 call    display
seg000:0EA7                 pop     bx
seg000:0EA8                 pop     bx
seg000:0EA9
seg000:0EA9 vdel_33:                                ; CODE XREF: volume_delete+38Dj
seg000:0EA9                 inc     [bp+vdel_i]
seg000:0EAC
seg000:0EAC vdel_34:                                ; CODE XREF: volume_delete+2FEj
seg000:0EAC                 cmp     [bp+vdel_i], 23
seg000:0EB0                 jge     short vdel_36
seg000:0EB2                 mov     si, [bp+vdel_i]
seg000:0EB5                 shl     si, 1
seg000:0EB7                 cmp     [bp+si+vdel_drive_list1], 0FEh
seg000:0EBB                 jnz     short vdel_33
seg000:0EBD                 cmp     [bp+vdel_i], 12
seg000:0EC1                 jl      short vdel_35
seg000:0EC3                 jmp     vdel_31
seg000:0EC6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0EC6
seg000:0EC6 vdel_35:                                ; CODE XREF: volume_delete+393j
seg000:0EC6                 mov     [bp+vdel_column], 4
seg000:0ECB                 mov     ax, [bp+vdel_i]
seg000:0ECE                 add     ax, 4
seg000:0ED1                 mov     [bp+vdel_row], ax
seg000:0ED4                 mov     cx, 39
seg000:0ED7                 push    cx
seg000:0ED8                 push    ax
seg000:0ED9                 mov     cx, 4
seg000:0EDC                 jmp     vdel_32
seg000:0EDF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0EDF
seg000:0EDF vdel_36:                                ; CODE XREF: volume_delete+382j
seg000:0EDF                 mov     ds:reboot_flag, 1
seg000:0EE4
seg000:0EE4 case_vol_del_break:                     ; CODE XREF: volume_delete+2D6j
seg000:0EE4                                         ; volume_delete+2DFj
seg000:0EE4                 mov     ax, 79
seg000:0EE7                 push    ax
seg000:0EE8                 mov     ax, 23
seg000:0EEB                 push    ax
seg000:0EEC                 sub     ax, ax
seg000:0EEE                 push    ax
seg000:0EEF                 mov     ax, 21
seg000:0EF2                 push    ax
seg000:0EF3                 call    clear_screen
seg000:0EF6                 add     sp, 8
seg000:0EF9                 jmp     short vdel_39
seg000:0EFB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0EFB
seg000:0EFB vdel_38:                                ; CODE XREF: volume_delete+105j
seg000:0EFB                 mov     ax, 79
seg000:0EFE                 push    ax
seg000:0EFF                 mov     ax, 21
seg000:0F02                 push    ax
seg000:0F03                 sub     ax, ax
seg000:0F05                 push    ax
seg000:0F06                 mov     ax, 16
seg000:0F09                 push    ax
seg000:0F0A                 call    clear_screen
seg000:0F0D                 add     sp, 8
seg000:0F10                 push    ds:error_22_seg
seg000:0F14                 push    ds:error_22_off
seg000:0F18                 call    display
seg000:0F1B                 pop     bx
seg000:0F1C                 pop     bx
seg000:0F1D                 call    wait_for_ESC
seg000:0F20                 mov     [bp+vdel_input], al
seg000:0F23
seg000:0F23 vdel_39:                                ; CODE XREF: volume_delete+BEj
seg000:0F23                                         ; volume_delete+274j ...
seg000:0F23                 cmp     [bp+vdel_input], 1Bh
seg000:0F27                 jz      short vdel_40
seg000:0F29                 jmp     vdel_7
seg000:0F2C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0F2C
seg000:0F2C vdel_40:                                ; CODE XREF: volume_delete+3F9j
seg000:0F2C                 cmp     [bp+drives_reassigned], 0
seg000:0F30                 jnz     short vol_del_for_1
seg000:0F32                 jmp     vdel_49
seg000:0F35 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0F35
seg000:0F35 vol_del_for_1:                          ; CODE XREF: volume_delete+402j
seg000:0F35                 mov     [bp+vdel_i], 0
seg000:0F3A
seg000:0F3A vol_del_for_1_next:                     ; CODE XREF: volume_delete+45Bj
seg000:0F3A                 mov     si, [bp+vdel_i]
seg000:0F3D                 shl     si, 1
seg000:0F3F                 cmp     [bp+si+vdel_drive_list1], 0FEh
seg000:0F43                 jnz     short vol_del_for_1_condition
seg000:0F45
seg000:0F45 vol_del_for_2:
seg000:0F45                 mov     [bp+vdel_j], 0
seg000:0F4A
seg000:0F4A vol_del_for_2_next:                     ; CODE XREF: volume_delete+452j
seg000:0F4A                 mov     al, 24
seg000:0F4C                 imul    ds:cur_disk
seg000:0F50                 add     ax, [bp+vdel_j]
seg000:0F53                 mov     cx, 46
seg000:0F56                 imul    cx
seg000:0F58                 mov     bx, ax
seg000:0F5A                 mov     al, ds:ext_table_drive_letter[bx]
seg000:0F5E                 cbw
seg000:0F5F                 mov     si, [bp+vdel_i]
seg000:0F62                 shl     si, 1
seg000:0F64                 mov     cl, [bp+si+vdel_drive_list]
seg000:0F67                 sub     ch, ch
seg000:0F69                 cmp     ax, cx
seg000:0F6B                 jnz     short vol_del_for_2_condition
seg000:0F6D                 push    [bp+vdel_i]
seg000:0F70                 mov     al, ds:cur_disk
seg000:0F73                 push    ax
seg000:0F74                 call    remove_volume
seg000:0F77                 pop     bx
seg000:0F78                 pop     bx
seg000:0F79
seg000:0F79 vol_del_for_2_condition:                ; CODE XREF: volume_delete+43Dj
seg000:0F79                 inc     [bp+vdel_j]
seg000:0F7C                 cmp     [bp+vdel_j], 23
seg000:0F80                 jl      short vol_del_for_2_next
seg000:0F82
seg000:0F82 vol_del_for_1_condition:                ; CODE XREF: volume_delete+415j
seg000:0F82                 inc     [bp+vdel_i]
seg000:0F85                 cmp     [bp+vdel_i], 23
seg000:0F89                 jl      short vol_del_for_1_next
seg000:0F8B                 call    volume_display
seg000:0F8E                 mov     ax, 79
seg000:0F91                 push    ax
seg000:0F92                 mov     ax, 23
seg000:0F95                 push    ax
seg000:0F96                 sub     ax, ax
seg000:0F98                 push    ax
seg000:0F99                 mov     ax, 16
seg000:0F9C                 push    ax
seg000:0F9D                 call    clear_screen
seg000:0FA0                 add     sp, 8
seg000:0FA3                 push    ds:status_10_seg
seg000:0FA7                 push    ds:status_10_off
seg000:0FAB                 jmp     short vdel_48
seg000:0FAD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:0FAD
seg000:0FAD vdel_47:                                ; CODE XREF: volume_delete+52j
seg000:0FAD                 mov     ax, 79
seg000:0FB0                 push    ax
seg000:0FB1                 mov     ax, 21
seg000:0FB4                 push    ax
seg000:0FB5                 sub     ax, ax
seg000:0FB7                 push    ax
seg000:0FB8                 mov     ax, 16
seg000:0FBB                 push    ax
seg000:0FBC                 call    clear_screen
seg000:0FBF                 add     sp, 8
seg000:0FC2                 push    ds:error_36_seg
seg000:0FC6                 push    ds:error_36_off
seg000:0FCA
seg000:0FCA vdel_48:                                ; CODE XREF: volume_delete+47Dj
seg000:0FCA                 call    display
seg000:0FCD                 pop     bx
seg000:0FCE                 pop     bx
seg000:0FCF                 call    wait_for_ESC
seg000:0FD2
seg000:0FD2 vdel_49:                                ; CODE XREF: volume_delete+404j
seg000:0FD2                 mov     ax, 79
seg000:0FD5                 push    ax
seg000:0FD6                 mov     ax, 24
seg000:0FD9                 push    ax
seg000:0FDA                 sub     ax, ax
seg000:0FDC                 push    ax
seg000:0FDD                 push    ax
seg000:0FDE                 call    clear_screen
seg000:0FE1                 add     sp, 8
seg000:0FE4                 pop     si
seg000:0FE5                 mov     sp, bp
seg000:0FE7                 pop     bp
seg000:0FE8                 retn
seg000:0FE8 volume_delete   endp
seg000:0FE8
seg000:0FE9
seg000:0FE9 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:0FE9
seg000:0FE9 ; Attributes: bp-based frame
seg000:0FE9
seg000:0FE9 non_dos_delete  proc near               ; CODE XREF: delete_partition+1ADp
seg000:0FE9
seg000:0FE9 ndd_j           = word ptr -0Ah
seg000:0FE9 ndd_i           = word ptr -8
seg000:0FE9 ndd_cnt         = word ptr -6
seg000:0FE9 ndd_pnum        = word ptr -2
seg000:0FE9
seg000:0FE9                 push    bp
seg000:0FEA                 mov     bp, sp
seg000:0FEC                 sub     sp, 10
seg000:0FEF                 mov     ax, 79
seg000:0FF2                 push    ax
seg000:0FF3                 mov     ax, 24
seg000:0FF6                 push    ax
seg000:0FF7                 sub     ax, ax
seg000:0FF9                 push    ax
seg000:0FFA                 push    ax
seg000:0FFB                 call    clear_screen
seg000:0FFE                 add     sp, 8
seg000:1001                 push    ds:menu_58_segment
seg000:1005                 push    ds:menu_58_offset
seg000:1009                 call    display
seg000:100C                 pop     bx
seg000:100D                 pop     bx
seg000:100E                 mov     al, ds:cur_disk
seg000:1011                 add     al, '1'
seg000:1013                 mov     ds:insert, al
seg000:1016                 push    ds:menu_5_segment
seg000:101A                 push    ds:menu_5_offset
seg000:101E                 call    display
seg000:1021                 pop     bx
seg000:1022                 pop     bx
seg000:1023                 push    ds:menu_11_segment
seg000:1027                 push    ds:menu_11_offset
seg000:102B                 call    display
seg000:102E                 pop     bx
seg000:102F                 pop     bx
seg000:1030                 call    table_display
seg000:1033                 or      al, al
seg000:1035                 jnz     short ndd_1
seg000:1037                 jmp     case_nondos_del_DEF
seg000:103A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:103A
seg000:103A ndd_1:                                  ; CODE XREF: non_dos_delete+4Cj
seg000:103A                 mov     al, ds:cur_disk
seg000:103D                 cbw
seg000:103E                 mov     bx, ax
seg000:1040                 shl     bx, 1
seg000:1042                 push    ds:total_mbytes[bx]
seg000:1046                 mov     ax, offset nd_p_size_format ; "%4.1d"
seg000:1049                 push    ax
seg000:104A                 mov     ax, offset insert
seg000:104D                 push    ax
seg000:104E                 call    sprintf
seg000:1051                 add     sp, 6
seg000:1054                 push    ds:menu_15_segment
seg000:1058                 push    ds:menu_15_offset
seg000:105C                 call    display
seg000:105F                 pop     bx
seg000:1060                 pop     bx
seg000:1061                 mov     [bp+ndd_cnt], 0
seg000:1066                 mov     [bp+ndd_i], 0
seg000:106B
seg000:106B ndd_2:                                  ; CODE XREF: non_dos_delete+A5j
seg000:106B                 mov     al, ds:cur_disk
seg000:106E                 cbw
seg000:106F                 shl     ax, 1
seg000:1071                 shl     ax, 1
seg000:1073                 add     ax, [bp+ndd_i]
seg000:1076                 mov     cx, 46
seg000:1079                 mul     cx
seg000:107B                 mov     bx, ax
seg000:107D                 cmp     ds:part_table_sys_id[bx], 0
seg000:1082                 jz      short ndd_3
seg000:1084                 inc     [bp+ndd_cnt]
seg000:1087
seg000:1087 ndd_3:                                  ; CODE XREF: non_dos_delete+99j
seg000:1087                 inc     [bp+ndd_i]
seg000:108A                 cmp     [bp+ndd_i], 4
seg000:108E                 jb      short ndd_2
seg000:1090                 push    ds:menu_59_segment
seg000:1094                 push    ds:menu_59_offset
seg000:1098                 call    display
seg000:109B                 pop     bx
seg000:109C                 pop     bx
seg000:109D                 push    ds:input_col
seg000:10A1                 push    ds:input_row
seg000:10A5                 mov     al, byte ptr [bp+ndd_cnt]
seg000:10A8                 push    ax
seg000:10A9                 mov     al, 1
seg000:10AB                 push    ax
seg000:10AC                 call    get_num_input
seg000:10AF                 add     sp, 8
seg000:10B2                 cmp     al, 1Bh
seg000:10B4                 jnz     short ndd_4
seg000:10B6                 jmp     case_nondos_del_break
seg000:10B9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:10B9
seg000:10B9 ndd_4:                                  ; CODE XREF: non_dos_delete+CBj
seg000:10B9                 cbw
seg000:10BA                 sub     ax, '0'
seg000:10BD                 mov     [bp+ndd_pnum], ax
seg000:10C0                 mov     [bp+ndd_j], 0
seg000:10C5
seg000:10C5 loc_10C5:
seg000:10C5                 mov     [bp+ndd_i], 0
seg000:10CA                 jmp     short ndd_6
seg000:10CC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:10CC
seg000:10CC ndd_5:                                  ; CODE XREF: non_dos_delete+10Cj
seg000:10CC                                         ; non_dos_delete+117j
seg000:10CC                 inc     [bp+ndd_i]
seg000:10CF
seg000:10CF ndd_6:                                  ; CODE XREF: non_dos_delete+E1j
seg000:10CF                 cmp     [bp+ndd_i], 4
seg000:10D3                 jnb     short ndd_7
seg000:10D5                 mov     al, ds:cur_disk
seg000:10D8                 cbw
seg000:10D9                 shl     ax, 1
seg000:10DB                 shl     ax, 1
seg000:10DD                 mov     bx, [bp+ndd_i]
seg000:10E0                 mov     cx, ax
seg000:10E2                 mov     al, ds:sort[bx]
seg000:10E6                 cbw
seg000:10E7                 add     ax, cx
seg000:10E9                 mov     cx, 46
seg000:10EC                 imul    cx
seg000:10EE                 mov     bx, ax
seg000:10F0                 cmp     ds:part_table_sys_id[bx], 0
seg000:10F5                 jz      short ndd_5
seg000:10F7                 mov     ax, [bp+ndd_pnum]
seg000:10FA                 inc     [bp+ndd_j]
seg000:10FD                 cmp     [bp+ndd_j], ax
seg000:1100                 jnz     short ndd_5
seg000:1102
seg000:1102 ndd_7:                                  ; CODE XREF: non_dos_delete+EAj
seg000:1102                 mov     al, ds:cur_disk
seg000:1105                 cbw
seg000:1106                 shl     ax, 1
seg000:1108                 shl     ax, 1
seg000:110A                 mov     bx, [bp+ndd_i]
seg000:110D                 mov     cx, ax
seg000:110F                 mov     al, ds:sort[bx]
seg000:1113                 cbw
seg000:1114                 mov     [bp+ndd_i], ax
seg000:1117                 add     ax, cx
seg000:1119                 mov     cx, 46
seg000:111C                 mul     cx
seg000:111E                 mov     bx, ax
seg000:1120                 cmp     ds:part_table_sys_id[bx], 1
seg000:1125                 jz      short ndd_11
seg000:1127                 cmp     ds:part_table_sys_id[bx], 4
seg000:112C                 jz      short ndd_11
seg000:112E                 cmp     ds:part_table_sys_id[bx], 6
seg000:1133                 jz      short ndd_11
seg000:1135                 cmp     ds:part_table_sys_id[bx], 5
seg000:113A                 jz      short ndd_11
seg000:113C                 push    ds:menu_56_segment
seg000:1140                 push    ds:menu_56_offset
seg000:1144                 call    display
seg000:1147                 pop     bx
seg000:1148                 pop     bx
seg000:1149                 push    ds:input_col
seg000:114D                 push    ds:input_row
seg000:1151                 mov     al, byte ptr ds:No
seg000:1154                 push    ax
seg000:1155                 call    get_yn_input
seg000:1158                 add     sp, 6
seg000:115B
seg000:115B switch_input6:
seg000:115B                 cbw
seg000:115C                 cmp     ax, 1Bh
seg000:115F                 jz      short case_nondos_del_break
seg000:1161                 ja      short case_nondos_del_DEF
seg000:1163                 or      al, al
seg000:1165                 jz      short case_nondos_del_break
seg000:1167                 dec     al
seg000:1169                 jnz     short case_nondos_del_DEF
seg000:116B
seg000:116B case_nondos_del_1:
seg000:116B                 push    [bp+ndd_i]
seg000:116E                 mov     al, ds:cur_disk
seg000:1171                 push    ax
seg000:1172                 call    remove_partition
seg000:1175                 pop     bx
seg000:1176                 pop     bx
seg000:1177                 call    table_display
seg000:117A                 mov     ax, 79
seg000:117D                 push    ax
seg000:117E                 mov     ax, 23
seg000:1181                 push    ax
seg000:1182                 sub     ax, ax
seg000:1184                 push    ax
seg000:1185                 mov     ax, 16
seg000:1188                 push    ax
seg000:1189                 call    clear_screen
seg000:118C                 add     sp, 8
seg000:118F                 mov     ds:reboot_flag, 1
seg000:1194                 push    ds:status_13_seg
seg000:1198                 push    ds:status_13_off
seg000:119C
seg000:119C ndd_10:                                 ; CODE XREF: non_dos_delete+1C5j
seg000:119C                 call    display
seg000:119F                 pop     bx
seg000:11A0                 pop     bx
seg000:11A1                 call    wait_for_ESC
seg000:11A4                 jmp     short case_nondos_del_break
seg000:11A6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:11A6
seg000:11A6 ndd_11:                                 ; CODE XREF: non_dos_delete+13Cj
seg000:11A6                                         ; non_dos_delete+143j ...
seg000:11A6                 push    ds:error_39_seg
seg000:11AA                 push    ds:error_39_off
seg000:11AE                 jmp     short ndd_10
seg000:11B0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:11B0
seg000:11B0 case_nondos_del_DEF:                    ; CODE XREF: non_dos_delete+4Ej
seg000:11B0                                         ; non_dos_delete+178j ...
seg000:11B0                 call    internal_program_error
seg000:11B3
seg000:11B3 case_nondos_del_break:                  ; CODE XREF: non_dos_delete+CDj
seg000:11B3                                         ; non_dos_delete+176j ...
seg000:11B3                 mov     ax, 79
seg000:11B6                 push    ax
seg000:11B7                 mov     ax, 24
seg000:11BA                 push    ax
seg000:11BB                 sub     ax, ax
seg000:11BD                 push    ax
seg000:11BE                 push    ax
seg000:11BF                 call    clear_screen
seg000:11C2                 mov     sp, bp
seg000:11C4                 pop     bp
seg000:11C5                 retn
seg000:11C5 non_dos_delete  endp
seg000:11C5
seg000:11C6
seg000:11C6 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:11C6
seg000:11C6 ; Attributes: bp-based frame
seg000:11C6
seg000:11C6 create_partition proc near              ; CODE XREF: do_main_menu:case_1p
seg000:11C6
seg000:11C6 cp_input        = byte ptr -2
seg000:11C6
seg000:11C6                 push    bp
seg000:11C7                 mov     bp, sp
seg000:11C9                 sub     sp, 6
seg000:11CC                 mov     ax, 79
seg000:11CF                 push    ax
seg000:11D0                 mov     ax, 24
seg000:11D3                 push    ax
seg000:11D4                 sub     ax, ax
seg000:11D6                 push    ax
seg000:11D7                 push    ax
seg000:11D8                 call    clear_screen
seg000:11DB                 add     sp, 8
seg000:11DE                 push    ds:menu_8_segment
seg000:11E2                 push    ds:menu_8_offset
seg000:11E6                 call    display
seg000:11E9                 pop     bx
seg000:11EA                 pop     bx
seg000:11EB                 push    ds:menu_11_segment
seg000:11EF                 push    ds:menu_11_offset
seg000:11F3                 call    display
seg000:11F6                 pop     bx
seg000:11F7                 pop     bx
seg000:11F8                 mov     al, ds:cur_disk
seg000:11FB                 add     al, '1'
seg000:11FD                 mov     ds:insert, al
seg000:1200                 push    ds:menu_5_segment
seg000:1204                 push    ds:menu_5_offset
seg000:1208                 call    display
seg000:120B                 pop     bx
seg000:120C                 pop     bx
seg000:120D                 push    ds:menu_3_segment
seg000:1211                 push    ds:menu_3_offset
seg000:1215                 call    display
seg000:1218                 pop     bx
seg000:1219                 pop     bx
seg000:121A                 push    ds:menu_9_segment
seg000:121E                 push    ds:menu_9_offset
seg000:1222                 call    display
seg000:1225                 pop     bx
seg000:1226                 pop     bx
seg000:1227                 mov     ds:insert, '1'
seg000:122C                 push    ds:menu_7_segment
seg000:1230                 push    ds:menu_7_offset
seg000:1234                 call    display
seg000:1237                 pop     bx
seg000:1238                 pop     bx
seg000:1239                 push    ds:menu_10_segment
seg000:123D                 push    ds:menu_10_offset
seg000:1241                 call    display
seg000:1244                 pop     bx
seg000:1245                 pop     bx
seg000:1246                 push    ds:input_col
seg000:124A                 push    ds:input_row
seg000:124E                 mov     al, 3
seg000:1250                 push    ax
seg000:1251                 mov     al, 1
seg000:1253                 push    ax
seg000:1254                 call    get_num_input
seg000:1257                 add     sp, 8
seg000:125A                 mov     [bp+cp_input], al
seg000:125D                 cmp     al, '3'
seg000:125F                 jnz     short cp_2
seg000:1261                 mov     al, 5
seg000:1263                 push    ax
seg000:1264                 call    find_partition_type
seg000:1267                 pop     bx
seg000:1268                 or      al, al
seg000:126A                 jz      short cp_1
seg000:126C                 call    volume_create
seg000:126F                 jmp     case_crea_part_break
seg000:1272 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1272
seg000:1272 cp_1:                                   ; CODE XREF: create_partition+A4j
seg000:1272                 push    ds:error_35_seg
seg000:1276                 push    ds:error_35_off
seg000:127A                 jmp     short cp_9
seg000:127C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:127C
seg000:127C cp_2:                                   ; CODE XREF: create_partition+99j
seg000:127C                 call    find_free_partition
seg000:127F                 inc     al
seg000:1281                 jz      short cp_10
seg000:1283
seg000:1283 switch_input7:
seg000:1283                 mov     al, [bp+cp_input]
seg000:1286                 cbw
seg000:1287                 cmp     ax, '2'
seg000:128A                 jz      short case_crea_part_2
seg000:128C                 ja      short case_crea_part_DEF
seg000:128E                 sub     al, 1Bh
seg000:1290                 jz      short case_crea_part_break
seg000:1292                 sub     al, 16h
seg000:1294                 jz      short case_crea_part_1
seg000:1296
seg000:1296 case_crea_part_DEF:                     ; CODE XREF: create_partition+C6j
seg000:1296                 call    internal_program_error
seg000:1299                 jmp     short case_crea_part_break
seg000:129B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:129B
seg000:129B case_crea_part_1:                       ; CODE XREF: create_partition+CEj
seg000:129B                 call    dos_create_partition
seg000:129E                 jmp     short case_crea_part_break
seg000:12A0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:12A0
seg000:12A0 case_crea_part_2:                       ; CODE XREF: create_partition+C4j
seg000:12A0                 cmp     ds:cur_disk, 1
seg000:12A5                 jge     short cp_7
seg000:12A7                 mov     al, 1
seg000:12A9                 push    ax
seg000:12AA                 call    find_partition_type
seg000:12AD                 pop     bx
seg000:12AE                 or      al, al
seg000:12B0                 jnz     short cp_7
seg000:12B2                 mov     al, 4
seg000:12B4                 push    ax
seg000:12B5                 call    find_partition_type
seg000:12B8                 pop     bx
seg000:12B9                 or      al, al
seg000:12BB                 jnz     short cp_7
seg000:12BD                 mov     al, 6
seg000:12BF                 push    ax
seg000:12C0                 call    find_partition_type
seg000:12C3                 pop     bx
seg000:12C4                 or      al, al
seg000:12C6                 jz      short cp_8
seg000:12C8
seg000:12C8 cp_7:                                   ; CODE XREF: create_partition+DFj
seg000:12C8                                         ; create_partition+EAj ...
seg000:12C8                 call    ext_create_partition
seg000:12CB                 jmp     short case_crea_part_break
seg000:12CD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:12CD
seg000:12CD cp_8:                                   ; CODE XREF: create_partition+100j
seg000:12CD                 push    ds:error_19_seg
seg000:12D1                 push    ds:error_19_off
seg000:12D5
seg000:12D5 cp_9:                                   ; CODE XREF: create_partition+B4j
seg000:12D5                 call    display
seg000:12D8                 pop     bx
seg000:12D9                 pop     bx
seg000:12DA                 mov     ax, 79
seg000:12DD                 push    ax
seg000:12DE                 mov     ax, 17
seg000:12E1                 push    ax
seg000:12E2                 sub     cx, cx
seg000:12E4                 push    cx
seg000:12E5                 push    ax
seg000:12E6                 call    clear_screen
seg000:12E9                 add     sp, 8
seg000:12EC                 jmp     short cp_11
seg000:12EE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:12EE
seg000:12EE cp_10:                                  ; CODE XREF: create_partition+BBj
seg000:12EE                 push    ds:error_10_seg
seg000:12F2                 push    ds:error_10_off
seg000:12F6                 call    display
seg000:12F9                 pop     bx
seg000:12FA                 pop     bx
seg000:12FB
seg000:12FB cp_11:                                  ; CODE XREF: create_partition+126j
seg000:12FB                 call    wait_for_ESC
seg000:12FE
seg000:12FE case_crea_part_break:                   ; CODE XREF: create_partition+A9j
seg000:12FE                                         ; create_partition+CAj ...
seg000:12FE                 mov     ax, 79
seg000:1301                 push    ax
seg000:1302                 mov     ax, 24
seg000:1305                 push    ax
seg000:1306                 sub     ax, ax
seg000:1308                 push    ax
seg000:1309                 push    ax
seg000:130A                 call    clear_screen
seg000:130D                 mov     sp, bp
seg000:130F                 pop     bp
seg000:1310                 retn
seg000:1310 create_partition endp
seg000:1310
seg000:1311
seg000:1311 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:1311
seg000:1311 ; Attributes: bp-based frame
seg000:1311
seg000:1311 dos_create_partition proc near          ; CODE XREF: create_partition:case_crea_part_1p
seg000:1311
seg000:1311 second_disk_flag= byte ptr -10h
seg000:1311 defined_drives  = byte ptr -0Eh
seg000:1311 cdp_i           = byte ptr -0Ch
seg000:1311 temp_cur_disk   = byte ptr -0Ah
seg000:1311 cdp_temp        = byte ptr -8
seg000:1311
seg000:1311                 push    bp
seg000:1312                 mov     bp, sp
seg000:1314                 sub     sp, 16
seg000:1317                 push    si
seg000:1318                 sub     al, al
seg000:131A                 mov     [bp+second_disk_flag], al
seg000:131D                 mov     ax, 79
seg000:1320                 push    ax
seg000:1321                 mov     ax, 24
seg000:1324                 push    ax
seg000:1325                 sub     ax, ax
seg000:1327                 push    ax
seg000:1328                 push    ax
seg000:1329                 call    clear_screen
seg000:132C                 add     sp, 8
seg000:132F                 push    ds:menu_12_segment
seg000:1333                 push    ds:menu_12_offset
seg000:1337                 call    display
seg000:133A                 pop     bx
seg000:133B                 pop     bx
seg000:133C                 mov     al, ds:cur_disk
seg000:133F                 add     al, '1'
seg000:1341                 mov     ds:insert, al
seg000:1344                 push    ds:menu_5_segment
seg000:1348                 push    ds:menu_5_offset
seg000:134C                 call    display
seg000:134F                 pop     bx
seg000:1350                 pop     bx
seg000:1351                 push    ds:menu_11_segment
seg000:1355                 push    ds:menu_11_offset
seg000:1359                 call    display
seg000:135C                 pop     bx
seg000:135D                 pop     bx
seg000:135E                 mov     al, 1
seg000:1360                 push    ax
seg000:1361                 call    find_partition_type
seg000:1364                 pop     bx
seg000:1365                 or      al, al
seg000:1367                 jnz     short cdp_1
seg000:1369                 mov     al, 4
seg000:136B                 push    ax
seg000:136C                 call    find_partition_type
seg000:136F                 pop     bx
seg000:1370                 or      al, al
seg000:1372                 jnz     short cdp_1
seg000:1374                 mov     al, 6
seg000:1376                 push    ax
seg000:1377                 call    find_partition_type
seg000:137A                 pop     bx
seg000:137B                 or      al, al
seg000:137D                 jz      short cdp_2
seg000:137F
seg000:137F cdp_1:                                  ; CODE XREF: dos_create_partition+56j
seg000:137F                                         ; dos_create_partition+61j
seg000:137F                 jmp     cdp_19
seg000:1382 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1382
seg000:1382 cdp_2:                                  ; CODE XREF: dos_create_partition+6Cj
seg000:1382                 push    ax
seg000:1383                 call    find_part_free_space
seg000:1386                 pop     bx
seg000:1387                 mov     [bp+cdp_temp], al
seg000:138A                 mov     al, ds:cur_disk
seg000:138D                 cbw
seg000:138E                 mov     bx, ax
seg000:1390                 mov     al, ds:max_sector[bx]
seg000:1394                 sub     ah, ah
seg000:1396                 sub     dx, dx
seg000:1398                 push    dx
seg000:1399                 push    ax
seg000:139A                 mov     al, 22
seg000:139C                 imul    [bp+cdp_temp]
seg000:139F                 mov     si, ax
seg000:13A1                 mov     ax, ds:free_space_space[si]
seg000:13A5                 shl     bx, 1
seg000:13A7                 mul     ds:max_head[bx]
seg000:13AB                 push    dx
seg000:13AC                 push    ax
seg000:13AD                 call    mul32
seg000:13B0                 or      dx, dx
seg000:13B2                 jnz     short cdp_3
seg000:13B4                 cmp     ax, 64
seg000:13B7                 jnb     short cdp_3
seg000:13B9                 push    ds:error_10_seg
seg000:13BD                 push    ds:error_10_off
seg000:13C1                 jmp     cdp_20
seg000:13C4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:13C4
seg000:13C4 cdp_3:                                  ; CODE XREF: dos_create_partition+A1j
seg000:13C4                                         ; dos_create_partition+A6j
seg000:13C4                 mov     [bp+defined_drives], 0
seg000:13C8                 mov     al, ds:cur_disk
seg000:13CB                 mov     [bp+temp_cur_disk], al
seg000:13CE                 mov     [bp+cdp_i], 0
seg000:13D2                 jmp     short cdp_8
seg000:13D4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:13D4
seg000:13D4 cdp_4:                                  ; CODE XREF: dos_create_partition+107j
seg000:13D4                 mov     al, [bp+cdp_i]
seg000:13D7                 mov     ds:cur_disk, al
seg000:13DA                 mov     al, 1
seg000:13DC                 push    ax
seg000:13DD                 call    find_partition_type
seg000:13E0                 pop     bx
seg000:13E1                 or      al, al
seg000:13E3                 jnz     short cdp_5
seg000:13E5                 mov     al, 4
seg000:13E7                 push    ax
seg000:13E8                 call    find_partition_type
seg000:13EB                 pop     bx
seg000:13EC                 or      al, al
seg000:13EE                 jnz     short cdp_5
seg000:13F0                 mov     al, 6
seg000:13F2                 push    ax
seg000:13F3                 call    find_partition_type
seg000:13F6                 pop     bx
seg000:13F7                 or      al, al
seg000:13F9                 jz      short cdp_6
seg000:13FB
seg000:13FB cdp_5:                                  ; CODE XREF: dos_create_partition+D2j
seg000:13FB                                         ; dos_create_partition+DDj
seg000:13FB                 inc     [bp+defined_drives]
seg000:13FE
seg000:13FE cdp_6:                                  ; CODE XREF: dos_create_partition+E8j
seg000:13FE                 mov     al, 5
seg000:1400                 push    ax
seg000:1401                 call    find_partition_type
seg000:1404                 pop     bx
seg000:1405                 or      al, al
seg000:1407                 jz      short cdp_7
seg000:1409                 call    get_num_logical_dos_drives
seg000:140C                 add     [bp+defined_drives], al
seg000:140F
seg000:140F cdp_7:                                  ; CODE XREF: dos_create_partition+F6j
seg000:140F                 inc     [bp+cdp_i]
seg000:1412
seg000:1412 cdp_8:                                  ; CODE XREF: dos_create_partition+C1j
seg000:1412                 mov     al, ds:number_of_drives
seg000:1415                 cmp     [bp+cdp_i], al
seg000:1418                 jb      short cdp_4
seg000:141A                 mov     al, [bp+temp_cur_disk]
seg000:141D                 mov     ds:cur_disk, al
seg000:1420                 cmp     [bp+defined_drives], 23
seg000:1424                 jle     short cdp_9
seg000:1426                 mov     ax, 79
seg000:1429                 push    ax
seg000:142A                 mov     ax, 23
seg000:142D                 push    ax
seg000:142E                 sub     ax, ax
seg000:1430                 push    ax
seg000:1431                 mov     ax, 16
seg000:1434                 push    ax
seg000:1435                 call    clear_screen
seg000:1438                 add     sp, 8
seg000:143B                 push    ds:error_27_seg
seg000:143F                 push    ds:error_27_off
seg000:1443                 jmp     cdp_20
seg000:1446 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1446
seg000:1446 cdp_9:                                  ; CODE XREF: dos_create_partition+113j
seg000:1446                 cmp     ds:cur_disk, 0
seg000:144B                 jnz     short cdp_10
seg000:144D                 push    ds:menu_13_segment
seg000:1451                 push    ds:menu_13_offset
seg000:1455                 jmp     short cdp_11
seg000:1457 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1457
seg000:1457 cdp_10:                                 ; CODE XREF: dos_create_partition+13Aj
seg000:1457                 mov     [bp+second_disk_flag], 1
seg000:145B                 push    ds:menu_45_segment
seg000:145F                 push    ds:menu_45_offset
seg000:1463
seg000:1463 cdp_11:                                 ; CODE XREF: dos_create_partition+144j
seg000:1463                 call    display
seg000:1466                 pop     bx
seg000:1467                 pop     bx
seg000:1468                 push    ds:input_col
seg000:146C                 push    ds:input_row
seg000:1470                 mov     al, ds:Yes
seg000:1473                 push    ax
seg000:1474                 call    get_yn_input
seg000:1477                 add     sp, 6
seg000:147A
seg000:147A switch_input8:
seg000:147A                 cbw
seg000:147B                 cmp     ax, 1Bh
seg000:147E                 jnz     short cdp_13
seg000:1480                 jmp     case_dos_create_break
seg000:1483 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1483
seg000:1483 cdp_13:                                 ; CODE XREF: dos_create_partition+16Dj
seg000:1483                 ja      short case_dos_create_DEF
seg000:1485                 or      al, al
seg000:1487                 jnz     short cdp_14
seg000:1489                 jmp     case_dos_create_0
seg000:148C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:148C
seg000:148C cdp_14:                                 ; CODE XREF: dos_create_partition+176j
seg000:148C                 dec     al
seg000:148E                 jz      short case_dos_create_1
seg000:1490
seg000:1490 case_dos_create_DEF:                    ; CODE XREF: dos_create_partition:cdp_13j
seg000:1490                 call    internal_program_error
seg000:1493                 jmp     case_dos_create_break
seg000:1496 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1496
seg000:1496 case_dos_create_1:                      ; CODE XREF: dos_create_partition+17Dj
seg000:1496                 cmp     [bp+second_disk_flag], 0
seg000:149A                 jnz     short cdp_17
seg000:149C                 sub     al, al
seg000:149E                 push    ax
seg000:149F                 call    find_part_free_space
seg000:14A2                 pop     bx
seg000:14A3                 mov     [bp+cdp_temp], al
seg000:14A6                 sub     al, al
seg000:14A8                 push    ax
seg000:14A9                 mov     al, 80h
seg000:14AB                 push    ax
seg000:14AC                 mov     al, [bp+cdp_temp]
seg000:14AF                 push    ax
seg000:14B0                 mov     cl, 22
seg000:14B2                 imul    cl
seg000:14B4                 mov     bx, ax
seg000:14B6                 push    ds:free_space_space[bx]
seg000:14BA                 call    make_partition
seg000:14BD                 add     sp, 8
seg000:14C0                 mov     ds:reboot_flag, 1
seg000:14C5
seg000:14C5 loc_14C5:
seg000:14C5                 cmp     ds:number_of_drives, 1
seg000:14CA                 jnz     short cdp_18
seg000:14CC
seg000:14CC loc_14CC:
seg000:14CC                 call    write_info_to_disk
seg000:14CF                 call    reboot_system
seg000:14D2                 jmp     short cdp_18
seg000:14D4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:14D4
seg000:14D4 cdp_17:                                 ; CODE XREF: dos_create_partition+189j
seg000:14D4                 sub     al, al
seg000:14D6                 push    ax
seg000:14D7                 call    find_part_free_space
seg000:14DA                 pop     bx
seg000:14DB                 mov     [bp+cdp_temp], al
seg000:14DE                 sub     al, al
seg000:14E0                 push    ax
seg000:14E1                 push    ax
seg000:14E2                 mov     al, [bp+cdp_temp]
seg000:14E5                 push    ax
seg000:14E6                 mov     cl, 22
seg000:14E8                 imul    cl
seg000:14EA                 mov     bx, ax
seg000:14EC                 push    ds:free_space_space[bx]
seg000:14F0                 call    make_partition
seg000:14F3                 add     sp, 8
seg000:14F6                 mov     ds:reboot_flag, 1
seg000:14FB
seg000:14FB cdp_18:                                 ; CODE XREF: dos_create_partition+1B9j
seg000:14FB                                         ; dos_create_partition+1C1j
seg000:14FB                 mov     ax, 79
seg000:14FE                 push    ax
seg000:14FF                 mov     ax, 23
seg000:1502                 push    ax
seg000:1503                 sub     ax, ax
seg000:1505                 push    ax
seg000:1506                 mov     ax, 16
seg000:1509                 push    ax
seg000:150A                 call    clear_screen
seg000:150D                 add     sp, 8
seg000:1510                 push    ds:status_12_seg
seg000:1514                 push    ds:status_12_off
seg000:1518                 jmp     short cdp_20
seg000:151A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:151A
seg000:151A case_dos_create_0:                      ; CODE XREF: dos_create_partition+178j
seg000:151A                 call    input_dos_create
seg000:151D                 jmp     short case_dos_create_break
seg000:151F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:151F
seg000:151F cdp_19:                                 ; CODE XREF: dos_create_partition:cdp_1j
seg000:151F                 call    table_display
seg000:1522                 push    ds:error_8_seg
seg000:1526                 push    ds:error_8_off
seg000:152A
seg000:152A cdp_20:                                 ; CODE XREF: dos_create_partition+B0j
seg000:152A                                         ; dos_create_partition+132j ...
seg000:152A                 call    display
seg000:152D                 pop     bx
seg000:152E                 pop     bx
seg000:152F                 call    wait_for_ESC
seg000:1532
seg000:1532 case_dos_create_break:                  ; CODE XREF: dos_create_partition+16Fj
seg000:1532                                         ; dos_create_partition+182j ...
seg000:1532                 pop     si
seg000:1533                 mov     sp, bp
seg000:1535                 pop     bp
seg000:1536                 retn
seg000:1536 dos_create_partition endp
seg000:1536
seg000:1537
seg000:1537 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:1537
seg000:1537 ; Attributes: bp-based frame
seg000:1537
seg000:1537 input_dos_create proc near              ; CODE XREF: dos_create_partition:case_dos_create_0p
seg000:1537
seg000:1537 idc_def_entry   = word ptr -6
seg000:1537 idc_temp        = byte ptr -4
seg000:1537 idc_input       = word ptr -2
seg000:1537
seg000:1537                 push    bp
seg000:1538                 mov     bp, sp
seg000:153A                 sub     sp, 6
seg000:153D                 push    si
seg000:153E                 mov     ax, 79
seg000:1541                 push    ax
seg000:1542                 mov     ax, 24
seg000:1545                 push    ax
seg000:1546                 sub     ax, ax
seg000:1548                 mov     [bp+idc_input], ax
seg000:154B                 push    ax
seg000:154C                 push    ax
seg000:154D                 call    clear_screen
seg000:1550                 add     sp, 8
seg000:1553                 push    ds:menu_12_segment
seg000:1557                 push    ds:menu_12_offset
seg000:155B                 call    display
seg000:155E                 pop     bx
seg000:155F                 pop     bx
seg000:1560                 mov     al, ds:cur_disk
seg000:1563                 add     al, '1'
seg000:1565                 mov     ds:insert, al
seg000:1568                 push    ds:menu_5_segment
seg000:156C                 push    ds:menu_5_offset
seg000:1570                 call    display
seg000:1573                 pop     bx
seg000:1574                 pop     bx
seg000:1575                 push    ds:menu_11_segment
seg000:1579                 push    ds:menu_11_offset
seg000:157D                 call    display
seg000:1580                 pop     bx
seg000:1581                 pop     bx
seg000:1582                 call    table_display
seg000:1585                 mov     al, ds:cur_disk
seg000:1588                 cbw
seg000:1589                 mov     bx, ax
seg000:158B                 shl     bx, 1
seg000:158D                 push    ds:total_mbytes[bx]
seg000:1591                 mov     ax, offset idc_totmb_format ; "%4.1d"
seg000:1594                 push    ax
seg000:1595                 mov     ax, offset insert
seg000:1598                 push    ax
seg000:1599                 call    sprintf
seg000:159C                 add     sp, 6
seg000:159F                 push    ds:menu_15_segment
seg000:15A3                 push    ds:menu_15_offset
seg000:15A7                 call    display
seg000:15AA                 pop     bx
seg000:15AB                 pop     bx
seg000:15AC                 sub     al, al
seg000:15AE                 push    ax
seg000:15AF                 call    find_part_free_space
seg000:15B2                 pop     bx
seg000:15B3                 mov     [bp+idc_temp], al
seg000:15B6                 mov     cl, 22
seg000:15B8                 imul    cl
seg000:15BA                 mov     bx, ax
seg000:15BC                 cmp     ds:free_space_mbytes_unused[bx], 0
seg000:15C1                 jnz     short idc_1
seg000:15C3                 jmp     idc_12
seg000:15C6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:15C6
seg000:15C6 idc_1:                                  ; CODE XREF: input_dos_create+8Aj
seg000:15C6                 mov     al, ds:cur_disk
seg000:15C9                 cbw
seg000:15CA                 mov     si, ax
seg000:15CC                 shl     si, 1
seg000:15CE                 push    ds:total_mbytes[si]
seg000:15D2                 mov     ax, offset idc_tot_mb_format ; "%4.1d"
seg000:15D5                 push    ax
seg000:15D6                 mov     ax, offset insert
seg000:15D9                 push    ax
seg000:15DA                 mov     si, bx
seg000:15DC                 call    sprintf
seg000:15DF                 add     sp, 6
seg000:15E2                 push    ds:menu_15_segment
seg000:15E6                 push    ds:menu_15_offset
seg000:15EA                 call    display
seg000:15ED                 pop     bx
seg000:15EE                 pop     bx
seg000:15EF                 push    ds:free_space_percent_unused[si]
seg000:15F3                 push    ds:free_space_mbytes_unused[si]
seg000:15F7                 mov     ax, offset idc_mb_pcent_format ; "%4.1d%3.1d%%"
seg000:15FA                 push    ax
seg000:15FB                 mov     ax, offset insert
seg000:15FE                 push    ax
seg000:15FF                 call    sprintf
seg000:1602                 add     sp, 8
seg000:1605                 push    ds:menu_16_segment
seg000:1609                 push    ds:menu_16_offset
seg000:160D                 call    display
seg000:1610                 pop     bx
seg000:1611                 pop     bx
seg000:1612                 mov     ax, ds:free_space_mbytes_unused[si]
seg000:1616                 mov     [bp+idc_def_entry], ax
seg000:1619                 mov     ds:valid_input, 0
seg000:161E
seg000:161E idc_2:                                  ; CODE XREF: input_dos_create+150j
seg000:161E                 push    [bp+idc_def_entry]
seg000:1621                 mov     ax, offset idc_def_entry_format ; "%4.1d"
seg000:1624                 push    ax
seg000:1625                 mov     ax, offset insert
seg000:1628                 push    ax
seg000:1629                 call    sprintf
seg000:162C                 add     sp, 6
seg000:162F                 push    ds:menu_39_segment
seg000:1633                 push    ds:menu_39_offset
seg000:1637                 call    display
seg000:163A                 pop     bx
seg000:163B                 pop     bx
seg000:163C                 push    ds:error_13_seg
seg000:1640                 push    ds:error_13_off
seg000:1644                 sub     ax, ax
seg000:1646                 push    ax
seg000:1647                 push    ds:menu_39_segment
seg000:164B                 push    ds:menu_39_offset
seg000:164F                 mov     al, 22
seg000:1651                 imul    [bp+idc_temp]
seg000:1654                 mov     bx, ax
seg000:1656                 push    ds:free_space_percent_unused[bx]
seg000:165A                 push    ds:free_space_mbytes_unused[bx]
seg000:165E                 push    [bp+idc_def_entry]
seg000:1661                 call    get_large_num_input
seg000:1664                 add     sp, 16
seg000:1667                 mov     [bp+idc_input], ax
seg000:166A                 mov     [bp+idc_def_entry], ax
seg000:166D                 mov     ax, 79
seg000:1670                 push    ax
seg000:1671                 mov     ax, 23
seg000:1674                 push    ax
seg000:1675                 sub     ax, ax
seg000:1677                 push    ax
seg000:1678                 mov     ax, 19
seg000:167B                 push    ax
seg000:167C                 call    clear_screen
seg000:167F                 add     sp, 8
seg000:1682                 cmp     ds:valid_input, 0
seg000:1687                 jz      short idc_2
seg000:1689                 cmp     [bp+idc_input], 0FFFEh
seg000:168D                 jnz     short idc_3
seg000:168F                 jmp     idc_14
seg000:1692 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1692
seg000:1692 idc_3:                                  ; CODE XREF: input_dos_create+156j
seg000:1692                 cmp     ds:PercentFlag, 0
seg000:1697                 jz      short idc_6
seg000:1699                 mov     al, 22
seg000:169B                 imul    [bp+idc_temp]
seg000:169E                 mov     bx, ax
seg000:16A0                 mov     ax, [bp+idc_input]
seg000:16A3                 cmp     ds:free_space_percent_unused[bx], ax
seg000:16A7                 jnz     short idc_5
seg000:16A9
seg000:16A9 idc_4:                                  ; CODE XREF: input_dos_create+19Aj
seg000:16A9                 mov     ax, ds:free_space_space[bx]
seg000:16AD                 jmp     short idc_8
seg000:16AF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:16AF
seg000:16AF idc_5:                                  ; CODE XREF: input_dos_create+170j
seg000:16AF                 mov     al, ds:cur_disk
seg000:16B2                 cbw
seg000:16B3                 mov     bx, ax
seg000:16B5                 shl     bx, 1
seg000:16B7                 push    ds:total_disk[bx]
seg000:16BB                 push    [bp+idc_input]
seg000:16BE                 call    percent_to_cylinders
seg000:16C1                 jmp     short idc_7
seg000:16C3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:16C3
seg000:16C3 idc_6:                                  ; CODE XREF: input_dos_create+160j
seg000:16C3                 mov     al, 22
seg000:16C5                 imul    [bp+idc_temp]
seg000:16C8                 mov     bx, ax
seg000:16CA                 mov     ax, [bp+idc_input]
seg000:16CD                 cmp     ds:free_space_mbytes_unused[bx], ax
seg000:16D1                 jz      short idc_4
seg000:16D3                 mov     al, ds:cur_disk
seg000:16D6                 push    ax
seg000:16D7                 push    [bp+idc_input]
seg000:16DA                 call    mbytes_to_cylinders
seg000:16DD
seg000:16DD idc_7:                                  ; CODE XREF: input_dos_create+18Aj
seg000:16DD                 pop     bx
seg000:16DE                 pop     bx
seg000:16DF
seg000:16DF idc_8:                                  ; CODE XREF: input_dos_create+176j
seg000:16DF                 mov     [bp+idc_input], ax
seg000:16E2                 mov     ds:PercentFlag, 0
seg000:16E7                 or      ax, ax
seg000:16E9                 jnz     short idc_9
seg000:16EB                 push    ds:error_28_seg
seg000:16EF                 push    ds:error_28_off
seg000:16F3                 jmp     short idc_13
seg000:16F5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:16F5
seg000:16F5 idc_9:                                  ; CODE XREF: input_dos_create+1B2j
seg000:16F5                 sub     al, al
seg000:16F7                 push    ax
seg000:16F8                 push    ax
seg000:16F9                 mov     al, [bp+idc_temp]
seg000:16FC                 push    ax
seg000:16FD                 push    [bp+idc_input]
seg000:1700                 call    make_partition
seg000:1703                 add     sp, 8
seg000:1706                 mov     ax, 79
seg000:1709                 push    ax
seg000:170A                 mov     ax, 19
seg000:170D                 push    ax
seg000:170E                 sub     ax, ax
seg000:1710                 push    ax
seg000:1711                 mov     ax, 13
seg000:1714                 push    ax
seg000:1715                 call    clear_screen
seg000:1718                 add     sp, 8
seg000:171B                 call    table_display
seg000:171E                 cmp     ds:number_of_drives, 1
seg000:1723                 jnz     short idc_10
seg000:1725                 push    ds:status_5_seg
seg000:1729                 push    ds:status_5_off
seg000:172D                 jmp     short idc_11
seg000:172F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:172F
seg000:172F idc_10:                                 ; CODE XREF: input_dos_create+1ECj
seg000:172F                 mov     ax, 79
seg000:1732                 push    ax
seg000:1733                 mov     ax, 23
seg000:1736                 push    ax
seg000:1737                 sub     ax, ax
seg000:1739                 push    ax
seg000:173A                 mov     ax, 16
seg000:173D                 push    ax
seg000:173E                 call    clear_screen
seg000:1741                 add     sp, 8
seg000:1744                 push    ds:status_12_seg
seg000:1748                 push    ds:status_12_off
seg000:174C
seg000:174C idc_11:                                 ; CODE XREF: input_dos_create+1F6j
seg000:174C                 call    display
seg000:174F                 pop     bx
seg000:1750                 pop     bx
seg000:1751                 call    wait_for_ESC
seg000:1754                 mov     ds:reboot_flag, 1
seg000:1759                 jmp     short idc_14
seg000:175B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:175B
seg000:175B idc_12:                                 ; CODE XREF: input_dos_create+8Cj
seg000:175B                 push    ds:error_10_seg
seg000:175F                 push    ds:error_10_off
seg000:1763
seg000:1763 idc_13:                                 ; CODE XREF: input_dos_create+1BCj
seg000:1763                 call    display
seg000:1766                 pop     bx
seg000:1767                 pop     bx
seg000:1768                 call    wait_for_ESC
seg000:176B
seg000:176B idc_14:                                 ; CODE XREF: input_dos_create+158j
seg000:176B                                         ; input_dos_create+222j
seg000:176B                 pop     si
seg000:176C                 mov     sp, bp
seg000:176E                 pop     bp
seg000:176F                 retn
seg000:176F input_dos_create endp
seg000:176F
seg000:1770
seg000:1770 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:1770
seg000:1770 ; Attributes: bp-based frame
seg000:1770
seg000:1770 ext_create_partition proc near          ; CODE XREF: create_partition:cp_7p
seg000:1770
seg000:1770 ecp_default_entry= word ptr -6
seg000:1770 ecp_temp        = byte ptr -4
seg000:1770 ecp_input       = word ptr -2
seg000:1770
seg000:1770                 push    bp
seg000:1771                 mov     bp, sp
seg000:1773                 sub     sp, 6
seg000:1776                 push    si
seg000:1777                 mov     ax, 79
seg000:177A                 push    ax
seg000:177B                 mov     ax, 24
seg000:177E                 push    ax
seg000:177F                 sub     ax, ax
seg000:1781                 mov     [bp+ecp_input], ax
seg000:1784                 push    ax
seg000:1785                 push    ax
seg000:1786                 call    clear_screen
seg000:1789                 add     sp, 8
seg000:178C                 push    ds:menu_17_segment
seg000:1790                 push    ds:menu_17_offset
seg000:1794                 call    display
seg000:1797                 pop     bx
seg000:1798                 pop     bx
seg000:1799                 mov     al, ds:cur_disk
seg000:179C                 add     al, '1'
seg000:179E                 mov     ds:insert, al
seg000:17A1                 push    ds:menu_5_segment
seg000:17A5                 push    ds:menu_5_offset
seg000:17A9                 call    display
seg000:17AC                 pop     bx
seg000:17AD                 pop     bx
seg000:17AE                 push    ds:menu_11_segment
seg000:17B2                 push    ds:menu_11_offset
seg000:17B6                 call    display
seg000:17B9                 pop     bx
seg000:17BA                 pop     bx
seg000:17BB                 call    table_display
seg000:17BE                 cmp     ds:cur_disk, 1
seg000:17C3                 jge     short ecp_1
seg000:17C5                 mov     al, 1
seg000:17C7                 push    ax
seg000:17C8                 call    find_partition_type
seg000:17CB                 pop     bx
seg000:17CC                 or      al, al
seg000:17CE                 jnz     short ecp_1
seg000:17D0                 mov     al, 4
seg000:17D2                 push    ax
seg000:17D3                 call    find_partition_type
seg000:17D6                 pop     bx
seg000:17D7                 or      al, al
seg000:17D9                 jnz     short ecp_1
seg000:17DB                 mov     al, 6
seg000:17DD                 push    ax
seg000:17DE                 call    find_partition_type
seg000:17E1                 pop     bx
seg000:17E2                 or      al, al
seg000:17E4                 jnz     short ecp_1
seg000:17E6                 jmp     ecp_19
seg000:17E9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:17E9
seg000:17E9 ecp_1:                                  ; CODE XREF: ext_create_partition+53j
seg000:17E9                                         ; ext_create_partition+5Ej ...
seg000:17E9                 mov     al, 5
seg000:17EB                 push    ax
seg000:17EC                 call    find_partition_type
seg000:17EF                 pop     bx
seg000:17F0                 or      al, al
seg000:17F2                 jz      short ecp_2
seg000:17F4                 jmp     ecp_18
seg000:17F7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:17F7
seg000:17F7 ecp_2:                                  ; CODE XREF: ext_create_partition+82j
seg000:17F7                 mov     al, 5
seg000:17F9                 push    ax
seg000:17FA                 call    find_part_free_space
seg000:17FD                 pop     bx
seg000:17FE                 mov     [bp+ecp_temp], al
seg000:1801                 mov     cl, 22
seg000:1803                 imul    cl
seg000:1805                 mov     bx, ax
seg000:1807                 cmp     ds:free_space_space[bx], 0
seg000:180C                 jnz     short ecp_3
seg000:180E                 jmp     ecp_17
seg000:1811 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1811
seg000:1811 ecp_3:                                  ; CODE XREF: ext_create_partition+9Cj
seg000:1811                 cmp     ds:free_space_percent_unused[bx], 0
seg000:1816                 jnz     short ecp_4
seg000:1818                 cmp     ds:free_space_mbytes_unused[bx], 0
seg000:181D                 jnz     short ecp_4
seg000:181F                 jmp     ecp_17
seg000:1822 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1822
seg000:1822 ecp_4:                                  ; CODE XREF: ext_create_partition+A6j
seg000:1822                                         ; ext_create_partition+ADj
seg000:1822                 mov     al, ds:cur_disk
seg000:1825                 cbw
seg000:1826                 mov     bx, ax
seg000:1828                 shl     bx, 1
seg000:182A                 push    ds:total_mbytes[bx]
seg000:182E                 mov     ax, offset ecp_size_format ; "%4.1d"
seg000:1831                 push    ax
seg000:1832                 mov     ax, offset insert
seg000:1835                 push    ax
seg000:1836                 call    sprintf
seg000:1839                 add     sp, 6
seg000:183C                 push    ds:menu_15_segment
seg000:1840                 push    ds:menu_15_offset
seg000:1844                 call    display
seg000:1847                 pop     bx
seg000:1848                 pop     bx
seg000:1849                 mov     al, 22
seg000:184B                 imul    [bp+ecp_temp]
seg000:184E                 mov     bx, ax
seg000:1850                 push    ds:free_space_percent_unused[bx]
seg000:1854                 push    ds:free_space_mbytes_unused[bx]
seg000:1858                 mov     ax, offset ecp_mb_pcent_format ; "%4.1d%3.1d%%"
seg000:185B                 push    ax
seg000:185C                 mov     ax, offset insert
seg000:185F                 push    ax
seg000:1860                 mov     si, bx
seg000:1862                 call    sprintf
seg000:1865                 add     sp, 8
seg000:1868                 push    ds:menu_16_segment
seg000:186C                 push    ds:menu_16_offset
seg000:1870                 call    display
seg000:1873                 pop     bx
seg000:1874                 pop     bx
seg000:1875                 cmp     ds:free_space_mbytes_unused[si], 0
seg000:187A                 jnz     short ecp_5
seg000:187C                 mov     ax, ds:free_space_percent_unused[si]
seg000:1880                 mov     [bp+ecp_default_entry], ax
seg000:1883                 mov     ds:PercentFlag, 1
seg000:1888                 jmp     short ecp_6
seg000:188A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:188A
seg000:188A ecp_5:                                  ; CODE XREF: ext_create_partition+10Aj
seg000:188A                 mov     al, 22
seg000:188C                 imul    [bp+ecp_temp]
seg000:188F                 mov     bx, ax
seg000:1891                 mov     ax, ds:free_space_mbytes_unused[bx]
seg000:1895                 mov     [bp+ecp_default_entry], ax
seg000:1898                 mov     ds:PercentFlag, 0
seg000:189D
seg000:189D ecp_6:                                  ; CODE XREF: ext_create_partition+118j
seg000:189D                 mov     ds:valid_input, 0
seg000:18A2
seg000:18A2 ecp_7:                                  ; CODE XREF: ext_create_partition+1AAj
seg000:18A2                 cmp     ds:PercentFlag, 0
seg000:18A7                 jnz     short ecp_8
seg000:18A9                 push    [bp+ecp_default_entry]
seg000:18AC                 mov     ax, offset ecp_mb_format ; "%4.1d"
seg000:18AF                 jmp     short ecp_9
seg000:18B1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:18B1
seg000:18B1 ecp_8:                                  ; CODE XREF: ext_create_partition+137j
seg000:18B1                 push    [bp+ecp_default_entry]
seg000:18B4                 mov     ax, offset ecp_pcent_format ; "%3.1d%%"
seg000:18B7
seg000:18B7 ecp_9:                                  ; CODE XREF: ext_create_partition+13Fj
seg000:18B7                 push    ax
seg000:18B8                 mov     ax, offset insert
seg000:18BB                 push    ax
seg000:18BC                 call    sprintf
seg000:18BF                 add     sp, 6
seg000:18C2                 push    ds:menu_42_segment
seg000:18C6                 push    ds:menu_42_offset
seg000:18CA                 call    display
seg000:18CD                 pop     bx
seg000:18CE                 pop     bx
seg000:18CF                 push    ds:error_13_seg
seg000:18D3                 push    ds:error_13_off
seg000:18D7                 sub     ax, ax
seg000:18D9                 push    ax
seg000:18DA                 push    ds:menu_42_segment
seg000:18DE                 push    ds:menu_42_offset
seg000:18E2                 mov     al, 22
seg000:18E4                 imul    [bp+ecp_temp]
seg000:18E7                 mov     bx, ax
seg000:18E9                 push    ds:free_space_percent_unused[bx]
seg000:18ED                 push    ds:free_space_mbytes_unused[bx]
seg000:18F1                 push    [bp+ecp_default_entry]
seg000:18F4                 call    get_large_num_input
seg000:18F7                 add     sp, 16
seg000:18FA                 mov     [bp+ecp_input], ax
seg000:18FD                 mov     [bp+ecp_default_entry], ax
seg000:1900                 mov     ax, 79
seg000:1903                 push    ax
seg000:1904                 mov     ax, 23
seg000:1907                 push    ax
seg000:1908                 sub     ax, ax
seg000:190A                 push    ax
seg000:190B                 mov     ax, 19
seg000:190E                 push    ax
seg000:190F                 call    clear_screen
seg000:1912                 add     sp, 8
seg000:1915                 cmp     ds:valid_input, 0
seg000:191A                 jz      short ecp_7
seg000:191C                 cmp     [bp+ecp_input], 0FFFEh
seg000:1920                 jnz     short ecp_10
seg000:1922                 jmp     ecp_21
seg000:1925 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1925
seg000:1925 ecp_10:                                 ; CODE XREF: ext_create_partition+1B0j
seg000:1925                 cmp     ds:PercentFlag, 0
seg000:192A                 jz      short ecp_13
seg000:192C                 mov     al, 22
seg000:192E                 imul    [bp+ecp_temp]
seg000:1931                 mov     bx, ax
seg000:1933                 mov     ax, [bp+ecp_input]
seg000:1936                 cmp     ds:free_space_percent_unused[bx], ax
seg000:193A                 jnz     short ecp_12
seg000:193C
seg000:193C ecp_11:                                 ; CODE XREF: ext_create_partition+1F4j
seg000:193C                 mov     ax, ds:free_space_space[bx]
seg000:1940                 jmp     short ecp_15
seg000:1942 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1942
seg000:1942 ecp_12:                                 ; CODE XREF: ext_create_partition+1CAj
seg000:1942                 mov     al, ds:cur_disk
seg000:1945                 cbw
seg000:1946                 mov     bx, ax
seg000:1948                 shl     bx, 1
seg000:194A                 push    ds:total_disk[bx]
seg000:194E                 push    [bp+ecp_input]
seg000:1951                 call    percent_to_cylinders
seg000:1954                 jmp     short ecp_14
seg000:1956 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1956
seg000:1956 ecp_13:                                 ; CODE XREF: ext_create_partition+1BAj
seg000:1956                 mov     al, 22
seg000:1958                 imul    [bp+ecp_temp]
seg000:195B                 mov     bx, ax
seg000:195D                 mov     ax, [bp+ecp_input]
seg000:1960                 cmp     ds:free_space_mbytes_unused[bx], ax
seg000:1964                 jz      short ecp_11
seg000:1966                 mov     al, ds:cur_disk
seg000:1969                 push    ax
seg000:196A                 push    [bp+ecp_input]
seg000:196D                 call    mbytes_to_cylinders
seg000:1970
seg000:1970 ecp_14:                                 ; CODE XREF: ext_create_partition+1E4j
seg000:1970                 pop     bx
seg000:1971                 pop     bx
seg000:1972
seg000:1972 ecp_15:                                 ; CODE XREF: ext_create_partition+1D0j
seg000:1972                 mov     [bp+ecp_input], ax
seg000:1975                 mov     ds:PercentFlag, 0
seg000:197A                 or      ax, ax
seg000:197C                 jnz     short ecp_16
seg000:197E                 push    ds:error_28_seg
seg000:1982                 push    ds:error_28_off
seg000:1986                 jmp     short ecp_20
seg000:1988 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1988
seg000:1988 ecp_16:                                 ; CODE XREF: ext_create_partition+20Cj
seg000:1988                 mov     al, 5
seg000:198A                 push    ax
seg000:198B                 sub     al, al
seg000:198D                 push    ax
seg000:198E                 mov     al, [bp+ecp_temp]
seg000:1991                 push    ax
seg000:1992                 push    [bp+ecp_input]
seg000:1995                 call    make_partition
seg000:1998                 add     sp, 8
seg000:199B                 mov     ax, 79
seg000:199E                 push    ax
seg000:199F                 mov     ax, 19
seg000:19A2                 push    ax
seg000:19A3                 sub     ax, ax
seg000:19A5                 push    ax
seg000:19A6                 mov     ax, 13
seg000:19A9                 push    ax
seg000:19AA                 call    clear_screen
seg000:19AD                 add     sp, 8
seg000:19B0                 call    table_display
seg000:19B3                 push    ds:status_6_seg
seg000:19B7                 push    ds:status_6_off
seg000:19BB                 call    display
seg000:19BE                 pop     bx
seg000:19BF                 pop     bx
seg000:19C0                 call    wait_for_ESC
seg000:19C3                 mov     ds:reboot_flag, 1
seg000:19C8                 call    volume_create
seg000:19CB                 jmp     short ecp_21
seg000:19CD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:19CD
seg000:19CD ecp_17:                                 ; CODE XREF: ext_create_partition+9Ej
seg000:19CD                                         ; ext_create_partition+AFj
seg000:19CD                 push    ds:error_10_seg
seg000:19D1                 push    ds:error_10_off
seg000:19D5                 jmp     short ecp_20
seg000:19D7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:19D7
seg000:19D7 ecp_18:                                 ; CODE XREF: ext_create_partition+84j
seg000:19D7                 push    ds:error_9_seg
seg000:19DB                 push    ds:error_9_off
seg000:19DF                 jmp     short ecp_20
seg000:19E1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:19E1
seg000:19E1 ecp_19:                                 ; CODE XREF: ext_create_partition+76j
seg000:19E1                 push    ds:error_19_seg
seg000:19E5                 push    ds:error_19_off
seg000:19E9
seg000:19E9 ecp_20:                                 ; CODE XREF: ext_create_partition+216j
seg000:19E9                                         ; ext_create_partition+265j ...
seg000:19E9                 call    display
seg000:19EC                 pop     bx
seg000:19ED                 pop     bx
seg000:19EE                 call    wait_for_ESC
seg000:19F1
seg000:19F1 ecp_21:                                 ; CODE XREF: ext_create_partition+1B2j
seg000:19F1                                         ; ext_create_partition+25Bj
seg000:19F1                 pop     si
seg000:19F2                 mov     sp, bp
seg000:19F4                 pop     bp
seg000:19F5                 retn
seg000:19F5 ext_create_partition endp
seg000:19F5
seg000:19F6
seg000:19F6 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:19F6
seg000:19F6 ; Attributes: bp-based frame
seg000:19F6
seg000:19F6 volume_create   proc near               ; CODE XREF: create_partition+A6p
seg000:19F6                                         ; ext_create_partition+258p
seg000:19F6
seg000:19F6 vc_defined_drives= byte ptr -14h
seg000:19F6 vc_ext_part_pcent_unused= word ptr -12h
seg000:19F6 vc_location     = byte ptr -0Eh
seg000:19F6 vc_i            = byte ptr -0Ah
seg000:19F6 vc_temp_cur_disk= byte ptr -8
seg000:19F6 vc_default_entry= word ptr -6
seg000:19F6 vc_ext_part_num = word ptr -4
seg000:19F6 vc_input        = word ptr -2
seg000:19F6
seg000:19F6                 push    bp
seg000:19F7                 mov     bp, sp
seg000:19F9                 sub     sp, 20
seg000:19FC                 push    si
seg000:19FD                 mov     ax, 79
seg000:1A00                 push    ax
seg000:1A01                 mov     ax, 24
seg000:1A04                 push    ax
seg000:1A05                 sub     ax, ax
seg000:1A07                 push    ax
seg000:1A08                 push    ax
seg000:1A09                 call    clear_screen
seg000:1A0C                 add     sp, 8
seg000:1A0F                 push    ds:menu_18_segment
seg000:1A13                 push    ds:menu_18_offset
seg000:1A17                 call    display
seg000:1A1A                 pop     bx
seg000:1A1B                 pop     bx
seg000:1A1C                 push    ds:menu_11_segment
seg000:1A20                 push    ds:menu_11_offset
seg000:1A24                 call    display
seg000:1A27                 pop     bx
seg000:1A28                 pop     bx
seg000:1A29                 call    volume_display
seg000:1A2C                 mov     [bp+vc_input], 0
seg000:1A31
seg000:1A31 vc_1:                                   ; CODE XREF: volume_create+30Aj
seg000:1A31                 mov     [bp+vc_defined_drives], 0
seg000:1A35                 mov     al, ds:cur_disk
seg000:1A38                 mov     [bp+vc_temp_cur_disk], al
seg000:1A3B                 mov     [bp+vc_i], 0
seg000:1A3F                 jmp     short vc_6
seg000:1A41 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1A41
seg000:1A41 vc_2:                                   ; CODE XREF: volume_create+8Fj
seg000:1A41                 mov     al, [bp+vc_i]
seg000:1A44                 mov     ds:cur_disk, al
seg000:1A47                 mov     al, 1
seg000:1A49                 push    ax
seg000:1A4A                 call    find_partition_type
seg000:1A4D                 pop     bx
seg000:1A4E                 or      al, al
seg000:1A50                 jnz     short vc_3
seg000:1A52                 mov     al, 4
seg000:1A54                 push    ax
seg000:1A55                 call    find_partition_type
seg000:1A58                 pop     bx
seg000:1A59                 or      al, al
seg000:1A5B                 jnz     short vc_3
seg000:1A5D                 mov     al, 6
seg000:1A5F                 push    ax
seg000:1A60                 call    find_partition_type
seg000:1A63                 pop     bx
seg000:1A64                 or      al, al
seg000:1A66                 jz      short vc_4
seg000:1A68
seg000:1A68 vc_3:                                   ; CODE XREF: volume_create+5Aj
seg000:1A68                                         ; volume_create+65j
seg000:1A68                 inc     [bp+vc_defined_drives]
seg000:1A6B
seg000:1A6B vc_4:                                   ; CODE XREF: volume_create+70j
seg000:1A6B                 mov     al, 5
seg000:1A6D                 push    ax
seg000:1A6E                 call    find_partition_type
seg000:1A71                 pop     bx
seg000:1A72                 or      al, al
seg000:1A74                 jz      short vc_5
seg000:1A76                 call    get_num_logical_dos_drives
seg000:1A79                 add     [bp+vc_defined_drives], al
seg000:1A7C
seg000:1A7C vc_5:                                   ; CODE XREF: volume_create+7Ej
seg000:1A7C                 inc     [bp+vc_i]
seg000:1A7F
seg000:1A7F vc_6:                                   ; CODE XREF: volume_create+49j
seg000:1A7F                 mov     al, ds:number_of_drives
seg000:1A82                 cmp     [bp+vc_i], al
seg000:1A85                 jb      short vc_2
seg000:1A87                 mov     al, [bp+vc_temp_cur_disk]
seg000:1A8A                 mov     ds:cur_disk, al
seg000:1A8D                 cmp     [bp+vc_defined_drives], 24
seg000:1A91                 jge     short vc_7
seg000:1A93                 call    get_num_logical_dos_drives
seg000:1A96                 cmp     al, 23
seg000:1A98                 jl      short vc_8
seg000:1A9A
seg000:1A9A vc_7:                                   ; CODE XREF: volume_create+9Bj
seg000:1A9A                 jmp     vc_24
seg000:1A9D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1A9D
seg000:1A9D vc_8:                                   ; CODE XREF: volume_create+A2j
seg000:1A9D                 call    find_ext_free_space
seg000:1AA0                 mov     [bp+vc_location], al
seg000:1AA3                 mov     al, 5
seg000:1AA5                 push    ax
seg000:1AA6                 call    find_partition_location
seg000:1AA9                 pop     bx
seg000:1AAA                 cbw
seg000:1AAB                 mov     [bp+vc_ext_part_num], ax
seg000:1AAE                 mov     al, ds:cur_disk
seg000:1AB1                 cbw
seg000:1AB2                 shl     ax, 1
seg000:1AB4                 shl     ax, 1
seg000:1AB6                 add     ax, [bp+vc_ext_part_num]
seg000:1AB9                 mov     cx, 46
seg000:1ABC                 mul     cx
seg000:1ABE                 mov     bx, ax
seg000:1AC0                 mov     ax, ds:part_table_end_cyl[bx]
seg000:1AC4                 sub     ax, ds:part_table_start_cyl[bx]
seg000:1AC8                 inc     ax
seg000:1AC9                 push    ax
seg000:1ACA                 mov     al, 22
seg000:1ACC                 imul    [bp+vc_location]
seg000:1ACF                 mov     bx, ax
seg000:1AD1                 push    ds:free_space_space[bx]
seg000:1AD5                 mov     si, bx
seg000:1AD7                 call    cylinders_to_percent
seg000:1ADA                 pop     bx
seg000:1ADB                 pop     bx
seg000:1ADC                 mov     [bp+vc_ext_part_pcent_unused], ax
seg000:1ADF                 cmp     ds:free_space_space[si], 0
seg000:1AE4                 jnz     short vc_9
seg000:1AE6                 jmp     vc_23
seg000:1AE9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1AE9
seg000:1AE9 vc_9:                                   ; CODE XREF: volume_create+EEj
seg000:1AE9                 cmp     ds:free_space_percent_unused[si], 0
seg000:1AEE                 jnz     short vc_10
seg000:1AF0                 cmp     ds:free_space_mbytes_unused[si], 0
seg000:1AF5                 jnz     short vc_10
seg000:1AF7                 jmp     vc_23
seg000:1AFA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1AFA
seg000:1AFA vc_10:                                  ; CODE XREF: volume_create+F8j
seg000:1AFA                                         ; volume_create+FFj
seg000:1AFA                 mov     al, 5
seg000:1AFC                 push    ax
seg000:1AFD                 call    get_partition_size
seg000:1B00                 pop     bx
seg000:1B01                 push    ax
seg000:1B02                 mov     ax, offset v_psize_format ; "%4.1d"
seg000:1B05                 push    ax
seg000:1B06                 mov     ax, offset insert
seg000:1B09                 push    ax
seg000:1B0A                 call    sprintf
seg000:1B0D                 add     sp, 6
seg000:1B10                 push    ds:menu_21_segment
seg000:1B14                 push    ds:menu_21_offset
seg000:1B18                 call    display
seg000:1B1B                 pop     bx
seg000:1B1C                 pop     bx
seg000:1B1D                 push    [bp+vc_ext_part_pcent_unused]
seg000:1B20                 mov     al, 22
seg000:1B22                 imul    [bp+vc_location]
seg000:1B25                 mov     bx, ax
seg000:1B27                 push    ds:free_space_mbytes_unused[bx]
seg000:1B2B                 mov     ax, offset v_mb_percent_format ; "%4.1d%3.1d%%"
seg000:1B2E                 push    ax
seg000:1B2F                 mov     ax, offset insert
seg000:1B32                 push    ax
seg000:1B33                 mov     si, bx
seg000:1B35                 call    sprintf
seg000:1B38                 add     sp, 8
seg000:1B3B                 push    ds:menu_22_segment
seg000:1B3F                 push    ds:menu_22_offset
seg000:1B43                 call    display
seg000:1B46                 pop     bx
seg000:1B47                 pop     bx
seg000:1B48                 cmp     ds:free_space_mbytes_unused[si], 0
seg000:1B4D                 jnz     short vc_11
seg000:1B4F                 mov     ax, [bp+vc_ext_part_pcent_unused]
seg000:1B52                 mov     [bp+vc_default_entry], ax
seg000:1B55                 mov     ds:PercentFlag, 1
seg000:1B5A                 jmp     short vc_12
seg000:1B5C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1B5C
seg000:1B5C vc_11:                                  ; CODE XREF: volume_create+157j
seg000:1B5C                 mov     al, 22
seg000:1B5E                 imul    [bp+vc_location]
seg000:1B61                 mov     bx, ax
seg000:1B63                 mov     ax, ds:free_space_mbytes_unused[bx]
seg000:1B67                 mov     [bp+vc_default_entry], ax
seg000:1B6A                 mov     ds:PercentFlag, 0
seg000:1B6F
seg000:1B6F vc_12:                                  ; CODE XREF: volume_create+164j
seg000:1B6F                 mov     ds:valid_input, 0
seg000:1B74
seg000:1B74 vc_13:                                  ; CODE XREF: volume_create+1F5j
seg000:1B74                 cmp     ds:PercentFlag, 0
seg000:1B79                 jnz     short vc_14
seg000:1B7B                 push    [bp+vc_default_entry]
seg000:1B7E                 mov     ax, offset v_mbytes_format ; "%4.1d"
seg000:1B81                 jmp     short vc_15
seg000:1B83 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1B83
seg000:1B83 vc_14:                                  ; CODE XREF: volume_create+183j
seg000:1B83                 push    [bp+vc_default_entry]
seg000:1B86                 mov     ax, offset v_percent_format ; "%3.1d%%"
seg000:1B89
seg000:1B89 vc_15:                                  ; CODE XREF: volume_create+18Bj
seg000:1B89                 push    ax
seg000:1B8A                 mov     ax, offset insert
seg000:1B8D                 push    ax
seg000:1B8E                 call    sprintf
seg000:1B91                 add     sp, 6
seg000:1B94                 push    ds:menu_40_segment
seg000:1B98                 push    ds:menu_40_offset
seg000:1B9C                 call    display
seg000:1B9F                 pop     bx
seg000:1BA0                 pop     bx
seg000:1BA1                 push    ds:error_12_seg
seg000:1BA5                 push    ds:error_12_off
seg000:1BA9                 sub     ax, ax
seg000:1BAB                 push    ax
seg000:1BAC                 push    ds:menu_40_segment
seg000:1BB0                 push    ds:menu_40_offset
seg000:1BB4                 push    [bp+vc_ext_part_pcent_unused]
seg000:1BB7                 mov     al, 22
seg000:1BB9                 imul    [bp+vc_location]
seg000:1BBC                 mov     bx, ax
seg000:1BBE                 push    ds:free_space_mbytes_unused[bx]
seg000:1BC2                 push    [bp+vc_default_entry]
seg000:1BC5                 call    get_large_num_input
seg000:1BC8                 add     sp, 16
seg000:1BCB                 mov     [bp+vc_input], ax
seg000:1BCE                 mov     [bp+vc_default_entry], ax
seg000:1BD1                 mov     ax, 79
seg000:1BD4                 push    ax
seg000:1BD5                 mov     ax, 23
seg000:1BD8                 push    ax
seg000:1BD9                 sub     ax, ax
seg000:1BDB                 push    ax
seg000:1BDC                 mov     ax, 19
seg000:1BDF                 push    ax
seg000:1BE0                 call    clear_screen
seg000:1BE3                 add     sp, 8
seg000:1BE6                 cmp     ds:valid_input, 0
seg000:1BEB                 jz      short vc_13
seg000:1BED                 cmp     [bp+vc_input], 0FFFEh
seg000:1BF1                 jnz     short vc_16
seg000:1BF3                 jmp     vc_26
seg000:1BF6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1BF6
seg000:1BF6 vc_16:                                  ; CODE XREF: volume_create+1FBj
seg000:1BF6                 cmp     ds:PercentFlag, 0
seg000:1BFB                 jz      short vc_19
seg000:1BFD                 mov     ax, [bp+vc_input]
seg000:1C00                 cmp     [bp+vc_ext_part_pcent_unused], ax
seg000:1C03                 jnz     short vc_18
seg000:1C05                 mov     al, 22
seg000:1C07                 imul    [bp+vc_location]
seg000:1C0A                 mov     bx, ax
seg000:1C0C
seg000:1C0C vc_17:                                  ; CODE XREF: volume_create+24Ej
seg000:1C0C                 mov     ax, ds:free_space_space[bx]
seg000:1C10                 jmp     short vc_21
seg000:1C12 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1C12
seg000:1C12 vc_18:                                  ; CODE XREF: volume_create+20Dj
seg000:1C12                 mov     al, ds:cur_disk
seg000:1C15                 cbw
seg000:1C16                 shl     ax, 1
seg000:1C18                 shl     ax, 1
seg000:1C1A                 add     ax, [bp+vc_ext_part_num]
seg000:1C1D                 mov     cx, 46
seg000:1C20                 mul     cx
seg000:1C22                 mov     bx, ax
seg000:1C24                 mov     ax, ds:part_table_end_cyl[bx]
seg000:1C28                 sub     ax, ds:part_table_start_cyl[bx]
seg000:1C2C                 inc     ax
seg000:1C2D                 push    ax
seg000:1C2E                 push    [bp+vc_input]
seg000:1C31                 call    percent_to_cylinders
seg000:1C34                 jmp     short vc_20
seg000:1C36 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1C36
seg000:1C36 vc_19:                                  ; CODE XREF: volume_create+205j
seg000:1C36                 mov     al, 22
seg000:1C38                 imul    [bp+vc_location]
seg000:1C3B                 mov     bx, ax
seg000:1C3D                 mov     ax, [bp+vc_input]
seg000:1C40                 cmp     ds:free_space_mbytes_unused[bx], ax
seg000:1C44                 jz      short vc_17
seg000:1C46                 mov     al, ds:cur_disk
seg000:1C49                 push    ax
seg000:1C4A                 push    [bp+vc_input]
seg000:1C4D                 call    mbytes_to_cylinders
seg000:1C50
seg000:1C50 vc_20:                                  ; CODE XREF: volume_create+23Ej
seg000:1C50                 pop     bx
seg000:1C51                 pop     bx
seg000:1C52
seg000:1C52 vc_21:                                  ; CODE XREF: volume_create+21Aj
seg000:1C52                 mov     [bp+vc_input], ax
seg000:1C55                 mov     ds:PercentFlag, 0
seg000:1C5A                 or      ax, ax
seg000:1C5C                 jnz     short vc_22
seg000:1C5E                 push    ds:error_28_seg
seg000:1C62                 push    ds:error_28_off
seg000:1C66                 call    display
seg000:1C69                 pop     bx
seg000:1C6A                 pop     bx
seg000:1C6B                 call    wait_for_ESC
seg000:1C6E                 jmp     vc_26
seg000:1C71 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1C71
seg000:1C71 vc_22:                                  ; CODE XREF: volume_create+266j
seg000:1C71                 mov     al, [bp+vc_location]
seg000:1C74                 push    ax
seg000:1C75                 push    [bp+vc_input]
seg000:1C78                 call    make_volume
seg000:1C7B                 pop     bx
seg000:1C7C                 pop     bx
seg000:1C7D                 mov     ax, 79
seg000:1C80                 push    ax
seg000:1C81                 mov     ax, 19
seg000:1C84                 push    ax
seg000:1C85                 sub     ax, ax
seg000:1C87                 push    ax
seg000:1C88                 mov     ax, 15
seg000:1C8B                 push    ax
seg000:1C8C                 call    clear_screen
seg000:1C8F                 add     sp, 8
seg000:1C92                 mov     ds:reboot_flag, 1
seg000:1C97                 call    volume_display
seg000:1C9A                 push    ds:status_7_seg
seg000:1C9E                 push    ds:status_7_off
seg000:1CA2                 call    display
seg000:1CA5                 pop     bx
seg000:1CA6                 pop     bx
seg000:1CA7                 jmp     short vc_26
seg000:1CA9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1CA9
seg000:1CA9 vc_23:                                  ; CODE XREF: volume_create+F0j
seg000:1CA9                                         ; volume_create+101j
seg000:1CA9                 mov     ax, 79
seg000:1CAC                 push    ax
seg000:1CAD                 mov     ax, 21
seg000:1CB0                 push    ax
seg000:1CB1                 sub     ax, ax
seg000:1CB3                 push    ax
seg000:1CB4                 mov     ax, 17
seg000:1CB7                 push    ax
seg000:1CB8                 call    clear_screen
seg000:1CBB                 add     sp, 8
seg000:1CBE                 push    ds:error_20_seg
seg000:1CC2                 push    ds:error_20_off
seg000:1CC6                 call    display
seg000:1CC9                 pop     bx
seg000:1CCA                 pop     bx
seg000:1CCB                 call    volume_display
seg000:1CCE                 jmp     short vc_25
seg000:1CD0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1CD0
seg000:1CD0 vc_24:                                  ; CODE XREF: volume_create:vc_7j
seg000:1CD0                 mov     ax, 79
seg000:1CD3                 push    ax
seg000:1CD4                 mov     ax, 21
seg000:1CD7                 push    ax
seg000:1CD8                 sub     ax, ax
seg000:1CDA                 push    ax
seg000:1CDB                 mov     ax, 17
seg000:1CDE                 push    ax
seg000:1CDF                 call    clear_screen
seg000:1CE2                 add     sp, 8
seg000:1CE5                 push    ds:error_27_seg
seg000:1CE9                 push    ds:error_27_off
seg000:1CED                 call    display
seg000:1CF0                 pop     bx
seg000:1CF1                 pop     bx
seg000:1CF2
seg000:1CF2 vc_25:                                  ; CODE XREF: volume_create+2D8j
seg000:1CF2                 call    wait_for_ESC
seg000:1CF5                 mov     [bp+vc_input], 0FFFEh
seg000:1CFA
seg000:1CFA vc_26:                                  ; CODE XREF: volume_create+1FDj
seg000:1CFA                                         ; volume_create+278j ...
seg000:1CFA                 cmp     [bp+vc_input], 0FFFEh
seg000:1CFE                 jz      short vc_27
seg000:1D00                 jmp     vc_1
seg000:1D03 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1D03
seg000:1D03 vc_27:                                  ; CODE XREF: volume_create+308j
seg000:1D03                 mov     ax, 79
seg000:1D06                 push    ax
seg000:1D07                 mov     ax, 24
seg000:1D0A                 push    ax
seg000:1D0B                 sub     ax, ax
seg000:1D0D                 push    ax
seg000:1D0E                 push    ax
seg000:1D0F                 call    clear_screen
seg000:1D12                 add     sp, 8
seg000:1D15                 pop     si
seg000:1D16                 mov     sp, bp
seg000:1D18                 pop     bp
seg000:1D19                 retn
seg000:1D19 volume_create   endp
seg000:1D19
seg000:1D1A
seg000:1D1A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:1D1A
seg000:1D1A ; Attributes: bp-based frame
seg000:1D1A
seg000:1D1A change_active_partition proc near       ; CODE XREF: do_main_menu:case_2p
seg000:1D1A
seg000:1D1A cap_valid_input = byte ptr -10h
seg000:1D1A cap_num_partitions= byte ptr -0Eh
seg000:1D1A cap_valid_partitions= byte ptr -0Ch
seg000:1D1A cap_i           = word ptr -0Ah
seg000:1D1A cap_x           = word ptr -8
seg000:1D1A cap_num_boot_partitions= byte ptr -6
seg000:1D1A cap_input_default= byte ptr -4
seg000:1D1A cap_input       = byte ptr -2
seg000:1D1A
seg000:1D1A                 push    bp
seg000:1D1B                 mov     bp, sp
seg000:1D1D                 sub     sp, 16
seg000:1D20                 mov     [bp+cap_input], 0
seg000:1D24                 mov     ax, 79
seg000:1D27                 push    ax
seg000:1D28                 mov     ax, 24
seg000:1D2B                 push    ax
seg000:1D2C                 sub     ax, ax
seg000:1D2E                 push    ax
seg000:1D2F                 push    ax
seg000:1D30                 call    clear_screen
seg000:1D33                 add     sp, 8
seg000:1D36                 push    ds:menu_23_segment
seg000:1D3A                 push    ds:menu_23_offset
seg000:1D3E                 call    display
seg000:1D41                 pop     bx
seg000:1D42                 pop     bx
seg000:1D43                 mov     al, ds:cur_disk
seg000:1D46                 add     al, '1'
seg000:1D48                 mov     ds:insert, al
seg000:1D4B                 push    ds:menu_5_segment
seg000:1D4F                 push    ds:menu_5_offset
seg000:1D53                 call    display
seg000:1D56                 pop     bx
seg000:1D57                 pop     bx
seg000:1D58
seg000:1D58 cap_if1:
seg000:1D58                 cmp     ds:cur_disk, 0
seg000:1D5D                 jz      short cap_01_if2
seg000:1D5F                 jmp     cap_29
seg000:1D62 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1D62
seg000:1D62 cap_01_if2:                             ; CODE XREF: change_active_partition+43j
seg000:1D62                 call    table_display
seg000:1D65                 or      al, al
seg000:1D67                 jnz     short cap_02_for1
seg000:1D69                 jmp     cap_28
seg000:1D6C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1D6C
seg000:1D6C cap_02_for1:                            ; CODE XREF: change_active_partition+4Dj
seg000:1D6C                 mov     [bp+cap_i], 0
seg000:1D71
seg000:1D71 cap_03_for1_next2:                      ; CODE XREF: change_active_partition+99j
seg000:1D71                 mov     al, ds:cur_disk
seg000:1D74                 cbw
seg000:1D75                 shl     ax, 1
seg000:1D77                 shl     ax, 1
seg000:1D79                 add     ax, [bp+cap_i]
seg000:1D7C                 mov     cx, 46
seg000:1D7F                 mul     cx
seg000:1D81                 mov     bx, ax
seg000:1D83
seg000:1D83 cap_if3:
seg000:1D83                 cmp     ds:part_table_sys_id[bx], 0
seg000:1D88                 jz      short cap_05_for1_next1
seg000:1D8A                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:1D8F                 jnz     short cap_05_for1_next1
seg000:1D91
seg000:1D91 cap_if4:
seg000:1D91                 cmp     ds:part_table_sys_id[bx], 0FFh
seg000:1D96                 jz      short cap_04
seg000:1D98                 cmp     ds:part_table_sys_id[bx], 5
seg000:1D9D                 jnz     short cap_05_for1_next1
seg000:1D9F
seg000:1D9F cap_04:                                 ; CODE XREF: change_active_partition+7Cj
seg000:1D9F                 push    ds:error_24_seg
seg000:1DA3                 push    ds:error_24_off
seg000:1DA7                 call    display
seg000:1DAA                 pop     bx
seg000:1DAB                 pop     bx
seg000:1DAC
seg000:1DAC cap_05_for1_next1:                      ; CODE XREF: change_active_partition+6Ej
seg000:1DAC                                         ; change_active_partition+75j ...
seg000:1DAC                 inc     [bp+cap_i]
seg000:1DAF                 cmp     [bp+cap_i], 4
seg000:1DB3                 jb      short cap_03_for1_next2
seg000:1DB5                 sub     al, al
seg000:1DB7                 mov     [bp+cap_num_partitions], al
seg000:1DBA                 mov     [bp+cap_num_boot_partitions], al
seg000:1DBD
seg000:1DBD cap_for2:
seg000:1DBD                 mov     [bp+cap_i], 0
seg000:1DC2
seg000:1DC2 cap_06_for2_next2:                      ; CODE XREF: change_active_partition+DCj
seg000:1DC2                 mov     al, ds:cur_disk
seg000:1DC5                 cbw
seg000:1DC6                 shl     ax, 1
seg000:1DC8                 shl     ax, 1
seg000:1DCA                 add     ax, [bp+cap_i]
seg000:1DCD                 mov     cx, 46
seg000:1DD0                 mul     cx
seg000:1DD2                 mov     bx, ax
seg000:1DD4
seg000:1DD4 cap_if5:
seg000:1DD4                 cmp     ds:part_table_sys_id[bx], 0
seg000:1DD9                 jz      short cap_07_for2_next1
seg000:1DDB                 inc     [bp+cap_num_partitions]
seg000:1DDE
seg000:1DDE cap_if6:
seg000:1DDE                 cmp     ds:part_table_sys_id[bx], 0FFh
seg000:1DE3                 jz      short cap_07_for2_next1
seg000:1DE5                 cmp     ds:part_table_sys_id[bx], 5
seg000:1DEA                 jz      short cap_07_for2_next1
seg000:1DEC                 inc     [bp+cap_num_boot_partitions]
seg000:1DEF
seg000:1DEF cap_07_for2_next1:                      ; CODE XREF: change_active_partition+BFj
seg000:1DEF                                         ; change_active_partition+C9j ...
seg000:1DEF                 inc     [bp+cap_i]
seg000:1DF2                 cmp     [bp+cap_i], 4
seg000:1DF6                 jb      short cap_06_for2_next2
seg000:1DF8
seg000:1DF8 cap_if7:
seg000:1DF8                 cmp     [bp+cap_num_boot_partitions], 1
seg000:1DFC                 jnz     short cap_12_if10
seg000:1DFE
seg000:1DFE cap_for3:
seg000:1DFE                 mov     [bp+cap_i], 0
seg000:1E03                 jmp     short cap_09_for3_next1
seg000:1E05 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1E05
seg000:1E05 cap_08_for3_next2:                      ; CODE XREF: change_active_partition+108j
seg000:1E05                                         ; change_active_partition+10Fj ...
seg000:1E05                 inc     [bp+cap_i]
seg000:1E08
seg000:1E08 cap_09_for3_next1:                      ; CODE XREF: change_active_partition+E9j
seg000:1E08                 cmp     [bp+cap_i], 4
seg000:1E0C                 jnb     short cap_12_if10
seg000:1E0E                 mov     al, ds:cur_disk
seg000:1E11                 cbw
seg000:1E12                 shl     ax, 1
seg000:1E14                 shl     ax, 1
seg000:1E16                 add     ax, [bp+cap_i]
seg000:1E19                 mul     cx
seg000:1E1B                 mov     bx, ax
seg000:1E1D                 cmp     ds:part_table_sys_id[bx], 0
seg000:1E22                 jz      short cap_08_for3_next2
seg000:1E24                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:1E29                 jnz     short cap_08_for3_next2
seg000:1E2B                 cmp     ds:part_table_sys_id[bx], 0FFh
seg000:1E30                 jz      short cap_08_for3_next2
seg000:1E32                 cmp     ds:part_table_sys_id[bx], 5
seg000:1E37                 jz      short cap_08_for3_next2
seg000:1E39                 push    ds:error_15_seg
seg000:1E3D                 push    ds:error_15_off
seg000:1E41                 call    display
seg000:1E44                 pop     bx
seg000:1E45                 pop     bx
seg000:1E46
seg000:1E46 cap_10:                                 ; CODE XREF: change_active_partition:cap_32j
seg000:1E46                 call    wait_for_ESC
seg000:1E49
seg000:1E49 cap_11:                                 ; CODE XREF: change_active_partition+308j
seg000:1E49                 mov     ax, 79
seg000:1E4C                 push    ax
seg000:1E4D                 mov     ax, 24
seg000:1E50                 push    ax
seg000:1E51                 sub     ax, ax
seg000:1E53                 push    ax
seg000:1E54                 push    ax
seg000:1E55                 call    clear_screen
seg000:1E58                 add     sp, 8
seg000:1E5B                 jmp     cap_33
seg000:1E5E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1E5E
seg000:1E5E cap_12_if10:                            ; CODE XREF: change_active_partition+E2j
seg000:1E5E                                         ; change_active_partition+F2j
seg000:1E5E                 cmp     [bp+cap_num_boot_partitions], 0
seg000:1E62                 jnz     short cap_13_if10_else
seg000:1E64
seg000:1E64 cap_12:
seg000:1E64                 push    ds:error_25_seg
seg000:1E68                 push    ds:error_25_off
seg000:1E6C                 jmp     cap_30
seg000:1E6F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1E6F
seg000:1E6F cap_13_if10_else:                       ; CODE XREF: change_active_partition+148j
seg000:1E6F                 sub     ax, ax
seg000:1E71                 push    ax
seg000:1E72                 mov     al, ds:cur_disk
seg000:1E75                 cbw
seg000:1E76                 mov     bx, ax
seg000:1E78                 shl     bx, 1
seg000:1E7A                 push    ds:total_mbytes[bx]
seg000:1E7E                 call    number_in_msg
seg000:1E81                 pop     bx
seg000:1E82                 pop     bx
seg000:1E83                 push    ds:menu_15_segment
seg000:1E87                 push    ds:menu_15_offset
seg000:1E8B                 call    display
seg000:1E8E                 pop     bx
seg000:1E8F                 pop     bx
seg000:1E90                 push    ds:menu_11_segment
seg000:1E94                 push    ds:menu_11_offset
seg000:1E98                 call    display
seg000:1E9B                 pop     bx
seg000:1E9C                 pop     bx
seg000:1E9D                 push    ds:menu_24_segment
seg000:1EA1                 push    ds:menu_24_offset
seg000:1EA5                 call    display
seg000:1EA8                 pop     bx
seg000:1EA9                 pop     bx
seg000:1EAA                 mov     al, [bp+cap_num_partitions]
seg000:1EAD                 mov     [bp+cap_valid_partitions], al
seg000:1EB0                 sub     al, al
seg000:1EB2                 mov     [bp+cap_valid_input], al
seg000:1EB5                 mov     [bp+cap_input_default], al
seg000:1EB8                 jmp     cap_26_while
seg000:1EBB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1EBB
seg000:1EBB cap_14:                                 ; CODE XREF: change_active_partition+2E6j
seg000:1EBB                 push    ds:input_col
seg000:1EBF                 push    ds:input_row
seg000:1EC3                 mov     al, [bp+cap_num_partitions]
seg000:1EC6                 push    ax
seg000:1EC7                 mov     al, [bp+cap_input_default]
seg000:1ECA                 push    ax
seg000:1ECB                 call    get_num_input
seg000:1ECE                 add     sp, 8
seg000:1ED1                 mov     [bp+cap_input], al
seg000:1ED4                 sub     al, '0'
seg000:1ED6                 mov     [bp+cap_input_default], al
seg000:1ED9                 mov     ax, 79
seg000:1EDC                 push    ax
seg000:1EDD                 mov     ax, 23
seg000:1EE0                 push    ax
seg000:1EE1                 sub     ax, ax
seg000:1EE3                 push    ax
seg000:1EE4                 mov     cx, 18
seg000:1EE7                 push    cx
seg000:1EE8                 call    clear_screen
seg000:1EEB                 add     sp, 8
seg000:1EEE
seg000:1EEE cap_if11:
seg000:1EEE                 cmp     [bp+cap_input], 1Bh
seg000:1EF2                 jnz     short cap_15
seg000:1EF4                 jmp     cap_25_if11_else
seg000:1EF7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1EF7
seg000:1EF7 cap_15:                                 ; CODE XREF: change_active_partition+1D8j
seg000:1EF7                 mov     [bp+cap_valid_partitions], 0
seg000:1EFB                 mov     al, 4
seg000:1EFD                 push    ax
seg000:1EFE                 call    sort_part_table
seg000:1F01                 pop     bx
seg000:1F02
seg000:1F02 cap_15_for4:
seg000:1F02                 mov     [bp+cap_i], 0
seg000:1F07                 jmp     short cap_20_for4_next1
seg000:1F09 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1F09
seg000:1F09 cap_16_if14_else:                       ; CODE XREF: change_active_partition+24Cj
seg000:1F09                                         ; change_active_partition+253j
seg000:1F09                 mov     al, [bp+cap_input]
seg000:1F0C                 mov     ds:insert, al
seg000:1F0F                 push    ds:error_17_seg
seg000:1F13                 push    ds:error_17_off
seg000:1F17
seg000:1F17 cap_17:                                 ; CODE XREF: change_active_partition+2D9j
seg000:1F17                 call    display
seg000:1F1A                 pop     bx
seg000:1F1B                 pop     bx
seg000:1F1C                 jmp     cap_26_while
seg000:1F1F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1F1F
seg000:1F1F cap_18:                                 ; CODE XREF: change_active_partition+245j
seg000:1F1F                 inc     [bp+cap_valid_partitions]
seg000:1F22
seg000:1F22 cap_19:                                 ; CODE XREF: change_active_partition+234j
seg000:1F22                 inc     [bp+cap_i]
seg000:1F25
seg000:1F25 cap_20_for4_next1:                      ; CODE XREF: change_active_partition+1EDj
seg000:1F25                 cmp     [bp+cap_i], 4
seg000:1F29                 jb      short cap_21_for4_next2
seg000:1F2B                 jmp     cap_26_while
seg000:1F2E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1F2E
seg000:1F2E cap_21_for4_next2:                      ; CODE XREF: change_active_partition+20Fj
seg000:1F2E                 mov     al, ds:cur_disk
seg000:1F31                 cbw
seg000:1F32                 shl     ax, 1
seg000:1F34                 shl     ax, 1
seg000:1F36                 mov     bx, [bp+cap_i]
seg000:1F39                 mov     cx, ax
seg000:1F3B                 mov     al, ds:sort[bx]
seg000:1F3F                 cbw
seg000:1F40                 add     ax, cx
seg000:1F42                 mov     cx, 46
seg000:1F45                 imul    cx
seg000:1F47                 mov     bx, ax
seg000:1F49
seg000:1F49 cap_if12:
seg000:1F49                 cmp     ds:part_table_sys_id[bx], 0
seg000:1F4E                 jz      short cap_19
seg000:1F50
seg000:1F50 cap_if13:
seg000:1F50                 mov     al, [bp+cap_valid_partitions]
seg000:1F53                 cbw
seg000:1F54                 mov     cx, ax
seg000:1F56                 mov     al, [bp+cap_input]
seg000:1F59                 cbw
seg000:1F5A                 sub     ax, cx
seg000:1F5C                 cmp     ax, '1'
seg000:1F5F                 jnz     short cap_18
seg000:1F61
seg000:1F61 cap_if14:
seg000:1F61                 cmp     ds:part_table_sys_id[bx], 0FFh
seg000:1F66                 jz      short cap_16_if14_else
seg000:1F68                 cmp     ds:part_table_sys_id[bx], 5
seg000:1F6D                 jz      short cap_16_if14_else
seg000:1F6F                 mov     [bp+cap_valid_input], 1
seg000:1F73
seg000:1F73 cap_for5:
seg000:1F73                 mov     [bp+cap_x], 0
seg000:1F78
seg000:1F78 cap_22_for5_next2:                      ; CODE XREF: change_active_partition+288j
seg000:1F78                 mov     al, ds:cur_disk
seg000:1F7B                 cbw
seg000:1F7C                 shl     ax, 1
seg000:1F7E                 shl     ax, 1
seg000:1F80                 add     ax, [bp+cap_x]
seg000:1F83                 mov     cx, 46
seg000:1F86                 mul     cx
seg000:1F88                 mov     bx, ax
seg000:1F8A
seg000:1F8A cap_if15:
seg000:1F8A                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:1F8F                 jnz     short cap_24_for5_next1
seg000:1F91                 mov     ds:part_table_changed[bx], 1
seg000:1F96                 mov     ds:part_table_boot_ind[bx], 0
seg000:1F9B
seg000:1F9B cap_24_for5_next1:                      ; CODE XREF: change_active_partition+275j
seg000:1F9B                 inc     [bp+cap_x]
seg000:1F9E                 cmp     [bp+cap_x], 4
seg000:1FA2                 jb      short cap_22_for5_next2
seg000:1FA4                 mov     al, ds:cur_disk
seg000:1FA7                 cbw
seg000:1FA8                 shl     ax, 1
seg000:1FAA                 shl     ax, 1
seg000:1FAC                 mov     bx, [bp+cap_i]
seg000:1FAF                 mov     cx, ax
seg000:1FB1                 mov     al, ds:sort[bx]
seg000:1FB5                 cbw
seg000:1FB6                 add     ax, cx
seg000:1FB8                 mov     cx, 46
seg000:1FBB                 imul    cx
seg000:1FBD                 mov     bx, ax
seg000:1FBF                 mov     ds:part_table_boot_ind[bx], 80h
seg000:1FC4                 mov     al, 1
seg000:1FC6                 mov     ds:part_table_changed[bx], al
seg000:1FCA                 mov     ds:reboot_flag, al
seg000:1FCD                 call    table_display
seg000:1FD0                 mov     ax, 79
seg000:1FD3                 push    ax
seg000:1FD4                 mov     ax, 21
seg000:1FD7                 push    ax
seg000:1FD8                 sub     ax, ax
seg000:1FDA                 push    ax
seg000:1FDB                 mov     ax, 16
seg000:1FDE                 push    ax
seg000:1FDF                 call    clear_screen
seg000:1FE2                 add     sp, 8
seg000:1FE5                 mov     al, [bp+cap_input]
seg000:1FE8                 mov     ds:insert, al
seg000:1FEB                 push    ds:status_4_seg
seg000:1FEF                 push    ds:status_4_off
seg000:1FF3                 jmp     cap_17
seg000:1FF6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:1FF6
seg000:1FF6 cap_25_if11_else:                       ; CODE XREF: change_active_partition+1DAj
seg000:1FF6                 mov     [bp+cap_valid_input], 1
seg000:1FFA
seg000:1FFA cap_26_while:                           ; CODE XREF: change_active_partition+19Ej
seg000:1FFA                                         ; change_active_partition+202j ...
seg000:1FFA                 cmp     [bp+cap_valid_input], 0
seg000:1FFE                 jnz     short cap_if9
seg000:2000                 jmp     cap_14
seg000:2003 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2003
seg000:2003 cap_if9:                                ; CODE XREF: change_active_partition+2E4j
seg000:2003                 jmp     short cap_31
seg000:2005 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2005
seg000:2005 cap_28:                                 ; CODE XREF: change_active_partition+4Fj
seg000:2005                 push    ds:error_16_seg
seg000:2009                 push    ds:error_16_off
seg000:200D                 jmp     short cap_30
seg000:200F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:200F
seg000:200F cap_29:                                 ; CODE XREF: change_active_partition+45j
seg000:200F                 push    ds:error_26_seg
seg000:2013                 push    ds:error_26_off
seg000:2017
seg000:2017 cap_30:                                 ; CODE XREF: change_active_partition+152j
seg000:2017                                         ; change_active_partition+2F3j
seg000:2017                 call    display
seg000:201A                 pop     bx
seg000:201B                 pop     bx
seg000:201C
seg000:201C cap_31:                                 ; CODE XREF: change_active_partition:cap_if9j
seg000:201C                 cmp     [bp+cap_input], 1Bh
seg000:2020                 jnz     short cap_32
seg000:2022                 jmp     cap_11
seg000:2025 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2025
seg000:2025 cap_32:                                 ; CODE XREF: change_active_partition+306j
seg000:2025                 jmp     cap_10
seg000:2028 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2028
seg000:2028 cap_33:                                 ; CODE XREF: change_active_partition+141j
seg000:2028                 mov     sp, bp
seg000:202A                 pop     bp
seg000:202B                 retn
seg000:202B change_active_partition endp
seg000:202B
seg000:202C
seg000:202C ; --------------- S U B R O U T I N E ---------------------------------------
seg000:202C
seg000:202C ; Attributes: bp-based frame
seg000:202C
seg000:202C display_partition_information proc near ; CODE XREF: do_main_menu:case_4p
seg000:202C                 push    bp
seg000:202D                 mov     bp, sp
seg000:202F                 sub     sp, 2
seg000:2032                 mov     ax, 79
seg000:2035                 push    ax
seg000:2036                 mov     ax, 24
seg000:2039                 push    ax
seg000:203A                 sub     ax, ax
seg000:203C                 push    ax
seg000:203D                 push    ax
seg000:203E                 call    clear_screen
seg000:2041                 add     sp, 8
seg000:2044                 push    ds:menu_35_segment
seg000:2048                 push    ds:menu_35_offset
seg000:204C                 call    display
seg000:204F                 pop     bx
seg000:2050                 pop     bx
seg000:2051                 mov     al, ds:cur_disk
seg000:2054                 add     al, '1'
seg000:2056                 mov     ds:insert, al
seg000:2059                 push    ds:menu_5_segment
seg000:205D                 push    ds:menu_5_offset
seg000:2061                 call    display
seg000:2064                 pop     bx
seg000:2065                 pop     bx
seg000:2066                 call    table_display
seg000:2069                 or      al, al
seg000:206B                 jz      short disp_wait_for_esc
seg000:206D                 sub     ax, ax
seg000:206F                 push    ax
seg000:2070                 mov     al, ds:cur_disk
seg000:2073                 cbw
seg000:2074                 mov     bx, ax
seg000:2076                 shl     bx, 1
seg000:2078                 push    ds:total_mbytes[bx]
seg000:207C                 call    number_in_msg
seg000:207F                 pop     bx
seg000:2080                 pop     bx
seg000:2081                 push    ds:menu_15_segment
seg000:2085                 push    ds:menu_15_offset
seg000:2089                 call    display
seg000:208C                 pop     bx
seg000:208D                 pop     bx
seg000:208E                 mov     al, 5
seg000:2090                 push    ax
seg000:2091                 call    find_partition_type
seg000:2094                 pop     bx
seg000:2095                 or      al, al
seg000:2097                 jz      short disp_wait_for_esc
seg000:2099                 call    find_logical_drive
seg000:209C                 or      al, al
seg000:209E                 jz      short disp_wait_for_esc
seg000:20A0                 push    ds:menu_11_segment
seg000:20A4                 push    ds:menu_11_offset
seg000:20A8                 call    display
seg000:20AB                 pop     bx
seg000:20AC                 pop     bx
seg000:20AD                 push    ds:menu_36_segment
seg000:20B1                 push    ds:menu_36_offset
seg000:20B5                 call    display
seg000:20B8                 pop     bx
seg000:20B9                 pop     bx
seg000:20BA                 push    ds:input_col
seg000:20BE                 push    ds:input_row
seg000:20C2                 mov     al, ds:Yes
seg000:20C5                 push    ax
seg000:20C6                 call    get_yn_input
seg000:20C9                 add     sp, 6
seg000:20CC
seg000:20CC switch_input9:
seg000:20CC                 cbw
seg000:20CD                 cmp     ax, 1Bh
seg000:20D0                 jz      short case_disp_pinf_break
seg000:20D2                 ja      short case_disp_pinf_DEF
seg000:20D4                 or      al, al
seg000:20D6                 jz      short case_disp_pinf_break
seg000:20D8                 dec     al
seg000:20DA                 jz      short case_disp_pinf_1
seg000:20DC
seg000:20DC case_disp_pinf_DEF:                     ; CODE XREF: display_partition_information+A6j
seg000:20DC                 call    internal_program_error
seg000:20DF                 jmp     short case_disp_pinf_break
seg000:20E1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:20E1
seg000:20E1 case_disp_pinf_1:                       ; CODE XREF: display_partition_information+AEj
seg000:20E1                 call    display_volume_information
seg000:20E4                 jmp     short case_disp_pinf_break
seg000:20E6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:20E6
seg000:20E6 disp_wait_for_esc:                      ; CODE XREF: display_partition_information+3Fj
seg000:20E6                                         ; display_partition_information+6Bj ...
seg000:20E6                 call    wait_for_ESC
seg000:20E9
seg000:20E9 case_disp_pinf_break:                   ; CODE XREF: display_partition_information+A4j
seg000:20E9                                         ; display_partition_information+AAj ...
seg000:20E9                 mov     ax, 79
seg000:20EC                 push    ax
seg000:20ED                 mov     ax, 24
seg000:20F0                 push    ax
seg000:20F1                 sub     ax, ax
seg000:20F3                 push    ax
seg000:20F4                 push    ax
seg000:20F5                 call    clear_screen
seg000:20F8                 mov     sp, bp
seg000:20FA                 pop     bp
seg000:20FB                 retn
seg000:20FB display_partition_information endp
seg000:20FB
seg000:20FC
seg000:20FC ; --------------- S U B R O U T I N E ---------------------------------------
seg000:20FC
seg000:20FC
seg000:20FC display_volume_information proc near    ; CODE XREF: display_partition_information:case_disp_pinf_1p
seg000:20FC                 mov     ax, 79
seg000:20FF                 push    ax
seg000:2100                 mov     ax, 24
seg000:2103                 push    ax
seg000:2104                 sub     ax, ax
seg000:2106                 push    ax
seg000:2107                 push    ax
seg000:2108                 call    clear_screen
seg000:210B                 add     sp, 8
seg000:210E                 push    ds:menu_37_segment
seg000:2112                 push    ds:menu_37_offset
seg000:2116                 call    display
seg000:2119                 pop     bx
seg000:211A                 pop     bx
seg000:211B                 call    volume_display
seg000:211E                 mov     al, 5
seg000:2120                 push    ax
seg000:2121                 call    get_partition_size
seg000:2124                 pop     bx
seg000:2125                 push    ax
seg000:2126                 mov     ax, offset p_size_format ; "%4.1d"
seg000:2129                 push    ax
seg000:212A                 mov     ax, offset insert
seg000:212D                 push    ax
seg000:212E                 call    sprintf
seg000:2131                 add     sp, 6
seg000:2134                 push    ds:menu_21_segment
seg000:2138                 push    ds:menu_21_offset
seg000:213C                 call    display
seg000:213F                 pop     bx
seg000:2140                 pop     bx
seg000:2141                 push    ds:menu_11_segment
seg000:2145                 push    ds:menu_11_offset
seg000:2149                 call    display
seg000:214C                 pop     bx
seg000:214D                 pop     bx
seg000:214E                 jmp     wait_for_ESC
seg000:214E display_volume_information endp
seg000:214E
seg000:2151
seg000:2151 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:2151
seg000:2151
seg000:2151 check_valid_environment proc near       ; CODE XREF: main+68p
seg000:2151                 mov     ds:regs_x_ax, 0B800h
seg000:2157                 mov     ax, offset regs_x_ax
seg000:215A                 push    ax
seg000:215B                 push    ax
seg000:215C                 mov     cx, 2Fh
seg000:215F                 push    cx
seg000:2160                 call    int86
seg000:2163                 add     sp, 6
seg000:2166                 cmp     byte ptr ds:regs_x_ax, 0
seg000:216B                 jz      short cve_true
seg000:216D                 test    byte ptr ds:regs_x_bx, 40h
seg000:2172                 jz      short cve_true
seg000:2174                 mov     al, 0FFh
seg000:2176                 push    ax
seg000:2177                 sub     al, al
seg000:2179                 mov     ds:no_fatal_error, al
seg000:217C                 push    ax
seg000:217D                 sub     ax, ax
seg000:217F                 push    ax
seg000:2180                 push    ax
seg000:2181                 mov     ax, 2
seg000:2184                 push    ax
seg000:2185                 mov     ax, 4
seg000:2188                 push    ax
seg000:2189                 call    display_msg
seg000:218C                 add     sp, 12
seg000:218F
seg000:218F cve_false:
seg000:218F                 sub     al, al
seg000:2191                 retn
seg000:2192 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2192
seg000:2192 cve_true:                               ; CODE XREF: check_valid_environment+1Aj
seg000:2192                                         ; check_valid_environment+21j
seg000:2192                 mov     al, 1
seg000:2194                 retn
seg000:2194 check_valid_environment endp
seg000:2194
seg000:2195
seg000:2195 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:2195
seg000:2195 ; Attributes: bp-based frame
seg000:2195
seg000:2195 init_partition_tables proc near         ; CODE XREF: main+A4p
seg000:2195                                         ; main:_main_22p
seg000:2195
seg000:2195 pt_num_sec_lw   = word ptr -1Ah
seg000:2195 pt_num_sec_hw   = word ptr -18h
seg000:2195 pt_rel_sec_temp_lw= word ptr -16h
seg000:2195 pt_rel_sec_temp_hw= word ptr -14h
seg000:2195 more_drives_exist= byte ptr -12h
seg000:2195 char_j          = byte ptr -10h
seg000:2195 unsigned_i      = word ptr -0Eh
seg000:2195 active_primary_count= byte ptr -0Ah
seg000:2195 num_logical_drives= byte ptr -6
seg000:2195 partition_location= word ptr -4
seg000:2195 char_pri_part   = byte ptr -2
seg000:2195
seg000:2195                 push    bp
seg000:2196                 mov     bp, sp
seg000:2198                 sub     sp, 26
seg000:219B                 push    di
seg000:219C                 push    si
seg000:219D                 mov     ds:next_letter, 'C'
seg000:21A2
seg000:21A2 ipt_for1_0:
seg000:21A2                 mov     [bp+char_j], 0
seg000:21A6                 jmp     ipt_for1_1
seg000:21A9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:21A9
seg000:21A9 ipt_for1_next:                          ; CODE XREF: init_partition_tables+2A2j
seg000:21A9                 mov     ds:primary_partition_count, 0
seg000:21AE                 mov     [bp+char_pri_part], 0FFh
seg000:21B2                 mov     ds:cur_disk, al
seg000:21B5                 mov     cl, 1
seg000:21B7                 push    cx
seg000:21B8                 sub     cl, cl
seg000:21BA                 mov     [bp+active_primary_count], cl
seg000:21BD                 push    cx
seg000:21BE                 push    ax
seg000:21BF                 sub     ax, ax
seg000:21C1                 push    ax
seg000:21C2                 call    read_boot_record
seg000:21C5                 add     sp, 8
seg000:21C8                 or      al, al
seg000:21CA                 jnz     short ipt_1
seg000:21CC                 jmp     ipt_26
seg000:21CF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:21CF
seg000:21CF ipt_1:                                  ; CODE XREF: init_partition_tables+35j
seg000:21CF                 cmp     ds:boot_record+1FEh, 55h
seg000:21D4                 jnz     short ipt_3
seg000:21D6                 cmp     ds:boot_record+1FFh, 0AAh
seg000:21DB                 jnz     short ipt_3
seg000:21DD                 mov     [bp+unsigned_i], 0
seg000:21E2
seg000:21E2 ipt_2:                                  ; CODE XREF: init_partition_tables+6Bj
seg000:21E2                 mov     bx, [bp+unsigned_i]
seg000:21E5                 mov     al, ds:boot_record[bx]
seg000:21E9                 mov     cl, 9
seg000:21EB                 mov     dl, [bp+char_j]
seg000:21EE                 sub     dh, dh
seg000:21F0                 mov     si, dx
seg000:21F2                 shl     si, cl
seg000:21F4                 mov     ds:master_boot_record[bx+si], al
seg000:21F8                 inc     [bp+unsigned_i]
seg000:21FB                 cmp     [bp+unsigned_i], 512
seg000:2200                 jb      short ipt_2
seg000:2202
seg000:2202 ipt_3:                                  ; CODE XREF: init_partition_tables+3Fj
seg000:2202                                         ; init_partition_tables+46j
seg000:2202                 mov     [bp+unsigned_i], 0
seg000:2207
seg000:2207 ipt_4:                                  ; CODE XREF: init_partition_tables+261j
seg000:2207                 mov     al, [bp+char_j]
seg000:220A                 sub     ah, ah
seg000:220C                 mov     cl, 9
seg000:220E                 mov     dx, ax
seg000:2210                 shl     ax, cl
seg000:2212                 mov     cl, 4
seg000:2214                 mov     bx, [bp+unsigned_i]
seg000:2217                 shl     bx, cl
seg000:2219                 add     bx, ax
seg000:221B                 mov     al, ds:(master_boot_record+1BEh)[bx]
seg000:221F                 mov     cx, ax
seg000:2221                 mov     ax, dx
seg000:2223                 shl     ax, 1
seg000:2225                 shl     ax, 1
seg000:2227                 add     ax, [bp+unsigned_i]
seg000:222A                 mov     si, 46
seg000:222D                 mul     si
seg000:222F                 mov     si, ax
seg000:2231                 mov     ds:part_table_boot_ind[si], cl
seg000:2235                 mov     al, ds:(master_boot_record+1BFh)[bx]
seg000:2239                 mov     ds:part_table_start_head[si], al
seg000:223D                 mov     al, ds:(master_boot_record+1C0h)[bx]
seg000:2241                 mov     cx, ax
seg000:2243                 and     al, 3Fh
seg000:2245                 mov     ds:part_table_start_sector[si], al
seg000:2249                 mov     al, ds:(master_boot_record+1C1h)[bx]
seg000:224D                 sub     ah, ah
seg000:224F                 and     cx, 0C0h
seg000:2253                 shl     cx, 1
seg000:2255                 shl     cx, 1
seg000:2257                 add     cx, ax
seg000:2259                 mov     ds:part_table_start_cyl[si], cx
seg000:225D                 mov     al, ds:(master_boot_record+1C2h)[bx]
seg000:2261                 mov     ds:part_table_sys_id[si], al
seg000:2265                 mov     al, ds:(master_boot_record+1C3h)[bx]
seg000:2269                 mov     ds:part_table_end_head[si], al
seg000:226D                 mov     al, ds:(master_boot_record+1C4h)[bx]
seg000:2271                 mov     cx, ax
seg000:2273                 and     al, 3Fh
seg000:2275                 mov     ds:part_table_end_sector[si], al
seg000:2279                 mov     al, ds:(master_boot_record+1C5h)[bx]
seg000:227D                 and     cx, 0C0h
seg000:2281                 shl     cx, 1
seg000:2283                 shl     cx, 1
seg000:2285                 add     cx, ax
seg000:2287                 mov     ds:part_table_end_cyl[si], cx
seg000:228B                 mov     al, ds:(master_boot_record+1C9h)[bx]
seg000:228F                 mov     ah, al
seg000:2291                 sub     al, al
seg000:2293                 sub     cx, cx
seg000:2295                 mov     ds:part_table_rel_sec_lw[si], cx
seg000:2299                 mov     ds:part_table_rel_sec_hw[si], ax
seg000:229D                 mov     dl, ds:(master_boot_record+1C8h)[bx]
seg000:22A1                 sub     dh, dh
seg000:22A3                 sub     di, di
seg000:22A5                 add     cx, di
seg000:22A7                 adc     ax, dx
seg000:22A9                 mov     ds:part_table_rel_sec_lw[si], cx
seg000:22AD                 mov     ds:part_table_rel_sec_hw[si], ax
seg000:22B1                 mov     dx, ax
seg000:22B3                 mov     al, ds:(master_boot_record+1C7h)[bx]
seg000:22B7                 sub     ah, ah
seg000:22B9                 mov     di, dx
seg000:22BB                 sub     dx, dx
seg000:22BD                 mov     [bp+pt_rel_sec_temp_lw], cx
seg000:22C0                 mov     [bp+pt_rel_sec_temp_hw], di
seg000:22C3                 mov     cl, 8
seg000:22C5                 mov     di, bx
seg000:22C7                 call    shl32
seg000:22CA                 add     ax, [bp+pt_rel_sec_temp_lw]
seg000:22CD                 adc     dx, [bp+pt_rel_sec_temp_hw]
seg000:22D0                 mov     ds:part_table_rel_sec_lw[si], ax
seg000:22D4                 mov     ds:part_table_rel_sec_hw[si], dx
seg000:22D8                 mov     cl, ds:(master_boot_record+1C6h)[di]
seg000:22DC                 sub     ch, ch
seg000:22DE                 add     ax, cx
seg000:22E0                 adc     dx, 0
seg000:22E3                 mov     ds:part_table_rel_sec_lw[si], ax
seg000:22E7                 mov     ds:part_table_rel_sec_hw[si], dx
seg000:22EB                 mov     al, ds:(master_boot_record+1CDh)[di]
seg000:22EF                 mov     ah, al
seg000:22F1                 sub     al, al
seg000:22F3                 sub     cx, cx
seg000:22F5                 mov     ds:part_table_num_sec_lw[si], cx
seg000:22F9                 mov     ds:part_table_num_sec_hw[si], ax
seg000:22FD                 mov     dl, ds:(master_boot_record+1CCh)[di]
seg000:2301                 sub     dh, dh
seg000:2303                 sub     bx, bx
seg000:2305                 add     cx, bx
seg000:2307                 adc     ax, dx
seg000:2309                 mov     ds:part_table_num_sec_lw[si], cx
seg000:230D                 mov     ds:part_table_num_sec_hw[si], ax
seg000:2311                 mov     dx, ax
seg000:2313                 mov     al, ds:(master_boot_record+1CBh)[di]
seg000:2317                 sub     ah, ah
seg000:2319                 mov     bx, dx
seg000:231B                 sub     dx, dx
seg000:231D                 mov     [bp+pt_num_sec_lw], cx
seg000:2320                 mov     [bp+pt_num_sec_hw], bx
seg000:2323                 mov     cl, 8
seg000:2325                 call    shl32
seg000:2328                 add     ax, [bp+pt_num_sec_lw]
seg000:232B                 adc     dx, [bp+pt_num_sec_hw]
seg000:232E                 mov     ds:part_table_num_sec_lw[si], ax
seg000:2332                 mov     ds:part_table_num_sec_hw[si], dx
seg000:2336                 mov     cl, ds:(master_boot_record+1CAh)[di]
seg000:233A                 sub     ch, ch
seg000:233C                 add     ax, cx
seg000:233E                 adc     dx, 0
seg000:2341                 mov     ds:part_table_num_sec_lw[si], ax
seg000:2345                 mov     ds:part_table_num_sec_hw[si], dx
seg000:2349                 push    dx
seg000:234A                 push    ds:part_table_num_sec_lw[si]
seg000:234E                 call    numsecs_to_mbytes
seg000:2351                 pop     bx
seg000:2352                 pop     bx
seg000:2353                 mov     ds:part_table_mbytes_used[si], ax
seg000:2357                 mov     al, ds:cur_disk
seg000:235A                 cbw
seg000:235B                 mov     bx, ax
seg000:235D                 shl     bx, 1
seg000:235F                 push    ds:total_mbytes[bx]
seg000:2363                 push    ds:part_table_mbytes_used[si]
seg000:2367                 call    mbytes_to_percent
seg000:236A                 pop     bx
seg000:236B                 pop     bx
seg000:236C                 mov     ds:part_table_percent_used[si], ax
seg000:2370                 cmp     ds:part_table_sys_id[si], 1
seg000:2375                 jz      short ipt_5
seg000:2377                 cmp     ds:part_table_sys_id[si], 4
seg000:237C                 jz      short ipt_5
seg000:237E                 cmp     ds:part_table_sys_id[si], 6
seg000:2383                 jnz     short ipt_9
seg000:2385
seg000:2385 ipt_5:                                  ; CODE XREF: init_partition_tables+1E0j
seg000:2385                                         ; init_partition_tables+1E7j
seg000:2385                 mov     al, [bp+char_j]
seg000:2388                 sub     ah, ah
seg000:238A                 shl     ax, 1
seg000:238C                 shl     ax, 1
seg000:238E                 add     ax, [bp+unsigned_i]
seg000:2391                 mov     cx, 46
seg000:2394                 mul     cx
seg000:2396                 mov     bx, ax
seg000:2398                 mov     ds:part_table_drive_letter[bx], ' '
seg000:239D                 cmp     ds:primary_partition_count, 0
seg000:23A2                 jz      short ipt_6
seg000:23A4                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:23A9                 jnz     short ipt_7
seg000:23AB                 cmp     [bp+active_primary_count], 0
seg000:23AF                 jnz     short ipt_7
seg000:23B1
seg000:23B1 ipt_6:                                  ; CODE XREF: init_partition_tables+20Dj
seg000:23B1                 mov     al, byte ptr [bp+unsigned_i]
seg000:23B4                 mov     [bp+char_pri_part], al
seg000:23B7
seg000:23B7 ipt_7:                                  ; CODE XREF: init_partition_tables+214j
seg000:23B7                                         ; init_partition_tables+21Aj
seg000:23B7                 mov     al, [bp+char_j]
seg000:23BA                 sub     ah, ah
seg000:23BC                 shl     ax, 1
seg000:23BE                 shl     ax, 1
seg000:23C0                 add     ax, [bp+unsigned_i]
seg000:23C3                 mul     cx
seg000:23C5                 mov     bx, ax
seg000:23C7                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:23CC                 jnz     short ipt_8
seg000:23CE                 inc     [bp+active_primary_count]
seg000:23D1
seg000:23D1 ipt_8:                                  ; CODE XREF: init_partition_tables+237j
seg000:23D1                 inc     ds:primary_partition_count
seg000:23D5
seg000:23D5 ipt_9:                                  ; CODE XREF: init_partition_tables+1EEj
seg000:23D5                 mov     al, [bp+char_j]
seg000:23D8                 sub     ah, ah
seg000:23DA                 shl     ax, 1
seg000:23DC                 shl     ax, 1
seg000:23DE                 add     ax, [bp+unsigned_i]
seg000:23E1                 mov     cx, 46
seg000:23E4                 mul     cx
seg000:23E6                 mov     bx, ax
seg000:23E8                 mov     ds:part_table_changed[bx], 0
seg000:23ED                 inc     [bp+unsigned_i]
seg000:23F0                 cmp     [bp+unsigned_i], 4
seg000:23F4                 jnb     short ipt_10
seg000:23F6                 jmp     ipt_4
seg000:23F9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:23F9
seg000:23F9 ipt_10:                                 ; CODE XREF: init_partition_tables+25Fj
seg000:23F9                 cmp     [bp+char_pri_part], 0FFh
seg000:23FD                 jz      short ipt_11
seg000:23FF                 mov     al, [bp+char_j]
seg000:2402                 sub     ah, ah
seg000:2404                 shl     ax, 1
seg000:2406                 shl     ax, 1
seg000:2408                 mov     cl, [bp+char_pri_part]
seg000:240B                 sub     ch, ch
seg000:240D                 add     ax, cx
seg000:240F                 mov     bx, 46
seg000:2412                 imul    bx
seg000:2414                 mov     bx, ax
seg000:2416                 mov     al, ds:next_letter
seg000:2419                 inc     ds:next_letter
seg000:241D                 mov     ds:part_table_drive_letter[bx], al
seg000:2421                 push    cx
seg000:2422                 mov     al, [bp+char_j]
seg000:2425                 push    ax
seg000:2426                 call    get_volume
seg000:2429                 pop     bx
seg000:242A                 pop     bx
seg000:242B
seg000:242B ipt_11:                                 ; CODE XREF: init_partition_tables+268j
seg000:242B                 inc     [bp+char_j]
seg000:242E
seg000:242E ipt_for1_1:                             ; CODE XREF: init_partition_tables+11j
seg000:242E                 mov     al, [bp+char_j]
seg000:2431                 cmp     ds:number_of_drives, al
seg000:2435                 jbe     short ipt_for2_0
seg000:2437                 jmp     ipt_for1_next
seg000:243A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:243A
seg000:243A ipt_for2_0:                             ; CODE XREF: init_partition_tables+2A0j
seg000:243A                 mov     [bp+char_j], 0
seg000:243E                 jmp     short ipt_for2_1
seg000:2440 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2440
seg000:2440 ipt_12:                                 ; CODE XREF: init_partition_tables+2C3j
seg000:2440                 inc     [bp+unsigned_i]
seg000:2443
seg000:2443 ipt_in_while_for_1:                     ; CODE XREF: init_partition_tables+42Ej
seg000:2443                 cmp     [bp+unsigned_i], 4
seg000:2447                 jb      short ipt_in_while_for_next
seg000:2449                 jmp     ipt_while_more_drives_exist
seg000:244C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:244C
seg000:244C ipt_in_while_for_next:                  ; CODE XREF: init_partition_tables+2B2j
seg000:244C                 mov     cl, 4
seg000:244E                 mov     bx, [bp+unsigned_i]
seg000:2451                 shl     bx, cl
seg000:2453                 cmp     ds:(boot_record+1C2h)[bx], 5
seg000:2458                 jnz     short ipt_12
seg000:245A                 mov     al, ds:(boot_record+1C0h)[bx]
seg000:245E                 and     ax, 0C0h
seg000:2461                 shl     ax, 1
seg000:2463                 shl     ax, 1
seg000:2465                 mov     cl, ds:(boot_record+1C1h)[bx]
seg000:2469                 sub     ch, ch
seg000:246B                 add     ax, cx
seg000:246D                 mov     [bp+partition_location], ax
seg000:2470                 mov     [bp+more_drives_exist], 1
seg000:2474                 mov     al, [bp+num_logical_drives]
seg000:2477                 cbw
seg000:2478                 mov     cx, ax
seg000:247A                 mov     al, 24
seg000:247C                 mul     [bp+char_j]
seg000:247F                 add     ax, cx
seg000:2481                 mov     cx, 46
seg000:2484                 imul    cx
seg000:2486                 mov     bx, ax
seg000:2488                 cmp     ds:ext_table_sys_id[bx], 0
seg000:248D                 jnz     short ipt_13
seg000:248F                 jmp     ipt_while_more_drives_exist
seg000:2492 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2492
seg000:2492 ipt_13:                                 ; CODE XREF: init_partition_tables+2F8j
seg000:2492                 inc     [bp+num_logical_drives]
seg000:2495                 jmp     ipt_while_more_drives_exist
seg000:2498 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2498
seg000:2498 ipt_while_end:                          ; CODE XREF: init_partition_tables+327j
seg000:2498                                         ; init_partition_tables+332j ...
seg000:2498                 inc     [bp+char_j]
seg000:249B
seg000:249B ipt_for2_1:                             ; CODE XREF: init_partition_tables+2A9j
seg000:249B                 mov     al, [bp+char_j]
seg000:249E                 cmp     ds:number_of_drives, al
seg000:24A2                 ja      short ipt_for2_next
seg000:24A4                 jmp     ipt_16
seg000:24A7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:24A7
seg000:24A7 ipt_for2_next:                          ; CODE XREF: init_partition_tables+30Dj
seg000:24A7                 mov     ds:cur_disk, al
seg000:24AA                 mov     cl, 1
seg000:24AC                 push    cx
seg000:24AD                 sub     cl, cl
seg000:24AF                 push    cx
seg000:24B0                 push    ax
seg000:24B1                 sub     ax, ax
seg000:24B3                 push    ax
seg000:24B4                 call    read_boot_record
seg000:24B7                 add     sp, 8
seg000:24BA                 or      al, al
seg000:24BC                 jz      short ipt_while_end
seg000:24BE                 mov     al, 5
seg000:24C0                 push    ax
seg000:24C1                 call    find_partition_type
seg000:24C4                 pop     bx
seg000:24C5                 or      al, al
seg000:24C7                 jz      short ipt_while_end
seg000:24C9                 mov     [bp+unsigned_i], 0
seg000:24CE
seg000:24CE ipt_14:                                 ; CODE XREF: init_partition_tables+3CCj
seg000:24CE                 mov     al, 24
seg000:24D0                 mul     [bp+char_j]
seg000:24D3                 add     ax, [bp+unsigned_i]
seg000:24D6                 mov     cx, 46
seg000:24D9                 mul     cx
seg000:24DB                 mov     bx, ax
seg000:24DD                 sub     al, al
seg000:24DF                 mov     ds:ext_table_boot_ind[bx], al
seg000:24E3                 mov     ds:ext_table_start_head[bx], al
seg000:24E7                 mov     ds:ext_table_start_sector[bx], al
seg000:24EB                 mov     ds:ext_table_start_cyl[bx], 0
seg000:24F1                 mov     ds:ext_table_sys_id[bx], al
seg000:24F5                 mov     ds:ext_table_end_head[bx], al
seg000:24F9                 mov     ds:ext_table_end_sector[bx], al
seg000:24FD                 mov     ds:ext_table_end_cyl[bx], 0
seg000:2503                 sub     ax, ax
seg000:2505                 mov     ds:ext_table_rel_sec_hw[bx], ax
seg000:2509                 mov     ds:ext_table_rel_sec_lw[bx], ax
seg000:250D                 mov     ds:ext_table_num_sec_hw[bx], ax
seg000:2511                 mov     ds:ext_table_num_sec_lw[bx], ax
seg000:2515                 mov     ds:ext_table_mbytes_used[bx], ax
seg000:2519                 mov     ds:ext_table_percent_used[bx], ax
seg000:251D                 sub     al, al
seg000:251F                 mov     ds:ext_table_changed[bx], al
seg000:2523                 mov     ds:ext_table_drive_letter[bx], al
seg000:2527                 sub     ax, ax
seg000:2529                 push    ax
seg000:252A                 mov     al, 24
seg000:252C                 imul    ds:cur_disk
seg000:2530                 add     ax, [bp+unsigned_i]
seg000:2533                 mul     cx
seg000:2535                 add     ax, offset ext_table_system
seg000:2538                 push    ax
seg000:2539                 call    strcpy
seg000:253C                 pop     bx
seg000:253D                 pop     bx
seg000:253E                 sub     ax, ax
seg000:2540                 push    ax
seg000:2541                 mov     al, 24
seg000:2543                 imul    ds:cur_disk
seg000:2547                 add     ax, [bp+unsigned_i]
seg000:254A                 mov     cx, 46
seg000:254D                 mul     cx
seg000:254F                 add     ax, offset ext_table_vol_label
seg000:2552                 push    ax
seg000:2553                 call    strcpy
seg000:2556                 pop     bx
seg000:2557                 pop     bx
seg000:2558                 inc     [bp+unsigned_i]
seg000:255B                 cmp     [bp+unsigned_i], 24
seg000:255F                 jnb     short ipt_15
seg000:2561                 jmp     ipt_14
seg000:2564 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2564
seg000:2564 ipt_15:                                 ; CODE XREF: init_partition_tables+3CAj
seg000:2564                 mov     al, 5
seg000:2566                 push    ax
seg000:2567                 call    find_partition_location
seg000:256A                 pop     bx
seg000:256B                 cbw
seg000:256C                 mov     cl, [bp+char_j]
seg000:256F                 sub     ch, ch
seg000:2571                 shl     cx, 1
seg000:2573                 shl     cx, 1
seg000:2575                 add     ax, cx
seg000:2577                 mov     cx, 46
seg000:257A                 imul    cx
seg000:257C                 mov     bx, ax
seg000:257E                 mov     ax, ds:part_table_start_cyl[bx]
seg000:2582                 mov     [bp+partition_location], ax
seg000:2585                 mov     [bp+more_drives_exist], 1
seg000:2589                 mov     [bp+num_logical_drives], 0
seg000:258D
seg000:258D ipt_while_more_drives_exist:            ; CODE XREF: init_partition_tables+2B4j
seg000:258D                                         ; init_partition_tables+2FAj ...
seg000:258D                 cmp     [bp+more_drives_exist], 0
seg000:2591                 jnz     short ipt_in_while
seg000:2593                 jmp     ipt_while_end
seg000:2596 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2596
seg000:2596 ipt_in_while:                           ; CODE XREF: init_partition_tables+3FCj
seg000:2596                 mov     [bp+more_drives_exist], 0
seg000:259A                 mov     al, 1
seg000:259C                 push    ax
seg000:259D                 sub     al, al
seg000:259F                 push    ax
seg000:25A0                 mov     al, [bp+char_j]
seg000:25A3                 push    ax
seg000:25A4                 push    [bp+partition_location]
seg000:25A7                 call    read_boot_record
seg000:25AA                 add     sp, 8
seg000:25AD                 or      al, al
seg000:25AF                 jz      short ipt_while_more_drives_exist
seg000:25B1                 mov     al, [bp+char_j]
seg000:25B4                 push    ax
seg000:25B5                 mov     al, [bp+num_logical_drives]
seg000:25B8                 push    ax
seg000:25B9                 call    load_logical_drive
seg000:25BC                 pop     bx
seg000:25BD                 pop     bx
seg000:25BE
seg000:25BE ipt_in_while_for:
seg000:25BE                 mov     [bp+unsigned_i], 0
seg000:25C3                 jmp     ipt_in_while_for_1
seg000:25C6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:25C6
seg000:25C6 ipt_16:                                 ; CODE XREF: init_partition_tables+30Fj
seg000:25C6                 mov     [bp+char_j], 0
seg000:25CA                 jmp     short ipt_22
seg000:25CC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:25CC
seg000:25CC ipt_17:                                 ; CODE XREF: init_partition_tables+466j
seg000:25CC                                         ; init_partition_tables+47Dj ...
seg000:25CC                 inc     [bp+unsigned_i]
seg000:25CF
seg000:25CF ipt_18:                                 ; CODE XREF: init_partition_tables+51Bj
seg000:25CF                 cmp     [bp+unsigned_i], 4
seg000:25D3                 jnb     short ipt_21
seg000:25D5
seg000:25D5 ipt_19:
seg000:25D5                 mov     al, [bp+char_j]
seg000:25D8                 sub     ah, ah
seg000:25DA                 shl     ax, 1
seg000:25DC                 shl     ax, 1
seg000:25DE                 add     ax, [bp+unsigned_i]
seg000:25E1                 mov     cx, 46
seg000:25E4                 mul     cx
seg000:25E6                 mov     bx, ax
seg000:25E8                 cmp     ds:part_table_sys_id[bx], 1
seg000:25ED                 jz      short ipt_20
seg000:25EF                 cmp     ds:part_table_sys_id[bx], 4
seg000:25F4                 jz      short ipt_20
seg000:25F6                 cmp     ds:part_table_sys_id[bx], 6
seg000:25FB                 jnz     short ipt_17
seg000:25FD
seg000:25FD ipt_20:                                 ; CODE XREF: init_partition_tables+458j
seg000:25FD                                         ; init_partition_tables+45Fj
seg000:25FD                 mov     al, [bp+char_j]
seg000:2600                 sub     ah, ah
seg000:2602                 shl     ax, 1
seg000:2604                 shl     ax, 1
seg000:2606                 add     ax, [bp+unsigned_i]
seg000:2609                 mul     cx
seg000:260B                 mov     bx, ax
seg000:260D                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:2612                 jz      short ipt_17
seg000:2614                 cmp     ds:part_table_drive_letter[bx], ' '
seg000:2619                 jnz     short ipt_17
seg000:261B                 mov     al, ds:next_letter
seg000:261E                 inc     ds:next_letter
seg000:2622                 mov     ds:part_table_drive_letter[bx], al
seg000:2626                 push    [bp+unsigned_i]
seg000:2629                 mov     al, [bp+char_j]
seg000:262C                 push    ax
seg000:262D                 call    get_volume
seg000:2630                 pop     bx
seg000:2631                 pop     bx
seg000:2632                 jmp     short ipt_17
seg000:2634 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2634
seg000:2634 ipt_21:                                 ; CODE XREF: init_partition_tables+43Ej
seg000:2634                 inc     [bp+char_j]
seg000:2637
seg000:2637 ipt_22:                                 ; CODE XREF: init_partition_tables+435j
seg000:2637                 mov     al, [bp+char_j]
seg000:263A                 cmp     ds:number_of_drives, al
seg000:263E                 jbe     short ipt_26
seg000:2640                 mov     [bp+unsigned_i], 0
seg000:2645
seg000:2645 ipt_23:                                 ; CODE XREF: init_partition_tables+514j
seg000:2645                 mov     al, [bp+char_j]
seg000:2648                 sub     ah, ah
seg000:264A                 shl     ax, 1
seg000:264C                 shl     ax, 1
seg000:264E                 add     ax, [bp+unsigned_i]
seg000:2651                 mov     cx, 46
seg000:2654                 mul     cx
seg000:2656                 mov     bx, ax
seg000:2658                 cmp     ds:part_table_sys_id[bx], 1
seg000:265D                 jz      short ipt_24
seg000:265F                 cmp     ds:part_table_sys_id[bx], 4
seg000:2664                 jz      short ipt_24
seg000:2666                 cmp     ds:part_table_sys_id[bx], 6
seg000:266B                 jnz     short ipt_25
seg000:266D
seg000:266D ipt_24:                                 ; CODE XREF: init_partition_tables+4C8j
seg000:266D                                         ; init_partition_tables+4CFj
seg000:266D                 mov     al, [bp+char_j]
seg000:2670                 sub     ah, ah
seg000:2672                 shl     ax, 1
seg000:2674                 shl     ax, 1
seg000:2676                 add     ax, [bp+unsigned_i]
seg000:2679                 mul     cx
seg000:267B                 mov     bx, ax
seg000:267D                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:2682                 jnz     short ipt_25
seg000:2684                 cmp     ds:part_table_drive_letter[bx], ' '
seg000:2689                 jnz     short ipt_25
seg000:268B                 mov     al, ds:next_letter
seg000:268E                 inc     ds:next_letter
seg000:2692                 mov     ds:part_table_drive_letter[bx], al
seg000:2696                 push    [bp+unsigned_i]
seg000:2699                 mov     al, [bp+char_j]
seg000:269C                 push    ax
seg000:269D                 call    get_volume
seg000:26A0                 pop     bx
seg000:26A1                 pop     bx
seg000:26A2
seg000:26A2 ipt_25:                                 ; CODE XREF: init_partition_tables+4D6j
seg000:26A2                                         ; init_partition_tables+4EDj ...
seg000:26A2                 inc     [bp+unsigned_i]
seg000:26A5                 cmp     [bp+unsigned_i], 4
seg000:26A9                 jb      short ipt_23
seg000:26AB                 mov     [bp+unsigned_i], 0
seg000:26B0                 jmp     ipt_18
seg000:26B3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:26B3
seg000:26B3 ipt_26:                                 ; CODE XREF: init_partition_tables+37j
seg000:26B3                                         ; init_partition_tables+4A9j
seg000:26B3                 pop     si
seg000:26B4                 pop     di
seg000:26B5                 mov     sp, bp
seg000:26B7                 pop     bp
seg000:26B8                 retn
seg000:26B8 init_partition_tables endp
seg000:26B8
seg000:26B9
seg000:26B9 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:26B9
seg000:26B9 ; Attributes: bp-based frame
seg000:26B9
seg000:26B9 get_volume      proc near               ; CODE XREF: init_partition_tables+291p
seg000:26B9                                         ; init_partition_tables+498p ...
seg000:26B9
seg000:26B9 _k_             = word ptr -12h
seg000:26B9 vol_label       = word ptr -10h
seg000:26B9 _length_        = word ptr -2
seg000:26B9 j_disk          = byte ptr  4
seg000:26B9 i_partition     = word ptr  6
seg000:26B9
seg000:26B9                 push    bp
seg000:26BA                 mov     bp, sp
seg000:26BC                 sub     sp, 18
seg000:26BF                 push    si
seg000:26C0                 mov     al, [bp+j_disk]
seg000:26C3                 sub     ah, ah
seg000:26C5                 shl     ax, 1
seg000:26C7                 shl     ax, 1
seg000:26C9                 add     ax, [bp+i_partition]
seg000:26CC                 mov     cx, 46
seg000:26CF                 mul     cx
seg000:26D1                 mov     bx, ax
seg000:26D3                 mov     al, ds:part_table_drive_letter[bx]
seg000:26D7                 push    ax
seg000:26D8                 call    check_format
seg000:26DB                 pop     bx
seg000:26DC                 dec     al
seg000:26DE                 jz      short gv_1
seg000:26E0                 jmp     gv_11
seg000:26E3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:26E3
seg000:26E3 gv_1:                                   ; CODE XREF: get_volume+25j
seg000:26E3                 mov     [bp+_k_], 0
seg000:26E8
seg000:26E8 gv_2:                                   ; CODE XREF: get_volume+51j
seg000:26E8                 mov     al, [bp+j_disk]
seg000:26EB                 sub     ah, ah
seg000:26ED                 shl     ax, 1
seg000:26EF                 shl     ax, 1
seg000:26F1                 add     ax, [bp+i_partition]
seg000:26F4                 mov     cx, 46
seg000:26F7                 mul     cx
seg000:26F9                 mov     si, ax
seg000:26FB                 mov     bx, [bp+_k_]
seg000:26FE                 mov     ds:part_table_vol_label[bx+si], 0
seg000:2703                 inc     [bp+_k_]
seg000:2706                 cmp     [bp+_k_], 12
seg000:270A                 jb      short gv_2
seg000:270C                 mov     [bp+_k_], 0
seg000:2711
seg000:2711 gv_3:                                   ; CODE XREF: get_volume+77j
seg000:2711                 mov     al, [bp+j_disk]
seg000:2714                 sub     ah, ah
seg000:2716                 shl     ax, 1
seg000:2718                 shl     ax, 1
seg000:271A                 add     ax, [bp+i_partition]
seg000:271D                 mul     cx
seg000:271F                 mov     si, ax
seg000:2721                 mov     bx, [bp+_k_]
seg000:2724                 mov     ds:part_table_system[bx+si], 0
seg000:2729                 inc     [bp+_k_]
seg000:272C                 cmp     [bp+_k_], 9
seg000:2730                 jb      short gv_3
seg000:2732                 lea     ax, [bp+vol_label]
seg000:2735                 push    ax
seg000:2736                 mov     al, [bp+j_disk]
seg000:2739                 sub     ah, ah
seg000:273B                 shl     ax, 1
seg000:273D                 shl     ax, 1
seg000:273F                 add     ax, [bp+i_partition]
seg000:2742                 mov     cx, 46
seg000:2745                 mul     cx
seg000:2747                 mov     bx, ax
seg000:2749                 mov     al, ds:part_table_drive_letter[bx]
seg000:274D                 push    ax
seg000:274E                 call    get_volume_string
seg000:2751                 pop     bx
seg000:2752                 pop     bx
seg000:2753                 mov     [bp+_k_], 0
seg000:2758                 jmp     short gv_5
seg000:275A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:275A
seg000:275A gv_4:                                   ; CODE XREF: get_volume+CEj
seg000:275A                 mov     si, [bp+_k_]
seg000:275D                 mov     al, byte ptr [bp+si+vol_label]
seg000:2760                 mov     cx, ax
seg000:2762                 mov     al, [bp+j_disk]
seg000:2765                 sub     ah, ah
seg000:2767                 shl     ax, 1
seg000:2769                 shl     ax, 1
seg000:276B                 add     ax, [bp+i_partition]
seg000:276E                 mov     bx, 46
seg000:2771                 mul     bx
seg000:2773                 mov     bx, ax
seg000:2775                 mov     ds:part_table_vol_label[bx+si], cl
seg000:2779                 inc     [bp+_k_]
seg000:277C
seg000:277C gv_5:                                   ; CODE XREF: get_volume+9Fj
seg000:277C                 lea     ax, [bp+vol_label]
seg000:277F                 push    ax
seg000:2780                 call    strlen
seg000:2783                 pop     bx
seg000:2784                 cmp     ax, [bp+_k_]
seg000:2787                 ja      short gv_4
seg000:2789                 mov     al, [bp+j_disk]
seg000:278C                 sub     ah, ah
seg000:278E                 shl     ax, 1
seg000:2790                 shl     ax, 1
seg000:2792                 add     ax, [bp+i_partition]
seg000:2795                 mov     cx, 46
seg000:2798                 mul     cx
seg000:279A                 mov     bx, ax
seg000:279C                 mov     al, ds:part_table_drive_letter[bx]
seg000:27A0                 push    ax
seg000:27A1                 call    get_fs_and_vol
seg000:27A4                 pop     bx
seg000:27A5                 or      al, al
seg000:27A7                 jz      short gv_8
seg000:27A9                 mov     [bp+_k_], 0
seg000:27AE
seg000:27AE gv_6:                                   ; CODE XREF: get_volume+10Cj
seg000:27AE                 mov     bx, [bp+_k_]
seg000:27B1                 cmp     ds:dx_buff_file_system[bx], ' '
seg000:27B6                 jz      short gv_7
seg000:27B8                 lea     ax, [bx+1]
seg000:27BB                 mov     [bp+_length_], ax
seg000:27BE
seg000:27BE gv_7:                                   ; CODE XREF: get_volume+FDj
seg000:27BE                 inc     [bp+_k_]
seg000:27C1                 cmp     [bp+_k_], 8
seg000:27C5                 jb      short gv_6
seg000:27C7                 push    [bp+_length_]
seg000:27CA                 mov     ax, offset dx_buff_file_system
seg000:27CD                 push    ax
seg000:27CE                 mov     al, [bp+j_disk]
seg000:27D1                 sub     ah, ah
seg000:27D3                 shl     ax, 1
seg000:27D5                 shl     ax, 1
seg000:27D7                 add     ax, [bp+i_partition]
seg000:27DA                 mov     cx, 46
seg000:27DD                 mul     cx
seg000:27DF                 add     ax, offset part_table_system
seg000:27E2                 push    ax
seg000:27E3                 call    strncpy
seg000:27E6                 add     sp, 6
seg000:27E9                 jmp     short gv_13
seg000:27EB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:27EB
seg000:27EB gv_8:                                   ; CODE XREF: get_volume+EEj
seg000:27EB                 mov     al, [bp+j_disk]
seg000:27EE                 sub     ah, ah
seg000:27F0                 shl     ax, 1
seg000:27F2                 shl     ax, 1
seg000:27F4                 add     ax, [bp+i_partition]
seg000:27F7                 mov     cx, 46
seg000:27FA                 mul     cx
seg000:27FC                 mov     bx, ax
seg000:27FE                 cmp     ds:part_table_num_sec_hw[bx], 0
seg000:2803                 jnz     short gv_9
seg000:2805                 cmp     ds:part_table_num_sec_lw[bx], 32680
seg000:280B                 jbe     short gv_10
seg000:280D
seg000:280D gv_9:                                   ; CODE XREF: get_volume+14Aj
seg000:280D                 mov     ax, offset FAT16 ; "FAT16   "
seg000:2810                 push    ax
seg000:2811                 add     bx, offset part_table_system
seg000:2815                 push    bx
seg000:2816                 jmp     short gv_12
seg000:2818 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2818
seg000:2818 gv_10:                                  ; CODE XREF: get_volume+152j
seg000:2818                 mov     ax, offset FAT12 ; "FAT12   "
seg000:281B                 push    ax
seg000:281C                 mov     al, [bp+j_disk]
seg000:281F                 sub     ah, ah
seg000:2821                 shl     ax, 1
seg000:2823                 shl     ax, 1
seg000:2825                 add     ax, [bp+i_partition]
seg000:2828                 mul     cx
seg000:282A                 add     ax, offset part_table_system
seg000:282D                 push    ax
seg000:282E                 jmp     short gv_12
seg000:2830 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2830
seg000:2830 gv_11:                                  ; CODE XREF: get_volume+27j
seg000:2830                 mov     ax, offset NOVOLUME
seg000:2833                 push    ax
seg000:2834                 mov     al, [bp+j_disk]
seg000:2837                 sub     ah, ah
seg000:2839                 shl     ax, 1
seg000:283B                 shl     ax, 1
seg000:283D                 add     ax, [bp+i_partition]
seg000:2840                 mov     cx, 46
seg000:2843                 mul     cx
seg000:2845                 mov     cx, ax
seg000:2847                 add     ax, offset part_table_vol_label
seg000:284A                 push    ax
seg000:284B                 mov     si, cx
seg000:284D                 call    strcpy
seg000:2850                 pop     bx
seg000:2851                 pop     bx
seg000:2852                 mov     ax, offset UNKNOWN ; "UNKNOWN "
seg000:2855                 push    ax
seg000:2856                 add     si, offset part_table_system
seg000:285A                 push    si
seg000:285B
seg000:285B gv_12:                                  ; CODE XREF: get_volume+15Dj
seg000:285B                                         ; get_volume+175j
seg000:285B                 call    strcpy
seg000:285E                 pop     bx
seg000:285F                 pop     bx
seg000:2860
seg000:2860 gv_13:                                  ; CODE XREF: get_volume+130j
seg000:2860                 pop     si
seg000:2861                 mov     sp, bp
seg000:2863                 pop     bp
seg000:2864                 retn
seg000:2864 get_volume      endp
seg000:2864
seg000:2865
seg000:2865 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:2865
seg000:2865 ; Attributes: bp-based frame
seg000:2865
seg000:2865 load_logical_drive proc near            ; CODE XREF: init_partition_tables+424p
seg000:2865
seg000:2865 tempnumsec_lw   = word ptr -22h
seg000:2865 tempnumsec_hw   = word ptr -20h
seg000:2865 temprelsec_lw   = word ptr -1Eh
seg000:2865 temprelsec_hw   = word ptr -1Ch
seg000:2865 _int_k          = word ptr -1Ah
seg000:2865 _int_i          = word ptr -18h
seg000:2865 _int_index_     = word ptr -16h
seg000:2865 _char_vol_label_= word ptr -14h
seg000:2865 ext_part_num    = word ptr -6
seg000:2865 _int_length_    = word ptr -4
seg000:2865 _partition_location_= word ptr -2
seg000:2865 _point_         = byte ptr  4
seg000:2865 _drive_         = byte ptr  6
seg000:2865
seg000:2865                 push    bp
seg000:2866                 mov     bp, sp
seg000:2868                 sub     sp, 34
seg000:286B                 push    di
seg000:286C                 push    si
seg000:286D                 cmp     ds:boot_record+1FEh, 55h
seg000:2872                 jnz     short lld_1
seg000:2874                 cmp     ds:boot_record+1FFh, 0AAh
seg000:2879                 jz      short lld_for1
seg000:287B
seg000:287B lld_1:                                  ; CODE XREF: load_logical_drive+Dj
seg000:287B                 jmp     lld_17
seg000:287E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:287E
seg000:287E lld_for1:                               ; CODE XREF: load_logical_drive+14j
seg000:287E                 mov     [bp+_int_i], 0
seg000:2883                 jmp     lld_for1_1
seg000:2886 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2886
seg000:2886 lld_2:                                  ; CODE XREF: load_logical_drive+45Fj
seg000:2886                 mov     al, [bp+_point_]
seg000:2889                 cbw
seg000:288A                 mov     cx, ax
seg000:288C                 mov     al, 24
seg000:288E                 mul     [bp+_drive_]
seg000:2891                 add     ax, cx
seg000:2893                 mov     cx, 46
seg000:2896                 imul    cx
seg000:2898                 mov     bx, ax
seg000:289A                 mov     ds:ext_table_drive_letter[bx], ' '
seg000:289F
seg000:289F lld_3:                                  ; CODE XREF: load_logical_drive+481j
seg000:289F                 mov     al, [bp+_point_]
seg000:28A2                 cbw
seg000:28A3                 mov     cx, ax
seg000:28A5                 mov     al, 24
seg000:28A7                 mul     [bp+_drive_]
seg000:28AA                 add     ax, cx
seg000:28AC                 mov     cx, 46
seg000:28AF                 imul    cx
seg000:28B1                 mov     bx, ax
seg000:28B3                 mov     ax, ds:ext_table_start_cyl[bx]
seg000:28B7                 mov     [bp+_partition_location_], ax
seg000:28BA                 mov     cl, ds:ext_table_start_sector[bx]
seg000:28BE                 push    cx
seg000:28BF                 mov     cl, ds:ext_table_start_head[bx]
seg000:28C3                 push    cx
seg000:28C4                 mov     cl, [bp+_drive_]
seg000:28C7                 push    cx
seg000:28C8                 push    ax
seg000:28C9                 call    read_boot_record
seg000:28CC                 add     sp, 8
seg000:28CF
seg000:28CF lld_for1_if_chk_format:
seg000:28CF                 mov     al, [bp+_point_]
seg000:28D2                 cbw
seg000:28D3                 mov     cx, ax
seg000:28D5                 mov     al, 24
seg000:28D7                 mul     [bp+_drive_]
seg000:28DA                 add     ax, cx
seg000:28DC                 mov     cx, 46
seg000:28DF                 imul    cx
seg000:28E1                 mov     bx, ax
seg000:28E3                 mov     al, ds:ext_table_drive_letter[bx]
seg000:28E7                 push    ax
seg000:28E8                 call    check_format
seg000:28EB                 pop     bx
seg000:28EC                 dec     al
seg000:28EE                 jz      short lld_for1_if_chk_format_true
seg000:28F0                 jmp     lld_for1_if_chk_format_false
seg000:28F3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:28F3
seg000:28F3 lld_for1_if_chk_format_true:            ; CODE XREF: load_logical_drive+89j
seg000:28F3                 mov     [bp+_int_k], 0
seg000:28F8
seg000:28F8 lld_4:                                  ; CODE XREF: load_logical_drive+B6j
seg000:28F8                 mov     al, [bp+_point_]
seg000:28FB                 cbw
seg000:28FC                 mov     cx, ax
seg000:28FE                 mov     al, 24
seg000:2900                 mul     [bp+_drive_]
seg000:2903                 add     ax, cx
seg000:2905                 mov     cx, 46
seg000:2908                 mul     cx
seg000:290A                 mov     si, ax
seg000:290C                 mov     bx, [bp+_int_k]
seg000:290F                 mov     ds:ext_table_vol_label[bx+si], 0
seg000:2914                 inc     [bp+_int_k]
seg000:2917                 cmp     [bp+_int_k], 12
seg000:291B                 jb      short lld_4
seg000:291D                 mov     [bp+_int_k], 0
seg000:2922
seg000:2922 lld_5:                                  ; CODE XREF: load_logical_drive+E0j
seg000:2922                 mov     al, [bp+_point_]
seg000:2925                 cbw
seg000:2926                 mov     cx, ax
seg000:2928                 mov     al, 24
seg000:292A                 mul     [bp+_drive_]
seg000:292D                 add     ax, cx
seg000:292F                 mov     cx, 46
seg000:2932                 mul     cx
seg000:2934                 mov     si, ax
seg000:2936                 mov     bx, [bp+_int_k]
seg000:2939                 mov     ds:ext_table_system[bx+si], 0
seg000:293E                 inc     [bp+_int_k]
seg000:2941                 cmp     [bp+_int_k], 9
seg000:2945                 jb      short lld_5
seg000:2947                 lea     ax, [bp+_char_vol_label_]
seg000:294A                 push    ax
seg000:294B                 mov     al, [bp+_point_]
seg000:294E                 cbw
seg000:294F                 mov     cx, ax
seg000:2951                 mov     al, 24
seg000:2953                 mul     [bp+_drive_]
seg000:2956                 add     ax, cx
seg000:2958                 mov     cx, 46
seg000:295B                 imul    cx
seg000:295D                 mov     bx, ax
seg000:295F                 mov     al, ds:ext_table_drive_letter[bx]
seg000:2963                 push    ax
seg000:2964                 call    get_volume_string
seg000:2967                 pop     bx
seg000:2968                 pop     bx
seg000:2969                 mov     [bp+_int_k], 0
seg000:296E                 jmp     short lld_7
seg000:2970 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2970
seg000:2970 lld_6:                                  ; CODE XREF: load_logical_drive+139j
seg000:2970                 mov     si, [bp+_int_k]
seg000:2973                 mov     al, byte ptr [bp+si+_char_vol_label_]
seg000:2976                 mov     cx, ax
seg000:2978                 mov     al, [bp+_point_]
seg000:297B                 cbw
seg000:297C                 mov     dx, ax
seg000:297E                 mov     al, 24
seg000:2980                 mul     [bp+_drive_]
seg000:2983                 add     ax, dx
seg000:2985                 mov     bx, 46
seg000:2988                 mul     bx
seg000:298A                 mov     bx, ax
seg000:298C                 mov     ds:ext_table_vol_label[bx+si], cl
seg000:2990                 inc     [bp+_int_k]
seg000:2993
seg000:2993 lld_7:                                  ; CODE XREF: load_logical_drive+109j
seg000:2993                 lea     ax, [bp+_char_vol_label_]
seg000:2996                 push    ax
seg000:2997                 call    strlen
seg000:299A                 pop     bx
seg000:299B                 cmp     ax, [bp+_int_k]
seg000:299E                 ja      short lld_6
seg000:29A0                 mov     al, [bp+_point_]
seg000:29A3                 cbw
seg000:29A4                 mov     cx, ax
seg000:29A6                 mov     al, 24
seg000:29A8                 mul     [bp+_drive_]
seg000:29AB                 add     ax, cx
seg000:29AD                 mov     cx, 46
seg000:29B0                 imul    cx
seg000:29B2                 mov     bx, ax
seg000:29B4                 mov     al, ds:ext_table_drive_letter[bx]
seg000:29B8                 push    ax
seg000:29B9                 call    get_fs_and_vol
seg000:29BC                 pop     bx
seg000:29BD                 or      al, al
seg000:29BF                 jz      short lld_10
seg000:29C1                 mov     [bp+_int_k], 0
seg000:29C6
seg000:29C6 lld_8:                                  ; CODE XREF: load_logical_drive+178j
seg000:29C6                 mov     bx, [bp+_int_k]
seg000:29C9                 cmp     ds:dx_buff_file_system[bx], ' '
seg000:29CE                 jz      short lld_9
seg000:29D0                 lea     ax, [bx+1]
seg000:29D3                 mov     [bp+_int_length_], ax
seg000:29D6
seg000:29D6 lld_9:                                  ; CODE XREF: load_logical_drive+169j
seg000:29D6                 inc     [bp+_int_k]
seg000:29D9                 cmp     [bp+_int_k], 8
seg000:29DD                 jb      short lld_8
seg000:29DF                 push    [bp+_int_length_]
seg000:29E2                 mov     ax, offset dx_buff_file_system
seg000:29E5                 push    ax
seg000:29E6                 mov     al, [bp+_point_]
seg000:29E9                 cbw
seg000:29EA                 mov     cx, ax
seg000:29EC                 mov     al, 24
seg000:29EE                 mul     [bp+_drive_]
seg000:29F1                 add     ax, cx
seg000:29F3                 mov     cx, 46
seg000:29F6                 imul    cx
seg000:29F8                 add     ax, offset ext_table_system
seg000:29FB                 push    ax
seg000:29FC                 call    strncpy
seg000:29FF                 add     sp, 6
seg000:2A02                 jmp     short lld_14
seg000:2A04 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2A04
seg000:2A04 lld_10:                                 ; CODE XREF: load_logical_drive+15Aj
seg000:2A04                 mov     al, [bp+_point_]
seg000:2A07                 cbw
seg000:2A08                 mov     cx, ax
seg000:2A0A                 mov     al, 24
seg000:2A0C                 mul     [bp+_drive_]
seg000:2A0F                 add     ax, cx
seg000:2A11                 mov     cx, 46
seg000:2A14                 imul    cx
seg000:2A16                 mov     bx, ax
seg000:2A18                 cmp     ds:ext_table_num_sec_hw[bx], 0
seg000:2A1D                 jnz     short lld_11
seg000:2A1F                 cmp     ds:ext_table_num_sec_lw[bx], 32680
seg000:2A25                 jbe     short lld_12
seg000:2A27
seg000:2A27 lld_11:                                 ; CODE XREF: load_logical_drive+1B8j
seg000:2A27                 mov     ax, offset extFAT16 ; "FAT16   "
seg000:2A2A                 push    ax
seg000:2A2B                 add     bx, offset ext_table_system
seg000:2A2F                 push    bx
seg000:2A30                 jmp     short lld_13
seg000:2A32 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2A32
seg000:2A32 lld_12:                                 ; CODE XREF: load_logical_drive+1C0j
seg000:2A32                 mov     ax, offset extFAT12 ; "FAT12   "
seg000:2A35                 push    ax
seg000:2A36                 mov     al, [bp+_point_]
seg000:2A39                 cbw
seg000:2A3A                 mov     cx, ax
seg000:2A3C                 mov     al, 24
seg000:2A3E                 mul     [bp+_drive_]
seg000:2A41                 add     ax, cx
seg000:2A43                 mov     cx, 46
seg000:2A46                 imul    cx
seg000:2A48                 add     ax, offset ext_table_system
seg000:2A4B                 push    ax
seg000:2A4C                 jmp     short lld_13
seg000:2A4E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2A4E
seg000:2A4E lld_for1_if_chk_format_false:           ; CODE XREF: load_logical_drive+8Bj
seg000:2A4E                 mov     ax, offset extNOVOLUME
seg000:2A51                 push    ax
seg000:2A52                 mov     al, [bp+_point_]
seg000:2A55                 cbw
seg000:2A56                 mov     cx, ax
seg000:2A58                 mov     al, 24
seg000:2A5A                 mul     [bp+_drive_]
seg000:2A5D                 add     ax, cx
seg000:2A5F                 mov     cx, 46
seg000:2A62                 imul    cx
seg000:2A64                 mov     cx, ax
seg000:2A66                 add     ax, offset ext_table_vol_label
seg000:2A69                 push    ax
seg000:2A6A                 mov     si, cx
seg000:2A6C                 call    strcpy
seg000:2A6F                 pop     bx
seg000:2A70                 pop     bx
seg000:2A71                 mov     ax, offset extUNKNOWN ; "UNKNOWN "
seg000:2A74                 push    ax
seg000:2A75                 add     si, offset ext_table_system
seg000:2A79                 push    si
seg000:2A7A
seg000:2A7A lld_13:                                 ; CODE XREF: load_logical_drive+1CBj
seg000:2A7A                                         ; load_logical_drive+1E7j
seg000:2A7A                 call    strcpy
seg000:2A7D                 pop     bx
seg000:2A7E                 pop     bx
seg000:2A7F
seg000:2A7F lld_14:                                 ; CODE XREF: load_logical_drive+19Dj
seg000:2A7F                 mov     ds:regs_x_dx, 0
seg000:2A85                 mov     ds:regs_x_ax, 4409h
seg000:2A8B                 mov     al, [bp+_point_]
seg000:2A8E                 cbw
seg000:2A8F                 mov     cx, ax
seg000:2A91                 mov     al, 24
seg000:2A93                 mul     [bp+_drive_]
seg000:2A96                 add     ax, cx
seg000:2A98                 mov     cx, 46
seg000:2A9B                 imul    cx
seg000:2A9D                 mov     bx, ax
seg000:2A9F                 mov     al, ds:ext_table_drive_letter[bx]
seg000:2AA3                 sub     al, 40h
seg000:2AA5                 mov     byte ptr ds:regs_x_bx, al
seg000:2AA8                 mov     ax, offset regs_x_ax
seg000:2AAB                 push    ax
seg000:2AAC                 push    ax
seg000:2AAD                 mov     si, bx
seg000:2AAF                 call    intdos
seg000:2AB2                 pop     bx
seg000:2AB3                 pop     bx
seg000:2AB4                 test    byte ptr ds:regs_x_dx+1, 10h
seg000:2AB9                 jz      short lld_15
seg000:2ABB                 push    ds:REMOTE
seg000:2ABF                 add     si, offset ext_table_vol_label
seg000:2AC3                 push    si
seg000:2AC4                 call    strcpy
seg000:2AC7                 pop     bx
seg000:2AC8                 pop     bx
seg000:2AC9
seg000:2AC9 lld_15:                                 ; CODE XREF: load_logical_drive+254j
seg000:2AC9                 mov     al, 1
seg000:2ACB                 push    ax
seg000:2ACC                 sub     al, al
seg000:2ACE                 push    ax
seg000:2ACF                 mov     al, [bp+_drive_]
seg000:2AD2                 push    ax
seg000:2AD3                 mov     al, [bp+_point_]
seg000:2AD6                 cbw
seg000:2AD7                 mov     cx, ax
seg000:2AD9                 mov     al, 24
seg000:2ADB                 mul     [bp+_drive_]
seg000:2ADE                 add     ax, cx
seg000:2AE0                 mov     cx, 46
seg000:2AE3                 imul    cx
seg000:2AE5                 mov     bx, ax
seg000:2AE7                 push    ds:ext_table_start_cyl[bx]
seg000:2AEB                 call    read_boot_record
seg000:2AEE                 add     sp, 8
seg000:2AF1
seg000:2AF1 lld_for1_if_false:                      ; CODE XREF: load_logical_drive+2A7j
seg000:2AF1                                         ; load_logical_drive+2AEj
seg000:2AF1                 inc     [bp+_int_i]
seg000:2AF4
seg000:2AF4 lld_for1_1:                             ; CODE XREF: load_logical_drive+1Ej
seg000:2AF4                 cmp     [bp+_int_i], 4
seg000:2AF8                 jb      short lld_for1_next
seg000:2AFA                 jmp     lld_17
seg000:2AFD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2AFD
seg000:2AFD lld_for1_next:                          ; CODE XREF: load_logical_drive+293j
seg000:2AFD                 mov     cl, 4
seg000:2AFF                 mov     bx, [bp+_int_i]
seg000:2B02                 shl     bx, cl
seg000:2B04                 mov     [bp+_int_index_], bx
seg000:2B07
seg000:2B07 lld_for1_if:
seg000:2B07                 cmp     ds:(boot_record+1C2h)[bx], 0
seg000:2B0C                 jz      short lld_for1_if_false
seg000:2B0E                 cmp     ds:(boot_record+1C2h)[bx], 5
seg000:2B13                 jz      short lld_for1_if_false
seg000:2B15
seg000:2B15 lld_for1_if_true:
seg000:2B15                 mov     al, [bp+_point_]
seg000:2B18                 cbw
seg000:2B19                 mov     cx, 24
seg000:2B1C                 mov     dx, ax
seg000:2B1E                 mov     al, [bp+_drive_]
seg000:2B21                 sub     ah, ah
seg000:2B23                 mov     si, dx
seg000:2B25                 mov     di, 46
seg000:2B28                 mov     bx, ax
seg000:2B2A                 mul     cx
seg000:2B2C                 add     ax, si
seg000:2B2E                 imul    di
seg000:2B30                 mov     si, ax
seg000:2B32                 mov     di, [bp+_int_index_]
seg000:2B35                 mov     al, ds:(boot_record+1BEh)[di]
seg000:2B39                 mov     ds:ext_table_boot_ind[si], al
seg000:2B3D                 mov     al, ds:(boot_record+1BFh)[di]
seg000:2B41                 mov     ds:ext_table_start_head[si], al
seg000:2B45                 mov     al, ds:(boot_record+1C0h)[di]
seg000:2B49                 mov     cx, ax
seg000:2B4B                 and     al, 3Fh
seg000:2B4D                 mov     ds:ext_table_start_sector[si], al
seg000:2B51                 and     cx, 0C0h
seg000:2B55                 shl     cx, 1
seg000:2B57                 shl     cx, 1
seg000:2B59                 mov     al, ds:(boot_record+1C1h)[di]
seg000:2B5D                 sub     ah, ah
seg000:2B5F                 add     cx, ax
seg000:2B61                 mov     ds:ext_table_start_cyl[si], cx
seg000:2B65                 mov     al, ds:(boot_record+1C2h)[di]
seg000:2B69                 mov     ds:ext_table_sys_id[si], al
seg000:2B6D                 mov     al, ds:(boot_record+1C3h)[di]
seg000:2B71                 mov     ds:ext_table_end_head[si], al
seg000:2B75                 mov     al, ds:(boot_record+1C4h)[di]
seg000:2B79                 mov     cx, ax
seg000:2B7B                 and     al, 3Fh
seg000:2B7D                 mov     ds:ext_table_end_sector[si], al
seg000:2B81                 and     cx, 0C0h
seg000:2B85                 shl     cx, 1
seg000:2B87                 shl     cx, 1
seg000:2B89                 mov     al, ds:(boot_record+1C5h)[di]
seg000:2B8D                 add     cx, ax
seg000:2B8F                 mov     ds:ext_table_end_cyl[si], cx
seg000:2B93                 mov     al, ds:(boot_record+1C9h)[di]
seg000:2B97                 mov     ah, al
seg000:2B99                 sub     al, al
seg000:2B9B                 sub     cx, cx
seg000:2B9D                 mov     ds:ext_table_rel_sec_lw[si], cx
seg000:2BA1                 mov     ds:ext_table_rel_sec_hw[si], ax
seg000:2BA5                 mov     dl, ds:(boot_record+1C8h)[di]
seg000:2BA9                 sub     dh, dh
seg000:2BAB                 sub     di, di
seg000:2BAD                 add     cx, di
seg000:2BAF                 adc     ax, dx
seg000:2BB1                 mov     ds:ext_table_rel_sec_lw[si], cx
seg000:2BB5                 mov     ds:ext_table_rel_sec_hw[si], ax
seg000:2BB9                 mov     di, [bp+_int_index_]
seg000:2BBC                 mov     dx, ax
seg000:2BBE                 mov     al, ds:(boot_record+1C7h)[di]
seg000:2BC2                 sub     ah, ah
seg000:2BC4                 mov     di, dx
seg000:2BC6                 sub     dx, dx
seg000:2BC8                 mov     [bp+temprelsec_lw], cx
seg000:2BCB                 mov     [bp+temprelsec_hw], di
seg000:2BCE                 mov     cl, 8
seg000:2BD0                 mov     di, bx
seg000:2BD2                 call    shl32
seg000:2BD5                 add     ax, [bp+temprelsec_lw]
seg000:2BD8                 adc     dx, [bp+temprelsec_hw]
seg000:2BDB                 mov     ds:ext_table_rel_sec_lw[si], ax
seg000:2BDF                 mov     ds:ext_table_rel_sec_hw[si], dx
seg000:2BE3                 mov     bx, [bp+_int_index_]
seg000:2BE6                 mov     cl, ds:(boot_record+1C6h)[bx]
seg000:2BEA                 sub     ch, ch
seg000:2BEC                 add     ax, cx
seg000:2BEE                 adc     dx, 0
seg000:2BF1                 mov     ds:ext_table_rel_sec_lw[si], ax
seg000:2BF5                 mov     ds:ext_table_rel_sec_hw[si], dx
seg000:2BF9                 mov     al, ds:(boot_record+1CDh)[bx]
seg000:2BFD                 mov     ah, al
seg000:2BFF                 sub     al, al
seg000:2C01                 sub     cx, cx
seg000:2C03                 mov     ds:ext_table_num_sec_lw[si], cx
seg000:2C07                 mov     ds:ext_table_num_sec_hw[si], ax
seg000:2C0B                 mov     dl, ds:(boot_record+1CCh)[bx]
seg000:2C0F                 sub     dh, dh
seg000:2C11                 sub     bx, bx
seg000:2C13                 add     cx, bx
seg000:2C15                 adc     ax, dx
seg000:2C17                 mov     ds:ext_table_num_sec_lw[si], cx
seg000:2C1B                 mov     ds:ext_table_num_sec_hw[si], ax
seg000:2C1F                 mov     bx, [bp+_int_index_]
seg000:2C22                 mov     dx, ax
seg000:2C24                 mov     al, ds:(boot_record+1CBh)[bx]
seg000:2C28                 sub     ah, ah
seg000:2C2A                 mov     bx, dx
seg000:2C2C                 sub     dx, dx
seg000:2C2E                 mov     [bp+tempnumsec_lw], cx
seg000:2C31                 mov     [bp+tempnumsec_hw], bx
seg000:2C34                 mov     cl, 8
seg000:2C36                 call    shl32
seg000:2C39                 add     ax, [bp+tempnumsec_lw]
seg000:2C3C                 adc     dx, [bp+tempnumsec_hw]
seg000:2C3F                 mov     ds:ext_table_num_sec_lw[si], ax
seg000:2C43                 mov     ds:ext_table_num_sec_hw[si], dx
seg000:2C47                 mov     bx, [bp+_int_index_]
seg000:2C4A                 mov     cl, ds:(boot_record+1CAh)[bx]
seg000:2C4E                 sub     ch, ch
seg000:2C50                 add     ax, cx
seg000:2C52                 adc     dx, 0
seg000:2C55                 mov     ds:ext_table_num_sec_lw[si], ax
seg000:2C59                 mov     ds:ext_table_num_sec_hw[si], dx
seg000:2C5D                 mov     al, ds:cur_disk
seg000:2C60                 push    ax
seg000:2C61                 mov     ax, ds:ext_table_end_cyl[si]
seg000:2C65                 sub     ax, ds:ext_table_start_cyl[si]
seg000:2C69                 inc     ax
seg000:2C6A                 push    ax
seg000:2C6B                 call    cylinders_to_mbytes
seg000:2C6E                 pop     bx
seg000:2C6F                 pop     bx
seg000:2C70                 mov     ds:ext_table_mbytes_used[si], ax
seg000:2C74                 mov     al, 5
seg000:2C76                 push    ax
seg000:2C77                 call    find_partition_location
seg000:2C7A                 pop     bx
seg000:2C7B                 cbw
seg000:2C7C                 mov     [bp+ext_part_num], ax
seg000:2C7F                 mov     ax, di
seg000:2C81                 shl     ax, 1
seg000:2C83                 shl     ax, 1
seg000:2C85                 add     ax, [bp+ext_part_num]
seg000:2C88                 mov     cx, 46
seg000:2C8B                 mul     cx
seg000:2C8D                 mov     bx, ax
seg000:2C8F                 mov     ax, ds:part_table_end_cyl[bx]
seg000:2C93                 sub     ax, ds:part_table_start_cyl[bx]
seg000:2C97                 inc     ax
seg000:2C98                 push    ax
seg000:2C99                 mov     ax, ds:ext_table_end_cyl[si]
seg000:2C9D                 sub     ax, ds:ext_table_start_cyl[si]
seg000:2CA1                 inc     ax
seg000:2CA2                 push    ax
seg000:2CA3                 call    cylinders_to_percent
seg000:2CA6                 pop     bx
seg000:2CA7                 pop     bx
seg000:2CA8                 mov     ds:ext_table_percent_used[si], ax
seg000:2CAC                 mov     bx, [bp+_int_index_]
seg000:2CAF                 cmp     ds:(boot_record+1C2h)[bx], 1
seg000:2CB4                 jz      short lld_16
seg000:2CB6                 cmp     ds:(boot_record+1C2h)[bx], 4
seg000:2CBB                 jz      short lld_16
seg000:2CBD                 cmp     ds:(boot_record+1C2h)[bx], 6
seg000:2CC2                 jz      short lld_16
seg000:2CC4                 jmp     lld_2
seg000:2CC7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2CC7
seg000:2CC7 lld_16:                                 ; CODE XREF: load_logical_drive+44Fj
seg000:2CC7                                         ; load_logical_drive+456j ...
seg000:2CC7                 mov     al, [bp+_point_]
seg000:2CCA                 cbw
seg000:2CCB                 mov     cx, ax
seg000:2CCD                 mov     al, 24
seg000:2CCF                 mul     [bp+_drive_]
seg000:2CD2                 add     ax, cx
seg000:2CD4                 mov     cx, 46
seg000:2CD7                 imul    cx
seg000:2CD9                 mov     bx, ax
seg000:2CDB                 mov     al, ds:next_letter
seg000:2CDE                 inc     ds:next_letter
seg000:2CE2                 mov     ds:ext_table_drive_letter[bx], al
seg000:2CE6                 jmp     lld_3
seg000:2CE9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2CE9
seg000:2CE9 lld_17:                                 ; CODE XREF: load_logical_drive:lld_1j
seg000:2CE9                                         ; load_logical_drive+295j
seg000:2CE9                 pop     si
seg000:2CEA                 pop     di
seg000:2CEB                 mov     sp, bp
seg000:2CED                 pop     bp
seg000:2CEE                 retn
seg000:2CEE load_logical_drive endp
seg000:2CEE
seg000:2CEF
seg000:2CEF ; --------------- S U B R O U T I N E ---------------------------------------
seg000:2CEF
seg000:2CEF ; Attributes: bp-based frame
seg000:2CEF
seg000:2CEF reboot_system   proc near               ; CODE XREF: main+CFp
seg000:2CEF                                         ; dos_create_partition+1BEp
seg000:2CEF
seg000:2CEF r_boot_drive    = dword ptr -0Ch
seg000:2CEF r_boot_changed  = byte ptr -8
seg000:2CEF r_i             = byte ptr -6
seg000:2CEF r_j             = byte ptr -4
seg000:2CEF r_boot_letter   = byte ptr -2
seg000:2CEF
seg000:2CEF                 push    bp
seg000:2CF0                 mov     bp, sp
seg000:2CF2                 sub     sp, 12
seg000:2CF5                 mov     ax, 79
seg000:2CF8                 push    ax
seg000:2CF9                 mov     ax, 24
seg000:2CFC                 push    ax
seg000:2CFD                 sub     ax, ax
seg000:2CFF                 push    ax
seg000:2D00                 push    ax
seg000:2D01                 call    clear_screen
seg000:2D04                 add     sp, 8
seg000:2D07                 cmp     ds:quiet_flag, 0
seg000:2D0C                 jz      short rebootsys_0
seg000:2D0E                 jmp     rebootsys_8
seg000:2D11 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2D11
seg000:2D11 rebootsys_0:                            ; CODE XREF: reboot_system+1Dj
seg000:2D11                 mov     byte ptr ds:regs_x_ax+1, 52h
seg000:2D16                 mov     ax, offset segregs_es
seg000:2D19                 push    ax
seg000:2D1A                 mov     cx, offset regs_x_ax
seg000:2D1D                 push    cx
seg000:2D1E                 push    cx
seg000:2D1F                 call    intdosx
seg000:2D22                 add     sp, 6
seg000:2D25                 mov     ax, ds:segregs_es
seg000:2D28                 mov     word ptr [bp+r_boot_drive+2], ax
seg000:2D2B                 mov     ax, ds:regs_x_bx
seg000:2D2E                 add     ax, 67
seg000:2D31                 mov     word ptr [bp+r_boot_drive], ax
seg000:2D34                 les     bx, [bp+r_boot_drive]
seg000:2D37                 mov     al, es:[bx]
seg000:2D3A                 add     al, 40h
seg000:2D3C                 mov     [bp+r_boot_letter], al
seg000:2D3F                 cmp     al, 'A'
seg000:2D41                 jz      short rebootsys_6
seg000:2D43                 mov     [bp+r_boot_changed], 1
seg000:2D47                 mov     [bp+r_j], 0
seg000:2D4B                 jmp     short rebootsys_4
seg000:2D4D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2D4D
seg000:2D4D rebootsys_1:                            ; CODE XREF: reboot_system+85j
seg000:2D4D                                         ; reboot_system+8Ej
seg000:2D4D                 inc     [bp+r_i]
seg000:2D50
seg000:2D50 rebootsys_2:                            ; CODE XREF: reboot_system+A4j
seg000:2D50                 cmp     [bp+r_i], 4
seg000:2D54                 jge     short rebootsys_3
seg000:2D56                 mov     al, [bp+r_j]
seg000:2D59                 cbw
seg000:2D5A                 shl     ax, 1
seg000:2D5C                 shl     ax, 1
seg000:2D5E                 mov     cx, ax
seg000:2D60                 mov     al, [bp+r_i]
seg000:2D63                 cbw
seg000:2D64                 add     ax, cx
seg000:2D66                 mov     cx, 46
seg000:2D69                 imul    cx
seg000:2D6B                 mov     bx, ax
seg000:2D6D                 mov     al, [bp+r_boot_letter]
seg000:2D70                 cmp     ds:part_table_drive_letter[bx], al
seg000:2D74                 jnz     short rebootsys_1
seg000:2D76                 mov     al, ds:part_table_changed[bx]
seg000:2D7A                 mov     [bp+r_boot_changed], al
seg000:2D7D                 jmp     short rebootsys_1
seg000:2D7F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2D7F
seg000:2D7F rebootsys_3:                            ; CODE XREF: reboot_system+65j
seg000:2D7F                 inc     [bp+r_j]
seg000:2D82
seg000:2D82 rebootsys_4:                            ; CODE XREF: reboot_system+5Cj
seg000:2D82                 mov     al, [bp+r_j]
seg000:2D85                 cbw
seg000:2D86                 mov     cl, ds:number_of_drives
seg000:2D8A                 sub     ch, ch
seg000:2D8C                 cmp     ax, cx
seg000:2D8E                 jge     short rebootsys_5
seg000:2D90                 mov     [bp+r_i], ch
seg000:2D93                 jmp     short rebootsys_2
seg000:2D95 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2D95
seg000:2D95 rebootsys_5:                            ; CODE XREF: reboot_system+9Fj
seg000:2D95                 cmp     [bp+r_boot_changed], 0
seg000:2D99                 jnz     short rebootsys_6
seg000:2D9B                 push    ds:menu_60_segment
seg000:2D9F                 push    ds:menu_60_offset
seg000:2DA3                 jmp     short rebootsys_7
seg000:2DA5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2DA5
seg000:2DA5 rebootsys_6:                            ; CODE XREF: reboot_system+52j
seg000:2DA5                                         ; reboot_system+AAj
seg000:2DA5                 push    ds:menu_38_segment
seg000:2DA9                 push    ds:menu_38_offset
seg000:2DAD
seg000:2DAD rebootsys_7:                            ; CODE XREF: reboot_system+B4j
seg000:2DAD                 call    display
seg000:2DB0                 pop     bx
seg000:2DB1                 pop     bx
seg000:2DB2                 call    getch
seg000:2DB5                 call    reboot
seg000:2DB8                 jmp     short rebootsys_12
seg000:2DBA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2DBA
seg000:2DBA rebootsys_8:                            ; CODE XREF: reboot_system+1Fj
seg000:2DBA                 mov     ds:cur_disk, 0
seg000:2DBF                 call    reset_video_information
seg000:2DC2                 mov     al, 1
seg000:2DC4                 push    ax
seg000:2DC5                 call    find_partition_type
seg000:2DC8                 pop     bx
seg000:2DC9                 or      al, al
seg000:2DCB                 jnz     short rebootsys_9
seg000:2DCD                 mov     al, 4
seg000:2DCF                 push    ax
seg000:2DD0                 call    find_partition_type
seg000:2DD3                 pop     bx
seg000:2DD4                 or      al, al
seg000:2DD6                 jnz     short rebootsys_9
seg000:2DD8                 mov     al, 6
seg000:2DDA                 push    ax
seg000:2DDB                 call    find_partition_type
seg000:2DDE                 pop     bx
seg000:2DDF                 or      al, al
seg000:2DE1                 jz      short rebootsys_10
seg000:2DE3
seg000:2DE3 rebootsys_9:                            ; CODE XREF: reboot_system+DCj
seg000:2DE3                                         ; reboot_system+E7j
seg000:2DE3                 sub     ax, ax
seg000:2DE5                 jmp     short rebootsys_11
seg000:2DE7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2DE7
seg000:2DE7 rebootsys_10:                           ; CODE XREF: reboot_system+F2j
seg000:2DE7                 mov     ax, 1
seg000:2DEA
seg000:2DEA rebootsys_11:                           ; CODE XREF: reboot_system+F6j
seg000:2DEA                 push    ax
seg000:2DEB                 call    _exit
seg000:2DEE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2DEE                 pop     bx
seg000:2DEF
seg000:2DEF rebootsys_12:                           ; CODE XREF: reboot_system+C9j
seg000:2DEF                 mov     sp, bp
seg000:2DF1                 pop     bp
seg000:2DF2                 retn
seg000:2DF2 reboot_system   endp
seg000:2DF2
seg000:2DF3
seg000:2DF3 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:2DF3
seg000:2DF3
seg000:2DF3 internal_program_error proc near        ; CODE XREF: do_main_menu:case_DEFp
seg000:2DF3                                         ; delete_partition:dp_6p ...
seg000:2DF3                 push    ds:inter_err_seg
seg000:2DF7                 push    ds:inter_err_off
seg000:2DFB                 call    display
seg000:2DFE                 pop     bx
seg000:2DFF                 pop     bx
seg000:2E00                 sub     ax, ax
seg000:2E02                 push    ax
seg000:2E03                 push    ax
seg000:2E04                 call    DOSEXIT
seg000:2E09                 retn
seg000:2E09 internal_program_error endp
seg000:2E09
seg000:2E0A
seg000:2E0A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:2E0A
seg000:2E0A
seg000:2E0A reboot          proc near               ; CODE XREF: reboot_system+C6p
seg000:2E0A                 mov     ax, 40h
seg000:2E0D                 mov     ds, ax
seg000:2E0F                 assume ds:nothing
seg000:2E0F                 mov     word ptr ds:72h, 1234h
seg000:2E15                 mov     ax, 3515h
seg000:2E18                 int     21h             ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:2E18                                         ; AL = interrupt number
seg000:2E18                                         ; Return: ES:BX = value of interrupt vector
seg000:2E1A                 mov     ax, es
seg000:2E1C                 or      ax, bx
seg000:2E1E                 jz      short reboot_0
seg000:2E20                 mov     ax, 40h
seg000:2E23                 mov     ds, ax
seg000:2E25                 mov     byte ptr ds:17h, 0Ch
seg000:2E2A                 mov     ax, 4F53h
seg000:2E2D                 int     15h             ; OS HOOK - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)
seg000:2E2D                                         ; AL = scan code, CF set
seg000:2E2D                                         ; Return: CF set - AL = scan code
seg000:2E2D                                         ; CF clear - scan code should be ignored
seg000:2E2F
seg000:2E2F reboot_0:                               ; CODE XREF: reboot+14j
seg000:2E2F                 jmp     far ptr 0FFFFh:0
seg000:2E2F reboot          endp
seg000:2E2F
seg000:2E34
seg000:2E34 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:2E34
seg000:2E34 ; Attributes: bp-based frame
seg000:2E34
seg000:2E34 display         proc near               ; CODE XREF: do_main_menu:loc_3FFp
seg000:2E34                                         ; do_main_menu+8Fp ...
seg000:2E34
seg000:2E34 temp_off        = word ptr -10h
seg000:2E34 temp_seg        = word ptr -0Eh
seg000:2E34 col             = word ptr -0Ch
seg000:2E34 insert_count    = word ptr -0Ah
seg000:2E34 attribute_ptr   = word ptr -8
seg000:2E34 attribute_ptr_2 = word ptr -6
seg000:2E34 row             = word ptr -4
seg000:2E34 attribute       = word ptr -2
seg000:2E34 _s_             = byte ptr  4
seg000:2E34
seg000:2E34                 push    bp
seg000:2E35                 mov     bp, sp
seg000:2E37                 sub     sp, 18
seg000:2E3A                 lea     ax, [bp+attribute]
seg000:2E3D                 mov     [bp+attribute_ptr], ax
seg000:2E40                 mov     [bp+attribute_ptr_2], ss
seg000:2E43                 sub     ax, ax
seg000:2E45                 mov     [bp+row], ax
seg000:2E48                 mov     [bp+col], ax
seg000:2E4B                 mov     [bp+insert_count], ax
seg000:2E4E                 les     bx, dword ptr [bp+_s_]
seg000:2E51                 cmp     byte ptr es:[bx], 0
seg000:2E55                 jnz     short display_1
seg000:2E57                 mov     ds:insert, '1'
seg000:2E5C                 push    ds:debug_msg_seg
seg000:2E60                 push    ds:debug_msg_off
seg000:2E64                 call    display
seg000:2E67                 pop     bx
seg000:2E68                 pop     bx
seg000:2E69                 jmp     display_43
seg000:2E6C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2E6C
seg000:2E6C display_1:                              ; CODE XREF: display+21j
seg000:2E6C                 cmp     ds:status_flag, 1
seg000:2E71                 jnz     short display_2
seg000:2E73                 mov     al, ds:video_attribute
seg000:2E76                 mov     byte ptr [bp+attribute], al
seg000:2E79                 jmp     short display_3
seg000:2E7B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2E7B
seg000:2E7B display_2:                              ; CODE XREF: display+3Dj
seg000:2E7B                 mov     byte ptr [bp+attribute], 0
seg000:2E7F
seg000:2E7F display_3:                              ; CODE XREF: display+45j
seg000:2E7F                                         ; display+AAj ...
seg000:2E7F                 les     bx, dword ptr [bp+_s_]
seg000:2E82                 cmp     byte ptr es:[bx], 0
seg000:2E86                 jnz     short display_4
seg000:2E88                 jmp     display_43
seg000:2E8B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2E8B
seg000:2E8B display_4:                              ; CODE XREF: display+52j
seg000:2E8B                 mov     al, es:[bx]
seg000:2E8E                 cbw
seg000:2E8F                 sub     ax, 6
seg000:2E92                 jnz     short sc_default
seg000:2E94                 jmp     display_36
seg000:2E97 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2E97
seg000:2E97 sc_default:                             ; CODE XREF: display+5Ej
seg000:2E97                 sub     ax, '6'
seg000:2E9A                 jz      short display_7
seg000:2E9C                 cmp     ds:mono_flag, 0
seg000:2EA1                 jnz     short display_5
seg000:2EA3                 cmp     byte ptr [bp+attribute], 0
seg000:2EA7                 jnz     short display_5
seg000:2EA9                 mov     byte ptr [bp+attribute], 17h
seg000:2EAD
seg000:2EAD display_5:                              ; CODE XREF: display+6Dj
seg000:2EAD                                         ; display+73j
seg000:2EAD                 cmp     ds:mono_flag, 1
seg000:2EB2                 jnz     short display_6
seg000:2EB4                 cmp     byte ptr [bp+attribute], 0
seg000:2EB8                 jnz     short display_6
seg000:2EBA                 mov     byte ptr [bp+attribute], 7
seg000:2EBE
seg000:2EBE display_6:                              ; CODE XREF: display+7Ej
seg000:2EBE                                         ; display+84j
seg000:2EBE                 push    es
seg000:2EBF                 push    bx
seg000:2EC0                 inc     word ptr [bp+_s_]
seg000:2EC3                 mov     ax, 1
seg000:2EC6                 push    ax
seg000:2EC7                 push    [bp+row]
seg000:2ECA                 push    [bp+col]
seg000:2ECD                 inc     [bp+col]
seg000:2ED0                 push    [bp+attribute_ptr_2]
seg000:2ED3                 push    [bp+attribute_ptr]
seg000:2ED6                 sub     ax, ax
seg000:2ED8                 push    ax
seg000:2ED9                 call    VIOWRTCHARSTRATT
seg000:2EDE                 jmp     short display_3
seg000:2EE0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2EE0
seg000:2EE0 display_7:                              ; CODE XREF: display+66j
seg000:2EE0                 inc     word ptr [bp+_s_]
seg000:2EE3
seg000:2EE3 sc_break:                               ; CODE XREF: display+127j
seg000:2EE3                                         ; display+14Aj ...
seg000:2EE3                 les     bx, dword ptr [bp+_s_]
seg000:2EE6                 cmp     byte ptr es:[bx], '>'
seg000:2EEA                 jnz     short display_8
seg000:2EEC                 jmp     display_35
seg000:2EEF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2EEF
seg000:2EEF display_8:                              ; CODE XREF: display+B6j
seg000:2EEF                 cmp     byte ptr es:[bx], 0
seg000:2EF3                 jnz     short display_9
seg000:2EF5                 jmp     display_35
seg000:2EF8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2EF8
seg000:2EF8 display_9:                              ; CODE XREF: display+BFj
seg000:2EF8                 mov     [bp+temp_off], bx
seg000:2EFB                 mov     [bp+temp_seg], es
seg000:2EFE                 inc     word ptr [bp+_s_]
seg000:2F01                 mov     al, es:[bx]
seg000:2F04                 cbw
seg000:2F05                 cmp     ax, 'Y'
seg000:2F08                 jnz     short display_10
seg000:2F0A                 jmp     case_Y
seg000:2F0D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F0D
seg000:2F0D display_10:                             ; CODE XREF: display+D4j
seg000:2F0D                 ja      short display_17
seg000:2F0F                 or      al, al
seg000:2F11                 jnz     short display_11
seg000:2F13                 jmp     case_0
seg000:2F16 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F16
seg000:2F16 display_11:                             ; CODE XREF: display+DDj
seg000:2F16                 sub     al, 'B'
seg000:2F18                 jnz     short display_12
seg000:2F1A                 jmp     display_25
seg000:2F1D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F1D
seg000:2F1D display_12:                             ; CODE XREF: display+E4j
seg000:2F1D                 dec     al
seg000:2F1F                 jnz     short display_13
seg000:2F21                 jmp     case_C
seg000:2F24 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F24
seg000:2F24 display_13:                             ; CODE XREF: display+EBj
seg000:2F24                 sub     al, 5
seg000:2F26                 jz      short case_H
seg000:2F28                 dec     al
seg000:2F2A                 jnz     short display_14
seg000:2F2C                 jmp     case_I
seg000:2F2F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F2F
seg000:2F2F display_14:                             ; CODE XREF: display+F6j
seg000:2F2F                 sub     al, 5
seg000:2F31                 jnz     short display_15
seg000:2F33                 jmp     case_N
seg000:2F36 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F36
seg000:2F36 display_15:                             ; CODE XREF: display+FDj
seg000:2F36                 dec     al
seg000:2F38                 jz      short display_26
seg000:2F3A                 sub     al, 3
seg000:2F3C                 jz      short display_23
seg000:2F3E                 dec     al
seg000:2F40                 jnz     short display_16
seg000:2F42                 jmp     case_S
seg000:2F45 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F45
seg000:2F45 display_16:                             ; CODE XREF: display+10Cj
seg000:2F45                 sub     al, 4
seg000:2F47                 jz      short case_W
seg000:2F49
seg000:2F49 display_17:                             ; CODE XREF: display:display_10j
seg000:2F49                 mov     ds:insert, '6'
seg000:2F4E
seg000:2F4E display_18:                             ; CODE XREF: display+269j
seg000:2F4E                 push    ds:debug_msg_seg
seg000:2F52                 push    ds:debug_msg_off
seg000:2F56                 call    display
seg000:2F59                 pop     bx
seg000:2F5A                 pop     bx
seg000:2F5B                 jmp     short sc_break
seg000:2F5D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F5D
seg000:2F5D case_H:                                 ; CODE XREF: display+F2j
seg000:2F5D                 cmp     ds:status_flag, 0
seg000:2F62                 jnz     short display_22
seg000:2F64                 cmp     ds:mono_flag, 1
seg000:2F69                 jnz     short display_20
seg000:2F6B                 mov     al, byte ptr [bp+attribute]
seg000:2F6E                 and     al, 8Fh
seg000:2F70                 or      al, 0Fh
seg000:2F72                 jmp     short display_21
seg000:2F74 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F74
seg000:2F74 display_20:                             ; CODE XREF: display+135j
seg000:2F74                 mov     al, byte ptr [bp+attribute]
seg000:2F77                 and     al, 9Fh
seg000:2F79                 or      al, 1Fh
seg000:2F7B
seg000:2F7B display_21:                             ; CODE XREF: display+13Ej
seg000:2F7B                                         ; display+156j ...
seg000:2F7B                 mov     byte ptr [bp+attribute], al
seg000:2F7E                 jmp     sc_break
seg000:2F81 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F81
seg000:2F81 display_22:                             ; CODE XREF: display+12Ej
seg000:2F81                                         ; display+15Dj
seg000:2F81                 mov     al, byte ptr [bp+attribute]
seg000:2F84                 and     al, 80h
seg000:2F86                 or      al, ds:video_attribute
seg000:2F8A                 jmp     short display_21
seg000:2F8C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2F8C
seg000:2F8C display_23:                             ; CODE XREF: display+108j
seg000:2F8C                 cmp     ds:status_flag, 0
seg000:2F91                 jnz     short display_22
seg000:2F93                 cmp     ds:mono_flag, 1
seg000:2F98                 jnz     short display_24
seg000:2F9A                 mov     al, byte ptr [bp+attribute]
seg000:2F9D                 and     al, 87h
seg000:2F9F                 or      al, 7
seg000:2FA1                 jmp     short display_21
seg000:2FA3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2FA3
seg000:2FA3 display_24:                             ; CODE XREF: display+164j
seg000:2FA3                 mov     al, byte ptr [bp+attribute]
seg000:2FA6                 and     al, 97h
seg000:2FA8                 or      al, 17h
seg000:2FAA                 jmp     short display_21
seg000:2FAC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2FAC
seg000:2FAC display_25:                             ; CODE XREF: display+E6j
seg000:2FAC                 or      byte ptr [bp+attribute], 80h
seg000:2FB0                 jmp     sc_break
seg000:2FB3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2FB3
seg000:2FB3 display_26:                             ; CODE XREF: display+104j
seg000:2FB3                 and     byte ptr [bp+attribute], 7Fh
seg000:2FB7                 jmp     sc_break
seg000:2FBA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2FBA
seg000:2FBA case_W:                                 ; CODE XREF: display+113j
seg000:2FBA                 mov     ax, 900
seg000:2FBD                 push    ax
seg000:2FBE                 mov     ax, 400
seg000:2FC1                 push    ax
seg000:2FC2                 call    DOSBEEP
seg000:2FC7                 jmp     sc_break
seg000:2FCA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2FCA
seg000:2FCA case_I:                                 ; CODE XREF: display+F8j
seg000:2FCA                 cmp     ds:status_flag, 1
seg000:2FCF                 jnz     short display_27
seg000:2FD1                 mov     al, ds:video_attribute
seg000:2FD4                 mov     byte ptr [bp+attribute], al
seg000:2FD7                 jmp     short display_29
seg000:2FD9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:2FD9
seg000:2FD9 display_27:                             ; CODE XREF: display+19Bj
seg000:2FD9                 cmp     ds:mono_flag, 1
seg000:2FDE                 jnz     short display_28
seg000:2FE0                 cmp     byte ptr [bp+attribute], 0
seg000:2FE4                 jnz     short display_28
seg000:2FE6                 mov     byte ptr [bp+attribute], 7
seg000:2FEA
seg000:2FEA display_28:                             ; CODE XREF: display+1AAj
seg000:2FEA                                         ; display+1B0j
seg000:2FEA                 cmp     ds:mono_flag, 0
seg000:2FEF                 jnz     short display_29
seg000:2FF1                 cmp     byte ptr [bp+attribute], 0
seg000:2FF5                 jnz     short display_29
seg000:2FF7                 mov     byte ptr [bp+attribute], 17h
seg000:2FFB
seg000:2FFB display_29:                             ; CODE XREF: display+1A3j
seg000:2FFB                                         ; display+1BBj ...
seg000:2FFB                 mov     ax, [bp+insert_count]
seg000:2FFE                 inc     [bp+insert_count]
seg000:3001                 add     ax, ds:pinsert
seg000:3005                 jmp     short display_34
seg000:3007 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3007
seg000:3007 case_Y:                                 ; CODE XREF: display+D6j
seg000:3007                 cmp     ds:mono_flag, 1
seg000:300C                 jnz     short display_30
seg000:300E                 cmp     byte ptr [bp+attribute], 0
seg000:3012                 jnz     short display_30
seg000:3014                 mov     byte ptr [bp+attribute], 7
seg000:3018
seg000:3018 display_30:                             ; CODE XREF: display+1D8j
seg000:3018                                         ; display+1DEj
seg000:3018                 cmp     ds:mono_flag, 0
seg000:301D                 jnz     short display_31
seg000:301F                 cmp     byte ptr [bp+attribute], 0
seg000:3023                 jnz     short display_31
seg000:3025                 mov     byte ptr [bp+attribute], 17h
seg000:3029
seg000:3029 display_31:                             ; CODE XREF: display+1E9j
seg000:3029                                         ; display+1EFj
seg000:3029                 mov     ax, offset Yes
seg000:302C                 jmp     short display_34
seg000:302E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:302E
seg000:302E case_N:                                 ; CODE XREF: display+FFj
seg000:302E                 cmp     ds:mono_flag, 1
seg000:3033                 jnz     short display_32
seg000:3035                 cmp     byte ptr [bp+attribute], 0
seg000:3039                 jnz     short display_32
seg000:303B                 mov     byte ptr [bp+attribute], 7
seg000:303F
seg000:303F display_32:                             ; CODE XREF: display+1FFj
seg000:303F                                         ; display+205j
seg000:303F                 cmp     ds:mono_flag, 0
seg000:3044                 jnz     short display_33
seg000:3046                 cmp     byte ptr [bp+attribute], 0
seg000:304A                 jnz     short display_33
seg000:304C                 mov     byte ptr [bp+attribute], 17h
seg000:3050
seg000:3050 display_33:                             ; CODE XREF: display+210j
seg000:3050                                         ; display+216j
seg000:3050                 mov     ax, offset No
seg000:3053
seg000:3053 display_34:                             ; CODE XREF: display+1D1j
seg000:3053                                         ; display+1F8j
seg000:3053                 push    ds
seg000:3054                 push    ax
seg000:3055                 mov     ax, 1
seg000:3058                 push    ax
seg000:3059                 push    [bp+row]
seg000:305C                 push    [bp+col]
seg000:305F                 inc     [bp+col]
seg000:3062                 push    [bp+attribute_ptr_2]
seg000:3065                 push    [bp+attribute_ptr]
seg000:3068                 sub     ax, ax
seg000:306A                 push    ax
seg000:306B                 call    VIOWRTCHARSTRATT
seg000:3070                 jmp     sc_break
seg000:3073 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3073
seg000:3073 case_S:                                 ; CODE XREF: display+10Ej
seg000:3073                 mov     ax, [bp+row]
seg000:3076                 mov     ds:input_row, ax
seg000:3079                 mov     ax, [bp+col]
seg000:307C                 mov     ds:input_col, ax
seg000:307F                 jmp     sc_break
seg000:3082 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3082
seg000:3082 case_C:                                 ; CODE XREF: display+EDj
seg000:3082                 mov     ax, 79
seg000:3085                 push    ax
seg000:3086                 push    [bp+row]
seg000:3089                 push    [bp+col]
seg000:308C                 push    [bp+row]
seg000:308F                 call    clear_screen
seg000:3092                 add     sp, 8
seg000:3095                 jmp     sc_break
seg000:3098 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3098
seg000:3098 case_0:                                 ; CODE XREF: display+DFj
seg000:3098                 mov     ds:insert, '7'
seg000:309D                 jmp     display_18
seg000:30A0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:30A0
seg000:30A0 display_35:                             ; CODE XREF: display+B8j
seg000:30A0                                         ; display+C1j
seg000:30A0                 inc     word ptr [bp+_s_]
seg000:30A3                 jmp     display_3
seg000:30A6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:30A6
seg000:30A6 display_36:                             ; CODE XREF: display+60j
seg000:30A6                 inc     word ptr [bp+_s_]
seg000:30A9                 mov     bx, word ptr [bp+_s_]
seg000:30AC                 mov     al, es:[bx]
seg000:30AF                 cbw
seg000:30B0                 mov     bx, ax
seg000:30B2                 test    ds:isdigit[bx], 4
seg000:30B7                 jz      short display_37
seg000:30B9                 mov     bx, word ptr [bp+_s_]
seg000:30BC                 inc     word ptr [bp+_s_]
seg000:30BF                 mov     al, 10
seg000:30C1                 imul    byte ptr es:[bx]
seg000:30C4                 sub     ax, 1E0h
seg000:30C7                 add     [bp+row], ax
seg000:30CA                 mov     bx, word ptr [bp+_s_]
seg000:30CD                 mov     al, es:[bx]
seg000:30D0                 cbw
seg000:30D1                 mov     bx, ax
seg000:30D3                 test    ds:isdigit[bx], 4
seg000:30D8                 jnz     short display_38
seg000:30DA
seg000:30DA display_37:                             ; CODE XREF: display+283j
seg000:30DA                 mov     ds:insert, '2'
seg000:30DF                 jmp     short display_40
seg000:30E1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:30E1
seg000:30E1 display_38:                             ; CODE XREF: display+2A4j
seg000:30E1                 mov     bx, word ptr [bp+_s_]
seg000:30E4                 inc     word ptr [bp+_s_]
seg000:30E7                 mov     al, es:[bx]
seg000:30EA                 cbw
seg000:30EB                 sub     ax, '0'
seg000:30EE                 add     [bp+row], ax
seg000:30F1                 mov     bx, word ptr [bp+_s_]
seg000:30F4                 mov     al, es:[bx]
seg000:30F7                 cbw
seg000:30F8                 mov     bx, ax
seg000:30FA                 test    ds:isdigit[bx], 4
seg000:30FF                 jz      short display_39
seg000:3101                 mov     bx, word ptr [bp+_s_]
seg000:3104                 inc     word ptr [bp+_s_]
seg000:3107                 mov     al, es:[bx]
seg000:310A                 cbw
seg000:310B                 sub     ax, '0'
seg000:310E                 mov     [bp+col], ax
seg000:3111                 mov     bx, word ptr [bp+_s_]
seg000:3114                 mov     al, es:[bx]
seg000:3117                 cbw
seg000:3118                 mov     bx, ax
seg000:311A                 test    ds:isdigit[bx], 4
seg000:311F                 jnz     short display_41
seg000:3121
seg000:3121 display_39:                             ; CODE XREF: display+2CBj
seg000:3121                 mov     ds:insert, '3'
seg000:3126
seg000:3126 display_40:                             ; CODE XREF: display+2ABj
seg000:3126                                         ; display+330j
seg000:3126                 push    ds:debug_msg_seg
seg000:312A                 push    ds:debug_msg_off
seg000:312E                 call    display
seg000:3131                 pop     bx
seg000:3132                 pop     bx
seg000:3133                 jmp     display_3
seg000:3136 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3136
seg000:3136 display_41:                             ; CODE XREF: display+2EBj
seg000:3136                 mov     ax, 10
seg000:3139                 mul     [bp+col]
seg000:313C                 mov     bx, word ptr [bp+_s_]
seg000:313F                 inc     word ptr [bp+_s_]
seg000:3142                 mov     cx, ax
seg000:3144                 mov     al, es:[bx]
seg000:3147                 cbw
seg000:3148                 add     cx, ax
seg000:314A                 sub     cx, '0'
seg000:314D                 mov     [bp+col], cx
seg000:3150                 mov     bx, word ptr [bp+_s_]
seg000:3153                 inc     word ptr [bp+_s_]
seg000:3156                 cmp     byte ptr es:[bx], 6
seg000:315A                 jnz     short display_42
seg000:315C                 jmp     display_3
seg000:315F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:315F
seg000:315F display_42:                             ; CODE XREF: display+326j
seg000:315F                 mov     ds:insert, '4'
seg000:3164                 jmp     short display_40
seg000:3166 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3166
seg000:3166 display_43:                             ; CODE XREF: display+35j
seg000:3166                                         ; display+54j
seg000:3166                 mov     sp, bp
seg000:3168                 pop     bp
seg000:3169                 retn
seg000:3169 display         endp
seg000:3169
seg000:316A
seg000:316A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:316A
seg000:316A ; Attributes: bp-based frame
seg000:316A
seg000:316A number_in_msg   proc near               ; CODE XREF: change_active_partition+164p
seg000:316A                                         ; display_partition_information+50p ...
seg000:316A
seg000:316A numinmsg_mb     = word ptr -20h
seg000:316A numinmsg_mb2    = byte ptr -1Eh
seg000:316A numinmsg_mb3    = byte ptr -1Dh
seg000:316A numinmsg_num    = word ptr  4
seg000:316A numinmsg_start  = byte ptr  6
seg000:316A
seg000:316A                 push    bp
seg000:316B                 mov     bp, sp
seg000:316D                 sub     sp, 32
seg000:3170                 push    [bp+numinmsg_num]
seg000:3173                 mov     ax, offset numinmsg_format ; "%4.1d"
seg000:3176                 push    ax
seg000:3177                 lea     ax, [bp+numinmsg_mb]
seg000:317A                 push    ax
seg000:317B                 call    sprintf
seg000:317E                 mov     al, byte ptr [bp+numinmsg_mb]
seg000:3181                 mov     bx, word ptr [bp+numinmsg_start]
seg000:3184                 mov     ds:insert[bx], al
seg000:3188                 mov     al, byte ptr [bp+numinmsg_mb+1]
seg000:318B                 mov     ds:(insert+1)[bx], al
seg000:318F                 mov     al, [bp+numinmsg_mb2]
seg000:3192                 mov     ds:(insert+2)[bx], al
seg000:3196                 mov     al, [bp+numinmsg_mb3]
seg000:3199                 mov     ds:(insert+3)[bx], al
seg000:319D                 mov     sp, bp
seg000:319F                 pop     bp
seg000:31A0                 retn
seg000:31A0 number_in_msg   endp
seg000:31A0
seg000:31A1
seg000:31A1 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:31A1
seg000:31A1 ; Attributes: bp-based frame
seg000:31A1
seg000:31A1 percent_in_msg  proc near
seg000:31A1
seg000:31A1 var_20          = word ptr -20h
seg000:31A1 var_1E          = byte ptr -1Eh
seg000:31A1 var_1D          = byte ptr -1Dh
seg000:31A1 arg_0           = word ptr  4
seg000:31A1 arg_2           = word ptr  6
seg000:31A1
seg000:31A1                 push    bp
seg000:31A2                 mov     bp, sp
seg000:31A4                 sub     sp, 20h
seg000:31A7                 push    [bp+arg_0]
seg000:31AA                 mov     ax, offset a3_1d_1 ; "%3.1d%%"
seg000:31AD                 push    ax
seg000:31AE                 lea     ax, [bp+var_20]
seg000:31B1                 push    ax
seg000:31B2                 call    sprintf
seg000:31B5                 mov     al, byte ptr [bp+var_20]
seg000:31B8                 mov     bx, [bp+arg_2]
seg000:31BB                 mov     ds:insert[bx], al
seg000:31BF                 mov     al, byte ptr [bp+var_20+1]
seg000:31C2                 mov     ds:(insert+1)[bx], al
seg000:31C6                 mov     al, [bp+var_1E]
seg000:31C9                 mov     ds:(insert+2)[bx], al
seg000:31CD                 mov     al, [bp+var_1D]
seg000:31D0                 mov     ds:(insert+3)[bx], al
seg000:31D4                 mov     sp, bp
seg000:31D6                 pop     bp
seg000:31D7                 retn
seg000:31D7 percent_in_msg  endp
seg000:31D7
seg000:31D8
seg000:31D8 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:31D8
seg000:31D8 ; Attributes: bp-based frame
seg000:31D8
seg000:31D8 string_in_msg   proc near
seg000:31D8
seg000:31D8 var_2           = word ptr -2
seg000:31D8 arg_0           = dword ptr  4
seg000:31D8 arg_4           = word ptr  8
seg000:31D8
seg000:31D8                 push    bp
seg000:31D9                 mov     bp, sp
seg000:31DB                 sub     sp, 2
seg000:31DE                 push    si
seg000:31DF                 mov     [bp+var_2], 0
seg000:31E4
seg000:31E4 strinmsg_0:                             ; CODE XREF: string_in_msg+1Ej
seg000:31E4                 mov     si, [bp+arg_4]
seg000:31E7                 mov     bx, [bp+var_2]
seg000:31EA                 mov     ds:insert[bx+si], ' '
seg000:31EF                 inc     [bp+var_2]
seg000:31F2                 cmp     [bp+var_2], 8
seg000:31F6                 jb      short strinmsg_0
seg000:31F8                 les     bx, [bp+arg_0]
seg000:31FB                 mov     al, es:[bx]
seg000:31FE                 mov     si, [bp+arg_4]
seg000:3201                 mov     ds:insert[si], al
seg000:3205                 mov     al, es:[bx+1]
seg000:3209                 mov     ds:(insert+1)[si], al
seg000:320D                 mov     al, es:[bx+2]
seg000:3211                 mov     ds:(insert+2)[si], al
seg000:3215                 mov     al, es:[bx+3]
seg000:3219                 mov     ds:(insert+3)[si], al
seg000:321D                 mov     al, es:[bx+4]
seg000:3221                 mov     ds:(insert+4)[si], al
seg000:3225                 mov     al, es:[bx+5]
seg000:3229                 mov     ds:(insert+5)[si], al
seg000:322D                 mov     al, es:[bx+6]
seg000:3231                 mov     ds:(insert+6)[si], al
seg000:3235                 mov     al, es:[bx+7]
seg000:3239                 mov     ds:(insert+7)[si], al
seg000:323D                 pop     si
seg000:323E                 mov     sp, bp
seg000:3240                 pop     bp
seg000:3241                 retn
seg000:3241 string_in_msg   endp
seg000:3241
seg000:3242
seg000:3242 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:3242
seg000:3242 ; Attributes: bp-based frame
seg000:3242
seg000:3242 volume_in_msg   proc near
seg000:3242
seg000:3242 var_2           = word ptr -2
seg000:3242 arg_0           = dword ptr  4
seg000:3242 arg_4           = word ptr  8
seg000:3242
seg000:3242                 push    bp
seg000:3243                 mov     bp, sp
seg000:3245                 sub     sp, 2
seg000:3248                 push    si
seg000:3249                 mov     [bp+var_2], 0
seg000:324E
seg000:324E volinmsg_0:                             ; CODE XREF: volume_in_msg+1Ej
seg000:324E                 mov     si, [bp+var_2]
seg000:3251                 mov     bx, [bp+arg_4]
seg000:3254                 mov     ds:insert[bx+si], ' '
seg000:3259                 inc     [bp+var_2]
seg000:325C                 cmp     [bp+var_2], 11
seg000:3260                 jb      short volinmsg_0
seg000:3262                 les     bx, [bp+arg_0]
seg000:3265                 mov     al, es:[bx]
seg000:3268                 mov     si, [bp+arg_4]
seg000:326B                 mov     ds:insert[si], al
seg000:326F                 mov     al, es:[bx+1]
seg000:3273                 mov     ds:(insert+1)[si], al
seg000:3277                 mov     al, es:[bx+2]
seg000:327B                 mov     ds:(insert+2)[si], al
seg000:327F                 mov     al, es:[bx+3]
seg000:3283                 mov     ds:(insert+3)[si], al
seg000:3287                 mov     al, es:[bx+4]
seg000:328B                 mov     ds:(insert+4)[si], al
seg000:328F                 mov     al, es:[bx+5]
seg000:3293                 mov     ds:(insert+5)[si], al
seg000:3297                 mov     al, es:[bx+6]
seg000:329B                 mov     ds:(insert+6)[si], al
seg000:329F                 mov     al, es:[bx+7]
seg000:32A3                 mov     ds:(insert+7)[si], al
seg000:32A7                 mov     al, es:[bx+8]
seg000:32AB                 mov     ds:(insert+8)[si], al
seg000:32AF                 mov     al, es:[bx+9]
seg000:32B3                 mov     ds:(insert+9)[si], al
seg000:32B7                 mov     al, es:[bx+10]
seg000:32BB                 mov     ds:(insert+0Ah)[si], al
seg000:32BF                 pop     si
seg000:32C0                 mov     sp, bp
seg000:32C2                 pop     bp
seg000:32C3                 retn
seg000:32C3 volume_in_msg   endp
seg000:32C3
seg000:32C4
seg000:32C4 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:32C4
seg000:32C4 ; Attributes: bp-based frame
seg000:32C4
seg000:32C4 get_num_input   proc near               ; CODE XREF: do_main_menu+168p
seg000:32C4                                         ; delete_partition+D8p ...
seg000:32C4
seg000:32C4 input_value     = byte ptr -10h
seg000:32C4 gni_attr_ptr    = word ptr -0Eh
seg000:32C4 gni_attr_ptr_2  = word ptr -0Ch
seg000:32C4 default_used    = byte ptr -0Ah
seg000:32C4 gni_input_ptr   = word ptr -8
seg000:32C4 gni_input_ptr_2 = word ptr -6
seg000:32C4 gni_attribute   = word ptr -4
seg000:32C4 gni_input       = word ptr -2
seg000:32C4 input_default   = byte ptr  4
seg000:32C4 gni_max_num     = byte ptr  6
seg000:32C4 gni_row         = word ptr  8
seg000:32C4 gni_col         = byte ptr  0Ah
seg000:32C4
seg000:32C4                 push    bp
seg000:32C5                 mov     bp, sp
seg000:32C7                 sub     sp, 16
seg000:32CA                 mov     [bp+default_used], 0
seg000:32CE                 lea     ax, [bp+gni_attribute]
seg000:32D1                 mov     [bp+gni_attr_ptr], ax
seg000:32D4                 mov     [bp+gni_attr_ptr_2], ss
seg000:32D7                 lea     cx, [bp+gni_input]
seg000:32DA                 mov     [bp+gni_input_ptr], cx
seg000:32DD                 mov     [bp+gni_input_ptr_2], ss
seg000:32E0                 cmp     ds:mono_flag, 1
seg000:32E5                 jnz     short gni_1
seg000:32E7                 mov     byte ptr [bp+gni_attribute], 0Fh
seg000:32EB                 jmp     short gni_2
seg000:32ED ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:32ED
seg000:32ED gni_1:                                  ; CODE XREF: get_num_input+21j
seg000:32ED                 mov     byte ptr [bp+gni_attribute], 1Fh
seg000:32F1
seg000:32F1 gni_2:                                  ; CODE XREF: get_num_input+27j
seg000:32F1                 cmp     [bp+input_default], 0
seg000:32F5                 jz      short gni_3
seg000:32F7                 mov     [bp+default_used], 1
seg000:32FB                 push    [bp+gni_row]
seg000:32FE                 push    word ptr [bp+gni_col]
seg000:3301                 sub     ax, ax
seg000:3303                 push    ax
seg000:3304                 call    VIOSETCURPOS
seg000:3309                 mov     al, [bp+input_default]
seg000:330C                 add     al, '0'
seg000:330E                 mov     byte ptr [bp+gni_input], al
seg000:3311                 push    [bp+gni_input_ptr_2]
seg000:3314                 push    [bp+gni_input_ptr]
seg000:3317                 mov     ax, 1
seg000:331A                 push    ax
seg000:331B                 push    [bp+gni_row]
seg000:331E                 push    word ptr [bp+gni_col]
seg000:3321                 push    [bp+gni_attr_ptr_2]
seg000:3324                 push    [bp+gni_attr_ptr]
seg000:3327                 sub     ax, ax
seg000:3329                 push    ax
seg000:332A                 call    VIOWRTCHARSTRATT
seg000:332F
seg000:332F gni_3:                                  ; CODE XREF: get_num_input+31j
seg000:332F                 mov     ds:valid_input, 0
seg000:3334
seg000:3334 gni_4:                                  ; CODE XREF: get_num_input+1E6j
seg000:3334                 push    [bp+gni_row]
seg000:3337                 push    word ptr [bp+gni_col]
seg000:333A                 sub     ax, ax
seg000:333C                 push    ax
seg000:333D                 call    VIOSETCURPOS
seg000:3342                 call    get_char_input
seg000:3345                 mov     byte ptr [bp+gni_input], al
seg000:3348                 push    ax
seg000:3349                 call    dos_upper
seg000:334C                 pop     bx
seg000:334D                 mov     byte ptr [bp+gni_input], al
seg000:3350
seg000:3350 switch_gni_input:
seg000:3350                 cbw
seg000:3351                 sub     ax, 0Dh
seg000:3354                 jz      short case_gni_CR
seg000:3356                 sub     ax, 0Eh
seg000:3359                 jz      short case_gni_ESC
seg000:335B                 mov     al, byte ptr [bp+gni_input]
seg000:335E                 cbw
seg000:335F                 mov     bx, ax
seg000:3361                 test    ds:isdigit[bx], 4
seg000:3366                 jz      short gni_not_digit
seg000:3368                 mov     al, [bp+gni_max_num]
seg000:336B                 cbw
seg000:336C                 add     ax, '0'
seg000:336F                 cmp     ax, bx
seg000:3371                 jl      short gni_not_digit
seg000:3373                 cmp     byte ptr [bp+gni_input], '0'
seg000:3377                 jnz     short gni_5
seg000:3379
seg000:3379 gni_not_digit:                          ; CODE XREF: get_num_input+A2j
seg000:3379                                         ; get_num_input+ADj
seg000:3379                 jmp     gni_11
seg000:337C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:337C
seg000:337C gni_5:                                  ; CODE XREF: get_num_input+B3j
seg000:337C                 mov     ax, 79
seg000:337F                 push    ax
seg000:3380                 mov     ax, 23
seg000:3383                 push    ax
seg000:3384                 sub     cx, cx
seg000:3386                 push    cx
seg000:3387                 push    ax
seg000:3388                 call    clear_screen
seg000:338B                 add     sp, 8
seg000:338E                 jmp     gni_14
seg000:3391 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3391
seg000:3391 case_gni_ESC:                           ; CODE XREF: get_num_input+95j
seg000:3391                 mov     ds:valid_input, 1
seg000:3396                 jmp     case_gni_break
seg000:3399 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3399
seg000:3399 case_gni_CR:                            ; CODE XREF: get_num_input+90j
seg000:3399                 cmp     [bp+default_used], 0
seg000:339D                 jz      short gni_7
seg000:339F                 cmp     [bp+input_default], 0
seg000:33A3                 jz      short gni_6
seg000:33A5                 mov     al, [bp+input_default]
seg000:33A8                 add     al, '0'
seg000:33AA                 mov     [bp+input_value], al
seg000:33AD                 jmp     short gni_7
seg000:33AF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:33AF
seg000:33AF gni_6:                                  ; CODE XREF: get_num_input+DFj
seg000:33AF                 mov     [bp+input_value], ' '
seg000:33B3
seg000:33B3 gni_7:                                  ; CODE XREF: get_num_input+D9j
seg000:33B3                                         ; get_num_input+E9j
seg000:33B3                 mov     al, [bp+input_value]
seg000:33B6                 cbw
seg000:33B7                 mov     bx, ax
seg000:33B9                 test    ds:isdigit[bx], 4
seg000:33BE                 jz      short gni_8
seg000:33C0                 mov     al, [bp+gni_max_num]
seg000:33C3                 cbw
seg000:33C4                 add     ax, '0'
seg000:33C7                 cmp     ax, bx
seg000:33C9                 jl      short gni_8
seg000:33CB                 cmp     [bp+input_value], '0'
seg000:33CF                 jz      short gni_8
seg000:33D1                 mov     ds:valid_input, 1
seg000:33D6                 mov     al, [bp+input_value]
seg000:33D9                 mov     byte ptr [bp+gni_input], al
seg000:33DC                 jmp     case_gni_break
seg000:33DF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:33DF
seg000:33DF gni_8:                                  ; CODE XREF: get_num_input+FAj
seg000:33DF                                         ; get_num_input+105j ...
seg000:33DF                 mov     al, [bp+input_value]
seg000:33E2                 cbw
seg000:33E3                 mov     bx, ax
seg000:33E5                 test    ds:isdigit[bx], 4
seg000:33EA                 jz      short gni_9
seg000:33EC                 mov     ds:insert, al
seg000:33EF                 mov     ds:insert+1, '1'
seg000:33F4                 mov     ds:insert+2, '-'
seg000:33F9                 mov     al, [bp+gni_max_num]
seg000:33FC                 add     al, '0'
seg000:33FE                 mov     ds:insert+3, al
seg000:3401                 push    ds:error_23_seg
seg000:3405                 push    ds:error_23_off
seg000:3409                 jmp     short gni_10
seg000:340B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:340B
seg000:340B gni_9:                                  ; CODE XREF: get_num_input+126j
seg000:340B                 mov     ds:insert, '1'
seg000:3410                 mov     ds:insert+1, '-'
seg000:3415                 mov     al, [bp+gni_max_num]
seg000:3418                 add     al, '0'
seg000:341A                 mov     ds:insert+2, al
seg000:341D                 push    ds:error_31_seg
seg000:3421                 push    ds:error_31_off
seg000:3425
seg000:3425 gni_10:                                 ; CODE XREF: get_num_input+145j
seg000:3425                 call    display
seg000:3428                 pop     bx
seg000:3429                 pop     bx
seg000:342A                 jmp     short case_gni_break
seg000:342C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:342C
seg000:342C gni_11:                                 ; CODE XREF: get_num_input:gni_not_digitj
seg000:342C                 mov     al, byte ptr [bp+gni_input]
seg000:342F                 cbw
seg000:3430                 mov     bx, ax
seg000:3432                 test    ds:isdigit[bx], 4
seg000:3437                 jz      short gni_12
seg000:3439                 mov     ds:insert, al
seg000:343C                 mov     ds:insert+1, '1'
seg000:3441                 mov     ds:insert+2, '-'
seg000:3446                 mov     al, [bp+gni_max_num]
seg000:3449                 add     al, '0'
seg000:344B                 mov     ds:insert+3, al
seg000:344E                 push    ds:error_23_seg
seg000:3452                 push    ds:error_23_off
seg000:3456                 jmp     short gni_13
seg000:3458 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3458
seg000:3458 gni_12:                                 ; CODE XREF: get_num_input+173j
seg000:3458                 mov     ds:insert, '1'
seg000:345D                 mov     ds:insert+1, '-'
seg000:3462                 mov     al, [bp+gni_max_num]
seg000:3465                 add     al, '0'
seg000:3467                 mov     ds:insert+2, al
seg000:346A                 push    ds:error_31_seg
seg000:346E                 push    ds:error_31_off
seg000:3472
seg000:3472 gni_13:                                 ; CODE XREF: get_num_input+192j
seg000:3472                 call    display
seg000:3475                 pop     bx
seg000:3476                 pop     bx
seg000:3477                 mov     byte ptr [bp+gni_input], ' '
seg000:347B
seg000:347B gni_14:                                 ; CODE XREF: get_num_input+CAj
seg000:347B                 push    [bp+gni_input_ptr_2]
seg000:347E                 push    [bp+gni_input_ptr]
seg000:3481                 mov     ax, 1
seg000:3484                 push    ax
seg000:3485                 push    [bp+gni_row]
seg000:3488                 push    word ptr [bp+gni_col]
seg000:348B                 push    [bp+gni_attr_ptr_2]
seg000:348E                 push    [bp+gni_attr_ptr]
seg000:3491                 sub     ax, ax
seg000:3493                 push    ax
seg000:3494                 call    VIOWRTCHARSTRATT
seg000:3499                 mov     [bp+default_used], 0
seg000:349D                 mov     al, byte ptr [bp+gni_input]
seg000:34A0                 mov     [bp+input_value], al
seg000:34A3
seg000:34A3 case_gni_break:                         ; CODE XREF: get_num_input+D2j
seg000:34A3                                         ; get_num_input+118j ...
seg000:34A3                 cmp     ds:valid_input, 0
seg000:34A8                 jnz     short gni_15
seg000:34AA                 jmp     gni_4
seg000:34AD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:34AD
seg000:34AD gni_15:                                 ; CODE XREF: get_num_input+1E4j
seg000:34AD                 mov     al, byte ptr [bp+gni_input]
seg000:34B0                 mov     sp, bp
seg000:34B2                 pop     bp
seg000:34B3                 retn
seg000:34B3 get_num_input   endp
seg000:34B3
seg000:34B4
seg000:34B4 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:34B4
seg000:34B4 ; Attributes: bp-based frame
seg000:34B4
seg000:34B4 get_yn_input    proc near               ; CODE XREF: dos_delete+220p
seg000:34B4                                         ; ext_delete+94p ...
seg000:34B4
seg000:34B4 gyn_input_val   = byte ptr -10h
seg000:34B4 gyn_attr_ptr    = word ptr -0Eh
seg000:34B4 gyn_attr_ptr_2  = word ptr -0Ch
seg000:34B4 gyn_def_used    = byte ptr -0Ah
seg000:34B4 gyn_input_ptr   = word ptr -8
seg000:34B4 gyn_input_ptr_2 = word ptr -6
seg000:34B4 gyn_attribute   = word ptr -4
seg000:34B4 gyn_input       = word ptr -2
seg000:34B4 gyn_input_def   = byte ptr  4
seg000:34B4 gyn_row         = word ptr  6
seg000:34B4 gyn_column      = byte ptr  8
seg000:34B4
seg000:34B4                 push    bp
seg000:34B5                 mov     bp, sp
seg000:34B7                 sub     sp, 16
seg000:34BA                 lea     ax, [bp+gyn_attribute]
seg000:34BD                 mov     [bp+gyn_attr_ptr], ax
seg000:34C0                 mov     [bp+gyn_attr_ptr_2], ss
seg000:34C3                 lea     cx, [bp+gyn_input]
seg000:34C6                 mov     [bp+gyn_input_ptr], cx
seg000:34C9                 mov     [bp+gyn_input_ptr_2], ss
seg000:34CC                 cmp     ds:mono_flag, 1
seg000:34D1                 jnz     short gyni_1
seg000:34D3                 mov     byte ptr [bp+gyn_attribute], 0Fh
seg000:34D7                 jmp     short gyni_2
seg000:34D9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:34D9
seg000:34D9 gyni_1:                                 ; CODE XREF: get_yn_input+1Dj
seg000:34D9                 mov     byte ptr [bp+gyn_attribute], 1Fh
seg000:34DD
seg000:34DD gyni_2:                                 ; CODE XREF: get_yn_input+23j
seg000:34DD                 cmp     [bp+gyn_input_def], 0
seg000:34E1                 jz      short gyni_3
seg000:34E3                 mov     [bp+gyn_def_used], 1
seg000:34E7                 push    [bp+gyn_row]
seg000:34EA                 push    word ptr [bp+gyn_column]
seg000:34ED                 sub     ax, ax
seg000:34EF                 push    ax
seg000:34F0                 call    VIOSETCURPOS
seg000:34F5                 mov     al, [bp+gyn_input_def]
seg000:34F8                 mov     byte ptr [bp+gyn_input], al
seg000:34FB                 push    [bp+gyn_input_ptr_2]
seg000:34FE                 push    [bp+gyn_input_ptr]
seg000:3501                 mov     ax, 1
seg000:3504                 push    ax
seg000:3505                 push    [bp+gyn_row]
seg000:3508                 push    word ptr [bp+gyn_column]
seg000:350B                 push    [bp+gyn_attr_ptr_2]
seg000:350E                 push    [bp+gyn_attr_ptr]
seg000:3511                 sub     ax, ax
seg000:3513                 push    ax
seg000:3514                 call    VIOWRTCHARSTRATT
seg000:3519
seg000:3519 gyni_3:                                 ; CODE XREF: get_yn_input+2Dj
seg000:3519                 mov     ds:valid_input, 0
seg000:351E
seg000:351E gyni_4:                                 ; CODE XREF: get_yn_input+15Fj
seg000:351E                 push    [bp+gyn_row]
seg000:3521                 push    word ptr [bp+gyn_column]
seg000:3524                 sub     ax, ax
seg000:3526                 push    ax
seg000:3527                 call    VIOSETCURPOS
seg000:352C                 call    get_char_input
seg000:352F                 mov     byte ptr [bp+gyn_input], al
seg000:3532                 push    ax
seg000:3533                 call    dos_upper
seg000:3536                 pop     bx
seg000:3537                 mov     byte ptr [bp+gyn_input], al
seg000:353A
seg000:353A switch_input11:
seg000:353A                 cbw
seg000:353B                 sub     ax, 0Dh
seg000:353E                 jz      short case_gyni_CR
seg000:3540                 sub     ax, 0Eh
seg000:3543                 jz      short case_gyni_ESC
seg000:3545
seg000:3545 case_gyni_DEF:
seg000:3545                 mov     al, byte ptr [bp+gyn_input]
seg000:3548                 push    ax
seg000:3549                 call    check_yn_input
seg000:354C                 pop     bx
seg000:354D                 dec     al
seg000:354F                 jz      short gyni_7
seg000:3551                 mov     al, byte ptr [bp+gyn_input]
seg000:3554                 push    ax
seg000:3555                 call    check_yn_input
seg000:3558                 pop     bx
seg000:3559                 or      al, al
seg000:355B                 jnz     short gyni_13
seg000:355D
seg000:355D gyni_7:                                 ; CODE XREF: get_yn_input+9Bj
seg000:355D                 mov     ax, 79
seg000:3560                 push    ax
seg000:3561                 mov     ax, 23
seg000:3564                 push    ax
seg000:3565                 sub     cx, cx
seg000:3567                 push    cx
seg000:3568                 push    ax
seg000:3569                 call    clear_screen
seg000:356C                 add     sp, 8
seg000:356F                 jmp     short gyni_14
seg000:3571 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3571
seg000:3571 case_gyni_CR:                           ; CODE XREF: get_yn_input+8Aj
seg000:3571                 cmp     [bp+gyn_def_used], 0
seg000:3575                 jz      short gyni_10
seg000:3577                 cmp     [bp+gyn_input_def], 0
seg000:357B                 jz      short gyni_9
seg000:357D                 mov     al, [bp+gyn_input_def]
seg000:3580                 mov     [bp+gyn_input_val], al
seg000:3583                 jmp     short gyni_10
seg000:3585 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3585
seg000:3585 gyni_9:                                 ; CODE XREF: get_yn_input+C7j
seg000:3585                 call    internal_program_error
seg000:3588
seg000:3588 gyni_10:                                ; CODE XREF: get_yn_input+C1j
seg000:3588                                         ; get_yn_input+CFj
seg000:3588                 mov     al, [bp+gyn_input_val]
seg000:358B                 push    ax
seg000:358C                 call    check_yn_input
seg000:358F                 pop     bx
seg000:3590                 mov     byte ptr [bp+gyn_input], al
seg000:3593                 cmp     al, 1
seg000:3595                 jz      short case_gyni_ESC
seg000:3597                 or      al, al
seg000:3599                 jnz     short gyni_12
seg000:359B
seg000:359B case_gyni_ESC:                          ; CODE XREF: get_yn_input+8Fj
seg000:359B                                         ; get_yn_input+E1j
seg000:359B                 mov     ds:valid_input, 1
seg000:35A0                 jmp     short gyni_15
seg000:35A2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:35A2
seg000:35A2 gyni_12:                                ; CODE XREF: get_yn_input+E5j
seg000:35A2                 mov     al, ds:Yes
seg000:35A5                 mov     ds:insert, al
seg000:35A8                 mov     ds:insert+1, '-'
seg000:35AD                 mov     al, byte ptr ds:No
seg000:35B0                 mov     ds:insert+2, al
seg000:35B3                 push    ds:error_31_seg
seg000:35B7                 push    ds:error_31_off
seg000:35BB                 call    display
seg000:35BE                 pop     bx
seg000:35BF                 pop     bx
seg000:35C0                 jmp     short gyni_15
seg000:35C2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:35C2
seg000:35C2 gyni_13:                                ; CODE XREF: get_yn_input+A7j
seg000:35C2                 mov     al, ds:Yes
seg000:35C5                 mov     ds:insert, al
seg000:35C8                 mov     ds:insert+1, '-'
seg000:35CD                 mov     al, byte ptr ds:No
seg000:35D0                 mov     ds:insert+2, al
seg000:35D3                 push    ds:error_31_seg
seg000:35D7                 push    ds:error_31_off
seg000:35DB                 call    display
seg000:35DE                 pop     bx
seg000:35DF                 pop     bx
seg000:35E0                 mov     byte ptr [bp+gyn_input], ' '
seg000:35E4
seg000:35E4 gyni_14:                                ; CODE XREF: get_yn_input+BBj
seg000:35E4                 push    [bp+gyn_input_ptr_2]
seg000:35E7                 push    [bp+gyn_input_ptr]
seg000:35EA                 mov     ax, 1
seg000:35ED                 push    ax
seg000:35EE                 push    [bp+gyn_row]
seg000:35F1                 push    word ptr [bp+gyn_column]
seg000:35F4                 push    [bp+gyn_attr_ptr_2]
seg000:35F7                 push    [bp+gyn_attr_ptr]
seg000:35FA                 sub     ax, ax
seg000:35FC                 push    ax
seg000:35FD                 call    VIOWRTCHARSTRATT
seg000:3602                 mov     [bp+gyn_def_used], 0
seg000:3606                 mov     al, byte ptr [bp+gyn_input]
seg000:3609                 mov     [bp+gyn_input_val], al
seg000:360C
seg000:360C gyni_15:                                ; CODE XREF: get_yn_input+ECj
seg000:360C                                         ; get_yn_input+10Cj
seg000:360C                 cmp     ds:valid_input, 0
seg000:3611                 jnz     short gyni_16
seg000:3613                 jmp     gyni_4
seg000:3616 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3616
seg000:3616 gyni_16:                                ; CODE XREF: get_yn_input+15Dj
seg000:3616                 mov     al, byte ptr [bp+gyn_input]
seg000:3619                 mov     sp, bp
seg000:361B                 pop     bp
seg000:361C                 retn
seg000:361C get_yn_input    endp
seg000:361C
seg000:361D
seg000:361D ; --------------- S U B R O U T I N E ---------------------------------------
seg000:361D
seg000:361D ; Attributes: bp-based frame
seg000:361D
seg000:361D wait_for_ESC    proc near               ; CODE XREF: delete_partition+1DBp
seg000:361D                                         ; dos_delete+26Fp ...
seg000:361D
seg000:361D wfesc_input     = byte ptr -2
seg000:361D
seg000:361D                 push    bp
seg000:361E                 mov     bp, sp
seg000:3620                 sub     sp, 2
seg000:3623                 mov     ax, 79
seg000:3626                 push    ax
seg000:3627                 mov     ax, 24
seg000:362A                 push    ax
seg000:362B                 sub     cx, cx
seg000:362D                 push    cx
seg000:362E                 push    ax
seg000:362F                 call    clear_screen
seg000:3632                 add     sp, 8
seg000:3635                 push    ds:menu_46_segment
seg000:3639                 push    ds:menu_46_offset
seg000:363D                 call    display
seg000:3640                 pop     bx
seg000:3641                 pop     bx
seg000:3642                 jmp     short wfesc_2
seg000:3644 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3644
seg000:3644 wfesc_1:                                ; CODE XREF: wait_for_ESC+41j
seg000:3644                 push    ds:input_row
seg000:3648                 push    ds:input_col
seg000:364C                 sub     ax, ax
seg000:364E                 push    ax
seg000:364F                 call    VIOSETCURPOS
seg000:3654                 call    get_char_input
seg000:3657                 mov     [bp+wfesc_input], al
seg000:365A
seg000:365A wfesc_2:                                ; CODE XREF: wait_for_ESC+25j
seg000:365A                 cmp     [bp+wfesc_input], 1Bh
seg000:365E                 jnz     short wfesc_1
seg000:3660                 mov     al, 1Bh
seg000:3662                 mov     sp, bp
seg000:3664                 pop     bp
seg000:3665                 retn
seg000:3665 wait_for_ESC    endp
seg000:3665
seg000:3666
seg000:3666 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:3666
seg000:3666 ; Attributes: bp-based frame
seg000:3666
seg000:3666 get_large_num_input proc near           ; CODE XREF: input_dos_create+12Ap
seg000:3666                                         ; ext_create_partition+184p ...
seg000:3666
seg000:3666 large_input     = word ptr -8
seg000:3666 glni_enter_flag = byte ptr -6
seg000:3666 glni_def_used   = byte ptr -4
seg000:3666 glni_input      = byte ptr -2
seg000:3666 glni_input_def  = word ptr  4
seg000:3666 glni_max_num    = word ptr  6
seg000:3666 glni_max_pc     = word ptr  8
seg000:3666 glni_input_msg  = word ptr  0Ah
seg000:3666 glni_input_msg_seg= word ptr  0Ch
seg000:3666 glni_prompt_loc = word ptr  0Eh
seg000:3666 glni_err_msg    = word ptr  10h
seg000:3666 glni_err_msg_seg= word ptr  12h
seg000:3666
seg000:3666                 push    bp
seg000:3667                 mov     bp, sp
seg000:3669                 sub     sp, 8
seg000:366C                 mov     [bp+glni_def_used], 1
seg000:3670                 sub     al, al
seg000:3672                 mov     ds:valid_input, al
seg000:3675                 mov     [bp+glni_enter_flag], al
seg000:3678                 mov     [bp+large_input], 0
seg000:367D                 jmp     glni_29
seg000:3680 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3680
seg000:3680 glni_1:                                 ; CODE XREF: get_large_num_input+1DCj
seg000:3680                 push    ds:input_row
seg000:3684                 push    ds:input_col
seg000:3688                 sub     ax, ax
seg000:368A                 push    ax
seg000:368B                 call    VIOSETCURPOS
seg000:3690                 call    get_char_input
seg000:3693                 mov     [bp+glni_input], al
seg000:3696
seg000:3696 switch_input12:
seg000:3696                 cbw
seg000:3697                 sub     ax, 8
seg000:369A                 jnz     short glni_3
seg000:369C                 jmp     case_gln_backspace
seg000:369F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:369F
seg000:369F glni_3:                                 ; CODE XREF: get_large_num_input+34j
seg000:369F                 sub     ax, 5
seg000:36A2                 jz      short case_gln_CR
seg000:36A4                 sub     ax, 0Eh
seg000:36A7                 jz      short case_gln_ESC
seg000:36A9                 sub     ax, 0Ah
seg000:36AC                 jnz     short glni_4
seg000:36AE                 jmp     case_gln_percent
seg000:36B1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:36B1
seg000:36B1 glni_4:                                 ; CODE XREF: get_large_num_input+46j
seg000:36B1                 sub     ax, 11
seg000:36B4                 jl      short case_gln_default
seg000:36B6                 sub     ax, 9
seg000:36B9                 jg      short case_gln_default
seg000:36BB                 jmp     case_gln_dec_digits
seg000:36BE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:36BE
seg000:36BE case_gln_default:                       ; CODE XREF: get_large_num_input+4Ej
seg000:36BE                                         ; get_large_num_input+53j
seg000:36BE                 cmp     ds:PercentFlag, 0
seg000:36C3                 jnz     short glni_6
seg000:36C5                 cmp     [bp+large_input], 1000
seg000:36CA                 jb      short glni_7
seg000:36CC
seg000:36CC glni_6:                                 ; CODE XREF: get_large_num_input+5Dj
seg000:36CC                 jmp     glni_27
seg000:36CF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:36CF
seg000:36CF glni_7:                                 ; CODE XREF: get_large_num_input+64j
seg000:36CF                 mov     ds:insert, '0'
seg000:36D4                 mov     ds:insert+1, '-'
seg000:36D9                 mov     ds:insert+2, '9'
seg000:36DE                 push    ds:error_31_seg
seg000:36E2                 push    ds:error_31_off
seg000:36E6                 jmp     glni_28
seg000:36E9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:36E9
seg000:36E9 case_gln_ESC:                           ; CODE XREF: get_large_num_input+41j
seg000:36E9                 mov     ds:valid_input, 1
seg000:36EE                 mov     [bp+large_input], 0FFFEh
seg000:36F3                 jmp     glni_29
seg000:36F6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:36F6
seg000:36F6 case_gln_CR:                            ; CODE XREF: get_large_num_input+3Cj
seg000:36F6                 cmp     ds:PercentFlag, 0
seg000:36FB                 jz      short glni_15
seg000:36FD                 cmp     [bp+glni_input_def], 0
seg000:3701                 jz      short glini_10
seg000:3703                 cmp     [bp+glni_def_used], 0
seg000:3707                 jz      short glini_10
seg000:3709                 mov     ax, [bp+glni_input_def]
seg000:370C                 mov     [bp+large_input], ax
seg000:370F
seg000:370F glini_10:                               ; CODE XREF: get_large_num_input+9Bj
seg000:370F                                         ; get_large_num_input+A1j
seg000:370F                 mov     ax, [bp+glni_max_pc]
seg000:3712                 cmp     [bp+large_input], ax
seg000:3715                 ja      short glni_12
seg000:3717                 cmp     [bp+large_input], 0
seg000:371B                 jz      short glni_17
seg000:371D
seg000:371D glni_11:                                ; CODE XREF: get_large_num_input+EEj
seg000:371D                 mov     ds:valid_input, 1
seg000:3722                 jmp     short glni_14
seg000:3724 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3724
seg000:3724 glni_12:                                ; CODE XREF: get_large_num_input+AFj
seg000:3724                                         ; get_large_num_input+E8j
seg000:3724                 push    [bp+glni_err_msg_seg]
seg000:3727                 push    [bp+glni_err_msg]
seg000:372A
seg000:372A glni_13:                                ; CODE XREF: get_large_num_input+F8j
seg000:372A                 call    display
seg000:372D                 pop     bx
seg000:372E                 pop     bx
seg000:372F
seg000:372F glni_14:                                ; CODE XREF: get_large_num_input+BCj
seg000:372F                 mov     [bp+glni_enter_flag], 1
seg000:3733                 jmp     glni_29
seg000:3736 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3736
seg000:3736 glni_15:                                ; CODE XREF: get_large_num_input+95j
seg000:3736                 cmp     [bp+glni_input_def], 0
seg000:373A                 jz      short glni_16
seg000:373C                 cmp     [bp+glni_def_used], 0
seg000:3740                 jz      short glni_16
seg000:3742                 mov     ax, [bp+glni_input_def]
seg000:3745                 mov     [bp+large_input], ax
seg000:3748
seg000:3748 glni_16:                                ; CODE XREF: get_large_num_input+D4j
seg000:3748                                         ; get_large_num_input+DAj
seg000:3748                 mov     ax, [bp+glni_max_num]
seg000:374B                 cmp     [bp+large_input], ax
seg000:374E                 ja      short glni_12
seg000:3750                 cmp     [bp+large_input], 0
seg000:3754                 jnz     short glni_11
seg000:3756
seg000:3756 glni_17:                                ; CODE XREF: get_large_num_input+B5j
seg000:3756                 push    ds:error_28_seg
seg000:375A                 push    ds:error_28_off
seg000:375E                 jmp     short glni_13
seg000:3760 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3760
seg000:3760 case_gln_backspace:                     ; CODE XREF: get_large_num_input+36j
seg000:3760                 cmp     ds:PercentFlag, 0
seg000:3765                 jz      short glni_19
seg000:3767                 mov     ds:PercentFlag, 0
seg000:376C                 jmp     short glni_20
seg000:376E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:376E
seg000:376E glni_19:                                ; CODE XREF: get_large_num_input+FFj
seg000:376E                 mov     cx, 10
seg000:3771                 mov     ax, [bp+large_input]
seg000:3774                 sub     dx, dx
seg000:3776                 div     cx
seg000:3778                 mov     [bp+large_input], ax
seg000:377B
seg000:377B glni_20:                                ; CODE XREF: get_large_num_input+106j
seg000:377B                 mov     [bp+glni_def_used], 0
seg000:377F                 push    [bp+large_input]
seg000:3782                 mov     ax, offset glni_num_format ; "%4.1d"
seg000:3785                 push    ax
seg000:3786                 mov     ax, [bp+glni_prompt_loc]
seg000:3789                 add     ax, offset insert
seg000:378C                 push    ax
seg000:378D                 call    sprintf
seg000:3790                 add     sp, 6
seg000:3793                 jmp     short glni_24
seg000:3795 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3795
seg000:3795 case_gln_percent:                       ; CODE XREF: get_large_num_input+48j
seg000:3795                 cmp     ds:PercentFlag, 0
seg000:379A                 jz      short glni_22
seg000:379C                 jmp     glni_27
seg000:379F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:379F
seg000:379F glni_22:                                ; CODE XREF: get_large_num_input+134j
seg000:379F                 mov     ds:PercentFlag, 1
seg000:37A4                 cmp     [bp+large_input], 999
seg000:37A9                 jbe     short glni_23
seg000:37AB                 mov     cx, 1000
seg000:37AE                 mov     ax, [bp+large_input]
seg000:37B1                 sub     dx, dx
seg000:37B3                 div     cx
seg000:37B5                 mov     [bp+large_input], dx
seg000:37B8
seg000:37B8 glni_23:                                ; CODE XREF: get_large_num_input+143j
seg000:37B8                 push    [bp+large_input]
seg000:37BB                 mov     ax, offset percent_format ; "%3.1d%%"
seg000:37BE                 push    ax
seg000:37BF                 mov     ax, [bp+glni_prompt_loc]
seg000:37C2                 add     ax, offset insert
seg000:37C5                 push    ax
seg000:37C6                 call    sprintf
seg000:37C9                 add     sp, 6
seg000:37CC                 mov     [bp+glni_def_used], 0
seg000:37D0
seg000:37D0 glni_24:                                ; CODE XREF: get_large_num_input+12Dj
seg000:37D0                 push    [bp+glni_input_msg_seg]
seg000:37D3                 push    [bp+glni_input_msg]
seg000:37D6                 jmp     short glni_28
seg000:37D8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:37D8
seg000:37D8 case_gln_dec_digits:                    ; CODE XREF: get_large_num_input+55j
seg000:37D8                 cmp     [bp+glni_enter_flag], 1
seg000:37DC                 jnz     short glni_26
seg000:37DE                 mov     [bp+large_input], 0
seg000:37E3                 sub     al, al
seg000:37E5                 mov     [bp+glni_def_used], al
seg000:37E8                 mov     ds:PercentFlag, al
seg000:37EB                 mov     [bp+glni_enter_flag], al
seg000:37EE
seg000:37EE glni_26:                                ; CODE XREF: get_large_num_input+176j
seg000:37EE                 cmp     ds:PercentFlag, 0
seg000:37F3                 jnz     short glni_27
seg000:37F5                 cmp     [bp+large_input], 1000
seg000:37FA                 jnb     short glni_27
seg000:37FC                 push    [bp+glni_prompt_loc]
seg000:37FF                 mov     al, [bp+glni_input]
seg000:3802                 cbw
seg000:3803                 mov     cx, ax
seg000:3805                 mov     ax, 10
seg000:3808                 mul     [bp+large_input]
seg000:380B                 add     ax, cx
seg000:380D                 sub     ax, '0'
seg000:3810                 mov     [bp+large_input], ax
seg000:3813                 push    ax
seg000:3814                 call    number_in_msg
seg000:3817                 pop     bx
seg000:3818                 pop     bx
seg000:3819                 push    [bp+glni_input_msg_seg]
seg000:381C                 push    [bp+glni_input_msg]
seg000:381F                 call    display
seg000:3822                 pop     bx
seg000:3823                 pop     bx
seg000:3824                 sub     al, al
seg000:3826                 mov     [bp+glni_def_used], al
seg000:3829                 mov     ds:PercentFlag, al
seg000:382C                 jmp     short glni_29
seg000:382E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:382E
seg000:382E glni_27:                                ; CODE XREF: get_large_num_input:glni_6j
seg000:382E                                         ; get_large_num_input+136j ...
seg000:382E                 push    ds:error_33_seg
seg000:3832                 push    ds:error_33_off
seg000:3836
seg000:3836 glni_28:                                ; CODE XREF: get_large_num_input+80j
seg000:3836                                         ; get_large_num_input+170j
seg000:3836                 call    display
seg000:3839                 pop     bx
seg000:383A                 pop     bx
seg000:383B
seg000:383B glni_29:                                ; CODE XREF: get_large_num_input+17j
seg000:383B                                         ; get_large_num_input+8Dj ...
seg000:383B                 cmp     ds:valid_input, 0
seg000:3840                 jnz     short glni_30
seg000:3842                 jmp     glni_1
seg000:3845 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3845
seg000:3845 glni_30:                                ; CODE XREF: get_large_num_input+1DAj
seg000:3845                 mov     ax, [bp+large_input]
seg000:3848                 mov     sp, bp
seg000:384A                 pop     bp
seg000:384B                 retn
seg000:384B get_large_num_input endp
seg000:384B
seg000:384C
seg000:384C ; --------------- S U B R O U T I N E ---------------------------------------
seg000:384C
seg000:384C ; Attributes: bp-based frame
seg000:384C
seg000:384C get_alpha_input proc near               ; CODE XREF: volume_delete+14Dp
seg000:384C
seg000:384C gai_input_value = byte ptr -10h
seg000:384C gai_attributeptr= word ptr -0Eh
seg000:384C gai_attributeptr2= word ptr -0Ch
seg000:384C gai_default_used= byte ptr -0Ah
seg000:384C gai_input_ptr   = word ptr -8
seg000:384C gai_input_ptr2  = word ptr -6
seg000:384C gai_attribute   = word ptr -4
seg000:384C gai_input       = word ptr -2
seg000:384C ga_i_low_letter = byte ptr  4
seg000:384C ga_i_high_letter= byte ptr  6
seg000:384C ga_i_row        = word ptr  8
seg000:384C ga_i_col        = word ptr  0Ah
seg000:384C ga_i_err_low_lett= byte ptr  0Ch
seg000:384C ga_i_err_high_lett= byte ptr  0Eh
seg000:384C
seg000:384C                 push    bp
seg000:384D                 mov     bp, sp
seg000:384F                 sub     sp, 16
seg000:3852                 lea     ax, [bp+gai_attribute]
seg000:3855                 mov     [bp+gai_attributeptr], ax
seg000:3858                 mov     [bp+gai_attributeptr2], ss
seg000:385B                 lea     cx, [bp+gai_input]
seg000:385E                 mov     [bp+gai_input_ptr], cx
seg000:3861                 mov     [bp+gai_input_ptr2], ss
seg000:3864                 cmp     ds:mono_flag, 1
seg000:3869                 jnz     short gai_1
seg000:386B                 mov     byte ptr [bp+gai_attribute], 0Fh
seg000:386F                 jmp     short gai_2
seg000:3871 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3871
seg000:3871 gai_1:                                  ; CODE XREF: get_alpha_input+1Dj
seg000:3871                 mov     byte ptr [bp+gai_attribute], 1Fh
seg000:3875
seg000:3875 gai_2:                                  ; CODE XREF: get_alpha_input+23j
seg000:3875                 sub     al, al
seg000:3877                 mov     ds:valid_input, al
seg000:387A
seg000:387A gai_3:                                  ; CODE XREF: get_alpha_input+198j
seg000:387A                 mov     [bp+gai_input_value], al
seg000:387D
seg000:387D gai_4:                                  ; CODE XREF: get_alpha_input+A3j
seg000:387D                                         ; get_alpha_input+123j
seg000:387D                 cmp     ds:valid_input, 0
seg000:3882                 jz      short gai_5
seg000:3884                 jmp     gai_17
seg000:3887 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3887
seg000:3887 gai_5:                                  ; CODE XREF: get_alpha_input+36j
seg000:3887                 push    [bp+ga_i_row]
seg000:388A                 push    [bp+ga_i_col]
seg000:388D                 sub     ax, ax
seg000:388F                 push    ax
seg000:3890                 call    VIOSETCURPOS
seg000:3895                 call    get_char_input
seg000:3898                 mov     byte ptr [bp+gai_input], al
seg000:389B                 push    ax
seg000:389C                 call    dos_upper
seg000:389F                 pop     bx
seg000:38A0                 mov     byte ptr [bp+gai_input], al
seg000:38A3                 cbw
seg000:38A4                 sub     ax, 0Dh
seg000:38A7                 jz      short gai_9
seg000:38A9                 sub     ax, 0Eh
seg000:38AC                 jz      short gai_8
seg000:38AE                 mov     al, byte ptr [bp+gai_input]
seg000:38B1                 cbw
seg000:38B2                 mov     bx, ax
seg000:38B4                 test    ds:isdigit[bx], 3
seg000:38B9                 jz      short gai_6
seg000:38BB                 push    ax
seg000:38BC                 call    dos_upper
seg000:38BF                 pop     bx
seg000:38C0                 cmp     al, [bp+ga_i_low_letter]
seg000:38C3                 jl      short gai_6
seg000:38C5                 mov     al, byte ptr [bp+gai_input]
seg000:38C8                 push    ax
seg000:38C9                 call    dos_upper
seg000:38CC                 pop     bx
seg000:38CD                 cmp     al, [bp+ga_i_high_letter]
seg000:38D0                 jle     short gai_7
seg000:38D2
seg000:38D2 gai_6:                                  ; CODE XREF: get_alpha_input+6Dj
seg000:38D2                                         ; get_alpha_input+77j
seg000:38D2                 jmp     gai_13
seg000:38D5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:38D5
seg000:38D5 gai_7:                                  ; CODE XREF: get_alpha_input+84j
seg000:38D5                 mov     ax, 79
seg000:38D8                 push    ax
seg000:38D9                 mov     ax, 23
seg000:38DC                 push    ax
seg000:38DD                 sub     cx, cx
seg000:38DF                 push    cx
seg000:38E0                 push    ax
seg000:38E1                 call    clear_screen
seg000:38E4                 add     sp, 8
seg000:38E7                 jmp     gai_16
seg000:38EA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:38EA
seg000:38EA gai_8:                                  ; CODE XREF: get_alpha_input+60j
seg000:38EA                                         ; get_alpha_input+D5j
seg000:38EA                 mov     ds:valid_input, 1
seg000:38EF                 jmp     short gai_4
seg000:38F1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:38F1
seg000:38F1 gai_9:                                  ; CODE XREF: get_alpha_input+5Bj
seg000:38F1                 mov     al, [bp+gai_input_value]
seg000:38F4                 push    ax
seg000:38F5                 call    dos_upper
seg000:38F8                 pop     bx
seg000:38F9                 mov     byte ptr [bp+gai_input], al
seg000:38FC                 cbw
seg000:38FD                 mov     bx, ax
seg000:38FF                 test    ds:isdigit[bx], 3
seg000:3904                 jz      short gai_10
seg000:3906                 mov     al, [bp+ga_i_low_letter]
seg000:3909                 cmp     byte ptr [bp+gai_input], al
seg000:390C                 jl      short gai_10
seg000:390E                 mov     al, [bp+ga_i_high_letter]
seg000:3911                 cmp     byte ptr [bp+gai_input], al
seg000:3914                 jg      short gai_10
seg000:3916                 mov     al, [bp+gai_input_value]
seg000:3919                 cbw
seg000:391A                 mov     bx, ax
seg000:391C                 test    ds:isdigit[bx], 3
seg000:3921                 jnz     short gai_8
seg000:3923
seg000:3923 gai_10:                                 ; CODE XREF: get_alpha_input+B8j
seg000:3923                                         ; get_alpha_input+C0j ...
seg000:3923                 mov     al, [bp+gai_input_value]
seg000:3926                 cbw
seg000:3927                 mov     bx, ax
seg000:3929                 test    ds:isdigit[bx], 3
seg000:392E                 jz      short gai_11
seg000:3930                 mov     al, byte ptr [bp+gai_input]
seg000:3933                 mov     ds:insert, al
seg000:3936                 mov     al, [bp+ga_i_err_low_lett]
seg000:3939                 mov     ds:insert+1, al
seg000:393C                 mov     ds:insert+2, '-'
seg000:3941                 mov     al, [bp+ga_i_err_high_lett]
seg000:3944                 mov     ds:insert+3, al
seg000:3947                 push    ds:error_23_seg
seg000:394B                 push    ds:error_23_off
seg000:394F                 jmp     short gai_12
seg000:3951 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3951
seg000:3951 gai_11:                                 ; CODE XREF: get_alpha_input+E2j
seg000:3951                 mov     al, [bp+ga_i_err_low_lett]
seg000:3954                 mov     ds:insert, al
seg000:3957                 mov     ds:insert+1, '-'
seg000:395C                 mov     al, [bp+ga_i_err_high_lett]
seg000:395F                 mov     ds:insert+2, al
seg000:3962                 push    ds:error_31_seg
seg000:3966                 push    ds:error_31_off
seg000:396A
seg000:396A gai_12:                                 ; CODE XREF: get_alpha_input+103j
seg000:396A                 call    display
seg000:396D                 pop     bx
seg000:396E                 pop     bx
seg000:396F                 jmp     gai_4
seg000:3972 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3972
seg000:3972 gai_13:                                 ; CODE XREF: get_alpha_input:gai_6j
seg000:3972                 mov     al, byte ptr [bp+gai_input]
seg000:3975                 cbw
seg000:3976                 mov     bx, ax
seg000:3978                 test    ds:isdigit[bx], 3
seg000:397D                 jz      short gai_14
seg000:397F                 mov     ds:insert, al
seg000:3982                 mov     al, [bp+ga_i_err_low_lett]
seg000:3985                 mov     ds:insert+1, al
seg000:3988                 mov     ds:insert+2, '-'
seg000:398D                 mov     al, [bp+ga_i_err_high_lett]
seg000:3990                 mov     ds:insert+3, al
seg000:3993                 push    ds:error_23_seg
seg000:3997                 push    ds:error_23_off
seg000:399B                 jmp     short gai_15
seg000:399D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:399D
seg000:399D gai_14:                                 ; CODE XREF: get_alpha_input+131j
seg000:399D                 mov     al, [bp+ga_i_err_low_lett]
seg000:39A0                 mov     ds:insert, al
seg000:39A3                 mov     ds:insert+1, '-'
seg000:39A8                 mov     al, [bp+ga_i_err_high_lett]
seg000:39AB                 mov     ds:insert+2, al
seg000:39AE                 push    ds:error_31_seg
seg000:39B2                 push    ds:error_31_off
seg000:39B6
seg000:39B6 gai_15:                                 ; CODE XREF: get_alpha_input+14Fj
seg000:39B6                 call    display
seg000:39B9                 pop     bx
seg000:39BA                 pop     bx
seg000:39BB                 mov     byte ptr [bp+gai_input], ' '
seg000:39BF
seg000:39BF gai_16:                                 ; CODE XREF: get_alpha_input+9Bj
seg000:39BF                 push    [bp+gai_input_ptr2]
seg000:39C2                 push    [bp+gai_input_ptr]
seg000:39C5                 mov     ax, 1
seg000:39C8                 push    ax
seg000:39C9                 push    [bp+ga_i_row]
seg000:39CC                 push    [bp+ga_i_col]
seg000:39CF                 push    [bp+gai_attributeptr2]
seg000:39D2                 push    [bp+gai_attributeptr]
seg000:39D5                 sub     ax, ax
seg000:39D7                 push    ax
seg000:39D8                 call    VIOWRTCHARSTRATT
seg000:39DD                 mov     [bp+gai_default_used], 0
seg000:39E1                 mov     al, byte ptr [bp+gai_input]
seg000:39E4                 jmp     gai_3
seg000:39E7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:39E7
seg000:39E7 gai_17:                                 ; CODE XREF: get_alpha_input+38j
seg000:39E7                 mov     al, byte ptr [bp+gai_input]
seg000:39EA                 mov     sp, bp
seg000:39EC                 pop     bp
seg000:39ED                 retn
seg000:39ED get_alpha_input endp
seg000:39ED
seg000:39EE
seg000:39EE ; --------------- S U B R O U T I N E ---------------------------------------
seg000:39EE
seg000:39EE
seg000:39EE get_char_input  proc near               ; CODE XREF: get_num_input+7Ep
seg000:39EE                                         ; get_yn_input+78p ...
seg000:39EE                 mov     byte ptr ds:regs_x_ax+1, 0Ch
seg000:39F3                 mov     byte ptr ds:regs_x_ax, 7
seg000:39F8                 mov     ax, offset regs_x_ax
seg000:39FB                 push    ax
seg000:39FC                 push    ax
seg000:39FD                 call    intdos
seg000:3A00                 pop     bx
seg000:3A01                 pop     bx
seg000:3A02                 cmp     byte ptr ds:regs_x_ax, 0
seg000:3A07                 jnz     short gci_1
seg000:3A09                 mov     ax, 900
seg000:3A0C                 push    ax
seg000:3A0D                 mov     ax, 400
seg000:3A10                 push    ax
seg000:3A11                 call    DOSBEEP
seg000:3A16
seg000:3A16 gci_1:                                  ; CODE XREF: get_char_input+19j
seg000:3A16                 mov     al, byte ptr ds:regs_x_ax
seg000:3A19                 retn
seg000:3A19 get_char_input  endp
seg000:3A19
seg000:3A1A
seg000:3A1A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:3A1A
seg000:3A1A ; Attributes: bp-based frame
seg000:3A1A
seg000:3A1A get_string_input proc near              ; CODE XREF: dos_delete+1D7p
seg000:3A1A                                         ; volume_delete+1F7p
seg000:3A1A
seg000:3A1A gsi_col         = word ptr -1Ah
seg000:3A1A gsi_deleteptr   = dword ptr -18h
seg000:3A1A gsi_attribute_ptr= word ptr -14h
seg000:3A1A gsi_attribute_ptr2= word ptr -12h
seg000:3A1A gsi_row         = word ptr -10h
seg000:3A1A gsi_workingptr  = dword ptr -0Eh
seg000:3A1A gsi_done        = byte ptr -0Ah
seg000:3A1A gsi_input_ptr   = word ptr -8
seg000:3A1A gsi_input_ptr2  = word ptr -6
seg000:3A1A gsi_attribute   = word ptr -4
seg000:3A1A gsi_input       = word ptr -2
seg000:3A1A gs_i_startrow   = word ptr  4
seg000:3A1A gs_i_startcol   = word ptr  6
seg000:3A1A gs_i_stringptr  = dword ptr  8
seg000:3A1A
seg000:3A1A                 push    bp
seg000:3A1B                 mov     bp, sp
seg000:3A1D                 sub     sp, 26
seg000:3A20                 lea     ax, [bp+gsi_attribute]
seg000:3A23                 mov     [bp+gsi_attribute_ptr], ax
seg000:3A26                 mov     [bp+gsi_attribute_ptr2], ss
seg000:3A29                 lea     cx, [bp+gsi_input]
seg000:3A2C                 mov     [bp+gsi_input_ptr], cx
seg000:3A2F                 mov     [bp+gsi_input_ptr2], ss
seg000:3A32                 cmp     ds:mono_flag, 1
seg000:3A37                 jnz     short gsi_1
seg000:3A39                 mov     byte ptr [bp+gsi_attribute], 0Fh
seg000:3A3D                 jmp     short gsi_2
seg000:3A3F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3A3F
seg000:3A3F gsi_1:                                  ; CODE XREF: get_string_input+1Dj
seg000:3A3F                 mov     byte ptr [bp+gsi_attribute], 1Fh
seg000:3A43
seg000:3A43 gsi_2:                                  ; CODE XREF: get_string_input+23j
seg000:3A43                 mov     ax, word ptr [bp+gs_i_stringptr]
seg000:3A46                 mov     dx, word ptr [bp+gs_i_stringptr+2]
seg000:3A49                 mov     word ptr [bp+gsi_workingptr], ax
seg000:3A4C                 mov     word ptr [bp+gsi_workingptr+2], dx
seg000:3A4F                 mov     ax, [bp+gs_i_startrow]
seg000:3A52                 mov     [bp+gsi_row], ax
seg000:3A55                 mov     cx, [bp+gs_i_startcol]
seg000:3A58                 mov     [bp+gsi_col], cx
seg000:3A5B                 push    ax
seg000:3A5C                 push    cx
seg000:3A5D                 jmp     short gsi_4
seg000:3A5F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3A5F
seg000:3A5F gsi_3:                                  ; CODE XREF: get_string_input+7Aj
seg000:3A5F                 push    es
seg000:3A60                 push    bx
seg000:3A61                 mov     ax, 1
seg000:3A64                 push    ax
seg000:3A65                 push    [bp+gsi_row]
seg000:3A68                 push    [bp+gsi_col]
seg000:3A6B                 push    [bp+gsi_attribute_ptr2]
seg000:3A6E                 push    [bp+gsi_attribute_ptr]
seg000:3A71                 sub     cx, cx
seg000:3A73                 push    cx
seg000:3A74                 call    VIOWRTCHARSTRATT
seg000:3A79                 inc     word ptr [bp+gsi_workingptr]
seg000:3A7C                 push    [bp+gsi_row]
seg000:3A7F                 inc     [bp+gsi_col]
seg000:3A82                 push    [bp+gsi_col]
seg000:3A85
seg000:3A85 gsi_4:                                  ; CODE XREF: get_string_input+43j
seg000:3A85                 sub     ax, ax
seg000:3A87                 push    ax
seg000:3A88                 call    VIOSETCURPOS
seg000:3A8D                 les     bx, [bp+gsi_workingptr]
seg000:3A90                 cmp     byte ptr es:[bx], 0
seg000:3A94                 jnz     short gsi_3
seg000:3A96                 mov     byte ptr ds:regs_x_ax+1, 0Ch
seg000:3A9B                 mov     byte ptr ds:regs_x_ax, 7
seg000:3AA0                 mov     ax, offset regs_x_ax
seg000:3AA3                 push    ax
seg000:3AA4                 push    ax
seg000:3AA5                 call    intdos
seg000:3AA8                 pop     bx
seg000:3AA9                 pop     bx
seg000:3AAA                 mov     al, byte ptr ds:regs_x_ax
seg000:3AAD                 mov     byte ptr [bp+gsi_input], al
seg000:3AB0                 mov     [bp+gsi_done], 0
seg000:3AB4
seg000:3AB4 gsi_5:                                  ; CODE XREF: get_string_input+2FEj
seg000:3AB4                 cmp     byte ptr [bp+gsi_input], 32
seg000:3AB8                 jb      short gsi_6
seg000:3ABA                 jmp     gsi_26
seg000:3ABD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3ABD
seg000:3ABD gsi_6:                                  ; CODE XREF: get_string_input+9Ej
seg000:3ABD                 mov     al, byte ptr [bp+gsi_input]
seg000:3AC0                 sub     ah, ah
seg000:3AC2                 cmp     ax, 1Bh
seg000:3AC5                 jz      short gsi_9
seg000:3AC7                 jbe     short gsi_7
seg000:3AC9                 jmp     gsi_29
seg000:3ACC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3ACC
seg000:3ACC gsi_7:                                  ; CODE XREF: get_string_input+ADj
seg000:3ACC                 or      al, al
seg000:3ACE                 jnz     short gsi_8
seg000:3AD0                 jmp     gsi_15
seg000:3AD3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3AD3
seg000:3AD3 gsi_8:                                  ; CODE XREF: get_string_input+B4j
seg000:3AD3                 sub     al, 8
seg000:3AD5                 jz      short gsi_11
seg000:3AD7                 sub     al, 5
seg000:3AD9                 jz      short gsi_10
seg000:3ADB                 jmp     gsi_29
seg000:3ADE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3ADE
seg000:3ADE gsi_9:                                  ; CODE XREF: get_string_input+ABj
seg000:3ADE                 mov     [bp+gsi_done], 1
seg000:3AE2                 les     bx, [bp+gs_i_stringptr]
seg000:3AE5                 inc     word ptr [bp+gs_i_stringptr]
seg000:3AE8                 mov     byte ptr es:[bx], 1Bh
seg000:3AEC                 les     bx, [bp+gs_i_stringptr]
seg000:3AEF                 inc     word ptr [bp+gs_i_stringptr]
seg000:3AF2                 mov     byte ptr es:[bx], 0
seg000:3AF6                 jmp     gsi_30
seg000:3AF9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3AF9
seg000:3AF9 gsi_10:                                 ; CODE XREF: get_string_input+BFj
seg000:3AF9                 mov     [bp+gsi_done], 1
seg000:3AFD                 jmp     gsi_30
seg000:3B00 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3B00
seg000:3B00 gsi_11:                                 ; CODE XREF: get_string_input+BBj
seg000:3B00                 mov     ax, [bp+gs_i_startcol]
seg000:3B03                 cmp     [bp+gsi_col], ax
seg000:3B06                 ja      short gsi_12
seg000:3B08                 jmp     gsi_29
seg000:3B0B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3B0B
seg000:3B0B gsi_12:                                 ; CODE XREF: get_string_input+ECj
seg000:3B0B                 push    [bp+gsi_row]
seg000:3B0E                 dec     [bp+gsi_col]
seg000:3B11                 mov     ax, [bp+gsi_col]
seg000:3B14                 push    ax
seg000:3B15                 sub     cx, cx
seg000:3B17                 push    cx
seg000:3B18                 call    VIOSETCURPOS
seg000:3B1D                 mov     byte ptr [bp+gsi_input], ' '
seg000:3B21                 push    [bp+gsi_input_ptr2]
seg000:3B24                 push    [bp+gsi_input_ptr]
seg000:3B27                 mov     ax, 1
seg000:3B2A                 push    ax
seg000:3B2B                 push    [bp+gsi_row]
seg000:3B2E                 push    [bp+gsi_col]
seg000:3B31                 push    [bp+gsi_attribute_ptr2]
seg000:3B34                 push    [bp+gsi_attribute_ptr]
seg000:3B37                 sub     ax, ax
seg000:3B39                 push    ax
seg000:3B3A                 call    VIOWRTCHARSTRATT
seg000:3B3F                 push    [bp+gsi_row]
seg000:3B42                 push    [bp+gsi_col]
seg000:3B45                 sub     ax, ax
seg000:3B47                 push    ax
seg000:3B48                 call    VIOSETCURPOS
seg000:3B4D                 dec     word ptr [bp+gsi_workingptr]
seg000:3B50                 mov     ax, word ptr [bp+gsi_workingptr]
seg000:3B53                 mov     dx, word ptr [bp+gsi_workingptr+2]
seg000:3B56                 mov     word ptr [bp+gsi_deleteptr], ax
seg000:3B59                 mov     word ptr [bp+gsi_deleteptr+2], dx
seg000:3B5C                 jmp     short gsi_14
seg000:3B5E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3B5E
seg000:3B5E gsi_13:                                 ; CODE XREF: get_string_input+177j
seg000:3B5E                 mov     al, es:[bx+1]
seg000:3B62                 mov     es:[bx], al
seg000:3B65                 push    es
seg000:3B66                 push    bx
seg000:3B67                 mov     ax, 1
seg000:3B6A                 push    ax
seg000:3B6B                 push    [bp+gsi_row]
seg000:3B6E                 push    [bp+gsi_col]
seg000:3B71                 push    [bp+gsi_attribute_ptr2]
seg000:3B74                 push    [bp+gsi_attribute_ptr]
seg000:3B77                 sub     ax, ax
seg000:3B79                 push    ax
seg000:3B7A                 call    VIOWRTCHARSTRATT
seg000:3B7F                 mov     ax, word ptr [bp+gsi_deleteptr]
seg000:3B82                 mov     dx, word ptr [bp+gsi_deleteptr+2]
seg000:3B85                 inc     ax
seg000:3B86                 mov     word ptr [bp+gsi_deleteptr], ax
seg000:3B89
seg000:3B89 gsi_14:                                 ; CODE XREF: get_string_input+142j
seg000:3B89                 les     bx, [bp+gsi_deleteptr]
seg000:3B8C                 cmp     byte ptr es:[bx+1], 0
seg000:3B91                 jnz     short gsi_13
seg000:3B93                 mov     byte ptr es:[bx], 0
seg000:3B97                 mov     byte ptr [bp+gsi_input], ' '
seg000:3B9B                 push    [bp+gsi_input_ptr2]
seg000:3B9E                 push    [bp+gsi_input_ptr]
seg000:3BA1                 mov     ax, 1
seg000:3BA4                 push    ax
seg000:3BA5                 push    [bp+gsi_row]
seg000:3BA8                 add     ax, [bp+gsi_col]
seg000:3BAB                 push    ax
seg000:3BAC                 push    [bp+gsi_attribute_ptr2]
seg000:3BAF                 push    [bp+gsi_attribute_ptr]
seg000:3BB2                 sub     ax, ax
seg000:3BB4                 push    ax
seg000:3BB5                 call    VIOWRTCHARSTRATT
seg000:3BBA                 jmp     gsi_28
seg000:3BBD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3BBD
seg000:3BBD gsi_15:                                 ; CODE XREF: get_string_input+B6j
seg000:3BBD                 mov     byte ptr ds:regs_x_ax+1, 7
seg000:3BC2                 mov     ax, offset regs_x_ax
seg000:3BC5                 push    ax
seg000:3BC6                 push    ax
seg000:3BC7                 call    intdos
seg000:3BCA                 pop     bx
seg000:3BCB                 pop     bx
seg000:3BCC                 mov     al, byte ptr ds:regs_x_ax
seg000:3BCF                 mov     byte ptr [bp+gsi_input], al
seg000:3BD2                 sub     ah, ah
seg000:3BD4                 cmp     ax, 79
seg000:3BD7                 jz      short gsi_19
seg000:3BD9                 jbe     short gsi_16
seg000:3BDB                 jmp     gsi_29
seg000:3BDE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3BDE
seg000:3BDE gsi_16:                                 ; CODE XREF: get_string_input+1BFj
seg000:3BDE                 sub     al, 71
seg000:3BE0                 jz      short gsi_17
seg000:3BE2                 sub     al, 4
seg000:3BE4                 jz      short gsi_21
seg000:3BE6                 sub     al, 2
seg000:3BE8                 jz      short gsi_23
seg000:3BEA                 jmp     gsi_29
seg000:3BED ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3BED
seg000:3BED gsi_17:                                 ; CODE XREF: get_string_input+1C6j
seg000:3BED                 mov     ax, word ptr [bp+gs_i_stringptr]
seg000:3BF0                 mov     dx, word ptr [bp+gs_i_stringptr+2]
seg000:3BF3                 mov     word ptr [bp+gsi_workingptr], ax
seg000:3BF6                 mov     word ptr [bp+gsi_workingptr+2], dx
seg000:3BF9                 mov     ax, [bp+gs_i_startrow]
seg000:3BFC                 mov     [bp+gsi_row], ax
seg000:3BFF                 mov     cx, [bp+gs_i_startcol]
seg000:3C02                 mov     [bp+gsi_col], cx
seg000:3C05                 push    ax
seg000:3C06                 push    cx
seg000:3C07
seg000:3C07 gsi_18:                                 ; CODE XREF: get_string_input+248j
seg000:3C07                 sub     ax, ax
seg000:3C09                 push    ax
seg000:3C0A                 call    VIOSETCURPOS
seg000:3C0F                 jmp     gsi_30
seg000:3C12 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3C12
seg000:3C12 gsi_19:                                 ; CODE XREF: get_string_input+1BDj
seg000:3C12                                         ; get_string_input+218j
seg000:3C12                 les     bx, [bp+gsi_workingptr]
seg000:3C15                 cmp     byte ptr es:[bx], 0
seg000:3C19                 jnz     short gsi_20
seg000:3C1B                 jmp     gsi_30
seg000:3C1E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3C1E
seg000:3C1E gsi_20:                                 ; CODE XREF: get_string_input+1FFj
seg000:3C1E                 inc     word ptr [bp+gsi_workingptr]
seg000:3C21                 push    [bp+gsi_row]
seg000:3C24                 inc     [bp+gsi_col]
seg000:3C27                 push    [bp+gsi_col]
seg000:3C2A                 sub     ax, ax
seg000:3C2C                 push    ax
seg000:3C2D                 call    VIOSETCURPOS
seg000:3C32                 jmp     short gsi_19
seg000:3C34 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3C34
seg000:3C34 gsi_21:                                 ; CODE XREF: get_string_input+1CAj
seg000:3C34                 mov     ax, [bp+gs_i_startcol]
seg000:3C37                 cmp     [bp+gsi_col], ax
seg000:3C3A                 ja      short gsi_22
seg000:3C3C                 jmp     gsi_29
seg000:3C3F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3C3F
seg000:3C3F gsi_22:                                 ; CODE XREF: get_string_input+220j
seg000:3C3F                 dec     word ptr [bp+gsi_workingptr]
seg000:3C42                 push    [bp+gsi_row]
seg000:3C45                 dec     [bp+gsi_col]
seg000:3C48                 jmp     short gsi_25
seg000:3C4A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3C4A
seg000:3C4A gsi_23:                                 ; CODE XREF: get_string_input+1CEj
seg000:3C4A                 les     bx, [bp+gsi_workingptr]
seg000:3C4D                 cmp     byte ptr es:[bx], 0
seg000:3C51                 jnz     short gsi_24
seg000:3C53                 jmp     gsi_29
seg000:3C56 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3C56
seg000:3C56 gsi_24:                                 ; CODE XREF: get_string_input+237j
seg000:3C56                 inc     word ptr [bp+gsi_workingptr]
seg000:3C59                 push    [bp+gsi_row]
seg000:3C5C                 inc     [bp+gsi_col]
seg000:3C5F
seg000:3C5F gsi_25:                                 ; CODE XREF: get_string_input+22Ej
seg000:3C5F                                         ; get_string_input+2CDj
seg000:3C5F                 push    [bp+gsi_col]
seg000:3C62                 jmp     short gsi_18
seg000:3C64 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3C64
seg000:3C64 gsi_26:                                 ; CODE XREF: get_string_input+A0j
seg000:3C64                 mov     al, byte ptr [bp+gsi_input]
seg000:3C67                 push    ax
seg000:3C68                 call    dos_upper
seg000:3C6B                 pop     bx
seg000:3C6C                 mov     byte ptr [bp+gsi_input], al
seg000:3C6F                 sub     ah, ah
seg000:3C71                 push    ax
seg000:3C72                 mov     ax, offset invstrchars ; ".\"/\\[]:|<>+=;,"
seg000:3C75                 push    ax
seg000:3C76                 call    strchr
seg000:3C79                 pop     bx
seg000:3C7A                 pop     bx
seg000:3C7B                 or      ax, ax
seg000:3C7D                 jnz     short gsi_29
seg000:3C7F                 mov     ax, [bp+gs_i_startcol]
seg000:3C82                 add     ax, 11
seg000:3C85                 cmp     ax, [bp+gsi_col]
seg000:3C88                 jbe     short gsi_29
seg000:3C8A                 cmp     byte ptr [bp+gsi_input], 3
seg000:3C8E                 jnz     short gsi_27
seg000:3C90                 mov     ax, 900
seg000:3C93                 push    ax
seg000:3C94                 mov     ax, 400
seg000:3C97                 push    ax
seg000:3C98                 call    DOSBEEP
seg000:3C9D                 mov     byte ptr [bp+gsi_input], ' '
seg000:3CA1
seg000:3CA1 gsi_27:                                 ; CODE XREF: get_string_input+274j
seg000:3CA1                 push    [bp+gsi_input_ptr2]
seg000:3CA4                 push    [bp+gsi_input_ptr]
seg000:3CA7                 mov     ax, 1
seg000:3CAA                 push    ax
seg000:3CAB                 push    [bp+gsi_row]
seg000:3CAE                 push    [bp+gsi_col]
seg000:3CB1                 push    [bp+gsi_attribute_ptr2]
seg000:3CB4                 push    [bp+gsi_attribute_ptr]
seg000:3CB7                 sub     ax, ax
seg000:3CB9                 push    ax
seg000:3CBA                 call    VIOWRTCHARSTRATT
seg000:3CBF                 mov     al, byte ptr [bp+gsi_input]
seg000:3CC2                 les     bx, [bp+gsi_workingptr]
seg000:3CC5                 mov     es:[bx], al
seg000:3CC8                 mov     byte ptr es:[bx+1], 0
seg000:3CCD                 mov     ax, [bp+gs_i_startcol]
seg000:3CD0                 add     ax, 10
seg000:3CD3                 cmp     ax, [bp+gsi_col]
seg000:3CD6                 jbe     short gsi_28
seg000:3CD8                 inc     [bp+gsi_col]
seg000:3CDB                 lea     ax, [bx+1]
seg000:3CDE                 mov     word ptr [bp+gsi_workingptr], ax
seg000:3CE1                 mov     word ptr [bp+gsi_workingptr+2], es
seg000:3CE4
seg000:3CE4 gsi_28:                                 ; CODE XREF: get_string_input+1A0j
seg000:3CE4                                         ; get_string_input+2BCj
seg000:3CE4                 push    [bp+gsi_row]
seg000:3CE7                 jmp     gsi_25
seg000:3CEA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3CEA
seg000:3CEA gsi_29:                                 ; CODE XREF: get_string_input+AFj
seg000:3CEA                                         ; get_string_input+C1j ...
seg000:3CEA                 mov     ax, 900
seg000:3CED                 push    ax
seg000:3CEE                 mov     ax, 400
seg000:3CF1                 push    ax
seg000:3CF2                 call    DOSBEEP
seg000:3CF7
seg000:3CF7 gsi_30:                                 ; CODE XREF: get_string_input+DCj
seg000:3CF7                                         ; get_string_input+E3j ...
seg000:3CF7                 cmp     [bp+gsi_done], 0
seg000:3CFB                 jnz     short gsi_31
seg000:3CFD                 mov     byte ptr ds:regs_x_ax+1, 7
seg000:3D02                 mov     ax, offset regs_x_ax
seg000:3D05                 push    ax
seg000:3D06                 push    ax
seg000:3D07                 call    intdos
seg000:3D0A                 pop     bx
seg000:3D0B                 pop     bx
seg000:3D0C                 mov     al, byte ptr ds:regs_x_ax
seg000:3D0F                 mov     byte ptr [bp+gsi_input], al
seg000:3D12
seg000:3D12 gsi_31:                                 ; CODE XREF: get_string_input+2E1j
seg000:3D12                 cmp     [bp+gsi_done], 0
seg000:3D16                 jnz     short gsi_32
seg000:3D18                 jmp     gsi_5
seg000:3D1B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3D1B
seg000:3D1B gsi_32:                                 ; CODE XREF: get_string_input+2FCj
seg000:3D1B                 mov     sp, bp
seg000:3D1D                 pop     bp
seg000:3D1E                 retn
seg000:3D1E get_string_input endp
seg000:3D1E
seg000:3D1E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3D1F                 align 2
seg000:3D20
seg000:3D20 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:3D20
seg000:3D20 ; Attributes: bp-based frame
seg000:3D20
seg000:3D20 table_display   proc near               ; CODE XREF: dos_delete+4Bp
seg000:3D20                                         ; dos_delete+245p ...
seg000:3D20
seg000:3D20 td_i            = word ptr -0Eh
seg000:3D20 partition_num   = byte ptr -0Ch
seg000:3D20 td_io           = word ptr -0Ah
seg000:3D20 partition_found = byte ptr -8
seg000:3D20 ThisPartitionType= word ptr -6
seg000:3D20 ThisPartitionLetter= word ptr -4
seg000:3D20
seg000:3D20                 push    bp
seg000:3D21                 mov     bp, sp
seg000:3D23                 sub     sp, 14
seg000:3D26                 push    si
seg000:3D27                 mov     ax, 152
seg000:3D2A                 push    ax
seg000:3D2B                 mov     ax, ' '
seg000:3D2E                 push    ax
seg000:3D2F                 mov     ax, offset insert
seg000:3D32                 push    ax
seg000:3D33                 call    memset
seg000:3D36                 add     sp, 6
seg000:3D39                 call    get_letters
seg000:3D3C                 mov     al, 4
seg000:3D3E                 push    ax
seg000:3D3F                 call    sort_part_table
seg000:3D42                 pop     bx
seg000:3D43                 sub     al, al
seg000:3D45                 mov     [bp+partition_found], al
seg000:3D48                 mov     [bp+partition_num], al
seg000:3D4B                 sub     ax, ax
seg000:3D4D                 mov     [bp+td_io], ax
seg000:3D50                 mov     [bp+td_i], ax
seg000:3D53                 jmp     td_16
seg000:3D56 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3D56
seg000:3D56 td_ptype_PRIDOS:                        ; CODE XREF: table_display+168j
seg000:3D56                                         ; table_display+17Aj ...
seg000:3D56                 mov     ax, ds:PRIDOS
seg000:3D59                 mov     [bp+ThisPartitionType], ax
seg000:3D5C                 mov     al, ds:cur_disk
seg000:3D5F                 cbw
seg000:3D60                 shl     ax, 1
seg000:3D62                 shl     ax, 1
seg000:3D64                 mov     bx, [bp+td_i]
seg000:3D67                 mov     cx, ax
seg000:3D69                 mov     al, ds:sort[bx]
seg000:3D6D                 cbw
seg000:3D6E                 add     ax, cx
seg000:3D70                 mov     cx, 46
seg000:3D73                 imul    cx
seg000:3D75                 mov     bx, ax
seg000:3D77                 cmp     ds:part_table_drive_letter[bx], ' '
seg000:3D7C                 jnz     short td_02
seg000:3D7E                 mov     ax, ' '
seg000:3D81                 jmp     short td_03
seg000:3D83 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3D83
seg000:3D83 td_02:                                  ; CODE XREF: table_display+5Cj
seg000:3D83                 mov     ax, ':'
seg000:3D86
seg000:3D86 td_03:                                  ; CODE XREF: table_display+61j
seg000:3D86                 push    ax
seg000:3D87                 mov     al, ds:part_table_drive_letter[bx]
seg000:3D8B                 cbw
seg000:3D8C                 push    ax
seg000:3D8D                 mov     ax, offset twochars ; "%c%c"
seg000:3D90                 push    ax
seg000:3D91                 lea     ax, [bp+ThisPartitionLetter]
seg000:3D94                 push    ax
seg000:3D95                 call    sprintf
seg000:3D98                 add     sp, 8
seg000:3D9B
seg000:3D9B td_04:                                  ; CODE XREF: table_display+BEj
seg000:3D9B                 mov     al, ds:cur_disk
seg000:3D9E                 cbw
seg000:3D9F                 shl     ax, 1
seg000:3DA1                 shl     ax, 1
seg000:3DA3                 mov     bx, [bp+td_i]
seg000:3DA6                 mov     cx, ax
seg000:3DA8                 mov     al, ds:sort[bx]
seg000:3DAC                 cbw
seg000:3DAD                 add     ax, cx
seg000:3DAF                 mov     cx, 46
seg000:3DB2                 imul    cx
seg000:3DB4                 mov     bx, ax
seg000:3DB6                 push    ds:part_table_percent_used[bx]
seg000:3DBA                 add     bx, offset part_table_system
seg000:3DBE                 push    bx
seg000:3DBF                 mov     bx, ax
seg000:3DC1                 push    ds:part_table_mbytes_used[bx]
seg000:3DC5                 add     ax, offset part_table_vol_label
seg000:3DC8                 push    ax
seg000:3DC9                 push    [bp+ThisPartitionType]
seg000:3DCC                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:3DD1                 jnz     short td_13
seg000:3DD3                 mov     ax, 'A'
seg000:3DD6                 jmp     short td_14
seg000:3DD8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DD8
seg000:3DD8 td_ptype_EXTENDED:                      ; CODE XREF: table_display+180j
seg000:3DD8                 mov     ax, ds:EXTDOS
seg000:3DDB
seg000:3DDB td_06:                                  ; CODE XREF: table_display+C3j
seg000:3DDB                                         ; table_display+C8j ...
seg000:3DDB                 mov     [bp+ThisPartitionType], ax
seg000:3DDE                 jmp     short td_04
seg000:3DE0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DE0
seg000:3DE0 td_ptype_TABLE:                         ; CODE XREF: table_display+1ACj
seg000:3DE0                 mov     ax, ds:TABLE
seg000:3DE3                 jmp     short td_06
seg000:3DE5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DE5
seg000:3DE5 td_ptype_XENIX:                         ; CODE XREF: table_display+16Ej
seg000:3DE5                                         ; table_display+174j
seg000:3DE5                 mov     ax, ds:XENIX
seg000:3DE8                 jmp     short td_06
seg000:3DEA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DEA
seg000:3DEA td_ptype_PCIX:                          ; CODE XREF: table_display+19Cj
seg000:3DEA                 mov     ax, ds:PCIX
seg000:3DED                 jmp     short td_06
seg000:3DEF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DEF
seg000:3DEF td_ptype_HPFS:                          ; CODE XREF: table_display+18Cj
seg000:3DEF                 mov     ax, ds:HPFS
seg000:3DF2                 jmp     short td_06
seg000:3DF4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DF4
seg000:3DF4 td_ptype_NOVELL:                        ; CODE XREF: table_display+194j
seg000:3DF4                 mov     ax, ds:NOVELL
seg000:3DF7                 jmp     short td_06
seg000:3DF9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DF9
seg000:3DF9 td_ptype_CPM:                           ; CODE XREF: table_display+1A4j
seg000:3DF9                 mov     ax, ds:CPM
seg000:3DFC                 jmp     short td_06
seg000:3DFE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3DFE
seg000:3DFE td_13:                                  ; CODE XREF: table_display+B1j
seg000:3DFE                 mov     ax, ' '
seg000:3E01
seg000:3E01 td_14:                                  ; CODE XREF: table_display+B6j
seg000:3E01                 push    ax
seg000:3E02                 mov     al, [bp+partition_num]
seg000:3E05                 cbw
seg000:3E06                 add     ax, '1'
seg000:3E09                 push    ax
seg000:3E0A                 lea     ax, [bp+ThisPartitionLetter]
seg000:3E0D                 push    ax
seg000:3E0E                 mov     ax, offset ptbl_row_format ; "%-2.2s%c%c%-7.7s%-11.11s%4.1d%-8.8s%3.1"...
seg000:3E11                 push    ax
seg000:3E12                 mov     ax, [bp+td_io]
seg000:3E15                 add     ax, offset insert
seg000:3E18                 push    ax
seg000:3E19                 call    sprintf
seg000:3E1C                 add     sp, 20
seg000:3E1F                 add     [bp+td_io], ax
seg000:3E22                 inc     [bp+partition_num]
seg000:3E25
seg000:3E25 td_15:                                  ; CODE XREF: table_display+131j
seg000:3E25                 inc     [bp+td_i]
seg000:3E28
seg000:3E28 td_16:                                  ; CODE XREF: table_display+33j
seg000:3E28                 cmp     [bp+td_i], 4
seg000:3E2C                 jb      short td_17
seg000:3E2E                 jmp     td_29
seg000:3E31 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3E31
seg000:3E31 td_17:                                  ; CODE XREF: table_display+10Cj
seg000:3E31                 mov     al, ds:cur_disk
seg000:3E34                 cbw
seg000:3E35                 shl     ax, 1
seg000:3E37                 shl     ax, 1
seg000:3E39                 mov     bx, [bp+td_i]
seg000:3E3C                 mov     cx, ax
seg000:3E3E                 mov     al, ds:sort[bx]
seg000:3E42                 cbw
seg000:3E43                 add     ax, cx
seg000:3E45                 mov     cx, 46
seg000:3E48                 imul    cx
seg000:3E4A                 mov     si, ax
seg000:3E4C                 cmp     ds:part_table_sys_id[si], 0
seg000:3E51                 jz      short td_15
seg000:3E53                 mov     [bp+partition_found], 1
seg000:3E57                 mov     ax, offset twospace ; "  "
seg000:3E5A                 push    ax
seg000:3E5B                 lea     ax, [bp+ThisPartitionLetter]
seg000:3E5E                 push    ax
seg000:3E5F                 call    strcpy
seg000:3E62                 pop     bx
seg000:3E63                 pop     bx
seg000:3E64                 mov     al, ds:cur_disk
seg000:3E67                 cbw
seg000:3E68                 shl     ax, 1
seg000:3E6A                 shl     ax, 1
seg000:3E6C                 mov     bx, [bp+td_i]
seg000:3E6F                 mov     cx, ax
seg000:3E71                 mov     al, ds:sort[bx]
seg000:3E75                 cbw
seg000:3E76                 add     ax, cx
seg000:3E78                 mov     cx, 46
seg000:3E7B                 imul    cx
seg000:3E7D                 mov     bx, ax
seg000:3E7F                 mov     al, ds:part_table_sys_id[bx]
seg000:3E83                 sub     ah, ah
seg000:3E85                 dec     ax
seg000:3E86                 jnz     short td_18
seg000:3E88                 jmp     td_ptype_PRIDOS
seg000:3E8B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3E8B
seg000:3E8B td_18:                                  ; CODE XREF: table_display+166j
seg000:3E8B                 dec     ax
seg000:3E8C                 jnz     short td_19
seg000:3E8E                 jmp     td_ptype_XENIX
seg000:3E91 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3E91
seg000:3E91 td_19:                                  ; CODE XREF: table_display+16Cj
seg000:3E91                 dec     ax
seg000:3E92                 jnz     short td_20
seg000:3E94                 jmp     td_ptype_XENIX
seg000:3E97 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3E97
seg000:3E97 td_20:                                  ; CODE XREF: table_display+172j
seg000:3E97                 dec     ax
seg000:3E98                 jnz     short td_21
seg000:3E9A                 jmp     td_ptype_PRIDOS
seg000:3E9D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3E9D
seg000:3E9D td_21:                                  ; CODE XREF: table_display+178j
seg000:3E9D                 dec     ax
seg000:3E9E                 jnz     short td_22
seg000:3EA0                 jmp     td_ptype_EXTENDED
seg000:3EA3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3EA3
seg000:3EA3 td_22:                                  ; CODE XREF: table_display+17Ej
seg000:3EA3                 dec     ax
seg000:3EA4                 jnz     short td_23
seg000:3EA6                 jmp     td_ptype_PRIDOS
seg000:3EA9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3EA9
seg000:3EA9 td_23:                                  ; CODE XREF: table_display+184j
seg000:3EA9                 dec     ax
seg000:3EAA                 jnz     short td_24
seg000:3EAC                 jmp     td_ptype_HPFS
seg000:3EAF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3EAF
seg000:3EAF td_24:                                  ; CODE XREF: table_display+18Aj
seg000:3EAF                 sub     ax, 5Dh
seg000:3EB2                 jnz     short td_25
seg000:3EB4                 jmp     td_ptype_NOVELL
seg000:3EB7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3EB7
seg000:3EB7 td_25:                                  ; CODE XREF: table_display+192j
seg000:3EB7                 sub     ax, 11h
seg000:3EBA                 jnz     short td_26
seg000:3EBC                 jmp     td_ptype_PCIX
seg000:3EBF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3EBF
seg000:3EBF td_26:                                  ; CODE XREF: table_display+19Aj
seg000:3EBF                 sub     ax, 66h
seg000:3EC2                 jnz     short td_27
seg000:3EC4                 jmp     td_ptype_CPM
seg000:3EC7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3EC7
seg000:3EC7 td_27:                                  ; CODE XREF: table_display+1A2j
seg000:3EC7                 sub     ax, 24h
seg000:3ECA                 jnz     short td_28
seg000:3ECC                 jmp     td_ptype_TABLE
seg000:3ECF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3ECF
seg000:3ECF td_28:                                  ; CODE XREF: table_display+1AAj
seg000:3ECF                 mov     ax, ds:NONDOS
seg000:3ED2                 jmp     td_06
seg000:3ED5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3ED5
seg000:3ED5 td_29:                                  ; CODE XREF: table_display+10Ej
seg000:3ED5                 mov     ax, 79
seg000:3ED8                 push    ax
seg000:3ED9                 mov     ax, 12
seg000:3EDC                 push    ax
seg000:3EDD                 sub     ax, ax
seg000:3EDF                 push    ax
seg000:3EE0                 mov     ax, 8
seg000:3EE3                 push    ax
seg000:3EE4                 call    clear_screen
seg000:3EE7                 add     sp, 8
seg000:3EEA                 cmp     [bp+partition_found], 0
seg000:3EEE                 jz      short td_30
seg000:3EF0                 push    ds:menu_14_segment
seg000:3EF4                 push    ds:menu_14_offset
seg000:3EF8                 jmp     short td_31
seg000:3EFA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3EFA
seg000:3EFA td_30:                                  ; CODE XREF: table_display+1CEj
seg000:3EFA                 push    ds:status_8_seg
seg000:3EFE                 push    ds:status_8_off
seg000:3F02
seg000:3F02 td_31:                                  ; CODE XREF: table_display+1D8j
seg000:3F02                 call    display
seg000:3F05                 pop     bx
seg000:3F06                 pop     bx
seg000:3F07                 cmp     [bp+partition_found], 0
seg000:3F0B                 jz      short td_32
seg000:3F0D                 mov     al, 1
seg000:3F0F                 jmp     short td_33
seg000:3F11 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3F11
seg000:3F11 td_32:                                  ; CODE XREF: table_display+1EBj
seg000:3F11                 sub     al, al
seg000:3F13
seg000:3F13 td_33:                                  ; CODE XREF: table_display+1EFj
seg000:3F13                 pop     si
seg000:3F14                 mov     sp, bp
seg000:3F16                 pop     bp
seg000:3F17                 retn
seg000:3F17 table_display   endp
seg000:3F17
seg000:3F18
seg000:3F18 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:3F18
seg000:3F18 ; Attributes: bp-based frame
seg000:3F18
seg000:3F18 get_letters     proc near               ; CODE XREF: table_display+19p
seg000:3F18                                         ; volume_display+7p ...
seg000:3F18
seg000:3F18 gdl_j           = byte ptr -8
seg000:3F18 gdl_i           = byte ptr -6
seg000:3F18 a_primary_count = byte ptr -4
seg000:3F18 p_part          = byte ptr -2
seg000:3F18
seg000:3F18                 push    bp
seg000:3F19                 mov     bp, sp
seg000:3F1B                 sub     sp, 8
seg000:3F1E                 mov     ds:next_letter, 'C'
seg000:3F23                 mov     [bp+gdl_j], 0
seg000:3F27                 jmp     gdl_10
seg000:3F2A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3F2A
seg000:3F2A gdl_1:                                  ; CODE XREF: get_letters+A2j
seg000:3F2A                 mov     al, [bp+gdl_j]
seg000:3F2D                 sub     ah, ah
seg000:3F2F                 shl     ax, 1
seg000:3F31                 shl     ax, 1
seg000:3F33                 mov     cl, [bp+gdl_i]
seg000:3F36                 sub     ch, ch
seg000:3F38                 add     ax, cx
seg000:3F3A                 mov     cx, 46
seg000:3F3D                 imul    cx
seg000:3F3F                 mov     bx, ax
seg000:3F41                 cmp     ds:part_table_sys_id[bx], 1
seg000:3F46                 jz      short gdl_2
seg000:3F48                 cmp     ds:part_table_sys_id[bx], 4
seg000:3F4D                 jz      short gdl_2
seg000:3F4F                 cmp     ds:part_table_sys_id[bx], 6
seg000:3F54                 jnz     short gdl_6
seg000:3F56
seg000:3F56 gdl_2:                                  ; CODE XREF: get_letters+2Ej
seg000:3F56                                         ; get_letters+35j
seg000:3F56                 mov     al, [bp+gdl_j]
seg000:3F59                 sub     ah, ah
seg000:3F5B                 shl     ax, 1
seg000:3F5D                 shl     ax, 1
seg000:3F5F                 mov     cl, [bp+gdl_i]
seg000:3F62                 sub     ch, ch
seg000:3F64                 add     ax, cx
seg000:3F66                 mov     cx, 46
seg000:3F69                 imul    cx
seg000:3F6B                 mov     bx, ax
seg000:3F6D                 mov     ds:part_table_drive_letter[bx], ' '
seg000:3F72                 cmp     ds:primary_partition_count, 0
seg000:3F77                 jz      short gdl_3
seg000:3F79                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:3F7E                 jnz     short gdl_4
seg000:3F80                 cmp     [bp+a_primary_count], 0
seg000:3F84                 jnz     short gdl_4
seg000:3F86
seg000:3F86 gdl_3:                                  ; CODE XREF: get_letters+5Fj
seg000:3F86                 mov     al, [bp+gdl_i]
seg000:3F89                 mov     [bp+p_part], al
seg000:3F8C
seg000:3F8C gdl_4:                                  ; CODE XREF: get_letters+66j
seg000:3F8C                                         ; get_letters+6Cj
seg000:3F8C                 mov     al, [bp+gdl_j]
seg000:3F8F                 sub     ah, ah
seg000:3F91                 shl     ax, 1
seg000:3F93                 shl     ax, 1
seg000:3F95                 mov     cl, [bp+gdl_i]
seg000:3F98                 sub     ch, ch
seg000:3F9A                 add     ax, cx
seg000:3F9C                 mov     cx, 46
seg000:3F9F                 imul    cx
seg000:3FA1                 mov     bx, ax
seg000:3FA3                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:3FA8                 jnz     short gdl_5
seg000:3FAA                 inc     [bp+a_primary_count]
seg000:3FAD
seg000:3FAD gdl_5:                                  ; CODE XREF: get_letters+90j
seg000:3FAD                 inc     ds:primary_partition_count
seg000:3FB1
seg000:3FB1 gdl_6:                                  ; CODE XREF: get_letters+3Cj
seg000:3FB1                 inc     [bp+gdl_i]
seg000:3FB4
seg000:3FB4 gdl_7:                                  ; CODE XREF: get_letters+F0j
seg000:3FB4                 cmp     [bp+gdl_i], 4
seg000:3FB8                 jnb     short gdl_8
seg000:3FBA                 jmp     gdl_1
seg000:3FBD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:3FBD
seg000:3FBD gdl_8:                                  ; CODE XREF: get_letters+A0j
seg000:3FBD                 cmp     [bp+p_part], 0FFh
seg000:3FC1                 jz      short gdl_9
seg000:3FC3                 cmp     ds:next_letter, 'Z'
seg000:3FC8                 jg      short gdl_9
seg000:3FCA                 mov     al, [bp+gdl_j]
seg000:3FCD                 sub     ah, ah
seg000:3FCF                 shl     ax, 1
seg000:3FD1                 shl     ax, 1
seg000:3FD3                 mov     cl, [bp+p_part]
seg000:3FD6                 sub     ch, ch
seg000:3FD8                 add     ax, cx
seg000:3FDA                 mov     cx, 46
seg000:3FDD                 imul    cx
seg000:3FDF                 mov     bx, ax
seg000:3FE1                 mov     al, ds:next_letter
seg000:3FE4                 mov     ds:part_table_drive_letter[bx], al
seg000:3FE8                 inc     ds:next_letter
seg000:3FEC
seg000:3FEC gdl_9:                                  ; CODE XREF: get_letters+A9j
seg000:3FEC                                         ; get_letters+B0j
seg000:3FEC                 inc     [bp+gdl_j]
seg000:3FEF
seg000:3FEF gdl_10:                                 ; CODE XREF: get_letters+Fj
seg000:3FEF                 mov     al, ds:number_of_drives
seg000:3FF2                 cmp     [bp+gdl_j], al
seg000:3FF5                 jnb     short gdl_11
seg000:3FF7                 mov     ds:primary_partition_count, 0
seg000:3FFC                 mov     [bp+p_part], 0FFh
seg000:4000                 sub     al, al
seg000:4002                 mov     [bp+a_primary_count], al
seg000:4005                 mov     [bp+gdl_i], al
seg000:4008                 jmp     short gdl_7
seg000:400A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:400A
seg000:400A gdl_11:                                 ; CODE XREF: get_letters+DDj
seg000:400A                 mov     [bp+gdl_j], 0
seg000:400E                 jmp     short gdl_17
seg000:4010 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4010
seg000:4010 gdl_12:                                 ; CODE XREF: get_letters+146j
seg000:4010                 mov     al, 24
seg000:4012                 mul     [bp+gdl_j]
seg000:4015                 mov     cl, [bp+gdl_i]
seg000:4018                 sub     ch, ch
seg000:401A                 add     ax, cx
seg000:401C                 mov     cx, 46
seg000:401F                 imul    cx
seg000:4021                 mov     bx, ax
seg000:4023                 mov     ds:ext_table_drive_letter[bx], ' '
seg000:4028
seg000:4028 gdl_13:                                 ; CODE XREF: get_letters+13Fj
seg000:4028                                         ; get_letters+166j
seg000:4028                 inc     [bp+gdl_i]
seg000:402B
seg000:402B gdl_14:                                 ; CODE XREF: get_letters+177j
seg000:402B                 cmp     [bp+gdl_i], 23
seg000:402F                 jnb     short gdl_16
seg000:4031                 mov     al, 24
seg000:4033                 mul     [bp+gdl_j]
seg000:4036                 mov     cl, [bp+gdl_i]
seg000:4039                 sub     ch, ch
seg000:403B                 add     ax, cx
seg000:403D                 mov     cx, 46
seg000:4040                 imul    cx
seg000:4042                 mov     bx, ax
seg000:4044                 cmp     ds:ext_table_sys_id[bx], 1
seg000:4049                 jz      short gdl_15
seg000:404B                 cmp     ds:ext_table_sys_id[bx], 4
seg000:4050                 jz      short gdl_15
seg000:4052                 cmp     ds:ext_table_sys_id[bx], 6
seg000:4057                 jnz     short gdl_13
seg000:4059
seg000:4059 gdl_15:                                 ; CODE XREF: get_letters+131j
seg000:4059                                         ; get_letters+138j
seg000:4059                 cmp     ds:next_letter, 'Z'
seg000:405E                 jg      short gdl_12
seg000:4060                 mov     al, 24
seg000:4062                 mul     [bp+gdl_j]
seg000:4065                 mov     cl, [bp+gdl_i]
seg000:4068                 sub     ch, ch
seg000:406A                 add     ax, cx
seg000:406C                 mov     cx, 46
seg000:406F                 imul    cx
seg000:4071                 mov     bx, ax
seg000:4073                 mov     al, ds:next_letter
seg000:4076                 mov     ds:ext_table_drive_letter[bx], al
seg000:407A                 inc     ds:next_letter
seg000:407E                 jmp     short gdl_13
seg000:4080 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4080
seg000:4080 gdl_16:                                 ; CODE XREF: get_letters+117j
seg000:4080                 inc     [bp+gdl_j]
seg000:4083
seg000:4083 gdl_17:                                 ; CODE XREF: get_letters+F6j
seg000:4083                 mov     al, ds:number_of_drives
seg000:4086                 cmp     [bp+gdl_j], al
seg000:4089                 jnb     short gdl_18
seg000:408B                 mov     [bp+gdl_i], 0
seg000:408F                 jmp     short gdl_14
seg000:4091 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4091
seg000:4091 gdl_18:                                 ; CODE XREF: get_letters+171j
seg000:4091                 mov     [bp+gdl_j], 0
seg000:4095                 jmp     short gdl_23
seg000:4097 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4097
seg000:4097 gdl_19:                                 ; CODE XREF: get_letters+1B2j
seg000:4097                                         ; get_letters+1D0j ...
seg000:4097                 inc     [bp+gdl_i]
seg000:409A
seg000:409A gdl_20:                                 ; CODE XREF: get_letters+26Cj
seg000:409A                 cmp     [bp+gdl_i], 4
seg000:409E                 jnb     short gdl_22
seg000:40A0                 mov     al, [bp+gdl_j]
seg000:40A3                 sub     ah, ah
seg000:40A5                 shl     ax, 1
seg000:40A7                 shl     ax, 1
seg000:40A9                 mov     cl, [bp+gdl_i]
seg000:40AC                 sub     ch, ch
seg000:40AE                 add     ax, cx
seg000:40B0                 mov     cx, 46
seg000:40B3                 imul    cx
seg000:40B5                 mov     bx, ax
seg000:40B7                 cmp     ds:part_table_sys_id[bx], 1
seg000:40BC                 jz      short gdl_21
seg000:40BE                 cmp     ds:part_table_sys_id[bx], 4
seg000:40C3                 jz      short gdl_21
seg000:40C5                 cmp     ds:part_table_sys_id[bx], 6
seg000:40CA                 jnz     short gdl_19
seg000:40CC
seg000:40CC gdl_21:                                 ; CODE XREF: get_letters+1A4j
seg000:40CC                                         ; get_letters+1ABj
seg000:40CC                 mov     al, [bp+gdl_j]
seg000:40CF                 sub     ah, ah
seg000:40D1                 shl     ax, 1
seg000:40D3                 shl     ax, 1
seg000:40D5                 mov     cl, [bp+gdl_i]
seg000:40D8                 sub     ch, ch
seg000:40DA                 add     ax, cx
seg000:40DC                 mov     cx, 46
seg000:40DF                 imul    cx
seg000:40E1                 mov     bx, ax
seg000:40E3                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:40E8                 jz      short gdl_19
seg000:40EA                 cmp     ds:part_table_drive_letter[bx], ' '
seg000:40EF                 jnz     short gdl_19
seg000:40F1                 cmp     ds:next_letter, 'Z'
seg000:40F6                 jg      short gdl_19
seg000:40F8                 mov     al, ds:next_letter
seg000:40FB                 mov     ds:part_table_drive_letter[bx], al
seg000:40FF                 inc     ds:next_letter
seg000:4103                 jmp     short gdl_19
seg000:4105 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4105
seg000:4105 gdl_22:                                 ; CODE XREF: get_letters+186j
seg000:4105                 inc     [bp+gdl_j]
seg000:4108
seg000:4108 gdl_23:                                 ; CODE XREF: get_letters+17Dj
seg000:4108                 mov     al, ds:number_of_drives
seg000:410B                 cmp     [bp+gdl_j], al
seg000:410E                 jnb     short gdl_27
seg000:4110                 mov     [bp+gdl_i], 0
seg000:4114
seg000:4114 gdl_24:                                 ; CODE XREF: get_letters+266j
seg000:4114                 mov     al, [bp+gdl_j]
seg000:4117                 sub     ah, ah
seg000:4119                 shl     ax, 1
seg000:411B                 shl     ax, 1
seg000:411D                 mov     cl, [bp+gdl_i]
seg000:4120                 sub     ch, ch
seg000:4122                 add     ax, cx
seg000:4124                 mov     cx, 46
seg000:4127                 imul    cx
seg000:4129                 mov     bx, ax
seg000:412B                 cmp     ds:part_table_sys_id[bx], 1
seg000:4130                 jz      short gdl_25
seg000:4132                 cmp     ds:part_table_sys_id[bx], 4
seg000:4137                 jz      short gdl_25
seg000:4139                 cmp     ds:part_table_sys_id[bx], 6
seg000:413E                 jnz     short gdl_26
seg000:4140
seg000:4140 gdl_25:                                 ; CODE XREF: get_letters+218j
seg000:4140                                         ; get_letters+21Fj
seg000:4140                 mov     al, [bp+gdl_j]
seg000:4143                 sub     ah, ah
seg000:4145                 shl     ax, 1
seg000:4147                 shl     ax, 1
seg000:4149                 mov     cl, [bp+gdl_i]
seg000:414C                 sub     ch, ch
seg000:414E                 add     ax, cx
seg000:4150                 mov     cx, 46
seg000:4153                 imul    cx
seg000:4155                 mov     bx, ax
seg000:4157                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:415C                 jnz     short gdl_26
seg000:415E                 cmp     ds:part_table_drive_letter[bx], ' '
seg000:4163                 jnz     short gdl_26
seg000:4165                 cmp     ds:next_letter, 'Z'
seg000:416A                 jg      short gdl_26
seg000:416C                 mov     al, ds:next_letter
seg000:416F                 mov     ds:part_table_drive_letter[bx], al
seg000:4173                 inc     ds:next_letter
seg000:4177
seg000:4177 gdl_26:                                 ; CODE XREF: get_letters+226j
seg000:4177                                         ; get_letters+244j ...
seg000:4177                 inc     [bp+gdl_i]
seg000:417A                 cmp     [bp+gdl_i], 4
seg000:417E                 jb      short gdl_24
seg000:4180                 mov     [bp+gdl_i], 0
seg000:4184                 jmp     gdl_20
seg000:4187 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4187
seg000:4187 gdl_27:                                 ; CODE XREF: get_letters+1F6j
seg000:4187                 mov     sp, bp
seg000:4189                 pop     bp
seg000:418A                 retn
seg000:418A get_letters     endp
seg000:418A
seg000:418A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:418B                 align 2
seg000:418C
seg000:418C ; --------------- S U B R O U T I N E ---------------------------------------
seg000:418C
seg000:418C ; Attributes: bp-based frame
seg000:418C
seg000:418C volume_display  proc near               ; CODE XREF: volume_delete+3Bp
seg000:418C                                         ; volume_delete+45Dp ...
seg000:418C
seg000:418C vd_first_display= byte ptr -12h
seg000:418C vd_insert_offset= word ptr -0Eh
seg000:418C vd_i            = word ptr -0Ch
seg000:418C vd_drive_letter = byte ptr -0Ah
seg000:418C vd_drive_num    = byte ptr -8
seg000:418C vd_drive_found  = byte ptr -6
seg000:418C
seg000:418C                 push    bp
seg000:418D                 mov     bp, sp
seg000:418F                 sub     sp, 18
seg000:4192                 push    si
seg000:4193                 call    get_letters
seg000:4196                 mov     al, 23
seg000:4198                 push    ax
seg000:4199                 call    sort_ext_table
seg000:419C                 pop     bx
seg000:419D                 mov     ax, 696
seg000:41A0                 push    ax
seg000:41A1                 mov     ax, ' '
seg000:41A4                 push    ax
seg000:41A5                 mov     ax, offset insert
seg000:41A8                 push    ax
seg000:41A9                 call    memset
seg000:41AC                 add     sp, 6
seg000:41AF                 sub     al, al
seg000:41B1                 mov     [bp+vd_drive_num], al
seg000:41B4                 mov     [bp+vd_drive_found], al
seg000:41B7                 mov     [bp+vd_first_display], 1
seg000:41BB                 sub     ax, ax
seg000:41BD                 mov     [bp+vd_insert_offset], ax
seg000:41C0                 mov     [bp+vd_i], ax
seg000:41C3                 jmp     short vd_05
seg000:41C5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:41C5
seg000:41C5 vd_01:                                  ; CODE XREF: volume_display+E8j
seg000:41C5                 mov     ax, ':'
seg000:41C8
seg000:41C8 vd_02:                                  ; CODE XREF: volume_display+EEj
seg000:41C8                 push    ax
seg000:41C9                 mov     al, ds:ext_table_drive_letter[si]
seg000:41CD                 cbw
seg000:41CE                 push    ax
seg000:41CF                 mov     ax, offset eptbl_row_format ; "%c%c%-11.11s%4.1d%-8.8s%3.1d%%"
seg000:41D2                 push    ax
seg000:41D3                 mov     ax, [bp+vd_insert_offset]
seg000:41D6                 add     ax, offset insert
seg000:41D9                 push    ax
seg000:41DA                 call    sprintf
seg000:41DD                 add     sp, 16
seg000:41E0                 add     [bp+vd_insert_offset], ax
seg000:41E3                 mov     al, 24
seg000:41E5                 imul    ds:cur_disk
seg000:41E9                 mov     bx, [bp+vd_i]
seg000:41EC                 mov     cx, ax
seg000:41EE                 mov     al, ds:sort[bx]
seg000:41F2                 cbw
seg000:41F3                 add     ax, cx
seg000:41F5                 mov     cx, 46
seg000:41F8                 imul    cx
seg000:41FA                 mov     bx, ax
seg000:41FC                 mov     al, ds:ext_table_drive_letter[bx]
seg000:4200
seg000:4200 vd_03:
seg000:4200                 mov     [bp+vd_drive_letter], al
seg000:4203                 inc     [bp+vd_drive_num]
seg000:4206
seg000:4206 vd_04:                                  ; CODE XREF: volume_display+AFj
seg000:4206                 inc     [bp+vd_i]
seg000:4209
seg000:4209 vd_05:                                  ; CODE XREF: volume_display+37j
seg000:4209                 cmp     [bp+vd_i], 23
seg000:420D                 jnb     short vd_08
seg000:420F                 mov     al, 24
seg000:4211                 imul    ds:cur_disk
seg000:4215                 mov     bx, [bp+vd_i]
seg000:4218                 mov     cx, ax
seg000:421A                 mov     al, ds:sort[bx]
seg000:421E                 cbw
seg000:421F                 add     ax, cx
seg000:4221                 mov     cx, 46
seg000:4224                 imul    cx
seg000:4226                 mov     bx, ax
seg000:4228                 cmp     ds:ext_table_sys_id[bx], 1
seg000:422D                 jz      short vd_06
seg000:422F                 cmp     ds:ext_table_sys_id[bx], 4
seg000:4234                 jz      short vd_06
seg000:4236                 cmp     ds:ext_table_sys_id[bx], 6
seg000:423B                 jnz     short vd_04
seg000:423D
seg000:423D vd_06:                                  ; CODE XREF: volume_display+A1j
seg000:423D                                         ; volume_display+A8j
seg000:423D                 mov     [bp+vd_drive_found], 1
seg000:4241                 mov     al, 24
seg000:4243                 imul    ds:cur_disk
seg000:4247                 mov     bx, [bp+vd_i]
seg000:424A                 mov     cx, ax
seg000:424C                 mov     al, ds:sort[bx]
seg000:4250                 cbw
seg000:4251                 add     ax, cx
seg000:4253                 mov     cx, 46
seg000:4256                 imul    cx
seg000:4258                 mov     si, ax
seg000:425A                 push    ds:ext_table_percent_used[si]
seg000:425E                 add     si, offset ext_table_system
seg000:4262                 push    si
seg000:4263                 mov     si, ax
seg000:4265                 push    ds:ext_table_mbytes_used[si]
seg000:4269                 add     ax, offset ext_table_vol_label
seg000:426C                 push    ax
seg000:426D                 cmp     ds:ext_table_drive_letter[si], ' '
seg000:4272                 jz      short vd_07
seg000:4274                 jmp     vd_01
seg000:4277 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4277
seg000:4277 vd_07:                                  ; CODE XREF: volume_display+E6j
seg000:4277                 mov     ax, ' '
seg000:427A                 jmp     vd_02
seg000:427D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:427D
seg000:427D vd_08:                                  ; CODE XREF: volume_display+81j
seg000:427D                 cmp     [bp+vd_drive_found], 0
seg000:4281                 jnz     short vd_09
seg000:4283                 jmp     vd_14
seg000:4286 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4286
seg000:4286 vd_09:                                  ; CODE XREF: volume_display+F5j
seg000:4286                 mov     ax, 79
seg000:4289                 push    ax
seg000:428A                 mov     ax, 15
seg000:428D                 push    ax
seg000:428E                 sub     ax, ax
seg000:4290                 push    ax
seg000:4291                 mov     ax, 2
seg000:4294                 push    ax
seg000:4295                 call    clear_screen
seg000:4298                 add     sp, 8
seg000:429B                 cmp     [bp+vd_drive_num], 0
seg000:429F                 jle     short vd_10
seg000:42A1                 mov     ds:pinsert, offset insert
seg000:42A7                 push    ds:menu_19_segment
seg000:42AB                 push    ds:menu_19_offset
seg000:42AF                 call    display
seg000:42B2                 pop     bx
seg000:42B3                 pop     bx
seg000:42B4
seg000:42B4 vd_10:                                  ; CODE XREF: volume_display+113j
seg000:42B4                 cmp     [bp+vd_drive_num], 6
seg000:42B8                 jle     short vd_11
seg000:42BA                 mov     ds:pinsert, (offset insert+0AEh)
seg000:42C0                 push    ds:menu_43_segment
seg000:42C4                 push    ds:menu_43_offset
seg000:42C8                 call    display
seg000:42CB                 pop     bx
seg000:42CC                 pop     bx
seg000:42CD
seg000:42CD vd_11:                                  ; CODE XREF: volume_display+12Cj
seg000:42CD                 cmp     [bp+vd_drive_num], 12
seg000:42D1                 jle     short vd_12
seg000:42D3                 mov     ds:pinsert, (offset insert+15Ch)
seg000:42D9                 push    ds:menu_20_segment
seg000:42DD                 push    ds:menu_20_offset
seg000:42E1                 call    display
seg000:42E4                 pop     bx
seg000:42E5                 pop     bx
seg000:42E6
seg000:42E6 vd_12:                                  ; CODE XREF: volume_display+145j
seg000:42E6                 cmp     [bp+vd_drive_num], 18
seg000:42EA                 jle     short vd_13
seg000:42EC                 mov     ds:pinsert, (offset insert+20Ah)
seg000:42F2                 push    ds:menu_44_segment
seg000:42F6                 push    ds:menu_44_offset
seg000:42FA                 call    display
seg000:42FD                 pop     bx
seg000:42FE                 pop     bx
seg000:42FF
seg000:42FF vd_13:                                  ; CODE XREF: volume_display+15Ej
seg000:42FF                 mov     ds:pinsert, offset insert
seg000:4305                 jmp     short vd_15
seg000:4307 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4307
seg000:4307 vd_14:                                  ; CODE XREF: volume_display+F7j
seg000:4307                 cmp     [bp+vd_first_display], 0
seg000:430B                 jz      short vd_15
seg000:430D                 mov     ax, 79
seg000:4310                 push    ax
seg000:4311                 mov     ax, 15
seg000:4314                 push    ax
seg000:4315                 sub     ax, ax
seg000:4317                 push    ax
seg000:4318                 mov     ax, 2
seg000:431B                 push    ax
seg000:431C                 call    clear_screen
seg000:431F                 add     sp, 8
seg000:4322                 push    ds:status_9_seg
seg000:4326                 push    ds:status_9_off
seg000:432A                 call    display
seg000:432D                 pop     bx
seg000:432E                 pop     bx
seg000:432F
seg000:432F vd_15:                                  ; CODE XREF: volume_display+179j
seg000:432F                                         ; volume_display+17Fj
seg000:432F                 mov     al, [bp+vd_drive_letter]
seg000:4332                 pop     si
seg000:4333                 mov     sp, bp
seg000:4335                 pop     bp
seg000:4336                 retn
seg000:4336 volume_display  endp
seg000:4336
seg000:4337
seg000:4337 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4337
seg000:4337 ; Attributes: bp-based frame
seg000:4337
seg000:4337 change_current_drive proc near          ; CODE XREF: main+B3p
seg000:4337                                         ; do_main_menu:case_5p
seg000:4337
seg000:4337 k               = word ptr -14h
seg000:4337 insert_offset   = word ptr -12h
seg000:4337 i               = word ptr -10h
seg000:4337 drive_num       = byte ptr -0Eh
seg000:4337 temp            = byte ptr -0Ah
seg000:4337 mbytes_free     = word ptr -8
seg000:4337 max_input       = byte ptr -6
seg000:4337 percent_used    = word ptr -4
seg000:4337 input           = word ptr -2
seg000:4337
seg000:4337                 push    bp
seg000:4338                 mov     bp, sp
seg000:433A                 sub     sp, 20
seg000:433D                 push    si
seg000:433E                 mov     [bp+drive_num], 0
seg000:4342                 call    get_letters
seg000:4345                 mov     ax, 79
seg000:4348                 push    ax
seg000:4349                 mov     ax, 24
seg000:434C                 push    ax
seg000:434D                 sub     ax, ax
seg000:434F                 mov     [bp+insert_offset], ax
seg000:4352                 push    ax
seg000:4353                 push    ax
seg000:4354                 call    clear_screen
seg000:4357                 add     sp, 8
seg000:435A                 mov     ax, 480
seg000:435D                 push    ax
seg000:435E                 mov     ax, ' '
seg000:4361                 push    ax
seg000:4362                 mov     ax, offset insert
seg000:4365                 push    ax
seg000:4366                 call    memset
seg000:4369                 add     sp, 6
seg000:436C                 mov     al, ds:cur_disk
seg000:436F                 mov     [bp+temp], al
seg000:4372                 cmp     ds:status_flag, 0
seg000:4377                 jnz     short ccd_1
seg000:4379                 push    ds:menu_47_segment
seg000:437D                 push    ds:menu_47_offset
seg000:4381                 jmp     short ccd_2
seg000:4383 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4383
seg000:4383 ccd_1:                                  ; CODE XREF: change_current_drive+40j
seg000:4383                 push    ds:menu_54_segment
seg000:4387                 push    ds:menu_54_offset
seg000:438B
seg000:438B ccd_2:                                  ; CODE XREF: change_current_drive+4Aj
seg000:438B                 call    display
seg000:438E                 pop     bx
seg000:438F                 pop     bx
seg000:4390                 mov     [bp+i], 0
seg000:4395                 jmp     ccd_20
seg000:4398 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4398
seg000:4398 ccd_3:                                  ; CODE XREF: change_current_drive+221j
seg000:4398                 mov     [bp+mbytes_free], 0
seg000:439D
seg000:439D ccd_4:                                  ; CODE XREF: change_current_drive+22Dj
seg000:439D                 mov     al, ds:cur_disk
seg000:43A0                 cbw
seg000:43A1                 imul    cx
seg000:43A3                 mov     bx, ax
seg000:43A5                 mov     ax, ds:part_table_percent_used[bx]
seg000:43A9                 add     ax, ds:pt_part4_percent_used[bx]
seg000:43AD                 add     ax, ds:pt_part3_percent_used[bx]
seg000:43B1                 add     ax, ds:pt_part2_percent_used[bx]
seg000:43B5                 cmp     ax, 100
seg000:43B8                 jnb     short ccd_5
seg000:43BA                 mov     [bp+percent_used], ax
seg000:43BD                 jmp     short ccd_6
seg000:43BF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:43BF
seg000:43BF ccd_5:                                  ; CODE XREF: change_current_drive+81j
seg000:43BF                 mov     [bp+percent_used], 100
seg000:43C4
seg000:43C4 ccd_6:                                  ; CODE XREF: change_current_drive+86j
seg000:43C4                 push    [bp+percent_used]
seg000:43C7                 push    [bp+mbytes_free]
seg000:43CA                 mov     al, ds:cur_disk
seg000:43CD                 cbw
seg000:43CE                 mov     bx, ax
seg000:43D0                 shl     bx, 1
seg000:43D2                 push    ds:total_mbytes[bx]
seg000:43D6                 mov     cx, ' '
seg000:43D9                 push    cx
seg000:43DA                 push    cx
seg000:43DB                 inc     ax
seg000:43DC                 push    ax
seg000:43DD                 mov     ax, offset cd_pt_row_format ; "%1.0d%c%c%4.1d%4.1d%3.1d%%"
seg000:43E0                 push    ax
seg000:43E1                 mov     ax, [bp+insert_offset]
seg000:43E4                 add     ax, offset insert
seg000:43E7                 push    ax
seg000:43E8                 call    sprintf
seg000:43EB                 add     sp, 16
seg000:43EE                 add     [bp+insert_offset], ax
seg000:43F1                 inc     [bp+drive_num]
seg000:43F4                 mov     al, 4
seg000:43F6                 push    ax
seg000:43F7                 call    sort_part_table
seg000:43FA                 pop     bx
seg000:43FB                 mov     [bp+k], 0
seg000:4400                 jmp     short ccd_10
seg000:4402 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4402
seg000:4402 ccd_7:                                  ; CODE XREF: change_current_drive+153j
seg000:4402                 mov     ax, ':'
seg000:4405
seg000:4405 ccd_8:                                  ; CODE XREF: change_current_drive+159j
seg000:4405                 push    ax
seg000:4406                 mov     al, ds:part_table_drive_letter[bx]
seg000:440A                 cbw
seg000:440B                 push    ax
seg000:440C                 mov     ax, ' '
seg000:440F                 push    ax
seg000:4410                 mov     ax, offset drv_mb_row_format ; "%c%c%c%4.1d%8c"
seg000:4413                 push    ax
seg000:4414                 mov     ax, [bp+insert_offset]
seg000:4417                 add     ax, offset insert
seg000:441A                 push    ax
seg000:441B                 call    sprintf
seg000:441E                 add     sp, 14
seg000:4421                 add     [bp+insert_offset], ax
seg000:4424                 inc     [bp+drive_num]
seg000:4427
seg000:4427 ccd_9:                                  ; CODE XREF: change_current_drive+127j
seg000:4427                 inc     [bp+k]
seg000:442A
seg000:442A ccd_10:                                 ; CODE XREF: change_current_drive+C9j
seg000:442A                 cmp     [bp+k], 4
seg000:442E                 jnb     short ccd_13
seg000:4430                 mov     al, ds:cur_disk
seg000:4433                 cbw
seg000:4434                 shl     ax, 1
seg000:4436                 shl     ax, 1
seg000:4438                 mov     bx, [bp+k]
seg000:443B                 mov     cx, ax
seg000:443D                 mov     al, ds:sort[bx]
seg000:4441                 cbw
seg000:4442                 add     ax, cx
seg000:4444                 mov     cx, 46
seg000:4447                 imul    cx
seg000:4449                 mov     bx, ax
seg000:444B                 cmp     ds:part_table_sys_id[bx], 6
seg000:4450                 jz      short ccd_11
seg000:4452                 cmp     ds:part_table_sys_id[bx], 4
seg000:4457                 jz      short ccd_11
seg000:4459                 cmp     ds:part_table_sys_id[bx], 1
seg000:445E                 jnz     short ccd_9
seg000:4460
seg000:4460 ccd_11:                                 ; CODE XREF: change_current_drive+119j
seg000:4460                                         ; change_current_drive+120j
seg000:4460                 mov     ax, ' '
seg000:4463                 push    ax
seg000:4464                 mov     al, ds:cur_disk
seg000:4467                 cbw
seg000:4468                 shl     ax, 1
seg000:446A                 shl     ax, 1
seg000:446C                 mov     bx, [bp+k]
seg000:446F                 mov     cx, ax
seg000:4471                 mov     al, ds:sort[bx]
seg000:4475                 cbw
seg000:4476                 add     ax, cx
seg000:4478                 mov     cx, 46
seg000:447B                 imul    cx
seg000:447D                 mov     bx, ax
seg000:447F                 push    ds:part_table_mbytes_used[bx]
seg000:4483                 cmp     ds:part_table_drive_letter[bx], ' '
seg000:4488                 jz      short ccd_12
seg000:448A                 jmp     ccd_7
seg000:448D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:448D
seg000:448D ccd_12:                                 ; CODE XREF: change_current_drive+151j
seg000:448D                 mov     ax, ' '
seg000:4490                 jmp     ccd_8
seg000:4493 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4493
seg000:4493 ccd_13:                                 ; CODE XREF: change_current_drive+F7j
seg000:4493                 mov     al, 23
seg000:4495                 push    ax
seg000:4496                 call    sort_ext_table
seg000:4499                 pop     bx
seg000:449A                 mov     [bp+k], 0
seg000:449F                 jmp     short ccd_17
seg000:44A1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:44A1
seg000:44A1 ccd_14:                                 ; CODE XREF: change_current_drive+1E5j
seg000:44A1                 mov     ax, ':'
seg000:44A4
seg000:44A4 ccd_15:                                 ; CODE XREF: change_current_drive+1EAj
seg000:44A4                 push    ax
seg000:44A5                 mov     al, ds:ext_table_drive_letter[bx]
seg000:44A9                 cbw
seg000:44AA                 push    ax
seg000:44AB                 mov     ax, ' '
seg000:44AE                 push    ax
seg000:44AF                 mov     ax, offset cdrv_mb_format ; "%c%c%c%4.1d%8c"
seg000:44B2                 push    ax
seg000:44B3                 mov     ax, [bp+insert_offset]
seg000:44B6                 add     ax, offset insert
seg000:44B9                 push    ax
seg000:44BA                 call    sprintf
seg000:44BD                 add     sp, 14
seg000:44C0                 add     [bp+insert_offset], ax
seg000:44C3                 inc     [bp+drive_num]
seg000:44C6
seg000:44C6 ccd_16:                                 ; CODE XREF: change_current_drive+1BDj
seg000:44C6                 inc     [bp+k]
seg000:44C9
seg000:44C9 ccd_17:                                 ; CODE XREF: change_current_drive+168j
seg000:44C9                 cmp     [bp+k], 23
seg000:44CD                 jnb     short ccd_19
seg000:44CF                 mov     al, 24
seg000:44D1                 imul    ds:cur_disk
seg000:44D5                 mov     bx, [bp+k]
seg000:44D8                 mov     cx, ax
seg000:44DA                 mov     al, ds:sort[bx]
seg000:44DE                 cbw
seg000:44DF                 add     ax, cx
seg000:44E1                 mov     cx, 46
seg000:44E4                 imul    cx
seg000:44E6                 mov     bx, ax
seg000:44E8                 cmp     ds:ext_table_mbytes_used[bx], 0
seg000:44ED                 jnz     short ccd_18
seg000:44EF                 cmp     ds:ext_table_percent_used[bx], 0
seg000:44F4                 jz      short ccd_16
seg000:44F6
seg000:44F6 ccd_18:                                 ; CODE XREF: change_current_drive+1B6j
seg000:44F6                 mov     ax, ' '
seg000:44F9                 push    ax
seg000:44FA                 mov     al, 24
seg000:44FC                 imul    ds:cur_disk
seg000:4500                 mov     bx, [bp+k]
seg000:4503                 mov     cx, ax
seg000:4505                 mov     al, ds:sort[bx]
seg000:4509                 cbw
seg000:450A                 add     ax, cx
seg000:450C                 mov     cx, 46
seg000:450F                 imul    cx
seg000:4511                 mov     bx, ax
seg000:4513                 push    ds:ext_table_mbytes_used[bx]
seg000:4517                 cmp     ds:ext_table_drive_letter[bx], ' '
seg000:451C                 jnz     short ccd_14
seg000:451E                 mov     ax, ' '
seg000:4521                 jmp     short ccd_15
seg000:4523 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4523
seg000:4523 ccd_19:                                 ; CODE XREF: change_current_drive+196j
seg000:4523                 inc     [bp+i]
seg000:4526
seg000:4526 ccd_20:                                 ; CODE XREF: change_current_drive+5Ej
seg000:4526                 mov     al, ds:number_of_drives
seg000:4529                 sub     ah, ah
seg000:452B                 cmp     ax, [bp+i]
seg000:452E                 jbe     short ccd_22
seg000:4530                 mov     al, byte ptr [bp+i]
seg000:4533                 mov     ds:cur_disk, al
seg000:4536                 cbw
seg000:4537                 mov     cx, 184
seg000:453A                 mov     bx, ax
seg000:453C                 imul    cx
seg000:453E                 mov     si, ax
seg000:4540                 mov     ax, ds:part_table_mbytes_used[si]
seg000:4544                 add     ax, ds:pt_part4_mbytes_used[si]
seg000:4548                 add     ax, ds:pt_part3_mbytes_used[si]
seg000:454C                 add     ax, ds:pt_part2_mbytes_used[si]
seg000:4550                 shl     bx, 1
seg000:4552                 cmp     ax, ds:total_mbytes[bx]
seg000:4556                 jb      short ccd_21
seg000:4558                 jmp     ccd_3
seg000:455B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:455B
seg000:455B ccd_21:                                 ; CODE XREF: change_current_drive+21Fj
seg000:455B                 sub     ax, ds:total_mbytes[bx]
seg000:455F                 neg     ax
seg000:4561                 mov     [bp+mbytes_free], ax
seg000:4564                 jmp     ccd_4
seg000:4567 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4567
seg000:4567 ccd_22:                                 ; CODE XREF: change_current_drive+1F7j
seg000:4567                 cmp     [bp+drive_num], 0
seg000:456B                 jle     short ccd_23
seg000:456D                 mov     ds:pinsert, offset insert
seg000:4573                 push    ds:menu_48_segment
seg000:4577                 push    ds:menu_48_offset
seg000:457B                 call    display
seg000:457E                 pop     bx
seg000:457F                 pop     bx
seg000:4580
seg000:4580 ccd_23:                                 ; CODE XREF: change_current_drive+234j
seg000:4580                 cmp     [bp+drive_num], 8
seg000:4584                 jle     short ccd_24
seg000:4586                 mov     ds:pinsert, (offset insert+78h)
seg000:458C                 push    ds:menu_49_segment
seg000:4590                 push    ds:menu_49_offset
seg000:4594                 call    display
seg000:4597                 pop     bx
seg000:4598                 pop     bx
seg000:4599
seg000:4599 ccd_24:                                 ; CODE XREF: change_current_drive+24Dj
seg000:4599                 cmp     [bp+drive_num], 16
seg000:459D                 jle     short ccd_25
seg000:459F                 mov     ds:pinsert, (offset insert+0F0h)
seg000:45A5                 push    ds:menu_50_segment
seg000:45A9                 push    ds:menu_50_offset
seg000:45AD                 call    display
seg000:45B0                 pop     bx
seg000:45B1                 pop     bx
seg000:45B2
seg000:45B2 ccd_25:                                 ; CODE XREF: change_current_drive+266j
seg000:45B2                 cmp     [bp+drive_num], 24
seg000:45B6                 jle     short ccd_26
seg000:45B8                 mov     ds:pinsert, (offset insert+168h)
seg000:45BE                 push    ds:menu_51_segment
seg000:45C2                 push    ds:menu_51_offset
seg000:45C6                 call    display
seg000:45C9                 pop     bx
seg000:45CA                 pop     bx
seg000:45CB
seg000:45CB ccd_26:                                 ; CODE XREF: change_current_drive+27Fj
seg000:45CB                 mov     ds:pinsert, offset insert
seg000:45D1                 push    ds:menu_52_segment
seg000:45D5                 push    ds:menu_52_offset
seg000:45D9                 call    display
seg000:45DC                 pop     bx
seg000:45DD                 pop     bx
seg000:45DE                 mov     al, [bp+temp]
seg000:45E1                 mov     ds:cur_disk, al
seg000:45E4                 cmp     ds:status_flag, 0
seg000:45E9                 jz      short ccd_27
seg000:45EB                 jmp     ccd_30
seg000:45EE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:45EE
seg000:45EE ccd_27:                                 ; CODE XREF: change_current_drive+2B2j
seg000:45EE                 cbw
seg000:45EF                 inc     ax
seg000:45F0                 push    ax
seg000:45F1                 mov     al, ds:number_of_drives
seg000:45F4                 sub     ah, ah
seg000:45F6                 push    ax
seg000:45F7                 mov     ax, offset cdrive_format ; "%1.0d%1.0d"
seg000:45FA                 push    ax
seg000:45FB                 mov     ax, offset insert
seg000:45FE                 push    ax
seg000:45FF                 call    sprintf
seg000:4602                 add     sp, 8
seg000:4605                 push    ds:menu_53_segment
seg000:4609                 push    ds:menu_53_offset
seg000:460D                 call    display
seg000:4610                 pop     bx
seg000:4611                 pop     bx
seg000:4612                 push    ds:menu_11_segment
seg000:4616                 push    ds:menu_11_offset
seg000:461A                 call    display
seg000:461D                 pop     bx
seg000:461E                 pop     bx
seg000:461F                 mov     al, ds:number_of_drives
seg000:4622                 mov     [bp+max_input], al
seg000:4625                 mov     ds:valid_input, 0
seg000:462A
seg000:462A ccd_28:                                 ; CODE XREF: change_current_drive+337j
seg000:462A                 push    ds:input_col
seg000:462E                 push    ds:input_row
seg000:4632                 mov     al, [bp+max_input]
seg000:4635                 push    ax
seg000:4636                 mov     al, ds:cur_disk
seg000:4639                 inc     al
seg000:463B                 push    ax
seg000:463C                 call    get_num_input
seg000:463F                 add     sp, 8
seg000:4642                 cbw
seg000:4643                 mov     [bp+input], ax
seg000:4646                 mov     ax, 79
seg000:4649                 push    ax
seg000:464A                 mov     ax, 23
seg000:464D                 push    ax
seg000:464E                 sub     ax, ax
seg000:4650                 push    ax
seg000:4651                 mov     ax, 21
seg000:4654                 push    ax
seg000:4655                 call    clear_screen
seg000:4658                 add     sp, 8
seg000:465B                 cmp     [bp+input], 1Bh
seg000:465F                 jz      short ccd_29
seg000:4661                 mov     al, byte ptr [bp+input]
seg000:4664                 sub     al, '1'
seg000:4666                 mov     ds:cur_disk, al
seg000:4669
seg000:4669 ccd_29:                                 ; CODE XREF: change_current_drive+328j
seg000:4669                 cmp     ds:valid_input, 0
seg000:466E                 jz      short ccd_28
seg000:4670                 mov     ax, 79
seg000:4673                 push    ax
seg000:4674                 mov     ax, 24
seg000:4677                 push    ax
seg000:4678                 sub     ax, ax
seg000:467A                 push    ax
seg000:467B                 push    ax
seg000:467C                 call    clear_screen
seg000:467F                 add     sp, 8
seg000:4682
seg000:4682 ccd_30:                                 ; CODE XREF: change_current_drive+2B4j
seg000:4682                 pop     si
seg000:4683                 mov     sp, bp
seg000:4685                 pop     bp
seg000:4686                 retn
seg000:4686 change_current_drive endp
seg000:4686
seg000:4686 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4687                 align 2
seg000:4688
seg000:4688 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4688
seg000:4688 ; Attributes: bp-based frame
seg000:4688
seg000:4688 find_part_free_space proc near          ; CODE XREF: main+21Ap
seg000:4688                                         ; main+297p ...
seg000:4688
seg000:4688 fpfs_i          = byte ptr -0Eh
seg000:4688 last_found_partition= byte ptr -0Ch
seg000:4688 fpfs_temp       = word ptr -0Ah
seg000:4688 freespace_count = byte ptr -8
seg000:4688 fpfs_partition_count= byte ptr -6
seg000:4688 fpfs_anypartition= byte ptr -4
seg000:4688 fpfs_type       = byte ptr  4
seg000:4688
seg000:4688                 push    bp
seg000:4689                 mov     bp, sp
seg000:468B                 sub     sp, 14
seg000:468E                 push    di
seg000:468F                 push    si
seg000:4690                 mov     al, 4
seg000:4692                 push    ax
seg000:4693                 call    sort_part_table
seg000:4696                 pop     bx
seg000:4697                 mov     [bp+fpfs_i], 0
seg000:469B
seg000:469B fpfs_1:                                 ; CODE XREF: find_part_free_space+37j
seg000:469B                 mov     al, 22
seg000:469D                 imul    [bp+fpfs_i]
seg000:46A0                 mov     bx, ax
seg000:46A2                 sub     ax, ax
seg000:46A4                 mov     ds:free_space_space[bx], ax
seg000:46A8                 mov     ds:free_space_start[bx], ax
seg000:46AC                 mov     ds:free_space_end[bx], ax
seg000:46B0                 mov     ds:free_space_mbytes_unused[bx], ax
seg000:46B4                 mov     ds:free_space_percent_unused[bx], ax
seg000:46B8                 inc     [bp+fpfs_i]
seg000:46BB                 cmp     [bp+fpfs_i], 5
seg000:46BF                 jl      short fpfs_1
seg000:46C1                 sub     al, al
seg000:46C3                 mov     [bp+fpfs_partition_count], al
seg000:46C6                 mov     [bp+fpfs_anypartition], al
seg000:46C9                 mov     [bp+fpfs_i], al
seg000:46CC                 jmp     short fpfs_3
seg000:46CE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:46CE
seg000:46CE fpfs_2:                                 ; CODE XREF: find_part_free_space+75j
seg000:46CE                 inc     [bp+fpfs_i]
seg000:46D1
seg000:46D1 fpfs_3:                                 ; CODE XREF: find_part_free_space+44j
seg000:46D1                 cmp     [bp+fpfs_i], 4
seg000:46D5                 jl      short fpfs_4
seg000:46D7                 jmp     fpfs_7
seg000:46DA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:46DA
seg000:46DA fpfs_4:                                 ; CODE XREF: find_part_free_space+4Dj
seg000:46DA                 mov     al, ds:cur_disk
seg000:46DD                 cbw
seg000:46DE                 shl     ax, 1
seg000:46E0                 shl     ax, 1
seg000:46E2                 mov     cx, ax
seg000:46E4                 mov     al, [bp+fpfs_i]
seg000:46E7                 cbw
seg000:46E8                 mov     bx, ax
seg000:46EA                 mov     al, ds:sort[bx]
seg000:46EE                 cbw
seg000:46EF                 add     ax, cx
seg000:46F1                 mov     cx, 46
seg000:46F4                 imul    cx
seg000:46F6                 mov     bx, ax
seg000:46F8                 cmp     ds:part_table_sys_id[bx], 0
seg000:46FD                 jz      short fpfs_2
seg000:46FF                 mov     ds:free_space_start, 0
seg000:4705                 cmp     [bp+fpfs_type], 5
seg000:4709                 jnz     short fpfs_5
seg000:470B                 mov     ds:free_space_start, 1
seg000:4711
seg000:4711 fpfs_5:                                 ; CODE XREF: find_part_free_space+81j
seg000:4711                 mov     al, ds:cur_disk
seg000:4714                 cbw
seg000:4715                 shl     ax, 1
seg000:4717                 shl     ax, 1
seg000:4719                 mov     cx, ax
seg000:471B                 mov     al, [bp+fpfs_i]
seg000:471E                 cbw
seg000:471F                 mov     bx, ax
seg000:4721                 mov     al, ds:sort[bx]
seg000:4725                 cbw
seg000:4726                 add     ax, cx
seg000:4728                 mov     cx, 46
seg000:472B                 imul    cx
seg000:472D                 mov     bx, ax
seg000:472F                 cmp     ds:part_table_start_cyl[bx], 0
seg000:4734                 jz      short fpfs_6
seg000:4736                 mov     ax, ds:part_table_start_cyl[bx]
seg000:473A                 mov     cx, ax
seg000:473C                 dec     ax
seg000:473D                 mov     ds:free_space_end, ax
seg000:4740                 sub     cx, ds:free_space_start
seg000:4744                 mov     ds:free_space_space, cx
seg000:4748
seg000:4748 fpfs_6:                                 ; CODE XREF: find_part_free_space+ACj
seg000:4748                 mov     al, ds:cur_disk
seg000:474B                 push    ax
seg000:474C                 push    ds:free_space_space
seg000:4750                 call    cylinders_to_mbytes
seg000:4753                 pop     bx
seg000:4754                 pop     bx
seg000:4755                 mov     ds:free_space_mbytes_unused, ax
seg000:4758                 mov     al, ds:cur_disk
seg000:475B                 cbw
seg000:475C                 mov     bx, ax
seg000:475E                 shl     bx, 1
seg000:4760                 push    ds:total_disk[bx]
seg000:4764                 push    ds:free_space_space
seg000:4768                 call    cylinders_to_percent
seg000:476B                 pop     bx
seg000:476C                 pop     bx
seg000:476D                 mov     ds:free_space_percent_unused, ax
seg000:4770                 mov     al, [bp+fpfs_i]
seg000:4773                 mov     [bp+fpfs_partition_count], al
seg000:4776                 cbw
seg000:4777                 mov     bx, ax
seg000:4779                 mov     al, ds:sort[bx]
seg000:477D                 mov     [bp+last_found_partition], al
seg000:4780                 mov     [bp+fpfs_anypartition], 1
seg000:4784
seg000:4784 fpfs_7:                                 ; CODE XREF: find_part_free_space+4Fj
seg000:4784                 cmp     [bp+fpfs_anypartition], 0
seg000:4788                 jnz     short fpfs_8
seg000:478A                 jmp     fpfs_16
seg000:478D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:478D
seg000:478D fpfs_8:                                 ; CODE XREF: find_part_free_space+100j
seg000:478D                 mov     [bp+freespace_count], 1
seg000:4791                 mov     al, [bp+fpfs_partition_count]
seg000:4794                 inc     al
seg000:4796                 mov     [bp+fpfs_i], al
seg000:4799                 jmp     fpfs_13
seg000:479C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:479C
seg000:479C fpfs_9:                                 ; CODE XREF: find_part_free_space+1E4j
seg000:479C                 mov     al, ds:cur_disk
seg000:479F                 cbw
seg000:47A0                 shl     ax, 1
seg000:47A2                 shl     ax, 1
seg000:47A4                 mov     cx, ax
seg000:47A6                 mov     al, [bp+fpfs_i]
seg000:47A9                 cbw
seg000:47AA                 mov     bx, ax
seg000:47AC                 mov     al, ds:sort[bx]
seg000:47B0                 cbw
seg000:47B1                 add     ax, cx
seg000:47B3                 mov     bx, 46
seg000:47B6                 imul    bx
seg000:47B8                 mov     si, ax
seg000:47BA                 cmp     ds:part_table_sys_id[si], 0
seg000:47BF                 jnz     short fpfs_10
seg000:47C1                 jmp     fpfs_12
seg000:47C4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:47C4
seg000:47C4 fpfs_10:                                ; CODE XREF: find_part_free_space+137j
seg000:47C4                 mov     al, [bp+last_found_partition]
seg000:47C7                 cbw
seg000:47C8                 add     ax, cx
seg000:47CA                 imul    bx
seg000:47CC                 mov     bx, ax
seg000:47CE                 mov     ax, ds:part_table_end_cyl[bx]
seg000:47D2                 cmp     ds:part_table_start_cyl[si], ax
seg000:47D6                 jz      short fpfs_11
seg000:47D8                 sub     ax, ds:part_table_start_cyl[si]
seg000:47DC                 neg     ax
seg000:47DE                 dec     ax
seg000:47DF                 mov     dx, ax
seg000:47E1                 mov     al, 22
seg000:47E3                 imul    [bp+freespace_count]
seg000:47E6                 mov     bx, ax
seg000:47E8                 mov     ds:free_space_space[bx], dx
seg000:47EC
seg000:47EC fpfs_11:                                ; CODE XREF: find_part_free_space+14Ej
seg000:47EC                 mov     al, ds:cur_disk
seg000:47EF                 cbw
seg000:47F0                 shl     ax, 1
seg000:47F2                 shl     ax, 1
seg000:47F4                 mov     cx, ax
seg000:47F6                 mov     al, [bp+last_found_partition]
seg000:47F9                 cbw
seg000:47FA                 add     ax, cx
seg000:47FC                 mov     bx, 46
seg000:47FF                 imul    bx
seg000:4801                 mov     si, ax
seg000:4803                 mov     ax, ds:part_table_end_cyl[si]
seg000:4807                 inc     ax
seg000:4808                 mov     dx, ax
seg000:480A                 mov     al, 22
seg000:480C                 imul    [bp+freespace_count]
seg000:480F                 mov     si, ax
seg000:4811                 mov     ds:free_space_start[si], dx
seg000:4815                 mov     al, [bp+fpfs_i]
seg000:4818                 cbw
seg000:4819                 mov     di, ax
seg000:481B                 mov     al, ds:sort[di]
seg000:481F                 cbw
seg000:4820                 add     ax, cx
seg000:4822                 imul    bx
seg000:4824                 mov     bx, ax
seg000:4826                 mov     ax, ds:part_table_start_cyl[bx]
seg000:482A                 dec     ax
seg000:482B                 mov     ds:free_space_end[si], ax
seg000:482F                 mov     al, ds:cur_disk
seg000:4832                 push    ax
seg000:4833                 push    ds:free_space_space[si]
seg000:4837                 call    cylinders_to_mbytes
seg000:483A                 pop     bx
seg000:483B                 pop     bx
seg000:483C                 mov     ds:free_space_mbytes_unused[si], ax
seg000:4840                 mov     al, ds:cur_disk
seg000:4843                 cbw
seg000:4844                 mov     bx, ax
seg000:4846                 shl     bx, 1
seg000:4848                 push    ds:total_disk[bx]
seg000:484C                 push    ds:free_space_space[si]
seg000:4850                 call    cylinders_to_percent
seg000:4853                 pop     bx
seg000:4854                 pop     bx
seg000:4855                 mov     ds:free_space_percent_unused[si], ax
seg000:4859                 mov     al, ds:sort[di]
seg000:485D                 mov     [bp+last_found_partition], al
seg000:4860                 inc     [bp+freespace_count]
seg000:4863
seg000:4863 fpfs_12:                                ; CODE XREF: find_part_free_space+139j
seg000:4863                 inc     [bp+fpfs_i]
seg000:4866
seg000:4866 fpfs_13:                                ; CODE XREF: find_part_free_space+111j
seg000:4866                 cmp     [bp+fpfs_i], 4
seg000:486A                 jge     short fpfs_14
seg000:486C                 jmp     fpfs_9
seg000:486F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:486F
seg000:486F fpfs_14:                                ; CODE XREF: find_part_free_space+1E2j
seg000:486F                 mov     al, ds:cur_disk
seg000:4872                 cbw
seg000:4873                 mov     bx, ax
seg000:4875                 mov     al, [bp+last_found_partition]
seg000:4878                 cbw
seg000:4879                 mov     cx, bx
seg000:487B                 shl     bx, 1
seg000:487D                 shl     bx, 1
seg000:487F                 add     ax, bx
seg000:4881                 mov     bx, 46
seg000:4884                 imul    bx
seg000:4886                 mov     bx, ax
seg000:4888                 mov     si, cx
seg000:488A                 shl     si, 1
seg000:488C                 mov     ax, ds:total_disk[si]
seg000:4890                 cmp     ds:part_table_end_cyl[bx], ax
seg000:4894                 jb      short fpfs_15
seg000:4896                 jmp     fpfs_18
seg000:4899 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4899
seg000:4899 fpfs_15:                                ; CODE XREF: find_part_free_space+20Cj
seg000:4899                 mov     cx, ax
seg000:489B                 sub     ax, ds:part_table_end_cyl[bx]
seg000:489F                 dec     ax
seg000:48A0                 mov     dx, ax
seg000:48A2                 mov     al, 22
seg000:48A4                 imul    [bp+freespace_count]
seg000:48A7                 mov     si, ax
seg000:48A9                 mov     ds:free_space_space[si], dx
seg000:48AD                 mov     ax, ds:part_table_end_cyl[bx]
seg000:48B1                 inc     ax
seg000:48B2                 mov     ds:free_space_start[si], ax
seg000:48B6                 dec     cx
seg000:48B7                 mov     ds:free_space_end[si], cx
seg000:48BB                 mov     al, ds:cur_disk
seg000:48BE                 push    ax
seg000:48BF                 push    ds:free_space_space[si]
seg000:48C3                 call    cylinders_to_mbytes
seg000:48C6                 pop     bx
seg000:48C7                 pop     bx
seg000:48C8                 mov     ds:free_space_mbytes_unused[si], ax
seg000:48CC                 mov     al, ds:cur_disk
seg000:48CF                 cbw
seg000:48D0                 mov     bx, ax
seg000:48D2                 shl     bx, 1
seg000:48D4                 push    ds:total_disk[bx]
seg000:48D8                 push    ds:free_space_space[si]
seg000:48DC                 call    cylinders_to_percent
seg000:48DF                 pop     bx
seg000:48E0                 pop     bx
seg000:48E1                 mov     ds:free_space_percent_unused[si], ax
seg000:48E5                 jmp     short fpfs_18
seg000:48E7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:48E7
seg000:48E7 fpfs_16:                                ; CODE XREF: find_part_free_space+102j
seg000:48E7                 mov     ds:free_space_start, 0
seg000:48ED                 cmp     [bp+fpfs_type], 5
seg000:48F1                 jnz     short fpfs_17
seg000:48F3                 mov     ds:free_space_start, 1
seg000:48F9
seg000:48F9 fpfs_17:                                ; CODE XREF: find_part_free_space+269j
seg000:48F9                 mov     al, ds:cur_disk
seg000:48FC                 cbw
seg000:48FD                 mov     bx, ax
seg000:48FF                 shl     bx, 1
seg000:4901                 mov     ax, ds:total_disk[bx]
seg000:4905                 dec     ax
seg000:4906                 mov     ds:free_space_end, ax
seg000:4909                 sub     ax, ds:free_space_start
seg000:490D                 inc     ax
seg000:490E                 mov     ds:free_space_space, ax
seg000:4911                 mov     cl, ds:cur_disk
seg000:4915                 push    cx
seg000:4916                 push    ax
seg000:4917                 call    cylinders_to_mbytes
seg000:491A                 pop     bx
seg000:491B                 pop     bx
seg000:491C                 mov     ds:free_space_mbytes_unused, ax
seg000:491F                 mov     al, ds:cur_disk
seg000:4922                 cbw
seg000:4923                 mov     bx, ax
seg000:4925                 shl     bx, 1
seg000:4927                 push    ds:total_disk[bx]
seg000:492B                 push    ds:free_space_space
seg000:492F                 call    cylinders_to_percent
seg000:4932                 pop     bx
seg000:4933                 pop     bx
seg000:4934                 mov     ds:free_space_percent_unused, ax
seg000:4937
seg000:4937 fpfs_18:                                ; CODE XREF: find_part_free_space+20Ej
seg000:4937                                         ; find_part_free_space+25Dj ...
seg000:4937                 mov     [bp+fpfs_temp], 0
seg000:493C                 mov     [bp+fpfs_i], 0
seg000:4940
seg000:4940 fpfs_19:                                ; CODE XREF: find_part_free_space+2DCj
seg000:4940                 mov     al, 22
seg000:4942                 imul    [bp+fpfs_i]
seg000:4945                 mov     bx, ax
seg000:4947                 mov     ax, [bp+fpfs_temp]
seg000:494A                 cmp     ds:free_space_space[bx], ax
seg000:494E                 jbe     short fpfs_20
seg000:4950                 mov     ax, ds:free_space_space[bx]
seg000:4954                 mov     [bp+fpfs_temp], ax
seg000:4957                 mov     al, [bp+fpfs_i]
seg000:495A                 mov     [bp+last_found_partition], al
seg000:495D
seg000:495D fpfs_20:                                ; CODE XREF: find_part_free_space+2C6j
seg000:495D                 inc     [bp+fpfs_i]
seg000:4960                 cmp     [bp+fpfs_i], 5
seg000:4964                 jl      short fpfs_19
seg000:4966                 mov     [bp+fpfs_temp], 0
seg000:496B                 mov     al, 22
seg000:496D                 imul    [bp+last_found_partition]
seg000:4970                 mov     bx, ax
seg000:4972                 cmp     ds:free_space_space[bx], 0
seg000:4977                 jz      short fpfs_21
seg000:4979                 sub     al, al
seg000:497B                 push    ax
seg000:497C                 mov     al, [bp+last_found_partition]
seg000:497F                 push    ax
seg000:4980                 call    verify_tracks
seg000:4983                 pop     bx
seg000:4984                 pop     bx
seg000:4985                 mov     [bp+fpfs_temp], ax
seg000:4988
seg000:4988 fpfs_21:                                ; CODE XREF: find_part_free_space+2EFj
seg000:4988                 mov     al, 22
seg000:498A                 imul    [bp+last_found_partition]
seg000:498D                 mov     bx, ax
seg000:498F                 mov     ax, [bp+fpfs_temp]
seg000:4992                 add     ds:free_space_start[bx], ax
seg000:4996                 mov     cl, ds:cur_disk
seg000:499A                 push    cx
seg000:499B                 sub     ds:free_space_space[bx], ax
seg000:499F                 push    ds:free_space_space[bx]
seg000:49A3                 mov     si, bx
seg000:49A5                 call    cylinders_to_mbytes
seg000:49A8                 pop     bx
seg000:49A9                 pop     bx
seg000:49AA                 mov     ds:free_space_mbytes_unused[si], ax
seg000:49AE                 mov     al, ds:cur_disk
seg000:49B1                 cbw
seg000:49B2                 mov     bx, ax
seg000:49B4                 shl     bx, 1
seg000:49B6                 push    ds:total_disk[bx]
seg000:49BA                 push    ds:free_space_space[si]
seg000:49BE                 call    cylinders_to_percent
seg000:49C1                 pop     bx
seg000:49C2                 pop     bx
seg000:49C3                 mov     ds:free_space_percent_unused[si], ax
seg000:49C7                 cmp     [bp+fpfs_temp], 0
seg000:49CB                 jz      short fpfs_22
seg000:49CD                 mov     al, 22
seg000:49CF                 imul    [bp+last_found_partition]
seg000:49D2                 mov     bx, ax
seg000:49D4                 cmp     ds:free_space_space[bx], 0
seg000:49D9                 jz      short fpfs_22
seg000:49DB                 jmp     fpfs_18
seg000:49DE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:49DE
seg000:49DE fpfs_22:                                ; CODE XREF: find_part_free_space+343j
seg000:49DE                                         ; find_part_free_space+351j
seg000:49DE                 cmp     [bp+fpfs_type], 0
seg000:49E2                 jnz     short fpfs_23
seg000:49E4                 mov     al, 22
seg000:49E6                 imul    [bp+last_found_partition]
seg000:49E9                 mov     bx, ax
seg000:49EB                 cmp     ds:free_space_mbytes_unused[bx], 2048
seg000:49F1                 jbe     short fpfs_23
seg000:49F3                 mov     al, ds:cur_disk
seg000:49F6                 push    ax
seg000:49F7                 mov     ax, 2048
seg000:49FA                 push    ax
seg000:49FB                 mov     si, bx
seg000:49FD                 call    mbytes_to_cylinders
seg000:4A00                 pop     bx
seg000:4A01                 pop     bx
seg000:4A02                 dec     ax
seg000:4A03                 mov     ds:free_space_space[si], ax
seg000:4A07                 mov     ax, ds:free_space_start[si]
seg000:4A0B                 add     ax, ds:free_space_space[si]
seg000:4A0F                 dec     ax
seg000:4A10                 mov     ds:free_space_end[si], ax
seg000:4A14                 mov     al, ds:cur_disk
seg000:4A17                 push    ax
seg000:4A18                 push    ds:free_space_space[si]
seg000:4A1C                 call    cylinders_to_mbytes
seg000:4A1F                 pop     bx
seg000:4A20                 pop     bx
seg000:4A21                 mov     ds:free_space_mbytes_unused[si], ax
seg000:4A25                 mov     al, ds:cur_disk
seg000:4A28                 cbw
seg000:4A29                 mov     bx, ax
seg000:4A2B                 shl     bx, 1
seg000:4A2D                 push    ds:total_disk[bx]
seg000:4A31                 push    ds:free_space_space[si]
seg000:4A35                 call    cylinders_to_percent
seg000:4A38                 pop     bx
seg000:4A39                 pop     bx
seg000:4A3A                 mov     ds:free_space_percent_unused[si], ax
seg000:4A3E
seg000:4A3E fpfs_23:                                ; CODE XREF: find_part_free_space+35Aj
seg000:4A3E                                         ; find_part_free_space+369j
seg000:4A3E                 mov     al, [bp+last_found_partition]
seg000:4A41                 pop     si
seg000:4A42                 pop     di
seg000:4A43                 mov     sp, bp
seg000:4A45                 pop     bp
seg000:4A46                 retn
seg000:4A46 find_part_free_space endp
seg000:4A46
seg000:4A47
seg000:4A47 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4A47
seg000:4A47 ; Attributes: bp-based frame
seg000:4A47
seg000:4A47 sort_part_table proc near               ; CODE XREF: change_active_partition+1E4p
seg000:4A47                                         ; table_display+1Fp ...
seg000:4A47
seg000:4A47 sort_changed    = byte ptr -6
seg000:4A47 sort_i          = byte ptr -4
seg000:4A47 sort_temp       = byte ptr -2
seg000:4A47 sort_count      = byte ptr  4
seg000:4A47
seg000:4A47                 push    bp
seg000:4A48                 mov     bp, sp
seg000:4A4A                 sub     sp, 6
seg000:4A4D                 push    di
seg000:4A4E                 push    si
seg000:4A4F                 mov     [bp+sort_i], 0
seg000:4A53                 jmp     short sortpt_2
seg000:4A55 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4A55
seg000:4A55 sortpt_1:                               ; CODE XREF: sort_part_table+21j
seg000:4A55                 mov     al, [bp+sort_i]
seg000:4A58                 cbw
seg000:4A59                 mov     bx, ax
seg000:4A5B                 mov     ds:sort[bx], al
seg000:4A5F                 inc     [bp+sort_i]
seg000:4A62
seg000:4A62 sortpt_2:                               ; CODE XREF: sort_part_table+Cj
seg000:4A62                 mov     al, [bp+sort_count]
seg000:4A65                 cmp     [bp+sort_i], al
seg000:4A68                 jl      short sortpt_1
seg000:4A6A                 mov     [bp+sort_changed], 1
seg000:4A6E
seg000:4A6E sortpt_3:                               ; CODE XREF: sort_part_table+43j
seg000:4A6E                 cmp     [bp+sort_changed], 0
seg000:4A72                 jnz     short sortpt_4
seg000:4A74                 jmp     sortpt_8
seg000:4A77 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4A77
seg000:4A77 sortpt_4:                               ; CODE XREF: sort_part_table+2Bj
seg000:4A77                 mov     [bp+sort_changed], 0
seg000:4A7B                 mov     [bp+sort_i], 1
seg000:4A7F                 jmp     short sortpt_6
seg000:4A81 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4A81
seg000:4A81 sortpt_5:                               ; CODE XREF: sort_part_table+84j
seg000:4A81                                         ; sort_part_table+8Ej ...
seg000:4A81                 inc     [bp+sort_i]
seg000:4A84
seg000:4A84 sortpt_6:                               ; CODE XREF: sort_part_table+38j
seg000:4A84                 mov     al, [bp+sort_count]
seg000:4A87                 cmp     [bp+sort_i], al
seg000:4A8A                 jge     short sortpt_3
seg000:4A8C                 mov     al, ds:cur_disk
seg000:4A8F                 cbw
seg000:4A90                 shl     ax, 1
seg000:4A92                 shl     ax, 1
seg000:4A94                 mov     cx, ax
seg000:4A96                 mov     al, [bp+sort_i]
seg000:4A99                 cbw
seg000:4A9A                 mov     bx, ax
seg000:4A9C                 mov     al, ds:sort[bx]
seg000:4AA0                 cbw
seg000:4AA1                 add     ax, cx
seg000:4AA3                 mov     si, 46
seg000:4AA6                 imul    si
seg000:4AA8                 mov     di, ax
seg000:4AAA                 mov     ax, ds:part_table_end_cyl[di]
seg000:4AAE                 mov     dx, ax
seg000:4AB0                 mov     al, ds:sort_1[bx]
seg000:4AB4                 cbw
seg000:4AB5                 add     ax, cx
seg000:4AB7                 mov     cx, dx
seg000:4AB9                 imul    si
seg000:4ABB                 mov     bx, ax
seg000:4ABD                 cmp     ds:part_table_end_cyl[bx], cx
seg000:4AC1                 ja      short sortpt_7
seg000:4AC3                 mov     ax, ds:part_table_num_sec_hw[di]
seg000:4AC7                 or      ax, ds:part_table_num_sec_lw[di]
seg000:4ACB                 jnz     short sortpt_5
seg000:4ACD                 mov     ax, ds:part_table_num_sec_hw[bx]
seg000:4AD1                 or      ax, ds:part_table_num_sec_lw[bx]
seg000:4AD5                 jz      short sortpt_5
seg000:4AD7
seg000:4AD7 sortpt_7:                               ; CODE XREF: sort_part_table+7Aj
seg000:4AD7                 mov     al, [bp+sort_i]
seg000:4ADA                 cbw
seg000:4ADB                 mov     bx, ax
seg000:4ADD                 mov     al, ds:sort_1[bx]
seg000:4AE1                 mov     [bp+sort_temp], al
seg000:4AE4                 mov     al, ds:sort[bx]
seg000:4AE8                 mov     ds:sort_1[bx], al
seg000:4AEC                 mov     al, [bp+sort_temp]
seg000:4AEF                 mov     ds:sort[bx], al
seg000:4AF3                 mov     [bp+sort_changed], 1
seg000:4AF7                 jmp     short sortpt_5
seg000:4AF9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4AF9
seg000:4AF9 sortpt_8:                               ; CODE XREF: sort_part_table+2Dj
seg000:4AF9                 pop     si
seg000:4AFA                 pop     di
seg000:4AFB                 mov     sp, bp
seg000:4AFD                 pop     bp
seg000:4AFE                 retn
seg000:4AFE sort_part_table endp
seg000:4AFE
seg000:4AFF
seg000:4AFF ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4AFF
seg000:4AFF ; Attributes: bp-based frame
seg000:4AFF
seg000:4AFF find_ext_free_space proc near           ; CODE XREF: main+2E9p
seg000:4AFF                                         ; volume_create:vc_8p
seg000:4AFF
seg000:4AFF fefs_i          = byte ptr -0Eh
seg000:4AFF fefs_ext_location= byte ptr -0Ch
seg000:4AFF fefs_last_found_part= byte ptr -0Ah
seg000:4AFF fefs_temp       = word ptr -8
seg000:4AFF fefs_freespace_count= byte ptr -6
seg000:4AFF fefs_partition_count= byte ptr -4
seg000:4AFF fefs_any_partition= byte ptr -2
seg000:4AFF
seg000:4AFF                 push    bp
seg000:4B00                 mov     bp, sp
seg000:4B02                 sub     sp, 14
seg000:4B05                 push    di
seg000:4B06                 push    si
seg000:4B07                 mov     al, 23
seg000:4B09                 push    ax
seg000:4B0A                 call    sort_ext_table
seg000:4B0D                 pop     bx
seg000:4B0E                 mov     [bp+fefs_i], 0
seg000:4B12
seg000:4B12 fefs_1:                                 ; CODE XREF: find_ext_free_space+37j
seg000:4B12                 mov     al, 22
seg000:4B14                 imul    [bp+fefs_i]
seg000:4B17                 mov     bx, ax
seg000:4B19                 sub     ax, ax
seg000:4B1B                 mov     ds:free_space_space[bx], ax
seg000:4B1F                 mov     ds:free_space_start[bx], ax
seg000:4B23                 mov     ds:free_space_end[bx], ax
seg000:4B27                 mov     ds:free_space_mbytes_unused[bx], ax
seg000:4B2B                 mov     ds:free_space_percent_unused[bx], ax
seg000:4B2F                 inc     [bp+fefs_i]
seg000:4B32                 cmp     [bp+fefs_i], 24
seg000:4B36                 jl      short fefs_1
seg000:4B38                 mov     al, 5
seg000:4B3A                 push    ax
seg000:4B3B                 call    find_partition_location
seg000:4B3E                 pop     bx
seg000:4B3F                 mov     [bp+fefs_ext_location], al
seg000:4B42                 sub     al, al
seg000:4B44                 mov     [bp+fefs_partition_count], al
seg000:4B47                 mov     [bp+fefs_any_partition], al
seg000:4B4A                 mov     [bp+fefs_i], al
seg000:4B4D                 jmp     short fefs_3
seg000:4B4F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4B4F
seg000:4B4F fefs_2:                                 ; CODE XREF: find_ext_free_space+82j
seg000:4B4F                 inc     [bp+fefs_i]
seg000:4B52
seg000:4B52 fefs_3:                                 ; CODE XREF: find_ext_free_space+4Ej
seg000:4B52                 cmp     [bp+fefs_i], 23
seg000:4B56                 jl      short fefs_4
seg000:4B58                 jmp     fefs_5
seg000:4B5B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4B5B
seg000:4B5B fefs_4:                                 ; CODE XREF: find_ext_free_space+57j
seg000:4B5B                 mov     al, ds:cur_disk
seg000:4B5E                 cbw
seg000:4B5F                 mov     cx, 24
seg000:4B62                 mov     bx, ax
seg000:4B64                 imul    cx
seg000:4B66                 mov     cx, ax
seg000:4B68                 mov     al, [bp+fefs_i]
seg000:4B6B                 cbw
seg000:4B6C                 mov     si, ax
seg000:4B6E                 mov     al, ds:sort[si]
seg000:4B72                 cbw
seg000:4B73                 add     ax, cx
seg000:4B75                 mov     cx, 46
seg000:4B78                 imul    cx
seg000:4B7A                 mov     di, ax
seg000:4B7C                 cmp     ds:ext_table_sys_id[di], 0
seg000:4B81                 jz      short fefs_2
seg000:4B83                 shl     bx, 1
seg000:4B85                 shl     bx, 1
seg000:4B87                 mov     al, [bp+fefs_ext_location]
seg000:4B8A                 cbw
seg000:4B8B                 add     ax, bx
seg000:4B8D                 imul    cx
seg000:4B8F                 mov     bx, ax
seg000:4B91                 mov     ax, ds:part_table_start_cyl[bx]
seg000:4B95                 mov     ds:free_space_start, ax
seg000:4B98                 mov     cx, ds:ext_table_start_cyl[di]
seg000:4B9C                 mov     dx, cx
seg000:4B9E                 dec     cx
seg000:4B9F                 mov     ds:free_space_end, cx
seg000:4BA3                 mov     cl, ds:cur_disk
seg000:4BA7                 push    cx
seg000:4BA8                 sub     dx, ax
seg000:4BAA                 mov     ds:free_space_space, dx
seg000:4BAE                 push    dx
seg000:4BAF                 call    cylinders_to_mbytes
seg000:4BB2                 pop     bx
seg000:4BB3                 pop     bx
seg000:4BB4                 mov     ds:free_space_mbytes_unused, ax
seg000:4BB7                 mov     al, ds:cur_disk
seg000:4BBA                 cbw
seg000:4BBB                 mov     bx, ax
seg000:4BBD                 shl     bx, 1
seg000:4BBF                 push    ds:total_disk[bx]
seg000:4BC3                 push    ds:free_space_space
seg000:4BC7                 call    cylinders_to_percent
seg000:4BCA                 pop     bx
seg000:4BCB                 pop     bx
seg000:4BCC                 mov     ds:free_space_percent_unused, ax
seg000:4BCF                 mov     al, [bp+fefs_i]
seg000:4BD2                 mov     [bp+fefs_partition_count], al
seg000:4BD5                 mov     al, ds:sort[si]
seg000:4BD9                 mov     [bp+fefs_last_found_part], al
seg000:4BDC                 mov     [bp+fefs_any_partition], 1
seg000:4BE0
seg000:4BE0 fefs_5:                                 ; CODE XREF: find_ext_free_space+59j
seg000:4BE0                 cmp     [bp+fefs_any_partition], 0
seg000:4BE4                 jnz     short fefs_6
seg000:4BE6                 jmp     fefs_11
seg000:4BE9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4BE9
seg000:4BE9 fefs_6:                                 ; CODE XREF: find_ext_free_space+E5j
seg000:4BE9                 mov     [bp+fefs_freespace_count], 1
seg000:4BED                 mov     al, [bp+fefs_partition_count]
seg000:4BF0                 inc     al
seg000:4BF2                 mov     [bp+fefs_i], al
seg000:4BF5                 jmp     fefs_9
seg000:4BF8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4BF8
seg000:4BF8 fefs_7:                                 ; CODE XREF: find_ext_free_space+18Ej
seg000:4BF8                 mov     al, 24
seg000:4BFA                 imul    ds:cur_disk
seg000:4BFE                 mov     cx, ax
seg000:4C00                 mov     al, [bp+fefs_i]
seg000:4C03                 cbw
seg000:4C04                 mov     bx, ax
seg000:4C06                 mov     al, ds:sort[bx]
seg000:4C0A                 cbw
seg000:4C0B                 add     ax, cx
seg000:4C0D                 mov     si, 46
seg000:4C10                 imul    si
seg000:4C12                 mov     di, ax
seg000:4C14                 cmp     ds:ext_table_sys_id[di], 0
seg000:4C19                 jz      short fefs_8
seg000:4C1B                 mov     al, [bp+fefs_last_found_part]
seg000:4C1E                 cbw
seg000:4C1F                 add     ax, cx
seg000:4C21                 imul    si
seg000:4C23                 mov     si, ax
seg000:4C25                 mov     ax, ds:ext_table_start_cyl[di]
seg000:4C29                 mov     cx, ax
seg000:4C2B                 sub     ax, ds:ext_table_end_cyl[si]
seg000:4C2F                 dec     ax
seg000:4C30                 mov     [bp+fefs_temp], ax
seg000:4C33                 mov     dx, ax
seg000:4C35                 mov     al, 22
seg000:4C37                 imul    [bp+fefs_freespace_count]
seg000:4C3A                 mov     di, ax
seg000:4C3C                 mov     ds:free_space_space[di], dx
seg000:4C40                 mov     ax, ds:ext_table_end_cyl[si]
seg000:4C44                 inc     ax
seg000:4C45                 mov     ds:free_space_start[di], ax
seg000:4C49                 dec     cx
seg000:4C4A                 mov     ds:free_space_end[di], cx
seg000:4C4E                 mov     al, ds:cur_disk
seg000:4C51                 push    ax
seg000:4C52                 push    ds:free_space_space[di]
seg000:4C56                 mov     si, bx
seg000:4C58                 call    cylinders_to_mbytes
seg000:4C5B                 pop     bx
seg000:4C5C                 pop     bx
seg000:4C5D                 mov     ds:free_space_mbytes_unused[di], ax
seg000:4C61                 mov     al, ds:cur_disk
seg000:4C64                 cbw
seg000:4C65                 mov     bx, ax
seg000:4C67                 shl     bx, 1
seg000:4C69                 push    ds:total_disk[bx]
seg000:4C6D                 push    ds:free_space_space[di]
seg000:4C71                 call    cylinders_to_percent
seg000:4C74                 pop     bx
seg000:4C75                 pop     bx
seg000:4C76                 mov     ds:free_space_percent_unused[di], ax
seg000:4C7A                 mov     al, ds:sort[si]
seg000:4C7E                 mov     [bp+fefs_last_found_part], al
seg000:4C81                 inc     [bp+fefs_freespace_count]
seg000:4C84
seg000:4C84 fefs_8:                                 ; CODE XREF: find_ext_free_space+11Aj
seg000:4C84                 inc     [bp+fefs_i]
seg000:4C87
seg000:4C87 fefs_9:                                 ; CODE XREF: find_ext_free_space+F6j
seg000:4C87                 cmp     [bp+fefs_i], 23
seg000:4C8B                 jge     short fefs_10
seg000:4C8D                 jmp     fefs_7
seg000:4C90 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4C90
seg000:4C90 fefs_10:                                ; CODE XREF: find_ext_free_space+18Cj
seg000:4C90                 mov     al, [bp+fefs_last_found_part]
seg000:4C93                 cbw
seg000:4C94                 mov     cx, 24
seg000:4C97                 mov     dx, ax
seg000:4C99                 mov     al, ds:cur_disk
seg000:4C9C                 cbw
seg000:4C9D                 mov     bx, dx
seg000:4C9F                 mov     si, ax
seg000:4CA1                 imul    cx
seg000:4CA3                 add     ax, bx
seg000:4CA5                 mov     cx, 46
seg000:4CA8                 imul    cx
seg000:4CAA                 mov     bx, ax
seg000:4CAC                 mov     al, [bp+fefs_ext_location]
seg000:4CAF                 cbw
seg000:4CB0                 shl     si, 1
seg000:4CB2                 shl     si, 1
seg000:4CB4                 add     ax, si
seg000:4CB6                 imul    cx
seg000:4CB8                 mov     si, ax
seg000:4CBA                 mov     ax, ds:part_table_end_cyl[si]
seg000:4CBE                 mov     cx, ax
seg000:4CC0                 sub     ax, ds:ext_table_end_cyl[bx]
seg000:4CC4                 mov     [bp+fefs_temp], ax
seg000:4CC7                 mov     dx, ax
seg000:4CC9                 mov     al, 22
seg000:4CCB                 imul    [bp+fefs_freespace_count]
seg000:4CCE                 mov     si, ax
seg000:4CD0                 mov     ds:free_space_space[si], dx
seg000:4CD4                 mov     ax, ds:ext_table_end_cyl[bx]
seg000:4CD8                 inc     ax
seg000:4CD9                 mov     ds:free_space_start[si], ax
seg000:4CDD                 mov     ds:free_space_end[si], cx
seg000:4CE1                 mov     al, ds:cur_disk
seg000:4CE4                 push    ax
seg000:4CE5                 push    ds:free_space_space[si]
seg000:4CE9                 call    cylinders_to_mbytes
seg000:4CEC                 pop     bx
seg000:4CED                 pop     bx
seg000:4CEE                 mov     ds:free_space_mbytes_unused[si], ax
seg000:4CF2                 mov     al, ds:cur_disk
seg000:4CF5                 cbw
seg000:4CF6                 mov     bx, ax
seg000:4CF8                 shl     bx, 1
seg000:4CFA                 push    ds:total_disk[bx]
seg000:4CFE                 push    ds:free_space_space[si]
seg000:4D02                 call    cylinders_to_percent
seg000:4D05                 pop     bx
seg000:4D06                 pop     bx
seg000:4D07                 mov     ds:free_space_percent_unused[si], ax
seg000:4D0B                 jmp     short fefs_12
seg000:4D0D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4D0D
seg000:4D0D fefs_11:                                ; CODE XREF: find_ext_free_space+E7j
seg000:4D0D                 mov     al, ds:cur_disk
seg000:4D10                 cbw
seg000:4D11                 shl     ax, 1
seg000:4D13                 shl     ax, 1
seg000:4D15                 mov     cx, ax
seg000:4D17                 mov     al, [bp+fefs_ext_location]
seg000:4D1A                 cbw
seg000:4D1B                 add     ax, cx
seg000:4D1D                 mov     cx, 46
seg000:4D20                 imul    cx
seg000:4D22                 mov     bx, ax
seg000:4D24                 mov     ax, ds:part_table_end_cyl[bx]
seg000:4D28                 mov     cx, ax
seg000:4D2A                 sub     ax, ds:part_table_start_cyl[bx]
seg000:4D2E                 inc     ax
seg000:4D2F                 mov     ds:free_space_space, ax
seg000:4D32                 mov     dx, ds:part_table_start_cyl[bx]
seg000:4D36                 mov     ds:free_space_start, dx
seg000:4D3A                 mov     ds:free_space_end, cx
seg000:4D3E                 mov     cl, ds:cur_disk
seg000:4D42                 push    cx
seg000:4D43                 push    ax
seg000:4D44                 call    cylinders_to_mbytes
seg000:4D47                 pop     bx
seg000:4D48                 pop     bx
seg000:4D49                 mov     ds:free_space_mbytes_unused, ax
seg000:4D4C                 mov     al, ds:cur_disk
seg000:4D4F                 cbw
seg000:4D50                 mov     bx, ax
seg000:4D52                 shl     bx, 1
seg000:4D54                 push    ds:total_disk[bx]
seg000:4D58                 push    ds:free_space_space
seg000:4D5C                 call    cylinders_to_percent
seg000:4D5F                 pop     bx
seg000:4D60                 pop     bx
seg000:4D61                 mov     ds:free_space_percent_unused, ax
seg000:4D64
seg000:4D64 fefs_12:                                ; CODE XREF: find_ext_free_space+20Cj
seg000:4D64                 mov     [bp+fefs_temp], 0
seg000:4D69
seg000:4D69 fefs_13:                                ; CODE XREF: find_ext_free_space+30Ej
seg000:4D69                 mov     [bp+fefs_temp], 0
seg000:4D6E                 mov     [bp+fefs_i], 0
seg000:4D72
seg000:4D72 fefs_14:                                ; CODE XREF: find_ext_free_space+297j
seg000:4D72                 mov     al, 22
seg000:4D74                 imul    [bp+fefs_i]
seg000:4D77                 mov     bx, ax
seg000:4D79                 mov     ax, [bp+fefs_temp]
seg000:4D7C                 cmp     ds:free_space_space[bx], ax
seg000:4D80                 jbe     short fefs_15
seg000:4D82                 mov     ax, ds:free_space_space[bx]
seg000:4D86                 mov     [bp+fefs_temp], ax
seg000:4D89                 mov     al, [bp+fefs_i]
seg000:4D8C                 mov     [bp+fefs_last_found_part], al
seg000:4D8F
seg000:4D8F fefs_15:                                ; CODE XREF: find_ext_free_space+281j
seg000:4D8F                 inc     [bp+fefs_i]
seg000:4D92                 cmp     [bp+fefs_i], 24
seg000:4D96                 jl      short fefs_14
seg000:4D98                 mov     [bp+fefs_temp], 0
seg000:4D9D                 mov     al, 22
seg000:4D9F                 imul    [bp+fefs_last_found_part]
seg000:4DA2                 mov     bx, ax
seg000:4DA4                 cmp     ds:free_space_space[bx], 0
seg000:4DA9                 jz      short fefs_16
seg000:4DAB                 mov     al, 5
seg000:4DAD                 push    ax
seg000:4DAE                 mov     al, [bp+fefs_last_found_part]
seg000:4DB1                 push    ax
seg000:4DB2                 call    verify_tracks
seg000:4DB5                 pop     bx
seg000:4DB6                 pop     bx
seg000:4DB7                 mov     [bp+fefs_temp], ax
seg000:4DBA
seg000:4DBA fefs_16:                                ; CODE XREF: find_ext_free_space+2AAj
seg000:4DBA                 mov     al, 22
seg000:4DBC                 imul    [bp+fefs_last_found_part]
seg000:4DBF                 mov     bx, ax
seg000:4DC1                 mov     ax, [bp+fefs_temp]
seg000:4DC4                 add     ds:free_space_start[bx], ax
seg000:4DC8                 mov     cl, ds:cur_disk
seg000:4DCC                 push    cx
seg000:4DCD                 sub     ds:free_space_space[bx], ax
seg000:4DD1                 push    ds:free_space_space[bx]
seg000:4DD5                 mov     si, bx
seg000:4DD7                 call    cylinders_to_mbytes
seg000:4DDA                 pop     bx
seg000:4DDB                 pop     bx
seg000:4DDC                 mov     ds:free_space_mbytes_unused[si], ax
seg000:4DE0                 mov     al, ds:cur_disk
seg000:4DE3                 cbw
seg000:4DE4                 mov     bx, ax
seg000:4DE6                 shl     bx, 1
seg000:4DE8                 push    ds:total_disk[bx]
seg000:4DEC                 push    ds:free_space_space[si]
seg000:4DF0                 call    cylinders_to_percent
seg000:4DF3                 pop     bx
seg000:4DF4                 pop     bx
seg000:4DF5                 mov     ds:free_space_percent_unused[si], ax
seg000:4DF9                 cmp     [bp+fefs_temp], 0
seg000:4DFD                 jz      short fefs_17
seg000:4DFF                 mov     al, 22
seg000:4E01                 imul    [bp+fefs_last_found_part]
seg000:4E04                 mov     bx, ax
seg000:4E06                 cmp     ds:free_space_space[bx], 0
seg000:4E0B                 jz      short fefs_17
seg000:4E0D                 jmp     fefs_13
seg000:4E10 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4E10
seg000:4E10 fefs_17:                                ; CODE XREF: find_ext_free_space+2FEj
seg000:4E10                                         ; find_ext_free_space+30Cj
seg000:4E10                 mov     al, 22
seg000:4E12                 imul    [bp+fefs_last_found_part]
seg000:4E15                 mov     bx, ax
seg000:4E17                 cmp     ds:free_space_mbytes_unused[bx], 2048
seg000:4E1D                 jbe     short fefs_18
seg000:4E1F                 mov     al, ds:cur_disk
seg000:4E22                 push    ax
seg000:4E23                 mov     ax, 2048
seg000:4E26                 push    ax
seg000:4E27                 mov     si, bx
seg000:4E29                 call    mbytes_to_cylinders
seg000:4E2C                 pop     bx
seg000:4E2D                 pop     bx
seg000:4E2E                 dec     ax
seg000:4E2F                 mov     ds:free_space_space[si], ax
seg000:4E33                 mov     ax, ds:free_space_start[si]
seg000:4E37                 add     ax, ds:free_space_space[si]
seg000:4E3B                 dec     ax
seg000:4E3C                 mov     ds:free_space_end[si], ax
seg000:4E40                 mov     al, ds:cur_disk
seg000:4E43                 push    ax
seg000:4E44                 push    ds:free_space_space[si]
seg000:4E48                 call    cylinders_to_mbytes
seg000:4E4B                 pop     bx
seg000:4E4C                 pop     bx
seg000:4E4D                 mov     ds:free_space_mbytes_unused[si], ax
seg000:4E51                 mov     al, ds:cur_disk
seg000:4E54                 cbw
seg000:4E55                 mov     bx, ax
seg000:4E57                 shl     bx, 1
seg000:4E59                 push    ds:total_disk[bx]
seg000:4E5D                 push    ds:free_space_space[si]
seg000:4E61                 call    cylinders_to_percent
seg000:4E64                 pop     bx
seg000:4E65                 pop     bx
seg000:4E66                 mov     ds:free_space_percent_unused[si], ax
seg000:4E6A
seg000:4E6A fefs_18:                                ; CODE XREF: find_ext_free_space+31Ej
seg000:4E6A                 mov     al, [bp+fefs_last_found_part]
seg000:4E6D                 pop     si
seg000:4E6E                 pop     di
seg000:4E6F                 mov     sp, bp
seg000:4E71                 pop     bp
seg000:4E72                 retn
seg000:4E72 find_ext_free_space endp
seg000:4E72
seg000:4E73
seg000:4E73 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4E73
seg000:4E73 ; Attributes: bp-based frame
seg000:4E73
seg000:4E73 sort_ext_table  proc near               ; CODE XREF: volume_display+Dp
seg000:4E73                                         ; change_current_drive+15Fp ...
seg000:4E73
seg000:4E73 swptemp2        = word ptr -0Ah
seg000:4E73 swptemp1        = word ptr -8
seg000:4E73 sortex_changed  = byte ptr -6
seg000:4E73 sortex_i        = byte ptr -4
seg000:4E73 sortex_temp     = byte ptr -2
seg000:4E73 sortex_count    = byte ptr  4
seg000:4E73
seg000:4E73                 push    bp
seg000:4E74                 mov     bp, sp
seg000:4E76                 sub     sp, 10
seg000:4E79                 push    di
seg000:4E7A                 push    si
seg000:4E7B                 mov     [bp+sortex_i], 0
seg000:4E7F                 jmp     short sortept_2
seg000:4E81 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4E81
seg000:4E81 sortept_1:                              ; CODE XREF: sort_ext_table+21j
seg000:4E81                 mov     al, [bp+sortex_i]
seg000:4E84                 cbw
seg000:4E85                 mov     bx, ax
seg000:4E87                 mov     ds:sort[bx], al
seg000:4E8B                 inc     [bp+sortex_i]
seg000:4E8E
seg000:4E8E sortept_2:                              ; CODE XREF: sort_ext_table+Cj
seg000:4E8E                 mov     al, [bp+sortex_count]
seg000:4E91                 cmp     [bp+sortex_i], al
seg000:4E94                 jl      short sortept_1
seg000:4E96                 mov     [bp+sortex_changed], 1
seg000:4E9A
seg000:4E9A sortept_3:                              ; CODE XREF: sort_ext_table+40j
seg000:4E9A                 cmp     [bp+sortex_changed], 0
seg000:4E9E                 jz      short sortept_6
seg000:4EA0                 mov     [bp+sortex_changed], 0
seg000:4EA4                 mov     [bp+sortex_i], 1
seg000:4EA8                 jmp     short sortept_5
seg000:4EAA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4EAA
seg000:4EAA sortept_4:                              ; CODE XREF: sort_ext_table+84j
seg000:4EAA                                         ; sort_ext_table+9Ej
seg000:4EAA                 inc     [bp+sortex_i]
seg000:4EAD
seg000:4EAD sortept_5:                              ; CODE XREF: sort_ext_table+35j
seg000:4EAD                 mov     al, [bp+sortex_count]
seg000:4EB0                 cmp     [bp+sortex_i], al
seg000:4EB3                 jge     short sortept_3
seg000:4EB5                 mov     al, 24
seg000:4EB7                 imul    ds:cur_disk
seg000:4EBB                 mov     cx, ax
seg000:4EBD                 mov     al, [bp+sortex_i]
seg000:4EC0                 cbw
seg000:4EC1                 mov     bx, ax
seg000:4EC3                 mov     al, ds:sort[bx]
seg000:4EC7                 mov     dx, ax
seg000:4EC9                 cbw
seg000:4ECA                 add     ax, cx
seg000:4ECC                 mov     si, ax
seg000:4ECE                 mov     al, ds:sort_1[bx]
seg000:4ED2                 mov     di, 46
seg000:4ED5                 mov     [bp+swptemp1], ax
seg000:4ED8                 mov     ax, si
seg000:4EDA                 mov     [bp+swptemp2], dx
seg000:4EDD                 imul    di
seg000:4EDF                 mov     si, ax
seg000:4EE1                 mov     ax, ds:ext_table_start_cyl[si]
seg000:4EE5                 mov     dx, ax
seg000:4EE7                 mov     al, byte ptr [bp+swptemp1]
seg000:4EEA                 cbw
seg000:4EEB                 add     ax, cx
seg000:4EED                 mov     cx, dx
seg000:4EEF                 imul    di
seg000:4EF1                 mov     si, ax
seg000:4EF3                 cmp     ds:ext_table_start_cyl[si], cx
seg000:4EF7                 jbe     short sortept_4
seg000:4EF9                 mov     al, byte ptr [bp+swptemp1]
seg000:4EFC                 mov     [bp+sortex_temp], al
seg000:4EFF                 mov     al, byte ptr [bp+swptemp2]
seg000:4F02                 mov     ds:sort_1[bx], al
seg000:4F06                 mov     al, [bp+sortex_temp]
seg000:4F09                 mov     ds:sort[bx], al
seg000:4F0D                 mov     [bp+sortex_changed], 1
seg000:4F11                 jmp     short sortept_4
seg000:4F13 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4F13
seg000:4F13 sortept_6:                              ; CODE XREF: sort_ext_table+2Bj
seg000:4F13                 pop     si
seg000:4F14                 pop     di
seg000:4F15                 mov     sp, bp
seg000:4F17                 pop     bp
seg000:4F18                 retn
seg000:4F18 sort_ext_table  endp
seg000:4F18
seg000:4F18 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4F19                 align 2
seg000:4F1A
seg000:4F1A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4F1A
seg000:4F1A ; Attributes: bp-based frame
seg000:4F1A
seg000:4F1A find_free_partition proc near           ; CODE XREF: create_partition:cp_2p
seg000:4F1A                                         ; make_partition+8p
seg000:4F1A
seg000:4F1A ffp_i           = byte ptr -2
seg000:4F1A
seg000:4F1A                 push    bp
seg000:4F1B                 mov     bp, sp
seg000:4F1D                 sub     sp, 2
seg000:4F20                 mov     [bp+ffp_i], 0
seg000:4F24                 jmp     short ffp_2
seg000:4F26 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4F26
seg000:4F26 ffp_1:                                  ; CODE XREF: find_free_partition+34j
seg000:4F26                 inc     [bp+ffp_i]
seg000:4F29
seg000:4F29 ffp_2:                                  ; CODE XREF: find_free_partition+Aj
seg000:4F29                 cmp     [bp+ffp_i], 4
seg000:4F2D                 jge     short ffp_3
seg000:4F2F                 mov     al, ds:cur_disk
seg000:4F32                 cbw
seg000:4F33                 shl     ax, 1
seg000:4F35                 shl     ax, 1
seg000:4F37                 mov     cx, ax
seg000:4F39                 mov     al, [bp+ffp_i]
seg000:4F3C                 cbw
seg000:4F3D                 add     ax, cx
seg000:4F3F                 mov     cx, 46
seg000:4F42                 imul    cx
seg000:4F44                 mov     bx, ax
seg000:4F46                 mov     ax, ds:part_table_num_sec_hw[bx]
seg000:4F4A                 or      ax, ds:part_table_num_sec_lw[bx]
seg000:4F4E                 jnz     short ffp_1
seg000:4F50                 mov     al, [bp+ffp_i]
seg000:4F53                 jmp     short ffp_4
seg000:4F55 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4F55
seg000:4F55 ffp_3:                                  ; CODE XREF: find_free_partition+13j
seg000:4F55                 mov     al, 0FFh
seg000:4F57
seg000:4F57 ffp_4:                                  ; CODE XREF: find_free_partition+39j
seg000:4F57                 mov     sp, bp
seg000:4F59                 pop     bp
seg000:4F5A                 retn
seg000:4F5A find_free_partition endp
seg000:4F5A
seg000:4F5B
seg000:4F5B ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4F5B
seg000:4F5B ; Attributes: bp-based frame
seg000:4F5B
seg000:4F5B find_partition_type proc near           ; CODE XREF: main+1FBp
seg000:4F5B                                         ; main+206p ...
seg000:4F5B
seg000:4F5B var_2           = byte ptr -2
seg000:4F5B arg_0           = byte ptr  4
seg000:4F5B
seg000:4F5B                 push    bp
seg000:4F5C                 mov     bp, sp
seg000:4F5E                 sub     sp, 2
seg000:4F61                 mov     [bp+var_2], 0
seg000:4F65                 jmp     short fpt_2
seg000:4F67 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4F67
seg000:4F67 fpt_1:                                  ; CODE XREF: find_partition_type+33j
seg000:4F67                 inc     [bp+var_2]
seg000:4F6A
seg000:4F6A fpt_2:                                  ; CODE XREF: find_partition_type+Aj
seg000:4F6A                 cmp     [bp+var_2], 4
seg000:4F6E                 jge     short fpt_3
seg000:4F70                 mov     al, ds:cur_disk
seg000:4F73                 cbw
seg000:4F74                 shl     ax, 1
seg000:4F76                 shl     ax, 1
seg000:4F78                 mov     cx, ax
seg000:4F7A                 mov     al, [bp+var_2]
seg000:4F7D                 cbw
seg000:4F7E                 add     ax, cx
seg000:4F80                 mov     cx, 46
seg000:4F83                 imul    cx
seg000:4F85                 mov     bx, ax
seg000:4F87                 mov     al, [bp+arg_0]
seg000:4F8A                 cmp     ds:part_table_sys_id[bx], al
seg000:4F8E                 jnz     short fpt_1
seg000:4F90                 mov     al, 1
seg000:4F92                 jmp     short fpt_4
seg000:4F94 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4F94
seg000:4F94 fpt_3:                                  ; CODE XREF: find_partition_type+13j
seg000:4F94                 sub     al, al
seg000:4F96
seg000:4F96 fpt_4:                                  ; CODE XREF: find_partition_type+37j
seg000:4F96                 mov     sp, bp
seg000:4F98                 pop     bp
seg000:4F99                 retn
seg000:4F99 find_partition_type endp
seg000:4F99
seg000:4F9A
seg000:4F9A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4F9A
seg000:4F9A ; Attributes: bp-based frame
seg000:4F9A
seg000:4F9A find_non_dos_partition proc near        ; CODE XREF: delete_partition:case_delete_4p
seg000:4F9A
seg000:4F9A var_2           = byte ptr -2
seg000:4F9A
seg000:4F9A                 push    bp
seg000:4F9B                 mov     bp, sp
seg000:4F9D                 sub     sp, 2
seg000:4FA0                 mov     [bp+var_2], 0
seg000:4FA4                 jmp     short fndp_2
seg000:4FA6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4FA6
seg000:4FA6 fndp_1:                                 ; CODE XREF: find_non_dos_partition+31j
seg000:4FA6                                         ; find_non_dos_partition+38j ...
seg000:4FA6                 inc     [bp+var_2]
seg000:4FA9
seg000:4FA9 fndp_2:                                 ; CODE XREF: find_non_dos_partition+Aj
seg000:4FA9                 cmp     [bp+var_2], 4
seg000:4FAD                 jge     short fndp_3
seg000:4FAF                 mov     al, ds:cur_disk
seg000:4FB2                 cbw
seg000:4FB3                 shl     ax, 1
seg000:4FB5                 shl     ax, 1
seg000:4FB7                 mov     cx, ax
seg000:4FB9                 mov     al, [bp+var_2]
seg000:4FBC                 cbw
seg000:4FBD                 add     ax, cx
seg000:4FBF                 mov     cx, 46
seg000:4FC2                 imul    cx
seg000:4FC4                 mov     bx, ax
seg000:4FC6                 cmp     ds:part_table_sys_id[bx], 0
seg000:4FCB                 jz      short fndp_1
seg000:4FCD                 cmp     ds:part_table_sys_id[bx], 1
seg000:4FD2                 jz      short fndp_1
seg000:4FD4                 cmp     ds:part_table_sys_id[bx], 4
seg000:4FD9                 jz      short fndp_1
seg000:4FDB                 cmp     ds:part_table_sys_id[bx], 6
seg000:4FE0                 jz      short fndp_1
seg000:4FE2                 cmp     ds:part_table_sys_id[bx], 5
seg000:4FE7                 jz      short fndp_1
seg000:4FE9                 mov     al, 1
seg000:4FEB                 jmp     short fndp_4
seg000:4FED ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4FED
seg000:4FED fndp_3:                                 ; CODE XREF: find_non_dos_partition+13j
seg000:4FED                 sub     al, al
seg000:4FEF
seg000:4FEF fndp_4:                                 ; CODE XREF: find_non_dos_partition+51j
seg000:4FEF                 mov     sp, bp
seg000:4FF1                 pop     bp
seg000:4FF2                 retn
seg000:4FF2 find_non_dos_partition endp
seg000:4FF2
seg000:4FF3
seg000:4FF3 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:4FF3
seg000:4FF3 ; Attributes: bp-based frame
seg000:4FF3
seg000:4FF3 get_partition_size proc near            ; CODE XREF: volume_delete+9Ap
seg000:4FF3                                         ; volume_create+107p ...
seg000:4FF3
seg000:4FF3 gpz_i           = byte ptr -2
seg000:4FF3 gpz_type        = byte ptr  4
seg000:4FF3
seg000:4FF3                 push    bp
seg000:4FF4                 mov     bp, sp
seg000:4FF6                 sub     sp, 2
seg000:4FF9                 mov     [bp+gpz_i], 0
seg000:4FFD                 jmp     short gpz_2
seg000:4FFF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:4FFF
seg000:4FFF gpz_1:                                  ; CODE XREF: get_partition_size+33j
seg000:4FFF                 inc     [bp+gpz_i]
seg000:5002
seg000:5002 gpz_2:                                  ; CODE XREF: get_partition_size+Aj
seg000:5002                 cmp     [bp+gpz_i], 4
seg000:5006                 jge     short gpz_3
seg000:5008                 mov     al, ds:cur_disk
seg000:500B                 cbw
seg000:500C                 shl     ax, 1
seg000:500E                 shl     ax, 1
seg000:5010                 mov     cx, ax
seg000:5012                 mov     al, [bp+gpz_i]
seg000:5015                 cbw
seg000:5016                 add     ax, cx
seg000:5018                 mov     cx, 46
seg000:501B                 imul    cx
seg000:501D                 mov     bx, ax
seg000:501F                 mov     al, [bp+gpz_type]
seg000:5022                 cmp     ds:part_table_sys_id[bx], al
seg000:5026                 jnz     short gpz_1
seg000:5028                 mov     ax, ds:part_table_mbytes_used[bx]
seg000:502C                 jmp     short gpz_4
seg000:502E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:502E
seg000:502E gpz_3:                                  ; CODE XREF: get_partition_size+13j
seg000:502E                 call    internal_program_error
seg000:5031
seg000:5031 gpz_4:                                  ; CODE XREF: get_partition_size+39j
seg000:5031                 mov     sp, bp
seg000:5033                 pop     bp
seg000:5034                 retn
seg000:5034 get_partition_size endp
seg000:5034
seg000:5035
seg000:5035 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5035
seg000:5035 ; Attributes: bp-based frame
seg000:5035
seg000:5035 find_active_partition proc near         ; CODE XREF: do_main_menu+121p
seg000:5035
seg000:5035 fap_i           = byte ptr -2
seg000:5035
seg000:5035                 push    bp
seg000:5036                 mov     bp, sp
seg000:5038                 sub     sp, 2
seg000:503B                 mov     [bp+fap_i], 0
seg000:503F                 jmp     short fap_2
seg000:5041 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5041
seg000:5041 fap_1:                                  ; CODE XREF: find_active_partition+30j
seg000:5041                 inc     [bp+fap_i]
seg000:5044
seg000:5044 fap_2:                                  ; CODE XREF: find_active_partition+Aj
seg000:5044                 cmp     [bp+fap_i], 4
seg000:5048                 jnb     short fap_3
seg000:504A                 mov     al, ds:cur_disk
seg000:504D                 cbw
seg000:504E                 shl     ax, 1
seg000:5050                 shl     ax, 1
seg000:5052                 mov     cl, [bp+fap_i]
seg000:5055                 sub     ch, ch
seg000:5057                 add     ax, cx
seg000:5059                 mov     cx, 46
seg000:505C                 imul    cx
seg000:505E                 mov     bx, ax
seg000:5060                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:5065                 jnz     short fap_1
seg000:5067                 mov     al, 1
seg000:5069                 jmp     short fap_4
seg000:506B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:506B
seg000:506B fap_3:                                  ; CODE XREF: find_active_partition+13j
seg000:506B                 sub     al, al
seg000:506D
seg000:506D fap_4:                                  ; CODE XREF: find_active_partition+34j
seg000:506D                 mov     sp, bp
seg000:506F                 pop     bp
seg000:5070                 retn
seg000:5070 find_active_partition endp
seg000:5070
seg000:5071
seg000:5071 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5071
seg000:5071 ; Attributes: bp-based frame
seg000:5071
seg000:5071 find_partition_location proc near       ; CODE XREF: volume_create+B0p
seg000:5071                                         ; init_partition_tables+3D2p ...
seg000:5071
seg000:5071 var_2           = byte ptr -2
seg000:5071 arg_0           = byte ptr  4
seg000:5071
seg000:5071                 push    bp
seg000:5072                 mov     bp, sp
seg000:5074                 sub     sp, 2
seg000:5077                 mov     [bp+var_2], 0
seg000:507B                 jmp     short fdl_2
seg000:507D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:507D
seg000:507D fdl_1:                                  ; CODE XREF: find_partition_location+33j
seg000:507D                 inc     [bp+var_2]
seg000:5080
seg000:5080 fdl_2:                                  ; CODE XREF: find_partition_location+Aj
seg000:5080                 cmp     [bp+var_2], 4
seg000:5084                 jge     short fdl_3
seg000:5086                 mov     al, ds:cur_disk
seg000:5089                 cbw
seg000:508A                 shl     ax, 1
seg000:508C                 shl     ax, 1
seg000:508E                 mov     cx, ax
seg000:5090                 mov     al, [bp+var_2]
seg000:5093                 cbw
seg000:5094                 add     ax, cx
seg000:5096                 mov     cx, 46
seg000:5099                 imul    cx
seg000:509B                 mov     bx, ax
seg000:509D                 mov     al, [bp+arg_0]
seg000:50A0                 cmp     ds:part_table_sys_id[bx], al
seg000:50A4                 jnz     short fdl_1
seg000:50A6                 mov     al, [bp+var_2]
seg000:50A9                 jmp     short fdl_4
seg000:50AB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:50AB
seg000:50AB fdl_3:                                  ; CODE XREF: find_partition_location+13j
seg000:50AB                 mov     al, 0FFh
seg000:50AD
seg000:50AD fdl_4:                                  ; CODE XREF: find_partition_location+38j
seg000:50AD                 mov     sp, bp
seg000:50AF                 pop     bp
seg000:50B0                 retn
seg000:50B0 find_partition_location endp
seg000:50B0
seg000:50B1
seg000:50B1 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:50B1
seg000:50B1 ; Attributes: bp-based frame
seg000:50B1
seg000:50B1 find_free_ext   proc near               ; CODE XREF: make_volume+8p
seg000:50B1
seg000:50B1 ffe_i           = byte ptr -2
seg000:50B1
seg000:50B1                 push    bp
seg000:50B2                 mov     bp, sp
seg000:50B4                 sub     sp, 2
seg000:50B7                 mov     [bp+ffe_i], 0
seg000:50BB                 jmp     short ffe_2
seg000:50BD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:50BD
seg000:50BD ffe_1:                                  ; CODE XREF: find_free_ext+2Fj
seg000:50BD                 inc     [bp+ffe_i]
seg000:50C0
seg000:50C0 ffe_2:                                  ; CODE XREF: find_free_ext+Aj
seg000:50C0                 cmp     [bp+ffe_i], 23
seg000:50C4                 jge     short ffe_3
seg000:50C6                 mov     al, [bp+ffe_i]
seg000:50C9                 cbw
seg000:50CA                 mov     cx, ax
seg000:50CC                 mov     al, 24
seg000:50CE                 imul    ds:cur_disk
seg000:50D2                 add     ax, cx
seg000:50D4                 mov     cx, 46
seg000:50D7                 imul    cx
seg000:50D9                 mov     bx, ax
seg000:50DB                 cmp     ds:ext_table_sys_id[bx], 0
seg000:50E0                 jnz     short ffe_1
seg000:50E2                 mov     al, [bp+ffe_i]
seg000:50E5                 jmp     short ffe_4
seg000:50E7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:50E7
seg000:50E7 ffe_3:                                  ; CODE XREF: find_free_ext+13j
seg000:50E7                 mov     al, 0FFh
seg000:50E9
seg000:50E9 ffe_4:                                  ; CODE XREF: find_free_ext+34j
seg000:50E9                 mov     sp, bp
seg000:50EB                 pop     bp
seg000:50EC                 retn
seg000:50EC find_free_ext   endp
seg000:50EC
seg000:50ED
seg000:50ED ; --------------- S U B R O U T I N E ---------------------------------------
seg000:50ED
seg000:50ED ; Attributes: bp-based frame
seg000:50ED
seg000:50ED find_logical_drive proc near            ; CODE XREF: delete_partition+17Ep
seg000:50ED                                         ; ext_delete+71p ...
seg000:50ED
seg000:50ED findlogdrv_i    = byte ptr -2
seg000:50ED
seg000:50ED                 push    bp
seg000:50EE                 mov     bp, sp
seg000:50F0                 sub     sp, 2
seg000:50F3                 mov     [bp+findlogdrv_i], 0
seg000:50F7                 jmp     short findlogdrv_2
seg000:50F9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:50F9
seg000:50F9 findlogdrv_1:                           ; CODE XREF: find_logical_drive+2Ej
seg000:50F9                 inc     [bp+findlogdrv_i]
seg000:50FC
seg000:50FC findlogdrv_2:                           ; CODE XREF: find_logical_drive+Aj
seg000:50FC                 cmp     [bp+findlogdrv_i], 23
seg000:5100                 jnb     short findlogdrv_3
seg000:5102                 mov     al, 24
seg000:5104                 imul    ds:cur_disk
seg000:5108                 mov     cl, [bp+findlogdrv_i]
seg000:510B                 sub     ch, ch
seg000:510D                 add     ax, cx
seg000:510F                 mov     cx, 46
seg000:5112                 imul    cx
seg000:5114                 mov     bx, ax
seg000:5116                 cmp     ds:ext_table_sys_id[bx], 0
seg000:511B                 jz      short findlogdrv_1
seg000:511D                 mov     al, 1
seg000:511F                 jmp     short findlogdrv_4
seg000:5121 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5121
seg000:5121 findlogdrv_3:                           ; CODE XREF: find_logical_drive+13j
seg000:5121                 sub     al, al
seg000:5123
seg000:5123 findlogdrv_4:                           ; CODE XREF: find_logical_drive+32j
seg000:5123                 mov     sp, bp
seg000:5125                 pop     bp
seg000:5126                 retn
seg000:5126 find_logical_drive endp
seg000:5126
seg000:5127
seg000:5127 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5127
seg000:5127 ; Attributes: bp-based frame
seg000:5127
seg000:5127 get_num_logical_dos_drives proc near    ; CODE XREF: volume_delete+41p
seg000:5127                                         ; dos_create_partition+F8p ...
seg000:5127
seg000:5127 gnldd_i         = byte ptr -4
seg000:5127 gnldd_number    = byte ptr -2
seg000:5127
seg000:5127                 push    bp
seg000:5128                 mov     bp, sp
seg000:512A                 sub     sp, 4
seg000:512D                 sub     al, al
seg000:512F                 mov     [bp+gnldd_number], al
seg000:5132                 mov     [bp+gnldd_i], al
seg000:5135                 jmp     short gnldd_4
seg000:5137 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5137
seg000:5137 gnldd_1:                                ; CODE XREF: get_num_logical_dos_drives+44j
seg000:5137                 mov     al, [bp+gnldd_i]
seg000:513A                 cbw
seg000:513B                 mov     cx, ax
seg000:513D                 mov     al, 24
seg000:513F                 imul    ds:cur_disk
seg000:5143                 add     ax, cx
seg000:5145                 mov     cx, 46
seg000:5148                 imul    cx
seg000:514A                 mov     bx, ax
seg000:514C                 cmp     ds:ext_table_sys_id[bx], 1
seg000:5151                 jz      short gnldd_2
seg000:5153                 cmp     ds:ext_table_sys_id[bx], 4
seg000:5158                 jz      short gnldd_2
seg000:515A                 cmp     ds:ext_table_sys_id[bx], 6
seg000:515F                 jnz     short gnldd_3
seg000:5161
seg000:5161 gnldd_2:                                ; CODE XREF: get_num_logical_dos_drives+2Aj
seg000:5161                                         ; get_num_logical_dos_drives+31j
seg000:5161                 inc     [bp+gnldd_number]
seg000:5164
seg000:5164 gnldd_3:                                ; CODE XREF: get_num_logical_dos_drives+38j
seg000:5164                 inc     [bp+gnldd_i]
seg000:5167
seg000:5167 gnldd_4:                                ; CODE XREF: get_num_logical_dos_drives+Ej
seg000:5167                 cmp     [bp+gnldd_i], 23
seg000:516B                 jl      short gnldd_1
seg000:516D                 mov     al, [bp+gnldd_number]
seg000:5170                 mov     sp, bp
seg000:5172                 pop     bp
seg000:5173                 retn
seg000:5173 get_num_logical_dos_drives endp
seg000:5173
seg000:5174
seg000:5174 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5174
seg000:5174 ; Attributes: bp-based frame
seg000:5174
seg000:5174 find_ext_drive  proc near               ; CODE XREF: volume_delete+292p
seg000:5174
seg000:5174 fed_number_found= byte ptr -4
seg000:5174 fed_i           = byte ptr -2
seg000:5174 fed_offset      = byte ptr  4
seg000:5174
seg000:5174                 push    bp
seg000:5175                 mov     bp, sp
seg000:5177                 sub     sp, 4
seg000:517A                 sub     al, al
seg000:517C                 mov     [bp+fed_i], al
seg000:517F                 mov     [bp+fed_number_found], al
seg000:5182                 jmp     short fed_3
seg000:5184 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5184
seg000:5184 fed_1:                                  ; CODE XREF: find_ext_drive+4Cj
seg000:5184                 inc     [bp+fed_i]
seg000:5187
seg000:5187 fed_2:                                  ; CODE XREF: find_ext_drive+44j
seg000:5187                 inc     [bp+fed_number_found]
seg000:518A
seg000:518A fed_3:                                  ; CODE XREF: find_ext_drive+Ej
seg000:518A                 cmp     [bp+fed_number_found], 23
seg000:518E                 jge     short fed_5
seg000:5190                 mov     al, [bp+fed_number_found]
seg000:5193                 cbw
seg000:5194                 mov     cx, ax
seg000:5196                 mov     al, 24
seg000:5198                 imul    ds:cur_disk
seg000:519C                 add     ax, cx
seg000:519E                 mov     cx, 46
seg000:51A1                 imul    cx
seg000:51A3                 mov     bx, ax
seg000:51A5                 cmp     ds:ext_table_sys_id[bx], 1
seg000:51AA                 jz      short fed_4
seg000:51AC                 cmp     ds:ext_table_sys_id[bx], 4
seg000:51B1                 jz      short fed_4
seg000:51B3                 cmp     ds:ext_table_sys_id[bx], 6
seg000:51B8                 jnz     short fed_2
seg000:51BA
seg000:51BA fed_4:                                  ; CODE XREF: find_ext_drive+36j
seg000:51BA                                         ; find_ext_drive+3Dj
seg000:51BA                 mov     al, [bp+fed_offset]
seg000:51BD                 cmp     [bp+fed_i], al
seg000:51C0                 jnz     short fed_1
seg000:51C2                 mov     al, [bp+fed_number_found]
seg000:51C5                 jmp     short fed_6
seg000:51C7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:51C7
seg000:51C7 fed_5:                                  ; CODE XREF: find_ext_drive+1Aj
seg000:51C7                 call    internal_program_error
seg000:51CA                 mov     al, 0FFh
seg000:51CC
seg000:51CC fed_6:                                  ; CODE XREF: find_ext_drive+51j
seg000:51CC                 mov     sp, bp
seg000:51CE                 pop     bp
seg000:51CF                 retn
seg000:51CF find_ext_drive  endp
seg000:51CF
seg000:51D0
seg000:51D0 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:51D0
seg000:51D0 ; Attributes: bp-based frame
seg000:51D0
seg000:51D0 find_previous_drive proc near
seg000:51D0
seg000:51D0 var_6           = byte ptr -6
seg000:51D0 var_4           = byte ptr -4
seg000:51D0 var_2           = byte ptr -2
seg000:51D0 arg_0           = byte ptr  4
seg000:51D0
seg000:51D0                 push    bp
seg000:51D1                 mov     bp, sp
seg000:51D3                 sub     sp, 6
seg000:51D6                 sub     al, al
seg000:51D8                 mov     [bp+var_2], al
seg000:51DB                 mov     [bp+var_6], al
seg000:51DE                 mov     [bp+var_4], al
seg000:51E1                 jmp     short loc_51EF
seg000:51E3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:51E3
seg000:51E3 loc_51E3:                               ; CODE XREF: find_previous_drive+47j
seg000:51E3                 mov     al, [bp+var_4]
seg000:51E6                 mov     [bp+var_6], al
seg000:51E9                 inc     [bp+var_2]
seg000:51EC
seg000:51EC loc_51EC:                               ; CODE XREF: find_previous_drive+3Fj
seg000:51EC                 inc     [bp+var_4]
seg000:51EF
seg000:51EF loc_51EF:                               ; CODE XREF: find_previous_drive+11j
seg000:51EF                 cmp     [bp+var_4], 23
seg000:51F3                 jge     short loc_521E
seg000:51F5                 mov     al, [bp+var_4]
seg000:51F8                 cbw
seg000:51F9                 mov     cx, ax
seg000:51FB                 mov     al, 24
seg000:51FD                 imul    ds:cur_disk
seg000:5201                 add     ax, cx
seg000:5203                 mov     cx, 46
seg000:5206                 imul    cx
seg000:5208                 mov     bx, ax
seg000:520A                 cmp     ds:ext_table_sys_id[bx], 0
seg000:520F                 jz      short loc_51EC
seg000:5211                 mov     al, [bp+arg_0]
seg000:5214                 cmp     [bp+var_2], al
seg000:5217                 jnz     short loc_51E3
seg000:5219                 mov     al, [bp+var_6]
seg000:521C                 jmp     short loc_5223
seg000:521E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:521E
seg000:521E loc_521E:                               ; CODE XREF: find_previous_drive+23j
seg000:521E                 call    internal_program_error
seg000:5221                 mov     al, 0FFh
seg000:5223
seg000:5223 loc_5223:                               ; CODE XREF: find_previous_drive+4Cj
seg000:5223                 mov     sp, bp
seg000:5225                 pop     bp
seg000:5226                 retn
seg000:5226 find_previous_drive endp
seg000:5226
seg000:5226 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5227                 align 2
seg000:5228
seg000:5228 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5228
seg000:5228 ; Attributes: bp-based frame
seg000:5228
seg000:5228 clear_screen    proc near               ; CODE XREF: main+81p
seg000:5228                                         ; do_main_menu:loc_3F1p ...
seg000:5228
seg000:5228 var_4           = word ptr -4
seg000:5228 var_2           = word ptr -2
seg000:5228 arg_0           = word ptr  4
seg000:5228 arg_2           = word ptr  6
seg000:5228 arg_4           = word ptr  8
seg000:5228 arg_6           = word ptr  0Ah
seg000:5228
seg000:5228                 push    bp
seg000:5229                 mov     bp, sp
seg000:522B                 sub     sp, 4
seg000:522E                 lea     ax, [bp+var_2]
seg000:5231                 mov     [bp+var_4], ax
seg000:5234                 cmp     ds:status_flag, 1
seg000:5239                 jnz     short clscr_1
seg000:523B                 mov     cl, ds:video_attribute
seg000:523F                 mov     byte ptr [bp+var_2], cl
seg000:5242                 jmp     short clscr_3
seg000:5244 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5244
seg000:5244 clscr_1:                                ; CODE XREF: clear_screen+11j
seg000:5244                 cmp     ds:mono_flag, 1
seg000:5249                 jnz     short clscr_2
seg000:524B                 mov     byte ptr [bp+var_2], 7
seg000:524F                 jmp     short clscr_3
seg000:5251 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5251
seg000:5251 clscr_2:                                ; CODE XREF: clear_screen+21j
seg000:5251                 mov     byte ptr [bp+var_2], 17h
seg000:5255
seg000:5255 clscr_3:                                ; CODE XREF: clear_screen+1Aj
seg000:5255                                         ; clear_screen+27j
seg000:5255                 push    [bp+arg_0]
seg000:5258                 push    [bp+arg_2]
seg000:525B                 push    [bp+arg_4]
seg000:525E                 push    [bp+arg_6]
seg000:5261                 sub     ax, ax
seg000:5263                 push    ax
seg000:5264                 push    ds
seg000:5265                 push    [bp+var_4]
seg000:5268                 push    ax
seg000:5269                 call    VIOSCROLLUP
seg000:526E                 mov     sp, bp
seg000:5270                 pop     bp
seg000:5271                 retn
seg000:5271 clear_screen    endp
seg000:5271
seg000:5272
seg000:5272 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5272
seg000:5272
seg000:5272 init_video_information proc near        ; CODE XREF: main:_main_02p
seg000:5272                 mov     ds:mono_flag, 0
seg000:5277                 mov     byte ptr ds:regs_x_ax+1, 0Fh
seg000:527C                 mov     ax, offset regs_x_ax
seg000:527F                 push    ax
seg000:5280                 push    ax
seg000:5281                 mov     cx, 10h
seg000:5284                 push    cx
seg000:5285                 call    int86
seg000:5288                 add     sp, 6
seg000:528B                 mov     al, byte ptr ds:regs_x_ax
seg000:528E                 mov     ds:video_mode, al
seg000:5291                 mov     al, byte ptr ds:regs_x_bx+1
seg000:5294                 mov     ds:display_page, al
seg000:5297                 call    get_video_attribute
seg000:529A                 cmp     ds:status_flag, 0
seg000:529F                 jnz     short ivi_3
seg000:52A1                 mov     byte ptr ds:regs_x_ax, 3
seg000:52A6                 cmp     ds:video_mode, 7
seg000:52AB                 jz      short ivi_1
seg000:52AD                 cmp     ds:video_mode, 0Fh
seg000:52B2                 jnz     short ivi_2
seg000:52B4
seg000:52B4 ivi_1:                                  ; CODE XREF: init_video_information+39j
seg000:52B4                 mov     byte ptr ds:regs_x_ax, 2
seg000:52B9                 mov     ds:mono_flag, 1
seg000:52BE
seg000:52BE ivi_2:                                  ; CODE XREF: init_video_information+40j
seg000:52BE                 mov     byte ptr ds:regs_x_ax+1, 0
seg000:52C3                 mov     ax, offset regs_x_ax
seg000:52C6                 push    ax
seg000:52C7                 push    ax
seg000:52C8                 mov     cx, 10h
seg000:52CB                 push    cx
seg000:52CC                 call    int86
seg000:52CF                 add     sp, 6
seg000:52D2                 mov     byte ptr ds:regs_x_ax+1, 5
seg000:52D7                 mov     byte ptr ds:regs_x_ax, 0
seg000:52DC                 mov     ax, offset regs_x_ax
seg000:52DF                 push    ax
seg000:52E0                 push    ax
seg000:52E1                 mov     ax, 10h
seg000:52E4                 push    ax
seg000:52E5                 call    int86
seg000:52E8                 add     sp, 6
seg000:52EB
seg000:52EB ivi_3:                                  ; CODE XREF: init_video_information+2Dj
seg000:52EB                 retn
seg000:52EB init_video_information endp
seg000:52EB
seg000:52EC
seg000:52EC ; --------------- S U B R O U T I N E ---------------------------------------
seg000:52EC
seg000:52EC ; Attributes: bp-based frame
seg000:52EC
seg000:52EC reset_video_information proc near       ; CODE XREF: main:_main_10p
seg000:52EC                                         ; reboot_system+D0p
seg000:52EC                 push    bp
seg000:52ED                 mov     bp, sp
seg000:52EF                 sub     sp, 2
seg000:52F2                 cmp     ds:status_flag, 0
seg000:52F7                 jnz     short rvi_ret
seg000:52F9                 sub     ax, ax
seg000:52FB                 push    ax
seg000:52FC                 push    ax
seg000:52FD                 mov     cx, 24
seg000:5300                 push    cx
seg000:5301                 mov     cx, 79
seg000:5304                 push    cx
seg000:5305                 push    ax
seg000:5306                 mov     cx, offset video_attribute
seg000:5309                 push    ds
seg000:530A                 push    cx
seg000:530B                 push    ax
seg000:530C                 call    VIOSCROLLUP
seg000:5311                 mov     byte ptr ds:regs_x_ax+1, 0
seg000:5316                 mov     al, ds:video_mode
seg000:5319                 mov     byte ptr ds:regs_x_ax, al
seg000:531C                 mov     ax, offset regs_x_ax
seg000:531F                 push    ax
seg000:5320                 push    ax
seg000:5321                 mov     cx, 10h
seg000:5324                 push    cx
seg000:5325                 call    int86
seg000:5328                 add     sp, 6
seg000:532B                 mov     byte ptr ds:regs_x_ax+1, 5
seg000:5330                 mov     al, ds:display_page
seg000:5333                 mov     byte ptr ds:regs_x_ax, al
seg000:5336                 mov     ax, offset regs_x_ax
seg000:5339                 push    ax
seg000:533A                 push    ax
seg000:533B                 mov     ax, 10h
seg000:533E                 push    ax
seg000:533F                 call    int86
seg000:5342
seg000:5342 rvi_ret:                                ; CODE XREF: reset_video_information+Bj
seg000:5342                 mov     sp, bp
seg000:5344                 pop     bp
seg000:5345                 retn
seg000:5345 reset_video_information endp
seg000:5345
seg000:5346
seg000:5346 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5346
seg000:5346
seg000:5346 get_video_attribute proc near           ; CODE XREF: init_video_information+25p
seg000:5346                 mov     byte ptr ds:regs_x_ax+1, 8
seg000:534B                 mov     al, ds:display_page
seg000:534E                 mov     byte ptr ds:regs_x_bx+1, al
seg000:5351                 mov     ax, offset regs_x_ax
seg000:5354                 push    ax
seg000:5355                 push    ax
seg000:5356                 mov     ax, 10h
seg000:5359                 push    ax
seg000:535A                 call    int86
seg000:535D                 add     sp, 6
seg000:5360                 mov     al, byte ptr ds:regs_x_ax+1
seg000:5363                 mov     ds:video_attribute, al
seg000:5366                 retn
seg000:5366 get_video_attribute endp
seg000:5366
seg000:5366 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5367                 align 2
seg000:5368
seg000:5368 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5368
seg000:5368 ; Attributes: bp-based frame
seg000:5368
seg000:5368 make_partition  proc near               ; CODE XREF: main+254p
seg000:5368                                         ; main+2D1p ...
seg000:5368
seg000:5368 mp_temp4_lw     = word ptr -1Ah
seg000:5368 mp_temp4_hw     = word ptr -18h
seg000:5368 mp_temp3_lw     = word ptr -16h
seg000:5368 mp_temp3_hw     = word ptr -14h
seg000:5368 mp_temp2_lw     = word ptr -12h
seg000:5368 mp_temp2_hw     = word ptr -10h
seg000:5368 mp_temp1_lw     = word ptr -0Eh
seg000:5368 mp_temp1_hw     = word ptr -0Ch
seg000:5368 mp_i            = word ptr -0Ah
seg000:5368 mp_table_ptr    = byte ptr -8
seg000:5368 mp_temp         = byte ptr -6
seg000:5368 mp_total_sectors_lw= word ptr -4
seg000:5368 mp_total_sectors_hw= word ptr -2
seg000:5368 mp_size         = word ptr  4
seg000:5368 mp_free_ptr     = byte ptr  6
seg000:5368 mp_bootable     = byte ptr  8
seg000:5368 mp_type         = byte ptr  0Ah
seg000:5368
seg000:5368                 push    bp
seg000:5369                 mov     bp, sp
seg000:536B                 sub     sp, 26
seg000:536E                 push    di
seg000:536F                 push    si
seg000:5370                 call    find_free_partition
seg000:5373                 mov     [bp+mp_table_ptr], al
seg000:5376                 inc     al
seg000:5378                 jnz     short mp_1
seg000:537A                 jmp     mp_13
seg000:537D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:537D
seg000:537D mp_1:                                   ; CODE XREF: make_partition+10j
seg000:537D                 cmp     [bp+mp_bootable], 80h
seg000:5381                 jnz     short mp_4
seg000:5383                 mov     [bp+mp_i], 0
seg000:5388
seg000:5388 mp_2:                                   ; CODE XREF: make_partition+4Aj
seg000:5388                 mov     al, ds:cur_disk
seg000:538B                 cbw
seg000:538C                 shl     ax, 1
seg000:538E                 shl     ax, 1
seg000:5390                 add     ax, [bp+mp_i]
seg000:5393                 mov     cx, 46
seg000:5396                 mul     cx
seg000:5398                 mov     bx, ax
seg000:539A                 cmp     ds:part_table_boot_ind[bx], 80h
seg000:539F                 jnz     short mp_3
seg000:53A1                 mov     ds:part_table_changed[bx], 1
seg000:53A6                 mov     ds:part_table_boot_ind[bx], 0
seg000:53AB
seg000:53AB mp_3:                                   ; CODE XREF: make_partition+37j
seg000:53AB                 inc     [bp+mp_i]
seg000:53AE                 cmp     [bp+mp_i], 4
seg000:53B2                 jb      short mp_2
seg000:53B4                 mov     al, ds:cur_disk
seg000:53B7                 cbw
seg000:53B8                 shl     ax, 1
seg000:53BA                 shl     ax, 1
seg000:53BC                 mov     cx, ax
seg000:53BE                 mov     al, [bp+mp_table_ptr]
seg000:53C1                 cbw
seg000:53C2                 add     ax, cx
seg000:53C4                 mov     cx, 46
seg000:53C7                 imul    cx
seg000:53C9                 mov     bx, ax
seg000:53CB                 mov     ds:part_table_boot_ind[bx], 80h
seg000:53D0                 jmp     short mp_5
seg000:53D2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:53D2
seg000:53D2 mp_4:                                   ; CODE XREF: make_partition+19j
seg000:53D2                 mov     al, ds:cur_disk
seg000:53D5                 cbw
seg000:53D6                 shl     ax, 1
seg000:53D8                 shl     ax, 1
seg000:53DA                 mov     cx, ax
seg000:53DC                 mov     al, [bp+mp_table_ptr]
seg000:53DF                 cbw
seg000:53E0                 add     ax, cx
seg000:53E2                 mov     cx, 46
seg000:53E5                 imul    cx
seg000:53E7                 mov     bx, ax
seg000:53E9                 mov     ds:part_table_boot_ind[bx], 0
seg000:53EE
seg000:53EE mp_5:                                   ; CODE XREF: make_partition+68j
seg000:53EE                 mov     al, 22
seg000:53F0                 imul    [bp+mp_free_ptr]
seg000:53F3                 mov     bx, ax
seg000:53F5                 mov     ax, ds:free_space_start[bx]
seg000:53F9                 mov     cx, ax
seg000:53FB                 mov     al, ds:cur_disk
seg000:53FE                 cbw
seg000:53FF                 mov     dx, ax
seg000:5401                 shl     ax, 1
seg000:5403                 shl     ax, 1
seg000:5405                 mov     bx, ax
seg000:5407                 mov     al, [bp+mp_table_ptr]
seg000:540A                 cbw
seg000:540B                 add     ax, bx
seg000:540D                 mov     bx, 46
seg000:5410                 mov     si, dx
seg000:5412                 imul    bx
seg000:5414                 mov     bx, ax
seg000:5416                 mov     ds:part_table_start_cyl[bx], cx
seg000:541A                 add     cx, [bp+mp_size]
seg000:541D                 dec     cx
seg000:541E                 mov     ds:part_table_end_cyl[bx], cx
seg000:5422                 mov     ds:part_table_start_sector[bx], 1
seg000:5427                 mov     al, ds:max_sector[si]
seg000:542B                 mov     ds:part_table_end_sector[bx], al
seg000:542F                 shl     si, 1
seg000:5431                 mov     al, byte ptr ds:max_head[si]
seg000:5435                 dec     al
seg000:5437                 mov     ds:part_table_end_head[bx], al
seg000:543B                 mov     [bp+mp_temp], 0
seg000:543F                 cmp     ds:part_table_start_cyl[bx], 0
seg000:5444                 jnz     short mp_6
seg000:5446                 mov     [bp+mp_temp], 1
seg000:544A
seg000:544A mp_6:                                   ; CODE XREF: make_partition+DCj
seg000:544A                 mov     al, ds:cur_disk
seg000:544D                 cbw
seg000:544E                 mov     cx, ax
seg000:5450                 shl     ax, 1
seg000:5452                 shl     ax, 1
seg000:5454                 mov     dx, ax
seg000:5456                 mov     al, [bp+mp_table_ptr]
seg000:5459                 cbw
seg000:545A                 add     ax, dx
seg000:545C                 mov     bx, 46
seg000:545F                 imul    bx
seg000:5461                 mov     bx, ax
seg000:5463                 mov     al, [bp+mp_temp]
seg000:5466                 mov     ds:part_table_start_head[bx], al
seg000:546A                 sub     ah, ah
seg000:546C                 sub     dx, dx
seg000:546E                 push    dx
seg000:546F                 push    ax
seg000:5470                 mov     si, cx
seg000:5472                 mov     al, ds:max_sector[si]
seg000:5476                 push    dx
seg000:5477                 push    ax
seg000:5478                 mov     di, ax
seg000:547A                 mov     [bp+mp_temp1_lw], di
seg000:547D                 mov     [bp+mp_temp1_hw], dx
seg000:5480                 mov     di, bx
seg000:5482                 call    mul32
seg000:5485                 push    [bp+mp_temp1_hw]
seg000:5488                 push    [bp+mp_temp1_lw]
seg000:548B                 shl     si, 1
seg000:548D                 mov     cx, ds:max_head[si]
seg000:5491                 sub     bx, bx
seg000:5493                 push    bx
seg000:5494                 push    cx
seg000:5495                 mov     si, ax
seg000:5497                 mov     [bp+mp_temp2_lw], si
seg000:549A                 mov     [bp+mp_temp2_hw], dx
seg000:549D                 call    mul32
seg000:54A0                 push    dx
seg000:54A1                 push    ax
seg000:54A2                 mov     cx, ds:part_table_end_cyl[di]
seg000:54A6                 sub     cx, ds:part_table_start_cyl[di]
seg000:54AA                 inc     cx
seg000:54AB                 sub     bx, bx
seg000:54AD                 push    bx
seg000:54AE                 push    cx
seg000:54AF                 mov     si, ax
seg000:54B1                 mov     [bp+mp_temp3_lw], si
seg000:54B4                 mov     [bp+mp_temp3_hw], dx
seg000:54B7                 call    mul32
seg000:54BA                 sub     ax, [bp+mp_temp2_lw]
seg000:54BD                 sbb     dx, [bp+mp_temp2_hw]
seg000:54C0                 mov     ds:part_table_num_sec_lw[di], ax
seg000:54C4                 mov     ds:part_table_num_sec_hw[di], dx
seg000:54C8                 push    [bp+mp_temp1_hw]
seg000:54CB                 push    [bp+mp_temp1_lw]
seg000:54CE                 mov     al, ds:part_table_start_head[di]
seg000:54D2                 sub     ah, ah
seg000:54D4                 sub     dx, dx
seg000:54D6                 push    dx
seg000:54D7                 push    ax
seg000:54D8                 call    mul32
seg000:54DB                 mov     cx, ds:part_table_start_cyl[di]
seg000:54DF                 sub     bx, bx
seg000:54E1                 push    bx
seg000:54E2                 push    cx
seg000:54E3                 push    [bp+mp_temp3_hw]
seg000:54E6                 push    [bp+mp_temp3_lw]
seg000:54E9                 mov     si, ax
seg000:54EB                 mov     [bp+mp_temp4_lw], si
seg000:54EE                 mov     [bp+mp_temp4_hw], dx
seg000:54F1                 call    mul32
seg000:54F4                 add     ax, [bp+mp_temp4_lw]
seg000:54F7                 adc     dx, [bp+mp_temp4_hw]
seg000:54FA                 mov     [bp+mp_total_sectors_lw], ax
seg000:54FD                 mov     [bp+mp_total_sectors_hw], dx
seg000:5500                 mov     ds:part_table_rel_sec_lw[di], ax
seg000:5504                 mov     ds:part_table_rel_sec_hw[di], dx
seg000:5508                 cmp     [bp+mp_type], 5
seg000:550C                 jnz     short mp_7
seg000:550E                 mov     [bp+mp_temp], 5
seg000:5512                 jmp     short mp_12
seg000:5514 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5514
seg000:5514 mp_7:                                   ; CODE XREF: make_partition+1A4j
seg000:5514                 cmp     [bp+mp_type], 0
seg000:5518                 jnz     short mp_11
seg000:551A                 mov     al, ds:cur_disk
seg000:551D                 cbw
seg000:551E                 shl     ax, 1
seg000:5520                 shl     ax, 1
seg000:5522                 mov     cx, ax
seg000:5524                 mov     al, [bp+mp_table_ptr]
seg000:5527                 cbw
seg000:5528                 add     ax, cx
seg000:552A                 mov     cx, 46
seg000:552D                 imul    cx
seg000:552F                 mov     bx, ax
seg000:5531                 mov     ax, ds:part_table_num_sec_lw[bx]
seg000:5535                 mov     dx, ds:part_table_num_sec_hw[bx]
seg000:5539                 add     [bp+mp_total_sectors_lw], ax
seg000:553C                 adc     [bp+mp_total_sectors_hw], dx
seg000:553F                 jz      short mp_8
seg000:5541                 mov     [bp+mp_temp], 6
seg000:5545                 jmp     short mp_12
seg000:5547 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5547
seg000:5547 mp_8:                                   ; CODE XREF: make_partition+1D7j
seg000:5547                 mov     al, ds:cur_disk
seg000:554A                 cbw
seg000:554B                 shl     ax, 1
seg000:554D                 shl     ax, 1
seg000:554F                 mov     cx, ax
seg000:5551                 mov     al, [bp+mp_table_ptr]
seg000:5554                 cbw
seg000:5555                 add     ax, cx
seg000:5557                 mov     cx, 46
seg000:555A                 imul    cx
seg000:555C                 mov     bx, ax
seg000:555E                 cmp     ds:part_table_num_sec_hw[bx], 0
seg000:5563                 jnz     short mp_9
seg000:5565                 cmp     ds:part_table_num_sec_lw[bx], 32680
seg000:556B                 jbe     short mp_10
seg000:556D
seg000:556D mp_9:                                   ; CODE XREF: make_partition+1FBj
seg000:556D                 mov     [bp+mp_temp], 4
seg000:5571                 jmp     short mp_12
seg000:5573 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5573
seg000:5573 mp_10:                                  ; CODE XREF: make_partition+203j
seg000:5573                 mov     [bp+mp_temp], 1
seg000:5577                 jmp     short mp_12
seg000:5579 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5579
seg000:5579 mp_11:                                  ; CODE XREF: make_partition+1B0j
seg000:5579                 call    internal_program_error
seg000:557C
seg000:557C mp_12:                                  ; CODE XREF: make_partition+1AAj
seg000:557C                                         ; make_partition+1DDj ...
seg000:557C                 mov     al, [bp+mp_table_ptr]
seg000:557F                 cbw
seg000:5580                 mov     cx, ax
seg000:5582                 mov     al, ds:cur_disk
seg000:5585                 cbw
seg000:5586                 shl     ax, 1
seg000:5588                 shl     ax, 1
seg000:558A                 add     ax, cx
seg000:558C                 mov     bx, 46
seg000:558F                 imul    bx
seg000:5591                 mov     si, ax
seg000:5593                 mov     al, [bp+mp_temp]
seg000:5596                 mov     ds:part_table_sys_id[si], al
seg000:559A                 mov     ds:part_table_changed[si], 1
seg000:559F                 mov     al, ds:cur_disk
seg000:55A2                 push    ax
seg000:55A3                 push    [bp+mp_size]
seg000:55A6                 mov     di, cx
seg000:55A8                 call    cylinders_to_mbytes
seg000:55AB                 pop     bx
seg000:55AC                 pop     bx
seg000:55AD                 mov     ds:part_table_mbytes_used[si], ax
seg000:55B1                 mov     al, ds:cur_disk
seg000:55B4                 cbw
seg000:55B5                 mov     bx, ax
seg000:55B7                 shl     bx, 1
seg000:55B9                 push    ds:total_disk[bx]
seg000:55BD                 shl     ax, 1
seg000:55BF                 shl     ax, 1
seg000:55C1                 add     ax, di
seg000:55C3                 mov     cx, 46
seg000:55C6                 imul    cx
seg000:55C8                 mov     bx, ax
seg000:55CA                 mov     ax, ds:part_table_end_cyl[bx]
seg000:55CE                 sub     ax, ds:part_table_start_cyl[bx]
seg000:55D2                 inc     ax
seg000:55D3                 push    ax
seg000:55D4                 mov     si, bx
seg000:55D6                 call    cylinders_to_percent
seg000:55D9                 pop     bx
seg000:55DA                 pop     bx
seg000:55DB                 mov     ds:part_table_percent_used[si], ax
seg000:55DF                 mov     ax, offset NO_FORMAT ; "UNKNOWN "
seg000:55E2                 push    ax
seg000:55E3                 mov     al, ds:cur_disk
seg000:55E6                 cbw
seg000:55E7                 shl     ax, 1
seg000:55E9                 shl     ax, 1
seg000:55EB                 add     ax, di
seg000:55ED                 mov     cx, 46
seg000:55F0                 imul    cx
seg000:55F2                 add     ax, offset part_table_system
seg000:55F5                 push    ax
seg000:55F6                 call    strcpy
seg000:55F9                 pop     bx
seg000:55FA                 pop     bx
seg000:55FB                 mov     ax, offset NO_VOLUME
seg000:55FE                 push    ax
seg000:55FF                 mov     al, ds:cur_disk
seg000:5602                 cbw
seg000:5603                 shl     ax, 1
seg000:5605                 shl     ax, 1
seg000:5607                 add     ax, di
seg000:5609                 mov     cx, 46
seg000:560C                 imul    cx
seg000:560E                 add     ax, offset part_table_vol_label
seg000:5611                 push    ax
seg000:5612                 call    strcpy
seg000:5615                 pop     bx
seg000:5616                 pop     bx
seg000:5617                 jmp     short mp_14
seg000:5619 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5619
seg000:5619 mp_13:                                  ; CODE XREF: make_partition+12j
seg000:5619                 call    internal_program_error
seg000:561C
seg000:561C mp_14:                                  ; CODE XREF: make_partition+2AFj
seg000:561C                 pop     si
seg000:561D                 pop     di
seg000:561E                 mov     sp, bp
seg000:5620                 pop     bp
seg000:5621                 retn
seg000:5621 make_partition  endp
seg000:5621
seg000:5622
seg000:5622 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5622
seg000:5622 ; Attributes: bp-based frame
seg000:5622
seg000:5622 make_volume     proc near               ; CODE XREF: main+31Cp
seg000:5622                                         ; volume_create+282p
seg000:5622
seg000:5622 mv_total_secs_lw= word ptr -0Eh
seg000:5622 mv_total_secs_hw= word ptr -0Ch
seg000:5622 mv_table_ptr    = byte ptr -0Ah
seg000:5622 mv_ext_part_num = word ptr -8
seg000:5622 mv_temp         = byte ptr -6
seg000:5622 mv_size         = word ptr  4
seg000:5622 mv_free_ptr     = byte ptr  6
seg000:5622
seg000:5622                 push    bp
seg000:5623                 mov     bp, sp
seg000:5625                 sub     sp, 14
seg000:5628                 push    di
seg000:5629                 push    si
seg000:562A                 call    find_free_ext
seg000:562D                 mov     [bp+mv_table_ptr], al
seg000:5630                 inc     al
seg000:5632                 jnz     short mv_1
seg000:5634                 jmp     mv_8
seg000:5637 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5637
seg000:5637 mv_1:                                   ; CODE XREF: make_volume+10j
seg000:5637                 mov     al, ds:cur_disk
seg000:563A                 cbw
seg000:563B                 mov     cx, 24
seg000:563E                 mov     bx, ax
seg000:5640                 imul    cx
seg000:5642                 mov     cx, ax
seg000:5644                 mov     al, [bp+mv_table_ptr]
seg000:5647                 cbw
seg000:5648                 add     ax, cx
seg000:564A                 mov     cx, 46
seg000:564D                 imul    cx
seg000:564F                 mov     si, ax
seg000:5651                 mov     ds:ext_table_boot_ind[si], 0
seg000:5656                 mov     al, 22
seg000:5658                 imul    [bp+mv_free_ptr]
seg000:565B                 mov     di, ax
seg000:565D                 mov     ax, ds:free_space_start[di]
seg000:5661                 mov     ds:ext_table_start_cyl[si], ax
seg000:5665                 add     ax, [bp+mv_size]
seg000:5668                 dec     ax
seg000:5669                 mov     ds:ext_table_end_cyl[si], ax
seg000:566D                 mov     ds:ext_table_start_sector[si], 1
seg000:5672                 mov     al, ds:max_sector[bx]
seg000:5676                 mov     ds:ext_table_end_sector[si], al
seg000:567A                 shl     bx, 1
seg000:567C                 mov     cl, byte ptr ds:max_head[bx]
seg000:5680                 dec     cl
seg000:5682                 mov     ds:ext_table_end_head[si], cl
seg000:5686                 mov     ds:ext_table_start_head[si], 1
seg000:568B                 sub     ah, ah
seg000:568D                 mov     cx, ax
seg000:568F                 sub     dx, dx
seg000:5691                 push    dx
seg000:5692                 push    ax
seg000:5693                 mov     di, cx
seg000:5695                 mov     ax, ds:ext_table_end_cyl[si]
seg000:5699                 sub     ax, ds:ext_table_start_cyl[si]
seg000:569D                 inc     ax
seg000:569E                 mov     [bp+mv_total_secs_lw], di
seg000:56A1                 mov     [bp+mv_total_secs_hw], dx
seg000:56A4                 mul     ds:max_head[bx]
seg000:56A8                 push    dx
seg000:56A9                 push    ax
seg000:56AA                 call    mul32
seg000:56AD                 mov     cx, ax
seg000:56AF                 mov     ax, di
seg000:56B1                 mov     bx, dx
seg000:56B3                 cwd
seg000:56B4                 sub     cx, ax
seg000:56B6                 sbb     bx, dx
seg000:56B8                 mov     ax, cx
seg000:56BA                 mov     dx, bx
seg000:56BC                 mov     ds:ext_table_num_sec_lw[si], ax
seg000:56C0                 mov     ds:ext_table_num_sec_hw[si], dx
seg000:56C4                 mov     ax, [bp+mv_total_secs_lw]
seg000:56C7                 mov     dx, [bp+mv_total_secs_hw]
seg000:56CA                 mov     ds:ext_table_rel_sec_lw[si], ax
seg000:56CE                 mov     ds:ext_table_rel_sec_hw[si], dx
seg000:56D2
seg000:56D2 mkvol_chk_fat16_limit:
seg000:56D2                 cmp     ds:ext_table_num_sec_hw[si], 1
seg000:56D7                 jb      short mkvol_chk_fat12_limit
seg000:56D9                 ja      short mkvol_fat16big
seg000:56DB                 cmp     ds:ext_table_num_sec_lw[si], 0
seg000:56E0                 jz      short mkvol_chk_fat12_limit
seg000:56E2
seg000:56E2 mkvol_fat16big:                         ; CODE XREF: make_volume+B7j
seg000:56E2                 mov     [bp+mv_temp], 6
seg000:56E6                 jmp     short mv_7
seg000:56E8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:56E8
seg000:56E8 mkvol_chk_fat12_limit:                  ; CODE XREF: make_volume+B5j
seg000:56E8                                         ; make_volume+BEj
seg000:56E8                 mov     al, [bp+mv_table_ptr]
seg000:56EB                 cbw
seg000:56EC                 mov     cx, ax
seg000:56EE                 mov     al, 24
seg000:56F0                 imul    ds:cur_disk
seg000:56F4                 add     ax, cx
seg000:56F6                 mov     cx, 46
seg000:56F9                 imul    cx
seg000:56FB                 mov     bx, ax
seg000:56FD                 cmp     ds:ext_table_num_sec_hw[bx], 0
seg000:5702                 jnz     short mkvol_fat16
seg000:5704                 cmp     ds:ext_table_num_sec_lw[bx], 32680
seg000:570A                 jbe     short mkvol_fat12
seg000:570C
seg000:570C mkvol_fat16:                            ; CODE XREF: make_volume+E0j
seg000:570C                 mov     [bp+mv_temp], 4
seg000:5710                 jmp     short mv_7
seg000:5712 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5712
seg000:5712 mkvol_fat12:                            ; CODE XREF: make_volume+E8j
seg000:5712                 mov     [bp+mv_temp], 1
seg000:5716
seg000:5716 mv_7:                                   ; CODE XREF: make_volume+C4j
seg000:5716                                         ; make_volume+EEj
seg000:5716                 mov     al, [bp+mv_table_ptr]
seg000:5719                 cbw
seg000:571A                 mov     cx, ax
seg000:571C                 mov     al, 24
seg000:571E                 imul    ds:cur_disk
seg000:5722                 add     ax, cx
seg000:5724                 mov     bx, 46
seg000:5727                 imul    bx
seg000:5729                 mov     si, ax
seg000:572B                 mov     al, [bp+mv_temp]
seg000:572E                 mov     ds:ext_table_sys_id[si], al
seg000:5732                 mov     ds:ext_table_changed[si], 1
seg000:5737                 mov     al, ds:cur_disk
seg000:573A                 push    ax
seg000:573B                 push    [bp+mv_size]
seg000:573E                 mov     di, cx
seg000:5740                 call    cylinders_to_mbytes
seg000:5743                 pop     bx
seg000:5744                 pop     bx
seg000:5745                 mov     ds:ext_table_mbytes_used[si], ax
seg000:5749                 mov     al, 5
seg000:574B                 push    ax
seg000:574C                 call    find_partition_location
seg000:574F                 pop     bx
seg000:5750                 cbw
seg000:5751                 mov     [bp+mv_ext_part_num], ax
seg000:5754                 mov     al, ds:cur_disk
seg000:5757                 cbw
seg000:5758                 mov     cx, ax
seg000:575A                 shl     ax, 1
seg000:575C                 shl     ax, 1
seg000:575E                 add     ax, [bp+mv_ext_part_num]
seg000:5761                 mov     bx, 46
seg000:5764                 mul     bx
seg000:5766                 mov     bx, ax
seg000:5768                 mov     ax, ds:part_table_end_cyl[bx]
seg000:576C                 sub     ax, ds:part_table_start_cyl[bx]
seg000:5770                 inc     ax
seg000:5771                 push    ax
seg000:5772                 mov     bx, 24
seg000:5775                 mov     ax, cx
seg000:5777                 imul    bx
seg000:5779                 add     ax, di
seg000:577B                 mov     cx, 46
seg000:577E                 imul    cx
seg000:5780                 mov     si, ax
seg000:5782                 mov     ax, ds:ext_table_end_cyl[si]
seg000:5786                 sub     ax, ds:ext_table_start_cyl[si]
seg000:578A                 inc     ax
seg000:578B                 push    ax
seg000:578C                 call    cylinders_to_percent
seg000:578F                 pop     bx
seg000:5790                 pop     bx
seg000:5791                 mov     ds:ext_table_percent_used[si], ax
seg000:5795                 mov     ax, offset _NOFORMAT ; "UNKNOWN "
seg000:5798                 push    ax
seg000:5799                 mov     al, 24
seg000:579B                 imul    ds:cur_disk
seg000:579F                 add     ax, di
seg000:57A1                 mov     cx, 46
seg000:57A4                 imul    cx
seg000:57A6                 add     ax, offset ext_table_system
seg000:57A9                 push    ax
seg000:57AA                 call    strcpy
seg000:57AD                 pop     bx
seg000:57AE                 pop     bx
seg000:57AF                 mov     ax, offset _NOVOLUME
seg000:57B2                 push    ax
seg000:57B3                 mov     al, 24
seg000:57B5                 imul    ds:cur_disk
seg000:57B9                 add     ax, di
seg000:57BB                 mov     cx, 46
seg000:57BE                 imul    cx
seg000:57C0                 add     ax, offset ext_table_vol_label
seg000:57C3                 push    ax
seg000:57C4                 call    strcpy
seg000:57C7                 pop     bx
seg000:57C8                 pop     bx
seg000:57C9                 jmp     short mv_9
seg000:57CB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:57CB
seg000:57CB mv_8:                                   ; CODE XREF: make_volume+12j
seg000:57CB                 call    internal_program_error
seg000:57CE
seg000:57CE mv_9:                                   ; CODE XREF: make_volume+1A7j
seg000:57CE                 mov     al, [bp+mv_table_ptr]
seg000:57D1                 pop     si
seg000:57D2                 pop     di
seg000:57D3                 mov     sp, bp
seg000:57D5                 pop     bp
seg000:57D6                 retn
seg000:57D6 make_volume     endp
seg000:57D6
seg000:57D6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:57D7                 align 2
seg000:57D8
seg000:57D8 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:57D8
seg000:57D8 ; Attributes: bp-based frame
seg000:57D8
seg000:57D8 remove_partition proc near              ; CODE XREF: dos_delete+240p
seg000:57D8                                         ; ext_delete+D4p ...
seg000:57D8
seg000:57D8 rmp_drive       = byte ptr  4
seg000:57D8 rmp_entry       = word ptr  6
seg000:57D8
seg000:57D8                 push    bp
seg000:57D9                 mov     bp, sp
seg000:57DB                 push    si
seg000:57DC                 mov     al, [bp+rmp_drive]
seg000:57DF                 cbw
seg000:57E0                 shl     ax, 1
seg000:57E2                 shl     ax, 1
seg000:57E4                 add     ax, [bp+rmp_entry]
seg000:57E7                 mov     cx, 46
seg000:57EA                 mul     cx
seg000:57EC                 mov     bx, ax
seg000:57EE                 sub     al, al
seg000:57F0                 mov     ds:part_table_boot_ind[bx], al
seg000:57F4                 mov     ds:part_table_start_head[bx], al
seg000:57F8                 mov     ds:part_table_start_sector[bx], al
seg000:57FC                 mov     ds:part_table_start_cyl[bx], 0
seg000:5802                 mov     ds:part_table_sys_id[bx], al
seg000:5806                 mov     ds:part_table_end_head[bx], al
seg000:580A                 mov     ds:part_table_end_sector[bx], al
seg000:580E                 mov     ds:part_table_end_cyl[bx], 0
seg000:5814                 sub     ax, ax
seg000:5816                 mov     ds:part_table_rel_sec_hw[bx], ax
seg000:581A                 mov     ds:part_table_rel_sec_lw[bx], ax
seg000:581E                 mov     ds:part_table_num_sec_hw[bx], ax
seg000:5822                 mov     ds:part_table_num_sec_lw[bx], ax
seg000:5826                 mov     ds:part_table_changed[bx], 1
seg000:582B                 mov     ds:part_table_mbytes_used[bx], ax
seg000:582F                 mov     ds:part_table_percent_used[bx], ax
seg000:5833                 push    ax
seg000:5834                 mov     cx, bx
seg000:5836                 add     bx, offset part_table_system
seg000:583A                 push    bx
seg000:583B                 mov     si, cx
seg000:583D                 call    strcpy
seg000:5840                 pop     bx
seg000:5841                 pop     bx
seg000:5842                 sub     ax, ax
seg000:5844                 push    ax
seg000:5845                 add     si, offset part_table_vol_label
seg000:5849                 push    si
seg000:584A                 call    strcpy
seg000:584D                 pop     bx
seg000:584E                 pop     bx
seg000:584F                 pop     si
seg000:5850                 mov     sp, bp
seg000:5852                 pop     bp
seg000:5853                 retn
seg000:5853 remove_partition endp
seg000:5853
seg000:5854
seg000:5854 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5854
seg000:5854 ; Attributes: bp-based frame
seg000:5854
seg000:5854 remove_volume   proc near               ; CODE XREF: volume_delete+446p
seg000:5854
seg000:5854 rmv_drive       = byte ptr  4
seg000:5854 rmv_entry       = word ptr  6
seg000:5854
seg000:5854                 push    bp
seg000:5855                 mov     bp, sp
seg000:5857                 push    si
seg000:5858                 mov     al, 24
seg000:585A                 imul    [bp+rmv_drive]
seg000:585D                 add     ax, [bp+rmv_entry]
seg000:5860                 mov     cx, 46
seg000:5863                 mul     cx
seg000:5865                 mov     bx, ax
seg000:5867                 sub     al, al
seg000:5869                 mov     ds:ext_table_boot_ind[bx], al
seg000:586D                 mov     ds:ext_table_start_head[bx], al
seg000:5871                 mov     ds:ext_table_start_sector[bx], al
seg000:5875                 mov     ds:ext_table_start_cyl[bx], 0
seg000:587B                 mov     ds:ext_table_sys_id[bx], al
seg000:587F                 mov     ds:ext_table_end_head[bx], al
seg000:5883                 mov     ds:ext_table_end_sector[bx], al
seg000:5887                 mov     ds:ext_table_end_cyl[bx], 0
seg000:588D                 sub     ax, ax
seg000:588F                 mov     ds:ext_table_rel_sec_hw[bx], ax
seg000:5893                 mov     ds:ext_table_rel_sec_lw[bx], ax
seg000:5897                 mov     ds:ext_table_num_sec_hw[bx], ax
seg000:589B                 mov     ds:ext_table_num_sec_lw[bx], ax
seg000:589F                 mov     ds:ext_table_mbytes_used[bx], ax
seg000:58A3                 mov     ds:ext_table_percent_used[bx], ax
seg000:58A7                 mov     ds:ext_table_changed[bx], 1
seg000:58AC                 mov     ds:ext_table_drive_letter[bx], 0
seg000:58B1                 push    ax
seg000:58B2                 mov     cx, bx
seg000:58B4                 add     bx, offset ext_table_system
seg000:58B8                 push    bx
seg000:58B9                 mov     si, cx
seg000:58BB                 call    strcpy
seg000:58BE                 pop     bx
seg000:58BF                 pop     bx
seg000:58C0                 sub     ax, ax
seg000:58C2                 push    ax
seg000:58C3                 add     si, offset ext_table_vol_label
seg000:58C7                 push    si
seg000:58C8                 call    strcpy
seg000:58CB                 pop     bx
seg000:58CC                 pop     bx
seg000:58CD                 pop     si
seg000:58CE                 mov     sp, bp
seg000:58D0                 pop     bp
seg000:58D1                 retn
seg000:58D1 remove_volume   endp
seg000:58D1
seg000:58D2
seg000:58D2 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:58D2
seg000:58D2 ; Attributes: bp-based frame
seg000:58D2
seg000:58D2 get_disk_info   proc near               ; CODE XREF: main+9Dp
seg000:58D2                                         ; main+144p
seg000:58D2
seg000:58D2 var_2           = byte ptr -2
seg000:58D2
seg000:58D2                 push    bp
seg000:58D3                 mov     bp, sp
seg000:58D5                 sub     sp, 2
seg000:58D8                 push    si
seg000:58D9                 sub     al, al
seg000:58DB                 mov     ds:number_of_drives, al
seg000:58DE                 mov     [bp+var_2], al
seg000:58E1                 jmp     short gdi_2
seg000:58E3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:58E3
seg000:58E3 gdi_1:                                  ; CODE XREF: get_disk_info+31j
seg000:58E3                 mov     bl, [bp+var_2]
seg000:58E6                 sub     bh, bh
seg000:58E8                 mov     ds:max_sector[bx], bh
seg000:58EC                 sub     ax, ax
seg000:58EE                 shl     bx, 1
seg000:58F0                 mov     ds:total_disk[bx], ax
seg000:58F4                 mov     ds:total_mbytes[bx], ax
seg000:58F8                 mov     ds:max_head[bx], ax
seg000:58FC                 inc     [bp+var_2]
seg000:58FF
seg000:58FF gdi_2:                                  ; CODE XREF: get_disk_info+Fj
seg000:58FF                 cmp     [bp+var_2], 8
seg000:5903                 jb      short gdi_1
seg000:5905                 mov     al, 80h
seg000:5907                 push    ax
seg000:5908                 call    get_drive_parameters
seg000:590B                 pop     bx
seg000:590C                 or      al, al
seg000:590E                 jz      short gdi_7
seg000:5910                 mov     [bp+var_2], 0
seg000:5914                 jmp     short gdi_4
seg000:5916 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5916
seg000:5916 gdi_3:                                  ; CODE XREF: get_disk_info+9Cj
seg000:5916                 inc     [bp+var_2]
seg000:5919
seg000:5919 gdi_4:                                  ; CODE XREF: get_disk_info+42j
seg000:5919                 mov     al, [bp+var_2]
seg000:591C                 cmp     ds:number_of_drives, al
seg000:5920                 jbe     short gdi_6
seg000:5922                 add     al, 80h
seg000:5924                 push    ax
seg000:5925                 call    get_drive_parameters
seg000:5928                 pop     bx
seg000:5929                 or      al, al
seg000:592B                 jz      short gdi_5
seg000:592D                 mov     al, byte ptr ds:regs_x_cx
seg000:5930                 and     al, 3Fh
seg000:5932                 mov     bl, [bp+var_2]
seg000:5935                 sub     bh, bh
seg000:5937                 mov     ds:max_sector[bx], al
seg000:593B                 mov     al, byte ptr ds:regs_x_dx+1
seg000:593E                 sub     ah, ah
seg000:5940                 inc     ax
seg000:5941                 shl     bx, 1
seg000:5943                 mov     ds:max_head[bx], ax
seg000:5947                 mov     al, byte ptr ds:regs_x_cx
seg000:594A                 and     ax, 0C0h
seg000:594D                 shl     ax, 1
seg000:594F                 shl     ax, 1
seg000:5951                 mov     cl, byte ptr ds:regs_x_cx+1
seg000:5955                 sub     ch, ch
seg000:5957                 or      ax, cx
seg000:5959                 inc     ax
seg000:595A                 mov     ds:total_disk[bx], ax
seg000:595E                 mov     cl, [bp+var_2]
seg000:5961                 push    cx
seg000:5962                 push    ax
seg000:5963                 mov     si, bx
seg000:5965                 call    cylinders_to_mbytes
seg000:5968                 pop     bx
seg000:5969                 pop     bx
seg000:596A                 mov     ds:total_mbytes[si], ax
seg000:596E                 jmp     short gdi_3
seg000:5970 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5970
seg000:5970 gdi_5:                                  ; CODE XREF: get_disk_info+59j
seg000:5970                 sub     al, al
seg000:5972                 mov     bl, [bp+var_2]
seg000:5975                 sub     bh, bh
seg000:5977                 mov     ds:good_disk[bx], al
seg000:597B                 jmp     short gdi_8
seg000:597D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:597D
seg000:597D gdi_6:                                  ; CODE XREF: get_disk_info+4Ej
seg000:597D                 mov     al, 1
seg000:597F                 jmp     short gdi_8
seg000:5981 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5981
seg000:5981 gdi_7:                                  ; CODE XREF: get_disk_info+3Cj
seg000:5981                 sub     al, al
seg000:5983                 mov     ds:no_fatal_error, al
seg000:5986
seg000:5986 gdi_8:                                  ; CODE XREF: get_disk_info+A9j
seg000:5986                                         ; get_disk_info+ADj
seg000:5986                 pop     si
seg000:5987                 mov     sp, bp
seg000:5989                 pop     bp
seg000:598A                 retn
seg000:598A get_disk_info   endp
seg000:598A
seg000:598B
seg000:598B ; --------------- S U B R O U T I N E ---------------------------------------
seg000:598B
seg000:598B ; Attributes: bp-based frame
seg000:598B
seg000:598B write_boot_record proc near             ; CODE XREF: main+1DAp
seg000:598B                                         ; write_master_boot_to_disk+158p ...
seg000:598B
seg000:598B w_buf_pointer   = word ptr -4
seg000:598B w_buf_pointer2  = word ptr -2
seg000:598B w_cylinder      = word ptr  4
seg000:598B w_which_disk    = byte ptr  6
seg000:598B
seg000:598B                 push    bp
seg000:598C                 mov     bp, sp
seg000:598E                 sub     sp, 4
seg000:5991                 mov     [bp+w_buf_pointer], offset boot_record
seg000:5996                 mov     [bp+w_buf_pointer2], ds
seg000:5999                 mov     byte ptr ds:regs_x_ax+1, 3
seg000:599E                 mov     byte ptr ds:regs_x_ax, 1
seg000:59A3                 mov     byte ptr ds:regs_x_dx+1, 0
seg000:59A8                 mov     byte ptr ds:regs_x_cx, 1
seg000:59AD                 mov     al, [bp+w_which_disk]
seg000:59B0                 add     al, 80h
seg000:59B2                 mov     byte ptr ds:regs_x_dx, al
seg000:59B5                 cmp     [bp+w_cylinder], 255
seg000:59BA                 jbe     short write_bs_1
seg000:59BC                 mov     ax, [bp+w_cylinder]
seg000:59BF                 shr     ax, 1
seg000:59C1                 shr     ax, 1
seg000:59C3                 and     al, 0C0h
seg000:59C5                 or      byte ptr ds:regs_x_cx, al
seg000:59C9
seg000:59C9 write_bs_1:                             ; CODE XREF: write_boot_record+2Fj
seg000:59C9                 mov     al, byte ptr [bp+w_cylinder]
seg000:59CC                 mov     byte ptr ds:regs_x_cx+1, al
seg000:59CF                 mov     ax, [bp+w_buf_pointer]
seg000:59D2                 mov     ds:regs_x_bx, ax
seg000:59D5                 mov     ax, [bp+w_buf_pointer2]
seg000:59D8                 mov     ds:segregs_es, ax
seg000:59DB                 mov     ax, offset segregs_es
seg000:59DE                 push    ax
seg000:59DF                 mov     ax, offset regs_x_ax
seg000:59E2                 push    ax
seg000:59E3                 push    ax
seg000:59E4                 call    DiskIo
seg000:59E7                 add     sp, 6
seg000:59EA                 mov     al, ds:regs_x_cflag
seg000:59ED                 and     al, 1
seg000:59EF                 cmp     al, 1
seg000:59F1                 jz      short write_bs_2
seg000:59F3                 mov     al, 1
seg000:59F5                 jmp     short write_bs_3
seg000:59F7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:59F7
seg000:59F7 write_bs_2:                             ; CODE XREF: write_boot_record+66j
seg000:59F7                 mov     ax, 79
seg000:59FA                 push    ax
seg000:59FB                 mov     ax, 24
seg000:59FE                 push    ax
seg000:59FF                 sub     ax, ax
seg000:5A01                 push    ax
seg000:5A02                 push    ax
seg000:5A03                 call    clear_screen
seg000:5A06                 add     sp, 8
seg000:5A09                 push    ds:error_2_seg
seg000:5A0D                 push    ds:error_2_off
seg000:5A11                 call    display
seg000:5A14                 pop     bx
seg000:5A15                 pop     bx
seg000:5A16                 sub     al, al
seg000:5A18                 mov     ds:no_fatal_error, al
seg000:5A1B
seg000:5A1B write_bs_3:                             ; CODE XREF: write_boot_record+6Aj
seg000:5A1B                 mov     sp, bp
seg000:5A1D                 pop     bp
seg000:5A1E                 retn
seg000:5A1E write_boot_record endp
seg000:5A1E
seg000:5A1F
seg000:5A1F ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5A1F
seg000:5A1F ; Attributes: bp-based frame
seg000:5A1F
seg000:5A1F verify_tracks   proc near               ; CODE XREF: find_part_free_space+2F8p
seg000:5A1F                                         ; find_ext_free_space+2B3p
seg000:5A1F
seg000:5A1F var_1A          = word ptr -1Ah
seg000:5A1F var_18          = byte ptr -18h
seg000:5A1F var_14          = word ptr -14h
seg000:5A1F var_12          = word ptr -12h
seg000:5A1F var_10          = word ptr -10h
seg000:5A1F var_E           = word ptr -0Eh
seg000:5A1F var_C           = word ptr -0Ch
seg000:5A1F var_A           = word ptr -0Ah
seg000:5A1F var_8           = byte ptr -8
seg000:5A1F var_4           = word ptr -4
seg000:5A1F var_2           = byte ptr -2
seg000:5A1F arg_0           = byte ptr  4
seg000:5A1F arg_2           = byte ptr  6
seg000:5A1F
seg000:5A1F                 push    bp
seg000:5A20                 mov     bp, sp
seg000:5A22                 sub     sp, 28
seg000:5A25                 push    di
seg000:5A26                 push    si
seg000:5A27                 mov     [bp+var_14], offset boot_record
seg000:5A2C                 mov     [bp+var_12], ds
seg000:5A2F                 mov     [bp+var_10], 0
seg000:5A34
seg000:5A34 loc_5A34:                               ; CODE XREF: verify_tracks+25j
seg000:5A34                 mov     bx, [bp+var_10]
seg000:5A37                 mov     ds:boot_record[bx], 0F6h
seg000:5A3C                 inc     [bp+var_10]
seg000:5A3F                 cmp     [bp+var_10], 512
seg000:5A44                 jb      short loc_5A34
seg000:5A46                 mov     al, 22
seg000:5A48                 imul    [bp+arg_0]
seg000:5A4B                 mov     bx, ax
seg000:5A4D                 mov     ax, ds:free_space_start[bx]
seg000:5A51                 mov     [bp+var_4], ax
seg000:5A54                 mov     [bp+var_1A], ax
seg000:5A57                 mov     [bp+var_18], 0
seg000:5A5B                 cmp     [bp+arg_2], 0
seg000:5A5F                 jnz     short loc_5A65
seg000:5A61                 or      ax, ax
seg000:5A63                 jz      short loc_5A6B
seg000:5A65
seg000:5A65 loc_5A65:                               ; CODE XREF: verify_tracks+40j
seg000:5A65                 cmp     [bp+arg_2], 5
seg000:5A69                 jnz     short loc_5A6F
seg000:5A6B
seg000:5A6B loc_5A6B:                               ; CODE XREF: verify_tracks+44j
seg000:5A6B                 mov     [bp+var_18], 1
seg000:5A6F
seg000:5A6F loc_5A6F:                               ; CODE XREF: verify_tracks+4Aj
seg000:5A6F                 mov     al, ds:cur_disk
seg000:5A72                 cbw
seg000:5A73                 mov     bx, ax
seg000:5A75                 mov     al, ds:max_sector[bx]
seg000:5A79                 sub     ah, ah
seg000:5A7B                 sub     dx, dx
seg000:5A7D                 push    dx
seg000:5A7E                 push    ax
seg000:5A7F                 mov     cx, ax
seg000:5A81                 mov     al, 22
seg000:5A83                 imul    [bp+arg_0]
seg000:5A86                 mov     si, ax
seg000:5A88                 shl     bx, 1
seg000:5A8A                 mov     ax, ds:max_head[bx]
seg000:5A8E                 mov     bx, dx
seg000:5A90                 mul     ds:free_space_space[si]
seg000:5A94                 push    dx
seg000:5A95                 push    ax
seg000:5A96                 mov     si, cx
seg000:5A98                 mov     di, bx
seg000:5A9A                 call    mul32
seg000:5A9D                 mov     [bp+var_C], ax
seg000:5AA0                 mov     [bp+var_A], dx
seg000:5AA3                 cmp     [bp+var_18], 1
seg000:5AA7                 jnz     short loc_5AB3
seg000:5AA9                 sub     ax, si
seg000:5AAB                 sbb     dx, di
seg000:5AAD                 mov     [bp+var_C], ax
seg000:5AB0                 mov     [bp+var_A], dx
seg000:5AB3
seg000:5AB3 loc_5AB3:                               ; CODE XREF: verify_tracks+88j
seg000:5AB3                 cmp     dx, di
seg000:5AB5                 jnz     short loc_5ABC
seg000:5AB7                 cmp     ax, 32680
seg000:5ABA                 jbe     short loc_5ACD
seg000:5ABC
seg000:5ABC loc_5ABC:                               ; CODE XREF: verify_tracks+96j
seg000:5ABC                 mov     ax, 1026
seg000:5ABF                 cwd
seg000:5AC0                 push    dx
seg000:5AC1                 push    ax
seg000:5AC2                 mov     ax, [bp+var_C]
seg000:5AC5                 mov     dx, [bp+var_A]
seg000:5AC8                 add     ax, 992
seg000:5ACB                 jmp     short loc_5ADC
seg000:5ACD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5ACD
seg000:5ACD loc_5ACD:                               ; CODE XREF: verify_tracks+9Bj
seg000:5ACD                 mov     ax, 2733
seg000:5AD0                 cwd
seg000:5AD1                 push    dx
seg000:5AD2                 push    ax
seg000:5AD3                 mov     ax, [bp+var_C]
seg000:5AD6                 mov     dx, [bp+var_A]
seg000:5AD9                 add     ax, 2699
seg000:5ADC
seg000:5ADC loc_5ADC:                               ; CODE XREF: verify_tracks+ACj
seg000:5ADC                 adc     dx, di
seg000:5ADE                 push    dx
seg000:5ADF                 push    ax
seg000:5AE0                 call    div32
seg000:5AE3                 shl     ax, 1
seg000:5AE5                 add     ax, 33
seg000:5AE8                 mov     [bp+var_E], ax
seg000:5AEB                 cmp     [bp+arg_2], 0
seg000:5AEF                 jnz     short loc_5AFE
seg000:5AF1                 cmp     ds:cur_disk, 0
seg000:5AF6                 jnz     short loc_5AFE
seg000:5AF8                 add     ax, 250
seg000:5AFB                 mov     [bp+var_E], ax
seg000:5AFE
seg000:5AFE loc_5AFE:                               ; CODE XREF: verify_tracks+D0j
seg000:5AFE                                         ; verify_tracks+D7j
seg000:5AFE                 mov     al, ds:cur_disk
seg000:5B01                 cbw
seg000:5B02                 mov     bx, ax
seg000:5B04                 mov     cl, ds:max_sector[bx]
seg000:5B08                 sub     ch, ch
seg000:5B0A                 mov     ax, [bp+var_E]
seg000:5B0D                 sub     dx, dx
seg000:5B0F                 div     cx
seg000:5B11                 or      dx, dx
seg000:5B13                 jz      short loc_5B18
seg000:5B15                 add     [bp+var_E], cx
seg000:5B18
seg000:5B18 loc_5B18:                               ; CODE XREF: verify_tracks+F4j
seg000:5B18                 mov     al, ds:cur_disk
seg000:5B1B                 cbw
seg000:5B1C                 mov     bx, ax
seg000:5B1E                 mov     cl, ds:max_sector[bx]
seg000:5B22                 sub     ch, ch
seg000:5B24                 mov     ax, [bp+var_E]
seg000:5B27                 sub     dx, dx
seg000:5B29                 div     cx
seg000:5B2B                 mov     [bp+var_E], ax
seg000:5B2E                 cmp     [bp+var_18], ch
seg000:5B31                 jnz     short loc_5B36
seg000:5B33                 inc     [bp+var_E]
seg000:5B36
seg000:5B36 loc_5B36:                               ; CODE XREF: verify_tracks+112j
seg000:5B36                 mov     [bp+var_2], 0
seg000:5B3A
seg000:5B3A loc_5B3A:                               ; CODE XREF: verify_tracks+25Ej
seg000:5B3A                 mov     [bp+var_10], 0
seg000:5B3F                 jmp     short loc_5B44
seg000:5B41 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5B41
seg000:5B41 loc_5B41:                               ; CODE XREF: verify_tracks:loc_5C50j
seg000:5B41                 inc     [bp+var_10]
seg000:5B44
seg000:5B44 loc_5B44:                               ; CODE XREF: verify_tracks+120j
seg000:5B44                 mov     ax, [bp+var_10]
seg000:5B47                 cmp     [bp+var_E], ax
seg000:5B4A                 ja      short loc_5B4F
seg000:5B4C                 jmp     loc_5C77
seg000:5B4F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5B4F
seg000:5B4F loc_5B4F:                               ; CODE XREF: verify_tracks+12Bj
seg000:5B4F                 mov     [bp+var_8], 0
seg000:5B53
seg000:5B53 loc_5B53:                               ; CODE XREF: verify_tracks+192j
seg000:5B53                 inc     [bp+var_8]
seg000:5B56                 mov     byte ptr ds:regs_x_ax+1, 4
seg000:5B5B                 mov     al, ds:cur_disk
seg000:5B5E                 cbw
seg000:5B5F                 mov     bx, ax
seg000:5B61                 mov     al, ds:max_sector[bx]
seg000:5B65                 mov     byte ptr ds:regs_x_ax, al
seg000:5B68                 mov     byte ptr ds:regs_x_cx, 1
seg000:5B6D                 cmp     [bp+var_4], 255
seg000:5B72                 jbe     short loc_5B82
seg000:5B74                 mov     ax, [bp+var_4]
seg000:5B77                 shr     ax, 1
seg000:5B79                 shr     ax, 1
seg000:5B7B                 and     al, 0C1h
seg000:5B7D                 or      al, 1
seg000:5B7F                 mov     byte ptr ds:regs_x_cx, al
seg000:5B82
seg000:5B82 loc_5B82:                               ; CODE XREF: verify_tracks+153j
seg000:5B82                 mov     al, byte ptr [bp+var_4]
seg000:5B85                 mov     byte ptr ds:regs_x_cx+1, al
seg000:5B88                 mov     al, ds:cur_disk
seg000:5B8B                 add     al, 80h
seg000:5B8D                 mov     byte ptr ds:regs_x_dx, al
seg000:5B90                 mov     al, [bp+var_18]
seg000:5B93                 mov     byte ptr ds:regs_x_dx+1, al
seg000:5B96                 mov     ax, offset regs_x_ax
seg000:5B99                 push    ax
seg000:5B9A                 push    ax
seg000:5B9B                 mov     ax, 13h
seg000:5B9E                 push    ax
seg000:5B9F                 call    int86
seg000:5BA2                 add     sp, 6
seg000:5BA5                 mov     al, ds:regs_x_cflag
seg000:5BA8                 and     ax, 1
seg000:5BAB                 jz      short loc_5BB3
seg000:5BAD                 cmp     [bp+var_8], 3
seg000:5BB1                 jnz     short loc_5B53
seg000:5BB3
seg000:5BB3 loc_5BB3:                               ; CODE XREF: verify_tracks+18Cj
seg000:5BB3                 or      ax, ax
seg000:5BB5                 jnz     short loc_5C1D
seg000:5BB7                 mov     [bp+var_8], 0
seg000:5BBB
seg000:5BBB loc_5BBB:                               ; CODE XREF: verify_tracks+1FCj
seg000:5BBB                 inc     [bp+var_8]
seg000:5BBE                 mov     byte ptr ds:regs_x_ax+1, 3
seg000:5BC3                 mov     al, 1
seg000:5BC5                 mov     byte ptr ds:regs_x_ax, al
seg000:5BC8                 mov     byte ptr ds:regs_x_cx, al
seg000:5BCB                 cmp     [bp+var_4], 255
seg000:5BD0                 jbe     short loc_5BE0
seg000:5BD2                 mov     ax, [bp+var_4]
seg000:5BD5                 shr     ax, 1
seg000:5BD7                 shr     ax, 1
seg000:5BD9                 and     al, 0C1h
seg000:5BDB                 or      al, 1
seg000:5BDD                 mov     byte ptr ds:regs_x_cx, al
seg000:5BE0
seg000:5BE0 loc_5BE0:                               ; CODE XREF: verify_tracks+1B1j
seg000:5BE0                 mov     al, byte ptr [bp+var_4]
seg000:5BE3                 mov     byte ptr ds:regs_x_cx+1, al
seg000:5BE6                 mov     al, ds:cur_disk
seg000:5BE9                 add     al, 80h
seg000:5BEB                 mov     byte ptr ds:regs_x_dx, al
seg000:5BEE                 mov     al, [bp+var_18]
seg000:5BF1                 mov     byte ptr ds:regs_x_dx+1, al
seg000:5BF4                 mov     ax, [bp+var_14]
seg000:5BF7                 mov     ds:regs_x_bx, ax
seg000:5BFA                 mov     ax, [bp+var_12]
seg000:5BFD                 mov     ds:segregs_es, ax
seg000:5C00                 mov     ax, offset segregs_es
seg000:5C03                 push    ax
seg000:5C04                 mov     ax, offset regs_x_ax
seg000:5C07                 push    ax
seg000:5C08                 push    ax
seg000:5C09                 call    DiskIo
seg000:5C0C                 add     sp, 6
seg000:5C0F                 mov     al, ds:regs_x_cflag
seg000:5C12                 and     ax, 1
seg000:5C15                 jz      short loc_5C1D
seg000:5C17                 cmp     [bp+var_8], 3
seg000:5C1B                 jnz     short loc_5BBB
seg000:5C1D
seg000:5C1D loc_5C1D:                               ; CODE XREF: verify_tracks+196j
seg000:5C1D                                         ; verify_tracks+1F6j
seg000:5C1D                 or      ax, ax
seg000:5C1F                 jnz     short loc_5C59
seg000:5C21                 mov     [bp+var_2], 1
seg000:5C25                 mov     al, ds:cur_disk
seg000:5C28                 cbw
seg000:5C29                 mov     bx, ax
seg000:5C2B                 shl     bx, 1
seg000:5C2D                 inc     [bp+var_18]
seg000:5C30                 mov     al, [bp+var_18]
seg000:5C33                 cmp     byte ptr ds:max_head[bx], al
seg000:5C37                 jnz     short loc_5C50
seg000:5C39                 mov     [bp+var_18], 0
seg000:5C3D                 mov     al, 22
seg000:5C3F                 imul    [bp+arg_0]
seg000:5C42                 mov     bx, ax
seg000:5C44                 inc     [bp+var_4]
seg000:5C47                 mov     ax, [bp+var_4]
seg000:5C4A                 cmp     ds:free_space_end[bx], ax
seg000:5C4E                 jb      short loc_5C53
seg000:5C50
seg000:5C50 loc_5C50:                               ; CODE XREF: verify_tracks+218j
seg000:5C50                 jmp     loc_5B41
seg000:5C53 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5C53
seg000:5C53 loc_5C53:                               ; CODE XREF: verify_tracks+22Fj
seg000:5C53                                         ; verify_tracks+24Fj
seg000:5C53                 mov     ax, ds:free_space_space[bx]
seg000:5C57                 jmp     short loc_5C8E
seg000:5C59 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5C59
seg000:5C59 loc_5C59:                               ; CODE XREF: verify_tracks+200j
seg000:5C59                 mov     [bp+var_2], 0
seg000:5C5D                 mov     al, 22
seg000:5C5F                 imul    [bp+arg_0]
seg000:5C62                 mov     bx, ax
seg000:5C64                 inc     [bp+var_4]
seg000:5C67                 mov     ax, [bp+var_4]
seg000:5C6A                 cmp     ds:free_space_end[bx], ax
seg000:5C6E                 jb      short loc_5C53
seg000:5C70                 mov     [bp+var_18], 0
seg000:5C74                 mov     [bp+var_1A], ax
seg000:5C77
seg000:5C77 loc_5C77:                               ; CODE XREF: verify_tracks+12Dj
seg000:5C77                 cmp     [bp+var_2], 0
seg000:5C7B                 jnz     short loc_5C80
seg000:5C7D                 jmp     loc_5B3A
seg000:5C80 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5C80
seg000:5C80 loc_5C80:                               ; CODE XREF: verify_tracks+25Cj
seg000:5C80                 mov     al, 22
seg000:5C82                 imul    [bp+arg_0]
seg000:5C85                 mov     bx, ax
seg000:5C87                 mov     ax, [bp+var_1A]
seg000:5C8A                 sub     ax, ds:free_space_start[bx]
seg000:5C8E
seg000:5C8E loc_5C8E:                               ; CODE XREF: verify_tracks+238j
seg000:5C8E                 pop     si
seg000:5C8F                 pop     di
seg000:5C90                 mov     sp, bp
seg000:5C92                 pop     bp
seg000:5C93                 retn
seg000:5C93 verify_tracks   endp
seg000:5C93
seg000:5C94
seg000:5C94 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5C94
seg000:5C94 ; Attributes: bp-based frame
seg000:5C94
seg000:5C94 get_drive_parameters proc near          ; CODE XREF: get_disk_info+36p
seg000:5C94                                         ; get_disk_info+53p
seg000:5C94
seg000:5C94 arg_0           = byte ptr  4
seg000:5C94
seg000:5C94                 push    bp
seg000:5C95                 mov     bp, sp
seg000:5C97                 mov     byte ptr ds:regs_x_ax+1, 8
seg000:5C9C                 mov     al, [bp+arg_0]
seg000:5C9F                 mov     byte ptr ds:regs_x_dx, al
seg000:5CA2                 mov     ax, offset segregs_es
seg000:5CA5                 push    ax
seg000:5CA6                 mov     ax, offset regs_x_ax
seg000:5CA9                 push    ax
seg000:5CAA                 push    ax
seg000:5CAB                 call    DiskIo
seg000:5CAE                 mov     sp, bp
seg000:5CB0                 cmp     byte ptr ds:regs_x_dx, 0
seg000:5CB5                 jz      short gdprm_1
seg000:5CB7                 mov     al, ds:regs_x_cflag
seg000:5CBA                 and     al, 1
seg000:5CBC                 cmp     al, 1
seg000:5CBE                 jnz     short gdprm_2
seg000:5CC0
seg000:5CC0 gdprm_1:                                ; CODE XREF: get_drive_parameters+21j
seg000:5CC0                 push    ds:error_1_seg
seg000:5CC4                 push    ds:error_1_off
seg000:5CC8                 call    display
seg000:5CCB                 pop     bx
seg000:5CCC                 pop     bx
seg000:5CCD                 sub     al, al
seg000:5CCF                 jmp     short gdprm_4
seg000:5CD1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5CD1
seg000:5CD1 gdprm_2:                                ; CODE XREF: get_drive_parameters+2Aj
seg000:5CD1                 mov     al, byte ptr ds:regs_x_dx
seg000:5CD4                 mov     ds:number_of_drives, al
seg000:5CD7                 cmp     al, 8
seg000:5CD9                 jbe     short gdprm_3
seg000:5CDB                 mov     ds:number_of_drives, 8
seg000:5CE0
seg000:5CE0 gdprm_3:                                ; CODE XREF: get_drive_parameters+45j
seg000:5CE0                 mov     al, 1
seg000:5CE2
seg000:5CE2 gdprm_4:                                ; CODE XREF: get_drive_parameters+3Bj
seg000:5CE2                 mov     sp, bp
seg000:5CE4                 pop     bp
seg000:5CE5                 retn
seg000:5CE5 get_drive_parameters endp
seg000:5CE5
seg000:5CE6
seg000:5CE6 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5CE6
seg000:5CE6 ; Attributes: bp-based frame
seg000:5CE6
seg000:5CE6 read_boot_record proc near              ; CODE XREF: main+171p
seg000:5CE6                                         ; init_partition_tables+2Dp ...
seg000:5CE6
seg000:5CE6 rbs_buffer      = word ptr -4
seg000:5CE6 rbs_segment     = word ptr -2
seg000:5CE6 rbs_cylinder    = word ptr  4
seg000:5CE6 rbs_disk        = byte ptr  6
seg000:5CE6 rbs_head        = byte ptr  8
seg000:5CE6 rbs_sector      = byte ptr  0Ah
seg000:5CE6
seg000:5CE6                 push    bp
seg000:5CE7                 mov     bp, sp
seg000:5CE9                 sub     sp, 4
seg000:5CEC                 mov     [bp+rbs_buffer], offset boot_record
seg000:5CF1                 mov     [bp+rbs_segment], ds
seg000:5CF4                 mov     byte ptr ds:regs_x_ax+1, 2
seg000:5CF9                 mov     byte ptr ds:regs_x_ax, 1
seg000:5CFE                 mov     al, [bp+rbs_head]
seg000:5D01                 mov     byte ptr ds:regs_x_dx+1, al
seg000:5D04                 mov     al, [bp+rbs_sector]
seg000:5D07                 mov     byte ptr ds:regs_x_cx, al
seg000:5D0A                 mov     al, [bp+rbs_disk]
seg000:5D0D                 add     al, 80h
seg000:5D0F                 mov     byte ptr ds:regs_x_dx, al
seg000:5D12                 cmp     [bp+rbs_cylinder], 255
seg000:5D17                 jbe     short read_bs_1
seg000:5D19                 mov     ax, [bp+rbs_cylinder]
seg000:5D1C                 shr     ax, 1
seg000:5D1E                 shr     ax, 1
seg000:5D20                 and     al, 0C0h
seg000:5D22                 or      byte ptr ds:regs_x_cx, al
seg000:5D26
seg000:5D26 read_bs_1:                              ; CODE XREF: read_boot_record+31j
seg000:5D26                 mov     al, byte ptr [bp+rbs_cylinder]
seg000:5D29                 mov     byte ptr ds:regs_x_cx+1, al
seg000:5D2C                 mov     ax, [bp+rbs_buffer]
seg000:5D2F                 mov     ds:regs_x_bx, ax
seg000:5D32                 mov     ax, [bp+rbs_segment]
seg000:5D35                 mov     ds:segregs_es, ax
seg000:5D38                 mov     ax, offset segregs_es
seg000:5D3B                 push    ax
seg000:5D3C                 mov     ax, offset regs_x_ax
seg000:5D3F                 push    ax
seg000:5D40                 push    ax
seg000:5D41                 call    DiskIo
seg000:5D44                 add     sp, 6
seg000:5D47                 mov     al, ds:regs_x_cflag
seg000:5D4A                 and     al, 1
seg000:5D4C                 cmp     al, 1
seg000:5D4E                 jz      short read_bs_2
seg000:5D50                 mov     al, 1
seg000:5D52                 jmp     short read_bs_3
seg000:5D54 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5D54
seg000:5D54 read_bs_2:                              ; CODE XREF: read_boot_record+68j
seg000:5D54                 mov     bl, [bp+rbs_disk]
seg000:5D57                 sub     bh, bh
seg000:5D59                 mov     ds:good_disk[bx], bh
seg000:5D5D                 mov     ax, 79
seg000:5D60                 push    ax
seg000:5D61                 mov     ax, 24
seg000:5D64                 push    ax
seg000:5D65                 sub     ax, ax
seg000:5D67                 push    ax
seg000:5D68                 push    ax
seg000:5D69                 call    clear_screen
seg000:5D6C                 sub     al, al
seg000:5D6E
seg000:5D6E read_bs_3:                              ; CODE XREF: read_boot_record+6Cj
seg000:5D6E                 mov     sp, bp
seg000:5D70                 pop     bp
seg000:5D71                 retn
seg000:5D71 read_boot_record endp
seg000:5D71
seg000:5D72
seg000:5D72 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5D72
seg000:5D72 ; Attributes: bp-based frame
seg000:5D72
seg000:5D72 DiskIo          proc near               ; CODE XREF: write_boot_record+59p
seg000:5D72                                         ; verify_tracks+1EAp ...
seg000:5D72
seg000:5D72 arg_0           = word ptr  4
seg000:5D72 arg_2           = word ptr  6
seg000:5D72 arg_4           = word ptr  8
seg000:5D72
seg000:5D72                 push    bp
seg000:5D73                 mov     bp, sp
seg000:5D75                 push    [bp+arg_4]
seg000:5D78                 push    [bp+arg_2]
seg000:5D7B                 push    [bp+arg_0]
seg000:5D7E                 mov     ax, 13h
seg000:5D81                 push    ax
seg000:5D82                 call    int86x
seg000:5D85                 mov     sp, bp
seg000:5D87                 pop     bp
seg000:5D88                 retn
seg000:5D88 DiskIo          endp
seg000:5D88
seg000:5D88 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5D89                 align 2
seg000:5D8A
seg000:5D8A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5D8A
seg000:5D8A ; Attributes: bp-based frame
seg000:5D8A
seg000:5D8A write_info_to_disk proc near            ; CODE XREF: main+BBp
seg000:5D8A                                         ; main:_main_32p ...
seg000:5D8A
seg000:5D8A witd_j          = byte ptr -0Eh
seg000:5D8A witd_i          = byte ptr -0Ch
seg000:5D8A witd_extd_location= word ptr -0Ah
seg000:5D8A witd_extd_index = byte ptr -8
seg000:5D8A witd_temp       = byte ptr -6
seg000:5D8A witd_changed_flag= byte ptr -4
seg000:5D8A witd_temp_disk  = byte ptr -2
seg000:5D8A
seg000:5D8A                 push    bp
seg000:5D8B                 mov     bp, sp
seg000:5D8D                 sub     sp, 14
seg000:5D90                 push    si
seg000:5D91                 mov     [bp+witd_temp], 0FFh
seg000:5D95                 mov     al, ds:cur_disk
seg000:5D98                 mov     [bp+witd_temp_disk], al
seg000:5D9B                 mov     [bp+witd_j], 0
seg000:5D9F                 jmp     witd_16
seg000:5DA2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5DA2
seg000:5DA2 witd_1:                                 ; CODE XREF: write_info_to_disk+3Cj
seg000:5DA2                 inc     [bp+witd_i]
seg000:5DA5
seg000:5DA5 witd_2:                                 ; CODE XREF: write_info_to_disk+1B1j
seg000:5DA5                 cmp     [bp+witd_i], 4
seg000:5DA9                 jge     short witd_3
seg000:5DAB                 mov     al, [bp+witd_i]
seg000:5DAE                 cbw
seg000:5DAF                 mov     cl, [bp+witd_j]
seg000:5DB2                 sub     ch, ch
seg000:5DB4                 shl     cx, 1
seg000:5DB6                 shl     cx, 1
seg000:5DB8                 add     ax, cx
seg000:5DBA                 mov     cx, 46
seg000:5DBD                 imul    cx
seg000:5DBF                 mov     bx, ax
seg000:5DC1                 cmp     ds:part_table_changed[bx], 0
seg000:5DC6                 jz      short witd_1
seg000:5DC8                 mov     al, [bp+witd_j]
seg000:5DCB                 push    ax
seg000:5DCC                 call    write_master_boot_to_disk
seg000:5DCF                 pop     bx
seg000:5DD0
seg000:5DD0 witd_3:                                 ; CODE XREF: write_info_to_disk+1Fj
seg000:5DD0                 mov     al, 5
seg000:5DD2                 push    ax
seg000:5DD3                 call    find_partition_type
seg000:5DD6                 pop     bx
seg000:5DD7                 or      al, al
seg000:5DD9                 jnz     short witd_4
seg000:5DDB                 jmp     witd_15
seg000:5DDE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5DDE
seg000:5DDE witd_4:                                 ; CODE XREF: write_info_to_disk+4Fj
seg000:5DDE                 sub     al, al
seg000:5DE0                 mov     [bp+witd_changed_flag], al
seg000:5DE3                 mov     [bp+witd_i], al
seg000:5DE6                 jmp     short witd_6
seg000:5DE8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5DE8
seg000:5DE8 witd_5:                                 ; CODE XREF: write_info_to_disk+80j
seg000:5DE8                 inc     [bp+witd_i]
seg000:5DEB
seg000:5DEB witd_6:                                 ; CODE XREF: write_info_to_disk+5Cj
seg000:5DEB                 cmp     [bp+witd_i], 23
seg000:5DEF                 jge     short witd_7
seg000:5DF1                 mov     al, [bp+witd_i]
seg000:5DF4                 cbw
seg000:5DF5                 mov     cx, ax
seg000:5DF7                 mov     al, 24
seg000:5DF9                 mul     [bp+witd_j]
seg000:5DFC                 add     ax, cx
seg000:5DFE                 mov     cx, 46
seg000:5E01                 imul    cx
seg000:5E03                 mov     bx, ax
seg000:5E05                 cmp     ds:ext_table_changed[bx], 0
seg000:5E0A                 jz      short witd_5
seg000:5E0C                 mov     [bp+witd_changed_flag], 1
seg000:5E10
seg000:5E10 witd_7:                                 ; CODE XREF: write_info_to_disk+65j
seg000:5E10                 cmp     [bp+witd_changed_flag], 0
seg000:5E14                 jnz     short witd_8
seg000:5E16                 jmp     witd_15
seg000:5E19 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5E19
seg000:5E19 witd_8:                                 ; CODE XREF: write_info_to_disk+8Aj
seg000:5E19                 mov     al, 23
seg000:5E1B                 push    ax
seg000:5E1C                 call    sort_ext_table
seg000:5E1F                 pop     bx
seg000:5E20                 mov     [bp+witd_i], 0
seg000:5E24
seg000:5E24 witd_9:                                 ; CODE XREF: write_info_to_disk+D0j
seg000:5E24                 mov     al, 24
seg000:5E26                 mul     [bp+witd_j]
seg000:5E29                 mov     cx, ax
seg000:5E2B                 mov     al, [bp+witd_i]
seg000:5E2E                 cbw
seg000:5E2F                 mov     bx, ax
seg000:5E31                 mov     al, ds:sort[bx]
seg000:5E35                 cbw
seg000:5E36                 add     ax, cx
seg000:5E38                 mov     cx, 46
seg000:5E3B                 imul    cx
seg000:5E3D                 mov     bx, ax
seg000:5E3F                 cmp     ds:ext_table_sys_id[bx], 0
seg000:5E44                 jz      short witd_10
seg000:5E46                 mov     al, [bp+witd_j]
seg000:5E49                 push    ax
seg000:5E4A                 mov     al, [bp+witd_i]
seg000:5E4D                 push    ax
seg000:5E4E                 call    write_ext_boot_to_disk
seg000:5E51                 pop     bx
seg000:5E52                 pop     bx
seg000:5E53
seg000:5E53 witd_10:                                ; CODE XREF: write_info_to_disk+BAj
seg000:5E53                 inc     [bp+witd_i]
seg000:5E56                 cmp     [bp+witd_i], 23
seg000:5E5A                 jl      short witd_9
seg000:5E5C                 mov     al, 5
seg000:5E5E                 push    ax
seg000:5E5F                 call    find_partition_location
seg000:5E62                 pop     bx
seg000:5E63                 mov     [bp+witd_extd_index], al
seg000:5E66                 cbw
seg000:5E67                 mov     cl, [bp+witd_j]
seg000:5E6A                 sub     ch, ch
seg000:5E6C                 shl     cx, 1
seg000:5E6E                 shl     cx, 1
seg000:5E70                 add     ax, cx
seg000:5E72                 mov     cx, 46
seg000:5E75                 imul    cx
seg000:5E77                 mov     bx, ax
seg000:5E79                 mov     ax, ds:part_table_start_cyl[bx]
seg000:5E7D                 mov     [bp+witd_extd_location], ax
seg000:5E80                 mov     [bp+witd_i], 0
seg000:5E84                 jmp     short witd_12
seg000:5E86 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5E86
seg000:5E86 witd_11:                                ; CODE XREF: write_info_to_disk+129j
seg000:5E86                 inc     [bp+witd_i]
seg000:5E89
seg000:5E89 witd_12:                                ; CODE XREF: write_info_to_disk+FAj
seg000:5E89                 cmp     [bp+witd_i], 23
seg000:5E8D                 jge     short witd_13
seg000:5E8F                 mov     al, 24
seg000:5E91                 mul     [bp+witd_j]
seg000:5E94                 mov     cx, ax
seg000:5E96                 mov     al, [bp+witd_i]
seg000:5E99                 cbw
seg000:5E9A                 mov     bx, ax
seg000:5E9C                 mov     al, ds:sort[bx]
seg000:5EA0                 mov     dx, ax
seg000:5EA2                 cbw
seg000:5EA3                 add     ax, cx
seg000:5EA5                 mov     cx, 46
seg000:5EA8                 mov     bx, dx
seg000:5EAA                 imul    cx
seg000:5EAC                 mov     si, ax
seg000:5EAE                 cmp     ds:ext_table_sys_id[si], 0
seg000:5EB3                 jz      short witd_11
seg000:5EB5                 mov     [bp+witd_temp], bl
seg000:5EB8
seg000:5EB8 witd_13:                                ; CODE XREF: write_info_to_disk+103j
seg000:5EB8                 cmp     [bp+witd_temp], 0FFh
seg000:5EBC                 jz      short witd_14
seg000:5EBE                 mov     al, [bp+witd_temp]
seg000:5EC1                 cbw
seg000:5EC2                 mov     cx, ax
seg000:5EC4                 mov     al, 24
seg000:5EC6                 mul     [bp+witd_j]
seg000:5EC9                 add     ax, cx
seg000:5ECB                 mov     cx, 46
seg000:5ECE                 imul    cx
seg000:5ED0                 mov     bx, ax
seg000:5ED2                 mov     ax, [bp+witd_extd_location]
seg000:5ED5                 cmp     ds:ext_table_start_cyl[bx], ax
seg000:5ED9                 jz      short witd_15
seg000:5EDB
seg000:5EDB witd_14:                                ; CODE XREF: write_info_to_disk+132j
seg000:5EDB                 mov     al, [bp+witd_j]
seg000:5EDE                 sub     ah, ah
seg000:5EE0                 mov     cx, 1104
seg000:5EE3                 mov     bx, ax
seg000:5EE5                 imul    cx
seg000:5EE7                 mov     si, ax
seg000:5EE9                 mov     ds:ep0_lp23_sys_id[si], 0
seg000:5EEE                 mov     al, [bp+witd_extd_index]
seg000:5EF1                 cbw
seg000:5EF2                 shl     bx, 1
seg000:5EF4                 shl     bx, 1
seg000:5EF6                 add     ax, bx
seg000:5EF8                 mov     cx, 46
seg000:5EFB                 imul    cx
seg000:5EFD                 mov     bx, ax
seg000:5EFF                 mov     ax, ds:part_table_start_cyl[bx]
seg000:5F03                 mov     ds:ep0_lp23_start_cyl[si], ax
seg000:5F07                 mov     ds:ep0_lp23_start_head[si], 0
seg000:5F0C                 mov     ds:ep0_lp23_start_sector[si], 1
seg000:5F11                 mov     al, [bp+witd_j]
seg000:5F14                 push    ax
seg000:5F15                 mov     al, 23
seg000:5F17                 push    ax
seg000:5F18                 call    write_ext_boot_to_disk
seg000:5F1B                 pop     bx
seg000:5F1C                 pop     bx
seg000:5F1D
seg000:5F1D witd_15:                                ; CODE XREF: write_info_to_disk+51j
seg000:5F1D                                         ; write_info_to_disk+8Cj ...
seg000:5F1D                 inc     [bp+witd_j]
seg000:5F20
seg000:5F20 witd_16:                                ; CODE XREF: write_info_to_disk+15j
seg000:5F20                 mov     al, ds:number_of_drives
seg000:5F23                 cmp     [bp+witd_j], al
seg000:5F26                 jnb     short witd_17
seg000:5F28                 mov     al, [bp+witd_j]
seg000:5F2B                 mov     ds:cur_disk, al
seg000:5F2E                 mov     bl, al
seg000:5F30                 sub     bh, bh
seg000:5F32                 cmp     ds:good_disk[bx], bh
seg000:5F36                 jz      short witd_15
seg000:5F38                 mov     [bp+witd_i], bh
seg000:5F3B                 jmp     witd_2
seg000:5F3E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5F3E
seg000:5F3E witd_17:                                ; CODE XREF: write_info_to_disk+19Cj
seg000:5F3E                 mov     al, [bp+witd_temp_disk]
seg000:5F41                 mov     ds:cur_disk, al
seg000:5F44                 pop     si
seg000:5F45                 mov     sp, bp
seg000:5F47                 pop     bp
seg000:5F48                 retn
seg000:5F48 write_info_to_disk endp
seg000:5F48
seg000:5F49
seg000:5F49 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:5F49
seg000:5F49 ; Attributes: bp-based frame
seg000:5F49
seg000:5F49 write_master_boot_to_disk proc near     ; CODE XREF: write_info_to_disk+42p
seg000:5F49
seg000:5F49 wmbr_long_temp  = word ptr -0Eh
seg000:5F49 wmbr_j          = word ptr -0Ah
seg000:5F49 wmbr_i          = byte ptr -8
seg000:5F49 wmbr_index      = word ptr -6
seg000:5F49 wmbr_disk       = byte ptr  4
seg000:5F49
seg000:5F49                 push    bp
seg000:5F4A                 mov     bp, sp
seg000:5F4C                 sub     sp, 14
seg000:5F4F                 push    di
seg000:5F50                 push    si
seg000:5F51                 mov     [bp+wmbr_j], 0
seg000:5F56
seg000:5F56 wmbr_0:                                 ; CODE XREF: write_master_boot_to_disk+1Dj
seg000:5F56                 mov     bx, [bp+wmbr_j]
seg000:5F59                 mov     ds:boot_record[bx], 0
seg000:5F5E                 inc     [bp+wmbr_j]
seg000:5F61                 cmp     [bp+wmbr_j], 512
seg000:5F66                 jb      short wmbr_0
seg000:5F68                 mov     [bp+wmbr_j], 0
seg000:5F6D
seg000:5F6D wmbr_1:                                 ; CODE XREF: write_master_boot_to_disk+42j
seg000:5F6D                 mov     cl, 9
seg000:5F6F                 mov     al, [bp+wmbr_disk]
seg000:5F72                 sub     ah, ah
seg000:5F74                 mov     si, ax
seg000:5F76                 shl     si, cl
seg000:5F78                 mov     bx, [bp+wmbr_j]
seg000:5F7B                 mov     al, ds:master_boot_record[bx+si]
seg000:5F7F                 mov     ds:boot_record[bx], al
seg000:5F83                 inc     [bp+wmbr_j]
seg000:5F86                 cmp     [bp+wmbr_j], 512
seg000:5F8B                 jb      short wmbr_1
seg000:5F8D                 mov     [bp+wmbr_i], ah
seg000:5F90
seg000:5F90 wmbr_2:                                 ; CODE XREF: write_master_boot_to_disk+144j
seg000:5F90                 mov     cl, 4
seg000:5F92                 mov     al, [bp+wmbr_i]
seg000:5F95                 sub     ah, ah
seg000:5F97                 mov     dx, ax
seg000:5F99                 shl     ax, cl
seg000:5F9B                 mov     [bp+wmbr_index], ax
seg000:5F9E                 mov     al, [bp+wmbr_disk]
seg000:5FA1                 sub     ah, ah
seg000:5FA3                 shl     ax, 1
seg000:5FA5                 shl     ax, 1
seg000:5FA7                 add     ax, dx
seg000:5FA9                 mov     cx, 46
seg000:5FAC                 imul    cx
seg000:5FAE                 mov     bx, ax
seg000:5FB0                 cmp     ds:part_table_changed[bx], 0
seg000:5FB5                 jnz     short wmbr_3
seg000:5FB7                 jmp     wmbr_4
seg000:5FBA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:5FBA
seg000:5FBA wmbr_3:                                 ; CODE XREF: write_master_boot_to_disk+6Cj
seg000:5FBA                 mov     al, ds:part_table_boot_ind[bx]
seg000:5FBE                 mov     si, [bp+wmbr_index]
seg000:5FC1                 mov     ds:(boot_record+1BEh)[si], al
seg000:5FC5                 mov     al, ds:part_table_start_head[bx]
seg000:5FC9                 mov     ds:(boot_record+1BFh)[si], al
seg000:5FCD                 mov     ax, ds:part_table_start_cyl[bx]
seg000:5FD1                 mov     cx, ax
seg000:5FD3                 shr     ax, 1
seg000:5FD5                 shr     ax, 1
seg000:5FD7                 mov     dx, ax
seg000:5FD9                 xor     al, ds:part_table_start_sector[bx]
seg000:5FDD                 and     al, 3Fh
seg000:5FDF                 xor     dl, al
seg000:5FE1                 mov     ds:(boot_record+1C0h)[si], dl
seg000:5FE5                 mov     ds:(boot_record+1C1h)[si], cl
seg000:5FE9                 mov     al, ds:part_table_sys_id[bx]
seg000:5FED                 mov     ds:(boot_record+1C2h)[si], al
seg000:5FF1                 mov     al, ds:part_table_end_head[bx]
seg000:5FF5                 mov     ds:(boot_record+1C3h)[si], al
seg000:5FF9                 mov     ax, ds:part_table_end_cyl[bx]
seg000:5FFD                 mov     cx, ax
seg000:5FFF                 shr     ax, 1
seg000:6001                 shr     ax, 1
seg000:6003                 mov     dx, ax
seg000:6005                 xor     al, ds:part_table_end_sector[bx]
seg000:6009                 and     al, 3Fh
seg000:600B                 xor     dl, al
seg000:600D                 mov     ds:(boot_record+1C4h)[si], dl
seg000:6011                 mov     ds:(boot_record+1C5h)[si], cl
seg000:6015                 mov     ax, ds:part_table_rel_sec_lw[bx]
seg000:6019                 mov     dx, ds:part_table_rel_sec_hw[bx]
seg000:601D                 mov     cx, ax
seg000:601F                 mov     di, dx
seg000:6021                 mov     dl, dh
seg000:6023                 sub     dh, dh
seg000:6025                 mov     ds:(boot_record+1C9h)[si], dl
seg000:6029                 mov     si, di
seg000:602B                 mov     ax, si
seg000:602D                 mov     di, [bp+wmbr_index]
seg000:6030                 mov     ds:(boot_record+1C8h)[di], al
seg000:6034                 mov     ax, cx
seg000:6036                 mov     dx, si
seg000:6038                 mov     cl, 8
seg000:603A                 mov     si, bx
seg000:603C                 mov     [bp+wmbr_long_temp], ax
seg000:603F                 call    shr32
seg000:6042                 mov     bx, [bp+wmbr_index]
seg000:6045                 mov     ds:(boot_record+1C7h)[bx], al
seg000:6049                 mov     al, byte ptr [bp+wmbr_long_temp]
seg000:604C                 mov     ds:(boot_record+1C6h)[bx], al
seg000:6050                 mov     ax, ds:part_table_num_sec_lw[si]
seg000:6054                 mov     dx, ds:part_table_num_sec_hw[si]
seg000:6058                 mov     cx, ax
seg000:605A                 mov     si, dx
seg000:605C                 mov     dl, dh
seg000:605E                 sub     dh, dh
seg000:6060                 mov     ds:(boot_record+1CDh)[bx], dl
seg000:6064                 mov     di, si
seg000:6066                 mov     ax, di
seg000:6068                 mov     ds:(boot_record+1CCh)[bx], al
seg000:606C                 mov     ax, cx
seg000:606E                 mov     dx, si
seg000:6070                 mov     cl, 8
seg000:6072                 mov     si, ax
seg000:6074                 call    shr32
seg000:6077                 mov     bx, [bp+wmbr_index]
seg000:607A                 mov     ds:(boot_record+1CBh)[bx], al
seg000:607E                 mov     ax, si
seg000:6080                 mov     ds:(boot_record+1CAh)[bx], al
seg000:6084
seg000:6084 wmbr_4:                                 ; CODE XREF: write_master_boot_to_disk+6Ej
seg000:6084                 inc     [bp+wmbr_i]
seg000:6087                 cmp     [bp+wmbr_i], 4
seg000:608B                 jnb     short wmbr_5
seg000:608D                 jmp     wmbr_2
seg000:6090 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6090
seg000:6090 wmbr_5:                                 ; CODE XREF: write_master_boot_to_disk+142j
seg000:6090                 mov     ds:boot_record+1FEh, 55h
seg000:6095                 mov     ds:boot_record+1FFh, 0AAh
seg000:609A                 mov     al, [bp+wmbr_disk]
seg000:609D                 push    ax
seg000:609E                 sub     ax, ax
seg000:60A0                 push    ax
seg000:60A1                 call    write_boot_record
seg000:60A4                 pop     bx
seg000:60A5                 pop     bx
seg000:60A6                 pop     si
seg000:60A7                 pop     di
seg000:60A8                 mov     sp, bp
seg000:60AA                 pop     bp
seg000:60AB                 retn
seg000:60AB write_master_boot_to_disk endp
seg000:60AB
seg000:60AC
seg000:60AC ; --------------- S U B R O U T I N E ---------------------------------------
seg000:60AC
seg000:60AC ; Attributes: bp-based frame
seg000:60AC
seg000:60AC write_ext_boot_to_disk proc near        ; CODE XREF: write_info_to_disk+C4p
seg000:60AC                                         ; write_info_to_disk+18Ep
seg000:60AC
seg000:60AC webr_temp3      = word ptr -22h
seg000:60AC webr_multiplicand_lw= word ptr -1Eh
seg000:60AC webr_multiplicand_hw= word ptr -1Ch
seg000:60AC webr_multiplier_lw= word ptr -1Ah
seg000:60AC webr_multiplier_hw= word ptr -18h
seg000:60AC webr_temp2      = word ptr -16h
seg000:60AC webr_temp1      = word ptr -14h
seg000:60AC webr_j          = word ptr -0Eh
seg000:60AC webr_i          = byte ptr -0Ch
seg000:60AC webr_location   = byte ptr -0Ah
seg000:60AC webr_next_drive = byte ptr -8
seg000:60AC webr_longtemp   = word ptr -6
seg000:60AC webr_longtemp_2 = word ptr -4
seg000:60AC webr_pointer    = byte ptr -2
seg000:60AC webr_entry      = byte ptr  4
seg000:60AC webr_disk       = byte ptr  6
seg000:60AC
seg000:60AC                 push    bp
seg000:60AD                 mov     bp, sp
seg000:60AF                 sub     sp, 34
seg000:60B2                 push    di
seg000:60B3                 push    si
seg000:60B4                 mov     [bp+webr_j], 0
seg000:60B9
seg000:60B9 webr_1:                                 ; CODE XREF: write_ext_boot_to_disk+1Dj
seg000:60B9                 mov     bx, [bp+webr_j]
seg000:60BC                 mov     ds:boot_record[bx], 0
seg000:60C1                 inc     [bp+webr_j]
seg000:60C4                 cmp     [bp+webr_j], 512
seg000:60C9                 jb      short webr_1
seg000:60CB                 cmp     [bp+webr_entry], 23
seg000:60CF                 jnz     short webr_2
seg000:60D1                 jmp     webr_4
seg000:60D4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:60D4
seg000:60D4 webr_2:                                 ; CODE XREF: write_ext_boot_to_disk+23j
seg000:60D4                 mov     al, 24
seg000:60D6                 mul     [bp+webr_disk]
seg000:60D9                 mov     cx, ax
seg000:60DB                 mov     al, [bp+webr_entry]
seg000:60DE                 cbw
seg000:60DF                 mov     bx, ax
seg000:60E1                 mov     al, ds:sort[bx]
seg000:60E5                 cbw
seg000:60E6                 add     ax, cx
seg000:60E8                 mov     cx, 46
seg000:60EB                 imul    cx
seg000:60ED                 mov     bx, ax
seg000:60EF                 cmp     ds:ext_table_sys_id[bx], 0
seg000:60F4                 jnz     short webr_3
seg000:60F6                 jmp     webr_4
seg000:60F9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:60F9
seg000:60F9 webr_3:                                 ; CODE XREF: write_ext_boot_to_disk+48j
seg000:60F9                 mov     al, ds:ext_table_boot_ind[bx]
seg000:60FD                 mov     ds:boot_record+1BEh, al
seg000:6100                 mov     al, ds:ext_table_start_head[bx]
seg000:6104                 mov     ds:boot_record+1BFh, al
seg000:6107                 mov     ax, ds:ext_table_start_cyl[bx]
seg000:610B                 mov     cx, ax
seg000:610D                 shr     ax, 1
seg000:610F                 shr     ax, 1
seg000:6111                 mov     dx, ax
seg000:6113                 xor     al, ds:ext_table_start_sector[bx]
seg000:6117                 and     al, 3Fh
seg000:6119                 xor     dl, al
seg000:611B                 mov     ds:boot_record+1C0h, dl
seg000:611F                 mov     ds:boot_record+1C1h, cl
seg000:6123                 mov     al, ds:ext_table_sys_id[bx]
seg000:6127                 mov     ds:boot_record+1C2h, al
seg000:612A                 mov     al, ds:ext_table_end_head[bx]
seg000:612E                 mov     ds:boot_record+1C3h, al
seg000:6131                 mov     ax, ds:ext_table_end_cyl[bx]
seg000:6135                 mov     cx, ax
seg000:6137                 shr     ax, 1
seg000:6139                 shr     ax, 1
seg000:613B                 mov     dx, ax
seg000:613D                 xor     al, ds:ext_table_end_sector[bx]
seg000:6141                 and     al, 3Fh
seg000:6143                 xor     dl, al
seg000:6145                 mov     ds:boot_record+1C4h, dl
seg000:6149                 mov     ds:boot_record+1C5h, cl
seg000:614D                 mov     ax, ds:ext_table_rel_sec_lw[bx]
seg000:6151                 mov     dx, ds:ext_table_rel_sec_hw[bx]
seg000:6155                 mov     cx, ax
seg000:6157                 mov     si, dx
seg000:6159                 mov     dl, dh
seg000:615B                 sub     dh, dh
seg000:615D                 mov     ds:boot_record+1C9h, dl
seg000:6161                 mov     di, si
seg000:6163                 mov     ax, si
seg000:6165                 mov     ds:boot_record+1C8h, al
seg000:6168                 mov     ax, cx
seg000:616A                 mov     dx, di
seg000:616C                 mov     cl, 8
seg000:616E                 mov     si, bx
seg000:6170                 mov     [bp+webr_temp1], ax
seg000:6173                 call    shr32
seg000:6176                 mov     ds:boot_record+1C7h, al
seg000:6179                 mov     al, byte ptr [bp+webr_temp1]
seg000:617C                 mov     ds:boot_record+1C6h, al
seg000:617F                 mov     ax, ds:ext_table_num_sec_lw[si]
seg000:6183                 mov     dx, ds:ext_table_num_sec_hw[si]
seg000:6187                 mov     [bp+webr_longtemp], ax
seg000:618A                 mov     [bp+webr_longtemp_2], dx
seg000:618D                 mov     cx, ax
seg000:618F                 mov     bx, dx
seg000:6191                 mov     dl, dh
seg000:6193                 sub     dh, dh
seg000:6195                 mov     ds:boot_record+1CDh, dl
seg000:6199                 mov     si, bx
seg000:619B                 mov     ds:boot_record+1CCh, bl
seg000:619F                 mov     dx, bx
seg000:61A1                 mov     cl, 8
seg000:61A3                 mov     di, ax
seg000:61A5                 call    shr32
seg000:61A8                 mov     ds:boot_record+1CBh, al
seg000:61AB                 mov     ax, di
seg000:61AD                 mov     ds:boot_record+1CAh, al
seg000:61B0
seg000:61B0 webr_4:                                 ; CODE XREF: write_ext_boot_to_disk+25j
seg000:61B0                                         ; write_ext_boot_to_disk+4Aj
seg000:61B0                 cmp     [bp+webr_entry], 22
seg000:61B4                 jnz     short webr_5
seg000:61B6                 jmp     webr_11
seg000:61B9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:61B9
seg000:61B9 webr_5:                                 ; CODE XREF: write_ext_boot_to_disk+108j
seg000:61B9                 mov     al, [bp+webr_entry]
seg000:61BC                 inc     al
seg000:61BE                 mov     [bp+webr_pointer], al
seg000:61C1                 cmp     [bp+webr_entry], 23
seg000:61C5                 jnz     short webr_6
seg000:61C7                 mov     [bp+webr_pointer], 0
seg000:61CB
seg000:61CB webr_6:                                 ; CODE XREF: write_ext_boot_to_disk+119j
seg000:61CB                 mov     al, [bp+webr_pointer]
seg000:61CE                 mov     [bp+webr_i], al
seg000:61D1                 jmp     short webr_8
seg000:61D3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:61D3
seg000:61D3 webr_7:                                 ; CODE XREF: write_ext_boot_to_disk+158j
seg000:61D3                 inc     [bp+webr_i]
seg000:61D6
seg000:61D6 webr_8:                                 ; CODE XREF: write_ext_boot_to_disk+125j
seg000:61D6                 cmp     [bp+webr_i], 23
seg000:61DA                 jge     short webr_9
seg000:61DC                 mov     [bp+webr_next_drive], 0FFh
seg000:61E0                 mov     al, 24
seg000:61E2                 mul     [bp+webr_disk]
seg000:61E5                 mov     cx, ax
seg000:61E7                 mov     al, [bp+webr_i]
seg000:61EA                 cbw
seg000:61EB                 mov     bx, ax
seg000:61ED                 mov     al, ds:sort[bx]
seg000:61F1                 mov     dx, ax
seg000:61F3                 cbw
seg000:61F4                 add     ax, cx
seg000:61F6                 mov     cx, 46
seg000:61F9                 mov     bx, dx
seg000:61FB                 imul    cx
seg000:61FD                 mov     si, ax
seg000:61FF                 cmp     ds:ext_table_sys_id[si], 0
seg000:6204                 jz      short webr_7
seg000:6206                 mov     [bp+webr_next_drive], bl
seg000:6209
seg000:6209 webr_9:                                 ; CODE XREF: write_ext_boot_to_disk+12Ej
seg000:6209                 cmp     [bp+webr_next_drive], 0FFh
seg000:620D                 jnz     short webr_10
seg000:620F                 jmp     webr_11
seg000:6212 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6212
seg000:6212 webr_10:                                ; CODE XREF: write_ext_boot_to_disk+161j
seg000:6212                 sub     al, al
seg000:6214                 mov     ds:boot_record+1CEh, al
seg000:6217                 mov     ds:boot_record+1CFh, al
seg000:621A                 mov     al, [bp+webr_next_drive]
seg000:621D                 cbw
seg000:621E                 mov     cx, 24
seg000:6221                 mov     dx, ax
seg000:6223                 mov     al, [bp+webr_disk]
seg000:6226                 sub     ah, ah
seg000:6228                 mov     bx, dx
seg000:622A                 mov     si, 46
seg000:622D                 mov     di, ax
seg000:622F                 imul    cx
seg000:6231                 add     ax, bx
seg000:6233                 imul    si
seg000:6235                 mov     bx, ax
seg000:6237                 mov     ax, ds:ext_table_start_cyl[bx]
seg000:623B                 mov     cx, ax
seg000:623D                 shr     ax, 1
seg000:623F                 shr     ax, 1
seg000:6241                 and     al, 0C1h
seg000:6243                 or      al, 1
seg000:6245                 mov     ds:boot_record+1D0h, al
seg000:6248                 mov     ax, di
seg000:624A                 shl     di, 1
seg000:624C                 mov     dl, byte ptr ds:max_head[di]
seg000:6250                 dec     dl
seg000:6252                 mov     ds:boot_record+1D3h, dl
seg000:6256                 mov     dx, ds:ext_table_end_cyl[bx]
seg000:625A                 mov     si, dx
seg000:625C                 shr     dx, 1
seg000:625E                 shr     dx, 1
seg000:6260                 mov     [bp+webr_temp1], bx
seg000:6263                 mov     bx, ax
seg000:6265                 mov     [bp+webr_temp2], dx
seg000:6268                 xor     dl, ds:max_sector[bx]
seg000:626C                 and     dl, 3Fh
seg000:626F                 xor     dl, byte ptr [bp+webr_temp2]
seg000:6272                 mov     ds:boot_record+1D4h, dl
seg000:6276                 mov     ds:boot_record+1D1h, cl
seg000:627A                 mov     cx, si
seg000:627C                 mov     ds:boot_record+1D5h, cl
seg000:6280                 mov     cl, 5
seg000:6282                 mov     ds:boot_record+1D2h, cl
seg000:6286                 push    cx
seg000:6287                 mov     si, bx
seg000:6289                 call    find_partition_location
seg000:628C                 pop     bx
seg000:628D                 mov     [bp+webr_location], al
seg000:6290                 mov     ax, ds:max_head[di]
seg000:6294                 sub     dx, dx
seg000:6296                 push    dx
seg000:6297                 push    ax
seg000:6298                 mov     cl, ds:max_sector[si]
seg000:629C                 sub     ch, ch
seg000:629E                 sub     bx, bx
seg000:62A0                 push    bx
seg000:62A1                 push    cx
seg000:62A2                 mov     di, 46
seg000:62A5                 shl     si, 1
seg000:62A7                 shl     si, 1
seg000:62A9                 mov     [bp+webr_multiplier_lw], ax
seg000:62AC                 mov     [bp+webr_multiplier_hw], dx
seg000:62AF                 mov     al, [bp+webr_location]
seg000:62B2                 cbw
seg000:62B3                 add     ax, si
seg000:62B5                 imul    di
seg000:62B7                 mov     si, ax
seg000:62B9                 mov     di, [bp+webr_temp1]
seg000:62BC                 mov     ax, ds:ext_table_start_cyl[di]
seg000:62C0                 mov     dx, ax
seg000:62C2                 sub     ax, ds:part_table_start_cyl[si]
seg000:62C6                 mov     si, dx
seg000:62C8                 sub     dx, dx
seg000:62CA                 push    dx
seg000:62CB                 push    ax
seg000:62CC                 mov     di, cx
seg000:62CE                 mov     [bp+webr_multiplicand_lw], di
seg000:62D1                 mov     [bp+webr_multiplicand_hw], bx
seg000:62D4                 call    mul32
seg000:62D7                 push    dx
seg000:62D8                 push    ax
seg000:62D9                 call    mul32
seg000:62DC                 mov     cx, ax
seg000:62DE                 mov     bx, dx
seg000:62E0                 mov     dl, dh
seg000:62E2                 sub     dh, dh
seg000:62E4                 mov     ds:boot_record+1D9h, dl
seg000:62E8                 mov     di, bx
seg000:62EA                 mov     ds:boot_record+1D8h, bl
seg000:62EE                 mov     dx, di
seg000:62F0                 mov     cl, 8
seg000:62F2                 mov     [bp+webr_temp3], ax
seg000:62F5                 call    shr32
seg000:62F8                 mov     ds:boot_record+1D7h, al
seg000:62FB                 mov     al, byte ptr [bp+webr_temp3]
seg000:62FE                 mov     ds:boot_record+1D6h, al
seg000:6301                 push    [bp+webr_multiplier_hw]
seg000:6304                 push    [bp+webr_multiplier_lw]
seg000:6307                 push    [bp+webr_multiplicand_hw]
seg000:630A                 push    [bp+webr_multiplicand_lw]
seg000:630D                 mov     bx, [bp+webr_temp1]
seg000:6310                 sub     si, ds:ext_table_end_cyl[bx]
seg000:6314                 neg     si
seg000:6316                 inc     si
seg000:6317                 sub     cx, cx
seg000:6319                 push    cx
seg000:631A                 push    si
seg000:631B                 call    mul32
seg000:631E                 push    dx
seg000:631F                 push    ax
seg000:6320                 call    mul32
seg000:6323                 mov     [bp+webr_longtemp], ax
seg000:6326                 mov     [bp+webr_longtemp_2], dx
seg000:6329                 mov     dl, dh
seg000:632B                 sub     dh, dh
seg000:632D                 mov     ds:boot_record+1DDh, dl
seg000:6331                 mov     al, byte ptr [bp+webr_longtemp_2]
seg000:6334                 mov     ds:boot_record+1DCh, al
seg000:6337                 mov     ax, [bp+webr_longtemp]
seg000:633A                 mov     dx, [bp+webr_longtemp_2]
seg000:633D                 mov     cl, 8
seg000:633F                 call    shr32
seg000:6342                 mov     ds:boot_record+1DBh, al
seg000:6345                 mov     al, byte ptr [bp+webr_longtemp]
seg000:6348                 mov     ds:boot_record+1DAh, al
seg000:634B
seg000:634B webr_11:                                ; CODE XREF: write_ext_boot_to_disk+10Aj
seg000:634B                                         ; write_ext_boot_to_disk+163j
seg000:634B                 mov     ds:boot_record+1FEh, 55h
seg000:6350                 mov     ds:boot_record+1FFh, 0AAh
seg000:6355                 cmp     [bp+webr_entry], 23
seg000:6359                 jz      short webr_12
seg000:635B                 mov     al, [bp+webr_disk]
seg000:635E                 push    ax
seg000:635F                 mov     cl, 24
seg000:6361                 mul     cl
seg000:6363                 mov     cx, ax
seg000:6365                 mov     al, [bp+webr_entry]
seg000:6368                 cbw
seg000:6369                 mov     bx, ax
seg000:636B                 mov     al, ds:sort[bx]
seg000:636F                 cbw
seg000:6370                 add     ax, cx
seg000:6372                 mov     cx, 46
seg000:6375                 imul    cx
seg000:6377                 mov     bx, ax
seg000:6379                 push    ds:ext_table_start_cyl[bx]
seg000:637D                 jmp     short webr_13
seg000:637F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:637F
seg000:637F webr_12:                                ; CODE XREF: write_ext_boot_to_disk+2ADj
seg000:637F                 mov     al, [bp+webr_disk]
seg000:6382                 push    ax
seg000:6383                 sub     ah, ah
seg000:6385                 mov     cx, 1104
seg000:6388                 imul    cx
seg000:638A                 mov     bx, ax
seg000:638C                 push    ds:ep0_lp23_start_cyl[bx]
seg000:6390
seg000:6390 webr_13:                                ; CODE XREF: write_ext_boot_to_disk+2D1j
seg000:6390                 call    write_boot_record
seg000:6393                 pop     bx
seg000:6394                 pop     bx
seg000:6395                 pop     si
seg000:6396                 pop     di
seg000:6397                 mov     sp, bp
seg000:6399                 pop     bp
seg000:639A                 retn
seg000:639A write_ext_boot_to_disk endp
seg000:639A
seg000:639A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:639B                 align 2
seg000:639C
seg000:639C ; --------------- S U B R O U T I N E ---------------------------------------
seg000:639C
seg000:639C ; Attributes: bp-based frame
seg000:639C
seg000:639C preload_messages proc near              ; CODE XREF: main+1Ap
seg000:639C
seg000:639C var_2           = byte ptr -2
seg000:639C
seg000:639C                 push    bp
seg000:639D                 mov     bp, sp
seg000:639F                 sub     sp, 2
seg000:63A2                 mov     [bp+var_2], 1
seg000:63A6                 mov     ax, offset regs_x_ax
seg000:63A9                 push    ax
seg000:63AA                 push    ax
seg000:63AB                 call    sysloadmsg
seg000:63AE                 pop     bx
seg000:63AF                 pop     bx
seg000:63B0                 mov     al, ds:regs_x_cflag
seg000:63B3                 and     al, 1
seg000:63B5                 cmp     al, 1
seg000:63B7                 jnz     short preloadmsg_1
seg000:63B9                 mov     ax, offset regs_x_ax
seg000:63BC                 push    ax
seg000:63BD                 push    ax
seg000:63BE                 call    sysdispmsg
seg000:63C1                 pop     bx
seg000:63C2                 pop     bx
seg000:63C3                 mov     [bp+var_2], 0
seg000:63C7
seg000:63C7 preloadmsg_1:                           ; CODE XREF: preload_messages+1Bj
seg000:63C7                 mov     al, [bp+var_2]
seg000:63CA                 mov     sp, bp
seg000:63CC                 pop     bp
seg000:63CD                 retn
seg000:63CD preload_messages endp
seg000:63CD
seg000:63CE
seg000:63CE ; --------------- S U B R O U T I N E ---------------------------------------
seg000:63CE
seg000:63CE ; Attributes: bp-based frame
seg000:63CE
seg000:63CE display_msg     proc near               ; CODE XREF: main+120p
seg000:63CE                                         ; check_valid_environment+38p
seg000:63CE
seg000:63CE arg_0           = word ptr  4
seg000:63CE arg_2           = word ptr  6
seg000:63CE arg_4           = word ptr  8
seg000:63CE arg_6           = word ptr  0Ah
seg000:63CE arg_8           = byte ptr  0Ch
seg000:63CE arg_A           = byte ptr  0Eh
seg000:63CE
seg000:63CE                 push    bp
seg000:63CF                 mov     bp, sp
seg000:63D1                 mov     ax, [bp+arg_0]
seg000:63D4                 mov     ds:regs_x_ax, ax
seg000:63D7                 mov     ax, [bp+arg_2]
seg000:63DA                 mov     ds:regs_x_bx, ax
seg000:63DD                 mov     ax, [bp+arg_4]
seg000:63E0                 mov     ds:regs_x_cx, ax
seg000:63E3                 mov     al, [bp+arg_A]
seg000:63E6                 mov     byte ptr ds:regs_x_dx+1, al
seg000:63E9                 mov     al, [bp+arg_8]
seg000:63EC                 mov     byte ptr ds:regs_x_dx, al
seg000:63EF                 mov     ax, [bp+arg_6]
seg000:63F2                 mov     ds:regs_x_si, ax
seg000:63F5                 mov     ax, offset regs_x_ax
seg000:63F8                 push    ax
seg000:63F9                 push    ax
seg000:63FA                 call    sysdispmsg
seg000:63FD                 pop     bx
seg000:63FE                 pop     bx
seg000:63FF                 mov     sp, bp
seg000:6401                 pop     bp
seg000:6402                 retn
seg000:6402 display_msg     endp
seg000:6402
seg000:6403
seg000:6403 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6403
seg000:6403 ; Attributes: bp-based frame
seg000:6403
seg000:6403 get_yes_no_values proc near             ; CODE XREF: main:loc_39p
seg000:6403
seg000:6403 var_6           = byte ptr -6
seg000:6403 var_4           = dword ptr -4
seg000:6403
seg000:6403                 push    bp
seg000:6404                 mov     bp, sp
seg000:6406                 sub     sp, 6
seg000:6409                 mov     [bp+var_6], 1
seg000:640D                 mov     ds:regs_x_ax, 9
seg000:6413                 mov     byte ptr ds:regs_x_dx+1, 255
seg000:6418                 mov     ax, offset regs_x_ax
seg000:641B                 push    ax
seg000:641C                 mov     cx, offset segregs_es
seg000:641F                 push    cx
seg000:6420                 push    ax
seg000:6421                 call    sysgetmsg
seg000:6424                 add     sp, 6
seg000:6427                 mov     ax, ds:regs_x_si
seg000:642A                 mov     word ptr [bp+var_4], ax
seg000:642D                 mov     ax, ds:segregs_ds
seg000:6430                 mov     word ptr [bp+var_4+2], ax
seg000:6433                 les     bx, [bp+var_4]
seg000:6436                 mov     al, es:[bx]
seg000:6439                 mov     ds:Yes, al
seg000:643C                 mov     al, ds:regs_x_cflag
seg000:643F                 and     al, 1
seg000:6441                 cmp     al, 1
seg000:6443                 jz      short loc_6474
seg000:6445                 mov     ds:regs_x_ax, 10
seg000:644B                 mov     byte ptr ds:regs_x_dx+1, 255
seg000:6450                 mov     ax, offset regs_x_ax
seg000:6453                 push    ax
seg000:6454                 mov     cx, offset segregs_es
seg000:6457                 push    cx
seg000:6458                 push    ax
seg000:6459                 call    sysgetmsg
seg000:645C                 add     sp, 6
seg000:645F                 mov     ax, ds:regs_x_si
seg000:6462                 mov     word ptr [bp+var_4], ax
seg000:6465                 mov     ax, ds:segregs_ds
seg000:6468                 mov     word ptr [bp+var_4+2], ax
seg000:646B                 les     bx, [bp+var_4]
seg000:646E                 mov     al, es:[bx]
seg000:6471                 mov     byte ptr ds:No, al
seg000:6474
seg000:6474 loc_6474:                               ; CODE XREF: get_yes_no_values+40j
seg000:6474                 mov     al, ds:regs_x_cflag
seg000:6477                 and     al, 1
seg000:6479                 cmp     al, 1
seg000:647B                 jnz     short loc_648B
seg000:647D                 mov     ax, offset regs_x_ax
seg000:6480                 push    ax
seg000:6481                 push    ax
seg000:6482                 call    sysdispmsg
seg000:6485                 pop     bx
seg000:6486                 pop     bx
seg000:6487                 mov     [bp+var_6], 0
seg000:648B
seg000:648B loc_648B:                               ; CODE XREF: get_yes_no_values+78j
seg000:648B                 mov     al, [bp+var_6]
seg000:648E                 mov     sp, bp
seg000:6490                 pop     bp
seg000:6491                 retn
seg000:6491 get_yes_no_values endp
seg000:6491
seg000:6492
seg000:6492 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6492
seg000:6492 ; Attributes: bp-based frame
seg000:6492
seg000:6492 parse_command_line proc near            ; CODE XREF: main:loc_46p
seg000:6492
seg000:6492 var_8A          = dword ptr -8Ah
seg000:6492 var_86          = word ptr -86h
seg000:6492 var_6           = byte ptr -6
seg000:6492 var_4           = word ptr -4
seg000:6492 var_2           = byte ptr -2
seg000:6492
seg000:6492                 push    bp
seg000:6493                 mov     bp, sp
seg000:6495                 sub     sp, 138
seg000:6499                 push    si
seg000:649A                 call    parse_init
seg000:649D                 mov     [bp+var_2], 1
seg000:64A1                 mov     byte ptr ds:regs_x_ax+1, 62h
seg000:64A6                 mov     ax, offset segregs_es
seg000:64A9                 push    ax
seg000:64AA                 mov     ax, offset regs_x_ax
seg000:64AD                 push    ax
seg000:64AE                 push    ax
seg000:64AF                 call    intdosx
seg000:64B2                 add     sp, 6
seg000:64B5                 mov     word ptr [bp+var_8A], 81h
seg000:64BB                 mov     ax, ds:regs_x_bx
seg000:64BE                 mov     word ptr [bp+var_8A+2], ax
seg000:64C2                 mov     [bp+var_4], 0
seg000:64C7                 jmp     short loc_64DA
seg000:64C9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:64C9
seg000:64C9 loc_64C9:                               ; CODE XREF: parse_command_line+50j
seg000:64C9                 mov     al, es:[bx]
seg000:64CC                 mov     si, [bp+var_4]
seg000:64CF                 mov     byte ptr [bp+si+var_86], al
seg000:64D3                 inc     word ptr [bp+var_8A]
seg000:64D7                 inc     [bp+var_4]
seg000:64DA
seg000:64DA loc_64DA:                               ; CODE XREF: parse_command_line+35j
seg000:64DA                 les     bx, [bp+var_8A]
seg000:64DE                 cmp     byte ptr es:[bx], 0Dh
seg000:64E2                 jnz     short loc_64C9
seg000:64E4                 mov     si, [bp+var_4]
seg000:64E7                 mov     byte ptr [bp+si+var_86], 0Dh
seg000:64EC                 inc     [bp+var_4]
seg000:64EF                 mov     si, [bp+var_4]
seg000:64F2                 mov     byte ptr [bp+si+var_86], 0
seg000:64F7                 lea     ax, [si+1]
seg000:64FA                 mov     [bp+var_4], ax
seg000:64FD                 lea     ax, [bp+var_86]
seg000:6501                 mov     ds:regs_x_si, ax
seg000:6504                 sub     cx, cx
seg000:6506                 mov     ds:regs_x_cx, cx
seg000:650A                 mov     ds:regs_x_dx, cx
seg000:650E                 mov     ds:regs_x_di, offset p_p
seg000:6514                 mov     ds:Parse_Ptr, ax
seg000:6517                 mov     [bp+var_6], 0
seg000:651B
seg000:651B loc_651B:                               ; CODE XREF: parse_command_line+DCj
seg000:651B                 mov     ax, ds:regs_x_si
seg000:651E                 mov     ds:Parse_Ptr, ax
seg000:6521                 mov     ax, offset regs_x_ax
seg000:6524                 push    ax
seg000:6525                 push    ax
seg000:6526                 call    parse
seg000:6529                 pop     bx
seg000:652A                 pop     bx
seg000:652B                 cmp     ds:regs_x_ax, 0
seg000:6530                 jnz     short loc_654A
seg000:6532                 cmp     ds:regs_x_dx, offset p_buff
seg000:6538                 jnz     short loc_653D
seg000:653A                 call    check_disk_validity
seg000:653D
seg000:653D loc_653D:                               ; CODE XREF: parse_command_line+A6j
seg000:653D                 cmp     ds:regs_x_dx, offset sp_buff
seg000:6543                 jnz     short loc_656A
seg000:6545                 call    process_switch
seg000:6548                 jmp     short loc_656A
seg000:654A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:654A
seg000:654A loc_654A:                               ; CODE XREF: parse_command_line+9Ej
seg000:654A                 cmp     ds:regs_x_ax, 0FFFFh
seg000:654F                 jz      short loc_6566
seg000:6551                 mov     al, 2
seg000:6553                 push    ax
seg000:6554                 mov     ax, 2
seg000:6557                 push    ax
seg000:6558                 push    ds:regs_x_ax
seg000:655C                 call    Parse_msg
seg000:655F                 add     sp, 6
seg000:6562                 mov     [bp+var_2], 0
seg000:6566
seg000:6566 loc_6566:                               ; CODE XREF: parse_command_line+BDj
seg000:6566                 mov     [bp+var_6], 1
seg000:656A
seg000:656A loc_656A:                               ; CODE XREF: parse_command_line+B1j
seg000:656A                                         ; parse_command_line+B6j
seg000:656A                 cmp     [bp+var_6], 0
seg000:656E                 jz      short loc_651B
seg000:6570                 mov     al, [bp+var_2]
seg000:6573                 pop     si
seg000:6574                 mov     sp, bp
seg000:6576                 pop     bp
seg000:6577                 retn
seg000:6577 parse_command_line endp
seg000:6577
seg000:6578
seg000:6578 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6578
seg000:6578
seg000:6578 parse_init      proc near               ; CODE XREF: parse_command_line+8p
seg000:6578                 sub     al, al
seg000:657A                 mov     ds:primary_flag, al
seg000:657D                 mov     ds:extended_flag, al
seg000:6580                 mov     ds:logical_flag, al
seg000:6583                 mov     ds:disk_flag, al
seg000:6586                 mov     ds:quiet_flag, al
seg000:6589                 mov     ds:status_flag, al
seg000:658C                 mov     ds:mbr_flag, al
seg000:658F                 mov     ds:p_p, offset p_px
seg000:6595                 mov     ds:p_p_p_extra_delim, ';'
seg000:659A                 mov     al, 1
seg000:659C                 mov     ds:p_p_p_num_extra, al
seg000:659F                 mov     ds:p_p_p_len_extra_delim, al
seg000:65A2                 mov     ds:p_px_p_maxp, al
seg000:65A5                 mov     ds:p_px_p_con1_ptr, offset p_con
seg000:65AB                 mov     ds:p_px_p_maxs, 5
seg000:65B0                 mov     ds:p_px_p_swi1_ptr, offset p_swi1
seg000:65B6                 mov     ds:p_px_p_swi2_ptr, offset p_swi2
seg000:65BC                 mov     ds:p_px_p_swi3_ptr, offset p_swi3
seg000:65C2                 mov     ds:p_px_p_swi4_ptr, offset p_swi4
seg000:65C8                 mov     ds:p_px_p_swi5_ptr, offset p_swi5
seg000:65CE                 mov     al, byte ptr ds:NOVAL
seg000:65D1                 mov     ds:p_px_p_maxk, al
seg000:65D4                 mov     ds:p_con, 8001h
seg000:65DA                 mov     ds:p_con_p_buff1_ptr, offset p_buff
seg000:65E0                 mov     ds:p_con_p_val1_ptr, offset p_val
seg000:65E6                 sub     al, al
seg000:65E8                 mov     ds:p_px, al
seg000:65EB                 mov     ds:p_con_nid, al
seg000:65EE                 mov     ds:p_swi1, 8000h
seg000:65F4                 sub     ax, ax
seg000:65F6                 mov     ds:p_con_p_function_flag, ax
seg000:65F9                 mov     ds:p_swi1_sp_function_flag, ax
seg000:65FC                 mov     ds:p_swi1_sp_buff1_ptr, offset sp_buff
seg000:6602                 mov     ds:p_swi1_sp_val1_ptr, offset sp_val
seg000:6608                 mov     ds:p_swi1_sp_nid, 3
seg000:660D                 mov     ax, offset PRI  ; "/PRI"
seg000:6610                 push    ax
seg000:6611                 mov     ax, offset p_swi1_sp_switch1
seg000:6614                 push    ax
seg000:6615                 call    strcpy
seg000:6618                 pop     bx
seg000:6619                 pop     bx
seg000:661A                 mov     ax, offset EXT  ; "/EXT"
seg000:661D                 push    ax
seg000:661E                 mov     ax, offset p_swi1_sp_switch2
seg000:6621                 push    ax
seg000:6622                 call    strcpy
seg000:6625                 pop     bx
seg000:6626                 pop     bx
seg000:6627                 mov     ax, offset LOG  ; "/LOG"
seg000:662A                 push    ax
seg000:662B                 mov     ax, offset p_swi1_sp_switch3
seg000:662E                 push    ax
seg000:662F                 call    strcpy
seg000:6632                 pop     bx
seg000:6633                 pop     bx
seg000:6634                 mov     ds:p_swi2, 1
seg000:663A                 mov     ds:p_swi2_sp_function_flag, 0
seg000:6640                 mov     ds:p_swi2_sp_buff1_ptr, offset sp_buff
seg000:6646                 mov     ax, word ptr ds:NOVAL
seg000:6649                 mov     ds:p_swi2_sp_val1_ptr, ax
seg000:664C                 mov     ds:p_swi2_sp_nid, 1
seg000:6651                 mov     ax, offset QUIET ; "/Q"
seg000:6654                 push    ax
seg000:6655                 mov     ax, offset p_swi2_sp_switch4
seg000:6658                 push    ax
seg000:6659                 call    strcpy
seg000:665C                 pop     bx
seg000:665D                 pop     bx
seg000:665E                 mov     ds:p_swi3, 1
seg000:6664                 mov     ds:p_swi3_sp_function_flag, 0
seg000:666A                 mov     ds:p_swi3_sp_buff1_ptr, offset sp_buff
seg000:6670                 mov     ax, word ptr ds:NOVAL
seg000:6673                 mov     ds:p_swi3_sp_val1_ptr, ax
seg000:6676                 mov     ds:p_swi3_sp_nid, 1
seg000:667B                 mov     ax, offset STATUS ; "/STATUS"
seg000:667E                 push    ax
seg000:667F                 mov     ax, offset p_swi3_sp_switch5
seg000:6682                 push    ax
seg000:6683                 call    strcpy
seg000:6686                 pop     bx
seg000:6687                 pop     bx
seg000:6688                 sub     ax, ax
seg000:668A                 mov     ds:p_swi4, ax
seg000:668D                 mov     ds:p_swi4_sp_function_flag, ax
seg000:6690                 mov     ds:p_swi4_sp_buff1_ptr, offset sp_buff
seg000:6696                 mov     ax, word ptr ds:NOVAL
seg000:6699                 mov     ds:p_swi4_sp_val1_ptr, ax
seg000:669C                 mov     ds:p_swi4_sp_nid, 1
seg000:66A1                 mov     ax, offset OPTIONS ; "/?"
seg000:66A4                 push    ax
seg000:66A5                 mov     ax, offset p_swi4_sp_switch6
seg000:66A8                 push    ax
seg000:66A9                 call    strcpy
seg000:66AC                 pop     bx
seg000:66AD                 pop     bx
seg000:66AE                 mov     ds:p_swi5, 1
seg000:66B4                 mov     ds:p_swi5_sp_function_flag, 0
seg000:66BA                 mov     ds:p_swi5_sp_buff1_ptr, offset sp_buff
seg000:66C0                 mov     ax, word ptr ds:NOVAL
seg000:66C3                 mov     ds:p_swi5_sp_val1_ptr, ax
seg000:66C6                 mov     ds:p_swi5_sp_nid, 1
seg000:66CB                 mov     ax, offset MBR  ; "/MBR"
seg000:66CE                 push    ax
seg000:66CF                 mov     ax, offset p_swi5_sp_switch7
seg000:66D2                 push    ax
seg000:66D3                 call    strcpy
seg000:66D6                 pop     bx
seg000:66D7                 pop     bx
seg000:66D8                 mov     word ptr ds:p_val_p_high_range, 8
seg000:66DE                 mov     word ptr ds:p_val_p_high_range+2, 0
seg000:66E4                 mov     al, 1
seg000:66E6                 mov     ds:p_val, al
seg000:66E9                 mov     ds:p_val_p_range, al
seg000:66EC                 mov     ds:p_val_p_range_one, al
seg000:66EF                 mov     ds:sp_val, al
seg000:66F2                 mov     ds:sp_val_p_range, al
seg000:66F5                 mov     ds:sp_val_p_range_one, al
seg000:66F8                 mov     ax, 1
seg000:66FB                 cwd
seg000:66FC                 mov     word ptr ds:p_val_p_low_range, ax
seg000:66FF                 mov     word ptr ds:p_val_p_low_range+2, dx
seg000:6703                 mov     word ptr ds:sp_val_p_low_range, ax
seg000:6706                 mov     word ptr ds:sp_val_p_low_range+2, dx
seg000:670A                 mov     ds:sp_val_p_high_range, 8064
seg000:6710                 mov     word ptr ds:sp_val_p_high_range_2, 0
seg000:6716                 retn
seg000:6716 parse_init      endp
seg000:6716
seg000:6717
seg000:6717 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6717
seg000:6717
seg000:6717 check_disk_validity proc near           ; CODE XREF: parse_command_line+A8p
seg000:6717                 mov     ds:disk_flag, 1
seg000:671C                 mov     al, byte ptr ds:p_buff_p_value
seg000:671F                 dec     al
seg000:6721                 mov     ds:cur_disk_buff, al
seg000:6724                 retn
seg000:6724 check_disk_validity endp
seg000:6724
seg000:6725
seg000:6725 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6725
seg000:6725
seg000:6725 process_switch  proc near               ; CODE XREF: parse_command_line+B3p
seg000:6725                 cmp     ds:sp_buff_p_synonym, offset p_swi1_sp_switch1
seg000:672B                 jnz     short loc_6738
seg000:672D                 mov     ds:primary_flag, 1
seg000:6732                 mov     ax, word ptr ds:sp_buff_p_value
seg000:6735                 mov     ds:primary_buff, ax
seg000:6738
seg000:6738 loc_6738:                               ; CODE XREF: process_switch+6j
seg000:6738                 cmp     ds:sp_buff_p_synonym, offset p_swi1_sp_switch2
seg000:673E                 jnz     short loc_674B
seg000:6740                 mov     ds:extended_flag, 1
seg000:6745                 mov     ax, word ptr ds:sp_buff_p_value
seg000:6748                 mov     ds:extended_buff, ax
seg000:674B
seg000:674B loc_674B:                               ; CODE XREF: process_switch+19j
seg000:674B                 cmp     ds:sp_buff_p_synonym, offset p_swi1_sp_switch3
seg000:6751                 jnz     short loc_675E
seg000:6753                 mov     ds:logical_flag, 1
seg000:6758                 mov     ax, word ptr ds:sp_buff_p_value
seg000:675B                 mov     ds:logical_buff, ax
seg000:675E
seg000:675E loc_675E:                               ; CODE XREF: process_switch+2Cj
seg000:675E                 cmp     ds:sp_buff_p_synonym, offset p_swi2_sp_switch4
seg000:6764                 jnz     short loc_676B
seg000:6766                 mov     ds:quiet_flag, 1
seg000:676B
seg000:676B loc_676B:                               ; CODE XREF: process_switch+3Fj
seg000:676B                 cmp     ds:sp_buff_p_synonym, offset p_swi3_sp_switch5
seg000:6771                 jnz     short loc_6778
seg000:6773                 mov     ds:status_flag, 1
seg000:6778
seg000:6778 loc_6778:                               ; CODE XREF: process_switch+4Cj
seg000:6778                 cmp     ds:sp_buff_p_synonym, offset p_swi4_sp_switch6
seg000:677E                 jnz     short loc_6783
seg000:6780                 call    DisplayOptionsExit
seg000:6783
seg000:6783 loc_6783:                               ; CODE XREF: process_switch+59j
seg000:6783                 cmp     ds:sp_buff_p_synonym, offset p_swi5_sp_switch7
seg000:6789                 jnz     short locret_6790
seg000:678B                 mov     ds:mbr_flag, 1
seg000:6790
seg000:6790 locret_6790:                            ; CODE XREF: process_switch+64j
seg000:6790                 retn
seg000:6790 process_switch  endp
seg000:6790
seg000:6791
seg000:6791 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6791
seg000:6791 ; Attributes: bp-based frame
seg000:6791
seg000:6791 Parse_msg       proc near               ; CODE XREF: parse_command_line+CAp
seg000:6791
seg000:6791 var_4           = dword ptr -4
seg000:6791 arg_0           = word ptr  4
seg000:6791 arg_2           = word ptr  6
seg000:6791 arg_4           = byte ptr  8
seg000:6791
seg000:6791                 push    bp
seg000:6792                 mov     bp, sp
seg000:6794                 sub     sp, 4
seg000:6797                 mov     ax, offset segregs_es
seg000:679A                 push    ax
seg000:679B                 call    segread
seg000:679E                 pop     bx
seg000:679F                 mov     ax, ds:segregs_ds
seg000:67A2                 mov     word ptr [bp+var_4+2], ax
seg000:67A5                 mov     ax, ds:regs_x_si
seg000:67A8                 mov     word ptr [bp+var_4], ax
seg000:67AB                 les     bx, [bp+var_4]
seg000:67AE                 mov     byte ptr es:[bx], 0
seg000:67B2                 mov     ax, ds:segregs_ds
seg000:67B5                 mov     ds:sublistp_value_seg, ax
seg000:67B8                 mov     ax, ds:Parse_Ptr
seg000:67BB                 mov     ds:sublistp_value, ax
seg000:67BE                 mov     ds:sublistp_size, 11
seg000:67C3                 mov     ds:sublistp_flags, 10h
seg000:67C8                 mov     ds:sublistp_max_width, 80
seg000:67CD                 mov     ds:sublistp_min_width, 1
seg000:67D2                 mov     ds:sublistp_pad_char, ' '
seg000:67D7                 mov     ax, [bp+arg_0]
seg000:67DA                 mov     ds:regs_x_ax, ax
seg000:67DD                 mov     ax, [bp+arg_2]
seg000:67E0                 mov     ds:regs_x_bx, ax
seg000:67E3                 mov     ds:regs_x_cx, 1
seg000:67E9                 sub     al, al
seg000:67EB                 mov     ds:sublistp_res, al
seg000:67EE                 mov     ds:sublistp_id, al
seg000:67F1                 mov     byte ptr ds:regs_x_dx, al
seg000:67F4                 mov     al, [bp+arg_4]
seg000:67F7                 mov     byte ptr ds:regs_x_dx+1, al
seg000:67FA                 mov     ds:regs_x_si, offset sublistp_size
seg000:6800                 mov     ax, offset regs_x_ax
seg000:6803                 push    ax
seg000:6804                 push    ax
seg000:6805                 call    sysdispmsg
seg000:6808                 pop     bx
seg000:6809                 pop     bx
seg000:680A                 mov     sp, bp
seg000:680C                 pop     bp
seg000:680D                 retn
seg000:680D Parse_msg       endp
seg000:680D
seg000:680E
seg000:680E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:680E
seg000:680E ; Attributes: bp-based frame
seg000:680E
seg000:680E DisplayOptionsExit proc near            ; CODE XREF: process_switch+5Bp
seg000:680E
seg000:680E var_2           = word ptr -2
seg000:680E
seg000:680E                 push    bp
seg000:680F                 mov     bp, sp
seg000:6811                 sub     sp, 2
seg000:6814                 mov     [bp+var_2], 300
seg000:6819
seg000:6819 loc_6819:                               ; CODE XREF: DisplayOptionsExit+3Fj
seg000:6819                 mov     ax, [bp+var_2]
seg000:681C                 mov     ds:regs_x_ax, ax
seg000:681F                 mov     ds:regs_x_bx, 1
seg000:6825                 mov     ds:regs_x_cx, 0
seg000:682B                 mov     byte ptr ds:regs_x_dx, 0
seg000:6830                 mov     byte ptr ds:regs_x_dx+1, 0FFh
seg000:6835                 mov     ds:regs_x_si, 0
seg000:683B                 mov     ax, offset regs_x_ax
seg000:683E                 push    ax
seg000:683F                 push    ax
seg000:6840                 call    sysdispmsg
seg000:6843                 pop     bx
seg000:6844                 pop     bx
seg000:6845                 inc     [bp+var_2]
seg000:6848                 cmp     [bp+var_2], 302
seg000:684D                 jle     short loc_6819
seg000:684F                 sub     ax, ax
seg000:6851                 push    ax
seg000:6852                 call    _exit
seg000:6855 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6855                 pop     bx
seg000:6856                 mov     sp, bp
seg000:6858                 pop     bp
seg000:6859                 retn
seg000:6859 DisplayOptionsExit endp
seg000:6859
seg000:685A
seg000:685A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:685A
seg000:685A ; Attributes: bp-based frame
seg000:685A
seg000:685A mbytes_to_cylinders proc near           ; CODE XREF: main+23Fp
seg000:685A                                         ; main+2BCp ...
seg000:685A
seg000:685A mtc_num_sectors_lw= word ptr -12h
seg000:685A mtc_num_sectors_hw= word ptr -10h
seg000:685A mtc_cylinders_out= word ptr -6
seg000:685A mtc_num_tracks_lw= word ptr -4
seg000:685A mtc_num_tracks_hw= word ptr -2
seg000:685A mtc_mbytes_in   = word ptr  4
seg000:685A mtc_which_disk  = byte ptr  6
seg000:685A
seg000:685A                 push    bp
seg000:685B                 mov     bp, sp
seg000:685D                 sub     sp, 18
seg000:6860                 push    di
seg000:6861                 push    si
seg000:6862                 cmp     [bp+mtc_mbytes_in], 32
seg000:6866                 jnz     short mbtocyl_1
seg000:6868                 mov     al, [bp+mtc_which_disk]
seg000:686B                 cbw
seg000:686C                 mov     bx, ax
seg000:686E                 mov     al, ds:max_sector[bx]
seg000:6872                 sub     ah, ah
seg000:6874                 shl     bx, 1
seg000:6876                 mul     ds:max_head[bx]
seg000:687A                 push    dx
seg000:687B                 push    ax
seg000:687C                 mov     ax, 0FFFFh
seg000:687F                 sub     dx, dx
seg000:6881                 push    dx
seg000:6882                 push    ax
seg000:6883                 call    div32
seg000:6886                 jmp     mbtocyl_4
seg000:6889 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6889
seg000:6889 mbtocyl_1:                              ; CODE XREF: mbytes_to_cylinders+Cj
seg000:6889                 mov     cl, 4
seg000:688B                 mov     ax, [bp+mtc_mbytes_in]
seg000:688E                 sub     dx, dx
seg000:6890                 mov     bx, ax
seg000:6892                 mov     si, dx
seg000:6894                 shl     ax, cl
seg000:6896                 mov     dx, ax
seg000:6898                 sub     ax, ax
seg000:689A                 mov     cl, 9
seg000:689C                 mov     di, bx
seg000:689E                 call    shr32
seg000:68A1                 mov     [bp+mtc_num_sectors_lw], ax
seg000:68A4                 mov     [bp+mtc_num_sectors_hw], dx
seg000:68A7                 mov     cx, 512
seg000:68AA                 sub     bx, bx
seg000:68AC                 push    bx
seg000:68AD                 push    cx
seg000:68AE                 mov     cl, 4
seg000:68B0                 shl     di, cl
seg000:68B2                 sub     cx, cx
seg000:68B4                 push    di
seg000:68B5                 push    cx
seg000:68B6                 call    _mod32
seg000:68B9                 or      dx, ax
seg000:68BB                 jz      short mbtocyl_2
seg000:68BD                 mov     ax, [bp+mtc_num_sectors_lw]
seg000:68C0                 mov     dx, [bp+mtc_num_sectors_hw]
seg000:68C3                 add     ax, 1
seg000:68C6                 adc     dx, si
seg000:68C8                 mov     [bp+mtc_num_sectors_lw], ax
seg000:68CB                 mov     [bp+mtc_num_sectors_hw], dx
seg000:68CE
seg000:68CE mbtocyl_2:                              ; CODE XREF: mbytes_to_cylinders+61j
seg000:68CE                 mov     al, [bp+mtc_which_disk]
seg000:68D1                 cbw
seg000:68D2                 mov     bx, ax
seg000:68D4                 mov     al, ds:max_sector[bx]
seg000:68D8                 sub     ah, ah
seg000:68DA                 mov     cx, ax
seg000:68DC                 sub     dx, dx
seg000:68DE                 push    dx
seg000:68DF                 push    ax
seg000:68E0                 push    [bp+mtc_num_sectors_hw]
seg000:68E3                 push    [bp+mtc_num_sectors_lw]
seg000:68E6                 mov     si, cx
seg000:68E8                 call    div32
seg000:68EB                 mov     [bp+mtc_num_tracks_lw], ax
seg000:68EE                 mov     [bp+mtc_num_tracks_hw], dx
seg000:68F1                 mov     ax, [bp+mtc_num_sectors_lw]
seg000:68F4                 sub     dx, dx
seg000:68F6                 div     si
seg000:68F8                 or      dx, dx
seg000:68FA                 jz      short mbtocyl_3
seg000:68FC                 mov     ax, [bp+mtc_num_tracks_lw]
seg000:68FF                 mov     dx, [bp+mtc_num_tracks_hw]
seg000:6902                 add     ax, 1
seg000:6905                 adc     dx, 0
seg000:6908                 mov     [bp+mtc_num_tracks_lw], ax
seg000:690B                 mov     [bp+mtc_num_tracks_hw], dx
seg000:690E
seg000:690E mbtocyl_3:                              ; CODE XREF: mbytes_to_cylinders+A0j
seg000:690E                 mov     al, [bp+mtc_which_disk]
seg000:6911                 cbw
seg000:6912                 mov     bx, ax
seg000:6914                 shl     bx, 1
seg000:6916                 mov     ax, ds:max_head[bx]
seg000:691A                 mov     cx, ax
seg000:691C                 sub     dx, dx
seg000:691E                 push    dx
seg000:691F                 push    ax
seg000:6920                 push    [bp+mtc_num_tracks_hw]
seg000:6923                 push    [bp+mtc_num_tracks_lw]
seg000:6926                 mov     si, ax
seg000:6928                 call    div32
seg000:692B                 mov     [bp+mtc_cylinders_out], ax
seg000:692E                 mov     ax, [bp+mtc_num_tracks_lw]
seg000:6931                 sub     dx, dx
seg000:6933                 div     si
seg000:6935                 or      dx, dx
seg000:6937                 jz      short mbtocyl_5
seg000:6939                 mov     ax, [bp+mtc_cylinders_out]
seg000:693C                 inc     ax
seg000:693D
seg000:693D mbtocyl_4:                              ; CODE XREF: mbytes_to_cylinders+2Cj
seg000:693D                 mov     [bp+mtc_cylinders_out], ax
seg000:6940
seg000:6940 mbtocyl_5:                              ; CODE XREF: mbytes_to_cylinders+DDj
seg000:6940                 mov     ax, [bp+mtc_cylinders_out]
seg000:6943                 pop     si
seg000:6944                 pop     di
seg000:6945                 mov     sp, bp
seg000:6947                 pop     bp
seg000:6948                 retn
seg000:6948 mbytes_to_cylinders endp
seg000:6948
seg000:6949
seg000:6949 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6949
seg000:6949 ; Attributes: bp-based frame
seg000:6949
seg000:6949 cylinders_to_mbytes proc near           ; CODE XREF: load_logical_drive+406p
seg000:6949                                         ; find_part_free_space+C8p ...
seg000:6949
seg000:6949 arg_0           = word ptr  4
seg000:6949 arg_2           = byte ptr  6
seg000:6949
seg000:6949                 push    bp
seg000:694A                 mov     bp, sp
seg000:694C                 sub     sp, 14
seg000:694F                 mov     al, [bp+arg_2]
seg000:6952                 cbw
seg000:6953                 mov     bx, ax
seg000:6955                 shl     bx, 1
seg000:6957                 mov     cx, ax
seg000:6959                 mov     ax, ds:max_head[bx]
seg000:695D                 mul     [bp+arg_0]
seg000:6960                 mov     bx, cx
seg000:6962                 mov     cl, ds:max_sector[bx]
seg000:6966                 sub     ch, ch
seg000:6968                 sub     bx, bx
seg000:696A                 push    bx
seg000:696B                 push    cx
seg000:696C                 push    dx
seg000:696D                 push    ax
seg000:696E                 call    mul32
seg000:6971                 push    dx
seg000:6972                 push    ax
seg000:6973                 call    numsecs_to_mbytes
seg000:6976                 pop     bx
seg000:6977                 pop     bx
seg000:6978                 mov     sp, bp
seg000:697A                 pop     bp
seg000:697B                 retn
seg000:697B cylinders_to_mbytes endp
seg000:697B
seg000:697C
seg000:697C ; --------------- S U B R O U T I N E ---------------------------------------
seg000:697C
seg000:697C ; Attributes: bp-based frame
seg000:697C
seg000:697C numsecs_to_mbytes proc near             ; CODE XREF: init_partition_tables+1B9p
seg000:697C                                         ; cylinders_to_mbytes+2Ap
seg000:697C
seg000:697C arg_0           = word ptr  4
seg000:697C arg_2           = word ptr  6
seg000:697C
seg000:697C                 push    bp
seg000:697D                 mov     bp, sp
seg000:697F                 sub     sp, 8
seg000:6982                 mov     ax, [bp+arg_0]
seg000:6985                 mov     dx, [bp+arg_2]
seg000:6988                 add     ax, 1024
seg000:698B                 adc     dx, 0
seg000:698E                 mov     cl, 11
seg000:6990                 call    shr32
seg000:6993                 mov     sp, bp
seg000:6995                 pop     bp
seg000:6996                 retn
seg000:6996 numsecs_to_mbytes endp
seg000:6996
seg000:6997
seg000:6997 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6997
seg000:6997 ; Attributes: bp-based frame
seg000:6997
seg000:6997 cylinders_to_percent proc near          ; CODE XREF: volume_create+E1p
seg000:6997                                         ; load_logical_drive+43Ep ...
seg000:6997
seg000:6997 var_6           = word ptr -6
seg000:6997 arg_0           = word ptr  4
seg000:6997 arg_2           = word ptr  6
seg000:6997
seg000:6997                 push    bp
seg000:6998                 mov     bp, sp
seg000:699A                 sub     sp, 6
seg000:699D                 cmp     [bp+arg_0], 0
seg000:69A1                 jnz     short ctpc_2
seg000:69A3
seg000:69A3 ctpc_1:                                 ; CODE XREF: cylinders_to_percent+17j
seg000:69A3                 mov     [bp+var_6], 0
seg000:69A8                 jmp     short ctpc_3
seg000:69AA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:69AA
seg000:69AA ctpc_2:                                 ; CODE XREF: cylinders_to_percent+Aj
seg000:69AA                 cmp     [bp+arg_2], 0
seg000:69AE                 jz      short ctpc_1
seg000:69B0                 mov     ax, [bp+arg_2]
seg000:69B3                 sub     dx, dx
seg000:69B5                 push    dx
seg000:69B6                 push    ax
seg000:69B7                 mov     ax, 100
seg000:69BA                 mul     [bp+arg_0]
seg000:69BD                 push    dx
seg000:69BE                 push    ax
seg000:69BF                 call    div32
seg000:69C2                 mov     [bp+var_6], ax
seg000:69C5
seg000:69C5 ctpc_3:                                 ; CODE XREF: cylinders_to_percent+11j
seg000:69C5                 mov     ax, [bp+arg_2]
seg000:69C8                 sub     dx, dx
seg000:69CA                 push    dx
seg000:69CB                 push    ax
seg000:69CC                 mov     ax, 100
seg000:69CF                 mul     [bp+arg_0]
seg000:69D2                 push    dx
seg000:69D3                 push    ax
seg000:69D4                 call    _mod32
seg000:69D7                 mov     cx, [bp+arg_2]
seg000:69DA                 shr     cx, 1
seg000:69DC                 sub     bx, bx
seg000:69DE                 cmp     dx, bx
seg000:69E0                 jl      short ctpc_5
seg000:69E2                 jg      short ctpc_4
seg000:69E4                 cmp     ax, cx
seg000:69E6                 jb      short ctpc_5
seg000:69E8
seg000:69E8 ctpc_4:                                 ; CODE XREF: cylinders_to_percent+4Bj
seg000:69E8                 inc     [bp+var_6]
seg000:69EB
seg000:69EB ctpc_5:                                 ; CODE XREF: cylinders_to_percent+49j
seg000:69EB                                         ; cylinders_to_percent+4Fj
seg000:69EB                 cmp     [bp+var_6], 100
seg000:69EF                 jbe     short ctpc_6
seg000:69F1                 mov     [bp+var_6], 100
seg000:69F6
seg000:69F6 ctpc_6:                                 ; CODE XREF: cylinders_to_percent+58j
seg000:69F6                 mov     ax, [bp+var_6]
seg000:69F9                 mov     sp, bp
seg000:69FB                 pop     bp
seg000:69FC                 retn
seg000:69FC cylinders_to_percent endp
seg000:69FC
seg000:69FD
seg000:69FD ; --------------- S U B R O U T I N E ---------------------------------------
seg000:69FD
seg000:69FD ; Attributes: bp-based frame
seg000:69FD
seg000:69FD mbytes_to_percent proc near             ; CODE XREF: init_partition_tables+1D2p
seg000:69FD
seg000:69FD percent         = word ptr -6
seg000:69FD partmbytes      = word ptr  4
seg000:69FD totalmbytes     = byte ptr  6
seg000:69FD
seg000:69FD                 push    bp
seg000:69FE                 mov     bp, sp
seg000:6A00                 sub     sp, 6
seg000:6A03                 cmp     [bp+partmbytes], 0
seg000:6A07                 jz      short mtp_0
seg000:6A09                 mov     ax, word ptr [bp+totalmbytes]
seg000:6A0C                 sub     dx, dx
seg000:6A0E                 push    dx
seg000:6A0F                 push    ax
seg000:6A10                 mov     ax, 100
seg000:6A13                 mul     [bp+partmbytes]
seg000:6A16                 mov     cx, word ptr [bp+totalmbytes]
seg000:6A19                 shr     cx, 1
seg000:6A1B                 add     ax, cx
seg000:6A1D                 adc     dx, 0
seg000:6A20                 push    dx
seg000:6A21                 push    ax
seg000:6A22                 call    div32
seg000:6A25                 mov     [bp+percent], ax
seg000:6A28                 cmp     ax, 100
seg000:6A2B                 jbe     short mtp_1
seg000:6A2D                 mov     [bp+percent], 100
seg000:6A32                 jmp     short mtp_1
seg000:6A34 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6A34
seg000:6A34 mtp_0:                                  ; CODE XREF: mbytes_to_percent+Aj
seg000:6A34                 mov     [bp+percent], 0
seg000:6A39
seg000:6A39 mtp_1:                                  ; CODE XREF: mbytes_to_percent+2Ej
seg000:6A39                                         ; mbytes_to_percent+35j
seg000:6A39                 mov     ax, [bp+percent]
seg000:6A3C                 mov     sp, bp
seg000:6A3E                 pop     bp
seg000:6A3F                 retn
seg000:6A3F mbytes_to_percent endp
seg000:6A3F
seg000:6A40
seg000:6A40 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6A40
seg000:6A40 ; Attributes: bp-based frame
seg000:6A40
seg000:6A40 percent_to_cylinders proc near          ; CODE XREF: input_dos_create+187p
seg000:6A40                                         ; ext_create_partition+1E1p ...
seg000:6A40
seg000:6A40 ptc_cylinders_out= word ptr -2
seg000:6A40 ptc_percent_in  = word ptr  4
seg000:6A40 ptc_total_cylinders= word ptr  6
seg000:6A40
seg000:6A40                 push    bp
seg000:6A41                 mov     bp, sp
seg000:6A43                 sub     sp, 2
seg000:6A46                 push    di
seg000:6A47                 push    si
seg000:6A48                 mov     ax, 100
seg000:6A4B                 cwd
seg000:6A4C                 push    dx
seg000:6A4D                 push    ax
seg000:6A4E                 mov     ax, [bp+ptc_total_cylinders]
seg000:6A51                 mul     [bp+ptc_percent_in]
seg000:6A54                 push    dx
seg000:6A55                 push    ax
seg000:6A56                 mov     si, ax
seg000:6A58                 mov     di, dx
seg000:6A5A                 call    div32
seg000:6A5D                 mov     [bp+ptc_cylinders_out], ax
seg000:6A60                 mov     cx, 100
seg000:6A63                 sub     dx, dx
seg000:6A65                 push    dx
seg000:6A66                 push    cx
seg000:6A67                 push    di
seg000:6A68                 push    si
seg000:6A69                 call    mod32
seg000:6A6C                 or      dx, ax
seg000:6A6E                 jz      short pctocyl_1
seg000:6A70                 mov     ax, [bp+ptc_cylinders_out]
seg000:6A73                 inc     ax
seg000:6A74                 mov     [bp+ptc_cylinders_out], ax
seg000:6A77
seg000:6A77 pctocyl_1:                              ; CODE XREF: percent_to_cylinders+2Ej
seg000:6A77                 mov     ax, [bp+ptc_cylinders_out]
seg000:6A7A                 pop     si
seg000:6A7B                 pop     di
seg000:6A7C                 mov     sp, bp
seg000:6A7E                 pop     bp
seg000:6A7F                 retn
seg000:6A7F percent_to_cylinders endp
seg000:6A7F
seg000:6A80
seg000:6A80 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6A80
seg000:6A80 ; Attributes: bp-based frame
seg000:6A80
seg000:6A80 dos_upper       proc near               ; CODE XREF: volume_delete+240p
seg000:6A80                                         ; get_num_input+85p ...
seg000:6A80
seg000:6A80 upcase_input    = byte ptr  4
seg000:6A80
seg000:6A80                 push    bp
seg000:6A81                 mov     bp, sp
seg000:6A83                 sub     sp, 2
seg000:6A86                 mov     ds:regs_x_ax, 6520h
seg000:6A8C                 mov     al, [bp+upcase_input]
seg000:6A8F                 mov     byte ptr ds:regs_x_dx, al
seg000:6A92                 mov     ax, offset regs_x_ax
seg000:6A95                 push    ax
seg000:6A96                 push    ax
seg000:6A97                 mov     ax, 21h
seg000:6A9A                 push    ax
seg000:6A9B                 call    int86
seg000:6A9E                 mov     al, byte ptr ds:regs_x_dx
seg000:6AA1                 mov     sp, bp
seg000:6AA3                 pop     bp
seg000:6AA4                 retn
seg000:6AA4 dos_upper       endp
seg000:6AA4
seg000:6AA5
seg000:6AA5 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6AA5
seg000:6AA5 ; Attributes: bp-based frame
seg000:6AA5
seg000:6AA5 check_yn_input  proc near               ; CODE XREF: get_yn_input+95p
seg000:6AA5                                         ; get_yn_input+A1p ...
seg000:6AA5
seg000:6AA5 yn_input        = byte ptr -2
seg000:6AA5 yn_input_value  = byte ptr  4
seg000:6AA5
seg000:6AA5                 push    bp
seg000:6AA6                 mov     bp, sp
seg000:6AA8                 sub     sp, 2
seg000:6AAB                 mov     ds:regs_x_ax, 6523h
seg000:6AB1                 mov     al, [bp+yn_input_value]
seg000:6AB4                 mov     byte ptr ds:regs_x_dx, al
seg000:6AB7                 mov     ax, offset regs_x_ax
seg000:6ABA                 push    ax
seg000:6ABB                 push    ax
seg000:6ABC                 mov     ax, 21h
seg000:6ABF                 push    ax
seg000:6AC0                 call    int86
seg000:6AC3                 add     sp, 6
seg000:6AC6                 mov     al, ds:regs_x_cflag
seg000:6AC9                 and     al, 1
seg000:6ACB                 cmp     al, 1
seg000:6ACD                 jnz     short cyni_1
seg000:6ACF                 mov     [bp+yn_input], 2
seg000:6AD3                 jmp     short cyni_2
seg000:6AD5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6AD5
seg000:6AD5 cyni_1:                                 ; CODE XREF: check_yn_input+28j
seg000:6AD5                 mov     al, byte ptr ds:regs_x_ax
seg000:6AD8                 mov     [bp+yn_input], al
seg000:6ADB
seg000:6ADB cyni_2:                                 ; CODE XREF: check_yn_input+2Ej
seg000:6ADB                 mov     al, [bp+yn_input]
seg000:6ADE                 mov     sp, bp
seg000:6AE0                 pop     bp
seg000:6AE1                 retn
seg000:6AE1 check_yn_input  endp
seg000:6AE1
seg000:6AE2
seg000:6AE2 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6AE2
seg000:6AE2 ; Attributes: bp-based frame
seg000:6AE2
seg000:6AE2 get_fs_and_vol  proc near               ; CODE XREF: get_volume+E8p
seg000:6AE2                                         ; load_logical_drive+154p
seg000:6AE2
seg000:6AE2 _output_        = byte ptr -2
seg000:6AE2 _inputdrive_    = byte ptr  4
seg000:6AE2
seg000:6AE2                 push    bp
seg000:6AE3                 mov     bp, sp
seg000:6AE5                 sub     sp, 2
seg000:6AE8                 mov     ds:regs_x_ax, 440Dh
seg000:6AEE                 mov     byte ptr ds:regs_x_bx+1, 0
seg000:6AF3                 mov     al, [bp+_inputdrive_]
seg000:6AF6                 sub     al, 40h
seg000:6AF8                 mov     byte ptr ds:regs_x_bx, al
seg000:6AFB                 mov     ds:regs_x_cx, 866h
seg000:6B01                 mov     ds:regs_x_dx, offset dx_buff
seg000:6B07                 mov     ax, offset segregs_es
seg000:6B0A                 push    ax
seg000:6B0B                 call    segread
seg000:6B0E                 pop     bx
seg000:6B0F                 mov     ax, offset segregs_es
seg000:6B12                 push    ax
seg000:6B13                 mov     ax, offset regs_x_ax
seg000:6B16                 push    ax
seg000:6B17                 push    ax
seg000:6B18                 call    intdosx
seg000:6B1B                 add     sp, 6
seg000:6B1E                 mov     al, ds:regs_x_cflag
seg000:6B21                 and     al, 1
seg000:6B23                 cmp     al, 1
seg000:6B25                 jnz     short gfsv_1
seg000:6B27                 mov     [bp+_output_], 0
seg000:6B2B                 jmp     short gvsv_2
seg000:6B2D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6B2D
seg000:6B2D gfsv_1:                                 ; CODE XREF: get_fs_and_vol+43j
seg000:6B2D                 mov     [bp+_output_], 1
seg000:6B31
seg000:6B31 gvsv_2:                                 ; CODE XREF: get_fs_and_vol+49j
seg000:6B31                 mov     al, [bp+_output_]
seg000:6B34                 mov     sp, bp
seg000:6B36                 pop     bp
seg000:6B37                 retn
seg000:6B37 get_fs_and_vol  endp
seg000:6B37
seg000:6B38
seg000:6B38 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6B38
seg000:6B38 ; Attributes: bp-based frame
seg000:6B38
seg000:6B38 get_volume_string proc near             ; CODE XREF: get_volume+95p
seg000:6B38                                         ; load_logical_drive+FFp
seg000:6B38
seg000:6B38 first_string    = word ptr -44h
seg000:6B38 _jj_            = word ptr -36h
seg000:6B38 _ii_            = word ptr -34h
seg000:6B38 find_first_buffer= word ptr -32h
seg000:6B38 ffb_30          = word ptr -14h
seg000:6B38 _input_drive_   = byte ptr  4
seg000:6B38 vol_label_addr  = word ptr  6
seg000:6B38
seg000:6B38                 push    bp
seg000:6B39                 mov     bp, sp
seg000:6B3B                 sub     sp, 68
seg000:6B3E                 push    si
seg000:6B3F                 mov     [bp+_ii_], 0
seg000:6B44
seg000:6B44 gvs_1:                                  ; CODE XREF: get_volume_string+1Cj
seg000:6B44                 mov     bx, [bp+_ii_]
seg000:6B47                 mov     si, [bp+vol_label_addr]
seg000:6B4A                 mov     byte ptr [bx+si], 0
seg000:6B4D                 inc     [bp+_ii_]
seg000:6B50                 cmp     [bp+_ii_], 12
seg000:6B54                 jb      short gvs_1
seg000:6B56                 mov     byte ptr ds:regs_x_ax+1, 1Ah
seg000:6B5B                 lea     ax, [bp+find_first_buffer]
seg000:6B5E                 mov     ds:regs_x_dx, ax
seg000:6B61                 mov     ax, offset segregs_es
seg000:6B64                 push    ax
seg000:6B65                 call    segread
seg000:6B68                 pop     bx
seg000:6B69                 mov     ax, offset segregs_es
seg000:6B6C                 push    ax
seg000:6B6D                 mov     ax, offset regs_x_ax
seg000:6B70                 push    ax
seg000:6B71                 push    ax
seg000:6B72                 call    intdosx
seg000:6B75                 add     sp, 6
seg000:6B78                 mov     al, [bp+_input_drive_]
seg000:6B7B                 mov     byte ptr [bp+first_string], al
seg000:6B7E                 mov     byte ptr [bp+first_string+1], 0
seg000:6B82                 mov     ax, offset FILE_NAME ; ":\\????????.???"
seg000:6B85                 push    ax
seg000:6B86                 lea     ax, [bp+first_string]
seg000:6B89                 push    ax
seg000:6B8A                 call    strcat
seg000:6B8D                 pop     bx
seg000:6B8E                 pop     bx
seg000:6B8F                 mov     byte ptr ds:regs_x_ax+1, 4Eh
seg000:6B94                 mov     ds:regs_x_cx, 8
seg000:6B9A                 lea     ax, [bp+first_string]
seg000:6B9D                 mov     ds:regs_x_dx, ax
seg000:6BA0                 mov     ax, offset regs_x_ax
seg000:6BA3                 push    ax
seg000:6BA4                 push    ax
seg000:6BA5                 call    intdos
seg000:6BA8                 pop     bx
seg000:6BA9                 pop     bx
seg000:6BAA                 mov     al, ds:regs_x_cflag
seg000:6BAD                 and     al, 1
seg000:6BAF                 cmp     al, 1
seg000:6BB1                 jz      short gvs_5
seg000:6BB3                 sub     ax, ax
seg000:6BB5                 mov     [bp+_jj_], ax
seg000:6BB8                 mov     [bp+_ii_], ax
seg000:6BBB                 jmp     short gvs_4
seg000:6BBD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6BBD
seg000:6BBD gvs_2:                                  ; CODE XREF: get_volume_string+A1j
seg000:6BBD                 mov     [bp+_jj_], 1
seg000:6BC2
seg000:6BC2 gvs_3:                                  ; CODE XREF: get_volume_string+B0j
seg000:6BC2                 inc     [bp+_ii_]
seg000:6BC5
seg000:6BC5 gvs_4:                                  ; CODE XREF: get_volume_string+83j
seg000:6BC5                 lea     ax, [bp+ffb_30]
seg000:6BC8                 push    ax
seg000:6BC9                 call    strlen
seg000:6BCC                 pop     bx
seg000:6BCD                 cmp     ax, [bp+_ii_]
seg000:6BD0                 jbe     short gvs_5
seg000:6BD2                 mov     si, [bp+_ii_]
seg000:6BD5                 cmp     byte ptr [bp+si+ffb_30], '.'
seg000:6BD9                 jz      short gvs_2
seg000:6BDB                 mov     al, byte ptr [bp+si+ffb_30]
seg000:6BDE                 mov     bx, si
seg000:6BE0                 sub     bx, [bp+_jj_]
seg000:6BE3                 mov     si, [bp+vol_label_addr]
seg000:6BE6                 mov     [bx+si], al
seg000:6BE8                 jmp     short gvs_3
seg000:6BEA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6BEA
seg000:6BEA gvs_5:                                  ; CODE XREF: get_volume_string+79j
seg000:6BEA                                         ; get_volume_string+98j
seg000:6BEA                 pop     si
seg000:6BEB                 mov     sp, bp
seg000:6BED                 pop     bp
seg000:6BEE                 retn
seg000:6BEE get_volume_string endp
seg000:6BEE
seg000:6BEF
seg000:6BEF ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6BEF
seg000:6BEF ; Attributes: bp-based frame
seg000:6BEF
seg000:6BEF check_format    proc near               ; CODE XREF: get_volume+1Fp
seg000:6BEF                                         ; load_logical_drive+83p
seg000:6BEF
seg000:6BEF var_2           = byte ptr -2
seg000:6BEF arg_0           = byte ptr  4
seg000:6BEF
seg000:6BEF                 push    bp
seg000:6BF0                 mov     bp, sp
seg000:6BF2                 sub     sp, 2
seg000:6BF5                 cmp     [bp+arg_0], 'C'
seg000:6BF9                 jl      short chkf_1
seg000:6BFB                 cmp     [bp+arg_0], 'Z'
seg000:6BFF                 jg      short chkf_1
seg000:6C01                 mov     ds:dac_access_flag, 0
seg000:6C06                 mov     ds:regs_x_ax, 440Dh
seg000:6C0C                 mov     byte ptr ds:regs_x_bx+1, 0
seg000:6C11                 mov     al, [bp+arg_0]
seg000:6C14                 sub     al, 40h
seg000:6C16                 mov     byte ptr ds:regs_x_bx, al
seg000:6C19                 mov     ds:regs_x_cx, 867h
seg000:6C1F                 mov     ds:regs_x_dx, offset disk_access
seg000:6C25                 mov     ax, offset segregs_es
seg000:6C28                 push    ax
seg000:6C29                 call    segread
seg000:6C2C                 pop     bx
seg000:6C2D                 mov     ax, offset segregs_es
seg000:6C30                 push    ax
seg000:6C31                 mov     ax, offset regs_x_ax
seg000:6C34                 push    ax
seg000:6C35                 push    ax
seg000:6C36                 call    intdosx
seg000:6C39                 add     sp, 6
seg000:6C3C                 cmp     ds:dac_access_flag, 0
seg000:6C41                 jz      short chkf_1
seg000:6C43                 mov     [bp+var_2], 1
seg000:6C47                 jmp     short chkf_2
seg000:6C49 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6C49
seg000:6C49 chkf_1:                                 ; CODE XREF: check_format+Aj
seg000:6C49                                         ; check_format+10j ...
seg000:6C49                 mov     [bp+var_2], 0
seg000:6C4D
seg000:6C4D chkf_2:                                 ; CODE XREF: check_format+58j
seg000:6C4D                 mov     al, [bp+var_2]
seg000:6C50                 mov     sp, bp
seg000:6C52                 pop     bp
seg000:6C53                 retn
seg000:6C53 check_format    endp
seg000:6C53
seg000:6C54
seg000:6C54 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6C54
seg000:6C54 ; Attributes: bp-based frame
seg000:6C54
seg000:6C54 parse           proc near               ; CODE XREF: parse_command_line+94p
seg000:6C54
seg000:6C54 arg_0           = word ptr  4
seg000:6C54 arg_2           = word ptr  6
seg000:6C54
seg000:6C54                 push    bp
seg000:6C55                 mov     bp, sp
seg000:6C57                 push    di
seg000:6C58                 push    si
seg000:6C59                 mov     di, [bp+arg_0]
seg000:6C5C                 mov     ax, [di+10]
seg000:6C5F                 push    ax
seg000:6C60                 mov     ax, [di]
seg000:6C62                 mov     bx, [di+2]
seg000:6C65                 mov     cx, [di+4]
seg000:6C68                 mov     dx, [di+6]
seg000:6C6B                 mov     si, [di+8]
seg000:6C6E                 pop     di
seg000:6C6F                 push    bp
seg000:6C70                 call    CallParser
seg000:6C75                 pop     bp
seg000:6C76                 push    di
seg000:6C77                 mov     di, [bp+arg_2]
seg000:6C7A                 mov     [di], ax
seg000:6C7C                 mov     [di+2], bx
seg000:6C7F                 mov     [di+4], cx
seg000:6C82                 mov     [di+6], dx
seg000:6C85                 mov     [di+8], si
seg000:6C88                 xor     ax, ax
seg000:6C8A                 lahf
seg000:6C8B                 mov     [di+12], ax
seg000:6C8E                 pop     ax
seg000:6C8F                 mov     [di+10], ax
seg000:6C92                 pop     si
seg000:6C93                 pop     di
seg000:6C94                 mov     sp, bp
seg000:6C96                 pop     bp
seg000:6C97                 retn
seg000:6C97 parse           endp
seg000:6C97
seg000:6C98
seg000:6C98 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6C98
seg000:6C98
seg000:6C98 sysdispmsg      proc near               ; CODE XREF: preload_messages+22p
seg000:6C98                                         ; display_msg+2Cp ...
seg000:6C98                 call    _sysdispmsg
seg000:6C9D                 retn
seg000:6C9D sysdispmsg      endp
seg000:6C9D
seg000:6C9E
seg000:6C9E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6C9E
seg000:6C9E
seg000:6C9E sysloadmsg      proc near               ; CODE XREF: preload_messages+Fp
seg000:6C9E                 call    _sysloadmsg
seg000:6CA3                 retn
seg000:6CA3 sysloadmsg      endp
seg000:6CA3
seg000:6CA4
seg000:6CA4 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6CA4
seg000:6CA4
seg000:6CA4 sysgetmsg       proc near               ; CODE XREF: get_yes_no_values+1Ep
seg000:6CA4                                         ; get_yes_no_values+56p
seg000:6CA4                 call    _sysgetmsg
seg000:6CA9                 retn
seg000:6CA9 sysgetmsg       endp
seg000:6CA9
seg000:6CAA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6CAA
seg000:6CAA _astart:
seg000:6CAA                 mov     ah, 30h
seg000:6CAC                 int     21h             ; DOS - GET DOS VERSION
seg000:6CAC                                         ; Return: AL = major version number (00h for DOS 1.x)
seg000:6CAE                 cmp     al, 2
seg000:6CB0                 jnb     short setup
seg000:6CB2                 xor     ax, ax
seg000:6CB4                 push    es
seg000:6CB5                 push    ax
seg000:6CB6                 retf
seg000:6CB7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6CB7
seg000:6CB7 setup:                                  ; CODE XREF: seg000:6CB0j
seg000:6CB7                 mov     di, seg DGROUP
seg000:6CBA                 mov     si, ds:2
seg000:6CBE                 sub     si, di
seg000:6CC0                 cmp     si, 1000h
seg000:6CC4                 jb      short setSP
seg000:6CC6                 mov     si, 1000h
seg000:6CC9
seg000:6CC9 setSP:                                  ; CODE XREF: seg000:6CC4j
seg000:6CC9                 cli
seg000:6CCA                 mov     ss, di
seg000:6CCC                 assume ss:DGROUP
seg000:6CCC                 add     sp, offset dataoffset_end_2
seg000:6CD0                 sti
seg000:6CD1                 jnb     short SPok
seg000:6CD3                 push    ss
seg000:6CD4                 pop     ds
seg000:6CD5                 assume ds:DGROUP
seg000:6CD5                 call    _FF_MSGBANNER
seg000:6CD8                 xor     ax, ax
seg000:6CDA                 push    ax
seg000:6CDB                 call    _NMSG_WRITE
seg000:6CDE                 mov     ax, 4CFFh
seg000:6CE1                 int     21h             ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
seg000:6CE1                                         ; AL = exit code
seg000:6CE3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6CE3
seg000:6CE3 SPok:                                   ; CODE XREF: seg000:6CD1j
seg000:6CE3                 mov     ax, si
seg000:6CE5                 mov     cl, 4
seg000:6CE7                 shl     ax, cl
seg000:6CE9                 dec     ax
seg000:6CEA                 mov     ss:_asizds, ax
seg000:6CEE                 mov     bx, offset _nheap_desc
seg000:6CF1                 mov     word ptr ss:[bx], ss
seg000:6CF4                 and     sp, 0FFFEh
seg000:6CF7                 mov     ss:[bx+4], sp
seg000:6CFB                 mov     ax, 0FFFEh
seg000:6CFE                 push    ax
seg000:6CFF                 mov     ss:[bx+0Ah], sp
seg000:6D03                 not     ax
seg000:6D05                 push    ax
seg000:6D06                 mov     ss:[bx+6], sp
seg000:6D0A                 mov     ss:[bx+8], sp
seg000:6D0E                 mov     ss:_atopsp, sp
seg000:6D13                 add     si, di
seg000:6D15                 mov     ds:word_2, si
seg000:6D19                 mov     bx, es
seg000:6D1B                 sub     bx, si
seg000:6D1D                 neg     bx
seg000:6D1F                 mov     ah, 4Ah
seg000:6D21                 int     21h             ; DOS - 2+ - ADJUST MEMORY BLOCK SIZE (SETBLOCK)
seg000:6D21                                         ; ES = segment address of block to change
seg000:6D21                                         ; BX = new size in paragraphs
seg000:6D23                 mov     ss:_psp, ds
seg000:6D28                 push    ss
seg000:6D29                 pop     es
seg000:6D2A                 assume es:DGROUP
seg000:6D2A                 cld
seg000:6D2B                 mov     di, offset _strbuf_ptr
seg000:6D2E                 mov     cx, 8A10h
seg000:6D31                 sub     cx, di
seg000:6D33                 xor     ax, ax
seg000:6D35                 rep stosb
seg000:6D37                 push    ss
seg000:6D38                 pop     ds
seg000:6D39                 mov     cx, _qczrinit
seg000:6D3D                 jcxz    short _@F
seg000:6D3F                 call    cx ; byte_0
seg000:6D41
seg000:6D41 _@F:                                    ; CODE XREF: seg000:6D3Dj
seg000:6D41                 call    _setenvp
seg000:6D44                 call    _setargv
seg000:6D47                 xor     bp, bp
seg000:6D49                 call    _cinit
seg000:6D4C                 push    ss
seg000:6D4D                 pop     ds
seg000:6D4E                 push    environ
seg000:6D52                 push    _argv
seg000:6D56                 push    _argc
seg000:6D5A                 call    near ptr main
seg000:6D5D                 push    ax
seg000:6D5E                 call    _exit
seg000:6D61
seg000:6D61 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6D61
seg000:6D61
seg000:6D61 _aDBretaddr     proc near               ; CODE XREF: _chkstk-E96p
seg000:6D61                                         ; _exit_+39p ...
seg000:6D61                 retn
seg000:6D61 _aDBretaddr     endp
seg000:6D61
seg000:6D62 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6D62
seg000:6D62 _cintDIV:                               ; DATA XREF: _cinit+12o
seg000:6D62                 mov     ax, cs:_dataseg
seg000:6D66                 mov     ds, ax
seg000:6D68                 mov     ax, 3
seg000:6D6B                 mov     ss:_aexit_rtn, offset _exit
seg000:6D72 ; START OF FUNCTION CHUNK FOR _chkstk
seg000:6D72
seg000:6D72 loc_6D72:                               ; CODE XREF: _chkstk+14j
seg000:6D72                 push    ax
seg000:6D73                 call    _FF_MSGBANNER
seg000:6D76                 call    _NMSG_WRITE
seg000:6D79                 cmp     ss:_aDBswpflg, 0D6D6h
seg000:6D80                 jnz     short loc_6D89
seg000:6D82                 pop     ax
seg000:6D83                 push    ax
seg000:6D84                 call    ss:_aDBrterr
seg000:6D89
seg000:6D89 loc_6D89:                               ; CODE XREF: _chkstk-E9Aj
seg000:6D89                 mov     ax, 255
seg000:6D8C                 push    ax
seg000:6D8D                 call    _aexit_rtn
seg000:6D8D ; END OF FUNCTION CHUNK FOR _chkstk
seg000:6D8D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6D91 _dataseg        dw seg DGROUP           ; DATA XREF: seg000:_cintDIVr
seg000:6D93                 align 2
seg000:6D94
seg000:6D94 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6D94
seg000:6D94
seg000:6D94 _cinit          proc near               ; CODE XREF: seg000:6D49p
seg000:6D94                 mov     ax, 3500h
seg000:6D97                 int     21h             ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:6D97                                         ; AL = interrupt number
seg000:6D97                                         ; Return: ES:BX = value of interrupt vector
seg000:6D99                 mov     word ptr _aintdiv, bx
seg000:6D9D                 mov     word ptr _aintdiv+2, es
seg000:6DA1                 push    cs
seg000:6DA2                 pop     ds
seg000:6DA3                 assume ds:seg000
seg000:6DA3                 mov     ax, 2500h
seg000:6DA6                 mov     dx, offset _cintDIV
seg000:6DA9                 int     21h             ; DOS - SET INTERRUPT VECTOR
seg000:6DA9                                         ; AL = interrupt number
seg000:6DA9                                         ; DS:DX = new vector to be used for specified interrupt
seg000:6DAB                 push    ss
seg000:6DAC                 pop     ds
seg000:6DAD                 assume ds:DGROUP
seg000:6DAD                 cmp     word ptr fpmath, 0
seg000:6DB2                 jz      short nofloat_i
seg000:6DB4                 mov     word ptr fpmath+2, cs
seg000:6DB8                 mov     word ptr fpsignal+2, cs
seg000:6DBC                 mov     es, _psp
seg000:6DC0                 assume es:nothing
seg000:6DC0                 mov     si, es:2Ch
seg000:6DC5                 lds     ax, fpdata
seg000:6DC9                 assume ds:nothing
seg000:6DC9                 mov     dx, ds
seg000:6DCB                 xor     bx, bx
seg000:6DCD                 call    ss:fpmath
seg000:6DD2                 jnb     short fpok
seg000:6DD4                 push    ss
seg000:6DD5                 pop     ds
seg000:6DD6                 assume ds:DGROUP
seg000:6DD6                 jmp     _fptrap
seg000:6DD9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6DD9
seg000:6DD9 fpok:                                   ; CODE XREF: _cinit+3Ej
seg000:6DD9                 lds     ax, ss:fpsignal
seg000:6DDE                 assume ds:nothing
seg000:6DDE                 mov     dx, ds
seg000:6DE0                 mov     bx, 3
seg000:6DE3                 call    ss:fpmath
seg000:6DE8                 push    ss
seg000:6DE9                 pop     ds
seg000:6DEA                 assume ds:DGROUP
seg000:6DEA
seg000:6DEA nofloat_i:                              ; CODE XREF: _cinit+1Ej
seg000:6DEA                 mov     es, _psp
seg000:6DEE                 mov     cx, es:2Ch
seg000:6DF3                 jcxz    short nocfi
seg000:6DF5                 mov     es, cx
seg000:6DF7                 xor     di, di
seg000:6DF9
seg000:6DF9 cfilp:                                  ; CODE XREF: _cinit+7Ej
seg000:6DF9                 cmp     byte ptr es:[di], 0
seg000:6DFD                 jz      short nocfi
seg000:6DFF                 mov     cx, 13
seg000:6E02                 mov     si, offset cfile ; "_C_FILE_INFO="
seg000:6E05                 repe cmpsb
seg000:6E07                 jz      short gotcfi
seg000:6E09                 mov     cx, 7FFFh
seg000:6E0C                 xor     ax, ax
seg000:6E0E                 repne scasb
seg000:6E10                 jnz     short nocfi
seg000:6E12                 jmp     short cfilp
seg000:6E14 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6E14
seg000:6E14 gotcfi:                                 ; CODE XREF: _cinit+73j
seg000:6E14                 push    es
seg000:6E15                 push    ds
seg000:6E16                 pop     es
seg000:6E17                 assume es:DGROUP
seg000:6E17                 pop     ds
seg000:6E18                 assume ds:nothing
seg000:6E18                 mov     si, di
seg000:6E1A                 mov     di, offset _osfile
seg000:6E1D                 mov     cl, 4
seg000:6E1F
seg000:6E1F osfile_lp:                              ; CODE XREF: _cinit+9Bj
seg000:6E1F                 lodsb
seg000:6E20                 sub     al, 'A'
seg000:6E22                 jb      short donecfi
seg000:6E24                 shl     al, cl
seg000:6E26                 xchg    ax, dx
seg000:6E27                 lodsb
seg000:6E28                 sub     al, 'A'
seg000:6E2A                 jb      short donecfi
seg000:6E2C                 or      al, dl
seg000:6E2E                 stosb
seg000:6E2F                 jmp     short osfile_lp
seg000:6E31 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6E31
seg000:6E31 donecfi:                                ; CODE XREF: _cinit+8Ej
seg000:6E31                                         ; _cinit+96j
seg000:6E31                 push    ss
seg000:6E32                 pop     ds
seg000:6E33                 assume ds:DGROUP
seg000:6E33
seg000:6E33 nocfi:                                  ; CODE XREF: _cinit+5Fj
seg000:6E33                                         ; _cinit+69j ...
seg000:6E33                 mov     bx, 4
seg000:6E36
seg000:6E36 devloop:                                ; CODE XREF: _cinit+B9j
seg000:6E36                 and     _osfile[bx], not 40h
seg000:6E3B                 mov     ax, 4400h
seg000:6E3E                 int     21h             ; DOS - 2+ - IOCTL - GET DEVICE INFORMATION
seg000:6E3E                                         ; BX = file or device handle
seg000:6E40                 jb      short notdev
seg000:6E42                 test    dl, 80h
seg000:6E45                 jz      short notdev
seg000:6E47                 or      _osfile[bx], 40h
seg000:6E4C
seg000:6E4C notdev:                                 ; CODE XREF: _cinit+ACj
seg000:6E4C                                         ; _cinit+B1j
seg000:6E4C                 dec     bx
seg000:6E4D                 jns     short devloop
seg000:6E4F                 mov     si, offset xpbegin
seg000:6E52                 mov     di, offset xpbegin
seg000:6E55                 call    farinitterm
seg000:6E58                 mov     si, offset xpbegin
seg000:6E5B                 mov     di, offset xpbegin
seg000:6E5E                 call    initterm
seg000:6E61                 retn
seg000:6E61 _cinit          endp
seg000:6E61
seg000:6E62
seg000:6E62 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6E62
seg000:6E62 ; Attributes: noreturn bp-based frame
seg000:6E62
seg000:6E62 _exit           proc near               ; CODE XREF: main+37Ap
seg000:6E62                                         ; reboot_system+FCp ...
seg000:6E62                 push    bp
seg000:6E63                 mov     bp, sp
seg000:6E65
seg000:6E65 _cBegin:
seg000:6E65                 xor     cx, cx
seg000:6E67                 jmp     short common1
seg000:6E67 _exit           endp
seg000:6E67
seg000:6E69
seg000:6E69 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6E69
seg000:6E69 ; Attributes: noreturn bp-based frame
seg000:6E69
seg000:6E69 _exit_          proc near               ; CODE XREF: _chkstk-E8Dp
seg000:6E69                                         ; DATA XREF: DGROUP:_aexit_rtno
seg000:6E69
seg000:6E69 arg_0           = word ptr  4
seg000:6E69
seg000:6E69                 push    bp
seg000:6E6A                 mov     bp, sp
seg000:6E6C                 mov     cx, 1
seg000:6E6F                 jmp     short common1
seg000:6E71 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6E71                 push    bp
seg000:6E72                 mov     bp, sp
seg000:6E74                 push    si
seg000:6E75                 push    di
seg000:6E76                 mov     cx, 100h
seg000:6E79                 jmp     short common1
seg000:6E7B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6E7B                 push    bp
seg000:6E7C                 mov     bp, sp
seg000:6E7E                 push    si
seg000:6E7F                 push    di
seg000:6E80                 mov     cx, 101h
seg000:6E83
seg000:6E83 common1:                                ; CODE XREF: _exit+5j
seg000:6E83                                         ; _exit_+6j ...
seg000:6E83                 push    cx
seg000:6E84                 or      cl, cl
seg000:6E86                 jnz     short common2
seg000:6E88                 mov     si, offset xontab
seg000:6E8B                 mov     di, offset xontab
seg000:6E8E                 call    initterm
seg000:6E91                 mov     si, offset xpbegin
seg000:6E94                 mov     di, offset _strbuf_ptr
seg000:6E97                 call    initterm
seg000:6E9A                 cmp     _aDBswpflg, 0D6D6h
seg000:6EA0                 jnz     short common2
seg000:6EA2                 call    _aDBexit
seg000:6EA6
seg000:6EA6 common2:                                ; CODE XREF: _exit_+1Dj
seg000:6EA6                                         ; _exit_+37j
seg000:6EA6                 mov     si, offset _strbuf_ptr
seg000:6EA9                 mov     di, offset _strbuf_ptr
seg000:6EAC                 call    initterm
seg000:6EAF                 mov     si, offset _strbuf_ptr
seg000:6EB2                 mov     di, offset _strbuf_ptr
seg000:6EB5                 call    farinitterm
seg000:6EB8                 call    _nullcheck
seg000:6EBB                 or      ax, ax
seg000:6EBD                 jz      short afternullchk
seg000:6EBF                 pop     ax
seg000:6EC0                 or      ah, ah
seg000:6EC2                 push    ax
seg000:6EC3                 jnz     short afternullchk
seg000:6EC5                 cmp     [bp+arg_0], 0
seg000:6EC9                 jnz     short afternullchk
seg000:6ECB                 mov     [bp+arg_0], 255
seg000:6ED0
seg000:6ED0 afternullchk:                           ; CODE XREF: _exit_+54j
seg000:6ED0                                         ; _exit_+5Aj ...
seg000:6ED0                 call    _ctermsub
seg000:6ED3                 pop     ax
seg000:6ED4                 or      ah, ah
seg000:6ED6                 jnz     short returning
seg000:6ED8                 mov     ax, [bp+arg_0]
seg000:6EDB                 mov     ah, 4Ch
seg000:6EDD                 int     21h             ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
seg000:6EDD                                         ; AL = exit code
seg000:6EDF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6EDF
seg000:6EDF returning:                              ; CODE XREF: _exit_+6Dj
seg000:6EDF                 pop     di
seg000:6EE0                 pop     si
seg000:6EE1                 pop     bp
seg000:6EE2                 retn
seg000:6EE2 _exit_          endp
seg000:6EE2
seg000:6EE3
seg000:6EE3 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6EE3
seg000:6EE3
seg000:6EE3 _ctermsub       proc near               ; CODE XREF: _exit_:afternullchkp
seg000:6EE3                 mov     cx, word ptr fpmath+2
seg000:6EE7                 jcxz    short nofloat_t
seg000:6EE9                 mov     bx, 2
seg000:6EEC                 call    fpmath
seg000:6EF0
seg000:6EF0 nofloat_t:                              ; CODE XREF: _ctermsub+4j
seg000:6EF0                 push    ds
seg000:6EF1                 lds     dx, _aintdiv
seg000:6EF5                 assume ds:nothing
seg000:6EF5                 mov     ax, 2500h
seg000:6EF8                 int     21h             ; DOS - SET INTERRUPT VECTOR
seg000:6EF8                                         ; AL = interrupt number
seg000:6EF8                                         ; DS:DX = new vector to be used for specified interrupt
seg000:6EFA                 pop     ds
seg000:6EFB                 cmp     ds:_ovlflag, 0
seg000:6F00                 jz      short done_ovlvec
seg000:6F02                 push    ds
seg000:6F03                 mov     al, ds:_intno
seg000:6F06                 lds     dx, ds:_ovlvec
seg000:6F0A                 mov     ah, 25h
seg000:6F0C                 int     21h             ; DOS - SET INTERRUPT VECTOR
seg000:6F0C                                         ; AL = interrupt number
seg000:6F0C                                         ; DS:DX = new vector to be used for specified interrupt
seg000:6F0E                 pop     ds
seg000:6F0F
seg000:6F0F done_ovlvec:                            ; CODE XREF: _ctermsub+1Dj
seg000:6F0F                 retn
seg000:6F0F _ctermsub       endp
seg000:6F0F
seg000:6F10
seg000:6F10 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6F10
seg000:6F10
seg000:6F10 initterm        proc near               ; CODE XREF: _cinit+CAp
seg000:6F10                                         ; _exit_+25p ...
seg000:6F10                 cmp     si, di
seg000:6F12                 jnb     short itdone
seg000:6F14                 dec     di
seg000:6F15                 dec     di
seg000:6F16                 mov     cx, [di]
seg000:6F18                 jcxz    short initterm
seg000:6F1A                 call    cx
seg000:6F1C                 jmp     short initterm
seg000:6F1E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6F1E
seg000:6F1E itdone:                                 ; CODE XREF: initterm+2j
seg000:6F1E                 retn
seg000:6F1E initterm        endp
seg000:6F1E
seg000:6F1F
seg000:6F1F ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6F1F
seg000:6F1F
seg000:6F1F farinitterm     proc near               ; CODE XREF: _cinit+C1p
seg000:6F1F                                         ; _exit_+4Cp ...
seg000:6F1F                 cmp     si, di
seg000:6F21                 jnb     short faritdone
seg000:6F23                 sub     di, 4
seg000:6F26                 mov     ax, [di]
seg000:6F28                 or      ax, [di+2]
seg000:6F2B                 jz      short farinitterm
seg000:6F2D                 call    dword ptr [di]
seg000:6F2F                 jmp     short farinitterm
seg000:6F31 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6F31
seg000:6F31 faritdone:                              ; CODE XREF: farinitterm+2j
seg000:6F31                 retn
seg000:6F31 farinitterm     endp
seg000:6F31
seg000:6F32
seg000:6F32 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6F32
seg000:6F32 ; Attributes: bp-based frame
seg000:6F32
seg000:6F32 strcat          proc near               ; CODE XREF: get_volume_string+52p
seg000:6F32
seg000:6F32 arg_0           = word ptr  4
seg000:6F32 arg_2           = word ptr  6
seg000:6F32
seg000:6F32                 push    bp
seg000:6F33                 mov     bp, sp
seg000:6F35                 mov     dx, di
seg000:6F37                 mov     bx, si
seg000:6F39                 mov     ax, ds
seg000:6F3B                 mov     es, ax
seg000:6F3D                 assume es:nothing
seg000:6F3D                 mov     di, [bp+arg_0]
seg000:6F40                 xor     ax, ax
seg000:6F42                 mov     cx, 0FFFFh
seg000:6F45                 repne scasb
seg000:6F47                 lea     si, [di-1]
seg000:6F4A                 mov     di, [bp+arg_2]
seg000:6F4D                 mov     cx, 0FFFFh
seg000:6F50                 repne scasb
seg000:6F52                 not     cx
seg000:6F54                 sub     di, cx
seg000:6F56                 xchg    di, si
seg000:6F58                 mov     ax, [bp+arg_0]
seg000:6F5B                 test    si, 1
seg000:6F5F                 jz      short strcat_0
seg000:6F61                 movsb
seg000:6F62                 dec     cx
seg000:6F63
seg000:6F63 strcat_0:                               ; CODE XREF: strcat+2Dj
seg000:6F63                 shr     cx, 1
seg000:6F65                 rep movsw
seg000:6F67                 adc     cx, cx
seg000:6F69                 rep movsb
seg000:6F6B                 mov     si, bx
seg000:6F6D                 mov     di, dx
seg000:6F6F                 pop     bp
seg000:6F70                 retn
seg000:6F70 strcat          endp
seg000:6F70
seg000:6F70 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6F71                 align 2
seg000:6F72
seg000:6F72 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6F72
seg000:6F72 ; Attributes: bp-based frame
seg000:6F72
seg000:6F72 strcpy          proc near               ; CODE XREF: init_partition_tables+3A4p
seg000:6F72                                         ; init_partition_tables+3BEp ...
seg000:6F72
seg000:6F72 strcpy_dst      = word ptr  4
seg000:6F72 strcpy_src      = word ptr  6
seg000:6F72
seg000:6F72                 push    bp
seg000:6F73                 mov     bp, sp
seg000:6F75                 mov     dx, di
seg000:6F77                 mov     bx, si
seg000:6F79                 mov     si, [bp+strcpy_src]
seg000:6F7C                 mov     di, si
seg000:6F7E                 mov     ax, ds
seg000:6F80                 mov     es, ax
seg000:6F82                 xor     ax, ax
seg000:6F84                 mov     cx, 0FFFFh
seg000:6F87                 repne scasb
seg000:6F89                 not     cx
seg000:6F8B                 mov     di, [bp+strcpy_dst]
seg000:6F8E                 mov     ax, di
seg000:6F90                 test    al, 1
seg000:6F92                 jz      short strcpy_0
seg000:6F94                 movsb
seg000:6F95                 dec     cx
seg000:6F96
seg000:6F96 strcpy_0:                               ; CODE XREF: strcpy+20j
seg000:6F96                 shr     cx, 1
seg000:6F98                 rep movsw
seg000:6F9A                 adc     cx, cx
seg000:6F9C                 rep movsb
seg000:6F9E                 mov     si, bx
seg000:6FA0                 mov     di, dx
seg000:6FA2                 pop     bp
seg000:6FA3                 retn
seg000:6FA3 strcpy          endp
seg000:6FA3
seg000:6FA4
seg000:6FA4 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6FA4
seg000:6FA4 ; Attributes: bp-based frame
seg000:6FA4
seg000:6FA4 strcmp          proc near               ; CODE XREF: dos_delete+1FEp
seg000:6FA4                                         ; volume_delete+21Dp
seg000:6FA4
seg000:6FA4 strcmp_src      = word ptr  4
seg000:6FA4 strcmp_dst      = word ptr  6
seg000:6FA4
seg000:6FA4                 push    bp
seg000:6FA5                 mov     bp, sp
seg000:6FA7                 mov     dx, di
seg000:6FA9                 mov     bx, si
seg000:6FAB                 mov     ax, ds
seg000:6FAD                 mov     es, ax
seg000:6FAF                 mov     si, [bp+strcmp_src]
seg000:6FB2                 mov     di, [bp+strcmp_dst]
seg000:6FB5                 xor     ax, ax
seg000:6FB7                 mov     cx, 0FFFFh
seg000:6FBA                 repne scasb
seg000:6FBC                 not     cx
seg000:6FBE                 sub     di, cx
seg000:6FC0                 repe cmpsb
seg000:6FC2                 jz      short strcmp_0
seg000:6FC4                 sbb     ax, ax
seg000:6FC6                 sbb     ax, 0FFFFh
seg000:6FC9
seg000:6FC9 strcmp_0:                               ; CODE XREF: strcmp+1Ej
seg000:6FC9                 mov     si, bx
seg000:6FCB                 mov     di, dx
seg000:6FCD                 pop     bp
seg000:6FCE                 retn
seg000:6FCE strcmp          endp
seg000:6FCE
seg000:6FCE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6FCF                 align 2
seg000:6FD0
seg000:6FD0 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6FD0
seg000:6FD0 ; Attributes: bp-based frame
seg000:6FD0
seg000:6FD0 strlen          proc near               ; CODE XREF: get_volume+C7p
seg000:6FD0                                         ; load_logical_drive+132p ...
seg000:6FD0
seg000:6FD0 arg_0           = word ptr  4
seg000:6FD0
seg000:6FD0                 push    bp
seg000:6FD1                 mov     bp, sp
seg000:6FD3                 mov     dx, di
seg000:6FD5                 mov     ax, ds
seg000:6FD7                 mov     es, ax
seg000:6FD9                 mov     di, [bp+arg_0]
seg000:6FDC                 xor     ax, ax
seg000:6FDE                 mov     cx, 0FFFFh
seg000:6FE1                 repne scasb
seg000:6FE3                 not     cx
seg000:6FE5                 dec     cx
seg000:6FE6                 xchg    ax, cx
seg000:6FE7                 mov     di, dx
seg000:6FE9                 pop     bp
seg000:6FEA                 retn
seg000:6FEA strlen          endp
seg000:6FEA
seg000:6FEA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:6FEB                 align 2
seg000:6FEC
seg000:6FEC ; --------------- S U B R O U T I N E ---------------------------------------
seg000:6FEC
seg000:6FEC ; Attributes: bp-based frame
seg000:6FEC
seg000:6FEC strncpy         proc near               ; CODE XREF: get_volume+12Ap
seg000:6FEC                                         ; load_logical_drive+197p
seg000:6FEC
seg000:6FEC arg_0           = word ptr  4
seg000:6FEC arg_2           = word ptr  6
seg000:6FEC arg_4           = word ptr  8
seg000:6FEC
seg000:6FEC                 push    bp
seg000:6FED                 mov     bp, sp
seg000:6FEF                 push    di
seg000:6FF0                 push    si
seg000:6FF1                 push    ds
seg000:6FF2                 pop     es
seg000:6FF3                 mov     di, [bp+arg_0]
seg000:6FF6                 mov     si, [bp+arg_2]
seg000:6FF9                 mov     bx, di
seg000:6FFB                 mov     cx, [bp+arg_4]
seg000:6FFE                 jcxz    short strncpy_2
seg000:7000
seg000:7000 strncpy_0:                              ; CODE XREF: strncpy+1Aj
seg000:7000                 lodsb
seg000:7001                 or      al, al
seg000:7003                 jz      short strncpy_1
seg000:7005                 stosb
seg000:7006                 loop    strncpy_0
seg000:7008
seg000:7008 strncpy_1:                              ; CODE XREF: strncpy+17j
seg000:7008                 xor     al, al
seg000:700A                 rep stosb
seg000:700C
seg000:700C strncpy_2:                              ; CODE XREF: strncpy+12j
seg000:700C                 mov     ax, bx
seg000:700E                 pop     si
seg000:700F                 pop     di
seg000:7010                 mov     sp, bp
seg000:7012                 pop     bp
seg000:7013                 retn
seg000:7013 strncpy         endp
seg000:7013
seg000:7014 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7014
seg000:7014 getche:
seg000:7014                 mov     dh, 1
seg000:7016                 jmp     short getch_1
seg000:7018
seg000:7018 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7018
seg000:7018
seg000:7018 getch           proc near               ; CODE XREF: reboot_system+C3p
seg000:7018                 mov     dh, 8
seg000:701A
seg000:701A getch_1:                                ; CODE XREF: seg000:7016j
seg000:701A                 mov     ax, ds:_cpush
seg000:701D                 or      ah, ah
seg000:701F                 jnz     short getch_2
seg000:7021                 mov     ds:_cpush, 0FFFFh
seg000:7027                 jmp     short getch_4
seg000:7029 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7029
seg000:7029 getch_2:                                ; CODE XREF: getch+7j
seg000:7029                 cmp     ds:_aDBswpflg, 0D6D6h
seg000:702F                 jnz     short getch_3
seg000:7031                 push    bx
seg000:7032                 mov     bx, 0FFFFh
seg000:7035                 call    ds:_aDBswpchk
seg000:7039                 pop     bx
seg000:703A
seg000:703A getch_3:                                ; CODE XREF: getch+17j
seg000:703A                 xchg    ax, dx
seg000:703B                 int     21h             ; DOS -
seg000:703D                 mov     ah, 0
seg000:703F
seg000:703F getch_4:                                ; CODE XREF: getch+Fj
seg000:703F                 retn
seg000:703F getch           endp
seg000:703F
seg000:7040
seg000:7040 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7040
seg000:7040 ; Attributes: bp-based frame
seg000:7040
seg000:7040 int86           proc near               ; CODE XREF: check_valid_environment+Fp
seg000:7040                                         ; init_video_information+13p ...
seg000:7040
seg000:7040 var_E           = dword ptr -0Eh
seg000:7040 var_A           = word ptr -0Ah
seg000:7040 var_8           = byte ptr -8
seg000:7040 var_7           = byte ptr -7
seg000:7040 var_6           = byte ptr -6
seg000:7040 arg_0           = word ptr  4
seg000:7040 arg_2           = word ptr  6
seg000:7040 arg_4           = word ptr  8
seg000:7040
seg000:7040                 push    bp
seg000:7041                 mov     bp, sp
seg000:7043                 push    si
seg000:7044                 push    di
seg000:7045                 sub     sp, 10
seg000:7048                 mov     byte ptr [bp+var_A], 0CDh
seg000:704C                 mov     ax, [bp+arg_0]
seg000:704F                 mov     byte ptr [bp+var_A+1], al
seg000:7052                 cmp     al, 25h
seg000:7054                 jz      short int86_25h_26h
seg000:7056                 cmp     al, 26h
seg000:7058                 jz      short int86_25h_26h
seg000:705A
seg000:705A int86_retf_ins:
seg000:705A                 mov     [bp+var_8], 0CBh
seg000:705E                 jmp     short int86_dos_func
seg000:7060 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7060
seg000:7060 int86_25h_26h:                          ; CODE XREF: int86+14j
seg000:7060                                         ; int86+18j
seg000:7060                 mov     [bp+var_6], 0CBh
seg000:7064                 mov     [bp+var_7], 44h
seg000:7068                 mov     [bp+var_8], 44h
seg000:706C
seg000:706C int86_dos_func:                         ; CODE XREF: int86+1Ej
seg000:706C                 mov     word ptr [bp+var_E+2], ss
seg000:706F                 lea     ax, [bp+var_A]
seg000:7072                 mov     word ptr [bp+var_E], ax
seg000:7075                 mov     di, [bp+arg_2]
seg000:7078                 mov     ax, [di]
seg000:707A                 mov     bx, [di+2]
seg000:707D                 mov     cx, [di+4]
seg000:7080                 mov     dx, [di+6]
seg000:7083                 mov     si, [di+8]
seg000:7086                 mov     di, [di+10]
seg000:7089                 push    bp
seg000:708A                 call    [bp+var_E]
seg000:708D                 pop     bp
seg000:708E                 cld
seg000:708F                 push    di
seg000:7090                 mov     di, [bp+arg_4]
seg000:7093                 mov     [di], ax
seg000:7095                 mov     [di+2], bx
seg000:7098                 mov     [di+4], cx
seg000:709B                 mov     [di+6], dx
seg000:709E                 mov     [di+8], si
seg000:70A1                 pop     word ptr [di+10]
seg000:70A4                 jb      short int86_dos_func_err
seg000:70A6                 xor     si, si
seg000:70A8                 jmp     short int86_retn
seg000:70AA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:70AA
seg000:70AA int86_dos_func_err:                     ; CODE XREF: int86+64j
seg000:70AA                 call    _maperror
seg000:70AD                 mov     si, 1
seg000:70B0                 mov     ax, [di]
seg000:70B2
seg000:70B2 int86_retn:                             ; CODE XREF: int86+68j
seg000:70B2                 mov     [di+12], si
seg000:70B5                 add     sp, 10
seg000:70B8                 pop     di
seg000:70B9                 pop     si
seg000:70BA                 mov     sp, bp
seg000:70BC                 pop     bp
seg000:70BD                 retn
seg000:70BD int86           endp
seg000:70BD
seg000:70BE
seg000:70BE ; --------------- S U B R O U T I N E ---------------------------------------
seg000:70BE
seg000:70BE ; Attributes: bp-based frame
seg000:70BE
seg000:70BE sprintf         proc near               ; CODE XREF: dos_delete+69p
seg000:70BE                                         ; ext_delete+5Ep ...
seg000:70BE
seg000:70BE _printf_buff    = word ptr  4
seg000:70BE _printf_format  = word ptr  6
seg000:70BE _printf_arg     = byte ptr  8
seg000:70BE
seg000:70BE                 push    bp
seg000:70BF                 mov     bp, sp
seg000:70C1                 sub     sp, 2
seg000:70C4                 push    di
seg000:70C5                 push    si
seg000:70C6                 mov     ds:_strbuf_flag, 42h
seg000:70CB                 mov     ax, [bp+_printf_buff]
seg000:70CE                 mov     ds:_strbuf_base, ax
seg000:70D1                 mov     si, offset _strbuf_ptr
seg000:70D4                 mov     [si], ax
seg000:70D6                 mov     ds:_strbuf_cnt, 32767
seg000:70DC                 lea     ax, [bp+_printf_arg]
seg000:70DF                 push    ax
seg000:70E0                 push    [bp+_printf_format]
seg000:70E3                 mov     ax, si
seg000:70E5                 push    ax
seg000:70E6                 call    _output
seg000:70E9                 add     sp, 6
seg000:70EC                 mov     di, ax
seg000:70EE                 dec     ds:_strbuf_cnt
seg000:70F2                 js      short sprintf_0
seg000:70F4                 mov     bx, ds:_strbuf_ptr
seg000:70F8                 inc     ds:_strbuf_ptr
seg000:70FC                 mov     byte ptr [bx], 0
seg000:70FF                 jmp     short sprintf_1
seg000:7101 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7101                 nop
seg000:7102
seg000:7102 sprintf_0:                              ; CODE XREF: sprintf+34j
seg000:7102                 push    si
seg000:7103                 sub     ax, ax
seg000:7105                 push    ax
seg000:7106                 call    _flsbuf
seg000:7109                 add     sp, 4
seg000:710C
seg000:710C sprintf_1:                              ; CODE XREF: sprintf+41j
seg000:710C                 mov     ax, di
seg000:710E                 pop     si
seg000:710F                 pop     di
seg000:7110                 mov     sp, bp
seg000:7112                 pop     bp
seg000:7113                 retn
seg000:7113 sprintf         endp
seg000:7113
seg000:7114
seg000:7114 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7114
seg000:7114 ; Attributes: bp-based frame
seg000:7114
seg000:7114 int86x          proc near               ; CODE XREF: DiskIo+10p
seg000:7114
seg000:7114 var_10          = dword ptr -10h
seg000:7114 var_C           = word ptr -0Ch
seg000:7114 var_A           = byte ptr -0Ah
seg000:7114 var_9           = byte ptr -9
seg000:7114 var_8           = byte ptr -8
seg000:7114 arg_0           = word ptr  4
seg000:7114 arg_2           = word ptr  6
seg000:7114 arg_4           = word ptr  8
seg000:7114 arg_6           = word ptr  0Ah
seg000:7114
seg000:7114                 push    bp
seg000:7115                 mov     bp, sp
seg000:7117                 push    si
seg000:7118                 push    di
seg000:7119                 push    ds
seg000:711A                 sub     sp, 10
seg000:711D                 mov     byte ptr [bp+var_C], 0CDh
seg000:7121                 mov     ax, [bp+arg_0]
seg000:7124                 mov     byte ptr [bp+var_C+1], al
seg000:7127                 cmp     al, 25h
seg000:7129                 jz      short int86x_25h_26h
seg000:712B                 cmp     al, 26h
seg000:712D                 jz      short int86x_25h_26h
seg000:712F                 mov     [bp+var_A], 0CBh
seg000:7133                 jmp     short int86x_dos_func
seg000:7135 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7135
seg000:7135 int86x_25h_26h:                         ; CODE XREF: int86x+15j
seg000:7135                                         ; int86x+19j
seg000:7135                 mov     [bp+var_8], 0CBh
seg000:7139                 mov     [bp+var_9], 44h
seg000:713D                 mov     [bp+var_A], 44h
seg000:7141
seg000:7141 int86x_dos_func:                        ; CODE XREF: int86x+1Fj
seg000:7141                 mov     word ptr [bp+var_10+2], ss
seg000:7144                 lea     ax, [bp+var_C]
seg000:7147                 mov     word ptr [bp+var_10], ax
seg000:714A                 mov     di, [bp+arg_2]
seg000:714D                 mov     ax, [di]
seg000:714F                 mov     bx, [di+2]
seg000:7152                 mov     cx, [di+4]
seg000:7155                 mov     dx, [di+6]
seg000:7158                 mov     si, [di+8]
seg000:715B                 push    word ptr [di+10]
seg000:715E                 mov     di, [bp+arg_6]
seg000:7161                 mov     es, word ptr [di]
seg000:7163                 mov     ds, word ptr [di+6]
seg000:7166                 pop     di
seg000:7167                 push    bp
seg000:7168                 call    [bp+var_10]
seg000:716B                 pop     bp
seg000:716C                 cld
seg000:716D                 push    di
seg000:716E                 push    ds
seg000:716F                 push    ss
seg000:7170                 pop     ds
seg000:7171                 assume ds:DGROUP
seg000:7171                 mov     di, [bp+arg_6]
seg000:7174                 mov     word ptr [di], es
seg000:7176                 pop     word ptr [di+6]
seg000:7179                 mov     di, [bp+arg_4]
seg000:717C                 mov     [di], ax
seg000:717E                 mov     [di+2], bx
seg000:7181                 mov     [di+4], cx
seg000:7184                 mov     [di+6], dx
seg000:7187                 mov     [di+8], si
seg000:718A                 pop     word ptr [di+10]
seg000:718D                 jb      short int86x_dos_func_err
seg000:718F                 xor     si, si
seg000:7191                 jmp     short int86x_retn
seg000:7193 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7193
seg000:7193 int86x_dos_func_err:                    ; CODE XREF: int86x+79j
seg000:7193                 call    _maperror
seg000:7196                 mov     si, 1
seg000:7199                 mov     ax, [di]
seg000:719B
seg000:719B int86x_retn:                            ; CODE XREF: int86x+7Dj
seg000:719B                 mov     [di+12], si
seg000:719E                 add     sp, 10
seg000:71A1                 pop     ds
seg000:71A2                 assume ds:nothing
seg000:71A2                 pop     di
seg000:71A3                 pop     si
seg000:71A4                 mov     sp, bp
seg000:71A6                 pop     bp
seg000:71A7                 retn
seg000:71A7 int86x          endp
seg000:71A7
seg000:71A8
seg000:71A8 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:71A8
seg000:71A8 ; Attributes: bp-based frame
seg000:71A8
seg000:71A8 intdos          proc near               ; CODE XREF: load_logical_drive+24Ap
seg000:71A8                                         ; get_char_input+Fp ...
seg000:71A8
seg000:71A8 arg_0           = word ptr  4
seg000:71A8 arg_2           = word ptr  6
seg000:71A8
seg000:71A8                 push    bp
seg000:71A9                 mov     bp, sp
seg000:71AB                 push    si
seg000:71AC                 push    di
seg000:71AD                 mov     di, [bp+arg_0]
seg000:71B0                 mov     ax, [di]
seg000:71B2                 mov     bx, [di+2]
seg000:71B5                 mov     cx, [di+4]
seg000:71B8                 mov     dx, [di+6]
seg000:71BB                 mov     si, [di+8]
seg000:71BE                 mov     di, [di+10]
seg000:71C1                 int     21h             ; DOS -
seg000:71C3                 push    di
seg000:71C4                 mov     di, [bp+arg_2]
seg000:71C7                 mov     [di], ax
seg000:71C9                 mov     [di+2], bx
seg000:71CC                 mov     [di+4], cx
seg000:71CF                 mov     [di+6], dx
seg000:71D2                 mov     [di+8], si
seg000:71D5                 pop     word ptr [di+10]
seg000:71D8                 jb      short intdos_func_err
seg000:71DA                 xor     si, si
seg000:71DC                 jmp     short intdos_retn
seg000:71DE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:71DE
seg000:71DE intdos_func_err:                        ; CODE XREF: intdos+30j
seg000:71DE                 call    _maperror
seg000:71E1                 mov     si, 1
seg000:71E4                 mov     ax, [di]
seg000:71E6
seg000:71E6 intdos_retn:                            ; CODE XREF: intdos+34j
seg000:71E6                 mov     [di+12], si
seg000:71E9                 pop     di
seg000:71EA                 pop     si
seg000:71EB                 mov     sp, bp
seg000:71ED                 pop     bp
seg000:71EE                 retn
seg000:71EE intdos          endp
seg000:71EE
seg000:71EE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:71EF                 align 2
seg000:71F0
seg000:71F0 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:71F0
seg000:71F0 ; Attributes: bp-based frame
seg000:71F0
seg000:71F0 intdosx         proc near               ; CODE XREF: reboot_system+30p
seg000:71F0                                         ; parse_command_line+1Dp ...
seg000:71F0
seg000:71F0 arg_0           = word ptr  4
seg000:71F0 arg_2           = word ptr  6
seg000:71F0 arg_4           = word ptr  8
seg000:71F0
seg000:71F0                 push    bp
seg000:71F1                 mov     bp, sp
seg000:71F3                 push    si
seg000:71F4                 push    di
seg000:71F5                 mov     di, [bp+arg_0]
seg000:71F8                 mov     ax, [di]
seg000:71FA                 mov     bx, [di+2]
seg000:71FD                 mov     cx, [di+4]
seg000:7200                 mov     dx, [di+6]
seg000:7203                 mov     si, [di+8]
seg000:7206                 push    word ptr [di+10]
seg000:7209                 mov     di, [bp+arg_4]
seg000:720C                 mov     es, word ptr [di]
seg000:720E                 mov     ds, word ptr [di+6]
seg000:7211                 pop     di
seg000:7212                 int     21h             ; DOS -
seg000:7214                 push    di
seg000:7215                 push    ds
seg000:7216                 mov     di, ss
seg000:7218                 mov     ds, di
seg000:721A                 assume ds:DGROUP
seg000:721A                 mov     di, [bp+arg_4]
seg000:721D                 mov     word ptr [di], es
seg000:721F                 pop     word ptr [di+6]
seg000:7222                 mov     di, [bp+arg_2]
seg000:7225                 mov     [di], ax
seg000:7227                 mov     [di+2], bx
seg000:722A                 mov     [di+4], cx
seg000:722D                 mov     [di+6], dx
seg000:7230                 mov     [di+8], si
seg000:7233                 pop     word ptr [di+10]
seg000:7236                 jb      short intdosx_func_err
seg000:7238                 xor     si, si
seg000:723A                 jmp     short intdosx_retn
seg000:723C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:723C
seg000:723C intdosx_func_err:                       ; CODE XREF: intdosx+46j
seg000:723C                 call    _maperror
seg000:723F                 mov     si, 1
seg000:7242                 mov     ax, [di]
seg000:7244
seg000:7244 intdosx_retn:                           ; CODE XREF: intdosx+4Aj
seg000:7244                 mov     [di+12], si
seg000:7247                 pop     di
seg000:7248                 pop     si
seg000:7249                 mov     sp, bp
seg000:724B                 pop     bp
seg000:724C                 retn
seg000:724C intdosx         endp
seg000:724C
seg000:724C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:724D                 align 2
seg000:724E
seg000:724E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:724E
seg000:724E ; Attributes: bp-based frame
seg000:724E
seg000:724E segread         proc near               ; CODE XREF: Parse_msg+Ap
seg000:724E                                         ; get_fs_and_vol+29p ...
seg000:724E
seg000:724E arg_0           = word ptr  4
seg000:724E
seg000:724E                 push    bp
seg000:724F                 mov     bp, sp
seg000:7251                 mov     bx, [bp+arg_0]
seg000:7254                 mov     word ptr [bx+6], ds
seg000:7257                 mov     word ptr [bx], es
seg000:7259                 mov     word ptr [bx+2], cs
seg000:725C                 mov     word ptr [bx+4], ss
seg000:725F                 mov     sp, bp
seg000:7261                 pop     bp
seg000:7262                 retn
seg000:7262 segread         endp
seg000:7262
seg000:7262 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7263                 align 2
seg000:7264
seg000:7264 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7264
seg000:7264 ; Attributes: bp-based frame
seg000:7264
seg000:7264 strchr          proc near               ; CODE XREF: get_string_input+25Cp
seg000:7264
seg000:7264 strchr_string   = word ptr  4
seg000:7264 str_chr         = byte ptr  6
seg000:7264
seg000:7264                 push    bp
seg000:7265                 mov     bp, sp
seg000:7267                 push    di
seg000:7268                 mov     di, [bp+strchr_string]
seg000:726B                 push    ds
seg000:726C                 pop     es
seg000:726D                 assume es:DGROUP
seg000:726D                 mov     bx, di
seg000:726F                 xor     ax, ax
seg000:7271                 mov     cx, 0FFFFh
seg000:7274                 repne scasb
seg000:7276                 inc     cx
seg000:7277                 neg     cx
seg000:7279                 mov     al, [bp+str_chr]
seg000:727C                 mov     di, bx
seg000:727E                 repne scasb
seg000:7280                 dec     di
seg000:7281                 cmp     [di], al
seg000:7283                 jz      short strchr_0
seg000:7285                 xor     di, di
seg000:7287
seg000:7287 strchr_0:                               ; CODE XREF: strchr+1Fj
seg000:7287                 mov     ax, di
seg000:7289                 pop     di
seg000:728A                 mov     sp, bp
seg000:728C                 pop     bp
seg000:728D                 retn
seg000:728D strchr          endp
seg000:728D
seg000:728E
seg000:728E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:728E
seg000:728E ; Attributes: bp-based frame
seg000:728E
seg000:728E memset          proc near               ; CODE XREF: table_display+13p
seg000:728E                                         ; volume_display+1Dp ...
seg000:728E
seg000:728E arg_0           = word ptr  4
seg000:728E arg_2           = byte ptr  6
seg000:728E arg_4           = word ptr  8
seg000:728E
seg000:728E                 push    bp
seg000:728F                 mov     bp, sp
seg000:7291                 mov     dx, di
seg000:7293                 mov     ax, ds
seg000:7295                 mov     es, ax
seg000:7297                 mov     di, [bp+arg_0]
seg000:729A                 mov     bx, di
seg000:729C                 mov     cx, [bp+arg_4]
seg000:729F                 jcxz    short memset_2
seg000:72A1                 mov     al, [bp+arg_2]
seg000:72A4                 mov     ah, al
seg000:72A6                 test    di, 1
seg000:72AA                 jz      short metset_1
seg000:72AC                 stosb
seg000:72AD                 dec     cx
seg000:72AE
seg000:72AE metset_1:                               ; CODE XREF: memset+1Cj
seg000:72AE                 shr     cx, 1
seg000:72B0                 rep stosw
seg000:72B2                 adc     cx, cx
seg000:72B4                 rep stosb
seg000:72B6
seg000:72B6 memset_2:                               ; CODE XREF: memset+11j
seg000:72B6                 mov     di, dx
seg000:72B8                 xchg    ax, bx
seg000:72B9                 pop     bp
seg000:72BA                 retn
seg000:72BA memset          endp
seg000:72BA
seg000:72BA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:72BB                 align 2
seg000:72BC
seg000:72BC ; --------------- S U B R O U T I N E ---------------------------------------
seg000:72BC
seg000:72BC ; Attributes: bp-based frame
seg000:72BC
seg000:72BC mul32           proc near               ; CODE XREF: dos_create_partition+9Cp
seg000:72BC                                         ; make_partition+11Ap ...
seg000:72BC
seg000:72BC arg_0           = word ptr  4
seg000:72BC arg_2           = word ptr  6
seg000:72BC arg_4           = word ptr  8
seg000:72BC arg_6           = word ptr  0Ah
seg000:72BC
seg000:72BC                 push    bp
seg000:72BD                 mov     bp, sp
seg000:72BF                 mov     ax, [bp+arg_2]
seg000:72C2                 mov     cx, [bp+arg_6]
seg000:72C5                 or      cx, ax
seg000:72C7                 mov     cx, [bp+arg_4]
seg000:72CA                 jnz     short mul32_1
seg000:72CC
seg000:72CC mul32_0:
seg000:72CC                 mov     ax, [bp+arg_0]
seg000:72CF                 mul     cx
seg000:72D1                 pop     bp
seg000:72D2                 retn    8
seg000:72D5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:72D5
seg000:72D5 mul32_1:                                ; CODE XREF: mul32+Ej
seg000:72D5                 push    bx
seg000:72D6                 mul     cx
seg000:72D8                 mov     bx, ax
seg000:72DA                 mov     ax, [bp+arg_0]
seg000:72DD                 mul     [bp+arg_6]
seg000:72E0                 add     bx, ax
seg000:72E2                 mov     ax, [bp+arg_0]
seg000:72E5                 mul     cx
seg000:72E7                 add     dx, bx
seg000:72E9                 pop     bx
seg000:72EA                 pop     bp
seg000:72EB                 retn    8
seg000:72EB mul32           endp
seg000:72EB
seg000:72EE
seg000:72EE ; --------------- S U B R O U T I N E ---------------------------------------
seg000:72EE
seg000:72EE ; Attributes: bp-based frame
seg000:72EE
seg000:72EE _mod32          proc near               ; CODE XREF: mbytes_to_cylinders+5Cp
seg000:72EE                                         ; cylinders_to_percent+3Dp
seg000:72EE
seg000:72EE arg_0           = word ptr  4
seg000:72EE arg_2           = word ptr  6
seg000:72EE arg_4           = word ptr  8
seg000:72EE arg_6           = word ptr  0Ah
seg000:72EE
seg000:72EE                 push    bp
seg000:72EF                 mov     bp, sp
seg000:72F1                 push    bx
seg000:72F2                 push    di
seg000:72F3                 xor     di, di
seg000:72F5                 mov     ax, [bp+arg_2]
seg000:72F8                 or      ax, ax
seg000:72FA                 jge     short _mod32_0
seg000:72FC                 inc     di
seg000:72FD                 mov     dx, [bp+arg_0]
seg000:7300                 neg     ax
seg000:7302                 neg     dx
seg000:7304                 sbb     ax, 0
seg000:7307                 mov     [bp+arg_2], ax
seg000:730A                 mov     [bp+arg_0], dx
seg000:730D
seg000:730D _mod32_0:                               ; CODE XREF: _mod32+Cj
seg000:730D                 mov     ax, [bp+arg_6]
seg000:7310                 or      ax, ax
seg000:7312                 jge     short _mod32_1
seg000:7314                 mov     dx, [bp+arg_4]
seg000:7317                 neg     ax
seg000:7319                 neg     dx
seg000:731B                 sbb     ax, 0
seg000:731E                 mov     [bp+arg_6], ax
seg000:7321                 mov     [bp+arg_4], dx
seg000:7324
seg000:7324 _mod32_1:                               ; CODE XREF: _mod32+24j
seg000:7324                 or      ax, ax
seg000:7326                 jnz     short _mod32_2
seg000:7328                 mov     cx, [bp+arg_4]
seg000:732B                 mov     ax, [bp+arg_2]
seg000:732E                 xor     dx, dx
seg000:7330                 div     cx
seg000:7332                 mov     ax, [bp+arg_0]
seg000:7335                 div     cx
seg000:7337                 mov     ax, dx
seg000:7339                 xor     dx, dx
seg000:733B                 dec     di
seg000:733C                 jns     short _mod32_6
seg000:733E                 jmp     short _mod32_7
seg000:7340 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7340
seg000:7340 _mod32_2:                               ; CODE XREF: _mod32+38j
seg000:7340                 mov     bx, ax
seg000:7342                 mov     cx, [bp+arg_4]
seg000:7345                 mov     dx, [bp+arg_2]
seg000:7348                 mov     ax, [bp+arg_0]
seg000:734B
seg000:734B _mod32_3:                               ; CODE XREF: _mod32+67j
seg000:734B                 shr     bx, 1
seg000:734D                 rcr     cx, 1
seg000:734F                 shr     dx, 1
seg000:7351                 rcr     ax, 1
seg000:7353                 or      bx, bx
seg000:7355                 jnz     short _mod32_3
seg000:7357                 div     cx
seg000:7359                 mov     cx, ax
seg000:735B                 mul     [bp+arg_6]
seg000:735E                 xchg    ax, cx
seg000:735F                 mul     [bp+arg_4]
seg000:7362                 add     dx, cx
seg000:7364                 jb      short _mod32_4
seg000:7366                 cmp     dx, [bp+arg_2]
seg000:7369                 ja      short _mod32_4
seg000:736B                 jb      short _mod32_5
seg000:736D                 cmp     ax, [bp+arg_0]
seg000:7370                 jbe     short _mod32_5
seg000:7372
seg000:7372 _mod32_4:                               ; CODE XREF: _mod32+76j
seg000:7372                                         ; _mod32+7Bj
seg000:7372                 sub     ax, [bp+arg_4]
seg000:7375                 sbb     dx, [bp+arg_6]
seg000:7378
seg000:7378 _mod32_5:                               ; CODE XREF: _mod32+7Dj
seg000:7378                                         ; _mod32+82j
seg000:7378                 sub     ax, [bp+arg_0]
seg000:737B                 sbb     dx, [bp+arg_2]
seg000:737E                 dec     di
seg000:737F                 jns     short _mod32_7
seg000:7381
seg000:7381 _mod32_6:                               ; CODE XREF: _mod32+4Ej
seg000:7381                 neg     dx
seg000:7383                 neg     ax
seg000:7385                 sbb     dx, 0
seg000:7388
seg000:7388 _mod32_7:                               ; CODE XREF: _mod32+50j
seg000:7388                                         ; _mod32+91j
seg000:7388                 pop     di
seg000:7389                 pop     bx
seg000:738A                 pop     bp
seg000:738B                 retn    8
seg000:738B _mod32          endp
seg000:738B
seg000:738E
seg000:738E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:738E
seg000:738E
seg000:738E shl32           proc near               ; CODE XREF: init_partition_tables+132p
seg000:738E                                         ; init_partition_tables+190p ...
seg000:738E                 xor     ch, ch
seg000:7390                 jcxz    short shl31_1
seg000:7392
seg000:7392 shl32_0:                                ; CODE XREF: shl32+8j
seg000:7392                 shl     ax, 1
seg000:7394                 rcl     dx, 1
seg000:7396                 loop    shl32_0
seg000:7398
seg000:7398 shl31_1:                                ; CODE XREF: shl32+2j
seg000:7398                 retn
seg000:7398 shl32           endp
seg000:7398
seg000:7398 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7399                 align 2
seg000:739A
seg000:739A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:739A
seg000:739A ; Attributes: bp-based frame
seg000:739A
seg000:739A div32           proc near               ; CODE XREF: verify_tracks+C1p
seg000:739A                                         ; mbytes_to_cylinders+29p ...
seg000:739A
seg000:739A dividend_lw     = word ptr  4
seg000:739A dividend_hw     = word ptr  6
seg000:739A divisor_lw      = word ptr  8
seg000:739A divisor_hw      = byte ptr  0Ah
seg000:739A
seg000:739A                 push    bp
seg000:739B                 mov     bp, sp
seg000:739D                 push    bx
seg000:739E                 push    si
seg000:739F                 mov     ax, word ptr [bp+divisor_hw]
seg000:73A2                 or      ax, ax
seg000:73A4                 jnz     short div32_0
seg000:73A6                 mov     cx, [bp+divisor_lw]
seg000:73A9                 mov     ax, [bp+dividend_hw]
seg000:73AC                 xor     dx, dx
seg000:73AE                 div     cx
seg000:73B0                 mov     bx, ax
seg000:73B2                 mov     ax, [bp+dividend_lw]
seg000:73B5                 div     cx
seg000:73B7                 mov     dx, bx
seg000:73B9                 jmp     short div32_4
seg000:73BB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:73BB
seg000:73BB div32_0:                                ; CODE XREF: div32+Aj
seg000:73BB                 mov     cx, ax
seg000:73BD                 mov     bx, [bp+divisor_lw]
seg000:73C0                 mov     dx, [bp+dividend_hw]
seg000:73C3                 mov     ax, [bp+dividend_lw]
seg000:73C6
seg000:73C6 div32_1:                                ; CODE XREF: div32+36j
seg000:73C6                 shr     cx, 1
seg000:73C8                 rcr     bx, 1
seg000:73CA                 shr     dx, 1
seg000:73CC                 rcr     ax, 1
seg000:73CE                 or      cx, cx
seg000:73D0                 jnz     short div32_1
seg000:73D2                 div     bx
seg000:73D4                 mov     si, ax
seg000:73D6                 mul     word ptr [bp+divisor_hw]
seg000:73D9                 xchg    ax, cx
seg000:73DA                 mov     ax, [bp+divisor_lw]
seg000:73DD                 mul     si
seg000:73DF                 add     dx, cx
seg000:73E1                 jb      short div32_2
seg000:73E3                 cmp     dx, [bp+dividend_hw]
seg000:73E6                 ja      short div32_2
seg000:73E8                 jb      short div32_3
seg000:73EA                 cmp     ax, [bp+dividend_lw]
seg000:73ED                 jbe     short div32_3
seg000:73EF
seg000:73EF div32_2:                                ; CODE XREF: div32+47j
seg000:73EF                                         ; div32+4Cj
seg000:73EF                 dec     si
seg000:73F0
seg000:73F0 div32_3:                                ; CODE XREF: div32+4Ej
seg000:73F0                                         ; div32+53j
seg000:73F0                 xor     dx, dx
seg000:73F2                 xchg    ax, si
seg000:73F3
seg000:73F3 div32_4:                                ; CODE XREF: div32+1Fj
seg000:73F3                 pop     si
seg000:73F4                 pop     bx
seg000:73F5                 pop     bp
seg000:73F6                 retn    8
seg000:73F6 div32           endp
seg000:73F6
seg000:73F6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:73F9                 align 2
seg000:73FA
seg000:73FA ; --------------- S U B R O U T I N E ---------------------------------------
seg000:73FA
seg000:73FA ; Attributes: bp-based frame
seg000:73FA
seg000:73FA mod32           proc near               ; CODE XREF: percent_to_cylinders+29p
seg000:73FA
seg000:73FA arg_0           = word ptr  4
seg000:73FA arg_2           = word ptr  6
seg000:73FA arg_4           = word ptr  8
seg000:73FA arg_6           = word ptr  0Ah
seg000:73FA
seg000:73FA                 push    bp
seg000:73FB                 mov     bp, sp
seg000:73FD                 push    bx
seg000:73FE                 mov     ax, [bp+arg_6]
seg000:7401                 or      ax, ax
seg000:7403                 jnz     short mod32_0
seg000:7405                 mov     cx, [bp+arg_4]
seg000:7408                 mov     ax, [bp+arg_2]
seg000:740B                 xor     dx, dx
seg000:740D                 div     cx
seg000:740F                 mov     ax, [bp+arg_0]
seg000:7412                 div     cx
seg000:7414                 mov     ax, dx
seg000:7416                 xor     dx, dx
seg000:7418                 jmp     short mod32_4
seg000:741A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:741A
seg000:741A mod32_0:                                ; CODE XREF: mod32+9j
seg000:741A                 mov     cx, ax
seg000:741C                 mov     bx, [bp+arg_4]
seg000:741F                 mov     dx, [bp+arg_2]
seg000:7422                 mov     ax, [bp+arg_0]
seg000:7425
seg000:7425 mod32_1:                                ; CODE XREF: mod32+35j
seg000:7425                 shr     cx, 1
seg000:7427                 rcr     bx, 1
seg000:7429                 shr     dx, 1
seg000:742B                 rcr     ax, 1
seg000:742D                 or      cx, cx
seg000:742F                 jnz     short mod32_1
seg000:7431                 div     bx
seg000:7433                 mov     cx, ax
seg000:7435                 mul     [bp+arg_6]
seg000:7438                 xchg    ax, cx
seg000:7439                 mul     [bp+arg_4]
seg000:743C                 add     dx, cx
seg000:743E                 jb      short mod32_2
seg000:7440                 cmp     dx, [bp+arg_2]
seg000:7443                 ja      short mod32_2
seg000:7445                 jb      short mod32_3
seg000:7447                 cmp     ax, [bp+arg_0]
seg000:744A                 jbe     short mod32_3
seg000:744C
seg000:744C mod32_2:                                ; CODE XREF: mod32+44j
seg000:744C                                         ; mod32+49j
seg000:744C                 sub     ax, [bp+arg_4]
seg000:744F                 sbb     dx, [bp+arg_6]
seg000:7452
seg000:7452 mod32_3:                                ; CODE XREF: mod32+4Bj
seg000:7452                                         ; mod32+50j
seg000:7452                 sub     ax, [bp+arg_0]
seg000:7455                 sbb     dx, [bp+arg_2]
seg000:7458                 neg     dx
seg000:745A                 neg     ax
seg000:745C                 sbb     dx, 0
seg000:745F
seg000:745F mod32_4:                                ; CODE XREF: mod32+1Ej
seg000:745F                 pop     bx
seg000:7460                 pop     bp
seg000:7461                 retn    8
seg000:7461 mod32           endp
seg000:7461
seg000:7464
seg000:7464 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7464
seg000:7464
seg000:7464 shr32           proc near               ; CODE XREF: write_master_boot_to_disk+F6p
seg000:7464                                         ; write_master_boot_to_disk+12Bp ...
seg000:7464                 xor     ch, ch
seg000:7466                 jcxz    short shr32_1
seg000:7468
seg000:7468 shr32_0:                                ; CODE XREF: shr32+8j
seg000:7468                 shr     dx, 1
seg000:746A                 rcr     ax, 1
seg000:746C                 loop    shr32_0
seg000:746E
seg000:746E shr32_1:                                ; CODE XREF: shr32+2j
seg000:746E                 retn
seg000:746E shr32           endp
seg000:746E
seg000:746E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:746F                 align 2
seg000:7470
seg000:7470 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7470
seg000:7470
seg000:7470 _setargv        proc near               ; CODE XREF: seg000:6D44p
seg000:7470                 pop     retadr
seg000:7474                 mov     ah, 30h
seg000:7476                 int     21h             ; DOS - GET DOS VERSION
seg000:7476                                         ; Return: AL = major version number (00h for DOS 1.x)
seg000:7478                 mov     word ptr _dosvermajor, ax
seg000:747B                 mov     dx, 1
seg000:747E                 cmp     al, 2
seg000:7480                 jz      short dos_two
seg000:7482                 mov     es, _psp
seg000:7486                 assume es:nothing
seg000:7486                 mov     es, word ptr es:2Ch
seg000:748B                 mov     _pgmptr_2, es
seg000:748F                 xor     ax, ax
seg000:7491                 cwd
seg000:7492                 mov     cx, 8000h
seg000:7495                 xor     di, di
seg000:7497
seg000:7497 find_env_end:                           ; CODE XREF: _setargv+2Aj
seg000:7497                 repne scasb
seg000:7499                 scasb
seg000:749A                 jnz     short find_env_end
seg000:749C                 inc     di
seg000:749D                 inc     di
seg000:749E                 mov     _pgmptr, di
seg000:74A2                 mov     cx, 0FFFFh
seg000:74A5                 repne scasb
seg000:74A7                 not     cx
seg000:74A9                 mov     dx, cx
seg000:74AB
seg000:74AB dos_two:                                ; CODE XREF: _setargv+10j
seg000:74AB                 mov     di, 1
seg000:74AE                 mov     si, 81h
seg000:74B1                 mov     ds, _psp
seg000:74B5                 assume ds:nothing
seg000:74B5
seg000:74B5 arg110:                                 ; CODE XREF: _setargv+48j
seg000:74B5                                         ; _setargv+4Cj ...
seg000:74B5                 lodsb
seg000:74B6                 cmp     al, ' '
seg000:74B8                 jz      short arg110
seg000:74BA                 cmp     al, 9
seg000:74BC                 jz      short arg110
seg000:74BE                 cmp     al, 0Dh
seg000:74C0                 jz      short arg400
seg000:74C2                 or      al, al
seg000:74C4                 jz      short arg400
seg000:74C6                 inc     di
seg000:74C7
seg000:74C7 arg200:                                 ; CODE XREF: _setargv+82j
seg000:74C7                 dec     si
seg000:74C8
seg000:74C8 arg210:                                 ; CODE XREF: _setargv+72j
seg000:74C8                                         ; _setargv+8Cj ...
seg000:74C8                 lodsb
seg000:74C9                 cmp     al, ' '
seg000:74CB                 jz      short arg110
seg000:74CD                 cmp     al, 9
seg000:74CF                 jz      short arg110
seg000:74D1                 cmp     al, 0Dh
seg000:74D3                 jz      short arg400
seg000:74D5                 or      al, al
seg000:74D7                 jz      short arg400
seg000:74D9                 cmp     al, '"'
seg000:74DB                 jz      short arg310
seg000:74DD                 cmp     al, '\'
seg000:74DF                 jz      short arg220
seg000:74E1                 inc     dx
seg000:74E2                 jmp     short arg210
seg000:74E4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:74E4
seg000:74E4 arg220:                                 ; CODE XREF: _setargv+6Fj
seg000:74E4                 xor     cx, cx
seg000:74E6
seg000:74E6 arg221:                                 ; CODE XREF: _setargv+7Aj
seg000:74E6                 inc     cx
seg000:74E7                 lodsb
seg000:74E8                 cmp     al, '\'
seg000:74EA                 jz      short arg221
seg000:74EC                 cmp     al, '"'
seg000:74EE                 jz      short arg230
seg000:74F0                 add     dx, cx
seg000:74F2                 jmp     short arg200
seg000:74F4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:74F4
seg000:74F4 arg230:                                 ; CODE XREF: _setargv+7Ej
seg000:74F4                 mov     ax, cx
seg000:74F6                 shr     cx, 1
seg000:74F8                 adc     dx, cx
seg000:74FA                 test    al, 1
seg000:74FC                 jnz     short arg210
seg000:74FE                 jmp     short arg310
seg000:7500 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7500
seg000:7500 arg300:                                 ; CODE XREF: _setargv+B3j
seg000:7500                 dec     si
seg000:7501
seg000:7501 arg310:                                 ; CODE XREF: _setargv+6Bj
seg000:7501                                         ; _setargv+8Ej ...
seg000:7501                 lodsb
seg000:7502                 cmp     al, 0Dh
seg000:7504                 jz      short arg400
seg000:7506                 or      al, al
seg000:7508                 jz      short arg400
seg000:750A                 cmp     al, '"'
seg000:750C                 jz      short arg210
seg000:750E                 cmp     al, '\'
seg000:7510                 jz      short arg320
seg000:7512                 inc     dx
seg000:7513                 jmp     short arg310
seg000:7515 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7515
seg000:7515 arg320:                                 ; CODE XREF: _setargv+A0j
seg000:7515                 xor     cx, cx
seg000:7517
seg000:7517 arg321:                                 ; CODE XREF: _setargv+ABj
seg000:7517                 inc     cx
seg000:7518                 lodsb
seg000:7519                 cmp     al, '\'
seg000:751B                 jz      short arg321
seg000:751D                 cmp     al, '"'
seg000:751F                 jz      short arg330
seg000:7521                 add     dx, cx
seg000:7523                 jmp     short arg300
seg000:7525 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7525
seg000:7525 arg330:                                 ; CODE XREF: _setargv+AFj
seg000:7525                 mov     ax, cx
seg000:7527                 shr     cx, 1
seg000:7529                 adc     dx, cx
seg000:752B                 test    al, 1
seg000:752D                 jnz     short arg310
seg000:752F                 jmp     short arg210
seg000:7531 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7531
seg000:7531 arg400:                                 ; CODE XREF: _setargv+50j
seg000:7531                                         ; _setargv+54j ...
seg000:7531                 push    ss
seg000:7532                 pop     ds
seg000:7533                 assume ds:DGROUP
seg000:7533                 mov     _argc, di
seg000:7537                 add     dx, di
seg000:7539                 inc     di
seg000:753A                 shl     di, 1
seg000:753C                 add     dx, di
seg000:753E                 inc     dx
seg000:753F                 and     dl, not 1
seg000:7542                 sub     sp, dx
seg000:7544                 mov     ax, sp
seg000:7546                 mov     _argv, ax
seg000:7549                 mov     bx, ax
seg000:754B                 add     di, bx
seg000:754D                 push    ss
seg000:754E                 pop     es
seg000:754F                 assume es:DGROUP
seg000:754F                 mov     ss:[bx], di
seg000:7552                 inc     bx
seg000:7553                 inc     bx
seg000:7554                 lds     si, dword ptr _pgmptr
seg000:7558                 assume ds:nothing
seg000:7558
seg000:7558 copy_argv0:                             ; CODE XREF: _setargv+ECj
seg000:7558                 lodsb
seg000:7559                 stosb
seg000:755A                 or      al, al
seg000:755C                 jnz     short copy_argv0
seg000:755E                 mov     ds, ss:_psp
seg000:7563                 mov     si, 81h
seg000:7566                 jmp     short arg510
seg000:7568 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7568
seg000:7568 arg500:                                 ; CODE XREF: _setargv+115j
seg000:7568                                         ; _setargv+119j
seg000:7568                 xor     ax, ax
seg000:756A                 stosb
seg000:756B
seg000:756B arg510:                                 ; CODE XREF: _setargv+F6j
seg000:756B                                         ; _setargv+FEj ...
seg000:756B                 lodsb
seg000:756C                 cmp     al, ' '
seg000:756E                 jz      short arg510
seg000:7570                 cmp     al, 9
seg000:7572                 jz      short arg510
seg000:7574                 cmp     al, 0Dh
seg000:7576                 jz      short arg810
seg000:7578                 or      al, al
seg000:757A                 jz      short arg810
seg000:757C                 mov     ss:[bx], di
seg000:757F                 inc     bx
seg000:7580                 inc     bx
seg000:7581
seg000:7581 arg600:                                 ; CODE XREF: _setargv+13Ej
seg000:7581                 dec     si
seg000:7582
seg000:7582 arg610:                                 ; CODE XREF: _setargv+12Cj
seg000:7582                                         ; _setargv+14Bj ...
seg000:7582                 lodsb
seg000:7583                 cmp     al, ' '
seg000:7585                 jz      short arg500
seg000:7587                 cmp     al, 9
seg000:7589                 jz      short arg500
seg000:758B                 cmp     al, 0Dh
seg000:758D                 jz      short arg800
seg000:758F                 or      al, al
seg000:7591                 jz      short arg800
seg000:7593                 cmp     al, '"'
seg000:7595                 jz      short arg710
seg000:7597                 cmp     al, '\'
seg000:7599                 jz      short arg620
seg000:759B                 stosb
seg000:759C                 jmp     short arg610
seg000:759E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:759E
seg000:759E arg620:                                 ; CODE XREF: _setargv+129j
seg000:759E                 xor     cx, cx
seg000:75A0
seg000:75A0 arg621:                                 ; CODE XREF: _setargv+134j
seg000:75A0                 inc     cx
seg000:75A1                 lodsb
seg000:75A2                 cmp     al, '\'
seg000:75A4                 jz      short arg621
seg000:75A6                 cmp     al, '"'
seg000:75A8                 jz      short arg630
seg000:75AA                 mov     al, '\'
seg000:75AC                 rep stosb
seg000:75AE                 jmp     short arg600
seg000:75B0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:75B0
seg000:75B0 arg630:                                 ; CODE XREF: _setargv+138j
seg000:75B0                 mov     al, '\'
seg000:75B2                 shr     cx, 1
seg000:75B4                 rep stosb
seg000:75B6                 jnb     short arg710
seg000:75B8                 mov     al, '"'
seg000:75BA                 stosb
seg000:75BB                 jmp     short arg610
seg000:75BD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:75BD
seg000:75BD arg700:                                 ; CODE XREF: _setargv+172j
seg000:75BD                 dec     si
seg000:75BE
seg000:75BE arg710:                                 ; CODE XREF: _setargv+125j
seg000:75BE                                         ; _setargv+146j ...
seg000:75BE                 lodsb
seg000:75BF                 cmp     al, 0Dh
seg000:75C1                 jz      short arg800
seg000:75C3                 or      al, al
seg000:75C5                 jz      short arg800
seg000:75C7                 cmp     al, '"'
seg000:75C9                 jz      short arg610
seg000:75CB                 cmp     al, '\'
seg000:75CD                 jz      short arg720
seg000:75CF                 stosb
seg000:75D0                 jmp     short arg710
seg000:75D2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:75D2
seg000:75D2 arg720:                                 ; CODE XREF: _setargv+15Dj
seg000:75D2                 xor     cx, cx
seg000:75D4
seg000:75D4 arg721:                                 ; CODE XREF: _setargv+168j
seg000:75D4                 inc     cx
seg000:75D5                 lodsb
seg000:75D6                 cmp     al, '\'
seg000:75D8                 jz      short arg721
seg000:75DA                 cmp     al, '"'
seg000:75DC                 jz      short arg730
seg000:75DE                 mov     al, '\'
seg000:75E0                 rep stosb
seg000:75E2                 jmp     short arg700
seg000:75E4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:75E4
seg000:75E4 arg730:                                 ; CODE XREF: _setargv+16Cj
seg000:75E4                 mov     al, '\'
seg000:75E6                 shr     cx, 1
seg000:75E8                 rep stosb
seg000:75EA                 jnb     short arg610
seg000:75EC                 mov     al, '"'
seg000:75EE                 stosb
seg000:75EF                 jmp     short arg710
seg000:75F1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:75F1
seg000:75F1 arg800:                                 ; CODE XREF: _setargv+11Dj
seg000:75F1                                         ; _setargv+121j ...
seg000:75F1                 xor     ax, ax
seg000:75F3                 stosb
seg000:75F4
seg000:75F4 arg810:                                 ; CODE XREF: _setargv+106j
seg000:75F4                                         ; _setargv+10Aj
seg000:75F4                 push    ss
seg000:75F5                 pop     ds
seg000:75F6                 assume ds:DGROUP
seg000:75F6                 mov     word ptr [bx], 0
seg000:75FA                 jmp     retadr
seg000:75FA _setargv        endp
seg000:75FA
seg000:75FE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:75FE
seg000:75FE _dosret0:
seg000:75FE                 jb      short DOSerror
seg000:7600
seg000:7600 ret_0:                                  ; CODE XREF: seg000:_dosreturnj
seg000:7600                 xor     ax, ax
seg000:7602                 mov     sp, bp
seg000:7604                 pop     bp
seg000:7605                 retn
seg000:7606 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7606
seg000:7606 _dosreturn:
seg000:7606                 jnb     short ret_0
seg000:7608                 push    ax
seg000:7609                 call    maperror
seg000:760C                 pop     ax
seg000:760D                 xor     ah, ah
seg000:760F                 mov     sp, bp
seg000:7611                 pop     bp
seg000:7612                 retn
seg000:7613 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7613 ; START OF FUNCTION CHUNK FOR _write
seg000:7613
seg000:7613 _dosretax:                              ; CODE XREF: _lseek:errexitj
seg000:7613                                         ; _write:to_dosretaxj ...
seg000:7613                 jnb     short loc_761C
seg000:7615
seg000:7615 DOSerror:                               ; CODE XREF: seg000:_dosret0j
seg000:7615                 call    maperror
seg000:7618                 mov     ax, -1
seg000:761B                 cwd
seg000:761C
seg000:761C loc_761C:                               ; CODE XREF: _write:_dosretaxj
seg000:761C                 mov     sp, bp
seg000:761E                 pop     bp
seg000:761F                 retn
seg000:761F ; END OF FUNCTION CHUNK FOR _write
seg000:7620
seg000:7620 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7620
seg000:7620
seg000:7620 _maperror       proc near               ; CODE XREF: int86:int86_dos_func_errp
seg000:7620                                         ; int86x:int86x_dos_func_errp ...
seg000:7620                 xor     ah, ah
seg000:7622                 call    maperror
seg000:7625                 retn
seg000:7625 _maperror       endp
seg000:7625
seg000:7626
seg000:7626 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7626
seg000:7626
seg000:7626 maperror        proc near               ; CODE XREF: seg000:7609p
seg000:7626                                         ; _write:DOSerrorp ...
seg000:7626                 mov     byte ptr _doserrno, al
seg000:7629                 or      ah, ah
seg000:762B                 jnz     short mapover
seg000:762D                 cmp     _dosvermajor, 3
seg000:7632                 jb      short chk2
seg000:7634                 cmp     al, 22h
seg000:7636                 jnb     short maxerr2
seg000:7638                 cmp     al, 20h
seg000:763A                 jb      short chk2
seg000:763C                 mov     al, 5
seg000:763E                 jmp     short inrange
seg000:7640 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7640
seg000:7640 chk2:                                   ; CODE XREF: maperror+Cj
seg000:7640                                         ; maperror+14j
seg000:7640                 cmp     al, 13h
seg000:7642                 jbe     short inrange
seg000:7644
seg000:7644 maxerr2:                                ; CODE XREF: maperror+10j
seg000:7644                 mov     al, 13h
seg000:7646
seg000:7646 inrange:                                ; CODE XREF: maperror+18j
seg000:7646                                         ; maperror+1Cj
seg000:7646                 mov     bx, offset err_conv_tbl
seg000:7649                 xlat
seg000:764A
seg000:764A mapsave:                                ; CODE XREF: maperror+2Bj
seg000:764A                 cbw
seg000:764B                 mov     errno, ax
seg000:764E                 retn
seg000:764F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:764F
seg000:764F mapover:                                ; CODE XREF: maperror+5j
seg000:764F                 mov     al, ah
seg000:7651                 jmp     short mapsave
seg000:7651 maperror        endp
seg000:7651
seg000:7651 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7653                 align 2
seg000:7654
seg000:7654 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7654
seg000:7654 ; Attributes: bp-based frame
seg000:7654
seg000:7654 _flsbuf         proc near               ; CODE XREF: sprintf+48p
seg000:7654                                         ; putc+19p
seg000:7654
seg000:7654 _c_             = word ptr  4
seg000:7654 _strm_          = byte ptr  6
seg000:7654
seg000:7654                 push    bp
seg000:7655                 mov     bp, sp
seg000:7657                 push    si
seg000:7658                 push    di
seg000:7659                 mov     si, word ptr [bp+_strm_]
seg000:765C                 mov     al, [si+6]
seg000:765F                 test    al, 82h
seg000:7661                 jz      short flsbuf_4
seg000:7663                 test    al, 40h
seg000:7665                 jnz     short flsbuf_4
seg000:7667                 mov     word ptr [si+2], 0
seg000:766C                 test    al, 1
seg000:766E                 jz      short flsbuf_1
seg000:7670                 test    al, 10h
seg000:7672                 jz      short flsbuf_4
seg000:7674                 mov     cx, [si+4]
seg000:7677                 mov     [si], cx
seg000:7679                 and     al, not 1
seg000:767B
seg000:767B flsbuf_1:                               ; CODE XREF: _flsbuf+1Aj
seg000:767B                 or      al, 2
seg000:767D                 and     al, not 10h
seg000:767F                 mov     [si+6], al
seg000:7682                 mov     di, si
seg000:7684                 sub     di, offset STDIN
seg000:7688                 add     di, offset _iob2
seg000:768C                 xor     bx, bx
seg000:768E                 mov     bl, [si+7]
seg000:7691                 test    al, 8
seg000:7693                 jnz     short flsbuf_6
seg000:7695                 test    al, 4
seg000:7697                 jnz     short flsbuf_3
seg000:7699                 test    byte ptr [di], 1
seg000:769C                 jnz     short flsbuf_6
seg000:769E                 cmp     si, offset STDOUT
seg000:76A2                 jz      short flsbuf_2
seg000:76A4                 cmp     si, offset STDERR
seg000:76A8                 jz      short flsbuf_2
seg000:76AA                 cmp     si, offset STDPRN
seg000:76AE                 jnz     short flsbuf_5
seg000:76B0
seg000:76B0 flsbuf_2:                               ; CODE XREF: _flsbuf+4Ej
seg000:76B0                                         ; _flsbuf+54j
seg000:76B0                 test    _osfile[bx], 40h
seg000:76B5                 jz      short flsbuf_5
seg000:76B7
seg000:76B7 flsbuf_3:                               ; CODE XREF: _flsbuf+43j
seg000:76B7                                         ; _flsbuf+8Bj
seg000:76B7                 mov     cx, 1
seg000:76BA                 push    cx
seg000:76BB                 lea     di, [bp+_c_]
seg000:76BE                 push    di
seg000:76BF                 push    bx
seg000:76C0                 call    _write
seg000:76C3                 add     sp, 6
seg000:76C6                 mov     cx, 1
seg000:76C9                 jmp     short flsbuf_8
seg000:76CB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:76CB
seg000:76CB flsbuf_4:                               ; CODE XREF: _flsbuf+Dj
seg000:76CB                                         ; _flsbuf+11j ...
seg000:76CB                 mov     ax, -1
seg000:76CE                 or      byte ptr [si+6], 20h
seg000:76D2                 jmp     short flsbuf_10
seg000:76D4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:76D4
seg000:76D4 flsbuf_5:                               ; CODE XREF: _flsbuf+5Aj
seg000:76D4                                         ; _flsbuf+61j
seg000:76D4                 push    bx
seg000:76D5                 push    si
seg000:76D6                 call    _getbuf
seg000:76D9                 pop     bx
seg000:76DA                 pop     bx
seg000:76DB                 test    byte ptr [si+6], 8
seg000:76DF                 jz      short flsbuf_3
seg000:76E1
seg000:76E1 flsbuf_6:                               ; CODE XREF: _flsbuf+3Fj
seg000:76E1                                         ; _flsbuf+48j
seg000:76E1                 mov     cx, [si]
seg000:76E3                 mov     dx, [si+4]
seg000:76E6                 sub     cx, dx
seg000:76E8                 inc     dx
seg000:76E9                 mov     [si], dx
seg000:76EB                 mov     dx, [di+2]
seg000:76EE                 dec     dx
seg000:76EF                 mov     [si+2], dx
seg000:76F2                 jcxz    short flsbuf_9
seg000:76F4                 push    cx
seg000:76F5                 push    cx
seg000:76F6                 push    word ptr [si+4]
seg000:76F9                 push    bx
seg000:76FA                 call    _write
seg000:76FD                 add     sp, 6
seg000:7700                 pop     cx
seg000:7701
seg000:7701 flsbuf_7:                               ; CODE XREF: _flsbuf+C7j
seg000:7701                                         ; _flsbuf+DAj
seg000:7701                 mov     di, [si+4]
seg000:7704                 mov     dx, [bp+_c_]
seg000:7707                 mov     [di], dl
seg000:7709
seg000:7709 flsbuf_8:                               ; CODE XREF: _flsbuf+75j
seg000:7709                 cmp     ax, cx
seg000:770B                 jnz     short flsbuf_4
seg000:770D                 xor     ax, ax
seg000:770F                 mov     al, byte ptr [bp+_c_]
seg000:7712                 jmp     short flsbuf_10
seg000:7714 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7714
seg000:7714 flsbuf_9:                               ; CODE XREF: _flsbuf+9Ej
seg000:7714                 xor     ax, ax
seg000:7716                 test    _osfile[bx], 20h
seg000:771B                 jz      short flsbuf_7
seg000:771D                 mov     cx, 2
seg000:7720                 push    cx
seg000:7721                 push    ax
seg000:7722                 push    ax
seg000:7723                 push    bx
seg000:7724                 call    _lseek
seg000:7727                 add     sp, 8
seg000:772A                 xor     ax, ax
seg000:772C                 mov     cx, ax
seg000:772E                 jmp     short flsbuf_7
seg000:7730 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7730
seg000:7730 flsbuf_10:                              ; CODE XREF: _flsbuf+7Ej
seg000:7730                                         ; _flsbuf+BEj
seg000:7730                 pop     di
seg000:7731                 pop     si
seg000:7732                 pop     bp
seg000:7733                 retn
seg000:7733 _flsbuf         endp
seg000:7733
seg000:7733 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7734 jumptable       dw offset normal_state  ; DATA XREF: _output+51r
seg000:7736                 dw offset percent_state
seg000:7738                 dw offset flag_state
seg000:773A                 dw offset width_state
seg000:773C                 dw offset dot_state
seg000:773E                 dw offset precis_state
seg000:7740                 dw offset size_state
seg000:7742                 dw offset type_state
seg000:7744
seg000:7744 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7744
seg000:7744 ; Attributes: bp-based frame
seg000:7744
seg000:7744 _output         proc near               ; CODE XREF: sprintf+28p
seg000:7744
seg000:7744 var_171         = word ptr -171h
seg000:7744 var_16E         = word ptr -16Eh
seg000:7744 var_169         = word ptr -169h
seg000:7744 var_15          = word ptr -15h
seg000:7744 capexp          = word ptr -12h
seg000:7744 prfxlen         = word ptr -10h
seg000:7744 prefix          = word ptr -0Eh
seg000:7744 precision       = word ptr -0Ch
seg000:7744 fldwidth        = word ptr -0Ah
seg000:7744 charsout        = word ptr -8
seg000:7744 radix           = byte ptr -6
seg000:7744 state           = byte ptr -5
seg000:7744 flags           = word ptr -4
seg000:7744 char            = byte ptr -2
seg000:7744 hexadd          = byte ptr -1
seg000:7744 format          = word ptr  6
seg000:7744 arglist         = byte ptr  8
seg000:7744
seg000:7744 ; FUNCTION CHUNK AT seg000:7C13 SIZE 00000006 BYTES
seg000:7744
seg000:7744                 push    bp
seg000:7745                 mov     bp, sp
seg000:7747                 mov     ax, 171h
seg000:774A                 call    _chkstk
seg000:774D                 push    si
seg000:774E                 push    di
seg000:774F                 xor     ax, ax
seg000:7751                 mov     [bp+charsout], ax
seg000:7754                 mov     [bp+state], al
seg000:7757
seg000:7757 loopagain:                              ; CODE XREF: _output+5Fj
seg000:7757                                         ; _output+73j ...
seg000:7757                 mov     si, [bp+format]
seg000:775A                 lodsb
seg000:775B                 mov     [bp+format], si
seg000:775E                 mov     [bp+char], al
seg000:7761                 or      al, al
seg000:7763                 jz      short output_done
seg000:7765                 cmp     [bp+charsout], 0
seg000:7769                 jge     short output_loopok
seg000:776B
seg000:776B output_done:                            ; CODE XREF: _output+1Fj
seg000:776B                 mov     ax, [bp+charsout]
seg000:776E                 jmp     loc_7C13
seg000:7771 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7771
seg000:7771 output_loopok:                          ; CODE XREF: _output+25j
seg000:7771                 mov     bx, offset lookuptable
seg000:7774                 sub     al, 20h
seg000:7776                 cmp     al, 'X'
seg000:7778                 ja      short output_main1
seg000:777A                 xlat
seg000:777B                 and     al, 0Fh
seg000:777D                 jmp     short output_main2
seg000:777F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:777F
seg000:777F output_main1:                           ; CODE XREF: _output+34j
seg000:777F                 mov     al, 0
seg000:7781
seg000:7781 output_main2:                           ; CODE XREF: _output+39j
seg000:7781                 mov     cl, 3
seg000:7783                 shl     al, cl
seg000:7785                 add     al, [bp+state]
seg000:7788                 xlat
seg000:7789                 inc     cl
seg000:778B                 shr     al, cl
seg000:778D                 mov     [bp+state], al
seg000:7790                 cbw
seg000:7791                 mov     bx, ax
seg000:7793                 shl     bx, 1
seg000:7795                 jmp     cs:jumptable[bx]
seg000:779A
seg000:779A normal_state:                           ; DATA XREF: seg000:jumptableo
seg000:779A                 mov     dl, [bp+char]
seg000:779D                 mov     cx, 1
seg000:77A0                 call    outpad
seg000:77A3                 jmp     short loopagain
seg000:77A5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:77A5
seg000:77A5 percent_state:                          ; CODE XREF: _output+51j
seg000:77A5                                         ; DATA XREF: seg000:7736o
seg000:77A5                 xor     ax, ax
seg000:77A7                 mov     [bp+prfxlen], ax
seg000:77AA                 mov     [bp+fldwidth], ax
seg000:77AD                 mov     [bp+capexp], ax
seg000:77B0                 mov     [bp+flags], ax
seg000:77B3                 dec     ax
seg000:77B4                 mov     [bp+precision], ax
seg000:77B7                 jmp     short loopagain
seg000:77B9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:77B9
seg000:77B9 flag_state:                             ; CODE XREF: _output+51j
seg000:77B9                                         ; DATA XREF: seg000:7738o
seg000:77B9                 mov     al, [bp+char]
seg000:77BC                 cmp     al, '-'
seg000:77BE                 jnz     short fl1
seg000:77C0
seg000:77C0 doprnt_case_minus:
seg000:77C0                 or      byte ptr [bp+flags], 4
seg000:77C4                 jmp     short loopagain
seg000:77C6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:77C6
seg000:77C6 fl1:                                    ; CODE XREF: _output+7Aj
seg000:77C6                 cmp     al, '+'
seg000:77C8                 jnz     short fl2
seg000:77CA
seg000:77CA doprnt_case_plus:
seg000:77CA                 or      byte ptr [bp+flags], 1
seg000:77CE                 jmp     short loopagain
seg000:77D0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:77D0
seg000:77D0 fl2:                                    ; CODE XREF: _output+84j
seg000:77D0                 cmp     al, ' '
seg000:77D2                 jnz     short fl3
seg000:77D4
seg000:77D4 doprnt_case_space:
seg000:77D4                 or      byte ptr [bp+flags], 2
seg000:77D8                 jmp     loopagain
seg000:77DB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:77DB
seg000:77DB fl3:                                    ; CODE XREF: _output+8Ej
seg000:77DB                 cmp     al, '#'
seg000:77DD                 jnz     short fl4
seg000:77DF
seg000:77DF doprnt_case_sharp:
seg000:77DF                 or      byte ptr [bp+flags], 80h
seg000:77E3                 jmp     loopagain
seg000:77E6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:77E6
seg000:77E6 fl4:                                    ; CODE XREF: _output+99j
seg000:77E6                 or      byte ptr [bp+flags], 8
seg000:77EA                 jmp     loopagain
seg000:77ED ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:77ED
seg000:77ED width_state:                            ; CODE XREF: _output+51j
seg000:77ED                                         ; DATA XREF: seg000:773Ao
seg000:77ED                 mov     cl, [bp+char]
seg000:77F0                 cmp     cl, '*'
seg000:77F3                 jnz     short widthdigit
seg000:77F5                 call    getwordarg
seg000:77F8                 or      ax, ax
seg000:77FA                 jns     short storewidth
seg000:77FC                 neg     ax
seg000:77FE                 or      byte ptr [bp+flags], 4
seg000:7802                 jmp     short storewidth
seg000:7804 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7804
seg000:7804 widthdigit:                             ; CODE XREF: _output+AFj
seg000:7804                 sub     cl, '0'
seg000:7807                 xor     ch, ch
seg000:7809                 mov     ax, [bp+fldwidth]
seg000:780C                 mov     bx, 10
seg000:780F                 mul     bx
seg000:7811                 add     ax, cx
seg000:7813
seg000:7813 storewidth:                             ; CODE XREF: _output+B6j
seg000:7813                                         ; _output+BEj
seg000:7813                 mov     [bp+fldwidth], ax
seg000:7816                 jmp     loopagain
seg000:7819 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7819
seg000:7819 dot_state:                              ; CODE XREF: _output+51j
seg000:7819                                         ; DATA XREF: seg000:773Co
seg000:7819                 mov     [bp+precision], 0
seg000:781E                 jmp     loopagain
seg000:7821 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7821
seg000:7821 precis_state:                           ; CODE XREF: _output+51j
seg000:7821                                         ; DATA XREF: seg000:773Eo
seg000:7821                 mov     cl, [bp+char]
seg000:7824                 cmp     cl, '*'
seg000:7827                 jnz     short precisdigit
seg000:7829                 call    getwordarg
seg000:782C                 or      ax, ax
seg000:782E                 jns     short storeprecis
seg000:7830                 mov     ax, 0FFFFh
seg000:7833                 jmp     short storeprecis
seg000:7835 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7835
seg000:7835 precisdigit:                            ; CODE XREF: _output+E3j
seg000:7835                 sub     cl, '0'
seg000:7838                 xor     ch, ch
seg000:783A                 mov     ax, [bp+precision]
seg000:783D                 mov     bx, 10
seg000:7840                 mul     bx
seg000:7842                 add     ax, cx
seg000:7844
seg000:7844 storeprecis:                            ; CODE XREF: _output+EAj
seg000:7844                                         ; _output+EFj
seg000:7844                 mov     [bp+precision], ax
seg000:7847                 jmp     loopagain
seg000:784A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:784A
seg000:784A size_state:                             ; CODE XREF: _output+51j
seg000:784A                                         ; DATA XREF: seg000:7740o
seg000:784A                 mov     al, [bp+char]
seg000:784D                 cmp     al, 'l'
seg000:784F                 jnz     short sz1
seg000:7851                 or      byte ptr [bp+flags], 10h
seg000:7855                 jmp     short szret
seg000:7857 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7857
seg000:7857 sz1:                                    ; CODE XREF: _output+10Bj
seg000:7857                 cmp     al, 'F'
seg000:7859                 jnz     short sz2
seg000:785B                 or      byte ptr [bp+flags], 20h
seg000:785F                 jmp     short szret
seg000:7861 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7861
seg000:7861 sz2:                                    ; CODE XREF: _output+115j
seg000:7861                 cmp     al, 'N'
seg000:7863                 jnz     short sz3
seg000:7865                 or      byte ptr [bp+flags+1], 10h
seg000:7869                 jmp     short szret
seg000:786B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:786B
seg000:786B sz3:                                    ; CODE XREF: _output+11Fj
seg000:786B                 cmp     al, 'L'
seg000:786D                 jnz     short sz4
seg000:786F                 or      byte ptr [bp+flags+1], 4
seg000:7873                 jmp     short szret
seg000:7875 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7875
seg000:7875 sz4:                                    ; CODE XREF: _output+129j
seg000:7875                 or      byte ptr [bp+flags+1], 8
seg000:7879
seg000:7879 szret:                                  ; CODE XREF: _output+111j
seg000:7879                                         ; _output+11Bj ...
seg000:7879                 jmp     loopagain
seg000:787C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:787C
seg000:787C type_state:                             ; CODE XREF: _output+51j
seg000:787C                                         ; DATA XREF: seg000:7742o
seg000:787C                 mov     al, [bp+char]
seg000:787F                 cmp     al, 'd'
seg000:7881                 jnz     short t1
seg000:7883                 jmp     doprnt_case_i_d
seg000:7886 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7886
seg000:7886 t1:                                     ; CODE XREF: _output+13Dj
seg000:7886                 cmp     al, 'i'
seg000:7888                 jnz     short t2
seg000:788A                 jmp     doprnt_case_i_d
seg000:788D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:788D
seg000:788D t2:                                     ; CODE XREF: _output+144j
seg000:788D                 cmp     al, 'u'
seg000:788F                 jnz     short t3
seg000:7891                 jmp     type_u
seg000:7894 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7894
seg000:7894 t3:                                     ; CODE XREF: _output+14Bj
seg000:7894                 cmp     al, 'X'
seg000:7896                 jnz     short t4
seg000:7898                 jmp     type_bigx
seg000:789B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:789B
seg000:789B t4:                                     ; CODE XREF: _output+152j
seg000:789B                 cmp     al, 'x'
seg000:789D                 jnz     short t5
seg000:789F                 jmp     type_x
seg000:78A2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:78A2
seg000:78A2 t5:                                     ; CODE XREF: _output+159j
seg000:78A2                 cmp     al, 'o'
seg000:78A4                 jnz     short t6
seg000:78A6                 jmp     type_o
seg000:78A9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:78A9
seg000:78A9 t6:                                     ; CODE XREF: _output+160j
seg000:78A9                 cmp     al, 'c'
seg000:78AB                 jz      short type_c
seg000:78AD                 cmp     al, 's'
seg000:78AF                 jz      short type_s
seg000:78B1                 cmp     al, 'n'
seg000:78B3                 jz      short type_n
seg000:78B5                 cmp     al, 'p'
seg000:78B7                 jz      short type_p
seg000:78B9                 cmp     al, 'E'
seg000:78BB                 jz      short bigeg
seg000:78BD                 cmp     al, 'G'
seg000:78BF                 jz      short bigeg
seg000:78C1                 jmp     type_efg
seg000:78C4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:78C4
seg000:78C4 bigeg:                                  ; CODE XREF: _output+177j
seg000:78C4                                         ; _output+17Bj
seg000:78C4                 jmp     type_bigeg
seg000:78C7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:78C7
seg000:78C7 type_c:                                 ; CODE XREF: _output+167j
seg000:78C7                 call    getwordarg
seg000:78CA                 lea     di, [bp+var_171]
seg000:78CE                 push    ss
seg000:78CF                 pop     es
seg000:78D0                 stosb
seg000:78D1                 dec     di
seg000:78D2                 mov     cx, 1
seg000:78D5                 jmp     justify
seg000:78D8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:78D8
seg000:78D8 type_s:                                 ; CODE XREF: _output+16Bj
seg000:78D8                 call    getptrarg
seg000:78DB                 or      di, di
seg000:78DD                 jnz     short s2
seg000:78DF                 mov     ax, es
seg000:78E1                 or      ax, ax
seg000:78E3                 jnz     short s2
seg000:78E5                 push    ds
seg000:78E6                 pop     es
seg000:78E7                 mov     di, offset nullstring ; "(null)"
seg000:78EA                 mov     cx, nullstrlen
seg000:78EE                 jmp     justify
seg000:78F1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:78F1
seg000:78F1 s2:                                     ; CODE XREF: _output+199j
seg000:78F1                                         ; _output+19Fj
seg000:78F1                 push    di
seg000:78F2                 mov     cx, [bp+precision]
seg000:78F5                 jcxz    short s3
seg000:78F7                 xor     al, al
seg000:78F9                 repne scasb
seg000:78FB                 jnz     short s3
seg000:78FD                 dec     di
seg000:78FE
seg000:78FE s3:                                     ; CODE XREF: _output+1B1j
seg000:78FE                                         ; _output+1B7j
seg000:78FE                 pop     cx
seg000:78FF                 sub     di, cx
seg000:7901                 xchg    cx, di
seg000:7903                 jmp     justify
seg000:7906 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7906
seg000:7906 type_n:                                 ; CODE XREF: _output+16Fj
seg000:7906                 call    getptrarg
seg000:7909                 mov     ax, [bp+charsout]
seg000:790C                 stosw
seg000:790D                 test    byte ptr [bp+flags], 10h
seg000:7911                 jz      short n1
seg000:7913                 xor     ax, ax
seg000:7915                 stosw
seg000:7916
seg000:7916 n1:                                     ; CODE XREF: _output+1CDj
seg000:7916                 jmp     loopagain
seg000:7919 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7919
seg000:7919 type_p:                                 ; CODE XREF: _output+173j
seg000:7919                 test    byte ptr [bp+flags], 30h
seg000:791D                 jnz     short p4byte
seg000:791F                 call    getwordarg
seg000:7922                 jmp     short pshortfmt
seg000:7924 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7924
seg000:7924 p4byte:                                 ; CODE XREF: _output+1D9j
seg000:7924                 call    getlongarg
seg000:7927                 test    byte ptr [bp+flags+1], 18h
seg000:792B                 jnz     short pshortfmt
seg000:792D                 mov     [bp+hexadd], 7
seg000:7931                 mov     cx, 16
seg000:7934                 push    ss
seg000:7935                 pop     es
seg000:7936                 push    dx
seg000:7937                 xor     dx, dx
seg000:7939                 lea     di, [bp+var_169]
seg000:793D                 mov     si, 4
seg000:7940                 call    convert
seg000:7943                 mov     cx, 16
seg000:7946                 lea     di, [bp+var_16E]
seg000:794A                 pop     ax
seg000:794B                 xor     dx, dx
seg000:794D                 mov     si, 4
seg000:7950                 call    convert
seg000:7953                 mov     byte ptr [bp+var_16E+1], ':'
seg000:7958                 mov     cx, 9
seg000:795B                 jmp     short p1
seg000:795D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:795D
seg000:795D pshortfmt:                              ; CODE XREF: _output+1DEj
seg000:795D                                         ; _output+1E7j
seg000:795D                 mov     [bp+hexadd], 7
seg000:7961                 mov     cx, 16
seg000:7964                 push    ss
seg000:7965                 pop     es
seg000:7966                 xor     dx, dx
seg000:7968                 lea     di, [bp+var_16E]
seg000:796C                 mov     si, 4
seg000:796F                 call    convert
seg000:7972                 mov     cx, 4
seg000:7975
seg000:7975 p1:                                     ; CODE XREF: _output+217j
seg000:7975                 lea     di, [bp+var_171]
seg000:7979                 jmp     justify
seg000:797C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:797C
seg000:797C type_bigeg:                             ; CODE XREF: _output:bigegj
seg000:797C                 inc     [bp+capexp]
seg000:797F
seg000:797F type_efg:                               ; CODE XREF: _output+17Dj
seg000:797F                 or      byte ptr [bp+flags], 40h
seg000:7983                 mov     al, [bp+char]
seg000:7986                 or      al, 20h
seg000:7988                 cbw
seg000:7989                 mov     si, ax
seg000:798B                 cmp     [bp+precision], 0
seg000:798F                 jg      short f2
seg000:7991                 jz      short f1
seg000:7993                 mov     [bp+precision], 6
seg000:7998                 jmp     short f2
seg000:799A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:799A
seg000:799A f1:                                     ; CODE XREF: _output+24Dj
seg000:799A                 cmp     ax, 'g'
seg000:799D                 jnz     short f2
seg000:799F                 mov     [bp+precision], 1
seg000:79A4
seg000:79A4 f2:                                     ; CODE XREF: _output+24Bj
seg000:79A4                                         ; _output+254j ...
seg000:79A4                 lea     di, [bp+var_171]
seg000:79A8                 push    [bp+capexp]
seg000:79AB                 push    [bp+precision]
seg000:79AE                 push    si
seg000:79AF                 push    di
seg000:79B0                 push    word ptr [bp+arglist]
seg000:79B3                 test    byte ptr [bp+flags+1], 4
seg000:79B7                 jz      short f3
seg000:79B9                 call    _cldcvt
seg000:79BD                 add     word ptr [bp+arglist], 10
seg000:79C1                 jmp     short f4
seg000:79C3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:79C3
seg000:79C3 f3:                                     ; CODE XREF: _output+273j
seg000:79C3                 call    _cfltcvt
seg000:79C7                 add     word ptr [bp+arglist], 8
seg000:79CB
seg000:79CB f4:                                     ; CODE XREF: _output+27Dj
seg000:79CB                 add     sp, 10
seg000:79CE                 test    byte ptr [bp+flags], 80h
seg000:79D2                 jz      short f5
seg000:79D4                 cmp     [bp+precision], 0
seg000:79D8                 jnz     short f5
seg000:79DA                 push    di
seg000:79DB                 call    _forcdecpt
seg000:79DF                 add     sp, 2
seg000:79E2
seg000:79E2 f5:                                     ; CODE XREF: _output+28Ej
seg000:79E2                                         ; _output+294j
seg000:79E2                 cmp     si, 'g'
seg000:79E5                 jnz     short f6
seg000:79E7                 test    [bp+flags], 80h
seg000:79EC                 jnz     short f6
seg000:79EE                 push    di
seg000:79EF                 call    _cropzeros
seg000:79F3                 add     sp, 2
seg000:79F6
seg000:79F6 f6:                                     ; CODE XREF: _output+2A1j
seg000:79F6                                         ; _output+2A8j
seg000:79F6                 push    ss
seg000:79F7                 pop     es
seg000:79F8                 cmp     byte ptr es:[di], '-'
seg000:79FC                 jnz     short f7
seg000:79FE                 inc     di
seg000:79FF                 or      byte ptr [bp+flags+1], 1
seg000:7A03
seg000:7A03 f7:                                     ; CODE XREF: _output+2B8j
seg000:7A03                 mov     cx, 0FFFFh
seg000:7A06                 push    di
seg000:7A07                 mov     al, 0
seg000:7A09                 repne scasb
seg000:7A0B                 dec     di
seg000:7A0C                 pop     cx
seg000:7A0D                 sub     di, cx
seg000:7A0F                 xchg    cx, di
seg000:7A11                 jmp     justify
seg000:7A14 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7A14
seg000:7A14 doprnt_case_i_d:                        ; CODE XREF: _output+13Fj
seg000:7A14                                         ; _output+146j
seg000:7A14                 or      byte ptr [bp+flags], 40h
seg000:7A18
seg000:7A18 type_u:                                 ; CODE XREF: _output+14Dj
seg000:7A18                 mov     [bp+radix], 10
seg000:7A1C                 jmp     short int_out
seg000:7A1E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7A1E
seg000:7A1E type_bigx:                              ; CODE XREF: _output+154j
seg000:7A1E                 mov     [bp+hexadd], 7
seg000:7A22                 jmp     short dohex
seg000:7A24 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7A24
seg000:7A24 type_x:                                 ; CODE XREF: _output+15Bj
seg000:7A24                 mov     [bp+hexadd], 27h
seg000:7A28
seg000:7A28 dohex:                                  ; CODE XREF: _output+2DEj
seg000:7A28                 test    byte ptr [bp+flags], 80h
seg000:7A2C                 jz      short hex1
seg000:7A2E                 mov     [bp+prfxlen], 2
seg000:7A33                 mov     byte ptr [bp+prefix], '0'
seg000:7A37                 mov     dl, 51h
seg000:7A39                 add     dl, [bp+hexadd]
seg000:7A3C                 mov     byte ptr [bp+prefix+1], dl
seg000:7A3F
seg000:7A3F hex1:                                   ; CODE XREF: _output+2E8j
seg000:7A3F                 mov     [bp+radix], 16
seg000:7A43                 jmp     short int_out
seg000:7A45 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7A45
seg000:7A45 type_o:                                 ; CODE XREF: _output+162j
seg000:7A45                 test    byte ptr [bp+flags], 80h
seg000:7A49                 jz      short oct1
seg000:7A4B                 or      byte ptr [bp+flags+1], 2
seg000:7A4F
seg000:7A4F oct1:                                   ; CODE XREF: _output+305j
seg000:7A4F                 mov     [bp+radix], 8
seg000:7A53
seg000:7A53 int_out:                                ; CODE XREF: _output+2D8j
seg000:7A53                                         ; _output+2FFj
seg000:7A53                 test    byte ptr [bp+flags], 10h
seg000:7A57                 jz      short int1
seg000:7A59                 call    getlongarg
seg000:7A5C                 jmp     short int3
seg000:7A5E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7A5E
seg000:7A5E int1:                                   ; CODE XREF: _output+313j
seg000:7A5E                 call    getwordarg
seg000:7A61                 test    byte ptr [bp+flags], 40h
seg000:7A65                 jz      short int2
seg000:7A67                 cwd
seg000:7A68                 jmp     short int3
seg000:7A6A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7A6A
seg000:7A6A int2:                                   ; CODE XREF: _output+321j
seg000:7A6A                 xor     dx, dx
seg000:7A6C
seg000:7A6C int3:                                   ; CODE XREF: _output+318j
seg000:7A6C                                         ; _output+324j
seg000:7A6C                 test    byte ptr [bp+flags], 40h
seg000:7A70                 jz      short int4
seg000:7A72                 or      dx, dx
seg000:7A74                 jge     short int4
seg000:7A76                 or      byte ptr [bp+flags+1], 1
seg000:7A7A                 neg     ax
seg000:7A7C                 adc     dx, 0
seg000:7A7F                 neg     dx
seg000:7A81
seg000:7A81 int4:                                   ; CODE XREF: _output+32Cj
seg000:7A81                                         ; _output+330j
seg000:7A81                 cmp     [bp+precision], 0
seg000:7A85                 jge     short int5
seg000:7A87                 mov     [bp+precision], 1
seg000:7A8C                 jmp     short int6
seg000:7A8E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7A8E
seg000:7A8E int5:                                   ; CODE XREF: _output+341j
seg000:7A8E                 and     byte ptr [bp+flags], 0F7h
seg000:7A92
seg000:7A92 int6:                                   ; CODE XREF: _output+348j
seg000:7A92                 mov     bx, ax
seg000:7A94                 or      bx, dx
seg000:7A96                 jnz     short int7
seg000:7A98                 mov     [bp+prfxlen], 0
seg000:7A9D
seg000:7A9D int7:                                   ; CODE XREF: _output+352j
seg000:7A9D                 lea     di, [bp+var_15]
seg000:7AA0                 push    ss
seg000:7AA1                 pop     es
seg000:7AA2                 mov     cl, [bp+radix]
seg000:7AA5                 xor     ch, ch
seg000:7AA7                 mov     si, [bp+precision]
seg000:7AAA                 call    convert
seg000:7AAD                 test    byte ptr [bp+flags+1], 2
seg000:7AB1                 jz      short int8
seg000:7AB3                 jcxz    short addzero
seg000:7AB5                 cmp     byte ptr es:[di], '0'
seg000:7AB9                 jz      short int8
seg000:7ABB
seg000:7ABB addzero:                                ; CODE XREF: _output+36Fj
seg000:7ABB                 dec     di
seg000:7ABC                 mov     byte ptr es:[di], '0'
seg000:7AC0                 inc     cx
seg000:7AC1
seg000:7AC1 int8:                                   ; CODE XREF: _output+36Dj
seg000:7AC1                                         ; _output+375j
seg000:7AC1                 jmp     short $+2
seg000:7AC3
seg000:7AC3 justify:                                ; CODE XREF: _output+191j
seg000:7AC3                                         ; _output+1AAj ...
seg000:7AC3                 test    byte ptr [bp+flags], 40h
seg000:7AC7                 jz      short just3
seg000:7AC9                 test    byte ptr [bp+flags+1], 1
seg000:7ACD                 jz      short just1
seg000:7ACF                 mov     byte ptr [bp+prefix], '-'
seg000:7AD3                 mov     [bp+prfxlen], 1
seg000:7AD8                 jmp     short just3
seg000:7ADA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7ADA
seg000:7ADA just1:                                  ; CODE XREF: _output+389j
seg000:7ADA                 test    byte ptr [bp+flags], 1
seg000:7ADE                 jz      short just2
seg000:7AE0                 mov     byte ptr [bp+prefix], '+'
seg000:7AE4                 mov     [bp+prfxlen], 1
seg000:7AE9                 jmp     short just3
seg000:7AEB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7AEB
seg000:7AEB just2:                                  ; CODE XREF: _output+39Aj
seg000:7AEB                 test    byte ptr [bp+flags], 2
seg000:7AEF                 jz      short just3
seg000:7AF1                 mov     byte ptr [bp+prefix], ' '
seg000:7AF5                 mov     [bp+prfxlen], 1
seg000:7AFA
seg000:7AFA just3:                                  ; CODE XREF: _output+383j
seg000:7AFA                                         ; _output+394j ...
seg000:7AFA                 mov     ax, [bp+fldwidth]
seg000:7AFD                 sub     ax, cx
seg000:7AFF                 sub     ax, [bp+prfxlen]
seg000:7B02                 jge     short just4
seg000:7B04                 xor     ax, ax
seg000:7B06
seg000:7B06 just4:                                  ; CODE XREF: _output+3BEj
seg000:7B06                 push    es
seg000:7B07                 push    di
seg000:7B08                 push    cx
seg000:7B09                 test    byte ptr [bp+flags], 0Ch
seg000:7B0D                 jnz     short just5
seg000:7B0F                 mov     cx, ax
seg000:7B11                 mov     dl, ' '
seg000:7B13                 call    outpad
seg000:7B16
seg000:7B16 just5:                                  ; CODE XREF: _output+3C9j
seg000:7B16                 push    ax
seg000:7B17                 push    ss
seg000:7B18                 pop     es
seg000:7B19                 lea     di, [bp+prefix]
seg000:7B1C                 mov     cx, [bp+prfxlen]
seg000:7B1F                 call    outch
seg000:7B22                 pop     ax
seg000:7B23                 test    byte ptr [bp+flags], 8
seg000:7B27                 jz      short just6
seg000:7B29                 test    byte ptr [bp+flags], 4
seg000:7B2D                 jnz     short just6
seg000:7B2F                 mov     cx, ax
seg000:7B31                 mov     dl, '0'
seg000:7B33                 call    outpad
seg000:7B36
seg000:7B36 just6:                                  ; CODE XREF: _output+3E3j
seg000:7B36                                         ; _output+3E9j
seg000:7B36                 pop     cx
seg000:7B37                 pop     di
seg000:7B38                 pop     es
seg000:7B39                 assume es:nothing
seg000:7B39                 push    ax
seg000:7B3A                 call    outch
seg000:7B3D                 pop     ax
seg000:7B3E                 test    byte ptr [bp+flags], 4
seg000:7B42                 jz      short just7
seg000:7B44                 mov     cx, ax
seg000:7B46                 mov     dl, ' '
seg000:7B48                 call    outpad
seg000:7B4B
seg000:7B4B just7:                                  ; CODE XREF: _output+3FEj
seg000:7B4B                 jmp     loopagain
seg000:7B4B _output         endp
seg000:7B4B
seg000:7B4E
seg000:7B4E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7B4E
seg000:7B4E
seg000:7B4E getwordarg      proc near               ; CODE XREF: _output+B1p
seg000:7B4E                                         ; _output+E5p ...
seg000:7B4E                 mov     si, [bp+8]
seg000:7B51                 lodsw
seg000:7B52                 mov     [bp+8], si
seg000:7B55                 retn
seg000:7B55 getwordarg      endp
seg000:7B55
seg000:7B56
seg000:7B56 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7B56
seg000:7B56
seg000:7B56 getlongarg      proc near               ; CODE XREF: _output:p4bytep
seg000:7B56                                         ; _output+315p ...
seg000:7B56                 mov     si, [bp+8]
seg000:7B59                 lodsw
seg000:7B5A                 mov     dx, ax
seg000:7B5C                 lodsw
seg000:7B5D                 xchg    ax, dx
seg000:7B5E                 mov     [bp+8], si
seg000:7B61                 retn
seg000:7B61 getlongarg      endp
seg000:7B61
seg000:7B62
seg000:7B62 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7B62
seg000:7B62
seg000:7B62 getptrarg       proc near               ; CODE XREF: _output:type_sp
seg000:7B62                                         ; _output:type_np
seg000:7B62                 test    byte ptr [bp-4], 20h
seg000:7B66                 jz      short rp1
seg000:7B68                 call    getlongarg
seg000:7B6B                 mov     es, dx
seg000:7B6D                 mov     di, ax
seg000:7B6F                 retn
seg000:7B70 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7B70
seg000:7B70 rp1:                                    ; CODE XREF: getptrarg+4j
seg000:7B70                 call    getwordarg
seg000:7B73                 mov     di, ax
seg000:7B75                 or      ax, ax
seg000:7B77                 jnz     short rp2
seg000:7B79                 mov     es, ax
seg000:7B7B                 retn
seg000:7B7C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7B7C
seg000:7B7C rp2:                                    ; CODE XREF: getptrarg+15j
seg000:7B7C                 push    ds
seg000:7B7D                 pop     es
seg000:7B7E                 assume es:DGROUP
seg000:7B7E                 retn
seg000:7B7E getptrarg       endp
seg000:7B7E
seg000:7B7F
seg000:7B7F ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7B7F
seg000:7B7F
seg000:7B7F putc            proc near               ; CODE XREF: outch+Cp
seg000:7B7F                                         ; outpad+Ap
seg000:7B7F                 cbw
seg000:7B80                 push    di
seg000:7B81                 mov     bx, [bp+4]
seg000:7B84                 dec     word ptr [bx+2]
seg000:7B87                 js      short flush
seg000:7B89                 mov     di, [bx]
seg000:7B8B                 inc     word ptr [bx]
seg000:7B8D                 mov     [di], al
seg000:7B8F
seg000:7B8F noerrret:                               ; CODE XREF: putc+25j
seg000:7B8F                 xor     ax, ax
seg000:7B91
seg000:7B91 putcret:                                ; CODE XREF: putc+27j
seg000:7B91                 pop     di
seg000:7B92                 retn
seg000:7B93 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7B93
seg000:7B93 flush:                                  ; CODE XREF: putc+8j
seg000:7B93                 push    es
seg000:7B94                 push    cx
seg000:7B95                 push    dx
seg000:7B96                 push    bx
seg000:7B97                 push    ax
seg000:7B98                 call    _flsbuf
seg000:7B9B                 add     sp, 4
seg000:7B9E                 pop     dx
seg000:7B9F                 pop     cx
seg000:7BA0                 pop     es
seg000:7BA1                 assume es:nothing
seg000:7BA1                 cmp     ax, -1
seg000:7BA4                 jnz     short noerrret
seg000:7BA6                 jmp     short putcret
seg000:7BA6 putc            endp
seg000:7BA6
seg000:7BA8
seg000:7BA8 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7BA8
seg000:7BA8
seg000:7BA8 outch           proc near               ; CODE XREF: _output+3DBp
seg000:7BA8                                         ; _output+3F6p
seg000:7BA8                 jcxz    short outchret
seg000:7BAA                 mov     si, di
seg000:7BAC                 add     [bp-8], cx
seg000:7BAF                 push    di
seg000:7BB0                 xor     di, di
seg000:7BB2
seg000:7BB2 out1:                                   ; CODE XREF: outch+11j
seg000:7BB2                 lods    byte ptr es:[si]
seg000:7BB4                 call    putc
seg000:7BB7                 or      di, ax
seg000:7BB9                 loop    out1
seg000:7BBB                 or      di, di
seg000:7BBD                 pop     di
seg000:7BBE                 jz      short outchret
seg000:7BC0                 mov     word ptr [bp-8], 0FFFFh
seg000:7BC5
seg000:7BC5 outchret:                               ; CODE XREF: outchj
seg000:7BC5                                         ; outch+16j
seg000:7BC5                 retn
seg000:7BC5 outch           endp
seg000:7BC5
seg000:7BC6
seg000:7BC6 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7BC6
seg000:7BC6
seg000:7BC6 outpad          proc near               ; CODE XREF: _output+5Cp
seg000:7BC6                                         ; _output+3CFp ...
seg000:7BC6                 jcxz    short outpadret
seg000:7BC8                 add     [bp-8], cx
seg000:7BCB                 push    di
seg000:7BCC                 xor     di, di
seg000:7BCE
seg000:7BCE outpad1:                                ; CODE XREF: outpad+Fj
seg000:7BCE                 mov     al, dl
seg000:7BD0                 call    putc
seg000:7BD3                 or      di, ax
seg000:7BD5                 loop    outpad1
seg000:7BD7                 or      di, di
seg000:7BD9                 pop     di
seg000:7BDA                 jz      short outpadret
seg000:7BDC                 mov     word ptr [bp-8], 0FFFFh
seg000:7BE1
seg000:7BE1 outpadret:                              ; CODE XREF: outpadj
seg000:7BE1                                         ; outpad+14j
seg000:7BE1                 retn
seg000:7BE1 outpad          endp
seg000:7BE1
seg000:7BE2
seg000:7BE2 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7BE2
seg000:7BE2
seg000:7BE2 convert         proc near               ; CODE XREF: _output+1FCp
seg000:7BE2                                         ; _output+20Cp ...
seg000:7BE2                 std
seg000:7BE3                 push    di
seg000:7BE4                 xchg    ax, bx
seg000:7BE5
seg000:7BE5 conv1:                                  ; CODE XREF: convert+29j
seg000:7BE5                 or      si, si
seg000:7BE7                 jg      short conv2
seg000:7BE9                 or      bx, bx
seg000:7BEB                 jnz     short conv2
seg000:7BED                 or      dx, dx
seg000:7BEF                 jnz     short conv2
seg000:7BF1                 jmp     short conv4
seg000:7BF3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7BF3
seg000:7BF3 conv2:                                  ; CODE XREF: convert+5j
seg000:7BF3                                         ; convert+9j ...
seg000:7BF3                 xchg    ax, dx
seg000:7BF4                 xor     dx, dx
seg000:7BF6                 div     cx
seg000:7BF8                 xchg    ax, bx
seg000:7BF9                 div     cx
seg000:7BFB                 xchg    ax, dx
seg000:7BFC                 xchg    dx, bx
seg000:7BFE                 add     al, '0'
seg000:7C00                 cmp     al, '9'
seg000:7C02                 jbe     short conv3
seg000:7C04                 add     al, [bp-1]
seg000:7C07
seg000:7C07 conv3:                                  ; CODE XREF: convert+20j
seg000:7C07                 stosb
seg000:7C08                 mov     ax, dx
seg000:7C0A                 dec     si
seg000:7C0B                 jmp     short conv1
seg000:7C0D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C0D
seg000:7C0D conv4:                                  ; CODE XREF: convert+Fj
seg000:7C0D                 pop     cx
seg000:7C0E                 sub     cx, di
seg000:7C10                 inc     di
seg000:7C11                 cld
seg000:7C12                 retn
seg000:7C12 convert         endp
seg000:7C12
seg000:7C13 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C13 ; START OF FUNCTION CHUNK FOR _output
seg000:7C13
seg000:7C13 loc_7C13:                               ; CODE XREF: _output+2Aj
seg000:7C13                 pop     di
seg000:7C14                 pop     si
seg000:7C15                 mov     sp, bp
seg000:7C17                 pop     bp
seg000:7C18                 retn
seg000:7C18 ; END OF FUNCTION CHUNK FOR _output
seg000:7C18 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C19                 align 2
seg000:7C1A
seg000:7C1A ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7C1A
seg000:7C1A
seg000:7C1A _chkstk         proc near               ; CODE XREF: _output+6p
seg000:7C1A                                         ; _write+AEp
seg000:7C1A
seg000:7C1A ; FUNCTION CHUNK AT seg000:6D72 SIZE 0000001F BYTES
seg000:7C1A
seg000:7C1A                 pop     cx
seg000:7C1B                 mov     bx, sp
seg000:7C1D                 sub     bx, ax
seg000:7C1F                 jb      short OMerr
seg000:7C21                 cmp     bx, end_of_bss
seg000:7C25                 jb      short OMerr
seg000:7C27                 mov     sp, bx
seg000:7C29                 jmp     cx
seg000:7C2B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C2B
seg000:7C2B OMerr:                                  ; CODE XREF: _chkstk+5j
seg000:7C2B                                         ; _chkstk+Bj
seg000:7C2B                 push    cx
seg000:7C2C                 xor     ax, ax
seg000:7C2E                 jmp     loc_6D72
seg000:7C2E _chkstk         endp
seg000:7C2E
seg000:7C2E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C31                 align 2
seg000:7C32
seg000:7C32 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7C32
seg000:7C32 ; Attributes: bp-based frame
seg000:7C32
seg000:7C32 _getbuf         proc near               ; CODE XREF: _flsbuf+82p
seg000:7C32
seg000:7C32 gb_stream       = byte ptr  4
seg000:7C32
seg000:7C32                 push    bp
seg000:7C33                 mov     bp, sp
seg000:7C35                 push    si
seg000:7C36                 mov     si, word ptr [bp+gb_stream]
seg000:7C39                 mov     ax, 512
seg000:7C3C                 push    ax
seg000:7C3D                 call    malloc
seg000:7C40                 pop     cx
seg000:7C41                 mov     bx, si
seg000:7C43                 sub     bx, offset STDIN
seg000:7C47                 add     bx, offset _iob2
seg000:7C4B                 or      ax, ax
seg000:7C4D                 jz      short _singlechar
seg000:7C4F                 or      byte ptr [si+6], 8
seg000:7C53                 mov     word ptr [bx+2], 512
seg000:7C58                 jmp     short setfields
seg000:7C5A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C5A
seg000:7C5A _singlechar:                            ; CODE XREF: _getbuf+1Bj
seg000:7C5A                 or      byte ptr [si+6], 4
seg000:7C5E                 mov     word ptr [bx+2], 1
seg000:7C63                 lea     ax, [bx+1]
seg000:7C66
seg000:7C66 setfields:                              ; CODE XREF: _getbuf+26j
seg000:7C66                 mov     [si], ax
seg000:7C68                 mov     [si+4], ax
seg000:7C6B                 mov     word ptr [si+2], 0
seg000:7C70                 pop     si
seg000:7C71                 pop     bp
seg000:7C72                 retn
seg000:7C72 _getbuf         endp
seg000:7C72
seg000:7C72 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C73                 align 2
seg000:7C74
seg000:7C74 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7C74
seg000:7C74 ; Attributes: bp-based frame
seg000:7C74
seg000:7C74 _lseek          proc near               ; CODE XREF: _flsbuf+D0p
seg000:7C74
seg000:7C74 loword          = word ptr -4
seg000:7C74 hiword          = word ptr -2
seg000:7C74 fh              = word ptr  4
seg000:7C74 pos             = word ptr  6
seg000:7C74 pos2            = word ptr  8
seg000:7C74 mthd            = byte ptr  0Ah
seg000:7C74
seg000:7C74                 push    bp
seg000:7C75                 mov     bp, sp
seg000:7C77                 sub     sp, 4
seg000:7C7A                 mov     bx, [bp+fh]
seg000:7C7D                 cmp     bx, _nfile
seg000:7C81                 jb      short handle_okay
seg000:7C83                 mov     ax, 900h
seg000:7C86                 jmp     short seterr
seg000:7C88 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7C88
seg000:7C88 handle_okay:                            ; CODE XREF: _lseek+Dj
seg000:7C88                 test    [bp+pos2], 8000h
seg000:7C8D                 jz      short doit
seg000:7C8F                 cmp     word ptr [bp+mthd], 0
seg000:7C93                 jz      short negative
seg000:7C95                 xor     cx, cx
seg000:7C97                 mov     dx, cx
seg000:7C99                 mov     ax, 4201h
seg000:7C9C                 int     21h             ; DOS - 2+ - MOVE FILE READ/WRITE POINTER (LSEEK)
seg000:7C9C                                         ; AL = method: offset from present location
seg000:7C9E                 jb      short errexit
seg000:7CA0                 test    word ptr [bp+mthd], 2
seg000:7CA5                 jnz     short findeof
seg000:7CA7                 add     ax, [bp+pos]
seg000:7CAA                 adc     dx, [bp+pos2]
seg000:7CAD                 jns     short doit
seg000:7CAF
seg000:7CAF negative:                               ; CODE XREF: _lseek+1Fj
seg000:7CAF                                         ; _lseek+61j
seg000:7CAF                 mov     ax, 1600h
seg000:7CB2
seg000:7CB2 seterr:                                 ; CODE XREF: _lseek+12j
seg000:7CB2                 stc
seg000:7CB3                 jmp     short errexit
seg000:7CB5 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7CB5
seg000:7CB5 findeof:                                ; CODE XREF: _lseek+31j
seg000:7CB5                 mov     [bp+hiword], dx
seg000:7CB8                 mov     [bp+loword], ax
seg000:7CBB                 mov     dx, cx
seg000:7CBD                 mov     ax, 4202h
seg000:7CC0                 int     21h             ; DOS - 2+ - MOVE FILE READ/WRITE POINTER (LSEEK)
seg000:7CC0                                         ; AL = method: offset from end of file
seg000:7CC2                 add     ax, [bp+pos]
seg000:7CC5                 adc     dx, [bp+pos2]
seg000:7CC8                 jns     short doit
seg000:7CCA                 mov     cx, [bp+hiword]
seg000:7CCD                 mov     dx, [bp+loword]
seg000:7CD0                 mov     ax, 4200h
seg000:7CD3                 int     21h             ; DOS - 2+ - MOVE FILE READ/WRITE POINTER (LSEEK)
seg000:7CD3                                         ; AL = method: offset from beginning of file
seg000:7CD5                 jmp     short negative
seg000:7CD7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7CD7
seg000:7CD7 doit:                                   ; CODE XREF: _lseek+19j
seg000:7CD7                                         ; _lseek+39j ...
seg000:7CD7                 mov     dx, [bp+pos]
seg000:7CDA                 mov     cx, [bp+pos2]
seg000:7CDD                 mov     al, [bp+mthd]
seg000:7CE0                 mov     ah, 42h
seg000:7CE2                 int     21h             ; DOS - 2+ - MOVE FILE READ/WRITE POINTER (LSEEK)
seg000:7CE2                                         ; AL = method:
seg000:7CE2                                         ; 0-from beginnig,1-from current,2-from end
seg000:7CE4                 jb      short errexit
seg000:7CE6                 and     _osfile[bx], not 2
seg000:7CEB
seg000:7CEB errexit:                                ; CODE XREF: _lseek+2Aj
seg000:7CEB                                         ; _lseek+3Fj ...
seg000:7CEB                 jmp     _dosretax
seg000:7CEB _lseek          endp
seg000:7CEB
seg000:7CEE
seg000:7CEE ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7CEE
seg000:7CEE ; Attributes: bp-based frame
seg000:7CEE
seg000:7CEE _write          proc near               ; CODE XREF: _flsbuf+6Cp
seg000:7CEE                                         ; _flsbuf+A6p ...
seg000:7CEE
seg000:7CEE oldsp           = word ptr -8
seg000:7CEE lfcnt           = word ptr -4
seg000:7CEE outcnt          = word ptr -2
seg000:7CEE fh              = word ptr  4
seg000:7CEE buf             = word ptr  6
seg000:7CEE cnt             = byte ptr  8
seg000:7CEE
seg000:7CEE ; FUNCTION CHUNK AT seg000:7613 SIZE 0000000D BYTES
seg000:7CEE
seg000:7CEE                 push    bp
seg000:7CEF                 mov     bp, sp
seg000:7CF1                 sub     sp, 8
seg000:7CF4                 mov     bx, [bp+fh]
seg000:7CF7                 cmp     bx, _nfile
seg000:7CFB                 jb      short handle_okay
seg000:7CFD                 mov     ax, 900h
seg000:7D00                 stc
seg000:7D01
seg000:7D01 to_dosretax:                            ; CODE XREF: _write+32j
seg000:7D01                 jmp     _dosretax
seg000:7D04 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7D04
seg000:7D04 handle_okay:                            ; CODE XREF: _write+Dj
seg000:7D04                 cmp     _aDBswpflg, 0D6D6h
seg000:7D0A                 jnz     short chk_append
seg000:7D0C                 call    _aDBswpchk
seg000:7D10
seg000:7D10 chk_append:                             ; CODE XREF: _write+1Cj
seg000:7D10                 test    _osfile[bx], 20h
seg000:7D15                 jz      short noseek1
seg000:7D17                 mov     ax, 4202h
seg000:7D1A                 xor     cx, cx
seg000:7D1C                 mov     dx, cx
seg000:7D1E                 int     21h             ; DOS - 2+ - MOVE FILE READ/WRITE POINTER (LSEEK)
seg000:7D1E                                         ; AL = method: offset from end of file
seg000:7D20                 jb      short to_dosretax
seg000:7D22
seg000:7D22 noseek1:                                ; CODE XREF: _write+27j
seg000:7D22                 test    _osfile[bx], 80h
seg000:7D27                 jz      short writebin0
seg000:7D29                 mov     dx, [bp+buf]
seg000:7D2C                 push    ds
seg000:7D2D                 pop     es
seg000:7D2E                 assume es:DGROUP
seg000:7D2E                 xor     ax, ax
seg000:7D30                 mov     [bp+outcnt], ax
seg000:7D33                 mov     [bp+lfcnt], ax
seg000:7D36                 cld
seg000:7D37                 push    di
seg000:7D38                 push    si
seg000:7D39                 mov     di, dx
seg000:7D3B                 mov     si, dx
seg000:7D3D                 mov     [bp+oldsp], sp
seg000:7D40                 mov     cx, word ptr [bp+cnt]
seg000:7D43                 jcxz    short j_writedone
seg000:7D45                 mov     al, 0Ah
seg000:7D47                 repne scasb
seg000:7D49                 jnz     short writebin1
seg000:7D4B                 call    _stackavail
seg000:7D4E                 cmp     ax, 168
seg000:7D51                 jbe     short stackerr
seg000:7D53                 sub     sp, 2
seg000:7D56                 mov     bx, sp
seg000:7D58                 mov     dx, 512
seg000:7D5B                 cmp     ax, 552
seg000:7D5E                 jnb     short lfbuff
seg000:7D60                 mov     dx, 128
seg000:7D63
seg000:7D63 lfbuff:                                 ; CODE XREF: _write+70j
seg000:7D63                 sub     sp, dx
seg000:7D65                 mov     dx, sp
seg000:7D67                 mov     di, dx
seg000:7D69                 push    ss
seg000:7D6A                 pop     es
seg000:7D6B                 mov     cx, word ptr [bp+cnt]
seg000:7D6E
seg000:7D6E lfloop:                                 ; CODE XREF: _write+8Aj
seg000:7D6E                 lodsb
seg000:7D6F                 cmp     al, 0Ah
seg000:7D71                 jz      short foundlf
seg000:7D73
seg000:7D73 lfloop1:                                ; CODE XREF: _write+A0j
seg000:7D73                 cmp     di, bx
seg000:7D75                 jz      short wrlfbuff1
seg000:7D77
seg000:7D77 storechr:                               ; CODE XREF: _write+A5j
seg000:7D77                 stosb
seg000:7D78                 loop    lfloop
seg000:7D7A                 call    wrlfbuff
seg000:7D7D
seg000:7D7D j_writedone:                            ; CODE XREF: _write+55j
seg000:7D7D                 jmp     short writedone
seg000:7D7F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7D7F
seg000:7D7F foundlf:                                ; CODE XREF: _write+83j
seg000:7D7F                 mov     al, 0Dh
seg000:7D81                 cmp     di, bx
seg000:7D83                 jnz     short foundlf1
seg000:7D85                 call    wrlfbuff
seg000:7D88
seg000:7D88 foundlf1:                               ; CODE XREF: _write+95j
seg000:7D88                 stosb
seg000:7D89                 mov     al, 0Ah
seg000:7D8B                 inc     [bp+lfcnt]
seg000:7D8E                 jmp     short lfloop1
seg000:7D90 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7D90
seg000:7D90 wrlfbuff1:                              ; CODE XREF: _write+87j
seg000:7D90                 call    wrlfbuff
seg000:7D93                 jmp     short storechr
seg000:7D95 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7D95
seg000:7D95 writebin1:                              ; CODE XREF: _write+5Bj
seg000:7D95                 pop     si
seg000:7D96                 pop     di
seg000:7D97
seg000:7D97 writebin0:                              ; CODE XREF: _write+39j
seg000:7D97                 jmp     short writebin
seg000:7D99 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7D99
seg000:7D99 stackerr:                               ; CODE XREF: _write+63j
seg000:7D99                 mov     ax, 0FFFCh
seg000:7D9C                 call    _chkstk
seg000:7D9F
seg000:7D9F wrlfbuff:                               ; CODE XREF: _write+8Cp
seg000:7D9F                                         ; _write+97p ...
seg000:7D9F                 push    ax
seg000:7DA0                 push    bx
seg000:7DA1                 push    cx
seg000:7DA2                 mov     cx, di
seg000:7DA4                 sub     cx, dx
seg000:7DA6                 jcxz    short wrlfdone
seg000:7DA8                 push    cx
seg000:7DA9                 mov     bx, [bp+fh]
seg000:7DAC                 mov     ah, 40h
seg000:7DAE                 int     21h             ; DOS - 2+ - WRITE TO FILE WITH HANDLE
seg000:7DAE                                         ; BX = file handle, CX = number of bytes to write, DS:DX -> buffer
seg000:7DB0                 pop     cx
seg000:7DB1                 jb      short wrlferror
seg000:7DB3                 add     [bp+outcnt], ax
seg000:7DB6                 cmp     cx, ax
seg000:7DB8                 ja      short wrlferror
seg000:7DBA
seg000:7DBA wrlfdone:                               ; CODE XREF: _write+B8j
seg000:7DBA                 pop     cx
seg000:7DBB                 pop     bx
seg000:7DBC                 pop     ax
seg000:7DBD                 mov     di, dx
seg000:7DBF                 retn
seg000:7DC0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7DC0
seg000:7DC0 wrlferror:                              ; CODE XREF: _write+C3j
seg000:7DC0                                         ; _write+CAj
seg000:7DC0                 lahf
seg000:7DC1                 add     sp, 8
seg000:7DC4                 cmp     [bp+outcnt], 0
seg000:7DC8                 jnz     short writedone
seg000:7DCA                 sahf
seg000:7DCB                 jnb     short wrote0
seg000:7DCD                 mov     ah, 9
seg000:7DCF                 jmp     short writeerror
seg000:7DD1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7DD1
seg000:7DD1 wrote0:                                 ; CODE XREF: _write+DDj
seg000:7DD1                 test    _osfile[bx], 40h
seg000:7DD6                 jz      short wrlferr1
seg000:7DD8                 mov     bx, [bp+buf]
seg000:7DDB                 cmp     byte ptr [bx], 1Ah
seg000:7DDE                 jnz     short wrlferr1
seg000:7DE0                 clc
seg000:7DE1                 jmp     short writeerror
seg000:7DE3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7DE3
seg000:7DE3 wrlferr1:                               ; CODE XREF: _write+E8j
seg000:7DE3                                         ; _write+F0j
seg000:7DE3                 stc
seg000:7DE4                 mov     ax, 1C00h
seg000:7DE7                 jmp     short writeerror
seg000:7DE9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7DE9
seg000:7DE9 writedone:                              ; CODE XREF: _write:j_writedonej
seg000:7DE9                                         ; _write+DAj
seg000:7DE9                 mov     ax, [bp+outcnt]
seg000:7DEC                 sub     ax, [bp+lfcnt]
seg000:7DEF
seg000:7DEF writeerror:                             ; CODE XREF: _write+E1j
seg000:7DEF                                         ; _write+F3j ...
seg000:7DEF                 mov     sp, [bp+oldsp]
seg000:7DF2                 pop     si
seg000:7DF3                 pop     di
seg000:7DF4
seg000:7DF4 justret:                                ; CODE XREF: _write+120j
seg000:7DF4                                         ; _write+124j ...
seg000:7DF4                 jmp     _dosretax
seg000:7DF7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7DF7
seg000:7DF7 writebin:                               ; CODE XREF: _write:writebin0j
seg000:7DF7                 mov     cx, word ptr [bp+cnt]
seg000:7DFA                 or      cx, cx
seg000:7DFC                 jnz     short writegoon
seg000:7DFE                 mov     ax, cx
seg000:7E00                 jmp     _dosretax
seg000:7E03 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7E03
seg000:7E03 writegoon:                              ; CODE XREF: _write+10Ej
seg000:7E03                 mov     dx, [bp+buf]
seg000:7E06                 mov     ah, 40h
seg000:7E08                 int     21h             ; DOS - 2+ - WRITE TO FILE WITH HANDLE
seg000:7E08                                         ; BX = file handle, CX = number of bytes to write, DS:DX -> buffer
seg000:7E0A                 jnb     short writeok4
seg000:7E0C                 mov     ah, 9
seg000:7E0E                 jmp     short justret
seg000:7E10 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7E10
seg000:7E10 writeok4:                               ; CODE XREF: _write+11Cj
seg000:7E10                 or      ax, ax
seg000:7E12                 jnz     short justret
seg000:7E14                 test    _osfile[bx], 40h
seg000:7E19                 jz      short notdev
seg000:7E1B                 mov     bx, dx
seg000:7E1D                 cmp     byte ptr [bx], 1Ah
seg000:7E20                 jnz     short notdev
seg000:7E22                 clc
seg000:7E23                 jmp     short justret
seg000:7E25 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7E25
seg000:7E25 notdev:                                 ; CODE XREF: _write+12Bj
seg000:7E25                                         ; _write+132j
seg000:7E25                 stc
seg000:7E26                 mov     ax, 1C00h
seg000:7E29                 jmp     short justret
seg000:7E29 _write          endp
seg000:7E29
seg000:7E29 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7E2B                 align 2
seg000:7E2C
seg000:7E2C ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7E2C
seg000:7E2C
seg000:7E2C _stackavail     proc near               ; CODE XREF: _write+5Dp
seg000:7E2C                 pop     cx
seg000:7E2D                 mov     ax, end_of_bss
seg000:7E30                 cmp     ax, sp
seg000:7E32                 jnb     short stkavl_1
seg000:7E34                 sub     ax, sp
seg000:7E36                 neg     ax
seg000:7E38
seg000:7E38 stkavl_0:                               ; CODE XREF: _stackavail+10j
seg000:7E38                 jmp     cx
seg000:7E3A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7E3A
seg000:7E3A stkavl_1:                               ; CODE XREF: _stackavail+6j
seg000:7E3A                 xor     ax, ax
seg000:7E3C                 jmp     short stkavl_0
seg000:7E3C _stackavail     endp
seg000:7E3C
seg000:7E3E
seg000:7E3E ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7E3E
seg000:7E3E ; Attributes: thunk
seg000:7E3E
seg000:7E3E malloc          proc near               ; CODE XREF: _getbuf+Bp
seg000:7E3E                 jmp     _nmalloc
seg000:7E3E malloc          endp
seg000:7E3E
seg000:7E3E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7E41                 align 2
seg000:7E42
seg000:7E42 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7E42
seg000:7E42 ; Attributes: bp-based frame
seg000:7E42
seg000:7E42 sub_7E42        proc near               ; CODE XREF: sub_7EBC+27p
seg000:7E42
seg000:7E42 var_2           = word ptr -2
seg000:7E42 arg_0           = word ptr  4
seg000:7E42
seg000:7E42                 push    bp
seg000:7E43                 mov     bp, sp
seg000:7E45                 sub     sp, 2
seg000:7E48                 push    di
seg000:7E49                 push    si
seg000:7E4A                 sub     di, di
seg000:7E4C                 cmp     [bp+arg_0], di
seg000:7E4F                 jnz     short loc_7E5A
seg000:7E51                 sub     ax, ax
seg000:7E53                 push    ax
seg000:7E54                 call    sub_7EBC
seg000:7E57                 jmp     short loc_7EAE
seg000:7E57 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7E59                 align 2
seg000:7E5A
seg000:7E5A loc_7E5A:                               ; CODE XREF: sub_7E42+Dj
seg000:7E5A                 mov     si, [bp+arg_0]
seg000:7E5D                 mov     al, [si+6]
seg000:7E60                 mov     cx, ax
seg000:7E62                 and     al, 3
seg000:7E64                 cmp     al, 2
seg000:7E66                 jnz     short loc_7EA2
seg000:7E68                 test    cl, 8
seg000:7E6B                 jnz     short loc_7E7A
seg000:7E6D                 mov     bx, si
seg000:7E6F                 sub     bx, offset STDIN
seg000:7E73                 test    _iob2[bx], 1
seg000:7E78                 jz      short loc_7EA2
seg000:7E7A
seg000:7E7A loc_7E7A:                               ; CODE XREF: sub_7E42+29j
seg000:7E7A                 mov     ax, [si]
seg000:7E7C                 sub     ax, [si+4]
seg000:7E7F                 mov     [bp+var_2], ax
seg000:7E82                 or      ax, ax
seg000:7E84                 jle     short loc_7EA2
seg000:7E86                 push    ax
seg000:7E87                 push    word ptr [si+4]
seg000:7E8A                 mov     cl, [si+7]
seg000:7E8D                 sub     ch, ch
seg000:7E8F                 push    cx
seg000:7E90                 call    _write
seg000:7E93                 add     sp, 6
seg000:7E96                 cmp     [bp+var_2], ax
seg000:7E99                 jz      short loc_7EA2
seg000:7E9B                 or      byte ptr [si+6], 20h
seg000:7E9F                 mov     di, 0FFFFh
seg000:7EA2
seg000:7EA2 loc_7EA2:                               ; CODE XREF: sub_7E42+24j
seg000:7EA2                                         ; sub_7E42+36j ...
seg000:7EA2                 mov     ax, [si+4]
seg000:7EA5                 mov     [si], ax
seg000:7EA7                 mov     word ptr [si+2], 0
seg000:7EAC                 mov     ax, di
seg000:7EAE
seg000:7EAE loc_7EAE:                               ; CODE XREF: sub_7E42+15j
seg000:7EAE                 pop     si
seg000:7EAF                 pop     di
seg000:7EB0                 mov     sp, bp
seg000:7EB2                 pop     bp
seg000:7EB3                 retn
seg000:7EB3 sub_7E42        endp
seg000:7EB3
seg000:7EB4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7EB4
seg000:7EB4 loc_7EB4:                               ; DATA XREF: DGROUP:xpbegino
seg000:7EB4                 mov     ax, 1
seg000:7EB7                 push    ax
seg000:7EB8                 call    sub_7EBC
seg000:7EBB                 retn
seg000:7EBC
seg000:7EBC ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7EBC
seg000:7EBC ; Attributes: bp-based frame
seg000:7EBC
seg000:7EBC sub_7EBC        proc near               ; CODE XREF: sub_7E42+12p
seg000:7EBC                                         ; seg000:7EB8p
seg000:7EBC
seg000:7EBC var_2           = word ptr -2
seg000:7EBC arg_0           = word ptr  4
seg000:7EBC
seg000:7EBC                 push    bp
seg000:7EBD                 mov     bp, sp
seg000:7EBF                 sub     sp, 2
seg000:7EC2                 push    di
seg000:7EC3                 push    si
seg000:7EC4                 mov     si, offset STDIN
seg000:7EC7                 sub     di, di
seg000:7EC9                 mov     [bp+var_2], di
seg000:7ECC                 jmp     short loc_7ED6
seg000:7ECE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7ECE
seg000:7ECE loc_7ECE:                               ; CODE XREF: sub_7EBC+2Ej
seg000:7ECE                 mov     [bp+var_2], 0FFFFh
seg000:7ED3
seg000:7ED3 loc_7ED3:                               ; CODE XREF: sub_7EBC+24j
seg000:7ED3                                         ; sub_7EBC+31j
seg000:7ED3                 add     si, 8
seg000:7ED6
seg000:7ED6 loc_7ED6:                               ; CODE XREF: sub_7EBC+10j
seg000:7ED6                 cmp     word_E1CE, si
seg000:7EDA                 jb      short loc_7EF0
seg000:7EDC                 test    byte ptr [si+6], 83h
seg000:7EE0                 jz      short loc_7ED3
seg000:7EE2                 push    si
seg000:7EE3                 call    sub_7E42
seg000:7EE6                 add     sp, 2
seg000:7EE9                 inc     ax
seg000:7EEA                 jz      short loc_7ECE
seg000:7EEC                 inc     di
seg000:7EED                 jmp     short loc_7ED3
seg000:7EED ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7EEF                 align 2
seg000:7EF0
seg000:7EF0 loc_7EF0:                               ; CODE XREF: sub_7EBC+1Ej
seg000:7EF0                 cmp     [bp+arg_0], 1
seg000:7EF4                 jnz     short loc_7EFA
seg000:7EF6                 mov     ax, di
seg000:7EF8                 jmp     short loc_7EFD
seg000:7EFA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7EFA
seg000:7EFA loc_7EFA:                               ; CODE XREF: sub_7EBC+38j
seg000:7EFA                 mov     ax, [bp+var_2]
seg000:7EFD
seg000:7EFD loc_7EFD:                               ; CODE XREF: sub_7EBC+3Cj
seg000:7EFD                 pop     si
seg000:7EFE                 pop     di
seg000:7EFF                 mov     sp, bp
seg000:7F01                 pop     bp
seg000:7F02                 retn    2
seg000:7F02 sub_7EBC        endp
seg000:7F02
seg000:7F02 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7F05                 align 2
seg000:7F06                 push    bp
seg000:7F07                 mov     bp, sp
seg000:7F09                 push    si
seg000:7F0A                 mov     bx, [bp+4]
seg000:7F0D                 mov     si, offset _nheap_desc
seg000:7F10                 cmp     [si+6], bx
seg000:7F13                 jnb     short loc_7F22
seg000:7F15                 dec     bx
seg000:7F16                 dec     bx
seg000:7F17                 or      byte ptr [bx], 1
seg000:7F1A                 cmp     [si+8], bx
seg000:7F1D                 jbe     short loc_7F22
seg000:7F1F                 mov     [si+8], bx
seg000:7F22
seg000:7F22 loc_7F22:                               ; CODE XREF: seg000:7F13j
seg000:7F22                                         ; seg000:7F1Dj
seg000:7F22                 pop     si
seg000:7F23                 mov     sp, bp
seg000:7F25                 pop     bp
seg000:7F26                 retn
seg000:7F27
seg000:7F27 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7F27
seg000:7F27 ; Attributes: bp-based frame
seg000:7F27
seg000:7F27 _nmalloc        proc near               ; CODE XREF: mallocj
seg000:7F27
seg000:7F27 incr            = byte ptr  4
seg000:7F27
seg000:7F27                 push    bp
seg000:7F28                 mov     bp, sp
seg000:7F2A                 push    si
seg000:7F2B                 push    di
seg000:7F2C                 mov     cx, word ptr [bp+incr]
seg000:7F2F                 cmp     cx, 0FFE8h
seg000:7F32                 ja      short error_rtn
seg000:7F34                 mov     bx, offset _nheap_desc
seg000:7F37                 call    _searchseg
seg000:7F3A                 jnb     short ndone
seg000:7F3C                 call    _growseg
seg000:7F3F                 jb      short error_rtn
seg000:7F41                 call    _searchseg
seg000:7F44                 jnb     short ndone
seg000:7F46
seg000:7F46 error_rtn:                              ; CODE XREF: _nmalloc+Bj
seg000:7F46                                         ; _nmalloc+18j
seg000:7F46                 xor     ax, ax
seg000:7F48                 cwd
seg000:7F49                 jmp     short $+2
seg000:7F4B
seg000:7F4B ndone:                                  ; CODE XREF: _nmalloc+13j
seg000:7F4B                                         ; _nmalloc+1Dj
seg000:7F4B                 pop     di
seg000:7F4C                 pop     si
seg000:7F4D                 pop     bp
seg000:7F4E                 retn
seg000:7F4E _nmalloc        endp
seg000:7F4E
seg000:7F4E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7F4F                 align 2
seg000:7F50
seg000:7F50 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7F50
seg000:7F50
seg000:7F50 _searchseg      proc near               ; CODE XREF: _nmalloc+10p
seg000:7F50                                         ; _nmalloc+1Ap
seg000:7F50                 inc     cx
seg000:7F51                 and     cl, 0FEh
seg000:7F54                 push    bx
seg000:7F55                 cld
seg000:7F56                 mov     si, [bx+8]
seg000:7F59                 mov     bx, [bx+10]
seg000:7F5C                 xor     di, di
seg000:7F5E                 jmp     short check_block
seg000:7F60 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7F60
seg000:7F60 next_pass:                              ; CODE XREF: _searchseg+2Dj
seg000:7F60                 mov     ax, bx
seg000:7F62                 pop     bx
seg000:7F63                 test    al, 1
seg000:7F65                 jnz     short failure2
seg000:7F67                 push    bx
seg000:7F68                 mov     si, [bx+6]
seg000:7F6B                 mov     bx, [bx+8]
seg000:7F6E                 cmp     bx, si
seg000:7F70                 jz      short failure1
seg000:7F72                 dec     bx
seg000:7F73                 xor     di, di
seg000:7F75                 jmp     short check_block
seg000:7F75 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7F77                 align 2
seg000:7F78
seg000:7F78 next_block:                             ; CODE XREF: _searchseg+36j
seg000:7F78                                         ; _searchseg+48j
seg000:7F78                 lea     dx, [si-2]
seg000:7F7B                 cmp     dx, bx
seg000:7F7D                 jnb     short next_pass
seg000:7F7F                 add     si, ax
seg000:7F81                 jb      short heap_toast
seg000:7F83
seg000:7F83 check_block:                            ; CODE XREF: _searchseg+Ej
seg000:7F83                                         ; _searchseg+25j
seg000:7F83                 lodsw
seg000:7F84                 test    al, 1
seg000:7F86                 jz      short next_block
seg000:7F88                 mov     di, si
seg000:7F8A
seg000:7F8A coal_loop:                              ; CODE XREF: _searchseg+54j
seg000:7F8A                 dec     ax
seg000:7F8B                 cmp     ax, cx
seg000:7F8D                 jnb     short blockfound
seg000:7F8F                 add     si, ax
seg000:7F91                 jb      short heap_toast
seg000:7F93                 mov     dx, ax
seg000:7F95                 lodsw
seg000:7F96                 test    al, 1
seg000:7F98                 jz      short next_block
seg000:7F9A                 add     ax, dx
seg000:7F9C                 add     ax, 2
seg000:7F9F                 mov     si, di
seg000:7FA1                 mov     [si-2], ax
seg000:7FA4                 jmp     short coal_loop
seg000:7FA6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7FA6
seg000:7FA6 heap_toast:                             ; CODE XREF: _searchseg+31j
seg000:7FA6                                         ; _searchseg+41j
seg000:7FA6                 mov     ax, ax
seg000:7FA8
seg000:7FA8 failure1:                               ; CODE XREF: _searchseg+20j
seg000:7FA8                 pop     bx
seg000:7FA9
seg000:7FA9 failure2:                               ; CODE XREF: _searchseg+15j
seg000:7FA9                 mov     ax, [bx+6]
seg000:7FAC                 mov     [bx+8], ax
seg000:7FAF                 stc
seg000:7FB0                 jmp     short _done
seg000:7FB2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7FB2
seg000:7FB2 blockfound:                             ; CODE XREF: _searchseg+3Dj
seg000:7FB2                 pop     bx
seg000:7FB3                 mov     [si-2], cx
seg000:7FB6                 jz      short set_rover
seg000:7FB8                 add     di, cx
seg000:7FBA                 sub     ax, cx
seg000:7FBC                 dec     ax
seg000:7FBD                 mov     [di], ax
seg000:7FBF                 sub     di, cx
seg000:7FC1
seg000:7FC1 set_rover:                              ; CODE XREF: _searchseg+66j
seg000:7FC1                 add     di, cx
seg000:7FC3                 mov     [bx+8], di
seg000:7FC6                 mov     ax, si
seg000:7FC8                 mov     dx, ds
seg000:7FCA                 clc
seg000:7FCB
seg000:7FCB _done:                                  ; CODE XREF: _searchseg+60j
seg000:7FCB                 retn
seg000:7FCB _searchseg      endp
seg000:7FCB
seg000:7FCC
seg000:7FCC ; --------------- S U B R O U T I N E ---------------------------------------
seg000:7FCC
seg000:7FCC
seg000:7FCC _growseg        proc near               ; CODE XREF: _nmalloc+15p
seg000:7FCC                 push    cx
seg000:7FCD                 push    di
seg000:7FCE                 test    byte ptr [bx+2], 1
seg000:7FD2                 jz      short grow_error_rtn
seg000:7FD4                 call    _findlast
seg000:7FD7                 mov     di, si
seg000:7FD9                 mov     ax, [si]
seg000:7FDB                 test    al, 1
seg000:7FDD                 jz      short calc_length
seg000:7FDF                 sub     cx, ax
seg000:7FE1                 dec     cx
seg000:7FE2
seg000:7FE2 calc_length:                            ; CODE XREF: _growseg+11j
seg000:7FE2                 inc     cx
seg000:7FE3                 inc     cx
seg000:7FE4                 mov     si, [bx+4]
seg000:7FE7                 or      si, si
seg000:7FE9                 jz      short grow_error_rtn
seg000:7FEB                 add     cx, si
seg000:7FED                 jnb     short grow_size_ok
seg000:7FEF                 xor     ax, ax
seg000:7FF1                 mov     dx, 0FFF0h
seg000:7FF4                 jcxz    short grow3
seg000:7FF6                 jmp     short grow_error_rtn
seg000:7FF8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:7FF8
seg000:7FF8 grow_size_ok:                           ; CODE XREF: _growseg+21j
seg000:7FF8                 push    ss
seg000:7FF9                 pop     es
seg000:7FFA                 mov     ax, es:_amblksiz
seg000:7FFE                 cmp     ax, 2000h
seg000:8001                 jz      short grow1
seg000:8003                 mov     dx, 8000h
seg000:8006
seg000:8006 grow_next_size:                         ; CODE XREF: _growseg+40j
seg000:8006                 cmp     dx, ax
seg000:8008                 jb      short grow
seg000:800A                 shr     dx, 1
seg000:800C                 jnz     short grow_next_size
seg000:800E                 jmp     short grow_paragraph
seg000:8010 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:8010
seg000:8010 grow:                                   ; CODE XREF: _growseg+3Cj
seg000:8010                 cmp     dx, 8
seg000:8013                 jb      short grow_paragraph
seg000:8015                 shl     dx, 1
seg000:8017                 mov     ax, dx
seg000:8019
seg000:8019 grow1:                                  ; CODE XREF: _growseg+35j
seg000:8019                                         ; _growseg+69j
seg000:8019                 dec     ax
seg000:801A
seg000:801A loc_801A:
seg000:801A                 mov     dx, ax
seg000:801C                 add     ax, cx
seg000:801E                 jnb     short grow2
seg000:8020                 xor     ax, ax
seg000:8022
seg000:8022 grow2:                                  ; CODE XREF: _growseg+52j
seg000:8022                 not     dx
seg000:8024                 and     ax, dx
seg000:8026
seg000:8026 grow3:                                  ; CODE XREF: _growseg+28j
seg000:8026                 push    dx
seg000:8027                 call    _incseg
seg000:802A                 pop     dx
seg000:802B                 jnb     short grow_good_rtn
seg000:802D                 cmp     dx, 0FFF0h
seg000:8030                 jz      short grow_error_rtn
seg000:8032
seg000:8032 grow_paragraph:                         ; CODE XREF: _growseg+42j
seg000:8032                                         ; _growseg+47j
seg000:8032                 mov     ax, 10h
seg000:8035                 jmp     short grow1
seg000:8037 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:8037
seg000:8037 grow_error_rtn:                         ; CODE XREF: _growseg+6j
seg000:8037                                         ; _growseg+1Dj ...
seg000:8037                 stc
seg000:8038                 jmp     short grow_done
seg000:803A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:803A
seg000:803A grow_good_rtn:                          ; CODE XREF: _growseg+5Fj
seg000:803A                 mov     dx, ax
seg000:803C                 sub     dx, [bx+4]
seg000:803F                 mov     [bx+4], ax
seg000:8042                 mov     [bx+8], di
seg000:8045                 mov     si, [bx+10]
seg000:8048                 dec     dx
seg000:8049                 mov     [si], dx
seg000:804B                 inc     dx
seg000:804C                 add     si, dx
seg000:804E                 mov     word ptr [si], 0FFFEh
seg000:8052                 mov     [bx+10], si
seg000:8055
seg000:8055 grow_done:                              ; CODE XREF: _growseg+6Cj
seg000:8055                 pop     di
seg000:8056                 pop     cx
seg000:8057                 retn
seg000:8057 _growseg        endp
seg000:8057
seg000:8058
seg000:8058 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:8058
seg000:8058
seg000:8058 _incseg         proc near               ; CODE XREF: _growseg+5Bp
seg000:8058                 mov     dx, ax
seg000:805A                 test    byte ptr [bx+2], 4
seg000:805E                 jz      short do_oscall1
seg000:8060                 dec     dx
seg000:8061                 mov     si, [bx+4]
seg000:8064                 dec     si
seg000:8065                 cmp     dx, si
seg000:8067                 jb      short do_oscall
seg000:8069                 cmp     [bx-2], dx
seg000:806C                 jnb     short incseg_ok
seg000:806E
seg000:806E do_oscall:                              ; CODE XREF: _incseg+Fj
seg000:806E                 inc     dx
seg000:806F
seg000:806F do_oscall1:                             ; CODE XREF: _incseg+6j
seg000:806F                 push    bx
seg000:8070                 push    cx
seg000:8071                 mov     si, ds
seg000:8073                 mov     es, si
seg000:8075                 mov     cl, 4
seg000:8077                 shr     ax, cl
seg000:8079                 jnz     short do_oscall2
seg000:807B                 mov     ax, 1000h
seg000:807E
seg000:807E do_oscall2:                             ; CODE XREF: _incseg+21j
seg000:807E                 test    byte ptr [bx+2], 4
seg000:8082                 jz      short do_oscall3
seg000:8084                 add     ax, si
seg000:8086                 mov     bx, _psp
seg000:808A                 sub     ax, bx
seg000:808C                 mov     es, bx
seg000:808E                 assume es:nothing
seg000:808E
seg000:808E do_oscall3:                             ; CODE XREF: _incseg+2Aj
seg000:808E                 mov     bx, ax
seg000:8090                 mov     ah, 4Ah
seg000:8092                 int     21h             ; DOS - 2+ - ADJUST MEMORY BLOCK SIZE (SETBLOCK)
seg000:8092                                         ; ES = segment address of block to change
seg000:8092                                         ; BX = new size in paragraphs
seg000:8094                 pop     cx
seg000:8095                 pop     bx
seg000:8096                 jb      short incseg_done
seg000:8098                 mov     ax, dx
seg000:809A                 test    byte ptr [bx+2], 4
seg000:809E                 jz      short incseg_ok
seg000:80A0                 dec     dx
seg000:80A1                 mov     [bx-2], dx
seg000:80A4
seg000:80A4 incseg_ok:                              ; CODE XREF: _incseg+14j
seg000:80A4                                         ; _incseg+46j
seg000:80A4                 clc
seg000:80A5                 jmp     short incseg_done
seg000:80A7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:80A7                 stc
seg000:80A8
seg000:80A8 incseg_done:                            ; CODE XREF: _incseg+3Ej
seg000:80A8                                         ; _incseg+4Dj
seg000:80A8                 retn
seg000:80A8 _incseg         endp
seg000:80A8
seg000:80A9
seg000:80A9 ; --------------- S U B R O U T I N E ---------------------------------------
seg000:80A9
seg000:80A9
seg000:80A9 _findlast       proc near               ; CODE XREF: _growseg+8p
seg000:80A9                 push    di
seg000:80AA                 mov     si, [bx+8]
seg000:80AD                 cmp     si, [bx+10]
seg000:80B0                 jnz     short lastloop
seg000:80B2                 mov     si, [bx+6]
seg000:80B5
seg000:80B5 lastloop:                               ; CODE XREF: _findlast+7j
seg000:80B5                                         ; _findlast+18j
seg000:80B5                 lodsw
seg000:80B6                 cmp     ax, 0FFFEh
seg000:80B9                 jz      short lastdone
seg000:80BB                 mov     di, si
seg000:80BD                 and     al, 0FEh
seg000:80BF                 add     si, ax
seg000:80C1                 jmp     short lastloop
seg000:80C3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:80C3
seg000:80C3 lastdone:                               ; CODE XREF: _findlast+10j
seg000:80C3                 dec     di
seg000:80C4                 dec     di
seg000:80C5                 mov     si, di
seg000:80C7                 pop     di
seg000:80C8                 retn
seg000:80C8 _findlast       endp
seg000:80C8
seg000:80C8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:80C9                 db 7 dup(0)
seg000:80C9 seg000          ends
seg000:80C9
seg001:0000 ; ===========================================================================
seg001:0000
seg001:0000 ; Segment type: Pure data
seg001:0000 seg001          segment byte public 'DATA' use16
seg001:0000                 assume cs:seg001
seg001:0000 seg_80D0        dw seg DGROUP
seg001:0002 byte_80D2       db 270 dup(0)
seg001:0110                 db 256 dup(0)
seg001:0210 byte_82E0       db 256 dup(0)
seg001:0310 byte_83E0       db 256 dup(0)
seg001:0410                 db 256 dup(0)
seg001:0510                 db 256 dup(0)
seg001:0610                 db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
seg001:0610                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
seg001:0610                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
seg001:0610                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
seg001:0610                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
seg001:0610                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
seg001:0610                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
seg001:0610                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
seg001:0610                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
seg001:0610                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
seg001:0610                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
seg001:0610                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
seg001:0610                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
seg001:0610                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
seg001:0610                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
seg001:0610                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
seg001:0610                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
seg001:0610                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
seg001:0610                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
seg001:0610                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
seg001:0610                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
seg001:0610                 db 6Dh, 124h dup(00h), 55h, 0AAh
seg001:0610 seg001          ends
seg001:0610
seg002:0000 ; ===========================================================================
seg002:0000
seg002:0000 ; Segment type: Pure code
seg002:0000 seg002          segment byte public 'CODE' use16
seg002:0000                 assume cs:seg002
seg002:0000                 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
seg002:0000
seg002:0000 ; --------------- S U B R O U T I N E ---------------------------------------
seg002:0000
seg002:0000 ; Attributes: bp-based frame
seg002:0000
seg002:0000 DOSBEEP         proc far                ; CODE XREF: display+18EP
seg002:0000                                         ; get_char_input+23P ...
seg002:0000
seg002:0000 arg_0           = word ptr  6
seg002:0000 arg_2           = word ptr  8
seg002:0000
seg002:0000                 push    bp
seg002:0001                 mov     bp, sp
seg002:0003                 push    bx
seg002:0004
seg002:0004 loc_88E4:
seg002:0004                 push    cx
seg002:0005                 push    dx
seg002:0006
seg002:0006 loc_88E6:
seg002:0006                 push    si
seg002:0007                 push    di
seg002:0008
seg002:0008 loc_88E8:
seg002:0008                 push    ds
seg002:0009                 push    es
seg002:000A
seg002:000A loc_88EA:
seg002:000A                 push    ss
seg002:000B
seg002:000B loc_88EB:
seg002:000B                 push    bp
seg002:000C
seg002:000C loc_88EC:
seg002:000C                 mov     al, 0B6h
seg002:000E
seg002:000E loc_88EE:                               ; Timer 8253-5 (AT: 8254.2).
seg002:000E                 out     43h, al
seg002:0010
seg002:0010 loc_88F0:
seg002:0010                 mov     dx, 12h
seg002:0013                 mov     ax, 2970h
seg002:0016
seg002:0016 loc_88F6:
seg002:0016                 mov     cx, [bp+arg_2]
seg002:0019                 mov     bx, 37
seg002:001C                 cmp     cx, bx
seg002:001E
seg002:001E loc_88FE:
seg002:001E                 jl      short loc_892B
seg002:0020
seg002:0020 loc_8900:
seg002:0020                 mov     bx, 32767
seg002:0023
seg002:0023 loc_8903:
seg002:0023                 cmp     cx, bx
seg002:0025
seg002:0025 loc_8905:
seg002:0025                 jg      short loc_892B
seg002:0027
seg002:0027 loc_8907:
seg002:0027                 div     cx
seg002:0029
seg002:0029 loc_8909:                               ; Timer 8253-5 (AT: 8254.2).
seg002:0029                 out     42h, al
seg002:002B
seg002:002B loc_890B:
seg002:002B                 mov     al, ah
seg002:002D
seg002:002D loc_890D:                               ; Timer 8253-5 (AT: 8254.2).
seg002:002D                 out     42h, al
seg002:002F
seg002:002F loc_890F:                               ; PC/XT PPI port B bits:
seg002:002F                 in      al, 61h         ; 0: Tmr 2 gate =T= OR 03H=spkr ON
seg002:002F                                         ; 1: Tmr 2 data =-  AND 0fcH=spkr OFF
seg002:002F                                         ; 3: 1=read high switches
seg002:002F                                         ; 4: 0=enable RAM parity checking
seg002:002F                                         ; 5: 0=enable I/O channel check
seg002:002F                                         ; 6: 0=hold keyboard clock low
seg002:002F                                         ; 7: 0=enable kbrd
seg002:0031
seg002:0031 loc_8911:
seg002:0031                 mov     ah, al
seg002:0033
seg002:0033 loc_8913:
seg002:0033                 or      al, 3
seg002:0035
seg002:0035 loc_8915:                               ; PC/XT PPI port B bits:
seg002:0035                 out     61h, al         ; 0: Tmr 2 gate =T= OR 03H=spkr ON
seg002:0035                                         ; 1: Tmr 2 data =-  AND 0fcH=spkr OFF
seg002:0035                                         ; 3: 1=read high switches
seg002:0035                                         ; 4: 0=enable RAM parity checking
seg002:0035                                         ; 5: 0=enable I/O channel check
seg002:0035                                         ; 6: 0=hold keyboard clock low
seg002:0035                                         ; 7: 0=enable kbrd
seg002:0037                 mov     cx, [bp+arg_0]
seg002:003A
seg002:003A loc_891A:                               ; CODE XREF: DOSBEEP+40j
seg002:003A                 mov     bx, 196
seg002:003D
seg002:003D loc_891D:                               ; CODE XREF: DOSBEEP+3Ej
seg002:003D                 dec     bx
seg002:003E                 jnz     short loc_891D
seg002:0040                 loop    loc_891A
seg002:0042
seg002:0042 loc_8922:
seg002:0042                 mov     al, ah
seg002:0044                 out     61h, al         ; PC/XT PPI port B bits:
seg002:0044                                         ; 0: Tmr 2 gate =T= OR 03H=spkr ON
seg002:0044                                         ; 1: Tmr 2 data =-  AND 0fcH=spkr OFF
seg002:0044                                         ; 3: 1=read high switches
seg002:0044                                         ; 4: 0=enable RAM parity checking
seg002:0044                                         ; 5: 0=enable I/O channel check
seg002:0044                                         ; 6: 0=hold keyboard clock low
seg002:0044                                         ; 7: 0=enable kbrd
seg002:0046                 sub     ax, ax
seg002:0048                 jmp     short loc_892E
seg002:004A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg002:004A
seg002:004A loc_892A:
seg002:004A                 nop
seg002:004B
seg002:004B loc_892B:                               ; CODE XREF: DOSBEEP:loc_88FEj
seg002:004B                                         ; DOSBEEP:loc_8905j
seg002:004B                 mov     ax, 2
seg002:004E
seg002:004E loc_892E:                               ; CODE XREF: DOSBEEP+48j
seg002:004E                 pop     bp
seg002:004F                 pop     ss
seg002:0050
seg002:0050 loc_8930:
seg002:0050                 pop     es
seg002:0051                 pop     ds
seg002:0052                 pop     di
seg002:0053                 pop     si
seg002:0054                 pop     dx
seg002:0055                 pop     cx
seg002:0056                 pop     bx
seg002:0057
seg002:0057 loc_8937:
seg002:0057                 mov     sp, bp
seg002:0059                 pop     bp
seg002:005A                 retf    4
seg002:005A DOSBEEP         endp
seg002:005A
seg002:005D
seg002:005D ; --------------- S U B R O U T I N E ---------------------------------------
seg002:005D
seg002:005D ; Attributes: bp-based frame
seg002:005D
seg002:005D DOSEXIT         proc far                ; CODE XREF: main+D6P
seg002:005D                                         ; internal_program_error+11P
seg002:005D
seg002:005D arg_0           = word ptr  6
seg002:005D arg_2           = word ptr  8
seg002:005D
seg002:005D                 push    bp
seg002:005E
seg002:005E loc_893E:
seg002:005E                 mov     bp, sp
seg002:0060                 push    bx
seg002:0061                 push    cx
seg002:0062                 push    dx
seg002:0063                 push    si
seg002:0064                 push    di
seg002:0065                 push    ds
seg002:0066
seg002:0066 loc_8946:
seg002:0066                 push    es
seg002:0067                 push    ss
seg002:0068
seg002:0068 loc_8948:
seg002:0068                 push    bp
seg002:0069
seg002:0069 loc_8949:
seg002:0069                 mov     ax, [bp+arg_2]
seg002:006C
seg002:006C loc_894C:
seg002:006C                 cmp     ax, 1
seg002:006F
seg002:006F loc_894F:
seg002:006F                 jg      short dosexit_0
seg002:0071
seg002:0071 loc_8951:
seg002:0071                 mov     ax, [bp+arg_0]
seg002:0074
seg002:0074 loc_8954:
seg002:0074                 mov     ah, 4Ch
seg002:0076
seg002:0076 loc_8956:                               ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
seg002:0076                 int     21h             ; AL = exit code
seg002:0078 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg002:0078
seg002:0078 loc_8958:
seg002:0078                 xor     ax, ax
seg002:007A
seg002:007A dosexit_0:                              ; CODE XREF: DOSEXIT:loc_894Fj
seg002:007A                 pop     bp
seg002:007B                 pop     ss
seg002:007C
seg002:007C loc_895C:
seg002:007C                 pop     es
seg002:007D                 pop     ds
seg002:007E
seg002:007E loc_895E:
seg002:007E                 pop     di
seg002:007F                 pop     si
seg002:0080
seg002:0080 loc_8960:
seg002:0080                 pop     dx
seg002:0081                 pop     cx
seg002:0082                 pop     bx
seg002:0083
seg002:0083 loc_8963:
seg002:0083                 mov     sp, bp
seg002:0085                 pop     bp
seg002:0086
seg002:0086 locret_8966:
seg002:0086                 retf    4
seg002:0086 DOSEXIT         endp
seg002:0086
seg002:0086 seg002          ends
seg002:0086
seg003:0009 ; ===========================================================================
seg003:0009
seg003:0009 ; Segment type: Pure code
seg003:0009 seg003          segment byte public 'CODE' use16
seg003:0009                 assume cs:seg003
seg003:0009                 ;org 9
seg003:0009                 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
seg003:0009
seg003:0009 ; --------------- S U B R O U T I N E ---------------------------------------
seg003:0009
seg003:0009 ; Attributes: bp-based frame
seg003:0009
seg003:0009 VIOSETCURPOS    proc far                ; CODE XREF: get_num_input+40P
seg003:0009                                         ; get_num_input+79P ...
seg003:0009
seg003:0009 cpos_column     = word ptr  8
seg003:0009 cpos_row        = byte ptr  0Ah
seg003:0009
seg003:0009                 push    bp
seg003:000A
seg003:000A loc_896A:
seg003:000A                 mov     bp, sp
seg003:000C
seg003:000C loc_896C:
seg003:000C                 push    bx
seg003:000D                 push    cx
seg003:000E
seg003:000E loc_896E:
seg003:000E                 push    dx
seg003:000F                 push    si
seg003:0010
seg003:0010 loc_8970:
seg003:0010                 push    di
seg003:0011                 push    ds
seg003:0012
seg003:0012 loc_8972:
seg003:0012                 push    es
seg003:0013                 push    ss
seg003:0014                 push    bp
seg003:0015
seg003:0015 loc_8975:
seg003:0015                 mov     bh, 0
seg003:0017
seg003:0017 loc_8977:
seg003:0017                 mov     ax, word ptr [bp+cpos_row]
seg003:001A                 cmp     al, 25
seg003:001C                 jg      short viosetcpos_0
seg003:001E
seg003:001E loc_897E:
seg003:001E                 mov     dh, al
seg003:0020                 mov     ax, [bp+cpos_column]
seg003:0023
seg003:0023 loc_8983:
seg003:0023                 cmp     al, 80
seg003:0025                 jg      short viosetcpos_0
seg003:0027                 mov     dl, al
seg003:0029                 mov     ah, 2
seg003:002B                 push    bx
seg003:002C                 push    cx
seg003:002D                 push    dx
seg003:002E                 push    si
seg003:002F                 push    di
seg003:0030                 push    ds
seg003:0031                 push    es
seg003:0032                 push    ss
seg003:0033                 push    bp
seg003:0034                 int     10h             ; - VIDEO - SET CURSOR POSITION
seg003:0034                                         ; DH,DL = row, column (0,0 = upper left)
seg003:0034                                         ; BH = page number
seg003:0036                 pop     bp
seg003:0037                 pop     ss
seg003:0038                 pop     es
seg003:0039                 pop     ds
seg003:003A
seg003:003A loc_899A:
seg003:003A                 pop     di
seg003:003B                 pop     si
seg003:003C                 pop     dx
seg003:003D                 pop     cx
seg003:003E                 pop     bx
seg003:003F                 sub     ax, ax
seg003:0041                 jmp     short viosetcpos_1
seg003:0043 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg003:0043                 nop
seg003:0044
seg003:0044 viosetcpos_0:                           ; CODE XREF: VIOSETCURPOS+13j
seg003:0044                                         ; VIOSETCURPOS+1Cj
seg003:0044                 mov     ax, 2
seg003:0047
seg003:0047 viosetcpos_1:                           ; CODE XREF: VIOSETCURPOS+38j
seg003:0047                 pop     bp
seg003:0048                 pop     ss
seg003:0049                 pop     es
seg003:004A
seg003:004A loc_89AA:
seg003:004A                 pop     ds
seg003:004B                 pop     di
seg003:004C                 pop     si
seg003:004D                 pop     dx
seg003:004E                 pop     cx
seg003:004F                 pop     bx
seg003:0050
seg003:0050 loc_89B0:
seg003:0050                 mov     sp, bp
seg003:0052                 pop     bp
seg003:0053                 retf    6
seg003:0053 VIOSETCURPOS    endp
seg003:0053
seg003:0056
seg003:0056 ; --------------- S U B R O U T I N E ---------------------------------------
seg003:0056
seg003:0056 ; Attributes: bp-based frame
seg003:0056
seg003:0056 VIOSCROLLUP     proc far                ; CODE XREF: clear_screen+41P
seg003:0056                                         ; reset_video_information+20P
seg003:0056
seg003:0056 arg_2           = dword ptr  8
seg003:0056 arg_6           = word ptr  0Ch
seg003:0056 arg_8           = word ptr  0Eh
seg003:0056 arg_A           = word ptr  10h
seg003:0056 arg_C           = word ptr  12h
seg003:0056 arg_E           = word ptr  14h
seg003:0056
seg003:0056                 push    bp
seg003:0057
seg003:0057 loc_89B7:
seg003:0057                 mov     bp, sp
seg003:0059                 push    bx
seg003:005A                 push    cx
seg003:005B                 push    dx
seg003:005C                 push    si
seg003:005D                 push    di
seg003:005E
seg003:005E loc_89BE:
seg003:005E                 push    ds
seg003:005F                 push    es
seg003:0060                 push    ss
seg003:0061                 push    bp
seg003:0062                 mov     bx, [bp+arg_6]
seg003:0065                 cmp     bl, 25
seg003:0068                 jg      short vioscrollup_1
seg003:006A
seg003:006A loc_89CA:
seg003:006A                 mov     al, bl
seg003:006C                 jmp     short vioscrolllup_0
seg003:006E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg003:006E                 nop
seg003:006F                 mov     al, 0
seg003:0071
seg003:0071 vioscrolllup_0:                         ; CODE XREF: VIOSCROLLUP+16j
seg003:0071                 mov     ah, 6
seg003:0073                 mov     bx, [bp+arg_8]
seg003:0076                 cmp     bl, 80
seg003:0079                 jg      short vioscrollup_1
seg003:007B                 mov     dl, bl
seg003:007D
seg003:007D loc_89DD:
seg003:007D                 mov     bx, [bp+arg_A]
seg003:0080                 cmp     bl, 25
seg003:0083                 jg      short vioscrollup_1
seg003:0085                 mov     dh, bl
seg003:0087                 mov     bx, [bp+arg_C]
seg003:008A                 mov     cl, bl
seg003:008C                 mov     bx, [bp+arg_E]
seg003:008F                 mov     ch, bl
seg003:0091                 lds     si, [bp+arg_2]
seg003:0094                 mov     bx, [si]
seg003:0096                 mov     bh, bl
seg003:0098                 push    bx
seg003:0099                 push    cx
seg003:009A                 push    dx
seg003:009B                 push    si
seg003:009C                 push    di
seg003:009D                 push    ds
seg003:009E                 push    es
seg003:009F                 push    ss
seg003:00A0                 push    bp
seg003:00A1                 int     10h             ; - VIDEO - SCROLL PAGE UP
seg003:00A1                                         ; AL = number of lines to scroll window (0 = blank whole window)
seg003:00A1                                         ; BH = attributes to be used on blanked lines
seg003:00A1                                         ; CH,CL = row,column of upper left corner of window to scroll
seg003:00A1                                         ; DH,DL = row,column of lower right corner of window
seg003:00A3                 pop     bp
seg003:00A4                 pop     ss
seg003:00A5                 pop     es
seg003:00A6                 pop     ds
seg003:00A7                 pop     di
seg003:00A8                 pop     si
seg003:00A9                 pop     dx
seg003:00AA                 pop     cx
seg003:00AB                 pop     bx
seg003:00AC                 sub     ax, ax
seg003:00AE                 jmp     short vioscrollup_2
seg003:00B0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg003:00B0                 nop
seg003:00B1
seg003:00B1 vioscrollup_1:                          ; CODE XREF: VIOSCROLLUP+12j
seg003:00B1                                         ; VIOSCROLLUP+23j ...
seg003:00B1                 mov     ax, 2
seg003:00B4
seg003:00B4 vioscrollup_2:                          ; CODE XREF: VIOSCROLLUP+58j
seg003:00B4                 pop     bp
seg003:00B5                 pop     ss
seg003:00B6                 pop     es
seg003:00B7                 pop     ds
seg003:00B8                 pop     di
seg003:00B9                 pop     si
seg003:00BA                 pop     dx
seg003:00BB                 pop     cx
seg003:00BC                 pop     bx
seg003:00BD                 mov     sp, bp
seg003:00BF                 pop     bp
seg003:00C0                 retf    10h
seg003:00C0 VIOSCROLLUP     endp
seg003:00C0
seg003:00C3
seg003:00C3 ; --------------- S U B R O U T I N E ---------------------------------------
seg003:00C3
seg003:00C3 ; Attributes: bp-based frame
seg003:00C3
seg003:00C3 VIOWRTCHARSTRATT proc far               ; CODE XREF: display+A5P
seg003:00C3                                         ; display+237P ...
seg003:00C3
seg003:00C3 arg_2           = dword ptr  8
seg003:00C3 arg_6           = word ptr  0Ch
seg003:00C3 arg_8           = word ptr  0Eh
seg003:00C3 arg_A           = word ptr  10h
seg003:00C3 arg_C           = dword ptr  12h
seg003:00C3
seg003:00C3                 push    bp
seg003:00C4                 mov     bp, sp
seg003:00C6                 push    bx
seg003:00C7                 push    cx
seg003:00C8                 push    dx
seg003:00C9                 push    si
seg003:00CA                 push    di
seg003:00CB                 push    ds
seg003:00CC                 push    es
seg003:00CD                 push    ss
seg003:00CE                 push    bp
seg003:00CF                 sub     bh, bh
seg003:00D1                 sub     ax, ax
seg003:00D3                 mov     dx, [bp+arg_6]
seg003:00D6                 cmp     dl, 80
seg003:00D9                 jg      short viowchratt_2
seg003:00DB                 mov     ax, [bp+arg_8]
seg003:00DE                 cmp     al, 25
seg003:00E0                 jg      short viowchratt_2
seg003:00E2                 mov     dh, al
seg003:00E4                 mov     ah, 2
seg003:00E6                 push    bx
seg003:00E7                 push    cx
seg003:00E8                 push    dx
seg003:00E9                 push    si
seg003:00EA                 push    di
seg003:00EB                 push    ds
seg003:00EC                 push    es
seg003:00ED                 push    ss
seg003:00EE                 push    bp
seg003:00EF                 int     10h             ; - VIDEO - SET CURSOR POSITION
seg003:00EF                                         ; DH,DL = row, column (0,0 = upper left)
seg003:00EF                                         ; BH = page number
seg003:00F1                 pop     bp
seg003:00F2                 pop     ss
seg003:00F3                 pop     es
seg003:00F4                 pop     ds
seg003:00F5                 pop     di
seg003:00F6                 pop     si
seg003:00F7                 pop     dx
seg003:00F8                 pop     cx
seg003:00F9                 pop     bx
seg003:00FA                 lds     si, [bp+arg_2]
seg003:00FD                 mov     bl, [si]
seg003:00FF
seg003:00FF loc_8A5F:
seg003:00FF                 lds     si, [bp+arg_C]
seg003:0102                 mov     di, [bp+arg_A]
seg003:0105
seg003:0105 viowchratt_0:                           ; CODE XREF: VIOWRTCHARSTRATT+8Ej
seg003:0105                 mov     al, [si]
seg003:0107                 mov     ah, 9
seg003:0109                 mov     cx, 1
seg003:010C                 push    bx
seg003:010D                 push    cx
seg003:010E                 push    dx
seg003:010F                 push    si
seg003:0110                 push    di
seg003:0111                 push    ds
seg003:0112                 push    es
seg003:0113                 push    ss
seg003:0114                 push    bp
seg003:0115                 int     10h             ; - VIDEO - WRITE ATTRIBUTES/CHARACTERS AT CURSOR POSITION
seg003:0115                                         ; AL = character, BH = display page
seg003:0115                                         ; BL = attributes of character (alpha modes) or color (graphics modes)
seg003:0115                                         ; CX = number of times to write character
seg003:0117                 pop     bp
seg003:0118                 pop     ss
seg003:0119                 pop     es
seg003:011A                 pop     ds
seg003:011B                 pop     di
seg003:011C                 pop     si
seg003:011D                 pop     dx
seg003:011E                 pop     cx
seg003:011F                 pop     bx
seg003:0120                 inc     si
seg003:0121                 dec     di
seg003:0122                 inc     dl
seg003:0124                 cmp     dl, 80
seg003:0127                 jnz     short viowchratt_1
seg003:0129                 inc     dh
seg003:012B                 mov     dl, 0
seg003:012D                 cmp     dh, 25
seg003:0130                 jnz     short viowchratt_1
seg003:0132                 mov     ax, 1
seg003:0135                 jmp     short viowchratt_3
seg003:0137 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg003:0137                 nop
seg003:0138
seg003:0138 viowchratt_1:                           ; CODE XREF: VIOWRTCHARSTRATT+64j
seg003:0138                                         ; VIOWRTCHARSTRATT+6Dj
seg003:0138                 mov     ah, 2
seg003:013A                 push    bx
seg003:013B                 push    cx
seg003:013C                 push    dx
seg003:013D                 push    si
seg003:013E                 push    di
seg003:013F                 push    ds
seg003:0140                 push    es
seg003:0141                 push    ss
seg003:0142                 push    bp
seg003:0143                 int     10h             ; - VIDEO - SET CURSOR POSITION
seg003:0143                                         ; DH,DL = row, column (0,0 = upper left)
seg003:0143                                         ; BH = page number
seg003:0145                 pop     bp
seg003:0146                 pop     ss
seg003:0147                 pop     es
seg003:0148                 pop     ds
seg003:0149                 pop     di
seg003:014A                 pop     si
seg003:014B                 pop     dx
seg003:014C                 pop     cx
seg003:014D                 pop     bx
seg003:014E                 cmp     di, 0
seg003:0151                 jnz     short viowchratt_0
seg003:0153                 sub     ax, ax
seg003:0155
seg003:0155 viowchratt_2:                           ; CODE XREF: VIOWRTCHARSTRATT+16j
seg003:0155                                         ; VIOWRTCHARSTRATT+1Dj
seg003:0155                 mov     ax, 2
seg003:0158
seg003:0158 viowchratt_3:                           ; CODE XREF: VIOWRTCHARSTRATT+72j
seg003:0158                 pop     bp
seg003:0159                 pop     ss
seg003:015A                 pop     es
seg003:015B                 pop     ds
seg003:015C                 pop     di
seg003:015D                 pop     si
seg003:015E                 pop     dx
seg003:015F                 pop     cx
seg003:0160                 pop     bx
seg003:0161                 mov     sp, bp
seg003:0163                 pop     bp
seg003:0164                 retf    16
seg003:0164 VIOWRTCHARSTRATT endp
seg003:0164
seg003:0164 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg003:0167                 db 9 dup(0)
seg003:0167 seg003          ends
seg003:0167
DGROUP:0000 ; ===========================================================================
DGROUP:0000
DGROUP:0000 ; Segment type: Pure code
DGROUP:0000 DGROUP          segment byte public 'DATA' use16
DGROUP:0000                 assume cs:DGROUP
DGROUP:0000                 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
DGROUP:0000 disk_size_format db '%4.1d',0           ; DATA XREF: dos_delete+61o
DGROUP:0006 extd_size_format db '%4.1d',0           ; DATA XREF: ext_delete+56o
DGROUP:000C ld_p_size_format db '%4.1d',0           ; DATA XREF: volume_delete+9Fo
DGROUP:0012 nd_p_size_format db '%4.1d',0           ; DATA XREF: non_dos_delete+5Do
DGROUP:0018 idc_totmb_format db '%4.1d',0           ; DATA XREF: input_dos_create+5Ao
DGROUP:001E idc_tot_mb_format db '%4.1d',0          ; DATA XREF: input_dos_create+9Bo
DGROUP:0024 idc_mb_pcent_format db '%4.1d%3.1d%%',0 ; DATA XREF: input_dos_create+C0o
DGROUP:0031 idc_def_entry_format db '%4.1d',0       ; DATA XREF: input_dos_create+EAo
DGROUP:0037 ecp_size_format db '%4.1d',0            ; DATA XREF: ext_create_partition+BEo
DGROUP:003D ecp_mb_pcent_format db '%4.1d%3.1d%%',0 ; DATA XREF: ext_create_partition+E8o
DGROUP:004A ecp_mb_format   db '%4.1d',0            ; DATA XREF: ext_create_partition+13Co
DGROUP:0050 ecp_pcent_format db '%3.1d%%',0         ; DATA XREF: ext_create_partition+144o
DGROUP:0058 v_psize_format  db '%4.1d',0            ; DATA XREF: volume_create+10Co
DGROUP:005E v_mb_percent_format db '%4.1d%3.1d%%',0 ; DATA XREF: volume_create+135o
DGROUP:006B v_mbytes_format db '%4.1d',0            ; DATA XREF: volume_create+188o
DGROUP:0071 v_percent_format db '%3.1d%%',0         ; DATA XREF: volume_create+190o
DGROUP:0079                 db 0
DGROUP:007A p_size_format   db '%4.1d',0            ; DATA XREF: display_volume_information+2Ao
DGROUP:0080 FAT16           db 'FAT16   ',0         ; DATA XREF: get_volume:gv_9o
DGROUP:0089 FAT12           db 'FAT12   ',0         ; DATA XREF: get_volume:gv_10o
DGROUP:0092 NOVOLUME        db 0                    ; DATA XREF: get_volume:gv_11o
DGROUP:0093 UNKNOWN         db 'UNKNOWN ',0         ; DATA XREF: get_volume+199o
DGROUP:009C extFAT16        db 'FAT16   ',0         ; DATA XREF: load_logical_drive:lld_11o
DGROUP:00A5 extFAT12        db 'FAT12   ',0         ; DATA XREF: load_logical_drive:lld_12o
DGROUP:00AE extNOVOLUME     db 0                    ; DATA XREF: load_logical_drive:lld_for1_if_chk_format_falseo
DGROUP:00AF extUNKNOWN      db 'UNKNOWN ',0         ; DATA XREF: load_logical_drive+20Co
DGROUP:00B8 master_boot_record db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:00B8                                         ; DATA XREF: main+1B0r
DGROUP:00B8                                         ; main+1C2r ...
DGROUP:00B8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:00B8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:00B8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:00B8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:00B8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:00B8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:00B8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:00B8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:00B8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:00B8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:00B8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:00B8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:00B8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:00B8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:00B8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:00B8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:00B8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:00B8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:00B8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:00B8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:00B8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:02B8 mbr_hd1         db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:02B8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:02B8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:02B8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:02B8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:02B8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:02B8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:02B8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:02B8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:02B8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:02B8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:02B8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:02B8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:02B8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:02B8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:02B8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:02B8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:02B8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:02B8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:02B8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:02B8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:02B8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:04B8 mbr_hd2         db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:04B8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:04B8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:04B8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:04B8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:04B8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:04B8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:04B8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:04B8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:04B8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:04B8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:04B8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:04B8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:04B8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:04B8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:04B8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:04B8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:04B8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:04B8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:04B8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:04B8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:04B8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:06B8 mbr_hd3         db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:06B8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:06B8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:06B8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:06B8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:06B8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:06B8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:06B8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:06B8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:06B8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:06B8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:06B8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:06B8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:06B8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:06B8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:06B8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:06B8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:06B8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:06B8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:06B8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:06B8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:06B8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:08B8 mbr_5           db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:08B8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:08B8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:08B8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:08B8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:08B8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:08B8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:08B8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:08B8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:08B8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:08B8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:08B8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:08B8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:08B8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:08B8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:08B8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:08B8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:08B8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:08B8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:08B8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:08B8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:08B8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:0AB8 mbr_6           db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:0AB8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:0AB8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:0AB8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:0AB8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:0AB8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:0AB8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:0AB8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:0AB8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:0AB8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:0AB8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:0AB8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:0AB8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:0AB8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:0AB8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:0AB8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:0AB8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:0AB8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:0AB8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:0AB8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:0AB8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:0AB8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:0CB8 mbr_7           db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:0CB8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:0CB8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:0CB8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:0CB8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:0CB8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:0CB8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:0CB8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:0CB8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:0CB8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:0CB8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:0CB8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:0CB8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:0CB8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:0CB8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:0CB8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:0CB8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:0CB8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:0CB8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:0CB8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:0CB8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:0CB8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:0EB8 mbr_8           db 0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh, 00h, 7Ch, 8Bh, 0F4h
DGROUP:0EB8                 db 50h, 07h, 50h, 1Fh, 0FBh, 0FCh, 0BFh, 00h, 06h, 0B9h
DGROUP:0EB8                 db 00h, 01h, 0F2h, 0A5h, 0EAh, 1Dh, 06h, 2 dup(00h), 2 dup(0BEh)
DGROUP:0EB8                 db 07h, 0B3h, 04h, 80h, 3Ch, 80h, 74h, 0Eh, 80h, 3Ch, 00h
DGROUP:0EB8                 db 75h, 1Ch, 83h, 0C6h, 10h, 0FEh, 0CBh, 75h, 0EFh, 0CDh
DGROUP:0EB8                 db 18h, 8Bh, 14h, 8Bh, 4Ch, 02h, 8Bh, 0EEh, 83h, 0C6h
DGROUP:0EB8                 db 10h, 0FEh, 0CBh, 74h, 1Ah, 80h, 3Ch, 00h, 74h, 0F4h
DGROUP:0EB8                 db 0BEh, 8Bh, 06h, 0ACh, 3Ch, 00h, 74h, 0Bh, 56h, 0BBh
DGROUP:0EB8                 db 07h, 00h, 0B4h, 0Eh, 0CDh, 10h, 5Eh, 0EBh, 0F0h, 0EBh
DGROUP:0EB8                 db 0FEh, 0BFh, 05h, 00h, 0BBh, 00h, 7Ch, 0B8h, 01h, 02h
DGROUP:0EB8                 db 57h, 0CDh, 13h, 5Fh, 73h, 0Ch, 33h, 0C0h, 0CDh, 13h
DGROUP:0EB8                 db 4Fh, 75h, 0EDh, 0BEh, 0A3h, 06h, 0EBh, 0D3h, 0BEh, 0C2h
DGROUP:0EB8                 db 06h, 0BFh, 0FEh, 7Dh, 81h, 3Dh, 55h, 0AAh, 75h, 0C7h
DGROUP:0EB8                 db 8Bh, 0F5h, 0EAh, 00h, 7Ch, 2 dup(00h), 49h, 6Eh, 76h
DGROUP:0EB8                 db 61h, 6Ch, 69h, 64h, 20h, 70h, 61h, 72h, 74h, 69h, 74h
DGROUP:0EB8                 db 69h, 6Fh, 6Eh, 20h, 74h, 61h, 62h, 6Ch, 65h, 00h, 45h
DGROUP:0EB8                 db 2 dup(72h), 6Fh, 72h, 20h, 6Ch, 6Fh, 61h, 64h, 69h
DGROUP:0EB8                 db 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h, 61h, 74h, 69h, 6Eh
DGROUP:0EB8                 db 67h, 20h, 73h, 79h, 73h, 74h, 65h, 6Dh, 00h, 4Dh, 69h
DGROUP:0EB8                 db 2 dup(73h), 69h, 6Eh, 67h, 20h, 6Fh, 70h, 65h, 72h
DGROUP:0EB8                 db 61h, 74h, 69h, 6Eh, 67h, 20h, 73h, 79h, 73h, 74h, 65h
DGROUP:0EB8                 db 6Dh, 124h dup(00h), 55h, 0AAh
DGROUP:10B8 numinmsg_format db '%4.1d',0            ; DATA XREF: number_in_msg+9o
DGROUP:10BE a3_1d_1         db '%3.1d%%',0          ; DATA XREF: percent_in_msg+9o
DGROUP:10C6 glni_num_format db '%4.1d',0            ; DATA XREF: get_large_num_input+11Co
DGROUP:10CC percent_format  db '%3.1d%%',0          ; DATA XREF: get_large_num_input+155o
DGROUP:10D4 invstrchars     db '."/\[]:|<>+=;,',0   ; DATA XREF: get_string_input+258o
DGROUP:10E3                 db 0
DGROUP:10E4 twospace        db '  ',0               ; DATA XREF: table_display+137o
DGROUP:10E7 twochars        db '%c%c',0             ; DATA XREF: table_display+6Do
DGROUP:10EC ptbl_row_format db '%-2.2s%c%c%-7.7s%-11.11s%4.1d%-8.8s%3.1d%%',0
DGROUP:10EC                                         ; DATA XREF: table_display+EEo
DGROUP:1117                 align 2
DGROUP:1118 eptbl_row_format db '%c%c%-11.11s%4.1d%-8.8s%3.1d%%',0
DGROUP:1118                                         ; DATA XREF: volume_display+43o
DGROUP:1137 cd_pt_row_format db '%1.0d%c%c%4.1d%4.1d%3.1d%%',0
DGROUP:1137                                         ; DATA XREF: change_current_drive+A6o
DGROUP:1152 drv_mb_row_format db '%c%c%c%4.1d%8c',0 ; DATA XREF: change_current_drive+D9o
DGROUP:1161 cdrv_mb_format  db '%c%c%c%4.1d%8c',0   ; DATA XREF: change_current_drive+178o
DGROUP:1170 cdrive_format   db '%1.0d%1.0d',0       ; DATA XREF: change_current_drive+2C0o
DGROUP:117B                 align 2
DGROUP:117C NO_FORMAT       db 'UNKNOWN ',0         ; DATA XREF: make_partition+277o
DGROUP:1185 NO_VOLUME       db 0                    ; DATA XREF: make_partition+293o
DGROUP:1186 _NOFORMAT       db 'UNKNOWN ',0         ; DATA XREF: make_volume+173o
DGROUP:118F _NOVOLUME       db 0                    ; DATA XREF: make_volume+18Do
DGROUP:1190 PRI             db '/PRI',0             ; DATA XREF: parse_init+95o
DGROUP:1195 EXT             db '/EXT',0             ; DATA XREF: parse_init+A2o
DGROUP:119A LOG             db '/LOG',0             ; DATA XREF: parse_init+AFo
DGROUP:119F QUIET           db '/Q',0               ; DATA XREF: parse_init+D9o
DGROUP:11A2 STATUS          db '/STATUS',0          ; DATA XREF: parse_init+103o
DGROUP:11AA OPTIONS         db '/?',0               ; DATA XREF: parse_init+129o
DGROUP:11AD MBR             db '/MBR',0             ; DATA XREF: parse_init+153o
DGROUP:11B2 FILE_NAME       db ':\????????.???',0   ; DATA XREF: get_volume_string+4Ao
DGROUP:11C1                 align 2
DGROUP:11C2 pinsert         dw offset insert        ; DATA XREF: display+1CDr
DGROUP:11C2                                         ; volume_display+115w ...
DGROUP:11C4 NOVAL           dd 0                    ; DATA XREF: parse_init+56r
DGROUP:11C4                                         ; parse_init+CEr ...
DGROUP:11C8 _$P_ordinal     dw 0                    ; DATA XREF: SysParse+8w
DGROUP:11C8                                         ; SysParse+C0r ...
DGROUP:11CA _$P_RC          dw 0                    ; DATA XREF: SysParse+Dw
DGROUP:11CA                                         ; SysParse:_$P_Too_Many_Errorw ...
DGROUP:11CC _$P_SI_Save     dw 0                    ; DATA XREF: SysParse:_$P_Pack_Endw
DGROUP:11CC                                         ; SysParse+146r
DGROUP:11CE _$P_DX          dw 0                    ; DATA XREF: SysParse+1Bw
DGROUP:11CE                                         ; SysParse+14Br ...
DGROUP:11D0 _$P_Terminator  db 0                    ; DATA XREF: SysParse+150r
DGROUP:11D0                                         ; _$P_Chk_Delim+2w ...
DGROUP:11D1 _$P_DBCSEV_OFF  dw 0                    ; DATA XREF: _$P_Chk_DBCS:_$P_DBCS02w
DGROUP:11D1                                         ; _$P_Chk_DBCS:_$P_DBCS00r
DGROUP:11D3 _$P_DBCSEV_SEG  dw 0                    ; DATA XREF: _$P_Chk_DBCS+3r
DGROUP:11D3                                         ; _$P_Chk_DBCS+2Dw
DGROUP:11D5 _$P_Flags       db 0                    ; DATA XREF: SysParsew
DGROUP:11D6 _$P_Flags2      db 0                    ; DATA XREF: SysParse+46r
DGROUP:11D6                                         ; SysParse+5Er ...
DGROUP:11D7 _$P_SaveSI_Cmpx dw 0                    ; DATA XREF: SysParse:_$P_Startw
DGROUP:11D7                                         ; _$P_Chk_SW_Control+18w ...
DGROUP:11D9 _$P_KEYorSW_Ptr dw 0                    ; DATA XREF: _$P_Chk_SW_Control+12r
DGROUP:11D9                                         ; _$P_Chk_SW_Control+1Er ...
DGROUP:11DB _$P_Save_EOB    dw 0                    ; DATA XREF: SysParse+9Aw
DGROUP:11DD _$P_Found_SYNONYM dw 0                  ; DATA XREF: SysParse+14w
DGROUP:11DD                                         ; _$P_Search_KEYorSW:_$P_KEYorSW_Foundw ...
DGROUP:11DF _$P_STRING_BUF  db 128 dup(0)           ; DATA XREF: SysParse+42o
DGROUP:11DF                                         ; SysParse+A2o ...
DGROUP:125F _$P_Got_Time    db 0                    ; DATA XREF: _$P_Get_DecNum+Br
DGROUP:1260 _$P_Country_Info dw 0FFFFh              ; DATA XREF: _$P_Date_Format:_$P_DateF_YMDr
DGROUP:1260                                         ; _$P_Set_CDIo
DGROUP:1262                 db 32 dup(0)
DGROUP:1282 _$P_1st_Val     dw 0                    ; DATA XREF: _$P_Date_Format+Cw
DGROUP:1282                                         ; _$P_Date_Format+1Dw ...
DGROUP:1284 _$P_2nd_Val     dw 0                    ; DATA XREF: _$P_Date_Format+10w
DGROUP:1284                                         ; _$P_Date_Format+2Aw ...
DGROUP:1286 _$P_3rd_Val     dw 0                    ; DATA XREF: _$P_Date_Format+14w
DGROUP:1286                                         ; _$P_Date_Format+37w ...
DGROUP:1288 _$P_4th_Val     dw 0
DGROUP:128A _$P_Char_CAP_Ptr db 0FFh                ; DATA XREF: _$P_Do_CAPS_Char+12o
DGROUP:128B                 dw 0
DGROUP:128D                 dw 0
DGROUP:128F _$P_err_flag    db 0                    ; DATA XREF: _$P_Check_Match_Flagsw
DGROUP:128F                                         ; _$P_Check_Match_Flags:_$P_Match_Exitr
DGROUP:1290
DGROUP:1290 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1290
DGROUP:1290
DGROUP:1290 SysParse        proc near               ; CODE XREF: CallParser+7p
DGROUP:1290
DGROUP:1290 ; FUNCTION CHUNK AT DGROUP:137E SIZE 00000069 BYTES
DGROUP:1290
DGROUP:1290                 mov     word ptr cs:_$P_Flags, 0
DGROUP:1297                 cld
DGROUP:1298                 mov     cs:_$P_ordinal, cx
DGROUP:129D                 mov     cs:_$P_RC, 0
DGROUP:12A4                 mov     cs:_$P_Found_SYNONYM, 0
DGROUP:12AB                 mov     cs:_$P_DX, 0
DGROUP:12B2                 call    _$P_Skip_Delim
DGROUP:12B5                 jnb     short _$P_Start
DGROUP:12B7                 mov     ax, 0FFFFh
DGROUP:12BA                 push    bx
DGROUP:12BB                 mov     bx, es:[di]
DGROUP:12BE                 cmp     cl, es:[bx]
DGROUP:12C1                 jnb     short _$P_Fin
DGROUP:12C3                 mov     ax, 2
DGROUP:12C6
DGROUP:12C6 _$P_Fin:                                ; CODE XREF: SysParse+31j
DGROUP:12C6                 pop     bx
DGROUP:12C7                 jmp     loc_9EB5
DGROUP:12CA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:12CA
DGROUP:12CA _$P_Start:                              ; CODE XREF: SysParse+25j
DGROUP:12CA                 mov     cs:_$P_SaveSI_Cmpx, si
DGROUP:12CF                 push    bx
DGROUP:12D0                 push    di
DGROUP:12D1                 push    bp
DGROUP:12D2                 lea     bx, _$P_STRING_BUF
DGROUP:12D6                 test    cs:_$P_Flags2, 20h
DGROUP:12DC                 jnz     short _$P_Pack_End
DGROUP:12DE
DGROUP:12DE _$P_Pack_Loop:                          ; CODE XREF: SysParse+87j
DGROUP:12DE                                         ; SysParse+8Ej
DGROUP:12DE                 lodsb
DGROUP:12DF                 call    _$P_Chk_Switch
DGROUP:12E2                 jb      short _$P_Pack_End_BY_EOL
DGROUP:12E4                 call    _$P_Chk_EOL
DGROUP:12E7                 jz      short _$P_Pack_End_BY_EOL
DGROUP:12E9                 call    _$P_Chk_Delim
DGROUP:12EC                 jnz     short $P_PL01
DGROUP:12EE                 test    cs:_$P_Flags2, 20h
DGROUP:12F4                 jnz     short _$P_Pack_End_backup_si
DGROUP:12F6                 call    _$P_Skip_Delim
DGROUP:12F9                 jmp     short _$P_Pack_End
DGROUP:12FB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:12FB
DGROUP:12FB _$P_Pack_End_backup_si:                 ; CODE XREF: SysParse+64j
DGROUP:12FB                 test    cs:_$P_Flags2, 41h
DGROUP:1301                 jz      short _$P_Pack_End
DGROUP:1303                 dec     si
DGROUP:1304                 jmp     short _$P_Pack_End
DGROUP:1306 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1306
DGROUP:1306 $P_PL01:                                ; CODE XREF: SysParse+5Cj
DGROUP:1306                 mov     cs:[bx], al
DGROUP:1309                 cmp     al, '='
DGROUP:130B                 jnz     short _$P_PL00
DGROUP:130D                 or      cs:_$P_Flags2, 1
DGROUP:1313
DGROUP:1313 _$P_PL00:                               ; CODE XREF: SysParse+7Bj
DGROUP:1313                 inc     bx
DGROUP:1314                 call    _$P_Chk_DBCS
DGROUP:1317                 jnb     short _$P_Pack_Loop
DGROUP:1319                 lodsb
DGROUP:131A                 mov     cs:[bx], al
DGROUP:131D                 inc     bx
DGROUP:131E                 jmp     short _$P_Pack_Loop
DGROUP:1320 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1320
DGROUP:1320 _$P_Pack_End_BY_EOL:                    ; CODE XREF: SysParse+52j
DGROUP:1320                                         ; SysParse+57j
DGROUP:1320                 dec     si
DGROUP:1321
DGROUP:1321 _$P_Pack_End:                           ; CODE XREF: SysParse+4Cj
DGROUP:1321                                         ; SysParse+69j ...
DGROUP:1321                 mov     cs:_$P_SI_Save, si
DGROUP:1326                 mov     byte ptr cs:[bx], 0
DGROUP:132A                 mov     cs:_$P_Save_EOB, bx
DGROUP:132F                 mov     bx, es:[di]
DGROUP:1332                 lea     si, _$P_STRING_BUF
DGROUP:1336                 cmp     byte ptr cs:[si], '/'
DGROUP:133A                 jz      short loc_9E4E
DGROUP:133C                 cmp     byte ptr cs:[si], '"'
DGROUP:1340                 jz      short _$P_Positional_Manager
DGROUP:1342                 test    cs:_$P_Flags2, 1
DGROUP:1348                 jnz     short loc_9E70
DGROUP:134A
DGROUP:134A _$P_Positional_Manager:                 ; CODE XREF: SysParse+B0j
DGROUP:134A                 mov     al, es:[bx+1]
DGROUP:134E                 xor     ah, ah
DGROUP:1350                 cmp     cs:_$P_ordinal, ax
DGROUP:1355                 jnb     short _$P_Too_Many_Error
DGROUP:1357                 mov     ax, cs:_$P_ordinal
DGROUP:135B                 shl     ax, 1
DGROUP:135D                 inc     bx
DGROUP:135E                 inc     bx
DGROUP:135F                 add     bx, ax
DGROUP:1361                 mov     bx, es:[bx]
DGROUP:1364                 call    _$P_Chk_Pos_Control
DGROUP:1367                 jmp     short loc_9E9A
DGROUP:1369 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1369
DGROUP:1369 _$P_Too_Many_Error:                     ; CODE XREF: SysParse+C5j
DGROUP:1369                 mov     cs:_$P_RC, 1
DGROUP:1370                 jmp     short loc_9E9A
DGROUP:1370 SysParse        endp
DGROUP:1370
DGROUP:1372
DGROUP:1372 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1372
DGROUP:1372
DGROUP:1372 _$P_SW_Key_Mgr_sub proc near            ; CODE XREF: SysParse:loc_9E4Ep
DGROUP:1372                                         ; SysParse:loc_9E70p
DGROUP:1372                 mov     al, es:[bx+1]
DGROUP:1376                 xor     ah, ah
DGROUP:1378                 inc     ax
DGROUP:1379                 shl     ax, 1
DGROUP:137B                 add     bx, ax
DGROUP:137D                 retn
DGROUP:137D _$P_SW_Key_Mgr_sub endp
DGROUP:137D
DGROUP:137E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:137E ; START OF FUNCTION CHUNK FOR SysParse
DGROUP:137E
DGROUP:137E loc_9E4E:                               ; CODE XREF: SysParse+AAj
DGROUP:137E                 call    _$P_SW_Key_Mgr_sub
DGROUP:1381                 mov     cl, es:[bx]
DGROUP:1384                 xor     ch, ch
DGROUP:1386                 jcxz    short loc_9E67
DGROUP:1388                 inc     bx
DGROUP:1389
DGROUP:1389 loc_9E59:                               ; CODE XREF: SysParse+105j
DGROUP:1389                 push    bx
DGROUP:138A                 mov     bx, es:[bx]
DGROUP:138D                 call    _$P_Chk_SW_Control
DGROUP:1390                 pop     bx
DGROUP:1391                 jnb     short loc_9E9A
DGROUP:1393                 inc     bx
DGROUP:1394                 inc     bx
DGROUP:1395                 loop    loc_9E59
DGROUP:1397
DGROUP:1397 loc_9E67:                               ; CODE XREF: SysParse+F6j
DGROUP:1397                 mov     cs:_$P_RC, 3
DGROUP:139E                 jmp     short loc_9E9A
DGROUP:13A0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:13A0
DGROUP:13A0 loc_9E70:                               ; CODE XREF: SysParse+B8j
DGROUP:13A0                 call    _$P_SW_Key_Mgr_sub
DGROUP:13A3                 mov     al, es:[bx]
DGROUP:13A6                 xor     ah, ah
DGROUP:13A8                 shl     ax, 1
DGROUP:13AA                 inc     ax
DGROUP:13AB                 add     bx, ax
DGROUP:13AD                 mov     cl, es:[bx]
DGROUP:13B0                 xor     ch, ch
DGROUP:13B2                 jcxz    short loc_9E93
DGROUP:13B4                 inc     bx
DGROUP:13B5
DGROUP:13B5 loc_9E85:                               ; CODE XREF: SysParse+131j
DGROUP:13B5                 push    bx
DGROUP:13B6                 mov     bx, es:[bx]
DGROUP:13B9                 call    _$P_Chk_Key_Control
DGROUP:13BC                 pop     bx
DGROUP:13BD                 jnb     short loc_9E9A
DGROUP:13BF                 inc     bx
DGROUP:13C0                 inc     bx
DGROUP:13C1                 loop    loc_9E85
DGROUP:13C3
DGROUP:13C3 loc_9E93:                               ; CODE XREF: SysParse+122j
DGROUP:13C3                 mov     cs:_$P_RC, 4
DGROUP:13CA
DGROUP:13CA loc_9E9A:                               ; CODE XREF: SysParse+D7j
DGROUP:13CA                                         ; SysParse+E0j ...
DGROUP:13CA                 pop     bp
DGROUP:13CB                 pop     di
DGROUP:13CC                 pop     bx
DGROUP:13CD                 mov     cx, cs:_$P_ordinal
DGROUP:13D2                 mov     ax, cs:_$P_RC
DGROUP:13D6                 mov     si, cs:_$P_SI_Save
DGROUP:13DB                 mov     dx, cs:_$P_DX
DGROUP:13E0                 mov     bl, cs:_$P_Terminator
DGROUP:13E5
DGROUP:13E5 loc_9EB5:                               ; CODE XREF: SysParse+37j
DGROUP:13E5                 clc
DGROUP:13E6                 retn
DGROUP:13E6 ; END OF FUNCTION CHUNK FOR SysParse
DGROUP:13E7
DGROUP:13E7 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:13E7
DGROUP:13E7
DGROUP:13E7 _$P_Chk_Pos_Control proc near           ; CODE XREF: SysParse+D4p
DGROUP:13E7                 push    ax
DGROUP:13E8                 mov     ax, es:[bx]
DGROUP:13EB                 test    ax, 2
DGROUP:13EE                 jnz     short _$P_CPC00
DGROUP:13F0                 inc     cs:_$P_ordinal
DGROUP:13F5
DGROUP:13F5 _$P_CPC00:                              ; CODE XREF: _$P_Chk_Pos_Control+7j
DGROUP:13F5                 cmp     byte ptr cs:[si], 0
DGROUP:13F9                 jnz     short _$P_CPC01
DGROUP:13FB                 test    ax, 1
DGROUP:13FE                 jnz     short _$P_CPC02
DGROUP:1400                 mov     cs:_$P_RC, 2
DGROUP:1407                 jmp     short _$P_CPC_Exit
DGROUP:1409 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1409
DGROUP:1409 _$P_CPC02:                              ; CODE XREF: _$P_Chk_Pos_Control+17j
DGROUP:1409                 push    ax
DGROUP:140A                 mov     ax, 0FF03h
DGROUP:140D                 call    _$P_Fill_Result
DGROUP:1410                 pop     ax
DGROUP:1411                 jmp     short _$P_CPC_Exit
DGROUP:1413 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1413
DGROUP:1413 _$P_CPC01:                              ; CODE XREF: _$P_Chk_Pos_Control+12j
DGROUP:1413                 call    _$P_Check_Match_Flags
DGROUP:1416
DGROUP:1416 _$P_CPC_Exit:                           ; CODE XREF: _$P_Chk_Pos_Control+20j
DGROUP:1416                                         ; _$P_Chk_Pos_Control+2Aj
DGROUP:1416                 pop     ax
DGROUP:1417                 retn
DGROUP:1417 _$P_Chk_Pos_Control endp
DGROUP:1417
DGROUP:1418
DGROUP:1418 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1418
DGROUP:1418
DGROUP:1418 _$P_Chk_Key_Control proc near           ; CODE XREF: SysParse+129p
DGROUP:1418                 stc
DGROUP:1419                 retn
DGROUP:1419 _$P_Chk_Key_Control endp
DGROUP:1419
DGROUP:141A
DGROUP:141A ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:141A
DGROUP:141A
DGROUP:141A _$P_Search_KEYorSW proc near            ; CODE XREF: _$P_Chk_SW_Control+6p
DGROUP:141A                 push    bp
DGROUP:141B                 push    cx
DGROUP:141C                 mov     cl, es:[bx+8]
DGROUP:1420                 xor     ch, ch
DGROUP:1422                 jcxz    short _$P_KEYorSW_Not_Found
DGROUP:1424                 lea     bp, [bx+9]
DGROUP:1427
DGROUP:1427 _$P_KEYorSW_Loop:                       ; CODE XREF: _$P_Search_KEYorSW+15j
DGROUP:1427                 call    _$P_String_Comp
DGROUP:142A                 jnb     short _$P_KEYorSW_Found
DGROUP:142C                 call    _$P_MoveBP_NUL
DGROUP:142F                 loop    _$P_KEYorSW_Loop
DGROUP:1431
DGROUP:1431 _$P_KEYorSW_Not_Found:                  ; CODE XREF: _$P_Search_KEYorSW+8j
DGROUP:1431                 stc
DGROUP:1432                 jmp     short _$P_KEYorSW_Exit
DGROUP:1434 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1434
DGROUP:1434 _$P_KEYorSW_Found:                      ; CODE XREF: _$P_Search_KEYorSW+10j
DGROUP:1434                 mov     cs:_$P_Found_SYNONYM, bp
DGROUP:1439                 clc
DGROUP:143A
DGROUP:143A _$P_KEYorSW_Exit:                       ; CODE XREF: _$P_Search_KEYorSW+18j
DGROUP:143A                 pop     cx
DGROUP:143B                 pop     bp
DGROUP:143C                 retn
DGROUP:143C _$P_Search_KEYorSW endp
DGROUP:143C
DGROUP:143D
DGROUP:143D ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:143D
DGROUP:143D
DGROUP:143D _$P_MoveBP_NUL  proc near               ; CODE XREF: _$P_Search_KEYorSW+12p
DGROUP:143D                                         ; _$P_MoveBP_NUL+8j
DGROUP:143D                 cmp     byte ptr es:[bp+0], 0
DGROUP:1442                 jz      short _$P_MBP_Exit
DGROUP:1444                 inc     bp
DGROUP:1445                 jmp     short _$P_MoveBP_NUL
DGROUP:1447 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1447
DGROUP:1447 _$P_MBP_Exit:                           ; CODE XREF: _$P_MoveBP_NUL+5j
DGROUP:1447                 inc     bp
DGROUP:1448                 retn
DGROUP:1448 _$P_MoveBP_NUL  endp
DGROUP:1448
DGROUP:1449
DGROUP:1449 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1449
DGROUP:1449
DGROUP:1449 _$P_Chk_SW_Control proc near            ; CODE XREF: SysParse+FDp
DGROUP:1449                 or      cs:_$P_Flags2, 10h
DGROUP:144F                 call    _$P_Search_KEYorSW
DGROUP:1452                 jb      short _$P_Chk_SW_Err0
DGROUP:1454                 and     cs:_$P_Flags2, not 10h
DGROUP:145A                 push    ax
DGROUP:145B                 mov     ax, cs:_$P_KEYorSW_Ptr
DGROUP:145F                 sub     ax, si
DGROUP:1461                 add     cs:_$P_SaveSI_Cmpx, ax
DGROUP:1466                 pop     ax
DGROUP:1467                 mov     si, cs:_$P_KEYorSW_Ptr
DGROUP:146C                 cmp     byte ptr cs:[si], 0
DGROUP:1470                 jnz     short _$P_CSW00
DGROUP:1472                 cmp     byte ptr cs:[si-1], ':'
DGROUP:1477                 jnz     short _$P_Chk_if_data_required
DGROUP:1479                 mov     cs:_$P_RC, 9
DGROUP:1480                 jmp     short _$P_Chk_SW_Exit
DGROUP:1482 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1482
DGROUP:1482 _$P_Chk_if_data_required:               ; CODE XREF: _$P_Chk_SW_Control+2Ej
DGROUP:1482                 cmp     word ptr es:[bx], 0
DGROUP:1486                 jz      short _$P_Chk_SW_Exit
DGROUP:1488                 test    word ptr es:[bx], 1
DGROUP:148D                 jnz     short _$P_Chk_SW_Exit
DGROUP:148F                 mov     cs:_$P_RC, 2
DGROUP:1496                 jmp     short _$P_Chk_SW_Exit
DGROUP:1498 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1498
DGROUP:1498 _$P_CSW00:                              ; CODE XREF: _$P_Chk_SW_Control+27j
DGROUP:1498                 call    _$P_Check_Match_Flags
DGROUP:149B                 clc
DGROUP:149C                 jmp     short _$P_Chk_SW_Single_Exit
DGROUP:149E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:149E
DGROUP:149E _$P_Chk_SW_Err0:                        ; CODE XREF: _$P_Chk_SW_Control+9j
DGROUP:149E                 stc
DGROUP:149F                 retn
DGROUP:14A0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:14A0
DGROUP:14A0 _$P_Chk_SW_Exit:                        ; CODE XREF: _$P_Chk_SW_Control+37j
DGROUP:14A0                                         ; _$P_Chk_SW_Control+3Dj ...
DGROUP:14A0                 push    ax
DGROUP:14A1                 mov     ax, 0FF03h
DGROUP:14A4                 call    _$P_Fill_Result
DGROUP:14A7                 pop     ax
DGROUP:14A8                 clc
DGROUP:14A9
DGROUP:14A9 _$P_Chk_SW_Single_Exit:                 ; CODE XREF: _$P_Chk_SW_Control+53j
DGROUP:14A9                 retn
DGROUP:14A9 _$P_Chk_SW_Control endp
DGROUP:14A9
DGROUP:14AA
DGROUP:14AA ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:14AA
DGROUP:14AA
DGROUP:14AA _$P_Fill_Result proc near               ; CODE XREF: _$P_Chk_Pos_Control+26p
DGROUP:14AA                                         ; _$P_Chk_SW_Control+5Bp ...
DGROUP:14AA                 push    di
DGROUP:14AB                 mov     di, es:[bx+4]
DGROUP:14AF                 mov     cs:_$P_DX, di
DGROUP:14B4                 mov     es:[di], al
DGROUP:14B7                 mov     es:[di+1], ah
DGROUP:14BB                 push    ax
DGROUP:14BC                 mov     ax, cs:_$P_Found_SYNONYM
DGROUP:14C0                 mov     es:[di+2], ax
DGROUP:14C4                 pop     ax
DGROUP:14C5
DGROUP:14C5 _$P_RLT04:
DGROUP:14C5                 cmp     al, 1
DGROUP:14C7                 jnz     short _$P_RLT00
DGROUP:14C9
DGROUP:14C9 _$P_RLT02:                              ; CODE XREF: _$P_Fill_Result+35j
DGROUP:14C9                                         ; _$P_Fill_Result+39j
DGROUP:14C9                 mov     es:[di+4], dx
DGROUP:14CD                 mov     es:[di+6], cx
DGROUP:14D1                 jmp     short _$P_RLT_Exit
DGROUP:14D3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:14D3
DGROUP:14D3 _$P_RLT00:                              ; CODE XREF: _$P_Fill_Result+1Dj
DGROUP:14D3                 cmp     al, 2
DGROUP:14D5                 jnz     short _$P_RLT01
DGROUP:14D7                 mov     es:[di+4], dx
DGROUP:14DB                 jmp     short _$P_RLT_Exit
DGROUP:14DD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:14DD
DGROUP:14DD _$P_RLT01:                              ; CODE XREF: _$P_Fill_Result+2Bj
DGROUP:14DD                 cmp     al, 7
DGROUP:14DF                 jz      short _$P_RLT02
DGROUP:14E1                 cmp     al, 8
DGROUP:14E3                 jz      short _$P_RLT02
DGROUP:14E5                 cmp     al, 6
DGROUP:14E7                 jnz     short _$P_RLT03
DGROUP:14E9                 mov     es:[di+4], dl
DGROUP:14ED                 jmp     short _$P_RLT_Exit
DGROUP:14EF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:14EF
DGROUP:14EF _$P_RLT03:                              ; CODE XREF: _$P_Fill_Result+3Dj
DGROUP:14EF                 cmp     al, 4
DGROUP:14F1                 jnz     short _$P_RLT05
DGROUP:14F3                 mov     ax, cs:_$P_SaveSI_Cmpx
DGROUP:14F7                 inc     ax
DGROUP:14F8                 mov     es:[di+4], ax
DGROUP:14FC                 mov     word ptr es:[di+6], ds
DGROUP:1500                 jmp     short _$P_RLT_Exit
DGROUP:1502 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1502
DGROUP:1502 _$P_RLT05:                              ; CODE XREF: _$P_Fill_Result+47j
DGROUP:1502                 mov     es:[di+4], si
DGROUP:1506                 mov     word ptr es:[di+6], cs
DGROUP:150A                 push    ax
DGROUP:150B                 test    byte ptr es:[bx+2], 1
DGROUP:1510                 jz      short _$P_RLT_CAP00
DGROUP:1512                 mov     al, 4
DGROUP:1514                 jmp     short _$P_RLT_CAP02
DGROUP:1516 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1516
DGROUP:1516 _$P_RLT_CAP00:                          ; CODE XREF: _$P_Fill_Result+66j
DGROUP:1516                 test    byte ptr es:[bx+2], 2
DGROUP:151B                 jz      short _$P_RLT_CAP01
DGROUP:151D                 mov     al, 2
DGROUP:151F
DGROUP:151F _$P_RLT_CAP02:                          ; CODE XREF: _$P_Fill_Result+6Aj
DGROUP:151F                 call    _$P_Do_CAPS_String
DGROUP:1522
DGROUP:1522 _$P_RLT_CAP01:                          ; CODE XREF: _$P_Fill_Result+71j
DGROUP:1522                 pop     ax
DGROUP:1523                 test    byte ptr es:[bx+2], 10h
DGROUP:1528                 jz      short _$P_RLT_Exit
DGROUP:152A                 call    _$P_Remove_Colon
DGROUP:152D
DGROUP:152D _$P_RLT_Exit:                           ; CODE XREF: _$P_Fill_Result+27j
DGROUP:152D                                         ; _$P_Fill_Result+31j ...
DGROUP:152D                 pop     di
DGROUP:152E                 retn
DGROUP:152E _$P_Fill_Result endp
DGROUP:152E
DGROUP:152F
DGROUP:152F ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:152F
DGROUP:152F
DGROUP:152F _$P_Check_Match_Flags proc near         ; CODE XREF: _$P_Chk_Pos_Control:_$P_CPC01p
DGROUP:152F                                         ; _$P_Chk_SW_Control:_$P_CSW00p
DGROUP:152F                 mov     cs:_$P_err_flag, 0
DGROUP:1535                 push    ax
DGROUP:1536                 mov     ax, es:[bx]
DGROUP:1539                 or      ax, ax
DGROUP:153B                 jnz     short _$P_Mat
DGROUP:153D                 push    ax
DGROUP:153E                 push    bx
DGROUP:153F                 push    dx
DGROUP:1540                 push    di
DGROUP:1541                 mov     cs:_$P_RC, 9
DGROUP:1548                 mov     ax, 0FF03h
DGROUP:154B                 call    _$P_Fill_Result
DGROUP:154E                 pop     di
DGROUP:154F                 pop     dx
DGROUP:1550                 pop     bx
DGROUP:1551                 pop     ax
DGROUP:1552                 jmp     short _$P_Bridge
DGROUP:1554 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1554
DGROUP:1554 _$P_Mat:                                ; CODE XREF: _$P_Check_Match_Flags+Cj
DGROUP:1554                 test    ax, 1000h
DGROUP:1557                 jz      short _$P_Match01
DGROUP:1559                 mov     cs:_$P_RC, 0
DGROUP:1560                 call    _$P_Date_Format
DGROUP:1563                 cmp     cs:_$P_RC, 9
DGROUP:1569                 jnz     short _$P_Bridge
DGROUP:156B
DGROUP:156B _$P_Match01:                            ; CODE XREF: _$P_Check_Match_Flags+28j
DGROUP:156B                 jmp     short _$P_Match03
DGROUP:156D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:156D
DGROUP:156D _$P_Bridge:                             ; CODE XREF: _$P_Check_Match_Flags+23j
DGROUP:156D                                         ; _$P_Check_Match_Flags+3Aj
DGROUP:156D                 jmp     short _$P_Match_Exit
DGROUP:156F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:156F
DGROUP:156F _$P_Match03:                            ; CODE XREF: _$P_Check_Match_Flags:_$P_Match01j
DGROUP:156F                 test    ax, 8000h
DGROUP:1572                 jz      short _$P_Match04
DGROUP:1574                 mov     cs:_$P_RC, 0
DGROUP:157B                 call    _$P_Value
DGROUP:157E                 cmp     cs:_$P_RC, 9
DGROUP:1584                 jnz     short _$P_Match_Exit
DGROUP:1586
DGROUP:1586 _$P_Match04:                            ; CODE XREF: _$P_Check_Match_Flags+43j
DGROUP:1586                 test    ax, 4000h
DGROUP:1589                 jz      short _$P_Match05
DGROUP:158B                 mov     cs:_$P_RC, 0
DGROUP:1592                 call    _$P_SValue
DGROUP:1595                 cmp     cs:_$P_RC, 9
DGROUP:159B                 jnz     short _$P_Match_Exit
DGROUP:159D
DGROUP:159D _$P_Match05:                            ; CODE XREF: _$P_Check_Match_Flags+5Aj
DGROUP:159D                 test    ax, 2000h
DGROUP:15A0                 jz      short _$P_Match_Exit
DGROUP:15A2                 mov     cs:_$P_RC, 0
DGROUP:15A9                 call    _$P_Simple_String
DGROUP:15AC
DGROUP:15AC _$P_Match_Exit:                         ; CODE XREF: _$P_Check_Match_Flags:_$P_Bridgej
DGROUP:15AC                                         ; _$P_Check_Match_Flags+55j ...
DGROUP:15AC                 cmp     cs:_$P_err_flag, 1
DGROUP:15B2                 jnz     short _$P_Match2_Exit
DGROUP:15B4                 cmp     cs:_$P_RC, 0
DGROUP:15BA                 jnz     short _$P_Match2_Exit
DGROUP:15BC                 mov     cs:_$P_RC, 9
DGROUP:15C3
DGROUP:15C3 _$P_Match2_Exit:                        ; CODE XREF: _$P_Check_Match_Flags+83j
DGROUP:15C3                                         ; _$P_Check_Match_Flags+8Bj
DGROUP:15C3                 pop     ax
DGROUP:15C4                 retn
DGROUP:15C4 _$P_Check_Match_Flags endp
DGROUP:15C4
DGROUP:15C5
DGROUP:15C5 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:15C5
DGROUP:15C5
DGROUP:15C5 _$P_Remove_Colon proc near              ; CODE XREF: _$P_Fill_Result+80p
DGROUP:15C5                 push    ax
DGROUP:15C6                 push    si
DGROUP:15C7
DGROUP:15C7 _$P_RCOL_Loop:                          ; CODE XREF: _$P_Remove_Colon+21j
DGROUP:15C7                 mov     al, cs:[si]
DGROUP:15CA                 or      al, al
DGROUP:15CC                 jz      short _$P_RCOL_Exit
DGROUP:15CE                 cmp     al, ':'
DGROUP:15D0                 jnz     short _$P_RCOL00
DGROUP:15D2                 cmp     byte ptr cs:[si+1], 0
DGROUP:15D7                 jnz     short _$P_RCOL00
DGROUP:15D9                 mov     byte ptr cs:[si], 0
DGROUP:15DD                 jmp     short _$P_RCOL_Exit
DGROUP:15DF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:15DF
DGROUP:15DF _$P_RCOL00:                             ; CODE XREF: _$P_Remove_Colon+Bj
DGROUP:15DF                                         ; _$P_Remove_Colon+12j
DGROUP:15DF                 call    _$P_Chk_DBCS
DGROUP:15E2                 jnb     short _$P_RCOL01
DGROUP:15E4                 inc     si
DGROUP:15E5
DGROUP:15E5 _$P_RCOL01:                             ; CODE XREF: _$P_Remove_Colon+1Dj
DGROUP:15E5                 inc     si
DGROUP:15E6                 jmp     short _$P_RCOL_Loop
DGROUP:15E8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:15E8
DGROUP:15E8 _$P_RCOL_Exit:                          ; CODE XREF: _$P_Remove_Colon+7j
DGROUP:15E8                                         ; _$P_Remove_Colon+18j
DGROUP:15E8                 pop     si
DGROUP:15E9                 pop     ax
DGROUP:15EA                 retn
DGROUP:15EA _$P_Remove_Colon endp
DGROUP:15EA
DGROUP:15EB
DGROUP:15EB ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:15EB
DGROUP:15EB
DGROUP:15EB _$P_Do_CAPS_String proc near            ; CODE XREF: _$P_Fill_Result:_$P_RLT_CAP02p
DGROUP:15EB                 push    si
DGROUP:15EC                 push    dx
DGROUP:15ED                 mov     dl, al
DGROUP:15EF
DGROUP:15EF _$P_DCS_Loop:                           ; CODE XREF: _$P_Do_CAPS_String+1Aj
DGROUP:15EF                 mov     al, cs:[si]
DGROUP:15F2                 call    _$P_Chk_DBCS
DGROUP:15F5                 jb      short _$P_DCS00
DGROUP:15F7                 or      al, al
DGROUP:15F9                 jz      short _$P_DCS_Exit
DGROUP:15FB                 call    _$P_Do_CAPS_Char
DGROUP:15FE                 mov     cs:[si], al
DGROUP:1601                 jmp     short _$P_DCS01
DGROUP:1603 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1603
DGROUP:1603 _$P_DCS00:                              ; CODE XREF: _$P_Do_CAPS_String+Aj
DGROUP:1603                 inc     si
DGROUP:1604
DGROUP:1604 _$P_DCS01:                              ; CODE XREF: _$P_Do_CAPS_String+16j
DGROUP:1604                 inc     si
DGROUP:1605                 jmp     short _$P_DCS_Loop
DGROUP:1607 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1607
DGROUP:1607 _$P_DCS_Exit:                           ; CODE XREF: _$P_Do_CAPS_String+Ej
DGROUP:1607                 pop     dx
DGROUP:1608                 pop     si
DGROUP:1609                 retn
DGROUP:1609 _$P_Do_CAPS_String endp
DGROUP:1609
DGROUP:160A
DGROUP:160A ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:160A
DGROUP:160A
DGROUP:160A _$P_Do_CAPS_Char proc near              ; CODE XREF: _$P_Do_CAPS_String+10p
DGROUP:160A                                         ; _$P_String_Comp+Ep
DGROUP:160A                 cmp     al, 80h
DGROUP:160C                 jnb     short _$P_DCC_Go
DGROUP:160E                 cmp     al, 'a'
DGROUP:1610                 jb      short _$P_CAPS_Ret
DGROUP:1612                 cmp     al, 'z'
DGROUP:1614                 ja      short _$P_CAPS_Ret
DGROUP:1616                 and     al, 0DFh
DGROUP:1618                 retn
DGROUP:1619 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1619
DGROUP:1619 _$P_DCC_Go:                             ; CODE XREF: _$P_Do_CAPS_Char+2j
DGROUP:1619                 push    bx
DGROUP:161A                 push    es
DGROUP:161B                 push    di
DGROUP:161C                 lea     di, _$P_Char_CAP_Ptr
DGROUP:1620
DGROUP:1620 _$P_DCC00:
DGROUP:1620                 cmp     cs:[di], dl
DGROUP:1623                 jz      short _$P_DCC01
DGROUP:1625                 push    ax
DGROUP:1626                 push    cx
DGROUP:1627                 push    dx
DGROUP:1628                 push    cs
DGROUP:1629                 pop     es
DGROUP:162A                 assume es:DGROUP
DGROUP:162A                 xchg    ax, dx
DGROUP:162B                 mov     ah, 65h
DGROUP:162D                 mov     bx, 0FFFFh
DGROUP:1630                 mov     cx, 5
DGROUP:1633                 mov     dx, bx
DGROUP:1635                 int     21h             ; DOS - 4.x internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION
DGROUP:1635                                         ; AL = function -
DGROUP:1637                 pop     dx
DGROUP:1638                 pop     cx
DGROUP:1639                 pop     ax
DGROUP:163A
DGROUP:163A _$P_DCC01:                              ; CODE XREF: _$P_Do_CAPS_Char+19j
DGROUP:163A                 les     bx, cs:[di+1]
DGROUP:163E                 assume es:nothing
DGROUP:163E                 inc     bx
DGROUP:163F                 inc     bx
DGROUP:1640                 sub     al, 80h
DGROUP:1642                 xlat    byte ptr es:[bx]
DGROUP:1644                 pop     di
DGROUP:1645                 pop     es
DGROUP:1646                 pop     bx
DGROUP:1647
DGROUP:1647 _$P_CAPS_Ret:                           ; CODE XREF: _$P_Do_CAPS_Char+6j
DGROUP:1647                                         ; _$P_Do_CAPS_Char+Aj
DGROUP:1647                 retn
DGROUP:1647 _$P_Do_CAPS_Char endp
DGROUP:1647
DGROUP:1648
DGROUP:1648 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1648
DGROUP:1648
DGROUP:1648 _$P_SValue      proc near               ; CODE XREF: _$P_Check_Match_Flags+63p
DGROUP:1648                 push    ax
DGROUP:1649                 or      cs:_$P_Flags2, 80h
DGROUP:164F                 and     cs:_$P_Flags2, not 2
DGROUP:1655                 mov     al, cs:[si]
DGROUP:1658                 cmp     al, '+'
DGROUP:165A                 jz      short _$P_SVal00
DGROUP:165C                 cmp     al, '-'
DGROUP:165E                 jnz     short _$P_Sval01
DGROUP:1660                 or      cs:_$P_Flags2, 2
DGROUP:1666
DGROUP:1666 _$P_SVal00:                             ; CODE XREF: _$P_SValue+12j
DGROUP:1666                 inc     si
DGROUP:1667
DGROUP:1667 _$P_Sval01:                             ; CODE XREF: _$P_SValue+16j
DGROUP:1667                 call    _$P_Value
DGROUP:166A                 pop     ax
DGROUP:166B                 retn
DGROUP:166B _$P_SValue      endp
DGROUP:166B
DGROUP:166C
DGROUP:166C ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:166C
DGROUP:166C
DGROUP:166C _$P_Value       proc near               ; CODE XREF: _$P_Check_Match_Flags+4Cp
DGROUP:166C                                         ; _$P_SValue:_$P_Sval01p
DGROUP:166C                 push    ax
DGROUP:166D                 push    cx
DGROUP:166E                 push    dx
DGROUP:166F                 push    si
DGROUP:1670                 xor     cx, cx
DGROUP:1672                 xor     dx, dx
DGROUP:1674                 push    bx
DGROUP:1675
DGROUP:1675 _$P_Value_Loop:                         ; CODE XREF: _$P_Value+36j
DGROUP:1675                 mov     al, cs:[si]
DGROUP:1678                 or      al, al
DGROUP:167A                 jz      short _$P_Value00
DGROUP:167C                 call    _$P_0099
DGROUP:167F                 jb      short _$P_Value_Err0
DGROUP:1681                 xor     ah, ah
DGROUP:1683                 mov     bp, ax
DGROUP:1685                 call    _$P_Value_sub1
DGROUP:1688                 mov     bx, dx
DGROUP:168A                 mov     ax, cx
DGROUP:168C                 call    _$P_Value_sub1
DGROUP:168F                 call    _$P_Value_sub1
DGROUP:1692                 add     dx, bx
DGROUP:1694                 adc     cx, ax
DGROUP:1696                 call    _$P_Value_sub2
DGROUP:1699                 add     dx, bp
DGROUP:169B                 adc     cx, 0
DGROUP:169E                 call    _$P_Value_sub2
DGROUP:16A1                 inc     si
DGROUP:16A2                 jmp     short _$P_Value_Loop
DGROUP:16A4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:16A4
DGROUP:16A4 _$P_Value_sub1:                         ; CODE XREF: _$P_Value+19p
DGROUP:16A4                                         ; _$P_Value+20p ...
DGROUP:16A4                 shl     dx, 1
DGROUP:16A6                 rcl     cx, 1
DGROUP:16A8
DGROUP:16A8 _$P_Value_sub2:                         ; CODE XREF: _$P_Value+2Ap
DGROUP:16A8                                         ; _$P_Value+32p
DGROUP:16A8                 call    _$P_Check_OVF
DGROUP:16AB                 jb      short _$P_Value_sub2_err
DGROUP:16AD                 retn
DGROUP:16AE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:16AE
DGROUP:16AE _$P_Value_sub2_err:                     ; CODE XREF: _$P_Value+3Fj
DGROUP:16AE                 inc     sp
DGROUP:16AF                 inc     sp
DGROUP:16B0
DGROUP:16B0 _$P_Value_Err0:                         ; CODE XREF: _$P_Value+13j
DGROUP:16B0                 pop     bx
DGROUP:16B1                 jmp     _$P_Value_Err
DGROUP:16B4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:16B4
DGROUP:16B4 _$P_Value00:                            ; CODE XREF: _$P_Value+Ej
DGROUP:16B4                 pop     bx
DGROUP:16B5                 test    cs:_$P_Flags2, 2
DGROUP:16BB                 jz      short _$P_Value01
DGROUP:16BD                 not     cx
DGROUP:16BF                 not     dx
DGROUP:16C1                 add     dx, 1
DGROUP:16C4                 adc     cx, 0
DGROUP:16C7
DGROUP:16C7 _$P_Value01:                            ; CODE XREF: _$P_Value+4Fj
DGROUP:16C7                 mov     si, es:[bx+6]
DGROUP:16CB                 mov     al, es:[si]
DGROUP:16CE                 cmp     al, 0
DGROUP:16D0                 jnz     short _$P_Value02
DGROUP:16D2                 mov     ax, 0FF01h
DGROUP:16D5                 jmp     _$P_Value_Exit
DGROUP:16D8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:16D8
DGROUP:16D8 _$P_Value02:                            ; CODE XREF: _$P_Value+64j
DGROUP:16D8                 inc     si
DGROUP:16D9                 mov     al, es:[si]
DGROUP:16DC                 cmp     al, 0
DGROUP:16DE                 jz      short _$P_Value03
DGROUP:16E0                 inc     si
DGROUP:16E1
DGROUP:16E1 _$P_Val02_Loop:                         ; CODE XREF: _$P_Value+BEj
DGROUP:16E1                 test    cs:_$P_Flags2, 80h
DGROUP:16E7                 jnz     short _$P_Val02_Sign
DGROUP:16E9                 cmp     cx, es:[si+3]
DGROUP:16ED                 jb      short _$P_Val02_Next
DGROUP:16EF                 ja      short _$P_Val_In
DGROUP:16F1                 cmp     dx, es:[si+1]
DGROUP:16F5                 jb      short _$P_Val02_Next
DGROUP:16F7
DGROUP:16F7 _$P_Val_In:                             ; CODE XREF: _$P_Value+83j
DGROUP:16F7                 cmp     cx, es:[si+7]
DGROUP:16FB                 ja      short _$P_Val02_Next
DGROUP:16FD                 jb      short _$P_Val_Found
DGROUP:16FF                 cmp     dx, es:[si+5]
DGROUP:1703                 ja      short _$P_Val02_Next
DGROUP:1705                 jmp     short _$P_Val_Found
DGROUP:1707 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1707
DGROUP:1707 _$P_Val02_Sign:                         ; CODE XREF: _$P_Value+7Bj
DGROUP:1707                 cmp     cx, es:[si+3]
DGROUP:170B                 jl      short _$P_Val02_Next
DGROUP:170D                 jg      short _$P_SVal_In
DGROUP:170F                 cmp     dx, es:[si+1]
DGROUP:1713                 jl      short _$P_Val02_Next
DGROUP:1715
DGROUP:1715 _$P_SVal_In:                            ; CODE XREF: _$P_Value+A1j
DGROUP:1715                 cmp     cx, es:[si+7]
DGROUP:1719                 jg      short _$P_Val02_Next
DGROUP:171B                 jl      short _$P_Val_Found
DGROUP:171D                 cmp     dx, es:[si+5]
DGROUP:1721                 jg      short _$P_Val02_Next
DGROUP:1723                 jmp     short _$P_Val_Found
DGROUP:1725 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1725
DGROUP:1725 _$P_Val02_Next:                         ; CODE XREF: _$P_Value+81j
DGROUP:1725                                         ; _$P_Value+89j ...
DGROUP:1725                 add     si, 9
DGROUP:1728                 dec     al
DGROUP:172A                 jnz     short _$P_Val02_Loop
DGROUP:172C                 mov     cs:_$P_RC, 6
DGROUP:1733                 mov     ax, 0FF01h
DGROUP:1736                 jmp     short _$P_Value_Exit
DGROUP:1738 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1738
DGROUP:1738 _$P_Val_Found:                          ; CODE XREF: _$P_Value+91j
DGROUP:1738                                         ; _$P_Value+99j ...
DGROUP:1738                 mov     al, 1
DGROUP:173A                 mov     ah, es:[si]
DGROUP:173D                 jmp     short _$P_Value_Exit
DGROUP:173F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:173F
DGROUP:173F _$P_Value03:                            ; CODE XREF: _$P_Value+72j
DGROUP:173F                 mov     ah, 9
DGROUP:1741                 mul     ah
DGROUP:1743                 inc     ax
DGROUP:1744                 add     si, ax
DGROUP:1746                 mov     al, es:[si]
DGROUP:1749                 inc     si
DGROUP:174A
DGROUP:174A _$P_Val03_Loop:                         ; CODE XREF: _$P_Value+EFj
DGROUP:174A                 cmp     cx, es:[si+3]
DGROUP:174E                 jnz     short _$P_Val03_Next
DGROUP:1750                 cmp     dx, es:[si+1]
DGROUP:1754                 jz      short _$P_Val_Found
DGROUP:1756
DGROUP:1756 _$P_Val03_Next:                         ; CODE XREF: _$P_Value+E2j
DGROUP:1756                 add     si, 5
DGROUP:1759                 dec     al
DGROUP:175B                 jnz     short _$P_Val03_Loop
DGROUP:175D                 mov     cs:_$P_RC, 7
DGROUP:1764                 mov     ax, 0FF01h
DGROUP:1767                 jmp     short _$P_Value_Exit
DGROUP:1769 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1769
DGROUP:1769 _$P_Value_Err:                          ; CODE XREF: _$P_Value+45j
DGROUP:1769                 mov     cs:_$P_RC, 9
DGROUP:1770                 mov     ax, 0FF03h
DGROUP:1773
DGROUP:1773 _$P_Value_Exit:                         ; CODE XREF: _$P_Value+69j
DGROUP:1773                                         ; _$P_Value+CAj ...
DGROUP:1773                 call    _$P_Fill_Result
DGROUP:1776                 pop     si
DGROUP:1777                 pop     dx
DGROUP:1778                 pop     cx
DGROUP:1779                 pop     ax
DGROUP:177A                 retn
DGROUP:177A _$P_Value       endp
DGROUP:177A
DGROUP:177B
DGROUP:177B ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:177B
DGROUP:177B
DGROUP:177B _$P_Check_OVF   proc near               ; CODE XREF: _$P_Value:_$P_Value_sub2p
DGROUP:177B                 pushf
DGROUP:177C                 test    cs:_$P_Flags2, 2
DGROUP:1782                 jnz     short _$P_COVF
DGROUP:1784                 popf
DGROUP:1785                 retn
DGROUP:1786 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1786
DGROUP:1786 _$P_COVF:                               ; CODE XREF: _$P_Check_OVF+7j
DGROUP:1786                 popf
DGROUP:1787                 jo      short _$P_COVF00
DGROUP:1789                 clc
DGROUP:178A                 retn
DGROUP:178B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:178B
DGROUP:178B _$P_COVF00:                             ; CODE XREF: _$P_Check_OVF+Cj
DGROUP:178B                 stc
DGROUP:178C                 retn
DGROUP:178C _$P_Check_OVF   endp
DGROUP:178C
DGROUP:178D
DGROUP:178D ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:178D
DGROUP:178D
DGROUP:178D _$P_0099        proc near               ; CODE XREF: _$P_Value+10p
DGROUP:178D                                         ; _$P_Get_DecNum:_$P_Neither_Delimsp ...
DGROUP:178D                 cmp     al, '0'
DGROUP:178F                 jb      short _$P_0099Err
DGROUP:1791                 cmp     al, '9'
DGROUP:1793                 ja      short _$P_0099Err
DGROUP:1795                 sub     al, '0'
DGROUP:1797                 clc
DGROUP:1798                 retn
DGROUP:1799 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1799
DGROUP:1799 _$P_0099Err:                            ; CODE XREF: _$P_0099+2j
DGROUP:1799                                         ; _$P_0099+6j
DGROUP:1799                 stc
DGROUP:179A                 retn
DGROUP:179A _$P_0099        endp
DGROUP:179A
DGROUP:179B
DGROUP:179B ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:179B
DGROUP:179B
DGROUP:179B _$P_Simple_String proc near             ; CODE XREF: _$P_Check_Match_Flags+7Ap
DGROUP:179B                 push    ax
DGROUP:179C                 push    bx
DGROUP:179D                 push    dx
DGROUP:179E                 push    di
DGROUP:179F                 mov     di, es:[bx+6]
DGROUP:17A3                 mov     al, es:[di]
DGROUP:17A6                 or      al, al
DGROUP:17A8                 jnz     short _$P_Sim01
DGROUP:17AA                 mov     ah, 0FFh
DGROUP:17AC                 jmp     short _$P_Sim_Exit
DGROUP:17AE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:17AE
DGROUP:17AE _$P_Sim01:                              ; CODE XREF: _$P_Simple_String+Dj
DGROUP:17AE                 mov     cs:_$P_RC, 9
DGROUP:17B5                 mov     ah, 0FFh
DGROUP:17B7
DGROUP:17B7 _$P_Sim_Exit:                           ; CODE XREF: _$P_Simple_String+11j
DGROUP:17B7                 mov     al, 3
DGROUP:17B9                 call    _$P_Fill_Result
DGROUP:17BC                 pop     di
DGROUP:17BD                 pop     dx
DGROUP:17BE                 pop     bx
DGROUP:17BF                 pop     ax
DGROUP:17C0                 retn
DGROUP:17C0 _$P_Simple_String endp
DGROUP:17C0
DGROUP:17C1
DGROUP:17C1 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:17C1
DGROUP:17C1
DGROUP:17C1 _$P_String_Comp proc near               ; CODE XREF: _$P_Search_KEYorSW:_$P_KEYorSW_Loopp
DGROUP:17C1                 push    ax
DGROUP:17C2                 push    bp
DGROUP:17C3                 push    dx
DGROUP:17C4                 push    si
DGROUP:17C5                 mov     dl, 2
DGROUP:17C7
DGROUP:17C7 _$P_SCOM_Loop:                          ; CODE XREF: _$P_String_Comp:_$P_SCOM01j
DGROUP:17C7                 mov     al, cs:[si]
DGROUP:17CA                 call    _$P_Chk_DBCS
DGROUP:17CD                 jb      short _$P_SCOM00
DGROUP:17CF                 call    _$P_Do_CAPS_Char
DGROUP:17D2                 test    cs:_$P_Flags2, 8
DGROUP:17D8                 jz      short _$P_SCOM04
DGROUP:17DA                 cmp     al, '='
DGROUP:17DC                 jnz     short _$P_SCOM03
DGROUP:17DE                 cmp     byte ptr es:[bp+1], 0
DGROUP:17E3                 jnz     short _$P_SCOM_Differ
DGROUP:17E5                 jmp     short _$P_SCOM05
DGROUP:17E7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:17E7
DGROUP:17E7 _$P_SCOM04:                             ; CODE XREF: _$P_String_Comp+17j
DGROUP:17E7                 test    cs:_$P_Flags2, 10h
DGROUP:17ED                 jz      short _$P_SCOM03
DGROUP:17EF                 cmp     al, ':'
DGROUP:17F1                 jnz     short _$P_SCOM03
DGROUP:17F3                 cmp     byte ptr es:[bp+0], 0
DGROUP:17F8                 jnz     short _$P_SCOM_Differ
DGROUP:17FA
DGROUP:17FA _$P_SCOM05:                             ; CODE XREF: _$P_String_Comp+24j
DGROUP:17FA                 inc     si
DGROUP:17FB                 jmp     short _$P_SCOM_Same
DGROUP:17FD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:17FD
DGROUP:17FD _$P_SCOM03:                             ; CODE XREF: _$P_String_Comp+1Bj
DGROUP:17FD                                         ; _$P_String_Comp+2Cj ...
DGROUP:17FD                 cmp     al, es:[bp+0]
DGROUP:1801                 jnz     short _$P_SCOM_Differ0
DGROUP:1803                 or      al, al
DGROUP:1805                 jz      short _$P_SCOM_Same
DGROUP:1807                 inc     si
DGROUP:1808                 inc     bp
DGROUP:1809                 jmp     short _$P_SCOM01
DGROUP:180B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:180B
DGROUP:180B _$P_SCOM00:                             ; CODE XREF: _$P_String_Comp+Cj
DGROUP:180B                 cmp     al, es:[bp+0]
DGROUP:180F                 jnz     short _$P_SCOM_Differ
DGROUP:1811                 inc     si
DGROUP:1812                 mov     al, cs:[si]
DGROUP:1815                 inc     bp
DGROUP:1816                 cmp     al, es:[bp+0]
DGROUP:181A                 jnz     short _$P_SCOM_Differ
DGROUP:181C                 inc     si
DGROUP:181D                 inc     bp
DGROUP:181E
DGROUP:181E _$P_SCOM01:                             ; CODE XREF: _$P_String_Comp+48j
DGROUP:181E                 jmp     short _$P_SCOM_Loop
DGROUP:1820 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1820
DGROUP:1820 _$P_SCOM_Differ0:                       ; CODE XREF: _$P_String_Comp+40j
DGROUP:1820                 test    cs:_$P_Flags2, 40h
DGROUP:1826                 jz      short _$P_not_applicable
DGROUP:1828                 test    word ptr es:[bx+2], 20h
DGROUP:182E                 jz      short _$P_not_applicable
DGROUP:1830                 cmp     byte ptr es:[bp+0], 0
DGROUP:1835                 jz      short _$P_SCOM_Same
DGROUP:1837
DGROUP:1837 _$P_not_applicable:                     ; CODE XREF: _$P_String_Comp+65j
DGROUP:1837                                         ; _$P_String_Comp+6Dj
DGROUP:1837                 test    word ptr es:[bx], 10h
DGROUP:183C                 jz      short _$P_SCOM_Differ
DGROUP:183E                 cmp     al, ':'
DGROUP:1840                 jnz     short _$P_SCOM02
DGROUP:1842                 cmp     byte ptr es:[bp+0], 0
DGROUP:1847                 jnz     short _$P_SCOM_Differ
DGROUP:1849                 jmp     short _$P_SCOM_Same
DGROUP:184B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:184B
DGROUP:184B _$P_SCOM02:                             ; CODE XREF: _$P_String_Comp+7Fj
DGROUP:184B                 cmp     al, 0
DGROUP:184D                 jnz     short _$P_SCOM_Differ
DGROUP:184F                 cmp     byte ptr es:[bp+0], ':'
DGROUP:1854                 jz      short _$P_SCOM_Same
DGROUP:1856
DGROUP:1856 _$P_SCOM_Differ:                        ; CODE XREF: _$P_String_Comp+22j
DGROUP:1856                                         ; _$P_String_Comp+37j ...
DGROUP:1856                 stc
DGROUP:1857                 jmp     short _$P_SCOM_Exit
DGROUP:1859 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1859
DGROUP:1859 _$P_SCOM_Same:                          ; CODE XREF: _$P_String_Comp+3Aj
DGROUP:1859                                         ; _$P_String_Comp+44j ...
DGROUP:1859                 mov     cs:_$P_KEYorSW_Ptr, si
DGROUP:185E                 clc
DGROUP:185F
DGROUP:185F _$P_SCOM_Exit:                          ; CODE XREF: _$P_String_Comp+96j
DGROUP:185F                 pop     si
DGROUP:1860                 pop     dx
DGROUP:1861                 pop     bp
DGROUP:1862                 pop     ax
DGROUP:1863                 retn
DGROUP:1863 _$P_String_Comp endp
DGROUP:1863
DGROUP:1864
DGROUP:1864 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1864
DGROUP:1864
DGROUP:1864 _$P_Date_Format proc near               ; CODE XREF: _$P_Check_Match_Flags+31p
DGROUP:1864                 push    ax
DGROUP:1865                 push    cx
DGROUP:1866                 push    dx
DGROUP:1867                 push    si
DGROUP:1868                 push    bx
DGROUP:1869                 push    si
DGROUP:186A                 call    _$P_Set_CDI
DGROUP:186D                 pop     si
DGROUP:186E                 xor     ax, ax
DGROUP:1870                 mov     cs:_$P_1st_Val, ax
DGROUP:1874                 mov     cs:_$P_2nd_Val, ax
DGROUP:1878                 mov     cs:_$P_3rd_Val, ax
DGROUP:187C                 call    _$P_Get_DecNum
DGROUP:187F                 jb      short _$P_DateF_Err0
DGROUP:1881                 mov     cs:_$P_1st_Val, ax
DGROUP:1885                 or      bl, bl
DGROUP:1887                 jz      short _$P_DateF_YMD
DGROUP:1889                 call    _$P_Get_DecNum
DGROUP:188C                 jb      short _$P_DateF_Error
DGROUP:188E                 mov     cs:_$P_2nd_Val, ax
DGROUP:1892                 or      bl, bl
DGROUP:1894                 jz      short _$P_DateF_YMD
DGROUP:1896                 call    _$P_Get_DecNum
DGROUP:1899
DGROUP:1899 _$P_DateF_Err0:                         ; CODE XREF: _$P_Date_Format+1Bj
DGROUP:1899                 jb      short _$P_DateF_Error
DGROUP:189B                 mov     cs:_$P_3rd_Val, ax
DGROUP:189F                 or      bl, bl
DGROUP:18A1                 jnz     short _$P_DateF_Error
DGROUP:18A3
DGROUP:18A3 _$P_DateF_YMD:                          ; CODE XREF: _$P_Date_Format+23j
DGROUP:18A3                                         ; _$P_Date_Format+30j
DGROUP:18A3                 mov     bx, cs:_$P_Country_Info
DGROUP:18A8                 cmp     bx, 2
DGROUP:18AB                 jz      short _$P_DateF00
DGROUP:18AD                 mov     ax, cs:_$P_1st_Val
DGROUP:18B1                 or      ah, ah
DGROUP:18B3                 jnz     short _$P_DateF_Error
DGROUP:18B5                 mov     cl, al
DGROUP:18B7                 mov     ax, cs:_$P_2nd_Val
DGROUP:18BB                 or      ah, ah
DGROUP:18BD                 jnz     short _$P_DateF_Error
DGROUP:18BF                 mov     ch, al
DGROUP:18C1                 mov     dx, cs:_$P_3rd_Val
DGROUP:18C6                 cmp     bx, 1
DGROUP:18C9                 jnz     short _$P_DateF01
DGROUP:18CB                 xchg    ch, cl
DGROUP:18CD
DGROUP:18CD _$P_DateF01:                            ; CODE XREF: _$P_Date_Format+65j
DGROUP:18CD                 jmp     short _$P_DateF02
DGROUP:18CF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:18CF
DGROUP:18CF _$P_DateF00:                            ; CODE XREF: _$P_Date_Format+47j
DGROUP:18CF                 mov     dx, cs:_$P_1st_Val
DGROUP:18D4                 mov     ax, cs:_$P_2nd_Val
DGROUP:18D8                 or      ah, ah
DGROUP:18DA                 jnz     short _$P_DateF_Error
DGROUP:18DC                 mov     cl, al
DGROUP:18DE                 mov     ax, cs:_$P_3rd_Val
DGROUP:18E2                 or      ah, ah
DGROUP:18E4                 jnz     short _$P_DateF_Error
DGROUP:18E6                 mov     ch, al
DGROUP:18E8
DGROUP:18E8 _$P_DateF02:                            ; CODE XREF: _$P_Date_Format:_$P_DateF01j
DGROUP:18E8                 cmp     dx, 100
DGROUP:18EB                 jnb     short _$P_DateF03
DGROUP:18ED                 add     dx, 1900
DGROUP:18F1
DGROUP:18F1 _$P_DateF03:                            ; CODE XREF: _$P_Date_Format+87j
DGROUP:18F1                 pop     bx
DGROUP:18F2                 pop     si
DGROUP:18F3                 mov     ax, 0FF07h
DGROUP:18F6                 call    _$P_Fill_Result
DGROUP:18F9                 jmp     short _$P_Date_Format_Exit
DGROUP:18FB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:18FB
DGROUP:18FB _$P_DateF_Error:                        ; CODE XREF: _$P_Date_Format+28j
DGROUP:18FB                                         ; _$P_Date_Format:_$P_DateF_Err0j ...
DGROUP:18FB                 pop     bx
DGROUP:18FC                 pop     si
DGROUP:18FD                 mov     ax, 0FF03h
DGROUP:1900                 call    _$P_Fill_Result
DGROUP:1903                 mov     cs:_$P_RC, 9
DGROUP:190A
DGROUP:190A _$P_Date_Format_Exit:                   ; CODE XREF: _$P_Date_Format+95j
DGROUP:190A                 pop     dx
DGROUP:190B                 pop     cx
DGROUP:190C                 pop     ax
DGROUP:190D                 retn
DGROUP:190D _$P_Date_Format endp
DGROUP:190D
DGROUP:190E
DGROUP:190E ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:190E
DGROUP:190E
DGROUP:190E _$P_Set_CDI     proc near               ; CODE XREF: _$P_Date_Format+6p
DGROUP:190E                 lea     si, _$P_Country_Info
DGROUP:1912                 cmp     word ptr cs:[si], 0FFFFh
DGROUP:1916                 jnz     short _$P_Set_CDI_Exit
DGROUP:1918                 push    ds
DGROUP:1919                 push    dx
DGROUP:191A                 push    ax
DGROUP:191B                 push    cs
DGROUP:191C                 pop     ds
DGROUP:191D                 assume ds:DGROUP
DGROUP:191D                 mov     ax, 3800h
DGROUP:1920                 mov     dx, si
DGROUP:1922                 int     21h             ; DOS - 2+ - GET COUNTRY-DEPENDENT INFORMATION
DGROUP:1922                                         ; get current-country info
DGROUP:1922                                         ; DS:DX -> buffer for returned info
DGROUP:1924                 pop     ax
DGROUP:1925                 pop     dx
DGROUP:1926                 pop     ds
DGROUP:1927                 assume ds:nothing
DGROUP:1927
DGROUP:1927 _$P_Set_CDI_Exit:                       ; CODE XREF: _$P_Set_CDI+8j
DGROUP:1927                 retn
DGROUP:1927 _$P_Set_CDI     endp
DGROUP:1927
DGROUP:1928
DGROUP:1928 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1928
DGROUP:1928
DGROUP:1928 _$P_Get_DecNum  proc near               ; CODE XREF: _$P_Date_Format+18p
DGROUP:1928                                         ; _$P_Date_Format+25p ...
DGROUP:1928                 push    cx
DGROUP:1929                 push    dx
DGROUP:192A                 xor     cx, cx
DGROUP:192C
DGROUP:192C _$P_GetNum_Loop:                        ; CODE XREF: _$P_Get_DecNum+45j
DGROUP:192C                 mov     al, cs:[si]
DGROUP:192F                 or      al, al
DGROUP:1931                 jz      short _$P_GetNum00
DGROUP:1933                 cmp     cs:_$P_Got_Time, 0
DGROUP:1939                 jz      short _$P_Do_Date_Delims
DGROUP:193B                 cmp     bl, 1
DGROUP:193E                 jnz     short _$P_Do_Time_Delim1
DGROUP:1940                 cmp     al, ':'
DGROUP:1942                 jz      short _$P_GetNum01
DGROUP:1944
DGROUP:1944 _$P_Do_Time_Delim1:                     ; CODE XREF: _$P_Get_DecNum+16j
DGROUP:1944                 cmp     al, '.'
DGROUP:1946                 jz      short _$P_GetNum01
DGROUP:1948                 jmp     short _$P_Neither_Delims
DGROUP:194A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:194A
DGROUP:194A _$P_Do_Date_Delims:                     ; CODE XREF: _$P_Get_DecNum+11j
DGROUP:194A                 cmp     al, '-'
DGROUP:194C                 jz      short _$P_GetNum01
DGROUP:194E                 cmp     al, '/'
DGROUP:1950                 jz      short _$P_GetNum01
DGROUP:1952                 cmp     al, '.'
DGROUP:1954                 jz      short _$P_GetNum01
DGROUP:1956
DGROUP:1956 _$P_Neither_Delims:                     ; CODE XREF: _$P_Get_DecNum+20j
DGROUP:1956                 call    _$P_0099
DGROUP:1959                 jb      short _$P_GetNum_Exit
DGROUP:195B                 mov     ah, 0
DGROUP:195D                 xchg    ax, cx
DGROUP:195E                 mov     dx, 10
DGROUP:1961                 mul     dx
DGROUP:1963                 or      dx, dx
DGROUP:1965                 jnz     short _$P_GetNum02
DGROUP:1967                 add     ax, cx
DGROUP:1969                 jb      short _$P_GetNum_Exit
DGROUP:196B                 xchg    ax, cx
DGROUP:196C                 inc     si
DGROUP:196D                 jmp     short _$P_GetNum_Loop
DGROUP:196F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:196F
DGROUP:196F _$P_GetNum00:                           ; CODE XREF: _$P_Get_DecNum+9j
DGROUP:196F                 mov     bl, al
DGROUP:1971
DGROUP:1971 _$P_GetNum03:                           ; CODE XREF: _$P_Get_DecNum+4Dj
DGROUP:1971                 clc
DGROUP:1972                 jmp     short _$P_GetNum_Exit
DGROUP:1974 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1974
DGROUP:1974 _$P_GetNum01:                           ; CODE XREF: _$P_Get_DecNum+1Aj
DGROUP:1974                                         ; _$P_Get_DecNum+1Ej ...
DGROUP:1974                 inc     si
DGROUP:1975                 jmp     short _$P_GetNum03
DGROUP:1977 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1977
DGROUP:1977 _$P_GetNum02:                           ; CODE XREF: _$P_Get_DecNum+3Dj
DGROUP:1977                 stc
DGROUP:1978
DGROUP:1978 _$P_GetNum_Exit:                        ; CODE XREF: _$P_Get_DecNum+31j
DGROUP:1978                                         ; _$P_Get_DecNum+41j ...
DGROUP:1978                 xchg    ax, cx
DGROUP:1979                 pop     dx
DGROUP:197A                 pop     cx
DGROUP:197B                 retn
DGROUP:197B _$P_Get_DecNum  endp
DGROUP:197B
DGROUP:197C
DGROUP:197C ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:197C
DGROUP:197C
DGROUP:197C _$P_Skip_Delim  proc near               ; CODE XREF: SysParse+22p
DGROUP:197C                                         ; SysParse+66p ...
DGROUP:197C                 lodsb
DGROUP:197D                 call    _$P_Chk_EOL
DGROUP:1980                 jz      short _$P_Skip_Delim_CY
DGROUP:1982                 call    _$P_Chk_Delim
DGROUP:1985                 jnz     short _$P_Skip_Delim_NCY
DGROUP:1987                 test    cs:_$P_Flags2, 20h
DGROUP:198D                 jz      short _$P_Skip_Delim
DGROUP:198F                 test    cs:_$P_Flags2, 41h
DGROUP:1995                 jz      short _$P_Exit_At_Extra
DGROUP:1997                 dec     si
DGROUP:1998                 jmp     short _$P_Exit_At_Extra
DGROUP:199A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:199A
DGROUP:199A _$P_Skip_Delim_CY:                      ; CODE XREF: _$P_Skip_Delim+4j
DGROUP:199A                 stc
DGROUP:199B                 jmp     short _$P_Skip_Delim_Exit
DGROUP:199D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:199D
DGROUP:199D _$P_Skip_Delim_NCY:                     ; CODE XREF: _$P_Skip_Delim+9j
DGROUP:199D                 clc
DGROUP:199E
DGROUP:199E _$P_Skip_Delim_Exit:                    ; CODE XREF: _$P_Skip_Delim+1Fj
DGROUP:199E                 dec     si
DGROUP:199F                 retn
DGROUP:19A0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:19A0
DGROUP:19A0 _$P_Exit_At_Extra:                      ; CODE XREF: _$P_Skip_Delim+19j
DGROUP:19A0                                         ; _$P_Skip_Delim+1Cj
DGROUP:19A0                 clc
DGROUP:19A1                 retn
DGROUP:19A1 _$P_Skip_Delim  endp
DGROUP:19A1
DGROUP:19A2
DGROUP:19A2 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:19A2
DGROUP:19A2
DGROUP:19A2 _$P_Chk_EOL     proc near               ; CODE XREF: SysParse+54p
DGROUP:19A2                                         ; _$P_Skip_Delim+1p
DGROUP:19A2                 push    bx
DGROUP:19A3                 push    cx
DGROUP:19A4                 cmp     al, 0Dh
DGROUP:19A6                 jz      short _$P_Chk_EOL_Exit
DGROUP:19A8                 cmp     al, 0
DGROUP:19AA                 jz      short _$P_Chk_EOL_Exit
DGROUP:19AC                 cmp     al, 0Ah
DGROUP:19AE                 jz      short _$P_Chk_EOL_Exit
DGROUP:19B0                 cmp     byte ptr es:[di+2], 2
DGROUP:19B5                 jb      short _$P_Chk_EOL_Exit
DGROUP:19B7                 xor     bx, bx
DGROUP:19B9                 mov     bl, es:[di+3]
DGROUP:19BD                 add     bx, 4
DGROUP:19C0                 cmp     byte ptr es:[bx+di], 0
DGROUP:19C4                 jz      short _$P_Chk_EOL_NZ
DGROUP:19C6                 xor     cx, cx
DGROUP:19C8                 mov     cl, es:[bx+di]
DGROUP:19CB
DGROUP:19CB _$P_Chk_EOL_Loop:                       ; CODE XREF: _$P_Chk_EOL+2Fj
DGROUP:19CB                 inc     bx
DGROUP:19CC                 cmp     al, es:[bx+di]
DGROUP:19CF                 jz      short _$P_Chk_EOL_Exit
DGROUP:19D1                 loop    _$P_Chk_EOL_Loop
DGROUP:19D3
DGROUP:19D3 _$P_Chk_EOL_NZ:                         ; CODE XREF: _$P_Chk_EOL+22j
DGROUP:19D3                 cmp     al, 0Dh
DGROUP:19D5
DGROUP:19D5 _$P_Chk_EOL_Exit:                       ; CODE XREF: _$P_Chk_EOL+4j
DGROUP:19D5                                         ; _$P_Chk_EOL+8j ...
DGROUP:19D5                 pop     cx
DGROUP:19D6                 pop     bx
DGROUP:19D7                 retn
DGROUP:19D7 _$P_Chk_EOL     endp
DGROUP:19D7
DGROUP:19D8
DGROUP:19D8 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:19D8
DGROUP:19D8
DGROUP:19D8 _$P_Chk_Delim   proc near               ; CODE XREF: SysParse+59p
DGROUP:19D8                                         ; _$P_Skip_Delim+6p
DGROUP:19D8                 push    bx
DGROUP:19D9                 push    cx
DGROUP:19DA                 mov     cs:_$P_Terminator, ' '
DGROUP:19E0                 and     cs:_$P_Flags2, not 20h
DGROUP:19E6                 cmp     al, ' '
DGROUP:19E8                 jz      short $P_Chk_Delim_Exit
DGROUP:19EA                 cmp     al, 9
DGROUP:19EC                 jz      short $P_Chk_Delim_Exit
DGROUP:19EE                 cmp     al, ','
DGROUP:19F0                 jz      short _$P_Chk_Delim_Exit0
DGROUP:19F2                 cmp     al, ' '
DGROUP:19F4                 jnz     short _$P_Chk_Delim01
DGROUP:19F6                 cmp     byte ptr [si], ' '
DGROUP:19F9                 jnz     short _$P_Chk_Delim01
DGROUP:19FB                 mov     al, ' '
DGROUP:19FD                 inc     si
DGROUP:19FE                 cmp     al, al
DGROUP:1A00                 jmp     short $P_Chk_Delim_Exit
DGROUP:1A02 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1A02
DGROUP:1A02 _$P_Chk_Delim01:                        ; CODE XREF: _$P_Chk_Delim+1Cj
DGROUP:1A02                                         ; _$P_Chk_Delim+21j
DGROUP:1A02                 cmp     byte ptr es:[di+2], 1
DGROUP:1A07                 jb      short $P_Chk_Delim_Exit
DGROUP:1A09                 xor     cx, cx
DGROUP:1A0B                 mov     cl, es:[di+3]
DGROUP:1A0F                 jcxz    short _$P_Chk_Delim_NZ
DGROUP:1A11                 mov     bx, 3
DGROUP:1A14
DGROUP:1A14 _$P_Chk_Delim_Loop:                     ; CODE XREF: _$P_Chk_Delim+42j
DGROUP:1A14                 inc     bx
DGROUP:1A15                 cmp     al, es:[bx+di]
DGROUP:1A18                 jz      short _$P_Chk_Delim_Exit0
DGROUP:1A1A                 loop    _$P_Chk_Delim_Loop
DGROUP:1A1C
DGROUP:1A1C _$P_Chk_Delim_NZ:                       ; CODE XREF: _$P_Chk_Delim+37j
DGROUP:1A1C                 cmp     al, ' '
DGROUP:1A1E
DGROUP:1A1E $P_Chk_Delim_Exit:                      ; CODE XREF: _$P_Chk_Delim+10j
DGROUP:1A1E                                         ; _$P_Chk_Delim+14j ...
DGROUP:1A1E                 pop     cx
DGROUP:1A1F                 pop     bx
DGROUP:1A20                 retn
DGROUP:1A21 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1A21
DGROUP:1A21 _$P_Chk_Delim_Exit0:                    ; CODE XREF: _$P_Chk_Delim+18j
DGROUP:1A21                                         ; _$P_Chk_Delim+40j
DGROUP:1A21                 mov     cs:_$P_Terminator, al
DGROUP:1A25                 test    cs:_$P_Flags2, 1
DGROUP:1A2B                 jnz     short _$P_No_Set_Extra
DGROUP:1A2D                 or      cs:_$P_Flags2, 20h
DGROUP:1A33
DGROUP:1A33 _$P_No_Set_Extra:                       ; CODE XREF: _$P_Chk_Delim+53j
DGROUP:1A33                 cmp     al, al
DGROUP:1A35                 jmp     short $P_Chk_Delim_Exit
DGROUP:1A35 _$P_Chk_Delim   endp
DGROUP:1A35
DGROUP:1A37
DGROUP:1A37 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1A37
DGROUP:1A37
DGROUP:1A37 _$P_Chk_Switch  proc near               ; CODE XREF: SysParse+4Fp
DGROUP:1A37                 lea     bp, _$P_STRING_BUF
DGROUP:1A3B                 cmp     bx, bp
DGROUP:1A3D                 jz      short _$P_STRUC_L2
DGROUP:1A3F                 cmp     al, '/'
DGROUP:1A41                 jnz     short $P_STRUC_L5
DGROUP:1A43                 stc
DGROUP:1A44                 push    ax
DGROUP:1A45                 mov     al, cs:[bx-1]
DGROUP:1A49                 call    _$P_0099
DGROUP:1A4C                 jb      short _$P_STRUC_L7
DGROUP:1A4E                 mov     al, [si]
DGROUP:1A50                 call    _$P_0099
DGROUP:1A53
DGROUP:1A53 _$P_STRUC_L7:                           ; CODE XREF: _$P_Chk_Switch+15j
DGROUP:1A53                 pop     ax
DGROUP:1A54                 retn
DGROUP:1A55 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1A55
DGROUP:1A55 $P_STRUC_L5:                            ; CODE XREF: _$P_Chk_Switch+Aj
DGROUP:1A55                 clc
DGROUP:1A56                 retn
DGROUP:1A57 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1A57
DGROUP:1A57 _$P_STRUC_L2:                           ; CODE XREF: _$P_Chk_Switch+6j
DGROUP:1A57                 cmp     al, '/'
DGROUP:1A59                 jnz     short _$P_STRUC_L12
DGROUP:1A5B                 or      cs:_$P_Flags2, 40h
DGROUP:1A61
DGROUP:1A61 _$P_STRUC_L12:                          ; CODE XREF: _$P_Chk_Switch+22j
DGROUP:1A61                 clc
DGROUP:1A62
DGROUP:1A62 _$P_STRUC_L1:
DGROUP:1A62                 retn
DGROUP:1A62 _$P_Chk_Switch  endp
DGROUP:1A62
DGROUP:1A63
DGROUP:1A63 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1A63
DGROUP:1A63
DGROUP:1A63 _$P_Chk_DBCS    proc near               ; CODE XREF: SysParse+84p
DGROUP:1A63                                         ; _$P_Remove_Colon:_$P_RCOL00p ...
DGROUP:1A63                 push    ds
DGROUP:1A64                 push    si
DGROUP:1A65                 push    bx
DGROUP:1A66                 cmp     cs:_$P_DBCSEV_SEG, 0
DGROUP:1A6C                 jnz     short _$P_DBCS00
DGROUP:1A6E                 push    ax
DGROUP:1A6F                 push    ds
DGROUP:1A70                 push    cx
DGROUP:1A71                 push    dx
DGROUP:1A72                 push    di
DGROUP:1A73                 push    bp
DGROUP:1A74                 push    es
DGROUP:1A75                 xor     si, si
DGROUP:1A77                 mov     ds, si
DGROUP:1A79                 assume ds:seg000
DGROUP:1A79                 mov     ax, 6300h
DGROUP:1A7C                 int     21h             ; DOS - 3.2+ only - GET DOUBLE BYTE CHARACTER SET LEAD TABLE
DGROUP:1A7E                 mov     bx, ds
DGROUP:1A80                 or      bx, bx
DGROUP:1A82                 pop     es
DGROUP:1A83                 pop     bp
DGROUP:1A84                 pop     di
DGROUP:1A85                 pop     dx
DGROUP:1A86                 pop     cx
DGROUP:1A87                 pop     ds
DGROUP:1A88                 assume ds:nothing
DGROUP:1A88                 pop     ax
DGROUP:1A89                 jz      short _$P_NON_DBCS
DGROUP:1A8B
DGROUP:1A8B _$P_DBCS02:
DGROUP:1A8B                 mov     cs:_$P_DBCSEV_OFF, si
DGROUP:1A90                 mov     cs:_$P_DBCSEV_SEG, bx
DGROUP:1A95
DGROUP:1A95 _$P_DBCS00:                             ; CODE XREF: _$P_Chk_DBCS+9j
DGROUP:1A95                 lds     si, dword ptr cs:_$P_DBCSEV_OFF
DGROUP:1A9A
DGROUP:1A9A _$P_DBCS_LOOP:                          ; CODE XREF: _$P_Chk_DBCS+4Aj
DGROUP:1A9A                 cmp     word ptr [si], 0
DGROUP:1A9D                 jz      short _$P_NON_DBCS
DGROUP:1A9F                 cmp     al, [si]
DGROUP:1AA1                 jb      short _$P_DBCS01
DGROUP:1AA3                 cmp     al, [si+1]
DGROUP:1AA6                 ja      short _$P_DBCS01
DGROUP:1AA8                 stc
DGROUP:1AA9                 jmp     short _$P_DBCS_EXIT
DGROUP:1AAB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1AAB
DGROUP:1AAB _$P_DBCS01:                             ; CODE XREF: _$P_Chk_DBCS+3Ej
DGROUP:1AAB                                         ; _$P_Chk_DBCS+43j
DGROUP:1AAB                 inc     si
DGROUP:1AAC                 inc     si
DGROUP:1AAD                 jmp     short _$P_DBCS_LOOP
DGROUP:1AAF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1AAF
DGROUP:1AAF _$P_NON_DBCS:                           ; CODE XREF: _$P_Chk_DBCS+26j
DGROUP:1AAF                                         ; _$P_Chk_DBCS+3Aj
DGROUP:1AAF                 clc
DGROUP:1AB0
DGROUP:1AB0 _$P_DBCS_EXIT:                          ; CODE XREF: _$P_Chk_DBCS+46j
DGROUP:1AB0                 pop     bx
DGROUP:1AB1                 pop     si
DGROUP:1AB2                 pop     ds
DGROUP:1AB3                 retn
DGROUP:1AB3 _$P_Chk_DBCS    endp
DGROUP:1AB3
DGROUP:1AB4
DGROUP:1AB4 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1AB4
DGROUP:1AB4
DGROUP:1AB4 CallParser      proc far                ; CODE XREF: parse+1CP
DGROUP:1AB4                 push    ds
DGROUP:1AB5                 push    es
DGROUP:1AB6                 push    cs
DGROUP:1AB7                 pop     ds
DGROUP:1AB8                 assume ds:DGROUP
DGROUP:1AB8                 push    cs
DGROUP:1AB9                 pop     es
DGROUP:1ABA                 assume es:DGROUP
DGROUP:1ABA                 nop
DGROUP:1ABB                 call    SysParse
DGROUP:1ABE                 pop     es
DGROUP:1ABF                 assume es:nothing
DGROUP:1ABF                 pop     ds
DGROUP:1AC0                 assume ds:nothing
DGROUP:1AC0                 retf
DGROUP:1AC0 CallParser      endp
DGROUP:1AC0
DGROUP:1AC0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1AC1                 align 2
DGROUP:1AC2 $M_EXT_ERR_ADDRS dd 0                   ; DATA XREF: SYSLOADMSG+50w
DGROUP:1AC2                                         ; _$M_GET_MSG_ADDRESS:$MIF41r ...
DGROUP:1AC6 $M_EXT_FILE     dd 0                    ; DATA XREF: SYSLOADMSG+43w
DGROUP:1AC6                                         ; SYSLOADMSG+3Fw
DGROUP:1ACA $M_EXT_COMMAND  dd 0                    ; DATA XREF: SYSLOADMSG+16w
DGROUP:1ACA                                         ; SYSLOADMSG+12w
DGROUP:1ACE $M_EXT_TERM     dd 0FFFFFFFFh
DGROUP:1AD2 $M_PARSE_COMMAND dd 0                   ; DATA XREF: SYSLOADMSG+25w
DGROUP:1AD2                                         ; _$M_GET_MSG_ADDRESS+18r ...
DGROUP:1AD6 $M_PARSE_ADDRS  dd 0                    ; DATA XREF: SYSLOADMSG+65w
DGROUP:1AD6                                         ; SYSLOADMSG+61w
DGROUP:1ADA $M_PARSE_TERM   dd 0FFFFFFFFh
DGROUP:1ADE $M_CRIT_ADDRS   dd 0                    ; DATA XREF: SYSLOADMSG+58w
DGROUP:1ADE                                         ; _$M_GET_MSG_ADDRESS+2Ar ...
DGROUP:1AE2 $M_CRIT_COMMAND dd 0                    ; DATA XREF: SYSLOADMSG+34w
DGROUP:1AE2                                         ; SYSLOADMSG+30w
DGROUP:1AE6 $M_CRIT_TERM    dd 0FFFFFFFFh
DGROUP:1AEA $M_DISK_PROC_ADDR dd 0FFFFFFFFh         ; DATA XREF: SYSLOADMSG+74w
DGROUP:1AEA                                         ; _$M_FIND_SPECIFIED_MSG+5r ...
DGROUP:1AEE $M_CLASS_A_ADDRS dd 0                   ; DATA XREF: SYSLOADMSG+98w
DGROUP:1AEE                                         ; _$M_GET_MSG_ADDRESS+Br ...
DGROUP:1AF2 $M_CLASS_B_ADDRS dd 0                   ; DATA XREF: SYSLOADMSG+A5w
DGROUP:1AF2                                         ; SYSLOADMSG+A1w
DGROUP:1AF6 $M_CLS_TERM     dd 0FFFFFFFFh
DGROUP:1AFA $M_DBCS_VEC     dd 0                    ; DATA XREF: _$M_GET_DBCS_VEC+Dw
DGROUP:1AFA                                         ; _$M_IS_IT_DBCS+2r ...
DGROUP:1AFE $M_HANDLE       dw 0                    ; DATA XREF: SYSDISPMSG+9w
DGROUP:1AFE                                         ; _$M_DISPLAY_STRING+3r
DGROUP:1B00 $M_SIZE         db 0                    ; DATA XREF: _$M_FIND_SPECIFIED_MSG:$MIF91w
DGROUP:1B00                                         ; _$M_DISPLAY_REPLACE+1Ew
DGROUP:1B01 $M_CRLF         dw 0A0Dh                ; DATA XREF: SYSLOADMSG+78w
DGROUP:1B01                                         ; _$M_ADD_CRLF+Co
DGROUP:1B03 $M_CLASS        db 0                    ; DATA XREF: SYSDISPMSG+Dw
DGROUP:1B03                                         ; _$M_DISPLAY_MESSAGE:$MEN175r
DGROUP:1B04 $M_RETURN_ADDR  dw 0                    ; DATA XREF: _$M_CONVERT2ASCw
DGROUP:1B04                                         ; _$M_CONVERT2ASC+64r ...
DGROUP:1B06 $M_MSG_NUM      dw 0                    ; DATA XREF: SYSLOADMSG+83w
DGROUP:1B06                                         ; _$M_GET_MSG_ADDRESS:$MIF47w ...
DGROUP:1B08 $M_DIVISOR      dw 10                   ; DATA XREF: SYSLOADMSG+89w
DGROUP:1B08                                         ; _$M_CONVERT2ASC:$MDO145r ...
DGROUP:1B0A $M_TEMP_BUF     db '$$$$$$$'            ; DATA XREF: _$M_EXT_PAR_REPLACE+Fw
DGROUP:1B0A                                         ; _$M_EXT_PAR_REPLACE+23w ...
DGROUP:1B11 $M_THOU_SEPARA  db 39h dup('$')         ; DATA XREF: _$M_CONVERT2ASC+33r
DGROUP:1B11                                         ; _$M_CONVERT2ASC+45r ...
DGROUP:1B4A $M_BUF_TERM     db '$'                  ; DATA XREF: SYSLOADMSG+7Ew
DGROUP:1B4B
DGROUP:1B4B ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1B4B
DGROUP:1B4B
DGROUP:1B4B SYSLOADMSG      proc far                ; CODE XREF: _sysloadmsg+1CP
DGROUP:1B4B                 push    ax
DGROUP:1B4C                 push    bx
DGROUP:1B4D                 push    dx
DGROUP:1B4E                 push    es
DGROUP:1B4F                 push    di
DGROUP:1B50                 xor     cx, cx
DGROUP:1B52                 mov     es, cx
DGROUP:1B54                 assume es:seg000
DGROUP:1B54                 xor     di, di
DGROUP:1B56                 mov     ax, 122Eh
DGROUP:1B59                 mov     dl, 0
DGROUP:1B5B                 int     2Fh             ; Multiplex - DOS 3+ internal - GET OR SET ERROR TABLE ADDRESSES
DGROUP:1B5B                                         ; DL = subfunction - get standard DOS error table (errors 00h-12h,50h-5Bh)
DGROUP:1B5B                                         ; Return: ES:DI -> error table
DGROUP:1B5D                 mov     word ptr ds:$M_EXT_COMMAND+2, es
DGROUP:1B61                 mov     word ptr ds:$M_EXT_COMMAND, di
DGROUP:1B65                 mov     ax, 122Eh
DGROUP:1B68                 mov     dl, 2
DGROUP:1B6A                 int     2Fh             ; Multiplex - DOS 3+ internal - GET OR SET ERROR TABLE ADDRESSES
DGROUP:1B6A                                         ; DL = subfunction - get parameter error table (errors 00h-0Ah)
DGROUP:1B6A                                         ; ES:DI -> error table
DGROUP:1B6C                 mov     word ptr ds:$M_PARSE_COMMAND+2, es
DGROUP:1B70                 mov     word ptr ds:$M_PARSE_COMMAND, di
DGROUP:1B74                 mov     ax, 122Eh
DGROUP:1B77                 mov     dl, 4
DGROUP:1B79                 int     2Fh             ; Multiplex - DOS 3+ internal - GET OR SET ERROR TABLE ADDRESSES
DGROUP:1B79                                         ; DL = subfunction - get critical/SHARE error table (errors 13h-2Bh)
DGROUP:1B79                                         ; ES:DI -> error table
DGROUP:1B7B                 mov     word ptr ds:$M_CRIT_COMMAND+2, es
DGROUP:1B7F                 mov     word ptr ds:$M_CRIT_COMMAND, di
DGROUP:1B83                 mov     ax, 122Eh
DGROUP:1B86                 mov     dl, 6
DGROUP:1B88                 int     2Fh             ; Multiplex - DOS 3+ internal - GET OR SET ERROR TABLE ADDRESSES
DGROUP:1B88                                         ; DL = subfunction - get ??? error table
DGROUP:1B88                                         ; ES:DI -> error table
DGROUP:1B8A                 mov     word ptr ds:$M_EXT_FILE+2, es
DGROUP:1B8E                 mov     word ptr ds:$M_EXT_FILE, di
DGROUP:1B92                 call    _$M_CLS_1
DGROUP:1B97                 mov     word ptr ds:$M_EXT_ERR_ADDRS+2, es
DGROUP:1B9B                 mov     word ptr ds:$M_EXT_ERR_ADDRS, di
DGROUP:1B9F                 mov     word ptr ds:$M_CRIT_ADDRS+2, es
DGROUP:1BA3                 mov     word ptr ds:$M_CRIT_ADDRS, di
DGROUP:1BA7                 call    _$M_CLS_2
DGROUP:1BAC                 mov     word ptr ds:$M_PARSE_ADDRS+2, es
DGROUP:1BB0                 mov     word ptr ds:$M_PARSE_ADDRS, di
DGROUP:1BB4                 mov     ax, 122Eh
DGROUP:1BB7                 mov     dl, 8
DGROUP:1BB9                 int     2Fh             ; Multiplex - DOS 3+ internal - GET OR SET ERROR TABLE ADDRESSES
DGROUP:1BB9                                         ; DL = subfunction - get ??? error table
DGROUP:1BB9                                         ; Return: ES:DI -> error table
DGROUP:1BBB                 mov     word ptr ds:$M_DISK_PROC_ADDR+2, es
DGROUP:1BBF                 mov     word ptr ds:$M_DISK_PROC_ADDR, di
DGROUP:1BC3                 mov     ds:$M_CRLF, 0A0Dh
DGROUP:1BC9                 mov     ds:$M_BUF_TERM, '$'
DGROUP:1BCE                 mov     ds:$M_MSG_NUM, 0
DGROUP:1BD4                 mov     ds:$M_DIVISOR, 0Ah
DGROUP:1BDA                 call    _$M_CLS_A
DGROUP:1BDF                 mov     word ptr ds:$M_CLASS_A_ADDRS+2, es
DGROUP:1BE3                 mov     word ptr ds:$M_CLASS_A_ADDRS, di
DGROUP:1BE7                 call    _$M_CLS_B
DGROUP:1BEC                 mov     word ptr ds:$M_CLASS_B_ADDRS+2, es
DGROUP:1BF0                 mov     word ptr ds:$M_CLASS_B_ADDRS, di
DGROUP:1BF4                 call    _$M_GET_DBCS_VEC
DGROUP:1BF7                 call    _$M_CHECKSTDIN
DGROUP:1BFA                 call    _$M_CHECKSTDOUT
DGROUP:1BFD                 push    cx
DGROUP:1BFE                 call    _$M_VERSION_CHECK
DGROUP:1C01                 jb      short $MIF20
DGROUP:1C03                 pop     cx
DGROUP:1C04                 pop     di
DGROUP:1C05                 pop     es
DGROUP:1C06                 assume es:nothing
DGROUP:1C06                 pop     dx
DGROUP:1C07                 pop     bx
DGROUP:1C08                 pop     ax
DGROUP:1C09                 retf
DGROUP:1C0A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1C0A
DGROUP:1C0A $MIF20:                                 ; CODE XREF: SYSLOADMSG+B6j
DGROUP:1C0A                 add     sp, 12
DGROUP:1C0D                 stc
DGROUP:1C0E                 retf
DGROUP:1C0E SYSLOADMSG      endp
DGROUP:1C0E
DGROUP:1C0F
DGROUP:1C0F ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1C0F
DGROUP:1C0F
DGROUP:1C0F _$M_GET_DBCS_VEC proc near              ; CODE XREF: SYSLOADMSG+A9p
DGROUP:1C0F                 push    ax
DGROUP:1C10                 push    si
DGROUP:1C11                 push    ds
DGROUP:1C12                 mov     ax, 6300h
DGROUP:1C15                 int     21h             ; DOS - 3.2+ only - GET DOUBLE BYTE CHARACTER SET LEAD TABLE
DGROUP:1C17                 push    ds
DGROUP:1C18                 pop     es
DGROUP:1C19                 pop     ds
DGROUP:1C1A                 jb      short $MIF23
DGROUP:1C1C                 mov     word ptr ds:$M_DBCS_VEC, si
DGROUP:1C20                 mov     word ptr ds:$M_DBCS_VEC+2, es
DGROUP:1C24
DGROUP:1C24 $MIF23:                                 ; CODE XREF: _$M_GET_DBCS_VEC+Bj
DGROUP:1C24                 pop     si
DGROUP:1C25                 pop     ax
DGROUP:1C26                 retn
DGROUP:1C26 _$M_GET_DBCS_VEC endp
DGROUP:1C26
DGROUP:1C27
DGROUP:1C27 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1C27
DGROUP:1C27
DGROUP:1C27 _$M_CHECKSTDIN  proc near               ; CODE XREF: SYSLOADMSG+ACp
DGROUP:1C27                 mov     ax, 4400h
DGROUP:1C2A                 mov     bx, 0
DGROUP:1C2D                 cwd
DGROUP:1C2E                 int     21h             ; DOS - 2+ - IOCTL - GET DEVICE INFORMATION
DGROUP:1C2E                                         ; BX = file or device handle
DGROUP:1C30                 and     dh, 1
DGROUP:1C33                 or      dh, 1
DGROUP:1C36                 mov     ax, 4401h
DGROUP:1C39                 int     21h             ; DOS - 2+ - IOCTL - SET DEVICE INFORMATION
DGROUP:1C39                                         ; BX = device handle, DH = 0
DGROUP:1C39                                         ; DL = device information to set (bits 0-7 from function 0)
DGROUP:1C3B                 retn
DGROUP:1C3B _$M_CHECKSTDIN  endp
DGROUP:1C3B
DGROUP:1C3C
DGROUP:1C3C ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1C3C
DGROUP:1C3C
DGROUP:1C3C _$M_CHECKSTDOUT proc near               ; CODE XREF: SYSLOADMSG+AFp
DGROUP:1C3C                 mov     ax, 4400h
DGROUP:1C3F                 mov     bx, 1
DGROUP:1C42                 cwd
DGROUP:1C43                 int     21h             ; DOS - 2+ - IOCTL - GET DEVICE INFORMATION
DGROUP:1C43                                         ; BX = file or device handle
DGROUP:1C45                 or      dh, 1
DGROUP:1C48                 mov     ax, 4401h
DGROUP:1C4B                 int     21h             ; DOS - 2+ - IOCTL - SET DEVICE INFORMATION
DGROUP:1C4B                                         ; BX = device handle, DH = 0
DGROUP:1C4B                                         ; DL = device information to set (bits 0-7 from function 0)
DGROUP:1C4D                 retn
DGROUP:1C4D _$M_CHECKSTDOUT endp
DGROUP:1C4D
DGROUP:1C4E
DGROUP:1C4E ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1C4E
DGROUP:1C4E
DGROUP:1C4E _$M_VERSION_CHECK proc near             ; CODE XREF: SYSLOADMSG+B3p
DGROUP:1C4E                 mov     ah, 30h
DGROUP:1C50                 int     21h             ; DOS - GET DOS VERSION
DGROUP:1C50                                         ; Return: AL = major version number (00h for DOS 1.x)
DGROUP:1C52                 cmp     al, 5
DGROUP:1C54                 jb      short $MIF27
DGROUP:1C56                 clc
DGROUP:1C57                 retn
DGROUP:1C58 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1C58
DGROUP:1C58 $MIF27:                                 ; CODE XREF: _$M_VERSION_CHECK+6j
DGROUP:1C58                 mov     bx, 2
DGROUP:1C5B                 mov     ax, 1
DGROUP:1C5E                 mov     cx, 0
DGROUP:1C61                 mov     dx, 0FF00h
DGROUP:1C64                 stc
DGROUP:1C65                 retn
DGROUP:1C65 _$M_VERSION_CHECK endp
DGROUP:1C65
DGROUP:1C66
DGROUP:1C66 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1C66
DGROUP:1C66
DGROUP:1C66 SYSGETMSG       proc far                ; CODE XREF: _sysgetmsg+1CP
DGROUP:1C66                 push    ax
DGROUP:1C67                 push    es
DGROUP:1C68                 push    di
DGROUP:1C69                 push    bp
DGROUP:1C6A                 call    _$M_GET_MSG_ADDRESS
DGROUP:1C6F                 jb      short $MIF31
DGROUP:1C71                 cmp     dh, 0FFh
DGROUP:1C74                 clc
DGROUP:1C75                 jz      short $MIF32
DGROUP:1C77                 push    es
DGROUP:1C78                 pop     ds
DGROUP:1C79                 jmp     short $MEN32
DGROUP:1C7B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1C7B
DGROUP:1C7B $MIF32:                                 ; CODE XREF: SYSGETMSG+Fj
DGROUP:1C7B                 push    es
DGROUP:1C7C                 pop     ds
DGROUP:1C7D
DGROUP:1C7D $MEN32:                                 ; CODE XREF: SYSGETMSG+13j
DGROUP:1C7D                 mov     si, di
DGROUP:1C7F
DGROUP:1C7F $MIF31:                                 ; CODE XREF: SYSGETMSG+9j
DGROUP:1C7F                 pop     bp
DGROUP:1C80                 pop     di
DGROUP:1C81                 pop     es
DGROUP:1C82                 pop     ax
DGROUP:1C83                 retf
DGROUP:1C83 SYSGETMSG       endp
DGROUP:1C83
DGROUP:1C84
DGROUP:1C84 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1C84
DGROUP:1C84
DGROUP:1C84 _$M_GET_MSG_ADDRESS proc far            ; CODE XREF: SYSGETMSG+4P
DGROUP:1C84                                         ; SYSDISPMSG+11P
DGROUP:1C84
DGROUP:1C84 ; FUNCTION CHUNK AT DGROUP:1D1C SIZE 00000007 BYTES
DGROUP:1C84
DGROUP:1C84                 push    si
DGROUP:1C85                 push    bx
DGROUP:1C86                 xor     si, si
DGROUP:1C88                 xor     cx, cx
DGROUP:1C8A
DGROUP:1C8A $MDO36:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+65j
DGROUP:1C8A                 cmp     dh, 0FFh
DGROUP:1C8D                 jnz     short $MIF37
DGROUP:1C8F                 les     di, ds:$M_CLASS_A_ADDRS[si]
DGROUP:1C93                 mov     bx, es
DGROUP:1C95                 jmp     short $MEN37
DGROUP:1C97 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1C97
DGROUP:1C97 $MIF37:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+9j
DGROUP:1C97                 test    dh, 2
DGROUP:1C9A                 jz      short $MIF39
DGROUP:1C9C                 les     di, ds:$M_PARSE_COMMAND[si]
DGROUP:1CA0                 mov     bx, es
DGROUP:1CA2                 jmp     short $MEN37
DGROUP:1CA4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1CA4
DGROUP:1CA4 $MIF39:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+16j
DGROUP:1CA4                 cmp     ax, 13h
DGROUP:1CA7                 jb      short $MIF41
DGROUP:1CA9                 cmp     ax, 27h
DGROUP:1CAC                 ja      short $MIF41
DGROUP:1CAE                 les     di, ds:$M_CRIT_ADDRS[si]
DGROUP:1CB2                 mov     bx, es
DGROUP:1CB4                 jmp     short $MEN37
DGROUP:1CB6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1CB6
DGROUP:1CB6 $MIF41:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+23j
DGROUP:1CB6                                         ; _$M_GET_MSG_ADDRESS+28j
DGROUP:1CB6                 les     di, ds:$M_EXT_ERR_ADDRS[si]
DGROUP:1CBA                 mov     bx, es
DGROUP:1CBC
DGROUP:1CBC $MEN37:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+11j
DGROUP:1CBC                                         ; _$M_GET_MSG_ADDRESS+1Ej ...
DGROUP:1CBC                 cmp     bx, 0FFFFh
DGROUP:1CBF                 jnz     short $MIF46
DGROUP:1CC1                 cmp     dh, 0FFh
DGROUP:1CC4                 jnz     short $MIF47
DGROUP:1CC6                 stc
DGROUP:1CC7                 jmp     short $MEN47
DGROUP:1CC9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1CC9
DGROUP:1CC9 $MIF47:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+40j
DGROUP:1CC9                 mov     ds:$M_MSG_NUM, ax
DGROUP:1CCC                 mov     ax, 0FFFFh
DGROUP:1CCF                 mov     bp, 1
DGROUP:1CD2                 xor     si, si
DGROUP:1CD4                 clc
DGROUP:1CD5
DGROUP:1CD5 $MEN47:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+43j
DGROUP:1CD5                 jmp     short $MEN46
DGROUP:1CD7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1CD7
DGROUP:1CD7 $MIF46:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+3Bj
DGROUP:1CD7                 cmp     bx, 0
DGROUP:1CDA                 jz      short $MIF51
DGROUP:1CDC                 call    _$M_FIND_SPECIFIED_MSG
DGROUP:1CDF
DGROUP:1CDF $MIF51:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+56j
DGROUP:1CDF                 add     si, 4
DGROUP:1CE2                 clc
DGROUP:1CE3
DGROUP:1CE3 $MEN46:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS:$MEN47j
DGROUP:1CE3                 jb      short $MEN36
DGROUP:1CE5                 or      cx, cx
DGROUP:1CE7                 jnz     short $MEN36
DGROUP:1CE9                 jmp     short $MDO36
DGROUP:1CEB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1CEB
DGROUP:1CEB $MEN36:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS:$MEN46j
DGROUP:1CEB                                         ; _$M_GET_MSG_ADDRESS+63j
DGROUP:1CEB                 pushf
DGROUP:1CEC                 cmp     dh, 1
DGROUP:1CEF                 jnz     short $MIF56
DGROUP:1CF1                 push    dx
DGROUP:1CF2                 push    bp
DGROUP:1CF3                 push    cx
DGROUP:1CF4                 push    es
DGROUP:1CF5                 push    di
DGROUP:1CF6                 push    ax
DGROUP:1CF7                 mov     ax, 500h
DGROUP:1CFA                 int     2Fh             ; Multiplex - DOS 3+ CRITICAL ERROR HANDLER - INSTALLATION CHECK
DGROUP:1CFA                                         ; Return: AL = 00h not installed, OK to install
DGROUP:1CFA                                         ; 01h not installed, can't install
DGROUP:1CFA                                         ; FFh installed
DGROUP:1CFC                 cmp     al, 0FFh
DGROUP:1CFE                 pop     ax
DGROUP:1CFF                 jnz     short $MIF57
DGROUP:1D01                 xchg    ax, bx
DGROUP:1D02                 mov     ax, 502h
DGROUP:1D05                 int     2Fh             ; Multiplex - DOS 3+ CRITICAL ERROR HANDLER -
DGROUP:1D07                 jmp     short $MEN57
DGROUP:1D09 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D09
DGROUP:1D09 $MIF57:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+7Bj
DGROUP:1D09                 stc
DGROUP:1D0A
DGROUP:1D0A $MEN57:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+83j
DGROUP:1D0A                 jnb     short $MIF60
DGROUP:1D0C                 pop     di
DGROUP:1D0D                 pop     es
DGROUP:1D0E                 pop     cx
DGROUP:1D0F                 jmp     short $MEN60
DGROUP:1D11 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D11
DGROUP:1D11 $MIF60:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS:$MEN57j
DGROUP:1D11                 add     sp, 6
DGROUP:1D14                 call    _$M_SET_LEN_IN_CX
DGROUP:1D17
DGROUP:1D17 $MEN60:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+8Bj
DGROUP:1D17                 pop     bp
DGROUP:1D18                 pop     dx
DGROUP:1D19
DGROUP:1D19 $MIF56:                                 ; CODE XREF: _$M_GET_MSG_ADDRESS+6Bj
DGROUP:1D19                 jmp     short loc_A7EC
DGROUP:1D19 _$M_GET_MSG_ADDRESS endp
DGROUP:1D19
DGROUP:1D1B
DGROUP:1D1B ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1D1B
DGROUP:1D1B
DGROUP:1D1B _$M_MYRET       proc far                ; CODE XREF: _$M_GET_MSG_ADDRESS+99p
DGROUP:1D1B                 iret
DGROUP:1D1B _$M_MYRET       endp
DGROUP:1D1B
DGROUP:1D1C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D1C ; START OF FUNCTION CHUNK FOR _$M_GET_MSG_ADDRESS
DGROUP:1D1C
DGROUP:1D1C loc_A7EC:                               ; CODE XREF: _$M_GET_MSG_ADDRESS:$MIF56j
DGROUP:1D1C                 push    cs
DGROUP:1D1D                 call    near ptr _$M_MYRET
DGROUP:1D20                 pop     bx
DGROUP:1D21                 pop     si
DGROUP:1D22                 retf
DGROUP:1D22 ; END OF FUNCTION CHUNK FOR _$M_GET_MSG_ADDRESS
DGROUP:1D23
DGROUP:1D23 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1D23
DGROUP:1D23
DGROUP:1D23 _$M_SET_LEN_IN_CX proc near             ; CODE XREF: _$M_GET_MSG_ADDRESS+90p
DGROUP:1D23                 push    di
DGROUP:1D24                 push    ax
DGROUP:1D25                 mov     cx, -1
DGROUP:1D28                 xor     al, al
DGROUP:1D2A                 repne scasb
DGROUP:1D2C                 not     cx
DGROUP:1D2E                 dec     cx
DGROUP:1D2F                 pop     ax
DGROUP:1D30                 pop     di
DGROUP:1D31                 retn
DGROUP:1D31 _$M_SET_LEN_IN_CX endp
DGROUP:1D31
DGROUP:1D32
DGROUP:1D32 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1D32
DGROUP:1D32
DGROUP:1D32 _$M_FIND_SPECIFIED_MSG proc near        ; CODE XREF: _$M_GET_MSG_ADDRESS+58p
DGROUP:1D32                 cmp     bx, 1
DGROUP:1D35                 jnz     short $MIF64
DGROUP:1D37                 cmp     word ptr ds:$M_DISK_PROC_ADDR, 0FFFFh
DGROUP:1D3C                 jz      short $MIF64
DGROUP:1D3E                 cmp     ax, 0FFFFh
DGROUP:1D41                 jnz     short $MIF65
DGROUP:1D43                 push    ax
DGROUP:1D44                 mov     ax, ds:$M_MSG_NUM
DGROUP:1D47                 call    ds:$M_DISK_PROC_ADDR
DGROUP:1D4B                 pop     ax
DGROUP:1D4C                 jmp     short $MEN65
DGROUP:1D4E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D4E
DGROUP:1D4E $MIF65:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+Fj
DGROUP:1D4E                 call    ds:$M_DISK_PROC_ADDR
DGROUP:1D52
DGROUP:1D52 $MEN65:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+1Aj
DGROUP:1D52                 jmp     short $MEN64
DGROUP:1D54 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D54
DGROUP:1D54 $MIF64:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+3j
DGROUP:1D54                                         ; _$M_FIND_SPECIFIED_MSG+Aj
DGROUP:1D54                 xor     cx, cx
DGROUP:1D56                 cmp     dh, 0FFh
DGROUP:1D59                 jz      short $MIF69
DGROUP:1D5B                 mov     cl, es:[di+3]
DGROUP:1D5F                 jmp     short $MEN69
DGROUP:1D61 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D61
DGROUP:1D61 $MIF69:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+27j
DGROUP:1D61                 cmp     es:[di], dh
DGROUP:1D64                 jnz     short $MEN69
DGROUP:1D66                 mov     cl, es:[di+3]
DGROUP:1D6A
DGROUP:1D6A $MEN69:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+2Dj
DGROUP:1D6A                                         ; _$M_FIND_SPECIFIED_MSG+32j
DGROUP:1D6A                 add     di, 4
DGROUP:1D6D                 stc
DGROUP:1D6E
DGROUP:1D6E $MEN64:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG:$MEN65j
DGROUP:1D6E                 jnb     short $MIF86
DGROUP:1D70                 clc
DGROUP:1D71
DGROUP:1D71 $MDO76:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+5Aj
DGROUP:1D71                 or      cx, cx
DGROUP:1D73                 jz      short $MEN76
DGROUP:1D75                 cmp     dh, 0FFh
DGROUP:1D78                 jz      short $MIF78
DGROUP:1D7A                 cmp     ax, es:[di]
DGROUP:1D7D                 jmp     short $MEN78
DGROUP:1D7F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D7F
DGROUP:1D7F $MIF78:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+46j
DGROUP:1D7F                 cmp     ax, es:[di]
DGROUP:1D82
DGROUP:1D82 $MEN78:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+4Bj
DGROUP:1D82                 jnz     short $MIF76
DGROUP:1D84                 jmp     short $MSR76
DGROUP:1D86 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D86
DGROUP:1D86 $MIF76:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG:$MEN78j
DGROUP:1D86                 dec     cx
DGROUP:1D87                 jz      short $MEN76
DGROUP:1D89                 add     di, 4
DGROUP:1D8C                 jmp     short $MDO76
DGROUP:1D8E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1D8E
DGROUP:1D8E $MEN76:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+41j
DGROUP:1D8E                                         ; _$M_FIND_SPECIFIED_MSG+55j
DGROUP:1D8E                 stc
DGROUP:1D8F
DGROUP:1D8F $MSR76:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG+52j
DGROUP:1D8F                 jb      short $MIF86
DGROUP:1D91                 cmp     dh, 0FFh
DGROUP:1D94                 clc
DGROUP:1D95                 jnz     short $+2
DGROUP:1D97
DGROUP:1D97 $MIF87:
DGROUP:1D97                 add     di, es:[di+2]
DGROUP:1D9B
DGROUP:1D9B $MIF86:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG:$MEN64j
DGROUP:1D9B                                         ; _$M_FIND_SPECIFIED_MSG:$MSR76j
DGROUP:1D9B                 jb      short $MIF91
DGROUP:1D9D                 xor     ch, ch
DGROUP:1D9F                 mov     cl, es:[di]
DGROUP:1DA2                 inc     di
DGROUP:1DA3
DGROUP:1DA3 $MIF91:                                 ; CODE XREF: _$M_FIND_SPECIFIED_MSG:$MIF86j
DGROUP:1DA3                 mov     ds:$M_SIZE, 0
DGROUP:1DA8                 retn
DGROUP:1DA8 _$M_FIND_SPECIFIED_MSG endp
DGROUP:1DA8
DGROUP:1DA9
DGROUP:1DA9 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1DA9
DGROUP:1DA9
DGROUP:1DA9 SYSDISPMSG      proc far                ; CODE XREF: _sysdispmsg+1CP
DGROUP:1DA9                 push    ax
DGROUP:1DAA                 push    bx
DGROUP:1DAB                 push    cx
DGROUP:1DAC                 push    bp
DGROUP:1DAD                 push    di
DGROUP:1DAE                 push    es
DGROUP:1DAF                 push    dx
DGROUP:1DB0                 mov     bp, cx
DGROUP:1DB2                 mov     ds:$M_HANDLE, bx
DGROUP:1DB6                 mov     ds:$M_CLASS, dh
DGROUP:1DBA                 call    _$M_GET_MSG_ADDRESS
DGROUP:1DBF                 or      cx, cx
DGROUP:1DC1                 jz      short $MIF93
DGROUP:1DC3                 or      bp, bp
DGROUP:1DC5                 jnz     short $MIF94
DGROUP:1DC7                 call    _$M_DISPLAY_STRING
DGROUP:1DCA                 jmp     short $MEN94
DGROUP:1DCC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1DCC
DGROUP:1DCC $MIF94:                                 ; CODE XREF: SYSDISPMSG+1Cj
DGROUP:1DCC                 call    _$M_DISPLAY_MESSAGE
DGROUP:1DCF
DGROUP:1DCF $MEN94:                                 ; CODE XREF: SYSDISPMSG+21j
DGROUP:1DCF                 jb      short $MIF97
DGROUP:1DD1                 pop     dx
DGROUP:1DD2                 call    _$M_ADD_CRLF
DGROUP:1DD5                 pop     es
DGROUP:1DD6                 pop     di
DGROUP:1DD7                 jmp     short $MEN97
DGROUP:1DD9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1DD9
DGROUP:1DD9 $MIF97:                                 ; CODE XREF: SYSDISPMSG:$MEN94j
DGROUP:1DD9                 add     sp, 6
DGROUP:1DDC                 stc
DGROUP:1DDD
DGROUP:1DDD $MEN97:                                 ; CODE XREF: SYSDISPMSG+2Ej
DGROUP:1DDD                 jmp     short $MEN93
DGROUP:1DDF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1DDF
DGROUP:1DDF $MIF93:                                 ; CODE XREF: SYSDISPMSG+18j
DGROUP:1DDF                 pop     es
DGROUP:1DE0                 pop     di
DGROUP:1DE1                 pop     dx
DGROUP:1DE2                 stc
DGROUP:1DE3
DGROUP:1DE3 $MEN93:                                 ; CODE XREF: SYSDISPMSG:$MEN97j
DGROUP:1DE3                 jb      short $MIF104
DGROUP:1DE5                 pop     bp
DGROUP:1DE6                 pop     cx
DGROUP:1DE7                 pop     bx
DGROUP:1DE8                 pop     ax
DGROUP:1DE9                 jmp     short $MEN104
DGROUP:1DEB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1DEB
DGROUP:1DEB $MIF104:                                ; CODE XREF: SYSDISPMSG:$MEN93j
DGROUP:1DEB                 add     sp, 8
DGROUP:1DEE                 stc
DGROUP:1DEF
DGROUP:1DEF $MEN104:                                ; CODE XREF: SYSDISPMSG+40j
DGROUP:1DEF                 retf
DGROUP:1DEF SYSDISPMSG      endp
DGROUP:1DEF
DGROUP:1DF0
DGROUP:1DF0 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1DF0
DGROUP:1DF0
DGROUP:1DF0 _$M_DISPLAY_STRING proc near            ; CODE XREF: SYSDISPMSG+1Ep
DGROUP:1DF0                                         ; _$M_ADD_CRLF+13p ...
DGROUP:1DF0                 push    ax
DGROUP:1DF1                 push    bx
DGROUP:1DF2                 push    dx
DGROUP:1DF3                 mov     bx, ds:$M_HANDLE
DGROUP:1DF7                 cmp     bx, 0FFFFh
DGROUP:1DFA                 jnz     short $MIF107
DGROUP:1DFC                 call    _$M_DISPLAY_$_STRING
DGROUP:1DFF                 jmp     short $MEN107
DGROUP:1E01 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1E01
DGROUP:1E01 $MIF107:                                ; CODE XREF: _$M_DISPLAY_STRING+Aj
DGROUP:1E01                 call    _$M_DISPLAY_H_STRING
DGROUP:1E04
DGROUP:1E04 $MEN107:                                ; CODE XREF: _$M_DISPLAY_STRING+Fj
DGROUP:1E04                 jnb     short $MIF110
DGROUP:1E06                 mov     ah, 59h
DGROUP:1E08                 mov     bx, 0
DGROUP:1E0B                 int     21h             ; DOS - 3+ - GET EXTENDED ERROR CODE
DGROUP:1E0B                                         ; BX = version code (0000h for DOS 3.x)
DGROUP:1E0D                 xor     ah, ah
DGROUP:1E0F                 add     sp, 6
DGROUP:1E12                 stc
DGROUP:1E13                 jmp     short $MIF112
DGROUP:1E15 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1E15
DGROUP:1E15 $MIF110:                                ; CODE XREF: _$M_DISPLAY_STRING:$MEN107j
DGROUP:1E15                 cmp     bx, 0FFFFh
DGROUP:1E18                 jz      short $MIF112
DGROUP:1E1A                 cmp     ax, cx
DGROUP:1E1C                 jz      short $MIF112
DGROUP:1E1E                 call    _$M_GET_EXT_ERR_39
DGROUP:1E21                 add     sp, 6
DGROUP:1E24                 stc
DGROUP:1E25
DGROUP:1E25 $MIF112:                                ; CODE XREF: _$M_DISPLAY_STRING+23j
DGROUP:1E25                                         ; _$M_DISPLAY_STRING+28j ...
DGROUP:1E25                 jb      short $MIF117
DGROUP:1E27                 pop     dx
DGROUP:1E28                 pop     bx
DGROUP:1E29                 pop     ax
DGROUP:1E2A
DGROUP:1E2A $MIF117:                                ; CODE XREF: _$M_DISPLAY_STRING:$MIF112j
DGROUP:1E2A                 retn
DGROUP:1E2A _$M_DISPLAY_STRING endp ; sp =  6
DGROUP:1E2A
DGROUP:1E2B
DGROUP:1E2B ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1E2B
DGROUP:1E2B
DGROUP:1E2B _$M_DISPLAY_$_STRING proc near          ; CODE XREF: _$M_DISPLAY_STRING+Cp
DGROUP:1E2B                 push    ds
DGROUP:1E2C                 push    es
DGROUP:1E2D                 pop     ds
DGROUP:1E2E                 cmp     cx, 1
DGROUP:1E31                 jnz     short $MIF119
DGROUP:1E33                 mov     ah, 2
DGROUP:1E35                 mov     dl, es:[di]
DGROUP:1E38                 int     21h             ; DOS - DISPLAY OUTPUT
DGROUP:1E38                                         ; DL = character to send to standard output
DGROUP:1E3A                 pop     ds
DGROUP:1E3B                 mov     al, dl
DGROUP:1E3D                 call    _$M_IS_IT_DBCS
DGROUP:1E40                 push    ds
DGROUP:1E41                 push    es
DGROUP:1E42                 pop     ds
DGROUP:1E43                 jnb     short $MIF120
DGROUP:1E45                 mov     dl, es:[di+1]
DGROUP:1E49                 int     21h             ; DOS -
DGROUP:1E4B                 clc
DGROUP:1E4C
DGROUP:1E4C $MIF120:                                ; CODE XREF: _$M_DISPLAY_$_STRING+18j
DGROUP:1E4C                 jmp     short $MEN119
DGROUP:1E4E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1E4E
DGROUP:1E4E $MIF119:                                ; CODE XREF: _$M_DISPLAY_$_STRING+6j
DGROUP:1E4E                 mov     ah, 2
DGROUP:1E50
DGROUP:1E50 $MDO123:                                ; CODE XREF: _$M_DISPLAY_$_STRING+2Fj
DGROUP:1E50                 or      cx, cx
DGROUP:1E52                 jz      short $MEN119
DGROUP:1E54                 mov     dl, es:[di]
DGROUP:1E57                 int     21h             ; DOS - DISPLAY OUTPUT
DGROUP:1E57                                         ; DL = character to send to standard output
DGROUP:1E59                 inc     di
DGROUP:1E5A                 loop    $MDO123
DGROUP:1E5C
DGROUP:1E5C $MEN119:                                ; CODE XREF: _$M_DISPLAY_$_STRING:$MIF120j
DGROUP:1E5C                                         ; _$M_DISPLAY_$_STRING+27j
DGROUP:1E5C                 clc
DGROUP:1E5D                 pop     ds
DGROUP:1E5E                 retn
DGROUP:1E5E _$M_DISPLAY_$_STRING endp
DGROUP:1E5E
DGROUP:1E5F
DGROUP:1E5F ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1E5F
DGROUP:1E5F
DGROUP:1E5F Scan_CtrlZ      proc near               ; CODE XREF: _$M_DISPLAY_H_STRING+3Cp
DGROUP:1E5F                 push    di
DGROUP:1E60                 push    ax
DGROUP:1E61                 push    es
DGROUP:1E62                 push    bx
DGROUP:1E63                 mov     di, dx
DGROUP:1E65                 push    ds
DGROUP:1E66                 pop     es
DGROUP:1E67                 mov     bx, cx
DGROUP:1E69                 mov     al, 1Ah
DGROUP:1E6B                 cld
DGROUP:1E6C                 repne scasb
DGROUP:1E6E                 jnz     short noCtrlZ
DGROUP:1E70                 sub     bx, cx
DGROUP:1E72                 dec     bx
DGROUP:1E73
DGROUP:1E73 noCtrlZ:                                ; CODE XREF: Scan_CtrlZ+Fj
DGROUP:1E73                 mov     cx, bx
DGROUP:1E75                 pop     bx
DGROUP:1E76                 pop     es
DGROUP:1E77                 pop     ax
DGROUP:1E78                 pop     di
DGROUP:1E79                 retn
DGROUP:1E79 Scan_CtrlZ      endp
DGROUP:1E79
DGROUP:1E7A
DGROUP:1E7A ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1E7A
DGROUP:1E7A
DGROUP:1E7A _$M_DISPLAY_H_STRING proc near          ; CODE XREF: _$M_DISPLAY_STRING:$MIF107p
DGROUP:1E7A
DGROUP:1E7A ; FUNCTION CHUNK AT DGROUP:1EAE SIZE 00000020 BYTES
DGROUP:1E7A
DGROUP:1E7A                 xor     ax, ax
DGROUP:1E7C                 or      cx, cx
DGROUP:1E7E                 jz      short $MIF127
DGROUP:1E80                 push    ds
DGROUP:1E81                 push    es
DGROUP:1E82                 pop     ds
DGROUP:1E83                 mov     ah, 40h
DGROUP:1E85                 mov     dx, di
DGROUP:1E87                 cmp     cx, 1
DGROUP:1E8A                 jnz     short $MIF128
DGROUP:1E8C                 int     21h             ; DOS - 2+ - WRITE TO FILE WITH HANDLE
DGROUP:1E8C                                         ; BX = file handle, CX = number of bytes to write, DS:DX -> buffer
DGROUP:1E8E                 pop     ds
DGROUP:1E8F                 push    ax
DGROUP:1E90                 mov     al, es:[di]
DGROUP:1E93                 call    _$M_IS_IT_DBCS
DGROUP:1E96                 pop     ax
DGROUP:1E97                 push    ds
DGROUP:1E98                 push    es
DGROUP:1E99                 pop     ds
DGROUP:1E9A                 jnb     short $MIF129
DGROUP:1E9C                 clc
DGROUP:1E9D                 mov     ah, 40h
DGROUP:1E9F                 inc     dx
DGROUP:1EA0                 int     21h             ; DOS - 2+ - WRITE TO FILE WITH HANDLE
DGROUP:1EA0                                         ; BX = file handle, CX = number of bytes to write, DS:DX -> buffer
DGROUP:1EA2
DGROUP:1EA2 $MIF129:                                ; CODE XREF: _$M_DISPLAY_H_STRING+20j
DGROUP:1EA2                 pushf
DGROUP:1EA3                 cmp     byte ptr es:[di], 1Ah
DGROUP:1EA7                 jnz     short $MEN129
DGROUP:1EA9                 mov     ax, cx
DGROUP:1EAB
DGROUP:1EAB $MEN129:                                ; CODE XREF: _$M_DISPLAY_H_STRING+2Dj
DGROUP:1EAB                 jmp     short loc_A97E
DGROUP:1EAB _$M_DISPLAY_H_STRING endp
DGROUP:1EAB
DGROUP:1EAD
DGROUP:1EAD ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1EAD
DGROUP:1EAD
DGROUP:1EAD _$M_Mret        proc far                ; CODE XREF: _$M_DISPLAY_H_STRING+35p
DGROUP:1EAD                 iret
DGROUP:1EAD _$M_Mret        endp
DGROUP:1EAD
DGROUP:1EAE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1EAE ; START OF FUNCTION CHUNK FOR _$M_DISPLAY_H_STRING
DGROUP:1EAE
DGROUP:1EAE loc_A97E:                               ; CODE XREF: _$M_DISPLAY_H_STRING:$MEN129j
DGROUP:1EAE                 push    cs
DGROUP:1EAF                 call    near ptr _$M_Mret
DGROUP:1EB2                 jmp     short $MEN128
DGROUP:1EB4 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1EB4
DGROUP:1EB4 $MIF128:                                ; CODE XREF: _$M_DISPLAY_H_STRING+10j
DGROUP:1EB4                 push    bp
DGROUP:1EB5                 push    cx
DGROUP:1EB6                 call    Scan_CtrlZ
DGROUP:1EB9                 mov     bp, cx
DGROUP:1EBB                 pop     cx
DGROUP:1EBC                 int     21h             ; DOS -
DGROUP:1EBE                 jb      short m_cnt_ok
DGROUP:1EC0
DGROUP:1EC0 chk_count:
DGROUP:1EC0                 cmp     cx, ax
DGROUP:1EC2                 jz      short m_cnt_ok
DGROUP:1EC4                 cmp     bp, ax
DGROUP:1EC6                 clc
DGROUP:1EC7                 jnz     short m_cnt_ok
DGROUP:1EC9                 mov     ax, cx
DGROUP:1ECB
DGROUP:1ECB m_cnt_ok:                               ; CODE XREF: _$M_DISPLAY_H_STRING+44j
DGROUP:1ECB                                         ; _$M_DISPLAY_H_STRING+48j ...
DGROUP:1ECB                 pop     bp
DGROUP:1ECC
DGROUP:1ECC $MEN128:                                ; CODE XREF: _$M_DISPLAY_H_STRING+38j
DGROUP:1ECC                 pop     ds
DGROUP:1ECD
DGROUP:1ECD $MIF127:                                ; CODE XREF: _$M_DISPLAY_H_STRING+4j
DGROUP:1ECD                 retn
DGROUP:1ECD ; END OF FUNCTION CHUNK FOR _$M_DISPLAY_H_STRING
DGROUP:1ECE
DGROUP:1ECE ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1ECE
DGROUP:1ECE
DGROUP:1ECE _$M_GET_EXT_ERR_39 proc near            ; CODE XREF: _$M_DISPLAY_STRING+2Ep
DGROUP:1ECE                 mov     ax, 39
DGROUP:1ED1                 mov     bx, 4
DGROUP:1ED4                 mov     ch, 1
DGROUP:1ED6                 retn
DGROUP:1ED6 _$M_GET_EXT_ERR_39 endp
DGROUP:1ED6
DGROUP:1ED7
DGROUP:1ED7 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1ED7
DGROUP:1ED7
DGROUP:1ED7 _$M_ADD_CRLF    proc near               ; CODE XREF: SYSDISPMSG+29p
DGROUP:1ED7                 cmp     dh, 0FFh
DGROUP:1EDA                 jz      short $MIF135
DGROUP:1EDC                 test    dh, 80h
DGROUP:1EDF                 jnz     short $MIF135
DGROUP:1EE1                 push    ds
DGROUP:1EE2                 pop     es
DGROUP:1EE3                 lea     di, $M_CRLF
DGROUP:1EE7                 mov     cx, 2
DGROUP:1EEA                 call    _$M_DISPLAY_STRING
DGROUP:1EED
DGROUP:1EED $MIF135:                                ; CODE XREF: _$M_ADD_CRLF+3j
DGROUP:1EED                                         ; _$M_ADD_CRLF+8j
DGROUP:1EED                 retn
DGROUP:1EED _$M_ADD_CRLF    endp
DGROUP:1EED
DGROUP:1EEE
DGROUP:1EEE ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1EEE
DGROUP:1EEE
DGROUP:1EEE _$M_IS_IT_DBCS  proc near               ; CODE XREF: _$M_DISPLAY_$_STRING+12p
DGROUP:1EEE                                         ; _$M_DISPLAY_H_STRING+19p ...
DGROUP:1EEE                 push    es
DGROUP:1EEF                 push    di
DGROUP:1EF0                 les     di, ds:$M_DBCS_VEC
DGROUP:1EF4                 or      di, di
DGROUP:1EF6                 jz      short $MIF138
DGROUP:1EF8
DGROUP:1EF8 $MDO139:                                ; CODE XREF: _$M_IS_IT_DBCS+1Fj
DGROUP:1EF8                 cmp     word ptr es:[di], 0
DGROUP:1EFC                 clc
DGROUP:1EFD                 jz      short $MIF138
DGROUP:1EFF                 cmp     al, es:[di]
DGROUP:1F02                 jb      short $MIF141
DGROUP:1F04                 cmp     al, es:[di+1]
DGROUP:1F08                 ja      short $MIF141
DGROUP:1F0A                 stc
DGROUP:1F0B
DGROUP:1F0B $MIF141:                                ; CODE XREF: _$M_IS_IT_DBCS+14j
DGROUP:1F0B                                         ; _$M_IS_IT_DBCS+1Aj
DGROUP:1F0B                 inc     di
DGROUP:1F0C                 inc     di
DGROUP:1F0D                 jmp     short $MDO139
DGROUP:1F0F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1F0F
DGROUP:1F0F $MIF138:                                ; CODE XREF: _$M_IS_IT_DBCS+8j
DGROUP:1F0F                                         ; _$M_IS_IT_DBCS+Fj
DGROUP:1F0F                 pop     di
DGROUP:1F10                 pop     es
DGROUP:1F11                 retn
DGROUP:1F11 _$M_IS_IT_DBCS  endp
DGROUP:1F11
DGROUP:1F12
DGROUP:1F12 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1F12
DGROUP:1F12
DGROUP:1F12 _$M_CONVERT2ASC proc near               ; CODE XREF: _$M_EXT_PAR_REPLACE+Bp
DGROUP:1F12                                         ; _$M_BIN2ASC_REPLACE+AEp ...
DGROUP:1F12                 pop     ds:$M_RETURN_ADDR
DGROUP:1F16                 xor     bx, bx
DGROUP:1F18                 xchg    ax, bx
DGROUP:1F19                 xchg    ax, dx
DGROUP:1F1A
DGROUP:1F1A $MDO145:                                ; CODE XREF: _$M_CONVERT2ASC+5Fj
DGROUP:1F1A                 div     ds:$M_DIVISOR
DGROUP:1F1E                 xchg    ax, bx
DGROUP:1F1F                 div     ds:$M_DIVISOR
DGROUP:1F23                 cmp     dx, 9
DGROUP:1F26                 jbe     short $MIF146
DGROUP:1F28                 add     dl, 37h
DGROUP:1F2B                 jmp     short $MEN146
DGROUP:1F2D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1F2D
DGROUP:1F2D $MIF146:                                ; CODE XREF: _$M_CONVERT2ASC+14j
DGROUP:1F2D                 add     dl, '0'
DGROUP:1F30
DGROUP:1F30 $MEN146:                                ; CODE XREF: _$M_CONVERT2ASC+19j
DGROUP:1F30                 push    dx
DGROUP:1F31                 inc     cx
DGROUP:1F32                 or      ax, ax
DGROUP:1F34                 jnz     short $MLL149
DGROUP:1F36                 or      bx, bx
DGROUP:1F38                 jz      short $MEN145
DGROUP:1F3A
DGROUP:1F3A $MLL149:                                ; CODE XREF: _$M_CONVERT2ASC+22j
DGROUP:1F3A                 cmp     cx, 3
DGROUP:1F3D                 jnz     short $MIF150
DGROUP:1F3F                 cmp     byte ptr [si+0Ah], ','
DGROUP:1F43                 jnz     short $MIF151
DGROUP:1F45                 push    word ptr ds:$M_THOU_SEPARA
DGROUP:1F49                 inc     cx
DGROUP:1F4A
DGROUP:1F4A $MIF151:                                ; CODE XREF: _$M_CONVERT2ASC+31j
DGROUP:1F4A                 jmp     short $MEN150
DGROUP:1F4C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1F4C
DGROUP:1F4C $MIF150:                                ; CODE XREF: _$M_CONVERT2ASC+2Bj
DGROUP:1F4C                 cmp     cx, 7
DGROUP:1F4F                 jnz     short $MIF154
DGROUP:1F51                 cmp     byte ptr [si+0Ah], ','
DGROUP:1F55                 jnz     short $MIF155
DGROUP:1F57                 push    word ptr ds:$M_THOU_SEPARA
DGROUP:1F5B                 inc     cx
DGROUP:1F5C
DGROUP:1F5C $MIF155:                                ; CODE XREF: _$M_CONVERT2ASC+43j
DGROUP:1F5C                 jmp     short $MEN150
DGROUP:1F5E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1F5E
DGROUP:1F5E $MIF154:                                ; CODE XREF: _$M_CONVERT2ASC+3Dj
DGROUP:1F5E                 cmp     cx, 11
DGROUP:1F61                 jnz     short $MEN150
DGROUP:1F63                 cmp     byte ptr [si+0Ah], ','
DGROUP:1F67                 jnz     short $MEN150
DGROUP:1F69                 push    word ptr ds:$M_THOU_SEPARA
DGROUP:1F6D                 inc     cx
DGROUP:1F6E
DGROUP:1F6E $MEN150:                                ; CODE XREF: _$M_CONVERT2ASC:$MIF151j
DGROUP:1F6E                                         ; _$M_CONVERT2ASC:$MIF155j ...
DGROUP:1F6E                 xchg    ax, bx
DGROUP:1F6F                 xor     dx, dx
DGROUP:1F71                 jmp     short $MDO145
DGROUP:1F73 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1F73
DGROUP:1F73 $MEN145:                                ; CODE XREF: _$M_CONVERT2ASC+26j
DGROUP:1F73                 xor     ax, ax
DGROUP:1F75                 cwd
DGROUP:1F76                 push    ds:$M_RETURN_ADDR
DGROUP:1F7A                 retn
DGROUP:1F7A _$M_CONVERT2ASC endp ; sp = -2
DGROUP:1F7A
DGROUP:1F7B
DGROUP:1F7B ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:1F7B
DGROUP:1F7B
DGROUP:1F7B _$M_DISPLAY_MESSAGE proc near           ; CODE XREF: SYSDISPMSG:$MIF94p
DGROUP:1F7B                                         ; _$M_DISPLAY_MESSAGE+E9j
DGROUP:1F7B                 xor     dx, dx
DGROUP:1F7D                 or      cx, cx
DGROUP:1F7F                 jz      short $MEN167
DGROUP:1F81                 mov     ax, 2500h
DGROUP:1F84
DGROUP:1F84 $MDO167:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+23j
DGROUP:1F84                 cmp     es:[di], ah
DGROUP:1F87                 jnz     short $MLL168
DGROUP:1F89                 cmp     es:[di+1], ah
DGROUP:1F8D                 jz      short $MLL168
DGROUP:1F8F                 cmp     al, ah
DGROUP:1F91                 jnz     short $MEN167
DGROUP:1F93
DGROUP:1F93 $MLL168:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+Cj
DGROUP:1F93                                         ; _$M_DISPLAY_MESSAGE+12j
DGROUP:1F93                 mov     al, es:[di]
DGROUP:1F96                 call    _$M_IS_IT_DBCS
DGROUP:1F99                 jnb     short $MIF169
DGROUP:1F9B                 inc     di
DGROUP:1F9C
DGROUP:1F9C $MIF169:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+1Ej
DGROUP:1F9C                 inc     di
DGROUP:1F9D                 inc     dx
DGROUP:1F9E                 loop    $MDO167
DGROUP:1FA0
DGROUP:1FA0 $MEN167:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+4j
DGROUP:1FA0                                         ; _$M_DISPLAY_MESSAGE+16j
DGROUP:1FA0                 push    si
DGROUP:1FA1                 xchg    cx, dx
DGROUP:1FA3                 or      bp, bp
DGROUP:1FA5                 jz      short $MSR175
DGROUP:1FA7                 dec     bp
DGROUP:1FA8                 cmp     ds:$M_MSG_NUM, 0
DGROUP:1FAD                 jnz     short $MSR175
DGROUP:1FAF
DGROUP:1FAF $MDO175:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+4Bj
DGROUP:1FAF                 mov     al, [si+6]
DGROUP:1FB2                 add     al, '0'
DGROUP:1FB4                 cmp     al, es:[di+1]
DGROUP:1FB8                 jnz     short $MIF175
DGROUP:1FBA                 jmp     short $MSR175
DGROUP:1FBC ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1FBC
DGROUP:1FBC $MIF175:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+3Dj
DGROUP:1FBC                 cmp     al, '0'
DGROUP:1FBE                 jnz     short $MLL178
DGROUP:1FC0                 or      dx, dx
DGROUP:1FC2                 jz      short $MEN175
DGROUP:1FC4
DGROUP:1FC4 $MLL178:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+43j
DGROUP:1FC4                 add     si, [si]
DGROUP:1FC6                 jmp     short $MDO175
DGROUP:1FC8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1FC8
DGROUP:1FC8 $MEN175:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+47j
DGROUP:1FC8                 cmp     ds:$M_CLASS, 0FFh
DGROUP:1FCD                 jnz     short $MIF180
DGROUP:1FCF                 inc     dx
DGROUP:1FD0                 inc     dx
DGROUP:1FD1                 dec     cx
DGROUP:1FD2                 dec     cx
DGROUP:1FD3                 dec     di
DGROUP:1FD4                 dec     di
DGROUP:1FD5                 jmp     short $MSR175
DGROUP:1FD7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1FD7
DGROUP:1FD7 $MIF180:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+52j
DGROUP:1FD7                 mov     dx, -1
DGROUP:1FDA
DGROUP:1FDA $MSR175:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+2Aj
DGROUP:1FDA                                         ; _$M_DISPLAY_MESSAGE+32j ...
DGROUP:1FDA                 push    di
DGROUP:1FDB                 sub     di, cx
DGROUP:1FDD                 call    _$M_DISPLAY_STRING
DGROUP:1FE0                 pop     di
DGROUP:1FE1                 pop     cx
DGROUP:1FE2                 jnb     short $MXL3
DGROUP:1FE4                 jmp     $MEN165
DGROUP:1FE7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1FE7
DGROUP:1FE7 $MXL3:                                  ; CODE XREF: _$M_DISPLAY_MESSAGE+67j
DGROUP:1FE7                 push    cx
DGROUP:1FE8                 mov     cx, dx
DGROUP:1FEA                 cmp     byte ptr [si+6], 0
DGROUP:1FEE                 jz      short $MIF187
DGROUP:1FF0                 or      cx, cx
DGROUP:1FF2                 jz      short $MIF188
DGROUP:1FF4                 dec     cx
DGROUP:1FF5                 dec     cx
DGROUP:1FF6                 inc     di
DGROUP:1FF7                 inc     di
DGROUP:1FF8                 jmp     short $MEN188
DGROUP:1FFA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1FFA
DGROUP:1FFA $MIF188:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+77j
DGROUP:1FFA                 pop     si
DGROUP:1FFB
DGROUP:1FFB $MEN188:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+7Dj
DGROUP:1FFB                 jmp     short $MEN187
DGROUP:1FFD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:1FFD
DGROUP:1FFD $MIF187:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+73j
DGROUP:1FFD                 or      cx, cx
DGROUP:1FFF                 jnz     short $MIF192
DGROUP:2001                 pop     si
DGROUP:2002                 jmp     short $MEN187
DGROUP:2004 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2004
DGROUP:2004 $MIF192:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+84j
DGROUP:2004                 cmp     cx, 0FFFFh
DGROUP:2007                 jnz     short $MIF194
DGROUP:2009                 xor     cx, cx
DGROUP:200B
DGROUP:200B $MIF194:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+8Cj
DGROUP:200B                 or      di, di
DGROUP:200D
DGROUP:200D $MEN187:                                ; CODE XREF: _$M_DISPLAY_MESSAGE:$MEN188j
DGROUP:200D                                         ; _$M_DISPLAY_MESSAGE+87j
DGROUP:200D                 jz      short $MEN165
DGROUP:200F                 push    bp
DGROUP:2010                 push    di
DGROUP:2011                 push    es
DGROUP:2012                 push    cx
DGROUP:2013                 xor     cx, cx
DGROUP:2015                 cmp     ds:$M_MSG_NUM, 0
DGROUP:201A                 jnz     short $MIF199
DGROUP:201C                 test    byte ptr [si+7], 0Fh
DGROUP:2020                 jnz     short $MIF200
DGROUP:2022                 les     di, [si+2]
DGROUP:2025                 call    _$M_CHAR_REPLACE
DGROUP:2028                 jmp     short $MIF202
DGROUP:202A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:202A
DGROUP:202A $MIF200:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+A5j
DGROUP:202A                 test    byte ptr [si+7], 0Dh
DGROUP:202E                 jz      short $MLL202
DGROUP:2030                 test    byte ptr [si+7], 0Eh
DGROUP:2034                 jz      short $MLL202
DGROUP:2036                 test    byte ptr [si+7], 0Ch
DGROUP:203A                 jnz     short $MIF202
DGROUP:203C
DGROUP:203C $MLL202:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+B3j
DGROUP:203C                                         ; _$M_DISPLAY_MESSAGE+B9j
DGROUP:203C                 les     di, [si+2]
DGROUP:203F                 call    _$M_BIN2ASC_REPLACE
DGROUP:2042                 jmp     short $+2
DGROUP:2044
DGROUP:2044 $MIF202:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+ADj
DGROUP:2044                                         ; _$M_DISPLAY_MESSAGE+BFj
DGROUP:2044                 call    _$M_DISPLAY_REPLACE
DGROUP:2047                 jmp     short $MEN199
DGROUP:2049 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2049
DGROUP:2049 $MIF199:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+9Fj
DGROUP:2049                 call    _$M_EXT_PAR_REPLACE
DGROUP:204C
DGROUP:204C $MEN199:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+CCj
DGROUP:204C                 jb      short $MIF211
DGROUP:204E                 pop     cx
DGROUP:204F                 pop     es
DGROUP:2050                 pop     di
DGROUP:2051                 pop     bp
DGROUP:2052                 pop     si
DGROUP:2053                 jmp     short $MEN211
DGROUP:2055 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2055
DGROUP:2055 $MIF211:                                ; CODE XREF: _$M_DISPLAY_MESSAGE:$MEN199j
DGROUP:2055                 add     sp, 10
DGROUP:2058                 stc
DGROUP:2059                 jmp     short $MEN165
DGROUP:205B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:205B
DGROUP:205B $MEN211:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+D8j
DGROUP:205B                 cmp     ds:$M_MSG_NUM, 0
DGROUP:2060                 jnz     short $MEN165
DGROUP:2062                 jb      short $MEN165
DGROUP:2064                 jmp     _$M_DISPLAY_MESSAGE
DGROUP:2067 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2067
DGROUP:2067 $MEN165:                                ; CODE XREF: _$M_DISPLAY_MESSAGE+69j
DGROUP:2067                                         ; _$M_DISPLAY_MESSAGE:$MEN187j ...
DGROUP:2067                 mov     ds:$M_MSG_NUM, 0
DGROUP:206D                 retn
DGROUP:206D _$M_DISPLAY_MESSAGE endp
DGROUP:206D
DGROUP:206E
DGROUP:206E ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:206E
DGROUP:206E
DGROUP:206E _$M_EXT_PAR_REPLACE proc near           ; CODE XREF: _$M_DISPLAY_MESSAGE:$MIF199p
DGROUP:206E                 xor     dx, dx
DGROUP:2070                 mov     ax, ds:$M_MSG_NUM
DGROUP:2073                 mov     ds:$M_DIVISOR, 10
DGROUP:2079                 call    _$M_CONVERT2ASC
DGROUP:207C
DGROUP:207C $MDO215:                                ; CODE XREF: _$M_EXT_PAR_REPLACE+1Ej
DGROUP:207C                 pop     ax
DGROUP:207D                 mov     byte ptr ds:$M_TEMP_BUF[bx], al ; "$$$$$$$"
DGROUP:2081                 inc     bx
DGROUP:2082                 cmp     bx, 64
DGROUP:2085                 jnz     short $MIF216
DGROUP:2087                 call    _$M_FLUSH_BUF
DGROUP:208A
DGROUP:208A $MIF216:                                ; CODE XREF: _$M_EXT_PAR_REPLACE+17j
DGROUP:208A                 dec     cl
DGROUP:208C                 jnz     short $MDO215
DGROUP:208E                 mov     ax, 0A0Dh
DGROUP:2091                 mov     word ptr ds:$M_TEMP_BUF[bx], ax ; "$$$$$$$"
DGROUP:2095                 inc     bx
DGROUP:2096                 inc     bx
DGROUP:2097                 call    _$M_FLUSH_BUF
DGROUP:209A                 retn
DGROUP:209A _$M_EXT_PAR_REPLACE endp ; sp =  2
DGROUP:209A
DGROUP:209B
DGROUP:209B ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:209B
DGROUP:209B
DGROUP:209B _$M_DISPLAY_REPLACE proc near           ; CODE XREF: _$M_DISPLAY_MESSAGE:$MIF202p
DGROUP:209B                 xor     bx, bx
DGROUP:209D                 cmp     byte ptr [si+6], 0
DGROUP:20A1                 jnz     short $MIF276
DGROUP:20A3                 mov     word ptr ds:$M_TEMP_BUF[bx], 2D20h ; "$$$$$$$"
DGROUP:20A9                 inc     bx
DGROUP:20AA                 inc     bx
DGROUP:20AB                 mov     byte ptr ds:$M_TEMP_BUF[bx], ' ' ; "$$$$$$$"
DGROUP:20B0                 inc     bx
DGROUP:20B1                 call    _$M_FLUSH_BUF
DGROUP:20B4
DGROUP:20B4 $MIF276:                                ; CODE XREF: _$M_DISPLAY_REPLACE+6j
DGROUP:20B4                 pop     bp
DGROUP:20B5                 xor     bx, bx
DGROUP:20B7                 xor     dx, dx
DGROUP:20B9                 mov     ds:$M_SIZE, cl
DGROUP:20BD                 mov     al, [si+9]
DGROUP:20C0                 cmp     al, cl
DGROUP:20C2                 jbe     short $MIF278
DGROUP:20C4                 sub     al, cl
DGROUP:20C6                 mov     dh, al
DGROUP:20C8                 test    byte ptr [si+7], 80h
DGROUP:20CC                 jz      short $MIF278
DGROUP:20CE
DGROUP:20CE $MDO280:                                ; CODE XREF: _$M_DISPLAY_REPLACE+45j
DGROUP:20CE                 mov     al, [si+0Ah]
DGROUP:20D1                 mov     byte ptr ds:$M_TEMP_BUF[bx], al ; "$$$$$$$"
DGROUP:20D5                 inc     bx
DGROUP:20D6                 cmp     bx, 64
DGROUP:20D9                 jnz     short $MIF281
DGROUP:20DB                 call    _$M_FLUSH_BUF
DGROUP:20DE
DGROUP:20DE $MIF281:                                ; CODE XREF: _$M_DISPLAY_REPLACE+3Ej
DGROUP:20DE                 dec     dh
DGROUP:20E0                 jnz     short $MDO280
DGROUP:20E2
DGROUP:20E2 $MIF278:                                ; CODE XREF: _$M_DISPLAY_REPLACE+27j
DGROUP:20E2                                         ; _$M_DISPLAY_REPLACE+31j
DGROUP:20E2                 cmp     byte ptr [si+8], 0
DGROUP:20E6                 jz      short $MIF286
DGROUP:20E8                 cmp     [si+8], cl
DGROUP:20EB                 jnb     short $MIF286
DGROUP:20ED                 sub     cl, [si+8]
DGROUP:20F0                 mov     dl, cl
DGROUP:20F2                 mov     cl, [si+8]
DGROUP:20F5
DGROUP:20F5 $MIF286:                                ; CODE XREF: _$M_DISPLAY_REPLACE+4Bj
DGROUP:20F5                                         ; _$M_DISPLAY_REPLACE+50j
DGROUP:20F5                 or      cx, cx
DGROUP:20F7                 jz      short $MIF290
DGROUP:20F9
DGROUP:20F9 $MDO291:                                ; CODE XREF: _$M_DISPLAY_REPLACE+80j
DGROUP:20F9                 test    byte ptr [si+7], 0Fh
DGROUP:20FD                 jnz     short $MIF292
DGROUP:20FF                 test    byte ptr [si+7], 10h
DGROUP:2103                 jz      short $MIF292
DGROUP:2105                 mov     al, es:[di]
DGROUP:2108                 inc     di
DGROUP:2109                 jmp     short $MEN292
DGROUP:210B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:210B
DGROUP:210B $MIF292:                                ; CODE XREF: _$M_DISPLAY_REPLACE+62j
DGROUP:210B                                         ; _$M_DISPLAY_REPLACE+68j
DGROUP:210B                 pop     ax
DGROUP:210C
DGROUP:210C $MEN292:                                ; CODE XREF: _$M_DISPLAY_REPLACE+6Ej
DGROUP:210C                 mov     byte ptr ds:$M_TEMP_BUF[bx], al ; "$$$$$$$"
DGROUP:2110                 inc     bx
DGROUP:2111                 cmp     bx, 64
DGROUP:2114                 jnz     short $MIF295
DGROUP:2116                 call    _$M_FLUSH_BUF
DGROUP:2119
DGROUP:2119 $MIF295:                                ; CODE XREF: _$M_DISPLAY_REPLACE+79j
DGROUP:2119                 dec     cl
DGROUP:211B                 jnz     short $MDO291
DGROUP:211D
DGROUP:211D $MIF290:                                ; CODE XREF: _$M_DISPLAY_REPLACE+5Cj
DGROUP:211D                 test    byte ptr [si+7], 80h
DGROUP:2121                 jnz     short $MIF299
DGROUP:2123                 or      dh, dh
DGROUP:2125                 jz      short $MIF299
DGROUP:2127
DGROUP:2127 $MDO301:                                ; CODE XREF: _$M_DISPLAY_REPLACE+9Ej
DGROUP:2127                 mov     al, [si+0Ah]
DGROUP:212A                 mov     byte ptr ds:$M_TEMP_BUF[bx], al ; "$$$$$$$"
DGROUP:212E                 inc     bx
DGROUP:212F                 cmp     bx, 64
DGROUP:2132                 jnz     short $MIF302
DGROUP:2134                 call    _$M_FLUSH_BUF
DGROUP:2137
DGROUP:2137 $MIF302:                                ; CODE XREF: _$M_DISPLAY_REPLACE+97j
DGROUP:2137                 dec     dh
DGROUP:2139                 jnz     short $MDO301
DGROUP:213B
DGROUP:213B $MIF299:                                ; CODE XREF: _$M_DISPLAY_REPLACE+86j
DGROUP:213B                                         ; _$M_DISPLAY_REPLACE+8Aj
DGROUP:213B                 test    byte ptr [si+7], 0Fh
DGROUP:213F                 jnz     short $MIF307
DGROUP:2141                 test    byte ptr [si+7], 10h
DGROUP:2145                 jz      short $MIF307
DGROUP:2147                 jmp     short $MEN307
DGROUP:2149 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2149
DGROUP:2149 $MIF307:                                ; CODE XREF: _$M_DISPLAY_REPLACE+A4j
DGROUP:2149                                         ; _$M_DISPLAY_REPLACE+AAj
DGROUP:2149                 or      dl, dl
DGROUP:214B                 jz      short $MEN307
DGROUP:214D
DGROUP:214D $MDO310:                                ; CODE XREF: _$M_DISPLAY_REPLACE+B8j
DGROUP:214D                 pop     ds:$M_RETURN_ADDR
DGROUP:2151                 dec     dl
DGROUP:2153                 jnz     short $MDO310
DGROUP:2155
DGROUP:2155 $MEN307:                                ; CODE XREF: _$M_DISPLAY_REPLACE+ACj
DGROUP:2155                                         ; _$M_DISPLAY_REPLACE+B0j
DGROUP:2155                 call    _$M_FLUSH_BUF
DGROUP:2158                 push    bp
DGROUP:2159                 retn
DGROUP:2159 _$M_DISPLAY_REPLACE endp ; sp =  4
DGROUP:2159
DGROUP:215A
DGROUP:215A ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:215A
DGROUP:215A
DGROUP:215A _$M_FLUSH_BUF   proc near               ; CODE XREF: _$M_EXT_PAR_REPLACE+19p
DGROUP:215A                                         ; _$M_EXT_PAR_REPLACE+29p ...
DGROUP:215A                 push    cx
DGROUP:215B                 push    es
DGROUP:215C                 push    di
DGROUP:215D                 push    ds
DGROUP:215E                 pop     es
DGROUP:215F                 mov     cx, bx
DGROUP:2161                 xor     bx, bx
DGROUP:2163                 lea     di, $M_TEMP_BUF ; "$$$$$$$"
DGROUP:2167                 call    _$M_DISPLAY_STRING
DGROUP:216A                 jb      short $MIF314
DGROUP:216C                 pop     di
DGROUP:216D                 pop     es
DGROUP:216E                 pop     cx
DGROUP:216F                 retn
DGROUP:2170 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2170
DGROUP:2170 $MIF314:                                ; CODE XREF: _$M_FLUSH_BUF+10j
DGROUP:2170                 add     sp, 6
DGROUP:2173                 stc
DGROUP:2174                 retn
DGROUP:2174 _$M_FLUSH_BUF   endp
DGROUP:2174
DGROUP:2175
DGROUP:2175 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:2175
DGROUP:2175
DGROUP:2175 _$M_CHAR_REPLACE proc near              ; CODE XREF: _$M_DISPLAY_MESSAGE+AAp
DGROUP:2175                 pop     bp
DGROUP:2176                 test    byte ptr [si+7], 30h
DGROUP:217A                 jnz     short $MDO321
DGROUP:217C                 mov     al, es:[di]
DGROUP:217F                 push    ax
DGROUP:2180                 inc     cx
DGROUP:2181                 call    _$M_IS_IT_DBCS
DGROUP:2184                 jnb     short $MIF318
DGROUP:2186                 mov     al, es:[di+1]
DGROUP:218A                 push    ax
DGROUP:218B                 clc
DGROUP:218C
DGROUP:218C $MIF318:                                ; CODE XREF: _$M_CHAR_REPLACE+Fj
DGROUP:218C                 jmp     short $MEN317
DGROUP:218E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:218E
DGROUP:218E $MDO321:                                ; CODE XREF: _$M_CHAR_REPLACE+5j
DGROUP:218E                                         ; _$M_CHAR_REPLACE+22j
DGROUP:218E                 mov     al, es:[di]
DGROUP:2191                 or      al, al
DGROUP:2193                 jz      short $MEN321
DGROUP:2195                 inc     di
DGROUP:2196                 inc     cx
DGROUP:2197                 jmp     short $MDO321
DGROUP:2199 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2199
DGROUP:2199 $MEN321:                                ; CODE XREF: _$M_CHAR_REPLACE+1Ej
DGROUP:2199                 sub     di, cx
DGROUP:219B
DGROUP:219B $MEN317:                                ; CODE XREF: _$M_CHAR_REPLACE:$MIF318j
DGROUP:219B                 push    bp
DGROUP:219C                 retn
DGROUP:219C _$M_CHAR_REPLACE endp
DGROUP:219C
DGROUP:219D
DGROUP:219D ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:219D
DGROUP:219D
DGROUP:219D _$M_BIN2ASC_REPLACE proc near           ; CODE XREF: _$M_DISPLAY_MESSAGE+C4p
DGROUP:219D                 pop     bp
DGROUP:219E                 xor     ax, ax
DGROUP:21A0                 cwd
DGROUP:21A1                 mov     ds:$M_DIVISOR, 16
DGROUP:21A7                 xor     bx, bx
DGROUP:21A9                 test    byte ptr [si+7], 20h
DGROUP:21AD                 jnz     short $MIF325
DGROUP:21AF                 mov     al, es:[di]
DGROUP:21B2                 test    byte ptr [si+7], 0Dh
DGROUP:21B6                 jnz     short $MIF326
DGROUP:21B8                 test    al, 80h
DGROUP:21BA                 jz      short $MIF327
DGROUP:21BC                 inc     bx
DGROUP:21BD                 and     al, 7Fh
DGROUP:21BF
DGROUP:21BF $MIF327:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+1Dj
DGROUP:21BF                 mov     ds:$M_DIVISOR, 10
DGROUP:21C5
DGROUP:21C5 $MIF326:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+19j
DGROUP:21C5                 test    byte ptr [si+7], 0Eh
DGROUP:21C9                 jnz     short $MIF330
DGROUP:21CB                 mov     ds:$M_DIVISOR, 10
DGROUP:21D1
DGROUP:21D1 $MIF330:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+2Cj
DGROUP:21D1                 jmp     short $MIF345
DGROUP:21D3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:21D3
DGROUP:21D3 $MIF325:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+10j
DGROUP:21D3                 test    byte ptr [si+7], 10h
DGROUP:21D7                 jnz     short $MIF333
DGROUP:21D9                 mov     ax, es:[di]
DGROUP:21DC                 test    byte ptr [si+7], 0Dh
DGROUP:21E0                 jnz     short $MIF334
DGROUP:21E2                 test    ah, 80h
DGROUP:21E5                 jz      short $MIF335
DGROUP:21E7                 inc     bx
DGROUP:21E8                 and     ah, 7Fh
DGROUP:21EB
DGROUP:21EB $MIF335:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+48j
DGROUP:21EB                 mov     ds:$M_DIVISOR, 10
DGROUP:21F1
DGROUP:21F1 $MIF334:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+43j
DGROUP:21F1                 test    byte ptr [si+7], 0Eh
DGROUP:21F5                 jnz     short $MIF338
DGROUP:21F7                 mov     ds:$M_DIVISOR, 10
DGROUP:21FD
DGROUP:21FD $MIF338:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+58j
DGROUP:21FD                 jmp     short $MIF345
DGROUP:21FF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:21FF
DGROUP:21FF $MIF333:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+3Aj
DGROUP:21FF                 mov     ax, es:[di]
DGROUP:2202                 mov     dx, es:[di+2]
DGROUP:2206                 test    byte ptr [si+7], 0Dh
DGROUP:220A                 jnz     short $MIF341
DGROUP:220C                 test    dh, 80h
DGROUP:220F                 jz      short $MIF342
DGROUP:2211                 inc     bx
DGROUP:2212                 and     dh, 7Fh
DGROUP:2215
DGROUP:2215 $MIF342:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+72j
DGROUP:2215                 mov     ds:$M_DIVISOR, 10
DGROUP:221B
DGROUP:221B $MIF341:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+6Dj
DGROUP:221B                 test    byte ptr [si+7], 0Eh
DGROUP:221F                 jnz     short $MIF345
DGROUP:2221                 mov     ds:$M_DIVISOR, 10
DGROUP:2227
DGROUP:2227 $MIF345:                                ; CODE XREF: _$M_BIN2ASC_REPLACE:$MIF330j
DGROUP:2227                                         ; _$M_BIN2ASC_REPLACE:$MIF338j ...
DGROUP:2227                 test    byte ptr [si+7], 40h
DGROUP:222B                 jz      short $MIF346
DGROUP:222D                 push    ax
DGROUP:222E                 push    dx
DGROUP:222F                 mov     ah, 38h
DGROUP:2231                 xor     al, al
DGROUP:2233                 lea     dx, $M_TEMP_BUF ; "$$$$$$$"
DGROUP:2237                 int     21h             ; DOS - 2+ - GET COUNTRY-DEPENDENT INFORMATION
DGROUP:2237                                         ; get current-country info
DGROUP:2237                                         ; DS:DX -> buffer for returned info
DGROUP:2239                 jnb     short $MEN325
DGROUP:223B                 mov     ds:$M_THOU_SEPARA, ','
DGROUP:2240
DGROUP:2240 $MEN325:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+9Cj
DGROUP:2240                 mov     al, [si+0Ah]
DGROUP:2243                 mov     di, ax
DGROUP:2245                 pop     dx
DGROUP:2246                 pop     ax
DGROUP:2247                 mov     byte ptr [si+0Ah], ','
DGROUP:224B                 call    _$M_CONVERT2ASC
DGROUP:224E                 mov     ax, di
DGROUP:2250                 mov     [si+0Ah], al
DGROUP:2253                 jmp     short $MIF347
DGROUP:2255 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2255
DGROUP:2255 $MIF346:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+8Ej
DGROUP:2255                 call    _$M_CONVERT2ASC
DGROUP:2258
DGROUP:2258 $MIF347:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+B6j
DGROUP:2258                 or      bx, bx
DGROUP:225A                 jz      short $MIF349
DGROUP:225C                 mov     dx, '-'
DGROUP:225F                 push    dx
DGROUP:2260
DGROUP:2260 $MIF349:                                ; CODE XREF: _$M_BIN2ASC_REPLACE+BDj
DGROUP:2260                 push    bp
DGROUP:2261                 retn
DGROUP:2261 _$M_BIN2ASC_REPLACE endp ; sp = -2
DGROUP:2261
DGROUP:2261 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2262 CLASS_A_msg_tbl db 0FFh                 ; DATA XREF: _$M_CLS_A+2o
DGROUP:2263                 dw 7
DGROUP:2265                 db 9
DGROUP:2266                 dw 1
DGROUP:2268                 dw 24h
DGROUP:226A                 dw 2
DGROUP:226C                 dw 38h
DGROUP:226E                 dw 3
DGROUP:2270                 dw 4Bh
DGROUP:2272                 dw 8
DGROUP:2274                 dw 64h
DGROUP:2276                 dw 9
DGROUP:2278                 dw 74h
DGROUP:227A                 dw 10
DGROUP:227C                 dw 73h
DGROUP:227E                 dw 300
DGROUP:2280                 dw 72h
DGROUP:2282                 dw 301
DGROUP:2284                 dw 9Eh
DGROUP:2286                 dw 302
DGROUP:2288                 dw 0AEh
DGROUP:228A aIncorrectDosVersion db 17h,'Incorrect DOS version',0Dh,0Ah
DGROUP:22A2 a1AlreadyInstalled db 16h,'%1 already installed',0Dh,0Ah
DGROUP:22B9 a1BytesAvailableOnDisk db 1Ch,'%1 bytes available on disk',0Dh,0Ah
DGROUP:22D6 aInvalidParameter db 13h,'Invalid parameter',0Dh,0Ah
DGROUP:22EA                 db 2
DGROUP:22EB yes             db 'Y',0
DGROUP:22ED                 db 2
DGROUP:22EE no              db 'N',0
DGROUP:22F0 options_msg     db 2Fh
DGROUP:22F1 aConfiguresAHardDiskForUseWithPcDos db 'Configures a hard disk for use with PC DOS.',0Dh,0Ah
DGROUP:22F1                 db 0Dh,0Ah
DGROUP:2320 fdisk_st_row    db 13h
DGROUP:2321 aFdiskStatus    db 'FDISK [/STATUS]'
DGROUP:2330                 db 0Dh, 0Ah
DGROUP:2332                 db 0Dh, 0Ah
DGROUP:2334 stats_desc_row  db 3Dh
DGROUP:2335 aStatusDisplaysTheStatusOfTheFixedD db '    /STATUS     Displays the status of the fixed disk drive',0Dh,0Ah
DGROUP:2372
DGROUP:2372 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:2372
DGROUP:2372
DGROUP:2372 _$M_CLS_A       proc far                ; CODE XREF: SYSLOADMSG+8FP
DGROUP:2372                 push    cs
DGROUP:2373                 pop     es
DGROUP:2374                 assume es:DGROUP
DGROUP:2374                 lea     di, CLASS_A_msg_tbl
DGROUP:2378                 add     cx, 278
DGROUP:237C                 retf
DGROUP:237C _$M_CLS_A       endp
DGROUP:237C
DGROUP:237C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:237D CLASS_B_msg_tbl db 0FFh                 ; DATA XREF: _$M_CLS_B+2o
DGROUP:237E                 dw 7
DGROUP:2380                 db 5
DGROUP:2381                 dw 4
DGROUP:2383                 dw 14h
DGROUP:2385                 dw 5
DGROUP:2387                 dw 33h
DGROUP:2389                 dw 6
DGROUP:238B                 dw 48h
DGROUP:238D                 dw 7
DGROUP:238F                 dw 5Fh
DGROUP:2391                 dw 11
DGROUP:2393                 dw 76h
DGROUP:2395                 db 22h
DGROUP:2396 aCannotFdiskWithNetworkLoaded db 'Cannot FDISK with network loaded',0Dh,0Ah
DGROUP:23B8                 db 18h
DGROUP:23B9 aNoFixedDisksPresent db 'No fixed disks present',0Dh,0Ah
DGROUP:23D1                 db 1Ah
DGROUP:23D2 aErrorReadingFixedDisk db 'Error reading fixed disk',0Dh,0Ah
DGROUP:23EC                 db 1Ah
DGROUP:23ED aErrorWritingFixedDisk db 'Error writing fixed disk',0Dh,0Ah
DGROUP:2407                 db 2Ch
DGROUP:2408 aTheMasterBootCodeHasNotBeenUpdated db 'The master boot code has NOT been updated.',0Dh,0Ah
DGROUP:2434
DGROUP:2434 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:2434
DGROUP:2434
DGROUP:2434 _$M_CLS_B       proc far                ; CODE XREF: SYSLOADMSG+9CP
DGROUP:2434                 push    cs
DGROUP:2435                 pop     es
DGROUP:2436                 lea     di, CLASS_B_msg_tbl
DGROUP:243A                 add     cx, 189
DGROUP:243E                 retf
DGROUP:243E _$M_CLS_B       endp
DGROUP:243E
DGROUP:243E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:243F CLASS_1_msg_tbl db 1                    ; DATA XREF: _$M_CLS_1+2o
DGROUP:2440                 dw 7
DGROUP:2442                 db 1
DGROUP:2443                 dw 0FFFFh
DGROUP:2445                 dw 4
DGROUP:2447 _EXT_ERR_CLASS  db 17
DGROUP:2448 aExtendedError1 db 'Extended Error %1'
DGROUP:2459
DGROUP:2459 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:2459
DGROUP:2459
DGROUP:2459 _$M_CLS_1       proc far                ; CODE XREF: SYSLOADMSG+47P
DGROUP:2459                 push    cs
DGROUP:245A                 pop     es
DGROUP:245B                 lea     di, CLASS_1_msg_tbl
DGROUP:245F                 add     cx, 32
DGROUP:2462                 retf
DGROUP:2462 _$M_CLS_1       endp
DGROUP:2462
DGROUP:2462 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:2463 CLASS_2_msg_tbl db 2                    ; DATA XREF: _$M_CLS_2+2o
DGROUP:2464                 dw 7
DGROUP:2466                 db 1
DGROUP:2467                 dw 0FFFFh
DGROUP:2469                 dw 4
DGROUP:246B _PARSE_ERR_CLASS db 14
DGROUP:246C aParseError1    db 'Parse Error %1'
DGROUP:247A
DGROUP:247A ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:247A
DGROUP:247A
DGROUP:247A _$M_CLS_2       proc far                ; CODE XREF: SYSLOADMSG+5CP
DGROUP:247A                 push    cs
DGROUP:247B                 pop     es
DGROUP:247C                 lea     di, CLASS_2_msg_tbl
DGROUP:2480                 add     cx, 29
DGROUP:2483                 retf
DGROUP:2483 _$M_CLS_2       endp
DGROUP:2483
DGROUP:2484
DGROUP:2484 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:2484
DGROUP:2484 ; Attributes: bp-based frame
DGROUP:2484
DGROUP:2484 _sysloadmsg     proc far                ; CODE XREF: sysloadmsgP
DGROUP:2484
DGROUP:2484 arg_2           = word ptr  8
DGROUP:2484 arg_4           = word ptr  0Ah
DGROUP:2484
DGROUP:2484                 push    bp
DGROUP:2485                 mov     bp, sp
DGROUP:2487                 push    di
DGROUP:2488                 push    si
DGROUP:2489                 mov     di, [bp+arg_2]
DGROUP:248C                 mov     ax, [di+10]
DGROUP:248F                 push    ax
DGROUP:2490                 mov     ax, [di]
DGROUP:2492                 mov     bx, [di+2]
DGROUP:2495                 mov     cx, [di+4]
DGROUP:2498                 mov     dx, [di+6]
DGROUP:249B                 mov     si, [di+8]
DGROUP:249E                 pop     di
DGROUP:249F                 push    bp
DGROUP:24A0                 call    SYSLOADMSG
DGROUP:24A5                 pop     bp
DGROUP:24A6                 push    di
DGROUP:24A7                 mov     di, [bp+arg_4]
DGROUP:24AA                 mov     [di], ax
DGROUP:24AC                 mov     [di+2], bx
DGROUP:24AF                 mov     [di+4], cx
DGROUP:24B2                 mov     [di+6], dx
DGROUP:24B5                 mov     [di+8], si
DGROUP:24B8                 lahf
DGROUP:24B9                 mov     al, ah
DGROUP:24BB                 mov     [di+12], ax
DGROUP:24BE                 pop     ax
DGROUP:24BF                 mov     [di+10], ax
DGROUP:24C2                 pop     si
DGROUP:24C3                 pop     di
DGROUP:24C4                 mov     sp, bp
DGROUP:24C6                 pop     bp
DGROUP:24C7                 retf
DGROUP:24C7 _sysloadmsg     endp
DGROUP:24C7
DGROUP:24C8
DGROUP:24C8 ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:24C8
DGROUP:24C8 ; Attributes: bp-based frame
DGROUP:24C8
DGROUP:24C8 _sysdispmsg     proc far                ; CODE XREF: sysdispmsgP
DGROUP:24C8
DGROUP:24C8 arg_2           = word ptr  8
DGROUP:24C8 arg_4           = word ptr  0Ah
DGROUP:24C8
DGROUP:24C8                 push    bp
DGROUP:24C9                 mov     bp, sp
DGROUP:24CB                 push    di
DGROUP:24CC                 push    si
DGROUP:24CD                 mov     di, [bp+arg_2]
DGROUP:24D0                 mov     ax, [di+0Ah]
DGROUP:24D3                 push    ax
DGROUP:24D4                 mov     ax, [di]
DGROUP:24D6                 mov     bx, [di+2]
DGROUP:24D9                 mov     cx, [di+4]
DGROUP:24DC                 mov     dx, [di+6]
DGROUP:24DF                 mov     si, [di+8]
DGROUP:24E2                 pop     di
DGROUP:24E3                 push    bp
DGROUP:24E4                 call    SYSDISPMSG
DGROUP:24E9                 pop     bp
DGROUP:24EA                 push    di
DGROUP:24EB                 mov     di, [bp+arg_4]
DGROUP:24EE                 mov     [di], ax
DGROUP:24F0                 mov     [di+2], bx
DGROUP:24F3                 mov     [di+4], cx
DGROUP:24F6                 mov     [di+6], dx
DGROUP:24F9                 mov     [di+8], si
DGROUP:24FC                 lahf
DGROUP:24FD                 mov     al, ah
DGROUP:24FF                 mov     [di+0Ch], ax
DGROUP:2502                 pop     ax
DGROUP:2503                 mov     [di+0Ah], ax
DGROUP:2506                 pop     si
DGROUP:2507                 pop     di
DGROUP:2508                 mov     sp, bp
DGROUP:250A                 pop     bp
DGROUP:250B                 retf
DGROUP:250B _sysdispmsg     endp
DGROUP:250B
DGROUP:250C
DGROUP:250C ; --------------- S U B R O U T I N E ---------------------------------------
DGROUP:250C
DGROUP:250C ; Attributes: bp-based frame
DGROUP:250C
DGROUP:250C _sysgetmsg      proc far                ; CODE XREF: sysgetmsgP
DGROUP:250C
DGROUP:250C arg_2           = word ptr  8
DGROUP:250C arg_4           = word ptr  0Ah
DGROUP:250C arg_6           = word ptr  0Ch
DGROUP:250C
DGROUP:250C                 push    bp
DGROUP:250D                 mov     bp, sp
DGROUP:250F                 push    di
DGROUP:2510                 push    si
DGROUP:2511                 mov     di, [bp+arg_2]
DGROUP:2514                 mov     ax, [di+0Ah]
DGROUP:2517                 push    ax
DGROUP:2518                 mov     ax, [di]
DGROUP:251A                 mov     bx, [di+2]
DGROUP:251D                 mov     cx, [di+4]
DGROUP:2520                 mov     dx, [di+6]
DGROUP:2523                 mov     si, [di+8]
DGROUP:2526                 pop     di
DGROUP:2527                 push    bp
DGROUP:2528                 call    SYSGETMSG
DGROUP:252D                 pop     bp
DGROUP:252E                 push    di
DGROUP:252F                 mov     di, [bp+arg_4]
DGROUP:2532                 push    ax
DGROUP:2533                 mov     word ptr [di], es
DGROUP:2535                 mov     word ptr [di+6], ds
DGROUP:2538                 pop     ax
DGROUP:2539                 pop     di
DGROUP:253A                 push    di
DGROUP:253B                 mov     di, [bp+arg_6]
DGROUP:253E                 mov     [di], ax
DGROUP:2540                 mov     [di+2], bx
DGROUP:2543                 mov     [di+4], cx
DGROUP:2546                 mov     [di+6], dx
DGROUP:2549                 mov     [di+8], si
DGROUP:254C                 lahf
DGROUP:254D                 mov     al, ah
DGROUP:254F                 mov     [di+0Ch], ax
DGROUP:2552                 pop     ax
DGROUP:2553                 mov     [di+0Ah], ax
DGROUP:2556                 pop     si
DGROUP:2557                 pop     di
DGROUP:2558                 mov     sp, bp
DGROUP:255A                 pop     bp
DGROUP:255B                 retf
DGROUP:255B _sysgetmsg      endp
DGROUP:255B
DGROUP:255B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
DGROUP:255C menu_1          db 6                    ; DATA XREF: DGROUP:menu_1_offseto
DGROUP:255D a0004           db '0004'
DGROUP:2561                 db 6
DGROUP:2562                 db '<R>                           PC DOS Version 7.0 '
DGROUP:2593                 db 6
DGROUP:2594 a0104           db '0104'
DGROUP:2598                 db 6
DGROUP:2599                 db '<R>                         Fixed Disk Setup Program '
DGROUP:25CE                 db 6
DGROUP:25CF a0104_0         db '0104'
DGROUP:25D3                 db 6
DGROUP:25D4                 db '<R>                Copyright (c) IBM Corporation 1983 - 1994',0
DGROUP:2611 menu_2          db 6                    ; DATA XREF: DGROUP:menu_2_offseto
DGROUP:2612 a0404           db '0404'
DGROUP:2616                 db 6
DGROUP:2617 aHFdiskOptions  db '<H>                             FDISK Options '
DGROUP:2645                 db 6
DGROUP:2646 a0604           db '0604'
DGROUP:264A                 db 6
DGROUP:264B                 db '<H>1. <R>Create DOS partition or Logical DOS Drive '
DGROUP:267E                 db 6
DGROUP:267F a0104_1         db '0104'
DGROUP:2683                 db 6
DGROUP:2684                 db '<H>2. <R>Set active partition '
DGROUP:26A2                 db 6
DGROUP:26A3 a0104_2         db '0104'
DGROUP:26A7                 db 6
DGROUP:26A8                 db '<H>3. <R>Delete partition or Logical DOS Drive '
DGROUP:26D7                 db 6
DGROUP:26D8 a0104_3         db '0104'
DGROUP:26DC                 db 6
DGROUP:26DD                 db '<H>4. <R>Display partition information '
DGROUP:2704                 db 6
DGROUP:2705 a1104           db '1104'
DGROUP:2709                 db 6
DGROUP:270A                 db '<R>Press <H>Esc<R> to exit FDISK',0
DGROUP:272B menu_3          db 6                    ; DATA XREF: DGROUP:menu_3_offseto
DGROUP:272C a0804           db '0804'
DGROUP:2730                 db 6
DGROUP:2731                 db '<R>Choose one of the following:',0
DGROUP:2751 menu_4          db 6                    ; DATA XREF: DGROUP:menu_4_offseto
DGROUP:2752 a1404           db '1404'
DGROUP:2756                 db 6
DGROUP:2757                 db '<H>5. <R>Change current fixed disk drive',0
DGROUP:2780 menu_5          db 6                    ; DATA XREF: DGROUP:menu_5_offseto
DGROUP:2781 a0604_0         db '0604'
DGROUP:2785                 db 6
DGROUP:2786                 db '<R>Current fixed disk drive: <H><I>',0
DGROUP:27AA menu_6          db 6                    ; DATA XREF: DGROUP:menu_6_offseto
DGROUP:27AB a2004           db '2004'
DGROUP:27AF                 db 6
DGROUP:27B0                 db '<H>WARNING! <R>No partitions are set active - disk 1 is not start'
DGROUP:27B0                 db 'able unless '
DGROUP:27FD                 db 6
DGROUP:27FE a0104_4         db '0104'
DGROUP:2802                 db 6
DGROUP:2803                 db '<R>a partition is set active',0
DGROUP:2820 menu_7          db 6                    ; DATA XREF: DGROUP:menu_7_offseto
DGROUP:2821 a1704           db '1704'
DGROUP:2825                 db 6
DGROUP:2826                 db '<R>Enter choice: <H>[<S> ]',0
DGROUP:2841 menu_8          db 6                    ; DATA XREF: DGROUP:menu_8_offseto
DGROUP:2842 a0404_0         db '0404'
DGROUP:2846                 db 6
DGROUP:2847                 db '<H>                Create DOS Partition or Logical DOS Drive',0
DGROUP:2884 menu_9          db 6                    ; DATA XREF: DGROUP:menu_9_offseto
DGROUP:2885 a1004           db '1004'
DGROUP:2889                 db 6
DGROUP:288A                 db '<H>1. <R>Create Primary DOS Partition '
DGROUP:28B0                 db 6
DGROUP:28B1 a0104_5         db '0104'
DGROUP:28B5                 db 6
DGROUP:28B6                 db '<H>2. <R>Create Extended DOS Partition',0
DGROUP:28DD menu_10         db 6                    ; DATA XREF: DGROUP:menu_10_offseto
DGROUP:28DE a1204           db '1204'
DGROUP:28E2                 db 6
DGROUP:28E3                 db '<H>3. <R>Create Logical DOS Drive(s) in the Extended DOS Partitio'
DGROUP:28E3                 db 'n',0
DGROUP:2926 menu_11         db 6                    ; DATA XREF: DGROUP:menu_11_offseto
DGROUP:2927 a2404           db '2404'
DGROUP:292B                 db 6
DGROUP:292C                 db '<R>Press <H>Esc<R> to return to FDISK Options',0
DGROUP:295A menu_12         db 6                    ; DATA XREF: DGROUP:menu_12_offseto
DGROUP:295B a0404_1         db '0404'
DGROUP:295F                 db 6
DGROUP:2960                 db '<H>                      Create Primary DOS Partition',0
DGROUP:2996 menu_13         db 6                    ; DATA XREF: DGROUP:menu_13_offseto
DGROUP:2997 a0804_0         db '0804'
DGROUP:299B                 db 6
DGROUP:299C                 db '<R>Do you wish to use the maximum available size for a Primary DO'
DGROUP:299C                 db 'S Partition '
DGROUP:29E9                 db 6
DGROUP:29EA a0104_6         db '0104'
DGROUP:29EE                 db 6
DGROUP:29EF                 db '<R>and make the partition active (<Y>/<N>).....................? '
DGROUP:29EF                 db '<H>[<S> ]',0
DGROUP:2A3A menu_45         db 6                    ; DATA XREF: DGROUP:menu_45_offseto
DGROUP:2A3B a0804_1         db '0804'
DGROUP:2A3F                 db 6
DGROUP:2A40                 db '<R>Do you wish to use the maximum available size for a Primary DO'
DGROUP:2A40                 db 'S Partition '
DGROUP:2A8D                 db 6
DGROUP:2A8E a0104_7         db '0104'
DGROUP:2A92                 db 6
DGROUP:2A93 aRYN_______________________________ db '<R>(<Y>/<N>)...................................................? '
DGROUP:2A93                 db '<H>[<S> ]',0
DGROUP:2ADE menu_14         db 6                    ; DATA XREF: DGROUP:menu_14_offseto
DGROUP:2ADF a0804_2         db '0804'
DGROUP:2AE3                 db 6
DGROUP:2AE4                 db '<R>Partition  Status   Type    Volume Label  Mbytes   System   Us'
DGROUP:2AE4                 db 'age '
DGROUP:2B29                 db 6
DGROUP:2B2A a0104_8         db '0104'
DGROUP:2B2E                 db 6
DGROUP:2B2F                 db '<R> <II> <HI>         <RI>    <IIIIIII>   <IIIIIIIIIII>   <IIII> '
DGROUP:2B2F                 db '  <IIIIIIII>   <IIII> '
DGROUP:2B86                 db 6
DGROUP:2B87 a0104_9         db '0104'
DGROUP:2B8B                 db 6
DGROUP:2B8C                 db '<R> <II> <HI>         <RI>    <IIIIIII>   <IIIIIIIIIII>   <IIII> '
DGROUP:2B8C                 db '  <IIIIIIII>   <IIII> '
DGROUP:2BE3                 db 6
DGROUP:2BE4 a0104_10        db '0104'
DGROUP:2BE8                 db 6
DGROUP:2BE9                 db '<R> <II> <HI>         <RI>    <IIIIIII>   <IIIIIIIIIII>   <IIII> '
DGROUP:2BE9                 db '  <IIIIIIII>   <IIII> '
DGROUP:2C40                 db 6
DGROUP:2C41 a0104_11        db '0104'
DGROUP:2C45                 db 6
DGROUP:2C46                 db '<R> <II> <HI>         <RI>    <IIIIIII>   <IIIIIIIIIII>   <IIII> '
DGROUP:2C46                 db '  <IIIIIIII>   <IIII>'
DGROUP:2C9C                 db 0
DGROUP:2C9D menu_15         db 6                    ; DATA XREF: DGROUP:menu_15_offseto
DGROUP:2C9E a1404_0         db '1404'
DGROUP:2CA2                 db 6
DGROUP:2CA3                 db '<R>Total disk space is <HIIIIR> Mbytes (1 Mbyte = 1048576 bytes)',0
DGROUP:2CE4 menu_16         db 6                    ; DATA XREF: DGROUP:menu_16_offseto
DGROUP:2CE5 a1504           db '1504'
DGROUP:2CE9                 db 6
DGROUP:2CEA                 db '<RC>Maximum space available for partition is <HIIIIR> Mbytes (<HI'
DGROUP:2CEA                 db 'IIIR>)',0
DGROUP:2D32 menu_39         db 6                    ; DATA XREF: DGROUP:menu_39_offseto
DGROUP:2D33 a1804           db '1804'
DGROUP:2D37                 db 6
DGROUP:2D38                 db '<RC>Enter partition size in Mbytes or percent of disk space (%) t'
DGROUP:2D38                 db 'o '
DGROUP:2D7B                 db 6
DGROUP:2D7C a0104_12        db '0104'
DGROUP:2D80                 db 6
DGROUP:2D81                 db '<RC>create a Primary DOS Partition...............................'
DGROUP:2D81                 db '..: <H>[<IIISI>]',0
DGROUP:2DD3 menu_17         db 6                    ; DATA XREF: DGROUP:menu_17_offseto
DGROUP:2DD4 a0404_2         db '0404'
DGROUP:2DD8                 db 6
DGROUP:2DD9                 db '<H>                      Create Extended DOS Partition',0
DGROUP:2E10 menu_42         db 6                    ; DATA XREF: DGROUP:menu_42_offseto
DGROUP:2E11 a1804_0         db '1804'
DGROUP:2E15                 db 6
DGROUP:2E16                 db '<RC>Enter partition size in Mbytes or percent of disk space (%) t'
DGROUP:2E16                 db 'o '
DGROUP:2E59                 db 6
DGROUP:2E5A a0104_13        db '0104'
DGROUP:2E5E                 db 6
DGROUP:2E5F                 db '<RC>create an Extended DOS Partition.............................'
DGROUP:2E5F                 db '.: <H>[<IIISI>]',0
DGROUP:2EB0 menu_46         db 6                    ; DATA XREF: DGROUP:menu_46_offseto
DGROUP:2EB1 a2404_0         db '2404'
DGROUP:2EB5                 db 6
DGROUP:2EB6                 db '<R>Press <H>Esc<R> to continue<S>',0
DGROUP:2ED8 menu_18         db 6                    ; DATA XREF: DGROUP:menu_18_offseto
DGROUP:2ED9 a0104_14        db '0104'
DGROUP:2EDD                 db 6
DGROUP:2EDE aHcCreateLogicalDosDriveSInTheExten db '<HC>       Create Logical DOS Drive(s) in the Extended DOS Partit'
DGROUP:2EDE                 db 'ion',0
DGROUP:2F23 menu_19         db 6                    ; DATA XREF: DGROUP:menu_19_offseto
DGROUP:2F24 a0300           db '0300'
DGROUP:2F28                 db 6
DGROUP:2F29                 db '<R>Drv Volume Label  Mbytes  System  Usage'
DGROUP:2F53                 db 6
DGROUP:2F54                 db '0100'
DGROUP:2F58                 db 6
DGROUP:2F59 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:2F8E                 db 6
DGROUP:2F8F a0100_0         db '0100'
DGROUP:2F93                 db 6
DGROUP:2F94 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_0 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:2FC9                 db 6
DGROUP:2FCA a0100_1         db '0100'
DGROUP:2FCE                 db 6
DGROUP:2FCF aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_1 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:3004                 db 6
DGROUP:3005 a0100_2         db '0100'
DGROUP:3009                 db 6
DGROUP:300A aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_2 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:303F                 db 6
DGROUP:3040 a0100_3         db '0100'
DGROUP:3044                 db 6
DGROUP:3045 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_3 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:307A                 db 6
DGROUP:307B a0100_4         db '0100'
DGROUP:307F                 db 6
DGROUP:3080 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_4 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>',0
DGROUP:30B6 menu_43         db 6                    ; DATA XREF: DGROUP:menu_43_offseto
DGROUP:30B7 a1000           db '1000'
DGROUP:30BB                 db 6
DGROUP:30BC aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_5 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:30F1                 db 6
DGROUP:30F2 a0100_5         db '0100'
DGROUP:30F6                 db 6
DGROUP:30F7 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_6 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:312C                 db 6
DGROUP:312D a0100_6         db '0100'
DGROUP:3131                 db 6
DGROUP:3132 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_7 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:3167                 db 6
DGROUP:3168 a0100_7         db '0100'
DGROUP:316C                 db 6
DGROUP:316D aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_8 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:31A2                 db 6
DGROUP:31A3 a0100_8         db '0100'
DGROUP:31A7                 db 6
DGROUP:31A8 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_9 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:31DD                 db 6
DGROUP:31DE a0100_9         db '0100'
DGROUP:31E2                 db 6
DGROUP:31E3 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_10 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>',0
DGROUP:3219 menu_20         db 6                    ; DATA XREF: DGROUP:menu_20_offseto
DGROUP:321A a0341           db '0341'
DGROUP:321E                 db 6
DGROUP:321F aRDrvVolumeLabelMbytesSystemUsage_0 db '<R>Drv Volume Label  Mbytes  System  Usage'
DGROUP:3249                 db 6
DGROUP:324A a0141           db '0141'
DGROUP:324E                 db 6
DGROUP:324F aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_11 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:3284                 db 6
DGROUP:3285 a0141_0         db '0141'
DGROUP:3289                 db 6
DGROUP:328A aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_12 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:32BF                 db 6
DGROUP:32C0 a0141_1         db '0141'
DGROUP:32C4                 db 6
DGROUP:32C5 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_13 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:32FA                 db 6
DGROUP:32FB a0141_2         db '0141'
DGROUP:32FF                 db 6
DGROUP:3300 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_14 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:3335                 db 6
DGROUP:3336 a0141_3         db '0141'
DGROUP:333A                 db 6
DGROUP:333B aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_15 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:3370                 db 6
DGROUP:3371 a0141_4         db '0141'
DGROUP:3375                 db 6
DGROUP:3376 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_16 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>',0
DGROUP:33AC menu_44         db 6                    ; DATA XREF: DGROUP:menu_44_offseto
DGROUP:33AD a1041           db '1041'
DGROUP:33B1                 db 6
DGROUP:33B2 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_17 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:33E7                 db 6
DGROUP:33E8 a0141_5         db '0141'
DGROUP:33EC                 db 6
DGROUP:33ED aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_18 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:3422                 db 6
DGROUP:3423 a0141_6         db '0141'
DGROUP:3427                 db 6
DGROUP:3428 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_19 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:345D                 db 6
DGROUP:345E a0141_7         db '0141'
DGROUP:3462                 db 6
DGROUP:3463 aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_20 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>'
DGROUP:3498                 db 6
DGROUP:3499 a0141_8         db '0141'
DGROUP:349D                 db 6
DGROUP:349E aHIiRiiiiiiiiiiiIiiiIiiiiiiiIiii_21 db '<H><II>  <RIIIIIIIIIII>    <IIII>  <IIIIIIII>  <IIII>',0
DGROUP:34D4 menu_21         db 6                    ; DATA XREF: DGROUP:menu_21_offseto
DGROUP:34D5 a1704_0         db '1704'
DGROUP:34D9                 db 6
DGROUP:34DA aRcTotalExtendedDosPartitionSizeIsH db '<RC>Total Extended DOS Partition size is <HIIIIR> Mbytes (1 MByte'
DGROUP:34DA                 db ' = 1048576 bytes)',0
DGROUP:352D menu_22         db 6                    ; DATA XREF: DGROUP:menu_22_offseto
DGROUP:352E a1804_1         db '1804'
DGROUP:3532                 db 6
DGROUP:3533 aRcMaximumSpaceAvailableForLogicalD db '<RC>Maximum space available for logical drive is <HIIIIR> Mbytes '
DGROUP:3533                 db '<H>(<IIII>)',0
DGROUP:3580 menu_40         db 6                    ; DATA XREF: DGROUP:menu_40_offseto
DGROUP:3581 a2004_0         db '2004'
DGROUP:3585                 db 6
DGROUP:3586 aRcEnterLogicalDriveSizeInMbytesOrP db '<RC>Enter logical drive size in Mbytes or percent of disk space ('
DGROUP:3586                 db '%)...<H>[<IIISI>]',0
DGROUP:35D9 menu_23         db 6                    ; DATA XREF: DGROUP:menu_23_offseto
DGROUP:35DA a0404_3         db '0404'
DGROUP:35DE                 db 6
DGROUP:35DF aHSetActivePartition db '<H>                          Set Active Partition',0
DGROUP:3611 menu_24         db 6                    ; DATA XREF: DGROUP:menu_24_offseto
DGROUP:3612 a1604           db '1604'
DGROUP:3616                 db 6
DGROUP:3617 aREnterTheNumberOfThePartitionYouWa db '<R>Enter the number of the partition you want to make active.....'
DGROUP:3617                 db '......: <H>[<S> ]',0
DGROUP:366A menu_25         db 6                    ; DATA XREF: DGROUP:menu_25_offseto
DGROUP:366B a0404_4         db '0404'
DGROUP:366F                 db 6
DGROUP:3670 aHDeleteDosPartitionOrLogicalDosDri db '<H>                Delete DOS Partition or Logical DOS Drive',0
DGROUP:36AD menu_26         db 6                    ; DATA XREF: DGROUP:menu_26_offseto
DGROUP:36AE a1004_0         db '1004'
DGROUP:36B2                 db 6
DGROUP:36B3 aHc1_RDeletePrimaryDosPartition db '<HC>1.  <R>Delete Primary DOS Partition '
DGROUP:36DB                 db 6
DGROUP:36DC a0104_15        db '0104'
DGROUP:36E0                 db 6
DGROUP:36E1 aHc2_RDeleteExtendedDosPartition db '<HC>2.  <R>Delete Extended DOS Partition',0
DGROUP:370A menu_27         db 6                    ; DATA XREF: DGROUP:menu_27_offseto
DGROUP:370B a1204_0         db '1204'
DGROUP:370F                 db 6
DGROUP:3710 aHc3_RDeleteLogicalDosDriveSInTheEx db '<HC>3.  <R>Delete Logical DOS Drive(s) in the Extended DOS Partit'
DGROUP:3710                 db 'ion',0
DGROUP:3755 menu_57         db 6                    ; DATA XREF: DGROUP:menu_57_offseto
DGROUP:3756 a1304           db '1304'
DGROUP:375A                 db 6
DGROUP:375B aHc4_RDeleteNonDosPartition db '<HC>4.  <R>Delete Non-DOS Partition',0
DGROUP:377F menu_28         db 6                    ; DATA XREF: DGROUP:menu_28_offseto
DGROUP:3780 a0404_5         db '0404'
DGROUP:3784                 db 6
DGROUP:3785 aHDeletePrimaryDosPartition db '<H>                      Delete Primary DOS Partition',0
DGROUP:37BB menu_unused     db 6                    ; DATA XREF: DGROUP:528Ao
DGROUP:37BC a1904           db '1904'
DGROUP:37C0                 db 6
DGROUP:37C1 aHbcWarningOrDataInTheDeletedPrimar db '<HBC>WARNING! <OR>Data in the deleted Primary DOS Partition will '
DGROUP:37C1                 db 'be lost.',0
DGROUP:380B menu_55         db 6                    ; DATA XREF: DGROUP:menu_55_offseto
DGROUP:380C a1904_0         db '1904'
DGROUP:3810                 db 6
DGROUP:3811 aHbcWarningOrDataInTheDeletedPrim_0 db '<HBC>WARNING! <OR>Data in the deleted Primary DOS Partition will '
DGROUP:3811                 db 'be lost. '
DGROUP:385B                 db 6
DGROUP:385C a0104_16        db '0104'
DGROUP:3860                 db 6
DGROUP:3861 aRWhatPrimaryPartitionDoYouWantToDe db '<R>What primary partition do you want to delete..? <H>[<S> ]<R>',0
DGROUP:38A1 menu_56         db 6                    ; DATA XREF: DGROUP:menu_56_offseto
DGROUP:38A2 a2204           db '2204'
DGROUP:38A6                 db 6
DGROUP:38A7 aRcDoYouWishToContinueYN___________ db '<RC>Do you wish to continue (<Y>/<N>).................? <H>[<S> ]'
DGROUP:38E8                 db 0
DGROUP:38E9 menu_30         db 6                    ; DATA XREF: DGROUP:menu_30_offseto
DGROUP:38EA a0404_6         db '0404'
DGROUP:38EE                 db 6
DGROUP:38EF aHDeleteExtendedDosPartition db '<H>                      Delete Extended DOS Partition',0
DGROUP:3926 menu_31         db 6                    ; DATA XREF: DGROUP:menu_31_offseto
DGROUP:3927 a1604_0         db '1604'
DGROUP:392B                 db 6
DGROUP:392C aHbcWarningOrDataInTheDeletedExtend db '<HBC>WARNING! <OR>Data in the deleted Extended DOS Partition will'
DGROUP:392C                 db ' be lost. '
DGROUP:3977                 db 6
DGROUP:3978 a0104_17        db '0104'
DGROUP:397C                 db 6
DGROUP:397D aRcDoYouWishToContinueYN__________0 db '<RC>Do you wish to continue (<Y>/<N>).................? <H>[<S> ]'
DGROUP:397D                 db 0
DGROUP:39BF menu_32         db 6                    ; DATA XREF: DGROUP:menu_32_offseto
DGROUP:39C0 a0104_18        db '0104'
DGROUP:39C4                 db 6
DGROUP:39C5 aHDeleteLogicalDosDriveSInTheExtend db '<H>        Delete Logical DOS Drive(s) in the Extended DOS Partit'
DGROUP:39C5                 db 'ion',0
DGROUP:3A0A menu_33         db 6                    ; DATA XREF: DGROUP:menu_33_offseto
DGROUP:3A0B a1904_1         db '1904'
DGROUP:3A0F                 db 6
DGROUP:3A10 aHbcWarningOrDataInADeletedLogicalD db '<HBC>WARNING! <OR>Data in a deleted Logical DOS Drive will be los'
DGROUP:3A10                 db 't. '
DGROUP:3A54                 db 6
DGROUP:3A55 a0104_19        db '0104'
DGROUP:3A59                 db 6
DGROUP:3A5A aRcWhatDriveDoYouWantToDelete______ db '<RC>What drive do you want to delete.............................'
DGROUP:3A5A                 db '..? <H>[<S> ]',0
DGROUP:3AA9 menu_34         db 6                    ; DATA XREF: DGROUP:menu_34_offseto
DGROUP:3AAA a2204_0         db '2204'
DGROUP:3AAE                 db 6
DGROUP:3AAF aRAreYouSureYN_____________________ db '<R>Are you sure (<Y>/<N>)..............................? <H>[<S> '
DGROUP:3AAF                 db ']',0
DGROUP:3AF2 menu_41         db 6                    ; DATA XREF: DGROUP:menu_41_offseto
DGROUP:3AF3 a2104           db '2104'
DGROUP:3AF7                 db 6
DGROUP:3AF8 aREnterVolumeLabel_________________ db '<R>Enter Volume Label..............................? <H>[<S>     '
DGROUP:3AF8                 db '      ]',0
DGROUP:3B41 menu_58         db 6                    ; DATA XREF: DGROUP:menu_58_offseto
DGROUP:3B42 a0404_7         db '0404'
DGROUP:3B46                 db 6
DGROUP:3B47 aHDeleteNonDosPartition db '<H>                        Delete Non-DOS Partition',0
DGROUP:3B7B menu_59         db 6                    ; DATA XREF: DGROUP:menu_59_offseto
DGROUP:3B7C a1604_1         db '1604'
DGROUP:3B80                 db 6
DGROUP:3B81 aHbcWarningOrDataInTheDeletedNonDos db '<HBC>WARNING! <OR>Data in the deleted Non-DOS Partition will be l'
DGROUP:3B81                 db 'ost. '
DGROUP:3BC7                 db 6
DGROUP:3BC8 a0104_20        db '0104'
DGROUP:3BCC                 db 6
DGROUP:3BCD aRcWhatNonDosPartitionDoYouWantToDe db '<RC>What Non-DOS partition do you want to delete..? <H>[<S> ]<R>',0
DGROUP:3C0E menu_35         db 6                    ; DATA XREF: DGROUP:menu_35_offseto
DGROUP:3C0F a0404_8         db '0404'
DGROUP:3C13                 db 6
DGROUP:3C14 aHDisplayPartitionInformation db '<H>                      Display Partition Information',0
DGROUP:3C4B menu_36         db 6                    ; DATA XREF: DGROUP:menu_36_offseto
DGROUP:3C4C a1704_1         db '1704'
DGROUP:3C50                 db 6
DGROUP:3C51 aRcTheExtendedDosPartitionContainsL db '<RC>The Extended DOS Partition contains Logical DOS Drives. '
DGROUP:3C8D                 db 6
DGROUP:3C8E a0104_21        db '0104'
DGROUP:3C92                 db 6
DGROUP:3C93 aRcDoYouWantToDisplayTheLogicalDriv db '<RC>Do you want to display the logical drive information (<Y>/<N>'
DGROUP:3C93                 db ')......?<H>[<S> ]',0
DGROUP:3CE6 menu_37         db 6                    ; DATA XREF: DGROUP:menu_37_offseto
DGROUP:3CE7 a0104_22        db '0104'
DGROUP:3CEB                 db 6
DGROUP:3CEC aHDisplayLogicalDosDriveInformation db '<H>                  Display Logical DOS Drive Information',0
DGROUP:3D27 menu_47         db 6                    ; DATA XREF: DGROUP:menu_47_offseto
DGROUP:3D28 a0004_0         db '0004'
DGROUP:3D2C                 db 6
DGROUP:3D2D aHChangeCurrentFixedDiskDrive db '<H>                     Change Current Fixed Disk Drive',0
DGROUP:3D65 menu_48         db 6                    ; DATA XREF: DGROUP:menu_48_offseto
DGROUP:3D66 a0200           db '0200'
DGROUP:3D6A                 db 6
DGROUP:3D6B aRDiskDrvMbytesFreeUsage db '<R>  Disk   Drv   Mbytes   Free   Usage'
DGROUP:3D92                 db 6
DGROUP:3D93 a0104_23        db '0104'
DGROUP:3D97                 db 6
DGROUP:3D98 aHiRiiIiiiIiiiIiii db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3DC4                 db 6
DGROUP:3DC5 a0104_24        db '0104'
DGROUP:3DC9                 db 6
DGROUP:3DCA aHiRiiIiiiIiiiIiii_0 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3DF6                 db 6
DGROUP:3DF7 a0104_25        db '0104'
DGROUP:3DFB                 db 6
DGROUP:3DFC aHiRiiIiiiIiiiIiii_1 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3E28                 db 6
DGROUP:3E29 a0104_26        db '0104'
DGROUP:3E2D                 db 6
DGROUP:3E2E aHiRiiIiiiIiiiIiii_2 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3E5A                 db 6
DGROUP:3E5B a0104_27        db '0104'
DGROUP:3E5F                 db 6
DGROUP:3E60 aHiRiiIiiiIiiiIiii_3 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3E8C                 db 6
DGROUP:3E8D a0104_28        db '0104'
DGROUP:3E91                 db 6
DGROUP:3E92 aHiRiiIiiiIiiiIiii_4 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3EBE                 db 6
DGROUP:3EBF a0104_29        db '0104'
DGROUP:3EC3                 db 6
DGROUP:3EC4 aHiRiiIiiiIiiiIiii_5 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3EF0                 db 6
DGROUP:3EF1 a0104_30        db '0104'
DGROUP:3EF5                 db 6
DGROUP:3EF6 aHiRiiIiiiIiiiIiii_6 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>',0
DGROUP:3F23 menu_49         db 6                    ; DATA XREF: DGROUP:menu_49_offseto
DGROUP:3F24 a1104_0         db '1104'
DGROUP:3F28                 db 6
DGROUP:3F29 aHiRiiIiiiIiiiIiii_7 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3F55                 db 6
DGROUP:3F56 a0104_31        db '0104'
DGROUP:3F5A                 db 6
DGROUP:3F5B aHiRiiIiiiIiiiIiii_8 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3F87                 db 6
DGROUP:3F88 a0104_32        db '0104'
DGROUP:3F8C                 db 6
DGROUP:3F8D aHiRiiIiiiIiiiIiii_9 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3FB9                 db 6
DGROUP:3FBA a0104_33        db '0104'
DGROUP:3FBE                 db 6
DGROUP:3FBF aHiRiiIiiiIiiiIiii_10 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:3FEB                 db 6
DGROUP:3FEC a0104_34        db '0104'
DGROUP:3FF0                 db 6
DGROUP:3FF1 aHiRiiIiiiIiiiIiii_11 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:401D                 db 6
DGROUP:401E a0104_35        db '0104'
DGROUP:4022                 db 6
DGROUP:4023 aHiRiiIiiiIiiiIiii_12 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:404F                 db 6
DGROUP:4050 a0104_36        db '0104'
DGROUP:4054                 db 6
DGROUP:4055 aHiRiiIiiiIiiiIiii_13 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:4081                 db 6
DGROUP:4082 a0104_37        db '0104'
DGROUP:4086                 db 6
DGROUP:4087 aHiRiiIiiiIiiiIiii_14 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>',0
DGROUP:40B4 menu_50         db 6                    ; DATA XREF: DGROUP:menu_50_offseto
DGROUP:40B5 a0241           db '0241'
DGROUP:40B9                 db 6
DGROUP:40BA aRDiskDrvMbytesFreeUsage_0 db '<R>  Disk   Drv   Mbytes   Free   Usage'
DGROUP:40E1                 db 6
DGROUP:40E2 a0145           db '0145'
DGROUP:40E6                 db 6
DGROUP:40E7 aHiRiiIiiiIiiiIiii_15 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:4113                 db 6
DGROUP:4114 a0145_0         db '0145'
DGROUP:4118                 db 6
DGROUP:4119 aHiRiiIiiiIiiiIiii_16 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:4145                 db 6
DGROUP:4146 a0145_1         db '0145'
DGROUP:414A                 db 6
DGROUP:414B aHiRiiIiiiIiiiIiii_17 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:4177                 db 6
DGROUP:4178 a0145_2         db '0145'
DGROUP:417C                 db 6
DGROUP:417D aHiRiiIiiiIiiiIiii_18 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:41A9                 db 6
DGROUP:41AA a0145_3         db '0145'
DGROUP:41AE                 db 6
DGROUP:41AF aHiRiiIiiiIiiiIiii_19 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:41DB                 db 6
DGROUP:41DC a0145_4         db '0145'
DGROUP:41E0                 db 6
DGROUP:41E1 aHiRiiIiiiIiiiIiii_20 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:420D                 db 6
DGROUP:420E a0145_5         db '0145'
DGROUP:4212                 db 6
DGROUP:4213 aHiRiiIiiiIiiiIiii_21 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:423F                 db 6
DGROUP:4240 a0145_6         db '0145'
DGROUP:4244                 db 6
DGROUP:4245 aHiRiiIiiiIiiiIiii_22 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>',0
DGROUP:4272 menu_51         db 6                    ; DATA XREF: DGROUP:menu_51_offseto
DGROUP:4273 a1145           db '1145'
DGROUP:4277                 db 6
DGROUP:4278 aHiRiiIiiiIiiiIiii_23 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:42A4                 db 6
DGROUP:42A5 a0145_7         db '0145'
DGROUP:42A9                 db 6
DGROUP:42AA aHiRiiIiiiIiiiIiii_24 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:42D6                 db 6
DGROUP:42D7 a0145_8         db '0145'
DGROUP:42DB                 db 6
DGROUP:42DC aHiRiiIiiiIiiiIiii_25 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:4308                 db 6
DGROUP:4309 a0145_9         db '0145'
DGROUP:430D                 db 6
DGROUP:430E aHiRiiIiiiIiiiIiii_26 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:433A                 db 6
DGROUP:433B a0145_10        db '0145'
DGROUP:433F                 db 6
DGROUP:4340 aHiRiiIiiiIiiiIiii_27 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:436C                 db 6
DGROUP:436D a0145_11        db '0145'
DGROUP:4371                 db 6
DGROUP:4372 aHiRiiIiiiIiiiIiii_28 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:439E                 db 6
DGROUP:439F a0145_12        db '0145'
DGROUP:43A3                 db 6
DGROUP:43A4 aHiRiiIiiiIiiiIiii_29 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>'
DGROUP:43D0                 db 6
DGROUP:43D1 a0145_13        db '0145'
DGROUP:43D5                 db 6
DGROUP:43D6 aHiRiiIiiiIiiiIiii_30 db '<HI>     <RII>    <IIII>    <IIII>    <IIII>',0
DGROUP:4403 menu_52         db 6                    ; DATA XREF: DGROUP:menu_52_offseto
DGROUP:4404 a2004_1         db '2004'
DGROUP:4408                 db 6
DGROUP:4409 aR1Mbyte1048576Bytes db '<R>(1 MByte = 1048576 bytes)',0
DGROUP:4426 menu_53         db 6                    ; DATA XREF: DGROUP:menu_53_offseto
DGROUP:4427 a2104_0         db '2104'
DGROUP:442B                 db 6
DGROUP:442C aREnterFixedDiskDriveNumber1I______ db '<R>Enter Fixed Disk Drive Number (1-<I>).......................<H'
DGROUP:442C                 db '>[<SI>]',0
DGROUP:4475 menu_54         db 6                    ; DATA XREF: DGROUP:menu_54_offseto
DGROUP:4476 a0104_38        db '0104'
DGROUP:447A                 db 6
DGROUP:447B aHFixedDiskDriveStatus db '<H>                         Fixed Disk Drive Status',0
DGROUP:44AF menu_38         db 6                    ; DATA XREF: DGROUP:menu_38_offseto
DGROUP:44B0 a1304_0         db '1304'
DGROUP:44B4                 db 6
DGROUP:44B5 aHSystemWillNowRestart db '<H>System will now restart '
DGROUP:44D0                 db 6
DGROUP:44D1 a0204           db '0204'
DGROUP:44D5                 db 6
DGROUP:44D6 aRInsertDosSystemDisketteInDriveA db '<R>Insert DOS system diskette in drive A: '
DGROUP:4500                 db 6
DGROUP:4501 a0104_39        db '0104'
DGROUP:4505                 db 6
DGROUP:4506 ; static aRPressAnyKeyWhenReady_(void)
DGROUP:4506 aRPressAnyKeyWhenReady___S db '<R>Press any key when ready . . .<S>',0
DGROUP:452B menu_60         db 6                    ; DATA XREF: DGROUP:menu_60_offseto
DGROUP:452C a1304_1         db '1304'
DGROUP:4530                 db 6
DGROUP:4531 aHSystemWillNowRestart_0 db '<H>System will now restart '
DGROUP:454C                 db 6
DGROUP:454D a0304           db '0304'
DGROUP:4551                 db 6
DGROUP:4552 ; static aRPressAnyKeyWhenReady_(void)
DGROUP:4552 aRPressAnyKeyWhenReady___S_0 db '<R>Press any key when ready . . .<S>',0
DGROUP:4577 status_1        db 6                    ; DATA XREF: DGROUP:status_1_offo
DGROUP:4578 a2104_1         db '2104'
DGROUP:457C                 db 6
DGROUP:457D aChPrimaryDosPartitionDeleted db '<CH>Primary DOS Partition deleted '
DGROUP:459F                 db 6
DGROUP:45A0 a0100_10        db '0100'
DGROUP:45A4                 db 6
DGROUP:45A5 aCw             db '<CW>',0
DGROUP:45AA status_2        db 6                    ; DATA XREF: DGROUP:status_2_offo
DGROUP:45AB a2104_2         db '2104'
DGROUP:45AF                 db 6
DGROUP:45B0 aChExtendedDosPartitionDeleted db '<CH>Extended DOS Partition deleted '
DGROUP:45D3                 db 6
DGROUP:45D4 a0100_11        db '0100'
DGROUP:45D8                 db 6
DGROUP:45D9 aCw_0           db '<CW>',0
DGROUP:45DE status_3        db 6                    ; DATA XREF: DGROUP:status_3_offo
DGROUP:45DF a0004_1         db '0004'
DGROUP:45E3                 db 6
DGROUP:45E4 aHDriveDeleted  db '<H>Drive deleted',0
DGROUP:45F5 status_4        db 6                    ; DATA XREF: DGROUP:status_4_offo
DGROUP:45F6 a2104_3         db '2104'
DGROUP:45FA                 db 6
DGROUP:45FB aChPartitionIMadeActive db '<CH>Partition <I> made active '
DGROUP:4619                 db 6
DGROUP:461A a0100_12        db '0100'
DGROUP:461E                 db 6
DGROUP:461F aCw_1           db '<CW>',0
DGROUP:4624 status_5        db 6                    ; DATA XREF: DGROUP:status_5_offo
DGROUP:4625 a2104_4         db '2104'
DGROUP:4629                 db 6
DGROUP:462A aChPrimaryDosPartitionCreated db '<CH>Primary DOS Partition created '
DGROUP:464C                 db 6
DGROUP:464D a0100_13        db '0100'
DGROUP:4651                 db 6
DGROUP:4652 aCw_2           db '<CW>',0
DGROUP:4657 status_6        db 6                    ; DATA XREF: DGROUP:status_6_offo
DGROUP:4658 a2104_5         db '2104'
DGROUP:465C                 db 6
DGROUP:465D aChExtendedDosPartitionCreated db '<CH>Extended DOS Partition created '
DGROUP:4680                 db 6
DGROUP:4681 a0100_14        db '0100'
DGROUP:4685                 db 6
DGROUP:4686 aCw_3           db '<CW>',0
DGROUP:468B status_7        db 6                    ; DATA XREF: DGROUP:status_7_offo
DGROUP:468C a2204_1         db '2204'
DGROUP:4690                 db 6
DGROUP:4691 aChLogicalDosDriveCreatedDriveLette db '<CH>Logical DOS Drive created, drive letters changed or added<W>',0
DGROUP:46D2 status_8        db 6                    ; DATA XREF: DGROUP:status_8_offo
DGROUP:46D3 a2104_6         db '2104'
DGROUP:46D7                 db 6
DGROUP:46D8 aChNoPartitionsDefined db '<CH>No partitions defined '
DGROUP:46F2                 db 6
DGROUP:46F3 a0100_15        db '0100'
DGROUP:46F7                 db 6
DGROUP:46F8 aC              db '<C>',0
DGROUP:46FC status_9        db 6                    ; DATA XREF: DGROUP:status_9_offo
DGROUP:46FD a1004_1         db '1004'
DGROUP:4701                 db 6
DGROUP:4702 aChNoLogicalDrivesDefined db '<CH>No logical drives defined '
DGROUP:4720                 db 6
DGROUP:4721 a0100_16        db '0100'
DGROUP:4725                 db 6
DGROUP:4726 aC_0            db '<C>',0
DGROUP:472A status_10       db 6                    ; DATA XREF: DGROUP:status_10_offo
DGROUP:472B a1804_2         db '1804'
DGROUP:472F                 db 6
DGROUP:4730 aChDriveLettersHaveBeenChangedOrDel db '<CH>Drive letters have been changed or deleted<W>',0
DGROUP:4762 status_11       db 6                    ; DATA XREF: DGROUP:status_11_offo
DGROUP:4763 a0004_2         db '0004'
DGROUP:4767                 db 6
DGROUP:4768 aHDriveRedirected db '<H>Drive redirected',0
DGROUP:477C status_12       db 6                    ; DATA XREF: DGROUP:status_12_offo
DGROUP:477D a2104_7         db '2104'
DGROUP:4781                 db 6
DGROUP:4782 aChPrimaryDosPartitionCreatedDriveL db '<CH>Primary DOS Partition created, drive letters changed or added'
DGROUP:4782                 db ' '
DGROUP:47C4                 db 6
DGROUP:47C5 a0100_17        db '0100'
DGROUP:47C9                 db 6
DGROUP:47CA aCw_4           db '<CW>',0
DGROUP:47CF status_13       db 6                    ; DATA XREF: DGROUP:status_13_offo
DGROUP:47D0 a2104_8         db '2104'
DGROUP:47D4                 db 6
DGROUP:47D5 aChNonDosPartitionDeleted db '<CH>Non-DOS Partition deleted '
DGROUP:47F3                 db 6
DGROUP:47F4 a0100_18        db '0100'
DGROUP:47F8                 db 6
DGROUP:47F9 aCw_5           db '<CW>',0
DGROUP:47FE error_1         db 6                    ; DATA XREF: DGROUP:error_1_offo
DGROUP:47FF a0004_3         db '0004'
DGROUP:4803                 db 6
DGROUP:4804 aChNoFixedDisksPresent_ db '<CH>No fixed disks present. '
DGROUP:4820                 db 6
DGROUP:4821 a0100_19        db '0100'
DGROUP:4825                 db 6
DGROUP:4826 aCw_6           db '<CW>'
DGROUP:482A                 db 0
DGROUP:482B error_2         db 6                    ; DATA XREF: DGROUP:error_2_offo
DGROUP:482C a2204_2         db '2204'
DGROUP:4830                 db 6
DGROUP:4831 aChErrorReadingFixedDisk_ db '<CH>Error reading fixed disk. '
DGROUP:484F                 db 6
DGROUP:4850 a0100_20        db '0100'
DGROUP:4854                 db 6
DGROUP:4855 aCw_7           db '<CW>',0
DGROUP:485A error_3         db 6                    ; DATA XREF: DGROUP:error_3_offo
DGROUP:485B a2204_3         db '2204'
DGROUP:485F                 db 6
DGROUP:4860 aChErrorWritingFixedDisk_ db '<CH>Error writing fixed disk. '
DGROUP:487E                 db 6
DGROUP:487F a0100_21        db '0100'
DGROUP:4883                 db 6
DGROUP:4884 aCw_8           db '<CW>',0
DGROUP:4889 error_4         db 6                    ; DATA XREF: DGROUP:error_4_offo
DGROUP:488A a0004_4         db '0004'
DGROUP:488E                 db 6
DGROUP:488F aChwIncorrectDosVersion_ db '<CHW>Incorrect DOS version.',0
DGROUP:48AB error_5         db 6                    ; DATA XREF: DGROUP:error_5_offo
DGROUP:48AC a0004_5         db '0004'
DGROUP:48B0                 db 6
DGROUP:48B1 aChwCannotFdiskWithNetworkLoaded_ db '<CHW>Cannot FDISK with network loaded.',0
DGROUP:48D8 error_6         db 6                    ; DATA XREF: DGROUP:error_6_offo
DGROUP:48D9 a2204_4         db '2204'
DGROUP:48DD                 db 6
DGROUP:48DE aChNoPrimaryDosPartitionToDelete_ db '<CH>No Primary DOS Partition to delete. '
DGROUP:4906                 db 6
DGROUP:4907 a0100_22        db '0100'
DGROUP:490B                 db 6
DGROUP:490C aCw_9           db '<CW>'
DGROUP:4910                 db 0
DGROUP:4911 error_7         db 6                    ; DATA XREF: DGROUP:error_7_offo
DGROUP:4912 a2204_5         db '2204'
DGROUP:4916                 db 6
DGROUP:4917 aChNoExtendedDosPartitionToDelete_ db '<CH>No Extended DOS Partition to delete. '
DGROUP:4940                 db 6
DGROUP:4941 a0100_23        db '0100'
DGROUP:4945                 db 6
DGROUP:4946 aCw_10          db '<CW>',0
DGROUP:494B error_8         db 6                    ; DATA XREF: DGROUP:error_8_offo
DGROUP:494C a2204_6         db '2204'
DGROUP:4950                 db 6
DGROUP:4951 aChPrimaryDosPartitionAlreadyExists db '<CH>Primary DOS Partition already exists. '
DGROUP:497B                 db 6
DGROUP:497C a0100_24        db '0100'
DGROUP:4980                 db 6
DGROUP:4981 aCw_11          db '<CW>',0
DGROUP:4986 error_9         db 6                    ; DATA XREF: DGROUP:error_9_offo
DGROUP:4987 a2204_7         db '2204'
DGROUP:498B                 db 6
DGROUP:498C aChExtendedDosPartitionAlreadyExist db '<CH>Extended DOS Partition already exists. '
DGROUP:49B7                 db 6
DGROUP:49B8 a0100_25        db '0100'
DGROUP:49BC                 db 6
DGROUP:49BD aCw_12          db '<CW>',0
DGROUP:49C2 error_10        db 6                    ; DATA XREF: DGROUP:error_10_offo
DGROUP:49C3 a2204_8         db '2204'
DGROUP:49C7                 db 6
DGROUP:49C8 aChNoSpaceToCreateADosPartition_ db '<CH>No space to create a DOS partition. '
DGROUP:49F0                 db 6
DGROUP:49F1 a0100_26        db '0100'
DGROUP:49F5                 db 6
DGROUP:49F6 aCw_13          db '<CW>',0
DGROUP:49FB error_12        db 6                    ; DATA XREF: DGROUP:error_12_offo
DGROUP:49FC a2204_9         db '2204'
DGROUP:4A00                 db 6
DGROUP:4A01 aChRequestedLogicalDriveSizeExceeds db '<CH>Requested logical drive size exceeds the maximum available sp'
DGROUP:4A01                 db 'ace.<W> '
DGROUP:4A4A                 db 6
DGROUP:4A4B a0100_27        db '0100'
DGROUP:4A4F                 db 6
DGROUP:4A50 aCw_14          db '<CW>',0
DGROUP:4A55 error_13        db 6                    ; DATA XREF: DGROUP:error_13_offo
DGROUP:4A56 a2204_10        db '2204'
DGROUP:4A5A                 db 6
DGROUP:4A5B aChRequestedPartitionSizeExceedsThe db '<CH>Requested partition size exceeds the maximum available space.'
DGROUP:4A5B                 db '<W> '
DGROUP:4AA0                 db 6
DGROUP:4AA1 a0100_28        db '0100'
DGROUP:4AA5                 db 6
DGROUP:4AA6 aCw_15          db '<CW>',0
DGROUP:4AAB error_14        db 6                    ; DATA XREF: DGROUP:error_14_offo
DGROUP:4AAC a2204_11        db '2204'
DGROUP:4AB0                 db 6
DGROUP:4AB1 aChNoPartitionsToDelete_ db '<CH>No partitions to delete. '
DGROUP:4ACE                 db 6
DGROUP:4ACF a0100_29        db '0100'
DGROUP:4AD3                 db 6
DGROUP:4AD4 aCw_16          db '<CW>',0
DGROUP:4AD9 error_15        db 6                    ; DATA XREF: DGROUP:error_15_offo
DGROUP:4ADA a2204_12        db '2204'
DGROUP:4ADE                 db 6
DGROUP:4ADF aChTheOnlyStartablePartitionOnDrive db '<CH>The only startable partition on Drive 1 is already set active'
DGROUP:4ADF                 db '.<W> '
DGROUP:4B25                 db 6
DGROUP:4B26 a0100_30        db '0100'
DGROUP:4B2A                 db 6
DGROUP:4B2B aCw_17          db '<CW>',0
DGROUP:4B30 error_16        db 6                    ; DATA XREF: DGROUP:error_16_offo
DGROUP:4B31 a2204_13        db '2204'
DGROUP:4B35                 db 6
DGROUP:4B36 aChNoPartitionsToMakeActive_ db '<CH>No partitions to make active. '
DGROUP:4B58                 db 6
DGROUP:4B59 a0100_31        db '0100'
DGROUP:4B5D                 db 6
DGROUP:4B5E aCw_18          db '<CW>',0
DGROUP:4B63 error_17        db 6                    ; DATA XREF: DGROUP:error_17_offo
DGROUP:4B64 a2204_14        db '2204'
DGROUP:4B68                 db 6
DGROUP:4B69 aChPartitionSelectedIIsNotStartable db '<CH>Partition selected (<I>) is not startable, active partition n'
DGROUP:4B69                 db 'ot changed.<W>',0
DGROUP:4BB9 error_19        db 6                    ; DATA XREF: DGROUP:error_19_offo
DGROUP:4BBA a2204_15        db '2204'
DGROUP:4BBE                 db 6
DGROUP:4BBF aChCannotCreateExtendedDosPartition db '<CH>Cannot create Extended DOS Partition without '
DGROUP:4BF0                 db 6
DGROUP:4BF1 a0104_40        db '0104'
DGROUP:4BF5                 db 6
DGROUP:4BF6 aChPrimaryDosPartitionOnDisk1_W db '<CH>Primary DOS Partition on disk 1.<W>',0
DGROUP:4C1E error_20        db 6                    ; DATA XREF: DGROUP:error_20_offo
DGROUP:4C1F a2204_16        db '2204'
DGROUP:4C23                 db 6
DGROUP:4C24 aChAllAvailableSpaceInTheExtendedDo db '<CH>All available space in the Extended DOS Partition '
DGROUP:4C5A                 db 6
DGROUP:4C5B a0104_41        db '0104'
DGROUP:4C5F                 db 6
DGROUP:4C60 aChIsAssignedToLogicalDrives_W db '<CH>is assigned to logical drives.<W>',0
DGROUP:4C86 error_21        db 6                    ; DATA XREF: DGROUP:error_21_offo
DGROUP:4C87 a2204_17        db '2204'
DGROUP:4C8B                 db 6
DGROUP:4C8C aChCannotDeleteExtendedDosPartition db '<CH>Cannot delete Extended DOS Partition while logical drives exi'
DGROUP:4C8C                 db 'st.<W>',0
DGROUP:4CD4 error_22        db 6                    ; DATA XREF: DGROUP:error_22_offo
DGROUP:4CD5 a2204_18        db '2204'
DGROUP:4CD9                 db 6
DGROUP:4CDA aChAllLogicalDrivesDeletedInTheExte db '<CH>All logical drives deleted in the Extended DOS Partition.<W>',0
DGROUP:4D1B error_23        db 6                    ; DATA XREF: DGROUP:error_23_offo
DGROUP:4D1C a2204_19        db '2204'
DGROUP:4D20                 db 6
DGROUP:4D21 aC_1            db '<C> '
DGROUP:4D25                 db 6
DGROUP:4D26 a0104_42        db '0104'
DGROUP:4D2A                 db 6
DGROUP:4D2B aChiIsNotAChoice_PleaseEnterIii_W db '<CHI> is not a choice. Please enter <III>.<W>',0
DGROUP:4D59 error_24        db 6                    ; DATA XREF: DGROUP:error_24_offo
DGROUP:4D5A a2204_20        db '2204'
DGROUP:4D5E                 db 6
DGROUP:4D5F aChWarningThePartitionSetActiveIsNo db '<CH>WARNING! The partition set active is not startable.<W>',0
DGROUP:4D9A error_25        db 6                    ; DATA XREF: DGROUP:error_25_offo
DGROUP:4D9B a2204_21        db '2204'
DGROUP:4D9F                 db 6
DGROUP:4DA0 aChOnlyNonStartablePartitionsExist_ db '<CH> Only non-startable partitions exist. ',6,'0100',6,'<CW>',0
DGROUP:4DD5 error_26        db 6                    ; DATA XREF: DGROUP:error_26_offo
DGROUP:4DD6 a2204_22        db '2204'
DGROUP:4DDA                 db 6
DGROUP:4DDB aChOnlyPartitionsOnDrive1CanBeMadeA db '<CH>Only partitions on Drive 1 can be made active.<W>',0
DGROUP:4E11 error_27        db 6                    ; DATA XREF: DGROUP:error_27_offo
DGROUP:4E12 a2204_23        db '2204'
DGROUP:4E16                 db 6
DGROUP:4E17 aChMaximumNumberOfLogicalDosDrivesI db '<CH>Maximum number of Logical DOS Drives installed.<W>',0
DGROUP:4E4E error_28        db 6                    ; DATA XREF: DGROUP:error_28_offo
DGROUP:4E4F a2204_24        db '2204'
DGROUP:4E53                 db 6
DGROUP:4E54 aChCannotCreateAZeroSizePartition_ db '<CH>Cannot create a zero size partition. '
DGROUP:4E7D                 db 6
DGROUP:4E7E a0100_32        db '0100'
DGROUP:4E82                 db 6
DGROUP:4E83 aCw_19          db '<CW>',0
DGROUP:4E88 error_29        db 6                    ; DATA XREF: DGROUP:error_29_offo
DGROUP:4E89 a2204_25        db '2204'
DGROUP:4E8D                 db 6
DGROUP:4E8E aChDriveIiAlreadyDeleted_ db '<CH>Drive <II> already deleted. '
DGROUP:4EAE                 db 6
DGROUP:4EAF a0100_33        db '0100'
DGROUP:4EB3                 db 6
DGROUP:4EB4 aCw_20          db '<CW>',0
DGROUP:4EB9 error_30        db 6                    ; DATA XREF: DGROUP:error_30_offo
DGROUP:4EBA a2204_26        db '2204'
DGROUP:4EBE                 db 6
DGROUP:4EBF aChbUnableToAccessDriveI_Ow db '<CHB>Unable to access Drive <I>.<OW>',0
DGROUP:4EE4 error_31        db 6                    ; DATA XREF: DGROUP:error_31_offo
DGROUP:4EE5 a2304           db '2304'
DGROUP:4EE9                 db 6
DGROUP:4EEA aChInvalidEntryPleaseEnterIii_W db '<CH>Invalid entry, please enter <III>.<W>',0
DGROUP:4F14 error_32        db 6                    ; DATA XREF: DGROUP:error_32_offo
DGROUP:4F15 a2204_27        db '2204'
DGROUP:4F19                 db 6
DGROUP:4F1A aChCannotDeletePrimaryDosPartitionO db '<CH>Cannot delete Primary DOS Partition on drive 1  '
DGROUP:4F4E                 db 6
DGROUP:4F4F a0104_43        db '0104'
DGROUP:4F53                 db 6
DGROUP:4F54 aChWhenAnExtendedDosPartitionExists db '<CH>when an Extended DOS Partition exists.<W>',0
DGROUP:4F82 error_33        db 6                    ; DATA XREF: DGROUP:error_33_offo
DGROUP:4F83 a2200           db '2200'
DGROUP:4F87                 db 6
DGROUP:4F88 aC_2            db '<C> '
DGROUP:4F8C                 db 6
DGROUP:4F8D a0104_44        db '0104'
DGROUP:4F91                 db 6
DGROUP:4F92 aChInvalidEntry_W db '<CH>Invalid entry.<W>',0
DGROUP:4FA8 error_34        db 6                    ; DATA XREF: DGROUP:error_34_offo
DGROUP:4FA9 a2204_28        db '2204'
DGROUP:4FAD                 db 6
DGROUP:4FAE aChVolumeLabelDoesNotMatch_W db '<CH>Volume label does not match.<W>',0
DGROUP:4FD2 error_35        db 6                    ; DATA XREF: DGROUP:error_35_offo
DGROUP:4FD3 a2204_29        db '2204'
DGROUP:4FD7                 db 6
DGROUP:4FD8 aChCannotCreateLogicalDosDriveWitho db '<CH>Cannot create Logical DOS Drive without '
DGROUP:5004                 db 6
DGROUP:5005 a0104_45        db '0104'
DGROUP:5009                 db 6
DGROUP:500A aChAnExtendedDosPartitionOnTheCurre db '<CH>an Extended DOS Partition on the current drive.<W>',0
DGROUP:5041 error_36        db 6                    ; DATA XREF: DGROUP:error_36_offo
DGROUP:5042 a2204_30        db '2204'
DGROUP:5046                 db 6
DGROUP:5047 aChNoLogicalDosDriveSToDelete_ db '<CH>No Logical DOS Drive(s) to delete. '
DGROUP:506E                 db 6
DGROUP:506F a0100_34        db '0100'
DGROUP:5073                 db 6
DGROUP:5074 aCw_21          db '<CW>',0
DGROUP:5079 error_37        db 6                    ; DATA XREF: DGROUP:error_37_offo
DGROUP:507A a2204_31        db '2204'
DGROUP:507E                 db 6
DGROUP:507F aChPartitionSelectedIsNotAPrimaryDo db '<CH>Partition selected is not a Primary DOS Partition '
DGROUP:50B5                 db 6
DGROUP:50B6 a0100_35        db '0100'
DGROUP:50BA                 db 6
DGROUP:50BB aCw_22          db '<CW>',0
DGROUP:50C0 error_38        db 6                    ; DATA XREF: DGROUP:error_38_offo
DGROUP:50C1 a2204_32        db '2204'
DGROUP:50C5                 db 6
DGROUP:50C6 aChNoNonDosPartitionToDelete_ db '<CH>No Non-DOS Partition to delete. '
DGROUP:50EA                 db 6
DGROUP:50EB a0100_36        db '0100'
DGROUP:50EF                 db 6
DGROUP:50F0 aCw_23          db '<CW>',0
DGROUP:50F5 error_39        db 6                    ; DATA XREF: DGROUP:error_39_offo
DGROUP:50F6 a2204_33        db '2204'
DGROUP:50FA                 db 6
DGROUP:50FB aChPartitionSelectedIsNotANonDosPar db '<CH>Partition selected is not a Non-DOS Partition '
DGROUP:512D                 db 6
DGROUP:512E a0100_37        db '0100'
DGROUP:5132                 db 6
DGROUP:5133 aCw_24          db '<CW>',0
DGROUP:5138 debug_msg       db 6                    ; DATA XREF: DGROUP:debug_msg_offo
DGROUP:5139 a2200_0         db '2200'
DGROUP:513D                 db 6
DGROUP:513E aHwbMessageStringErrorI_SeeHeaderOf db '<HWB>Message string error <I>. See header of FDISKC.MSG for error'
DGROUP:513E                 db ' definition',0
DGROUP:518B internal_error  db 6                    ; DATA XREF: DGROUP:inter_err_offo
DGROUP:518C a2204_34        db '2204'
DGROUP:5190                 db 6
DGROUP:5191 aHbwInternalError db '<HBW>Internal error',0
DGROUP:51A5 txtRemote       db '* Remote * ',0      ; DATA XREF: DGROUP:REMOTEo
DGROUP:51B1 txtPriDos       db 'PRI DOS',0          ; DATA XREF: DGROUP:PRIDOSo
DGROUP:51B9 txtXenix        db ' XENIX ',0          ; DATA XREF: DGROUP:XENIXo
DGROUP:51C1 txtExtDos       db 'EXT DOS',0          ; DATA XREF: DGROUP:EXTDOSo
DGROUP:51C9 txtTable        db ' Table ',0          ; DATA XREF: DGROUP:TABLEo
DGROUP:51D1 txtPcIx         db ' PC/IX ',0          ; DATA XREF: DGROUP:PCIXo
DGROUP:51D9 txtHpfs         db ' HPFS  ',0          ; DATA XREF: DGROUP:HPFSo
DGROUP:51E1 txtNovell       db 'NOVELL ',0          ; DATA XREF: DGROUP:NOVELLo
DGROUP:51E9 txtCpM          db ' CP/M  ',0          ; DATA XREF: DGROUP:CPMo
DGROUP:51F1 txtNonDos       db 'Non-DOS',0          ; DATA XREF: DGROUP:NONDOSo
DGROUP:51F9                 align 2
DGROUP:51FA menu_1_offset   dw offset menu_1        ; DATA XREF: do_main_menu:loc_3FBr
DGROUP:51FC menu_1_segment  dw seg DGROUP           ; DATA XREF: do_main_menu:loc_3F7r
DGROUP:51FE menu_2_offset   dw offset menu_2        ; DATA XREF: do_main_menu+B5r
DGROUP:5200 menu_2_segment  dw seg DGROUP           ; DATA XREF: do_main_menu:mainmenu_11r
DGROUP:5202 menu_3_offset   dw offset menu_3        ; DATA XREF: do_main_menu+C2r
DGROUP:5202                                         ; delete_partition+73r ...
DGROUP:5204 menu_3_segment  dw seg DGROUP           ; DATA XREF: do_main_menu+BEr
DGROUP:5204                                         ; delete_partition:dp_2r ...
DGROUP:5206 menu_4_offset   dw offset menu_4        ; DATA XREF: do_main_menu+146r
DGROUP:5208 menu_4_segment  dw seg DGROUP           ; DATA XREF: do_main_menu+142r
DGROUP:520A menu_5_offset   dw offset menu_5        ; DATA XREF: do_main_menu+E4r
DGROUP:520A                                         ; delete_partition+31r ...
DGROUP:520C menu_5_segment  dw seg DGROUP           ; DATA XREF: do_main_menu+E0r
DGROUP:520C                                         ; delete_partition+2Dr ...
DGROUP:520E menu_6_offset   dw offset menu_6        ; DATA XREF: do_main_menu+132r
DGROUP:5210 menu_6_segment  dw seg DGROUP           ; DATA XREF: do_main_menu+12Er
DGROUP:5212 menu_7_offset   dw offset menu_7        ; DATA XREF: do_main_menu+CFr
DGROUP:5212                                         ; delete_partition+9Ar ...
DGROUP:5214 menu_7_segment  dw seg DGROUP           ; DATA XREF: do_main_menu+CBr
DGROUP:5214                                         ; delete_partition+96r ...
DGROUP:5216 menu_8_offset   dw offset menu_8        ; DATA XREF: create_partition+1Cr
DGROUP:5218 menu_8_segment  dw seg DGROUP           ; DATA XREF: create_partition+18r
DGROUP:521A menu_9_offset   dw offset menu_9        ; DATA XREF: create_partition+58r
DGROUP:521C menu_9_segment  dw seg DGROUP           ; DATA XREF: create_partition+54r
DGROUP:521E menu_10_offset  dw offset menu_10       ; DATA XREF: create_partition+77r
DGROUP:5220 menu_10_segment dw seg DGROUP           ; DATA XREF: create_partition+73r
DGROUP:5222 menu_11_offset  dw offset menu_11       ; DATA XREF: delete_partition+A7r
DGROUP:5222                                         ; dos_delete+42r ...
DGROUP:5224 menu_11_segment dw seg DGROUP           ; DATA XREF: delete_partition+A3r
DGROUP:5224                                         ; dos_delete+3Er ...
DGROUP:5226 menu_12_offset  dw offset menu_12       ; DATA XREF: dos_create_partition+22r
DGROUP:5226                                         ; input_dos_create+20r
DGROUP:5228 menu_12_segment dw seg DGROUP           ; DATA XREF: dos_create_partition+1Er
DGROUP:5228                                         ; input_dos_create+1Cr
DGROUP:522A menu_13_offset  dw offset menu_13       ; DATA XREF: dos_create_partition+140r
DGROUP:522C menu_13_segment dw seg DGROUP           ; DATA XREF: dos_create_partition+13Cr
DGROUP:522E menu_45_offset  dw offset menu_45       ; DATA XREF: dos_create_partition+14Er
DGROUP:5230 menu_45_segment dw seg DGROUP           ; DATA XREF: dos_create_partition+14Ar
DGROUP:5232 menu_14_offset  dw offset menu_14       ; DATA XREF: table_display+1D4r
DGROUP:5234 menu_14_segment dw seg DGROUP           ; DATA XREF: table_display+1D0r
DGROUP:5236 menu_15_offset  dw offset menu_15       ; DATA XREF: dos_delete+73r
DGROUP:5236                                         ; ext_delete+68r ...
DGROUP:5238 menu_15_segment dw seg DGROUP           ; DATA XREF: dos_delete+6Fr
DGROUP:5238                                         ; ext_delete+64r ...
DGROUP:523A menu_16_offset  dw offset menu_16       ; DATA XREF: input_dos_create+D2r
DGROUP:523A                                         ; ext_create_partition+FCr
DGROUP:523C menu_16_segment dw seg DGROUP           ; DATA XREF: input_dos_create+CEr
DGROUP:523C                                         ; ext_create_partition+F8r
DGROUP:523E menu_39_offset  dw offset menu_39       ; DATA XREF: input_dos_create+FCr
DGROUP:523E                                         ; input_dos_create+114r
DGROUP:5240 menu_39_segment dw seg DGROUP           ; DATA XREF: input_dos_create+F8r
DGROUP:5240                                         ; input_dos_create+110r
DGROUP:5242 menu_17_offset  dw offset menu_17       ; DATA XREF: ext_create_partition+20r
DGROUP:5244 menu_17_segment dw seg DGROUP           ; DATA XREF: ext_create_partition+1Cr
DGROUP:5246 menu_42_offset  dw offset menu_42       ; DATA XREF: ext_create_partition+156r
DGROUP:5246                                         ; ext_create_partition+16Er
DGROUP:5248 menu_42_segment dw seg DGROUP           ; DATA XREF: ext_create_partition+152r
DGROUP:5248                                         ; ext_create_partition+16Ar
DGROUP:524A menu_46_offset  dw offset menu_46       ; DATA XREF: wait_for_ESC+1Cr
DGROUP:524C menu_46_segment dw seg DGROUP           ; DATA XREF: wait_for_ESC+18r
DGROUP:524E menu_18_offset  dw offset menu_18       ; DATA XREF: volume_create+1Dr
DGROUP:5250 menu_18_segment dw seg DGROUP           ; DATA XREF: volume_create+19r
DGROUP:5252 menu_19_offset  dw offset menu_19       ; DATA XREF: volume_display+11Fr
DGROUP:5254 menu_19_segment dw seg DGROUP           ; DATA XREF: volume_display+11Br
DGROUP:5256 menu_43_offset  dw offset menu_43       ; DATA XREF: volume_display+138r
DGROUP:5258 menu_43_segment dw seg DGROUP           ; DATA XREF: volume_display+134r
DGROUP:525A menu_20_offset  dw offset menu_20       ; DATA XREF: volume_display+151r
DGROUP:525C menu_20_segment dw seg DGROUP           ; DATA XREF: volume_display+14Dr
DGROUP:525E menu_44_offset  dw offset menu_44       ; DATA XREF: volume_display+16Ar
DGROUP:5260 menu_44_segment dw seg DGROUP           ; DATA XREF: volume_display+166r
DGROUP:5262 menu_21_offset  dw offset menu_21       ; DATA XREF: volume_delete+B1r
DGROUP:5262                                         ; volume_create+11Er ...
DGROUP:5264 menu_21_segment dw seg DGROUP           ; DATA XREF: volume_delete+ADr
DGROUP:5264                                         ; volume_create+11Ar ...
DGROUP:5266 menu_22_offset  dw offset menu_22       ; DATA XREF: volume_create+149r
DGROUP:5268 menu_22_segment dw seg DGROUP           ; DATA XREF: volume_create+145r
DGROUP:526A menu_40_offset  dw offset menu_40       ; DATA XREF: volume_create+1A2r
DGROUP:526A                                         ; volume_create+1BAr
DGROUP:526C menu_40_segment dw seg DGROUP           ; DATA XREF: volume_create+19Er
DGROUP:526C                                         ; volume_create+1B6r
DGROUP:526E menu_23_offset  dw offset menu_23       ; DATA XREF: change_active_partition+20r
DGROUP:5270 menu_23_segment dw seg DGROUP           ; DATA XREF: change_active_partition+1Cr
DGROUP:5272 menu_24_offset  dw offset menu_24       ; DATA XREF: change_active_partition+187r
DGROUP:5274 menu_24_segment dw seg DGROUP           ; DATA XREF: change_active_partition+183r
DGROUP:5276 menu_25_offset  dw offset menu_25       ; DATA XREF: delete_partition+1Cr
DGROUP:5276                                         ; delete_partition+80r
DGROUP:5278 menu_25_segment dw seg DGROUP           ; DATA XREF: delete_partition+18r
DGROUP:5278                                         ; delete_partition+7Cr
DGROUP:527A menu_26_offset  dw offset menu_26       ; DATA XREF: delete_partition+8Dr
DGROUP:527C menu_26_segment dw seg DGROUP           ; DATA XREF: delete_partition+89r
DGROUP:527E menu_27_offset  dw offset menu_27       ; DATA XREF: delete_partition+B4r
DGROUP:5280 menu_27_segment dw seg DGROUP           ; DATA XREF: delete_partition+B0r
DGROUP:5282 menu_57_offset  dw offset menu_57       ; DATA XREF: delete_partition+C1r
DGROUP:5284 menu_57_segment dw seg DGROUP           ; DATA XREF: delete_partition+BDr
DGROUP:5286 menu_28_offset  dw offset menu_28       ; DATA XREF: dos_delete+20r
DGROUP:5288 menu_28_segment dw seg DGROUP           ; DATA XREF: dos_delete+1Cr
DGROUP:528A                 dw offset menu_unused
DGROUP:528C                 dw seg DGROUP
DGROUP:528E menu_55_offset  dw offset menu_55       ; DATA XREF: dos_delete+112r
DGROUP:5290 menu_55_segment dw seg DGROUP           ; DATA XREF: dos_delete:ddp_10r
DGROUP:5292 menu_56_offset  dw offset menu_56       ; DATA XREF: non_dos_delete+157r
DGROUP:5294 menu_56_segment dw seg DGROUP           ; DATA XREF: non_dos_delete+153r
DGROUP:5296 menu_30_offset  dw offset menu_30       ; DATA XREF: ext_delete+1Cr
DGROUP:5298 menu_30_segment dw seg DGROUP           ; DATA XREF: ext_delete+18r
DGROUP:529A menu_31_offset  dw offset menu_31       ; DATA XREF: ext_delete+7Fr
DGROUP:529C menu_31_segment dw seg DGROUP           ; DATA XREF: ext_delete:ed_1r
DGROUP:529E menu_32_offset  dw offset menu_32       ; DATA XREF: volume_delete+25r
DGROUP:52A0 menu_32_segment dw seg DGROUP           ; DATA XREF: volume_delete+21r
DGROUP:52A2 menu_33_offset  dw offset menu_33       ; DATA XREF: volume_delete+11Ar
DGROUP:52A4 menu_33_segment dw seg DGROUP           ; DATA XREF: volume_delete:vdel_12r
DGROUP:52A6 menu_34_offset  dw offset menu_34       ; DATA XREF: dos_delete+20Br
DGROUP:52A6                                         ; volume_delete+29Dr
DGROUP:52A8 menu_34_segment dw seg DGROUP           ; DATA XREF: dos_delete+207r
DGROUP:52A8                                         ; volume_delete+299r
DGROUP:52AA menu_41_offset  dw offset menu_41       ; DATA XREF: dos_delete+1C1r
DGROUP:52AA                                         ; volume_delete+1E1r
DGROUP:52AC menu_41_segment dw seg DGROUP           ; DATA XREF: dos_delete+1BDr
DGROUP:52AC                                         ; volume_delete+1DDr
DGROUP:52AE menu_58_offset  dw offset menu_58       ; DATA XREF: non_dos_delete+1Cr
DGROUP:52B0 menu_58_segment dw seg DGROUP           ; DATA XREF: non_dos_delete+18r
DGROUP:52B2 menu_59_offset  dw offset menu_59       ; DATA XREF: non_dos_delete+ABr
DGROUP:52B4 menu_59_segment dw seg DGROUP           ; DATA XREF: non_dos_delete+A7r
DGROUP:52B6 menu_35_offset  dw offset menu_35       ; DATA XREF: display_partition_information+1Cr
DGROUP:52B8 menu_35_segment dw seg DGROUP           ; DATA XREF: display_partition_information+18r
DGROUP:52BA menu_36_offset  dw offset menu_36       ; DATA XREF: display_partition_information+85r
DGROUP:52BC menu_36_segment dw seg DGROUP           ; DATA XREF: display_partition_information+81r
DGROUP:52BE menu_37_offset  dw offset menu_37       ; DATA XREF: display_volume_information+16r
DGROUP:52C0 menu_37_segment dw seg DGROUP           ; DATA XREF: display_volume_information+12r
DGROUP:52C2 menu_47_offset  dw offset menu_47       ; DATA XREF: change_current_drive+46r
DGROUP:52C4 menu_47_segment dw seg DGROUP           ; DATA XREF: change_current_drive+42r
DGROUP:52C6 menu_48_offset  dw offset menu_48       ; DATA XREF: change_current_drive+240r
DGROUP:52C8 menu_48_segment dw seg DGROUP           ; DATA XREF: change_current_drive+23Cr
DGROUP:52CA menu_49_offset  dw offset menu_49       ; DATA XREF: change_current_drive+259r
DGROUP:52CC menu_49_segment dw seg DGROUP           ; DATA XREF: change_current_drive+255r
DGROUP:52CE menu_50_offset  dw offset menu_50       ; DATA XREF: change_current_drive+272r
DGROUP:52D0 menu_50_segment dw seg DGROUP           ; DATA XREF: change_current_drive+26Er
DGROUP:52D2 menu_51_offset  dw offset menu_51       ; DATA XREF: change_current_drive+28Br
DGROUP:52D4 menu_51_segment dw seg DGROUP           ; DATA XREF: change_current_drive+287r
DGROUP:52D6 menu_52_offset  dw offset menu_52       ; DATA XREF: change_current_drive+29Er
DGROUP:52D8 menu_52_segment dw seg DGROUP           ; DATA XREF: change_current_drive+29Ar
DGROUP:52DA menu_53_offset  dw offset menu_53       ; DATA XREF: change_current_drive+2D2r
DGROUP:52DC menu_53_segment dw seg DGROUP           ; DATA XREF: change_current_drive+2CEr
DGROUP:52DE menu_54_offset  dw offset menu_54       ; DATA XREF: change_current_drive+50r
DGROUP:52E0 menu_54_segment dw seg DGROUP           ; DATA XREF: change_current_drive:ccd_1r
DGROUP:52E2 menu_38_offset  dw offset menu_38       ; DATA XREF: reboot_system+BAr
DGROUP:52E4 menu_38_segment dw seg DGROUP           ; DATA XREF: reboot_system:rebootsys_6r
DGROUP:52E6 menu_60_offset  dw offset menu_60       ; DATA XREF: reboot_system+B0r
DGROUP:52E8 menu_60_segment dw seg DGROUP           ; DATA XREF: reboot_system+ACr
DGROUP:52EA status_1_off    dw offset status_1      ; DATA XREF: dos_delete+266r
DGROUP:52EC status_1_seg    dw seg DGROUP           ; DATA XREF: dos_delete+262r
DGROUP:52EE status_2_off    dw offset status_2      ; DATA XREF: ext_delete+F5r
DGROUP:52F0 status_2_seg    dw seg DGROUP           ; DATA XREF: ext_delete+F1r
DGROUP:52F2 status_3_off    dw offset status_3      ; DATA XREF: volume_delete+329r
DGROUP:52F2                                         ; volume_delete+372r
DGROUP:52F4 status_3_seg    dw seg DGROUP           ; DATA XREF: volume_delete+36Er
DGROUP:52F6 status_4_off    dw offset status_4      ; DATA XREF: change_active_partition+2D5r
DGROUP:52F8 status_4_seg    dw seg DGROUP           ; DATA XREF: change_active_partition+2D1r
DGROUP:52FA status_5_off    dw offset status_5      ; DATA XREF: input_dos_create+1F2r
DGROUP:52FC status_5_seg    dw seg DGROUP           ; DATA XREF: input_dos_create+1EEr
DGROUP:52FE status_6_off    dw offset status_6      ; DATA XREF: ext_create_partition+247r
DGROUP:5300 status_6_seg    dw seg DGROUP           ; DATA XREF: ext_create_partition+243r
DGROUP:5302 status_7_off    dw offset status_7      ; DATA XREF: volume_create+2A8r
DGROUP:5304 status_7_seg    dw seg DGROUP           ; DATA XREF: volume_create+2A4r
DGROUP:5306 status_8_off    dw offset status_8      ; DATA XREF: table_display+1DEr
DGROUP:5308 status_8_seg    dw seg DGROUP           ; DATA XREF: table_display:td_30r
DGROUP:530A status_9_off    dw offset status_9      ; DATA XREF: volume_display+19Ar
DGROUP:530C status_9_seg    dw seg DGROUP           ; DATA XREF: volume_display+196r
DGROUP:530E status_10_off   dw offset status_10     ; DATA XREF: volume_delete+479r
DGROUP:5310 status_10_seg   dw seg DGROUP           ; DATA XREF: volume_delete+475r
DGROUP:5312 status_11_off   dw offset status_11
DGROUP:5314 status_11_seg   dw seg DGROUP
DGROUP:5316 status_12_off   dw offset status_12     ; DATA XREF: dos_create_partition+203r
DGROUP:5316                                         ; input_dos_create+211r
DGROUP:5318 status_12_seg   dw seg DGROUP           ; DATA XREF: dos_create_partition+1FFr
DGROUP:5318                                         ; input_dos_create+20Dr
DGROUP:531A status_13_off   dw offset status_13     ; DATA XREF: non_dos_delete+1AFr
DGROUP:531C status_13_seg   dw seg DGROUP           ; DATA XREF: non_dos_delete+1ABr
DGROUP:531E error_1_off     dw offset error_1       ; DATA XREF: get_drive_parameters+30r
DGROUP:5320 error_1_seg     dw seg DGROUP           ; DATA XREF: get_drive_parameters:gdprm_1r
DGROUP:5322 error_2_off     dw offset error_2       ; DATA XREF: do_main_menu+1BDr
DGROUP:5322                                         ; write_boot_record+82r
DGROUP:5324 error_2_seg     dw seg DGROUP           ; DATA XREF: do_main_menu+1B9r
DGROUP:5324                                         ; write_boot_record+7Er
DGROUP:5326 error_3_off     dw offset error_3
DGROUP:5328 error_3_seg     dw seg DGROUP
DGROUP:532A error_4_off     dw offset error_4
DGROUP:532C error_4_seg     dw seg DGROUP
DGROUP:532E error_5_off     dw offset error_5
DGROUP:5330 error_5_seg     dw seg DGROUP
DGROUP:5332 error_6_off     dw offset error_6       ; DATA XREF: delete_partition+13Fr
DGROUP:5334 error_6_seg     dw seg DGROUP           ; DATA XREF: delete_partition+13Br
DGROUP:5336 error_7_off     dw offset error_7       ; DATA XREF: delete_partition+16Dr
DGROUP:5338 error_7_seg     dw seg DGROUP           ; DATA XREF: delete_partition+169r
DGROUP:533A error_8_off     dw offset error_8       ; DATA XREF: dos_create_partition+215r
DGROUP:533C error_8_seg     dw seg DGROUP           ; DATA XREF: dos_create_partition+211r
DGROUP:533E error_9_off     dw offset error_9       ; DATA XREF: ext_create_partition+26Br
DGROUP:5340 error_9_seg     dw seg DGROUP           ; DATA XREF: ext_create_partition:ecp_18r
DGROUP:5342 error_10_off    dw offset error_10      ; DATA XREF: create_partition+12Cr
DGROUP:5342                                         ; dos_create_partition+ACr ...
DGROUP:5344 error_10_seg    dw seg DGROUP           ; DATA XREF: create_partition:cp_10r
DGROUP:5344                                         ; dos_create_partition+A8r ...
DGROUP:5346 error_12_off    dw offset error_12      ; DATA XREF: volume_create+1AFr
DGROUP:5348 error_12_seg    dw seg DGROUP           ; DATA XREF: volume_create+1ABr
DGROUP:534A error_13_off    dw offset error_13      ; DATA XREF: input_dos_create+109r
DGROUP:534A                                         ; ext_create_partition+163r
DGROUP:534C error_13_seg    dw seg DGROUP           ; DATA XREF: input_dos_create+105r
DGROUP:534C                                         ; ext_create_partition+15Fr
DGROUP:534E error_14_off    dw offset error_14      ; DATA XREF: delete_partition+1D2r
DGROUP:5350 error_14_seg    dw seg DGROUP           ; DATA XREF: delete_partition:dp_16r
DGROUP:5352 error_15_off    dw offset error_15      ; DATA XREF: change_active_partition+123r
DGROUP:5354 error_15_seg    dw seg DGROUP           ; DATA XREF: change_active_partition+11Fr
DGROUP:5356 error_16_off    dw offset error_16      ; DATA XREF: change_active_partition+2EFr
DGROUP:5358 error_16_seg    dw seg DGROUP           ; DATA XREF: change_active_partition:cap_28r
DGROUP:535A error_17_off    dw offset error_17      ; DATA XREF: change_active_partition+1F9r
DGROUP:535C error_17_seg    dw seg DGROUP           ; DATA XREF: change_active_partition+1F5r
DGROUP:535E error_19_off    dw offset error_19      ; DATA XREF: create_partition+10Br
DGROUP:535E                                         ; ext_create_partition+275r
DGROUP:5360 error_19_seg    dw seg DGROUP           ; DATA XREF: create_partition:cp_8r
DGROUP:5360                                         ; ext_create_partition:ecp_19r
DGROUP:5362 error_20_off    dw offset error_20      ; DATA XREF: volume_create+2CCr
DGROUP:5364 error_20_seg    dw seg DGROUP           ; DATA XREF: volume_create+2C8r
DGROUP:5366 error_21_off    dw offset error_21      ; DATA XREF: ext_delete+112r
DGROUP:5368 error_21_seg    dw seg DGROUP           ; DATA XREF: ext_delete:ed_7r
DGROUP:536A error_22_off    dw offset error_22      ; DATA XREF: volume_delete+3E6r
DGROUP:536C error_22_seg    dw seg DGROUP           ; DATA XREF: volume_delete+3E2r
DGROUP:536E error_23_off    dw offset error_23      ; DATA XREF: get_num_input+141r
DGROUP:536E                                         ; get_num_input+18Er ...
DGROUP:5370 error_23_seg    dw seg DGROUP           ; DATA XREF: get_num_input+13Dr
DGROUP:5370                                         ; get_num_input+18Ar ...
DGROUP:5372 error_24_off    dw offset error_24      ; DATA XREF: change_active_partition+89r
DGROUP:5374 error_24_seg    dw seg DGROUP           ; DATA XREF: change_active_partition:cap_04r
DGROUP:5376 error_25_off    dw offset error_25      ; DATA XREF: change_active_partition+14Er
DGROUP:5378 error_25_seg    dw seg DGROUP           ; DATA XREF: change_active_partition:cap_12r
DGROUP:537A error_26_off    dw offset error_26      ; DATA XREF: change_active_partition+2F9r
DGROUP:537C error_26_seg    dw seg DGROUP           ; DATA XREF: change_active_partition:cap_29r
DGROUP:537E error_27_off    dw offset error_27      ; DATA XREF: dos_create_partition+12Er
DGROUP:537E                                         ; volume_create+2F3r
DGROUP:5380 error_27_seg    dw seg DGROUP           ; DATA XREF: dos_create_partition+12Ar
DGROUP:5380                                         ; volume_create+2EFr
DGROUP:5382 error_28_off    dw offset error_28      ; DATA XREF: input_dos_create+1B8r
DGROUP:5382                                         ; ext_create_partition+212r ...
DGROUP:5384 error_28_seg    dw seg DGROUP           ; DATA XREF: input_dos_create+1B4r
DGROUP:5384                                         ; ext_create_partition+20Er ...
DGROUP:5386 error_29_off    dw offset error_29      ; DATA XREF: volume_delete+265r
DGROUP:5388 error_29_seg    dw seg DGROUP           ; DATA XREF: volume_delete+261r
DGROUP:538A error_30_off    dw offset error_30      ; DATA XREF: do_main_menu+8Br
DGROUP:538C error_30_seg    dw seg DGROUP           ; DATA XREF: do_main_menu+87r
DGROUP:538E error_31_off    dw offset error_31      ; DATA XREF: get_num_input+15Dr
DGROUP:538E                                         ; get_num_input+1AAr ...
DGROUP:5390 error_31_seg    dw seg DGROUP           ; DATA XREF: get_num_input+159r
DGROUP:5390                                         ; get_num_input+1A6r ...
DGROUP:5392 error_32_off    dw offset error_32      ; DATA XREF: dos_delete+28Cr
DGROUP:5394 error_32_seg    dw seg DGROUP           ; DATA XREF: dos_delete:ddp_21r
DGROUP:5396 error_33_off    dw offset error_33      ; DATA XREF: get_large_num_input+1CCr
DGROUP:5398 error_33_seg    dw seg DGROUP           ; DATA XREF: get_large_num_input:glni_27r
DGROUP:539A error_34_off    dw offset error_34      ; DATA XREF: dos_delete+278r
DGROUP:539A                                         ; volume_delete+236r
DGROUP:539C error_34_seg    dw seg DGROUP           ; DATA XREF: dos_delete:ddp_19r
DGROUP:539C                                         ; volume_delete+232r
DGROUP:539E error_35_off    dw offset error_35      ; DATA XREF: create_partition+B0r
DGROUP:53A0 error_35_seg    dw seg DGROUP           ; DATA XREF: create_partition:cp_1r
DGROUP:53A2 error_36_off    dw offset error_36      ; DATA XREF: delete_partition+1A0r
DGROUP:53A2                                         ; volume_delete+498r
DGROUP:53A4 error_36_seg    dw seg DGROUP           ; DATA XREF: delete_partition+19Cr
DGROUP:53A4                                         ; volume_delete+494r
DGROUP:53A6 error_37_off    dw offset error_37      ; DATA XREF: dos_delete+282r
DGROUP:53A8 error_37_seg    dw seg DGROUP           ; DATA XREF: dos_delete:ddp_20r
DGROUP:53AA error_38_off    dw offset error_38      ; DATA XREF: delete_partition+1C8r
DGROUP:53AC error_38_seg    dw seg DGROUP           ; DATA XREF: delete_partition+1C4r
DGROUP:53AE error_39_off    dw offset error_39      ; DATA XREF: non_dos_delete+1C1r
DGROUP:53B0 error_39_seg    dw seg DGROUP           ; DATA XREF: non_dos_delete:ndd_11r
DGROUP:53B2 debug_msg_off   dw offset debug_msg     ; DATA XREF: display+2Cr
DGROUP:53B2                                         ; display+11Er ...
DGROUP:53B4 debug_msg_seg   dw seg DGROUP           ; DATA XREF: display+28r
DGROUP:53B4                                         ; display:display_18r ...
DGROUP:53B6 inter_err_off   dw offset internal_error ; DATA XREF: internal_program_error+4r
DGROUP:53B8 inter_err_seg   dw seg DGROUP           ; DATA XREF: internal_program_errorr
DGROUP:53BA REMOTE          dw offset txtRemote     ; DATA XREF: load_logical_drive+256r
DGROUP:53BA                                         ; "* Remote * "
DGROUP:53BC PRIDOS          dw offset txtPriDos     ; DATA XREF: table_display:td_ptype_PRIDOSr
DGROUP:53BC                                         ; "PRI DOS"
DGROUP:53BE XENIX           dw offset txtXenix      ; DATA XREF: table_display:td_ptype_XENIXr
DGROUP:53BE                                         ; " XENIX "
DGROUP:53C0 EXTDOS          dw offset txtExtDos     ; DATA XREF: table_display:td_ptype_EXTENDEDr
DGROUP:53C0                                         ; "EXT DOS"
DGROUP:53C2 TABLE           dw offset txtTable      ; DATA XREF: table_display:td_ptype_TABLEr
DGROUP:53C2                                         ; " Table "
DGROUP:53C4 PCIX            dw offset txtPcIx       ; DATA XREF: table_display:td_ptype_PCIXr
DGROUP:53C4                                         ; " PC/IX "
DGROUP:53C6 HPFS            dw offset txtHpfs       ; DATA XREF: table_display:td_ptype_HPFSr
DGROUP:53C6                                         ; " HPFS  "
DGROUP:53C8 NOVELL          dw offset txtNovell     ; DATA XREF: table_display:td_ptype_NOVELLr
DGROUP:53C8                                         ; "NOVELL "
DGROUP:53CA CPM             dw offset txtCpM        ; DATA XREF: table_display:td_ptype_CPMr
DGROUP:53CA                                         ; " CP/M  "
DGROUP:53CC NONDOS          dw offset txtNonDos     ; DATA XREF: table_display:td_28r
DGROUP:53CC                                         ; "Non-DOS"
DGROUP:53CE _atopsp         dw 0                    ; DATA XREF: seg000:6D0Ew
DGROUP:53D0 _aexit_rtn      dw offset _exit_        ; DATA XREF: seg000:6D6Bw
DGROUP:53D0                                         ; _chkstk-E8Dr
DGROUP:53D2 _asizds         dw 0                    ; DATA XREF: seg000:6CEAw
DGROUP:53D4 _nheap_desc     db 2 dup(0), 5, 15h dup(0) ; DATA XREF: seg000:6CEEo
DGROUP:53D4                                         ; seg000:7F0Do ...
DGROUP:53EC cfile           db '_C_FILE_INFO=',0    ; DATA XREF: _cinit+6Eo
DGROUP:53FA _aintdiv        dd 0                    ; DATA XREF: _cinit+5w
DGROUP:53FA                                         ; _ctermsub+Er ...
DGROUP:53FE _fac            dd 0
DGROUP:5402                 dd 0
DGROUP:5406                 dw 0
DGROUP:5408 errno           dw 0                    ; DATA XREF: maperror+25w
DGROUP:540A umaskval        dw 0
DGROUP:540C _pspadr         dw 0
DGROUP:540E _psp            dw 0                    ; DATA XREF: seg000:6D23w
DGROUP:540E                                         ; _cinit+28r ...
DGROUP:5410 _dosvermajor    db 0                    ; DATA XREF: _setargv+8w
DGROUP:5410                                         ; maperror+7r
DGROUP:5411 _dosverminor    db 0
DGROUP:5412 _osmode         db 0
DGROUP:5413 _doserrno       dw 0                    ; DATA XREF: maperrorw
DGROUP:5415 _nfile          dw 20                   ; DATA XREF: _lseek+9r
DGROUP:5415                                         ; _write+9r
DGROUP:5417 _osfile         db 3 dup(81h)           ; DATA XREF: _cinit+86o
DGROUP:5417                                         ; _cinit:devloopw ...
DGROUP:541A                 db 2 dup(1)
DGROUP:541C                 db 15 dup(0)
DGROUP:542B _argc           dw 0                    ; DATA XREF: seg000:6D56r
DGROUP:542B                                         ; _setargv+C3w
DGROUP:542D _argv           dw 0                    ; DATA XREF: seg000:6D52r
DGROUP:542D                                         ; _setargv+D6w
DGROUP:542F environ         dw 0                    ; DATA XREF: seg000:6D4Er
DGROUP:5431 _pgmptr         dw offset dos2nam       ; DATA XREF: _setargv+2Ew
DGROUP:5431                                         ; _setargv+E4r
DGROUP:5433 _pgmptr_2       dw seg DGROUP           ; DATA XREF: _setargv+1Bw
DGROUP:5435 dos2nam         db 0                    ; DATA XREF: DGROUP:_pgmptro
DGROUP:5436 _child          dw 0
DGROUP:5438 _ovlflag        db 0                    ; DATA XREF: _ctermsub+18r
DGROUP:5439 _intno          db 0                    ; DATA XREF: _ctermsub+20r
DGROUP:543A _ovlvec         dd 0                    ; DATA XREF: _ctermsub+23r
DGROUP:543E                 db 0
DGROUP:543F isdigit         db 9 dup(20h), 5 dup(28h), 12h dup(20h), 48h, 0Fh dup(10h)
DGROUP:543F                                         ; DATA XREF: display+27Er
DGROUP:543F                                         ; display+29Fr ...
DGROUP:543F                 db 0Ah dup(84h), 7 dup(10h), 6 dup(81h), 14h dup(01h)
DGROUP:543F                 db 6 dup(10h), 6 dup(82h), 14h dup(02h), 4 dup(10h), 20h
DGROUP:543F                 db 80h dup(00h)
DGROUP:553F                 align 2
DGROUP:5540 _cpush          dw 0FFFFh               ; DATA XREF: getch:getch_1r
DGROUP:5540                                         ; getch+9w
DGROUP:5542 retadr          dw 0                    ; DATA XREF: _setargvw
DGROUP:5542                                         ; _setargv+18Ar
DGROUP:5544 err_conv_tbl    db 00h, 16h, 2 dup(02h), 18h, 0Dh, 09h, 3 dup(0Ch), 07h
DGROUP:5544                                         ; DATA XREF: maperror:inrangeo
DGROUP:5544                 db 08h, 2 dup(16h), 0FFh, 02h, 0Dh, 12h, 02h, 0FFh
DGROUP:5558 lookuptable     db 06h, 2 dup(00h), 06h, 00h, 01h, 2 dup(00h), 10h, 00h
DGROUP:5558                                         ; DATA XREF: _output:output_loopoko
DGROUP:5558                 db 03h, 06h, 00h, 06h, 02h, 10h, 04h, 3 dup(45h), 5 dup(05h)
DGROUP:5558                 db 35h, 30h, 00h, 50h, 4 dup(00h), 2 dup(20h), 30h, 50h
DGROUP:5558                 db 58h, 07h, 08h, 00h, 3 dup(30h), 57h, 50h, 07h, 2 dup(00h)
DGROUP:5558                 db 2 dup(20h), 5 dup(00h), 08h, 6 dup(60h), 2 dup(00h)
DGROUP:5558                 db 2 dup(70h), 4 dup(78h), 08h, 07h, 08h, 2 dup(00h), 07h
DGROUP:5558                 db 00h, 3 dup(08h), 2 dup(00h), 08h, 00h, 08h, 2 dup(00h)
DGROUP:5558                 db 08h
DGROUP:55B1 nullstring      db '(null)'             ; DATA XREF: _output+1A3o
DGROUP:55B7 nullstrlen      dw 6                    ; DATA XREF: _output+1A6r
DGROUP:55B9                 align 2
DGROUP:55BA                 dw 0FFFFh
DGROUP:55BC end_of_bss      dw 8B10h                ; DATA XREF: _chkstk+7r
DGROUP:55BC                                         ; _stackavail+1r
DGROUP:55BE STDIN           dw offset _bufin        ; DATA XREF: _flsbuf+30o
DGROUP:55BE                                         ; _getbuf+11o ...
DGROUP:55C0 STDIN_cnt       dw 0
DGROUP:55C2 STDIN_base      dw offset _bufin
DGROUP:55C4 STDIN_flag      db 1
DGROUP:55C5 STDIN_file      db 0
DGROUP:55C6 STDOUT          dw 0                    ; DATA XREF: _flsbuf+4Ao
DGROUP:55C8 STDOUT_cnt      dw 0
DGROUP:55CA STDOUT_base     dw 0
DGROUP:55CC STDOUT_flag     db 2
DGROUP:55CD STDOUT_file     db 1
DGROUP:55CE STDERR          dw 0                    ; DATA XREF: _flsbuf+50o
DGROUP:55D0 STDERR_cnt      dw 0
DGROUP:55D2 STDERR_base     dw 0
DGROUP:55D4 STDERR_flag     db 2
DGROUP:55D5 STDERR_file     db 2
DGROUP:55D6 STDAUX          dw 0
DGROUP:55D8 STDAUX_cnt      dw 0
DGROUP:55DA STDAUX_base     dw 0
DGROUP:55DC STDAUX_flag     db 84h
DGROUP:55DD STDAUX_file     db 3
DGROUP:55DE STDPRN          dw 0                    ; DATA XREF: _flsbuf+56o
DGROUP:55E0 STDPRN_cnt      dw 0
DGROUP:55E2 STDPRN_base     dw 0
DGROUP:55E4 STDPRN_flag     db 2
DGROUP:55E5 STDPRN_file     db 4
DGROUP:55E6                 db 120 dup(0)
DGROUP:565E _iob2           db 1                    ; DATA XREF: _flsbuf+34o
DGROUP:565E                                         ; _getbuf+15o ...
DGROUP:565F _iob2_charbuf   db 0
DGROUP:5660 _iob2_bufsiz    dw 512
DGROUP:5662 _iob2_tmpnum    dw 0
DGROUP:5664 _iobuf2_padding dw 0
DGROUP:5666                 db 152 dup(0)
DGROUP:56FE word_E1CE       dw 5656h                ; DATA XREF: sub_7EBC:loc_7ED6r
DGROUP:5700 _cfltcvt        dw offset _fptrap       ; DATA XREF: _output:f3r
DGROUP:5702 _cropzeros      dw offset _fptrap       ; DATA XREF: _output+2ABr
DGROUP:5704                 dw offset _fptrap
DGROUP:5706 _forcdecpt      dw offset _fptrap       ; DATA XREF: _output+297r
DGROUP:5708                 dw offset _fptrap
DGROUP:570A _cldcvt         dw offset _fptrap       ; DATA XREF: _output+275r
DGROUP:570C                 db 8 dup(0)
DGROUP:5714 _amblksiz       dw 2000h                ; DATA XREF: _growseg+2Er
DGROUP:5716 _qczrinit       dw 0                    ; DATA XREF: seg000:6D39r
DGROUP:5718 _aDBswpflg      dw 0                    ; DATA XREF: _chkstk-EA1r
DGROUP:5718                                         ; _exit_+31r ...
DGROUP:571A _aDBswpchk      dw offset _aDBretaddr   ; DATA XREF: getch+1Dr
DGROUP:571A                                         ; _write+1Er
DGROUP:571C _aDBrterr       dw offset _aDBretaddr   ; DATA XREF: _chkstk-E96r
DGROUP:571E _aDBexit        dw offset _aDBretaddr   ; DATA XREF: _exit_+39r
DGROUP:5720                 db 4 dup(0)
DGROUP:5724                 dw seg seg001
DGROUP:5726                 db 2 dup(0)
DGROUP:5728 fpmath          dd 0                    ; DATA XREF: _cinit+19r
DGROUP:5728                                         ; _cinit+39r ...
DGROUP:572C fpdata          dd 0                    ; DATA XREF: _cinit+31r
DGROUP:5730 fpsignal        dd 0                    ; DATA XREF: _cinit:fpokr
DGROUP:5730                                         ; _cinit+24w
DGROUP:5734 xpbegin         dw offset loc_7EB4      ; DATA XREF: _cinit+BBo
DGROUP:5734                                         ; _cinit+BEo ...
DGROUP:5736 _strbuf_ptr     dw 7E7Eh                ; DATA XREF: seg000:6D2Bo
DGROUP:5736                                         ; _exit_+2Bo ...
DGROUP:5738 _strbuf_cnt     dw 7E7Eh                ; DATA XREF: sprintf+18w
DGROUP:5738                                         ; sprintf+30w
DGROUP:573A _strbuf_base    dw 7E7Eh                ; DATA XREF: sprintf+10w
DGROUP:573C _strbuf_flag    db 7Eh                  ; DATA XREF: sprintf+8w
DGROUP:573D _strbuf_file    db 7Eh
DGROUP:573E xontab          dw 7E7Eh                ; DATA XREF: _exit_+1Fo
DGROUP:573E                                         ; _exit_+22o
DGROUP:5740 reboot_flag     db ?                    ; DATA XREF: main:loc_7Bw
DGROUP:5740                                         ; main:_main_08r ...
DGROUP:5741 dx_buff         db 17 dup(?)            ; DATA XREF: get_fs_and_vol+1Fo
DGROUP:5752 dx_buff_file_system db ?                ; DATA XREF: get_volume+F8r
DGROUP:5752                                         ; get_volume+111o ...
DGROUP:5753                 db 7 dup(?)
DGROUP:575A video_mode      db ?                    ; DATA XREF: init_video_information+1Cw
DGROUP:575A                                         ; init_video_information+34r ...
DGROUP:575B                 db ?
DGROUP:575C p_px            db ?                    ; DATA XREF: parse_init+17o
DGROUP:575C                                         ; parse_init+70w
DGROUP:575D p_px_p_maxp     db ?                    ; DATA XREF: parse_init+2Aw
DGROUP:575E p_px_p_con1_ptr dw ?                    ; DATA XREF: parse_init+2Dw
DGROUP:5760 p_px_p_maxs     db ?                    ; DATA XREF: parse_init+33w
DGROUP:5761 p_px_p_swi1_ptr dw ?                    ; DATA XREF: parse_init+38w
DGROUP:5763 p_px_p_swi2_ptr dw ?                    ; DATA XREF: parse_init+3Ew
DGROUP:5765 p_px_p_swi3_ptr dw ?                    ; DATA XREF: parse_init+44w
DGROUP:5767 p_px_p_swi4_ptr dw ?                    ; DATA XREF: parse_init+4Aw
DGROUP:5769 p_px_p_swi5_ptr dw ?                    ; DATA XREF: parse_init+50w
DGROUP:576B p_px_p_maxk     db ?                    ; DATA XREF: parse_init+59w
DGROUP:576C disk_flag       db ?                    ; DATA XREF: main:loc_6Ar
DGROUP:576C                                         ; main:_main_11r ...
DGROUP:576D p_p             dw ?                    ; DATA XREF: parse_command_line+7Co
DGROUP:576D                                         ; parse_init+17w
DGROUP:576F p_p_p_num_extra db ?                    ; DATA XREF: parse_init+24w
DGROUP:5770 p_p_p_len_extra_delim db ?              ; DATA XREF: parse_init+27w
DGROUP:5771 p_p_p_extra_delim db ?                  ; DATA XREF: parse_init+1Dw
DGROUP:5772 max_head        dw 8 dup(?)             ; DATA XREF: dos_create_partition+96r
DGROUP:5772                                         ; make_partition+C9r ...
DGROUP:5782 input_col       dw ?                    ; DATA XREF: do_main_menu:mainmenu_17r
DGROUP:5782                                         ; delete_partition+CAr ...
DGROUP:5784 No              dw ?                    ; DATA XREF: dos_delete+21Cr
DGROUP:5784                                         ; ext_delete+90r ...
DGROUP:5786 total_mbytes    dw 8 dup(?)             ; DATA XREF: dos_delete+5Dr
DGROUP:5786                                         ; ext_delete+52r ...
DGROUP:5796                 dw ?
DGROUP:5798 regs_x_ax       dw ?                    ; DATA XREF: check_valid_environmentw
DGROUP:5798                                         ; check_valid_environment+6o ...
DGROUP:579A regs_x_bx       dw ?                    ; DATA XREF: check_valid_environment+1Cr
DGROUP:579A                                         ; load_logical_drive+240w ...
DGROUP:579C regs_x_cx       dw ?                    ; DATA XREF: get_disk_info+5Br
DGROUP:579C                                         ; get_disk_info+75r ...
DGROUP:579E regs_x_dx       dw ?                    ; DATA XREF: load_logical_drive:lld_14w
DGROUP:579E                                         ; write_boot_record+27w ...
DGROUP:57A0 regs_x_si       dw ?                    ; DATA XREF: display_msg+24w
DGROUP:57A0                                         ; get_yes_no_values+24r ...
DGROUP:57A2 regs_x_di       dw ?                    ; DATA XREF: parse_command_line+7Cw
DGROUP:57A4 regs_x_cflag    db ?                    ; DATA XREF: write_boot_record+5Fr
DGROUP:57A4                                         ; verify_tracks+186r ...
DGROUP:57A5                 db ?
DGROUP:57A6 sublistp_size   db ?                    ; DATA XREF: Parse_msg+2Dw
DGROUP:57A6                                         ; Parse_msg+69o
DGROUP:57A7 sublistp_res    db ?                    ; DATA XREF: Parse_msg+5Aw
DGROUP:57A8 sublistp_value  dw ?                    ; DATA XREF: Parse_msg+2Aw
DGROUP:57AA sublistp_value_seg dw ?                 ; DATA XREF: Parse_msg+24w
DGROUP:57AC sublistp_id     db ?                    ; DATA XREF: Parse_msg+5Dw
DGROUP:57AD sublistp_flags  db ?                    ; DATA XREF: Parse_msg+32w
DGROUP:57AE sublistp_max_width db ?                 ; DATA XREF: Parse_msg+37w
DGROUP:57AF sublistp_min_width db ?                 ; DATA XREF: Parse_msg+3Cw
DGROUP:57B0 sublistp_pad_char db ?                  ; DATA XREF: Parse_msg+41w
DGROUP:57B1                 db ?
DGROUP:57B2 p_swi1          dw ?                    ; DATA XREF: parse_init+38o
DGROUP:57B2                                         ; parse_init+76w
DGROUP:57B4 p_swi1_sp_function_flag dw ?            ; DATA XREF: parse_init+81w
DGROUP:57B6 p_swi1_sp_buff1_ptr dw ?                ; DATA XREF: parse_init+84w
DGROUP:57B8 p_swi1_sp_val1_ptr dw ?                 ; DATA XREF: parse_init+8Aw
DGROUP:57BA p_swi1_sp_nid   db ?                    ; DATA XREF: parse_init+90w
DGROUP:57BB p_swi1_sp_switch1 db 5 dup(?)           ; DATA XREF: parse_init+99o
DGROUP:57BB                                         ; process_switcho
DGROUP:57C0 p_swi1_sp_switch2 db 5 dup(?)           ; DATA XREF: parse_init+A6o
DGROUP:57C0                                         ; process_switch:loc_6738o
DGROUP:57C5 p_swi1_sp_switch3 db 5 dup(?)           ; DATA XREF: parse_init+B3o
DGROUP:57C5                                         ; process_switch:loc_674Bo
DGROUP:57CA primary_flag    db ?                    ; DATA XREF: main:loc_52r
DGROUP:57CA                                         ; main:loc_103r ...
DGROUP:57CB                 db ?
DGROUP:57CC p_swi2          dw ?                    ; DATA XREF: parse_init+3Eo
DGROUP:57CC                                         ; parse_init+BCw
DGROUP:57CE p_swi2_sp_function_flag dw ?            ; DATA XREF: parse_init+C2w
DGROUP:57D0 p_swi2_sp_buff1_ptr dw ?                ; DATA XREF: parse_init+C8w
DGROUP:57D2 p_swi2_sp_val1_ptr dw ?                 ; DATA XREF: parse_init+D1w
DGROUP:57D4 p_swi2_sp_nid   db ?                    ; DATA XREF: parse_init+D4w
DGROUP:57D5 p_swi2_sp_switch4 db 3 dup(?)           ; DATA XREF: parse_init+DDo
DGROUP:57D5                                         ; process_switch:loc_675Eo
DGROUP:57D8 p_swi3          dw ?                    ; DATA XREF: parse_init+44o
DGROUP:57D8                                         ; parse_init+E6w
DGROUP:57DA p_swi3_sp_function_flag dw ?            ; DATA XREF: parse_init+ECw
DGROUP:57DC p_swi3_sp_buff1_ptr dw ?                ; DATA XREF: parse_init+F2w
DGROUP:57DE p_swi3_sp_val1_ptr dw ?                 ; DATA XREF: parse_init+FBw
DGROUP:57E0 p_swi3_sp_nid   db ?                    ; DATA XREF: parse_init+FEw
DGROUP:57E1 p_swi3_sp_switch5 db 8 dup(?)           ; DATA XREF: parse_init+107o
DGROUP:57E1                                         ; process_switch:loc_676Bo
DGROUP:57E9 next_letter     db ?                    ; DATA XREF: init_partition_tables+8w
DGROUP:57E9                                         ; init_partition_tables+281r ...
DGROUP:57EA display_page    db ?                    ; DATA XREF: init_video_information+22w
DGROUP:57EA                                         ; reset_video_information+44r ...
DGROUP:57EB                 db ?
DGROUP:57EC p_swi4          dw ?                    ; DATA XREF: parse_init+4Ao
DGROUP:57EC                                         ; parse_init+112w
DGROUP:57EE p_swi4_sp_function_flag dw ?            ; DATA XREF: parse_init+115w
DGROUP:57F0 p_swi4_sp_buff1_ptr dw ?                ; DATA XREF: parse_init+118w
DGROUP:57F2 p_swi4_sp_val1_ptr dw ?                 ; DATA XREF: parse_init+121w
DGROUP:57F4 p_swi4_sp_nid   db ?                    ; DATA XREF: parse_init+124w
DGROUP:57F5 p_swi4_sp_switch6 db 3 dup(?)           ; DATA XREF: parse_init+12Do
DGROUP:57F5                                         ; process_switch:loc_6778o
DGROUP:57F8 mbr_flag        db ?                    ; DATA XREF: main:loc_71r
DGROUP:57F8                                         ; main:loc_11Fr ...
DGROUP:57F9                 db ?
DGROUP:57FA _bufin          db 512 dup(?)           ; DATA XREF: DGROUP:STDINo
DGROUP:57FA                                         ; DGROUP:STDIN_baseo
DGROUP:59FA p_swi5          dw ?                    ; DATA XREF: parse_init+50o
DGROUP:59FA                                         ; parse_init+136w
DGROUP:59FC p_swi5_sp_function_flag dw ?            ; DATA XREF: parse_init+13Cw
DGROUP:59FE p_swi5_sp_buff1_ptr dw ?                ; DATA XREF: parse_init+142w
DGROUP:5A00 p_swi5_sp_val1_ptr dw ?                 ; DATA XREF: parse_init+14Bw
DGROUP:5A02 p_swi5_sp_nid   db ?                    ; DATA XREF: parse_init+14Ew
DGROUP:5A03 p_swi5_sp_switch7 db 5 dup(?)           ; DATA XREF: parse_init+157o
DGROUP:5A03                                         ; process_switch:loc_6783o
DGROUP:5A08 input_row       dw ?                    ; DATA XREF: do_main_menu+15Dr
DGROUP:5A08                                         ; delete_partition+CEr ...
DGROUP:5A0A quiet_flag      db ?                    ; DATA XREF: main+329r
DGROUP:5A0A                                         ; main:_main_34r ...
DGROUP:5A0B                 db ?
DGROUP:5A0C good_disk       db ?                    ; DATA XREF: main+8Fw
DGROUP:5A0C                                         ; main+136w ...
DGROUP:5A0D                 db 7 dup(?)
DGROUP:5A14 ext_table_boot_ind db ?                 ; DATA XREF: init_partition_tables+34Aw
DGROUP:5A14                                         ; load_logical_drive+2D4w ...
DGROUP:5A15 ext_table_start_head db ?               ; DATA XREF: init_partition_tables+34Ew
DGROUP:5A15                                         ; load_logical_drive+5Ar ...
DGROUP:5A16 ext_table_start_sector db ?             ; DATA XREF: init_partition_tables+352w
DGROUP:5A16                                         ; load_logical_drive+55r ...
DGROUP:5A17 ext_table_start_cyl dw ?                ; DATA XREF: init_partition_tables+356w
DGROUP:5A17                                         ; load_logical_drive+4Er ...
DGROUP:5A19 ext_table_sys_id db ?                   ; DATA XREF: init_partition_tables+2F3r
DGROUP:5A19                                         ; init_partition_tables+35Cw ...
DGROUP:5A1A ext_table_end_head db ?                 ; DATA XREF: init_partition_tables+360w
DGROUP:5A1A                                         ; load_logical_drive+30Cw ...
DGROUP:5A1B ext_table_end_sector db ?               ; DATA XREF: init_partition_tables+364w
DGROUP:5A1B                                         ; load_logical_drive+318w ...
DGROUP:5A1C ext_table_end_cyl dw ?                  ; DATA XREF: init_partition_tables+368w
DGROUP:5A1C                                         ; load_logical_drive+32Aw ...
DGROUP:5A1E ext_table_rel_sec_lw dw ?               ; DATA XREF: init_partition_tables+374w
DGROUP:5A1E                                         ; load_logical_drive+338w ...
DGROUP:5A20 ext_table_rel_sec_hw dw ?               ; DATA XREF: init_partition_tables+370w
DGROUP:5A20                                         ; load_logical_drive+33Cw ...
DGROUP:5A22 ext_table_num_sec_lw dw ?               ; DATA XREF: init_partition_tables+37Cw
DGROUP:5A22                                         ; load_logical_drive+1BAr ...
DGROUP:5A24 ext_table_num_sec_hw dw ?               ; DATA XREF: init_partition_tables+378w
DGROUP:5A24                                         ; load_logical_drive+1B3r ...
DGROUP:5A26                 db ?
DGROUP:5A27 ext_table_changed db ?                  ; DATA XREF: init_partition_tables+38Aw
DGROUP:5A27                                         ; make_volume+110w ...
DGROUP:5A28 ext_table_mbytes_used dw ?              ; DATA XREF: init_partition_tables+380w
DGROUP:5A28                                         ; load_logical_drive+40Bw ...
DGROUP:5A2A ext_table_percent_used dw ?             ; DATA XREF: init_partition_tables+384w
DGROUP:5A2A                                         ; load_logical_drive+443w ...
DGROUP:5A2C ext_table_vol_label db 12 dup(?)        ; DATA XREF: volume_delete+219o
DGROUP:5A2C                                         ; init_partition_tables+3BAo ...
DGROUP:5A38 ext_table_system db 9 dup(?)            ; DATA XREF: init_partition_tables+3A0o
DGROUP:5A38                                         ; load_logical_drive+D4w ...
DGROUP:5A41 ext_table_drive_letter db ?             ; DATA XREF: volume_delete+192r
DGROUP:5A41                                         ; volume_delete+42Cr ...
DGROUP:5A42                 db 1012 dup(?)
DGROUP:5E36 ep0_lp23_boot_ind db ?
DGROUP:5E37 ep0_lp23_start_head db ?                ; DATA XREF: write_info_to_disk+17Dw
DGROUP:5E38 ep0_lp23_start_sector db ?              ; DATA XREF: write_info_to_disk+182w
DGROUP:5E39 ep0_lp23_start_cyl dw ?                 ; DATA XREF: write_info_to_disk+179w
DGROUP:5E39                                         ; write_ext_boot_to_disk+2E0r
DGROUP:5E3B ep0_lp23_sys_id db ?                    ; DATA XREF: write_info_to_disk+15Fw
DGROUP:5E3C ep0_lp23_end_head db ?
DGROUP:5E3D ep0_lp23_end_sector db ?
DGROUP:5E3E ep0_lp23_end_cyl dw ?
DGROUP:5E40 ep0_lp23_rel_sec_lw dw ?
DGROUP:5E42 ep0_lp23_rel_sec_hw dw ?
DGROUP:5E44 ep0_lp23_num_sec_lw dw ?
DGROUP:5E46 ep0_lp23_num_sec_hw dw ?
DGROUP:5E48                 db ?
DGROUP:5E49 ep0_lp23_changed db ?
DGROUP:5E4A ep0_lp23_mbytes_used dw ?
DGROUP:5E4C ep0_lp23_percent_used dw ?
DGROUP:5E4E ep0_lp23_vol_label db 12 dup(?)
DGROUP:5E5A ep0_lp23_system db 9 dup(?)
DGROUP:5E63 ep0_lp23_drive_letter db ?
DGROUP:5E64 byte_E934       db 7728 dup(?)
DGROUP:7C94 mono_flag       db ?                    ; DATA XREF: display+68r
DGROUP:7C94                                         ; display:display_5r ...
DGROUP:7C95 Yes             db ?                    ; DATA XREF: dos_create_partition+15Fr
DGROUP:7C95                                         ; display_partition_information+96r ...
DGROUP:7C96 segregs_es      dw ?                    ; DATA XREF: reboot_system+27o
DGROUP:7C96                                         ; reboot_system+36r ...
DGROUP:7C98 segregs_cs      dw ?
DGROUP:7C9A segregs_ss      dw ?
DGROUP:7C9C segregs_ds      dw ?                    ; DATA XREF: get_yes_no_values+2Ar
DGROUP:7C9C                                         ; get_yes_no_values+62r ...
DGROUP:7C9E extended_buff   dw ?                    ; DATA XREF: main+2A5r
DGROUP:7C9E                                         ; main+2B8r ...
DGROUP:7CA0 total_disk      dw 8 dup(?)             ; DATA XREF: input_dos_create+180r
DGROUP:7CA0                                         ; ext_create_partition+1DAr ...
DGROUP:7CB0 primary_partition_count db ?            ; DATA XREF: init_partition_tables:ipt_for1_nextw
DGROUP:7CB0                                         ; init_partition_tables+208r ...
DGROUP:7CB1                 db ?
DGROUP:7CB2 primary_buff    dw ?                    ; DATA XREF: main+228r
DGROUP:7CB2                                         ; main+23Br ...
DGROUP:7CB4 PercentFlag     db ?                    ; DATA XREF: do_main_menu+Bw
DGROUP:7CB4                                         ; input_dos_create:idc_3r ...
DGROUP:7CB5 logical_flag    db ?                    ; DATA XREF: main+4Br
DGROUP:7CB5                                         ; main+F9r ...
DGROUP:7CB6 status_flag     db ?                    ; DATA XREF: main+ACr
DGROUP:7CB6                                         ; main:_main_07r ...
DGROUP:7CB7 number_of_drives db ?                   ; DATA XREF: main+153r
DGROUP:7CB7                                         ; do_main_menu:mainmenu_04r ...
DGROUP:7CB8 extended_flag   db ?                    ; DATA XREF: main:loc_5Cr
DGROUP:7CB8                                         ; main+F2r ...
DGROUP:7CB9 sp_val          db ?                    ; DATA XREF: parse_init+8Ao
DGROUP:7CB9                                         ; parse_init+177w
DGROUP:7CBA sp_val_p_range  db ?                    ; DATA XREF: parse_init+17Aw
DGROUP:7CBB sp_val_p_range_one db ?                 ; DATA XREF: parse_init+17Dw
DGROUP:7CBC sp_val_p_low_range dd ?                 ; DATA XREF: parse_init+18Bw
DGROUP:7CBC                                         ; parse_init+18Ew
DGROUP:7CC0 sp_val_p_high_range dw ?                ; DATA XREF: parse_init+192w
DGROUP:7CC2 sp_val_p_high_range_2 db ?              ; DATA XREF: parse_init+198w
DGROUP:7CC3 sort_1          db ?                    ; DATA XREF: sort_part_table+69r
DGROUP:7CC3                                         ; sort_part_table+96r ...
DGROUP:7CC4 sort            db 4 dup(?)             ; DATA XREF: dos_delete+163r
DGROUP:7CC4                                         ; dos_delete+190r ...
DGROUP:7CC8                 db 20 dup(?)
DGROUP:7CDC p_val           db ?                    ; DATA XREF: parse_init+68o
DGROUP:7CDC                                         ; parse_init+16Ew
DGROUP:7CDD p_val_p_range   db ?                    ; DATA XREF: parse_init+171w
DGROUP:7CDE p_val_p_range_one db ?                  ; DATA XREF: parse_init+174w
DGROUP:7CDF p_val_p_low_range dd ?                  ; DATA XREF: parse_init+184w
DGROUP:7CDF                                         ; parse_init+187w
DGROUP:7CE3 p_val_p_high_range dd ?                 ; DATA XREF: parse_init+160w
DGROUP:7CE3                                         ; parse_init+166w
DGROUP:7CE7 no_fatal_error  db ?                    ; DATA XREF: main:_main_00w
DGROUP:7CE7                                         ; main:_main_09r ...
DGROUP:7CE8 p_con           dw ?                    ; DATA XREF: parse_init+2Do
DGROUP:7CE8                                         ; parse_init+5Cw
DGROUP:7CEA p_con_p_function_flag dw ?              ; DATA XREF: parse_init+7Ew
DGROUP:7CEC p_con_p_buff1_ptr dw ?                  ; DATA XREF: parse_init+62w
DGROUP:7CEE p_con_p_val1_ptr dw ?                   ; DATA XREF: parse_init+68w
DGROUP:7CF0 p_con_nid       db ?                    ; DATA XREF: parse_init+73w
DGROUP:7CF1 cur_disk_buff   db ?                    ; DATA XREF: main:_main_16r
DGROUP:7CF1                                         ; main+1EBr ...
DGROUP:7CF2 insert          db 800 dup(?)           ; DATA XREF: do_main_menu+84w
DGROUP:7CF2                                         ; do_main_menu+DDw ...
DGROUP:8012 video_attribute db ?                    ; DATA XREF: display+3Fr
DGROUP:8012                                         ; display+152r ...
DGROUP:8013                 db ?
DGROUP:8014 part_table_boot_ind db ?                ; DATA XREF: change_active_partition+70r
DGROUP:8014                                         ; change_active_partition+10Ar ...
DGROUP:8015 part_table_start_head db ?              ; DATA XREF: init_partition_tables+A4w
DGROUP:8015                                         ; make_partition+FEw ...
DGROUP:8016 part_table_start_sector db ?            ; DATA XREF: init_partition_tables+B0w
DGROUP:8016                                         ; make_partition+BAw ...
DGROUP:8017 part_table_start_cyl dw ?               ; DATA XREF: volume_create+CEr
DGROUP:8017                                         ; volume_create+232r ...
DGROUP:8019 part_table_sys_id db ?                  ; DATA XREF: do_main_menu+109r
DGROUP:8019                                         ; delete_partition+56r ...
DGROUP:801A part_table_end_head db ?                ; DATA XREF: init_partition_tables+D4w
DGROUP:801A                                         ; make_partition+CFw ...
DGROUP:801B part_table_end_sector db ?              ; DATA XREF: init_partition_tables+E0w
DGROUP:801B                                         ; make_partition+C3w ...
DGROUP:801C part_table_end_cyl dw ?                 ; DATA XREF: volume_create+CAr
DGROUP:801C                                         ; volume_create+22Er ...
DGROUP:801E part_table_rel_sec_lw dw ?              ; DATA XREF: init_partition_tables+100w
DGROUP:801E                                         ; init_partition_tables+114w ...
DGROUP:8020 part_table_rel_sec_hw dw ?              ; DATA XREF: init_partition_tables+104w
DGROUP:8020                                         ; init_partition_tables+118w ...
DGROUP:8022 part_table_num_sec_lw dw ?              ; DATA XREF: init_partition_tables+160w
DGROUP:8022                                         ; init_partition_tables+174w ...
DGROUP:8024 part_table_num_sec_hw dw ?              ; DATA XREF: init_partition_tables+164w
DGROUP:8024                                         ; init_partition_tables+178w ...
DGROUP:8026                 db ?
DGROUP:8027 part_table_changed db ?                 ; DATA XREF: change_active_partition+277w
DGROUP:8027                                         ; change_active_partition+2ACw ...
DGROUP:8028 part_table_mbytes_used dw ?             ; DATA XREF: init_partition_tables+1BEw
DGROUP:8028                                         ; init_partition_tables+1CEr ...
DGROUP:802A part_table_percent_used dw ?            ; DATA XREF: init_partition_tables+1D7w
DGROUP:802A                                         ; table_display+96r ...
DGROUP:802C part_table_vol_label db 12 dup(?)       ; DATA XREF: dos_delete+1FAo
DGROUP:802C                                         ; get_volume+45w ...
DGROUP:8038 part_table_system db 9 dup(?)           ; DATA XREF: get_volume+6Bw
DGROUP:8038                                         ; get_volume+126o ...
DGROUP:8041 part_table_drive_letter db ?            ; DATA XREF: init_partition_tables+203w
DGROUP:8041                                         ; init_partition_tables+288w ...
DGROUP:8042                 db 20 dup(?)
DGROUP:8056 pt_part2_mbytes_used dw ?               ; DATA XREF: change_current_drive+215r
DGROUP:8058 pt_part2_percent_used dw ?              ; DATA XREF: change_current_drive+7Ar
DGROUP:805A                 db 42 dup(?)
DGROUP:8084 pt_part3_mbytes_used dw ?               ; DATA XREF: change_current_drive+211r
DGROUP:8086 pt_part3_percent_used dw ?              ; DATA XREF: change_current_drive+76r
DGROUP:8088                 db 42 dup(?)
DGROUP:80B2 pt_part4_mbytes_used dw ?               ; DATA XREF: change_current_drive+20Dr
DGROUP:80B4 pt_part4_percent_used dw ?              ; DATA XREF: change_current_drive+72r
DGROUP:80B6                 db 1310 dup(?)
DGROUP:85D4 max_sector      db 8 dup(?)             ; DATA XREF: dos_create_partition+7Fr
DGROUP:85D4                                         ; make_partition+BFr ...
DGROUP:85DC boot_record     db 512 dup(?)           ; DATA XREF: main+1B4w
DGROUP:85DC                                         ; main+1C6w ...
DGROUP:87DC logical_buff    dw ?                    ; DATA XREF: main+2F6r
DGROUP:87DC                                         ; main+309r ...
DGROUP:87DE cur_disk        db ?                    ; DATA XREF: main+A7w
DGROUP:87DE                                         ; main+1EEw ...
DGROUP:87DF                 db ?
DGROUP:87E0 p_buff          db ?                    ; DATA XREF: parse_command_line+A0o
DGROUP:87E0                                         ; parse_init+62o
DGROUP:87E1 p_buff_p_item_tag db ?
DGROUP:87E2 p_buff_p_synonym dw ?
DGROUP:87E4 p_buff_p_value  dd ?                    ; DATA XREF: check_disk_validity+5r
DGROUP:87E8 valid_input     db ?                    ; DATA XREF: volume_delete:vdel_10w
DGROUP:87E8                                         ; volume_delete+1A7r ...
DGROUP:87E9                 db ?
DGROUP:87EA Parse_Ptr       dw ?                    ; DATA XREF: parse_command_line+82w
DGROUP:87EA                                         ; parse_command_line+8Cw ...
DGROUP:87EC free_space_space dw ?                   ; DATA XREF: main+231r
DGROUP:87EC                                         ; main+2AEr ...
DGROUP:87EE free_space_start dw ?                   ; DATA XREF: find_part_free_space+20w
DGROUP:87EE                                         ; find_part_free_space+77w ...
DGROUP:87F0 free_space_end  dw ?                    ; DATA XREF: find_part_free_space+24w
DGROUP:87F0                                         ; find_part_free_space+B5w ...
DGROUP:87F2 free_space_mbytes_unused dw ?           ; DATA XREF: main+22Br
DGROUP:87F2                                         ; main+2A8r ...
DGROUP:87F4 free_space_percent_unused dw ?          ; DATA XREF: input_dos_create+B8r
DGROUP:87F4                                         ; input_dos_create+11Fr ...
DGROUP:87F6                 db 520 dup(?)
DGROUP:89FE disk_access     db ?                    ; DATA XREF: check_format+30o
DGROUP:89FF dac_access_flag db ?                    ; DATA XREF: check_format+12w
DGROUP:89FF                                         ; check_format+4Dr
DGROUP:8A00 sp_buff         db ?                    ; DATA XREF: parse_command_line:loc_653Do
DGROUP:8A00                                         ; parse_init+84o ...
DGROUP:8A01 sp_buff_p_item_tag db ?
DGROUP:8A02 sp_buff_p_synonym dw ?                  ; DATA XREF: process_switchr
DGROUP:8A02                                         ; process_switch:loc_6738r ...
DGROUP:8A04 sp_buff_p_value db 10 dup(?)            ; DATA XREF: process_switch+Dr
DGROUP:8A04                                         ; process_switch+20r ...
DGROUP:8A0E dataoffset_end_2 dw ?                   ; DATA XREF: seg000:6CCCo
DGROUP:8A0E DGROUP          ends
DGROUP:8A0E
seg005:0000 ; ===========================================================================
seg005:0000
seg005:0000 ; Segment type: Uninitialized
seg005:0000 seg005          segment byte stack 'STACK' use16
seg005:0000                 assume cs:seg005
seg005:0000                 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
seg005:0000 byte_114E0      db 800h dup(?)
seg005:0000 seg005          ends
seg005:0000
seg005:0000
seg005:0000                 end _astart