mirror of
https://github.com/SEPPDROID/DR-DOS-OpenDOS.git
synced 2025-10-22 16:04:20 +00:00
875 lines
51 KiB
Plaintext
875 lines
51 KiB
Plaintext
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 1
|
||
|
||
|
||
= 0001 __RASM__ EQU 1
|
||
|
||
; File : $SUPPORT.A86$
|
||
;
|
||
; Description :
|
||
;
|
||
; Original Author : DIGITAL RESEARCH
|
||
;
|
||
; Last Edited By : $CALDERA$
|
||
;
|
||
;-----------------------------------------------------------------------;
|
||
; Copyright Work of Caldera, Inc. All Rights Reserved.
|
||
;
|
||
; THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
|
||
; PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
|
||
; ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
|
||
; WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
|
||
; THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
|
||
; HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
|
||
; AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
|
||
; AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
|
||
; COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
|
||
; CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
|
||
; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
|
||
; CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
|
||
; AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
|
||
; CIVIL LIABILITY.
|
||
;-----------------------------------------------------------------------;
|
||
;
|
||
; *** Current Edit History ***
|
||
; *** End of Current Edit History ***
|
||
;
|
||
; $Log$
|
||
; SUPPORT.A86 1.11 93/11/29 13:39:28
|
||
; Don't rely on DS when return_ called
|
||
; ENDLOG
|
||
;
|
||
; The following Support routines are provided for both the
|
||
; handle and FCB functions which require critical error handler
|
||
; support.
|
||
;
|
||
; 15 Jun 88 Modify the SYSDAT and SUPERVISOR variables to enable
|
||
; the relocation of the BDOS into high memory
|
||
; 5 Jan 89 Only set PCKBD mode if we own the default console
|
||
; 9 Mar 89 Support a split PCMODE and SYSDAT Segments
|
||
; 22 Sep 89 LDT support routine added
|
||
; 29 Jan 90 Int 2A critical section support added to dpbdos_entry
|
||
; 7 Mar 90 Convert to register preserved function calls
|
||
; 4 May 90 DRDOS int3x handlers removed (they are pointed to IRET
|
||
; in PCMODE_DATA by INIT.PCM)
|
||
; 12 Dec 90 keep error server number inverted so local = 0, more compatible
|
||
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 2
|
||
|
||
|
||
;
|
||
= include pcmode.equ
|
||
= ; File : $PCMODE.EQU$
|
||
= ;
|
||
= ; Description :
|
||
= ;
|
||
= ; Original Author : DIGITAL RESEARCH
|
||
= ;
|
||
= ; Last Edited By : $CALDERA$
|
||
= ;
|
||
= ;-----------------------------------------------------------------------;
|
||
= ; Copyright Work of Caldera, Inc. All Rights Reserved.
|
||
= ;
|
||
= ; THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
|
||
= ; PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
|
||
= ; ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
|
||
= ; WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
|
||
= ; THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
|
||
= ; HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
|
||
= ; AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
|
||
= ; AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
|
||
= ; COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
|
||
= ; CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
|
||
= ; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
|
||
= ; CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
|
||
= ; AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
|
||
= ; CIVIL LIABILITY.
|
||
= ;-----------------------------------------------------------------------;
|
||
= ;
|
||
= ; *** Current Edit History ***
|
||
= ; *** End of Current Edit History ***
|
||
= ;
|
||
= ; $Log$
|
||
= ;
|
||
= ; ENDLOG
|
||
= ; This file contains all the general purpose definitions
|
||
= ; and equates used by the PCMODE Module.
|
||
= ;
|
||
=
|
||
= FFFF TRUE equ 0FFFFh ; value of TRUE
|
||
= 0000 FALSE equ 0 ; value of FALSE
|
||
=
|
||
= 0006 TRUE_VERSION equ 6
|
||
=
|
||
= FFFF IDLE_DETECT equ TRUE ; Check for IDLE Process's
|
||
=
|
||
= if IDLE_DETECT
|
||
= 0001 IDLE_COMMAND equ 0001h ; Command Processor Active
|
||
= 0002 IDLE_DOSFUNC equ 0002h ; DOS Function Called
|
||
= 0004 IDLE_INT28 equ 0004h ; INT 28 Called
|
||
=
|
||
= 4000 IDLE_ON equ 4000h ; ReSet when Idle Checking Enabled
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 3
|
||
|
||
|
||
= 8000 IDLE_INIT equ 8000h ; ReSet when $IDLE$ Loaded and Active
|
||
= C000 IDLE_DISABLE equ IDLE_INIT + IDLE_ON
|
||
=
|
||
= 0001 PROC_IDLE equ 0001 ; Process is IDLE
|
||
= 0002 PROC_INT28 equ 0002 ; INT28 Polling Loop
|
||
= 0003 PROC_KEYIN equ 0003 ; Keyboard Input
|
||
= 0004 PROC_DEVIN equ 0004 ; Device Input Routine
|
||
= endif
|
||
=
|
||
=
|
||
= 00C0 STACK_SIZE equ 192 ; Local Stack Size (Levels)
|
||
= 0050 MAX_PATHLEN equ 80 ; Maximum Path length
|
||
= 000D MAX_FILELEN equ 13
|
||
=
|
||
= ;
|
||
= ; DOS process termination Codes
|
||
= ;
|
||
= 0000 TERM_NORMAL equ 0 ; Normal Termination
|
||
= 0001 TERM_BREAK equ 1 ; Termination by Control Break
|
||
= 0002 TERM_ERROR equ 2 ; Termination by Critical Error
|
||
= 0003 TERM_RESIDENT equ 3 ; Terminate and Stay Resident
|
||
=
|
||
= ;
|
||
= ; Critical Error responses from the default INT 24 handler and
|
||
= ; the DO_INT24 routine.
|
||
= ;
|
||
= 0000 ERR_IGNORE equ 0 ; Ignore Error
|
||
= 0001 ERR_RETRY equ 1 ; Retry the Operation
|
||
= 0002 ERR_ABORT equ 2 ; Terminate the Process
|
||
= 0003 ERR_FAIL equ 3 ; Fail Function
|
||
= ;
|
||
= 0008 OK_FAIL equ 0000$1000b ; Fail is a Valid Response
|
||
= 0010 OK_RETRY equ 0001$0000b ; Retry is a Valid Response
|
||
= 0020 OK_IGNORE equ 0010$0000b ; Ignore is a valid Response
|
||
= 0038 OK_RIF equ 0011$1000b ; All Responsese are Valid
|
||
= 0030 OK_RI equ 0011$0000b ; Retry and Ignore are Valid
|
||
= 0018 OK_RF equ 0001$1000b ; Retry and Fail are Valid
|
||
= ;
|
||
= 0040 NO_CRIT_ERRORS equ 0100$0000b ; critical error shouldn't be generated
|
||
= ; warning - must match FDOS.A86
|
||
= ;
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 4
|
||
|
||
|
||
= eject
|
||
= ; The following equates define the format in which the users registers
|
||
= ; are saved on the stack. This format is also seen by an application
|
||
= ; when a critical error occurs.
|
||
= ;
|
||
= CodeMacro POP$DOS ; Pop User Registers a la MS-DOS
|
||
= db 058h ! db 05Bh ; pop AX ! pop BX
|
||
= db 059h ! db 05Ah ; pop BX ! pop CX
|
||
= db 05Eh ! db 05Fh ; pop SI ! pop DI
|
||
= db 05Dh ; pop BP
|
||
= db 01Fh ! db 007h ; pop DS ! pop ES
|
||
= EndM
|
||
=
|
||
= CodeMacro PUSH$DOS ; Push User Registers
|
||
= db 006h ! db 01Eh ; push ES ! push DS
|
||
= db 055h ; push BP
|
||
= db 057h ! db 056h ; push DI ! push SI
|
||
= db 052h ! db 051h ; push DX ! push CX
|
||
= db 053h ! db 050h ; push BX ! push AX
|
||
= EndM
|
||
=
|
||
= 0000 reg_AX equ word ptr .00
|
||
= 0000 reg_AL equ byte ptr .00
|
||
= 0001 reg_AH equ byte ptr .01
|
||
=
|
||
= 0002 reg_BX equ word ptr .02
|
||
= 0002 reg_BL equ byte ptr .02
|
||
= 0003 reg_BH equ byte ptr .03
|
||
=
|
||
= 0004 reg_CX equ word ptr .04
|
||
= 0004 reg_CL equ byte ptr .04
|
||
= 0005 reg_CH equ byte ptr .05
|
||
=
|
||
= 0006 reg_DX equ word ptr .06
|
||
= 0006 reg_DL equ byte ptr .06
|
||
= 0007 reg_DH equ byte ptr .07
|
||
=
|
||
= 0008 reg_SI equ word ptr .08
|
||
= 000A reg_DI equ word ptr .10
|
||
= 000C reg_BP equ word ptr .12
|
||
=
|
||
= 000E reg_DS equ word ptr .14
|
||
= 0010 reg_ES equ word ptr .16
|
||
=
|
||
= 0012 reg_IP equ word ptr .18
|
||
= 0014 reg_CS equ word ptr .20
|
||
= 0016 reg_FLAGS equ word ptr .22
|
||
=
|
||
= ; Processor Flags
|
||
= 0001 CARRY_FLAG equ 0001h ; Carry Flag
|
||
= 0040 ZERO_FLAG equ 0040h ; Zero Flag
|
||
= 0080 SIGN_FLAG equ 0080h ; Sign Flag
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 5
|
||
|
||
|
||
= 0200 INT_FLAG equ 0200h ; Interrupt Flag
|
||
= 0400 DIR_FLAG equ 0400h ; Direction Flag
|
||
= 0800 OFLW_FLAG equ 0800h ; OverFlow Flag
|
||
=
|
||
= 0000 DMD_ID equ es:byte ptr .0 ; id code ('M' or 'Z')
|
||
= 0001 DMD_PSP equ es:word ptr .1 ; owner of memory block
|
||
= 0003 DMD_LEN equ es:word ptr .3 ; length of memory block
|
||
= 0006 DMD_IDLE_FLAGS equ es:word ptr .6 ; idle flags live here
|
||
= 0008 DMD_NAME equ es:byte ptr .8 ; ASCIIZ name field
|
||
= 0008 DMD_NAME_LEN equ 8 ; 8 Bytes long
|
||
= 004D IDM equ 'M' ; not last id code
|
||
= 005A IDZ equ 'Z' ; last id code
|
||
=
|
||
= PCMCODE GROUP PCM_HEADER, PCM_CODE, BDOS_CODE, PCM_RODATA
|
||
= PCMCODE GROUP PCM_HISTORY, PCM_ICODE, PCM_CODEND
|
||
=
|
||
= PCM_HEADER CSEG PARA
|
||
= PCM_CODE CSEG BYTE
|
||
= PCM_RODATA CSEG WORD
|
||
= BDOS_CODE CSEG WORD
|
||
= PCM_HISTORY CSEG BYTE
|
||
= PCM_ICODE CSEG BYTE
|
||
= PCM_CODEND CSEG PARA
|
||
=
|
||
=
|
||
= PCMDATA GROUP PCMODE_DATA, FDOS_DSEG, FIXED_DOS_DATA
|
||
= PCMDATA GROUP PCMODE_CODE, GLOBAL_DATA, BDOS_DATA, PCMODE_DSIZE
|
||
=
|
||
= PCMODE_DATA DSEG WORD ; DOS Data
|
||
= FDOS_DSEG DSEG WORD COMMON ; FDOS Parameter Block
|
||
=0000 fdos_data rw 7
|
||
= FIXED_DOS_DATA CSEG WORD 'DATA' ; Fixed DOS Data Area
|
||
= PCMODE_CODE CSEG WORD 'DATA' ; DATA relative CODE
|
||
= GLOBAL_DATA DSEG WORD ; GLOBAL DOS DATA (Process Independant)
|
||
= BDOS_DATA DSEG WORD ; BDOS Data Area
|
||
= PCMODE_DSIZE DSEG PARA ; End of DOS Data Area
|
||
|
||
= include fdos.def
|
||
= ; File : $FDOS.DEF$
|
||
= ;
|
||
= ; Description :
|
||
= ;
|
||
= ; Original Author : DIGITAL RESEARCH
|
||
= ;
|
||
= ; Last Edited By : $CALDERA$
|
||
= ;
|
||
= ;-----------------------------------------------------------------------;
|
||
= ; Copyright Work of Caldera, Inc. All Rights Reserved.
|
||
= ;
|
||
= ; THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
|
||
= ; PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
|
||
= ; ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 6
|
||
|
||
|
||
= ; WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
|
||
= ; THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
|
||
= ; HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
|
||
= ; AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
|
||
= ; AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
|
||
= ; COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
|
||
= ; CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
|
||
= ; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
|
||
= ; CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
|
||
= ; AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
|
||
= ; CIVIL LIABILITY.
|
||
= ;-----------------------------------------------------------------------;
|
||
= ;
|
||
= ; *** Current Edit History ***
|
||
= ; *** End of Current Edit History ***
|
||
= ;
|
||
= ; $Log$
|
||
= ;
|
||
= ; ENDLOG
|
||
=
|
||
= 0048 FD_DISKINFO equ 48h
|
||
= 0049 FD_FLUSH equ 49h
|
||
= 004A FD_SELECT equ 4Ah
|
||
= 004B FD_EXEC equ 4Bh
|
||
= 004C FD_EXIT equ 4Ch
|
||
= 004D FD_FCB equ 4Dh
|
||
= 0050 FD_COMMIT equ 50H
|
||
= 0051 FD_NEW equ 51h
|
||
= 0052 FD_LOCK equ 52h
|
||
= 0054 FD_DDIO equ 54h
|
||
= 0055 FD_EXPAND equ 55h
|
||
= 0058 FD_REOPEN equ 58h
|
||
=
|
||
= 0007 FDOS_MAXPARM equ 7 ; Maximum FDOS Parameter Length (WORDS)
|
||
=
|
||
= 0000 FD_FUNC equ fdos_data
|
||
=
|
||
= 0002 FD_DRIVE equ fdos_data + 2
|
||
= 0004 FD_DPB equ dword ptr fdos_data + 4
|
||
= 0004 FD_DPBOFF equ fdos_data + 4
|
||
= 0006 FD_DPBSEG equ fdos_data + 6
|
||
= 0008 FD_ADJUST equ fdos_data + 8
|
||
=
|
||
= 0002 FD_NAME equ dword ptr fdos_data + 2
|
||
= 0002 FD_NAMEOFF equ fdos_data + 2
|
||
= 0004 FD_NAMESEG equ fdos_data + 4
|
||
=
|
||
= 0006 FD_MODE equ fdos_data + 6
|
||
=
|
||
= 0002 FD_HANDLE equ fdos_data + 2
|
||
=
|
||
= 0004 FD_BUF equ dword ptr fdos_data + 4
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 7
|
||
|
||
|
||
= 0004 FD_BUFOFF equ fdos_data + 4
|
||
= 0006 FD_BUFSEG equ fdos_data + 6
|
||
=
|
||
= 0008 FD_COUNT equ fdos_data + 8
|
||
=
|
||
= 0004 FD_OFFSET equ dword ptr fdos_data + 4
|
||
=
|
||
= 0008 FD_METHOD equ fdos_data + 8
|
||
=
|
||
= 0006 FD_FLAG equ fdos_data + 6
|
||
=
|
||
= 0008 FD_ATTRIB equ fdos_data + 8
|
||
=
|
||
= 0004 FD_PATH equ dword ptr fdos_data + 4
|
||
= 0004 FD_PATHOFF equ fdos_data + 4
|
||
= 0006 FD_PATHSEG equ fdos_data + 6
|
||
=
|
||
= 0002 FD_ONAME equ dword ptr fdos_data + 2
|
||
= 0002 FD_ONAMEOFF equ fdos_data + 2
|
||
= 0004 FD_ONAMESEG equ fdos_data + 4
|
||
=
|
||
= 000A FD_NNAME equ dword ptr fdos_data + 10
|
||
= 000A FD_NNAMEOFF equ fdos_data + 10
|
||
= 000C FD_NNAMESEG equ fdos_data + 12
|
||
=
|
||
= 0004 FD_SFLAG equ fdos_data + 4
|
||
= 0006 FD_DATE equ fdos_data + 6
|
||
= 0008 FD_TIME equ fdos_data + 8
|
||
=
|
||
= 0008 FD_LENGTH equ dword ptr fdos_data + 8
|
||
= 000C FD_LFLAG equ word ptr fdos_data + 12
|
||
=
|
||
= 0004 FD_NEWHND equ fdos_data + 4
|
||
=
|
||
= 0002 FD_FCBADR equ dword ptr fdos_data + 2
|
||
= 0002 FD_FCBOFF equ fdos_data + 2
|
||
= 0004 FD_FCBSEG equ fdos_data + 4
|
||
=
|
||
= 0006 FD_FCBCNT equ fdos_data + 6
|
||
= 0008 FD_FCBFUNC equ fdos_data + 8
|
||
=
|
||
= 0002 FD_PSPSEG equ fdos_data + 2
|
||
=
|
||
= 0002 FD_BPBOFF equ fdos_data + 2
|
||
= 0004 FD_BPBSEG equ fdos_data + 4
|
||
= 0006 FD_DDSCOFF equ fdos_data + 6
|
||
= 0008 FD_DDSCSEG equ fdos_data + 8
|
||
=
|
||
= 0004 FD_IOCTLFUNC equ fdos_data + 4
|
||
= 0006 FD_IOCTLSTAT equ fdos_data + 6
|
||
=
|
||
= 0002 FD_NUMOPEN equ fdos_data + 2
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 8
|
||
|
||
|
||
=
|
||
= 0002 FD_DDIO_DRV_OP equ fdos_data + 2
|
||
= 0004 FD_DDIO_NSECTORS equ fdos_data + 4
|
||
= 0006 FD_DDIO_STARTLOW equ fdos_data + 6
|
||
= 0008 FD_DDIO_STARTHIGH equ fdos_data + 8
|
||
= 000A FD_DDIO_DMAOFF equ fdos_data + 10
|
||
= 000C FD_DDIO_DMASEG equ fdos_data + 12
|
||
=
|
||
|
||
= include i:mserror.equ
|
||
= ; File : $MSERROR.EQU$
|
||
= ;
|
||
= ; Description :
|
||
= ;
|
||
= ; Original Author : DIGITAL RESEARCH
|
||
= ;
|
||
= ; Last Edited By : $CALDERA$
|
||
= ;
|
||
= ;-----------------------------------------------------------------------;
|
||
= ; Copyright Work of Caldera, Inc. All Rights Reserved.
|
||
= ;
|
||
= ; THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
|
||
= ; PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
|
||
= ; ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
|
||
= ; WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
|
||
= ; THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
|
||
= ; HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
|
||
= ; AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
|
||
= ; AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
|
||
= ; COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
|
||
= ; CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
|
||
= ; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
|
||
= ; CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
|
||
= ; AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
|
||
= ; CIVIL LIABILITY.
|
||
= ;-----------------------------------------------------------------------;
|
||
= ;
|
||
= ; *** Current Edit History ***
|
||
= ; *** End of Current Edit History ***
|
||
= ;
|
||
= ; $Log$
|
||
= ;
|
||
= ; ENDLOG
|
||
=
|
||
= FFFF ED_FUNCTION equ -01 ; invalid function number
|
||
= FFFE ED_FILE equ -02 ; file not found
|
||
= FFFD ED_PATH equ -03 ; path not found
|
||
= FFFC ED_HANDLE equ -04 ; too many open files
|
||
= FFFB ED_ACCESS equ -05 ; file access denied
|
||
= FFFA ED_H_MATCH equ -06 ; invalid handle number
|
||
= FFF9 ED_DMD equ -07 ; memory descriptor destroyed
|
||
= FFF8 ED_MEMORY equ -08 ; insufficient memory
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 9
|
||
|
||
|
||
= FFF7 ED_BLOCK equ -09 ; invalid memory block addr
|
||
= FFF6 ED_ENVIRON equ -10 ; invalid environment
|
||
= FFF5 ED_FORMAT equ -11 ; invalid format
|
||
= FFF4 ED_ACC_CODE equ -12 ; invalid access code
|
||
= FFF3 ED_DATA equ -13 ; invalid data
|
||
= FFF1 ED_DRIVE equ -15 ; invalid drive specified
|
||
= FFF0 ED_DIR equ -16 ; can't remove current dir
|
||
= FFEF ED_DEVICE equ -17 ; not same device
|
||
= FFEE ED_ROOM equ -18 ; no more files
|
||
=
|
||
= FFED ED_PROTECT equ -19 ; disk write protected
|
||
= FFEC ED_BADUNIT equ -20 ; invalid drive specified
|
||
= FFEB ED_NOTREADY equ -21 ; drive doesn't respond
|
||
= FFEA ED_BADCMD equ -22 ; invalid command to driver
|
||
= FFE9 ED_BADDATA equ -23 ; data CRC error
|
||
= FFE8 ED_BADRHLEN equ -24 ; (shouldn't happen)
|
||
= FFE7 ED_BADSEEK equ -25 ; can't seek to track
|
||
= FFE6 ED_BADMEDIA equ -26 ; unrecognizable medium
|
||
= FFE5 ED_RNF equ -27 ; record/sector not found
|
||
= FFE4 ED_NOPAPER equ -28 ; printer error
|
||
= FFE3 ED_WRFAIL equ -29 ; write failed
|
||
= FFE2 ED_RDFAIL equ -30 ; read failed
|
||
= FFE1 ED_GENFAIL equ -31 ; anything failed
|
||
= FFE0 ED_SHAREFAIL equ -32 ; sharing conflict
|
||
= FFDF ED_LOCKFAIL equ -33 ; locking conflict
|
||
= FFDE ED_DISKCHG equ -34 ; invalid disk change
|
||
= FFDD ED_NOFCBS equ -35 ; FCB table exhausted
|
||
= FFDC ED_NOLOCKS equ -36 ; lock list items exhausted
|
||
= FFCE ED_NET equ -50 ; Network Request Not Supported
|
||
=
|
||
= FFBF ED_NETACCESS equ -65 ; file access denied
|
||
=
|
||
= FFB7 ED_NETPWD equ -73 ; Server Password Error
|
||
= FFB6 ED_NETVER equ -74 ; Incorrect Server version
|
||
= FFB5 ED_NETREQ equ -75 ; No Local Network Resources
|
||
= FFB4 ED_NETTIME equ -76 ; Network Time Out Error
|
||
= FFB3 ED_NETCOMM equ -77 ; Network Communications Error
|
||
= FFB2 ED_NETSRVR equ -78 ; No Server Network Resources
|
||
= FFB1 ED_NETLOG equ -79 ; Server Not Logged In
|
||
=
|
||
= FFB0 ED_EXISTS equ -80 ; file already exists
|
||
= FFAE ED_MAKE equ -82 ; Cannot Make (Files ??)
|
||
= FFAD ED_FAIL equ -83 ; FAIL code returned from INT 24
|
||
= FFAC ED_STRUCT equ -84 ; Out of Structures
|
||
= FFAB ED_ASSIGN equ -85 ; Already Assigned
|
||
= FFAA ED_PASSWORD equ -86 ; Invalid Password
|
||
= FFA9 ED_PARAM equ -87 ; Invalid Parameter
|
||
= FFA8 ED_NETWRITE equ -88 ; Network write fault
|
||
= FFA7 ED_NETFUNC equ -89 ; Function not supported on network
|
||
= FFA6 ED_COMPONENT equ -90 ; system component not installed
|
||
= FFA6 ED_LASTERROR equ -90 ; Last Error Number Used
|
||
=
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 10
|
||
|
||
|
||
=
|
||
= 0001 CLASS_RESOURCE equ 1 ; Out of Resource
|
||
= 0002 CLASS_TEMP equ 2 ; Temporary Situation
|
||
= 0003 CLASS_AUTHOR equ 3 ; Authorization Error
|
||
= 0004 CLASS_INTERNAL equ 4 ; Internal System Software Error
|
||
= 0005 CLASS_HARDWARE equ 5 ; Hardware Failure
|
||
= 0006 CLASS_SYSTEM equ 6 ; Serious System Failure
|
||
= 0007 CLASS_APPLIC equ 7 ; Application Program Error
|
||
= 0008 CLASS_LOST equ 8 ; File/Item Not Found
|
||
= 0009 CLASS_FORMAT equ 9 ; File/Item Illegal Format
|
||
= 000A CLASS_LOCKED equ 10 ; File/Item Locked
|
||
= 000B CLASS_MEDIA equ 11 ; Media Failure
|
||
= 000C CLASS_EXISTS equ 12 ; Item Already Exists
|
||
= 000D CLASS_UNKNOWN equ 13 ; Unknown Classification
|
||
=
|
||
= 0001 ACT_RETRY equ 1 ; Retry a few times then prompt user
|
||
= 0002 ACT_DELAY equ 2 ; Delay then as ACT_RETRY
|
||
= 0003 ACT_USER equ 3 ; Prompt user to re-enter data
|
||
= 0004 ACT_ABORT equ 4 ; Clean Up then ABORT the process
|
||
= 0005 ACT_TERM equ 5 ; Terminate immeadiately NO CLEAN UP
|
||
= 0006 ACT_IGNORE equ 6 ; Ignore the Error
|
||
= 0007 ACT_URETRY equ 7 ; Retry the error after user intervention
|
||
=
|
||
= 0001 LOC_UNKNOWN equ 1 ; Unknown error location
|
||
= 0002 LOC_BLOCK equ 2 ; Block Device Failure
|
||
= 0003 LOC_NET equ 3 ; Network Failure
|
||
= 0004 LOC_CHAR equ 4 ; Related to Serial/Character devices
|
||
= 0005 LOC_MEMORY equ 5 ; Failure related to Memory
|
||
|
||
= include i:doshndl.def
|
||
= ; File : $DOSHNDL.DEF$
|
||
= ;
|
||
= ; Description :
|
||
= ;
|
||
= ; Original Author : DIGITAL RESEARCH
|
||
= ;
|
||
= ; Last Edited By : $CALDERA$
|
||
= ;
|
||
= ;-----------------------------------------------------------------------;
|
||
= ; Copyright Work of Caldera, Inc. All Rights Reserved.
|
||
= ;
|
||
= ; THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
|
||
= ; PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
|
||
= ; ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
|
||
= ; WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
|
||
= ; THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
|
||
= ; HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
|
||
= ; AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
|
||
= ; AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
|
||
= ; COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
|
||
= ; CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
|
||
= ; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 11
|
||
|
||
|
||
= ; CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
|
||
= ; AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
|
||
= ; CIVIL LIABILITY.
|
||
= ;-----------------------------------------------------------------------;
|
||
= ;
|
||
= ; *** Current Edit History ***
|
||
= ; *** End of Current Edit History ***
|
||
= ;
|
||
= ; $Log$
|
||
= ;
|
||
= ; ENDLOG
|
||
=
|
||
= 0000 DCNTRL_DSADD equ dword ptr 0000h
|
||
= 0000 DCNTRL_DSOFF equ word ptr 0000h
|
||
= 0002 DCNTRL_DSSEG equ word ptr 0002h
|
||
= 0004 DCNTRL_COUNT equ word ptr 0004h
|
||
= 0006 DCNTRL_LEN equ 6
|
||
=
|
||
= 0000 DHNDL_COUNT equ word ptr 00h ; 00 - Usage Count
|
||
= 0002 DHNDL_MODE equ word ptr 02h ; 02 - File Mode
|
||
=
|
||
= 8000 DHM_FCB equ 8000h ; marks as FCB
|
||
= 4000 DHM_COMMIT equ 4000h ; auto-commit file
|
||
= 2000 DHM_NOCRIT equ 2000h ; no critical errors
|
||
= 0080 DHM_LOCAL equ 10000000b ; file is not inherited
|
||
= 0070 DHM_SHAREMSK equ 01110000b ; sharing bits
|
||
= 0000 DHM_COMPAT equ 00000000b
|
||
= 0010 DHM_DENY_ALL equ 00010000b ; exclusive - deny all
|
||
= 0020 DHM_DENY_WRITE equ 00100000b
|
||
= 0030 DHM_DENY_READ equ 00110000b
|
||
= 0040 DHM_DENY_NONE equ 01000000b
|
||
= 000F DHM_RWMSK equ 00001111b ; read write bits
|
||
= 0002 DHM_RW equ 00000010b ; file opened read/write
|
||
= 0001 DHM_WO equ 00000001b ; file opened write only
|
||
= 0000 DHM_RO equ 00000000b ; file opened read only
|
||
=
|
||
= ;
|
||
= ; 01h to 03h To be Determined
|
||
= ;
|
||
= 0004 DHNDL_DATRB equ byte ptr 04h ; Disk attribute byte
|
||
= 0005 DHNDL_ATTR equ byte ptr 05h ; Attribute Byte
|
||
= 0005 DHNDL_WATTR equ word ptr 05h ; Attribute Word
|
||
=
|
||
= 8000 DHAT_REMOTE equ 8000h ; set if file remote
|
||
= 4000 DHAT_TIMEOK equ 4000h ; set if timestamp up to date
|
||
= 1000 DHAT_LOCAL equ 1000h ; file is not inherited
|
||
= 0800 DHAT_NETPRN equ 0800h ; device is networked printer
|
||
= 0080 DHAT_DEV equ 0080h ; device/file bit
|
||
= 0040 DHAT_READY equ 0040h ; ready/not ready bit
|
||
= 0040 DHAT_CLEAN equ 0040h ; this bit CLEAR if dirty
|
||
= 0020 DHAT_BIN equ 0020h ; raw/cooked bit
|
||
= 001F DHAT_DRVMSK equ 001Fh ; drive in bottom bits
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 12
|
||
|
||
|
||
= 0008 DHAT_CLK equ 0008h ; -reserved-
|
||
= 0004 DHAT_NUL equ 0004h ; handle is null device
|
||
= 0002 DHAT_COT equ 0002h ; handle is console output device
|
||
= 0001 DHAT_CIN equ 0001h ; handle is console input device
|
||
=
|
||
= 0007 DHNDL_DEVPTR equ dword ptr 07h ; 07 - pointer to device
|
||
= 0007 DHNDL_DEVOFF equ word ptr 07h ; 07 - offset of device
|
||
= 0009 DHNDL_DEVSEG equ word ptr 09h ; 09 - segment of device
|
||
= 000B DHNDL_BLK1 equ word ptr 0Bh ; 0B - first cluster in file
|
||
= 000D DHNDL_TIME equ word ptr 0Dh ; 0D - file time stamp
|
||
= 000F DHNDL_DATE equ word ptr 0Fh ; 0F - file date stamp
|
||
= 0011 DHNDL_SIZE equ dword ptr 11h ; 11 - file length
|
||
= 0011 DHNDL_SIZELO equ word ptr 11h
|
||
= 0013 DHNDL_SIZEHI equ word ptr 13h
|
||
= 0015 DHNDL_POS equ dword ptr 15h ; 15 - current file position
|
||
= 0015 DHNDL_POSLO equ word ptr 15h
|
||
= 0017 DHNDL_POSHI equ word ptr 17h
|
||
= 0019 DHNDL_IDX equ word ptr 19h ; 19 - relative cluster within file of last
|
||
read
|
||
= 001B DHNDL_DBLK equ word ptr 1Bh ; 1B - cluster # of dir entry
|
||
= 001E DHNDL_DCNTHI equ byte ptr 1Eh ; 1E - dir offset # within cluster
|
||
= 001F DHNDL_DCNTLO equ byte ptr 1Fh ; 1F - dir offset # within cluster
|
||
= 0020 DHNDL_NAME equ byte ptr 20h ; 20 - File/Device Name
|
||
= 0028 DHNDL_EXT equ byte ptr 28h ; 28 - File extension
|
||
= 002B DHNDL_SFT equ dword ptr 2Bh ; 2B - pointer to previous SFT
|
||
= 002F DHNDL_UID equ word ptr 2Fh ; 2F - Owning Machine ID
|
||
= 0031 DHNDL_PSP equ word ptr 31h ; 31 - Owning PSP
|
||
= 0033 DHNDL_SHARE equ word ptr 33h ; 33 - Offset of sharing record
|
||
= 0035 DHNDL_BLK equ word ptr 35h ; 35 - absolute cluster of last read
|
||
= ; 37 - dword reserved for IFS
|
||
= 003B DHNDL_LEN equ 3Bh
|
||
=
|
||
= ; With DOS 3 structures _DBLK is a 16 bit
|
||
=
|
||
=
|
||
= ; Logical Drive Table format
|
||
= 0000 LDT_NAME equ byte ptr 00h ; 00 - Ascii Name field
|
||
= 0043 LDT_FLAGS equ word ptr 43h ; 43 - Flag field
|
||
= 0045 LDT_PDT equ dword ptr 45h ; 45 - PDT for this drive
|
||
= 0049 LDT_BLK equ word ptr 49h ; 49 - directory sector
|
||
= 004B LDT_ROOT equ word ptr 4bh ; 4B - virtual block root
|
||
= 004D LDT_DRV equ byte ptr 4dh ; 4D - physical drive
|
||
= 004F LDT_ROOTLEN equ word ptr 4fh ; 4F - Length of root portion
|
||
= 0058 LDT_LEN equ 58h
|
||
=
|
||
= 8000 LFLG_NETWRKD equ 8000h
|
||
= 4000 LFLG_PHYSICAL equ 4000h
|
||
= 2000 LFLG_JOINED equ 2000h
|
||
= 1000 LFLG_SUBST equ 1000h
|
||
|
||
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 13
|
||
|
||
|
||
eject
|
||
PCM_CODE CSEG BYTE
|
||
extrn error_exit:near ; Standard Error Exit Routine
|
||
extrn fcberror_exit:near ; Special FCB function Error Exit
|
||
extrn fdos_entry:near
|
||
extrn get_dseg:near
|
||
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 14
|
||
|
||
|
||
eject
|
||
;
|
||
; STRLEN determines the length of the string passed in DS:SI
|
||
; and returns the byte length in CX.
|
||
;
|
||
Public strlen
|
||
strlen:
|
||
0000 0657 push es ! push di
|
||
0002 1E07 push ds ! pop es
|
||
0004 8BFE mov di,si
|
||
0006 B9FFFF mov cx,0FFFFh
|
||
0009 2AC0 sub al,al
|
||
000B F2AE repnz scasb
|
||
000D 5F07 pop di ! pop es
|
||
000F F7D1 not cx
|
||
0011 49 dec cx
|
||
0012 C3 ret
|
||
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 15
|
||
|
||
|
||
eject
|
||
;
|
||
; This routine sets the address to be returned to by the
|
||
; FDOS when an error has occured and the RETRY request has been
|
||
; made. The set_retry routine should be used as follows:-
|
||
;
|
||
; mov al,Valid Error Responses
|
||
; call set_retry
|
||
; Init All FDOS Parameters
|
||
; call fdos_crit
|
||
;
|
||
; NB. For register model return with AX = dos_AL extended to 16 bit
|
||
|
||
Public set_retry_RF
|
||
set_retry_RF:
|
||
0013 B018 mov al,OK_RF ; Valid to RETRY or FAIL
|
||
; jmp set_retry ; (the most common case)
|
||
|
||
Public set_retry
|
||
set_retry:
|
||
0015 A20000 E mov valid_flg,al ; Save Valid Error Reponses
|
||
0018 8F060000 E pop retry_off ; Save the Routine Address
|
||
001C 89260000 E mov retry_sp,sp ; and the Stack Pointer
|
||
0020 8AC4 mov al,ah ; get function number
|
||
0022 32E4 xor ah,ah ; make it a word
|
||
0024 A30000 R mov FD_FUNC,ax ; save it for the FDOS
|
||
0027 1E push ds
|
||
0028 53 push bx
|
||
0029 C51E0000 E lds bx,int21regs_ptr ; point to users registers
|
||
002D 816716FEFF and reg_FLAGS[bx],not CARRY_FLAG
|
||
0032 8A07 mov al,reg_AL[bx] ; clear CY assuming we will succeed
|
||
0034 5B pop bx ; and reload AL with entry value
|
||
0035 1F pop ds
|
||
0036 FF260000 E jmp retry_off
|
||
|
||
;
|
||
; The FDOS routine executes the CCP/M FDOS function using the
|
||
; static FDOS parameter block defined in the Data Segment.
|
||
;
|
||
Public fdos_crit
|
||
fdos_crit:
|
||
003A E84400 0081 call fdos_nocrit
|
||
003D 3DA6FF cmp ax,ED_LASTERROR ; Compare against last error code
|
||
0040 731E 0060 jnb fdos_error ; if NOT below then is ERROR CODE
|
||
0042 0BC0 or ax,ax ; Reset the Carry Flag and Return
|
||
0044 C3 ret
|
||
|
||
Public fdos_ax_crit
|
||
fdos_ax_crit:
|
||
0045 E83900 0081 call fdos_nocrit
|
||
0048 3DA6FF cmp ax,ED_LASTERROR ; Compare against last error code
|
||
004B 7313 0060 jnb fdos_error ; if NOT below then is ERROR CODE
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 16
|
||
|
||
|
||
004D 0BC0 or ax,ax ; Reset the Carry Flag and Return
|
||
; jmp return_AX_CLC ; Save the Return Code
|
||
|
||
Public return_AX_CLC
|
||
return_AX_CLC:
|
||
;-------------
|
||
; On Entry:
|
||
; AX to be returned to caller in AX
|
||
; On Exit:
|
||
; ES:DI trashed
|
||
;
|
||
004F 1E57 push ds ! push di
|
||
0051 36C53E0000 E lds di,ss:int21regs_ptr
|
||
0056 8905 mov reg_AX[di],ax ; return AX to caller
|
||
0058 816516FEFF and reg_FLAGS[di],not CARRY_FLAG
|
||
005D 5F1F pop di ! pop ds
|
||
005F C3 ret
|
||
|
||
|
||
fdos_error: ; Process the Error
|
||
0060 3B260000 E cmp sp,retry_sp ; Is the user expecting use to
|
||
0064 7503 0069 jnz fdos_e10 ; return or use the default handler
|
||
0066 E90000 E jmp error_exit ; If CALLed then return with the error
|
||
fdos_e10: ; to the calling routine.
|
||
0069 F9 stc
|
||
006A C3 ret
|
||
|
||
Public fcbfdos_crit
|
||
fcbfdos_crit:
|
||
006B E81300 0081 call fdos_nocrit
|
||
006E 3DA6FF cmp ax,ED_LASTERROR ; Compare against last error code
|
||
0071 7303 0076 jnb fcbfdos_error ; if NOT below then is ERROR CODE
|
||
0073 0BC0 or ax,ax ; Reset the Carry Flag and Return
|
||
0075 C3 ret
|
||
|
||
fcbfdos_error: ; Process the Error
|
||
0076 3B260000 E cmp sp,retry_sp ; Is the user expecting use to
|
||
007A 7503 007F jnz fcbfdos_e10 ; return or use the default handler
|
||
007C E90000 E jmp fcberror_exit ; If CALLed then return with the error
|
||
fcbfdos_e10: ; to the calling routine.
|
||
007F F9 stc
|
||
0080 C3 ret
|
||
|
||
Public fdos_nocrit
|
||
fdos_nocrit:
|
||
0081 BA0000 R mov dx,offset fdos_data ; point to fdos parameter block
|
||
0084 1E06 push ds ! push es
|
||
0086 565755 push si ! push di ! push bp
|
||
0089 E80000 E call fdos_entry ; BDOS module entry point
|
||
008C 0BC0 or ax,ax ; Set the Flags
|
||
008E 5D5F5E pop bp ! pop di ! pop si
|
||
0091 071F pop es ! pop ds
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 17
|
||
|
||
|
||
0093 C3 ret
|
||
|
||
|
||
Public reload_ES
|
||
reload_ES:
|
||
; On Entry:
|
||
; None
|
||
; On Exit:
|
||
; ES = callers ES
|
||
; All regs preserved
|
||
;
|
||
0094 53 push bx
|
||
0095 36C41E0000 E les bx,ss:int21regs_ptr
|
||
009A 268E4710 mov es,es:reg_ES[bx] ; reload with callers ES
|
||
009E 5B pop bx
|
||
009F C3 ret
|
||
|
||
|
||
Public return_BX
|
||
return_BX:
|
||
;---------
|
||
; On Entry:
|
||
; BX to be returned to caller in BX
|
||
; On Exit:
|
||
; All regs preserved
|
||
;
|
||
00A0 1E53 push ds ! push bx
|
||
00A2 36C5360000 E lds si,ss:int21regs_ptr
|
||
00A7 895C02 mov reg_BX[si],bx ; return BX to caller
|
||
00AA 5B1F pop bx ! pop ds
|
||
00AC C3 ret
|
||
|
||
Public return_CX
|
||
return_CX:
|
||
;---------
|
||
; On Entry:
|
||
; CX to be returned to caller in CX
|
||
; On Exit:
|
||
; All regs preserved
|
||
;
|
||
00AD 1E53 push ds ! push bx
|
||
00AF 36C51E0000 E lds bx,ss:int21regs_ptr
|
||
00B4 894F04 mov reg_CX[bx],cx ; return CX to caller
|
||
00B7 5B1F pop bx ! pop ds
|
||
00B9 C3 ret
|
||
|
||
Public return_DX
|
||
return_DX:
|
||
;---------
|
||
; On Entry:
|
||
; DX to be returned to caller in DX
|
||
; On Exit:
|
||
PC-DOS RASM-86 1.4a Source: SUPPORT.A86 Page 18
|
||
|
||
|
||
; All regs preserved
|
||
;
|
||
00BA 1E53 push ds ! push bx
|
||
00BC 36C51E0000 E lds bx,ss:int21regs_ptr
|
||
00C1 895706 mov reg_DX[bx],dx ; return DX to caller
|
||
00C4 5B1F pop bx ! pop ds
|
||
00C6 C3 ret
|
||
|
||
PCMODE_DATA DSEG WORD
|
||
|
||
|
||
extrn current_psp:word
|
||
extrn DBCS_tbl:word ; double byte character set table
|
||
extrn int21regs_ptr:dword
|
||
extrn retry_off:word
|
||
extrn retry_sp:word
|
||
extrn valid_flg:byte
|
||
|
||
|
||
end
|
||
|
||
|
||
End of assembly. Number of errors: 0. Use factor: 16%
|
||
RD
|
||
|
||
|
||
extrn current_psp:word
|
||
|