home *** CD-ROM | disk | FTP | other *** search
- ; File MSSDEF.H
- ; Copyright (C) 1982, 1997, Trustees of Columbia University in the
- ; City of New York. The MS-DOS Kermit software may not be, in whole
- ; or in part, licensed or sold for profit as a software product itself,
- ; nor may it be included in or distributed with commercial products
- ; or otherwise distributed by commercial concerns to their clients
- ; or customers without written permission of the Office of Kermit
- ; Development and Distribution, Columbia University. This copyright
- ; notice must not be removed, altered, or obscured.
-
- ;; MASM v6, use MASM 5.1 constructions (/Zm) OPTION M510
- .xlist ; suppress listing in program
- .sall ; don't list macro expansions
- ; define MS-DOS Kermit conditionals
- ; comment out line to re-enable functionality
- ;nls_portuguese equ 1 ; for Portuguese (Brazil) legends
- ;no_terminal equ 1 ; no terminal emulation (no Connect mode)
- ;no_graphics equ 1 ; no Tektronix and no Data General graphics
- ;no_network equ 1 ; no network support at all
- ;no_tcp equ 1 ; no internal TCP/IP stack
-
- ifdef no_network
- no_tcp equ 1 ; tcp is a network channel
- endif
-
- ifdef no_terminal ; implies no graphics
- no_graphics equ 1
- endif ; no_terminal
-
- ; Below is for medium-lite (TCP but no terminal emulation)
- ;no_terminal equ 1
- ;no_graphics equ 1
-
- ; Note on conditionals: if defining no_graphics then omit file msgibm.asm.
- ; if defining no_network or no_tcp then omit files msn*.c, msn*.asm, msn*.h.
- ; if defining no_terminal then omit the above plus msuibm.asm and mszibm.asm.
-
- version equ 315 ; master version number
- verdef macro
- db ' MS-DOS Kermit: 3.15'
- ifdef nls_portuguese
- db ' Portuguese'
- endif ; nls_portuguese
- db ' 15 Sept 1997'
- endm
-
- BELL EQU 07H
- TAB EQU 09H
- LF EQU 0AH
- FF EQU 0CH
- CR EQU 0DH
- XON EQU 11H
- XOFF EQU 13H
- ESCAPE EQU 1BH
- DEL EQU 7FH
- BS EQU 08H
- CTLZ EQU 1AH
- SOH EQU 01H ; Start of header char
- SPC EQU 20H
- SS2 equ 8eh
- SS3 equ 8fh
- DCS equ 90h
- CSI equ 9bh
- STCHR equ 9ch
-
- DOS EQU 21H
-
- CONIN EQU 01H
- CONOUT EQU 02H
- LSTOUT EQU 05H
- DCONIO EQU 06H
- CONINQ EQU 07H ; quiet console input
- PRSTR EQU 09H
- CONSTAT EQU 0BH
- SELDSK EQU 0EH ; Select disk
- GCURDSK EQU 19H ; Current disk
- SETDMA EQU 1AH
- SETINTV EQU 25H ; Set interrupt vector from ds:dx
- GETDATE EQU 2AH ; Get date
- GETTIM EQU 2CH ; Get the time of day
- DOSVER EQU 30H ; dos version #
- GETINTV EQU 35H ; get interrupt vector to es:bx
- GSWITCH EQU 37H ; undocumented get/set switch character
- CHDIR EQU 3BH ; change directory
- CREAT2 EQU 3CH ; create
- OPEN2 EQU 3DH ; open
- CLOSE2 EQU 3EH ; close
- READF2 EQU 3FH ; read
- WRITE2 EQU 40H ; write
- DEL2 EQU 41H ; delete
- LSEEK EQU 42H ; lseek
- IOCTL EQU 44H ; i/o control
- GCD EQU 47H ; get current directory
- ALLOC EQU 48H ; allocate memory
- FREEMEM EQU 49H ; free memory
- SETBLK EQU 4AH ; modify allocated memory map
- EXEC EQU 4BH ; execute task
- FIRST2 EQU 4EH ; search for first
- NEXT2 EQU 4FH ; search for next
- fileattr equ 57h ; get/set file's date and time
-
- PAREVN EQU 00 ; Even parity
- PARMRK EQU 01 ; Mark parity
- PARNON EQU 02 ; No parity.
- PARODD EQU 03 ; Odd parity
- PARSPC EQU 04 ; Space parity
- PARHARDWARE EQU 10h ; indicator of hardware parity
- PAREVNH EQU PARHARDWARE+PAREVN ; hardware parity (9-bit bytes)
- PARMRKH EQU PARHARDWARE+PARMRK
- PARODDH EQU PARHARDWARE+PARODD
- PARSPCH EQU PARHARDWARE+PARSPC
-
- FLOXON EQU 1113H ; Use XON/XOFF for flow control
- FLONON EQU 0 ; Don't do flow control
- DEFHAND EQU XON ; Use XON as default handshake
-
- MODCD EQU 80H ; MODEM CD handshake line status responses
- MODCTS EQU 10H ; MODEM CTS
- MODDSR EQU 20H ; MODEM DSR
- MODRI EQU 40H ; MODEM RI
-
- ; flags.remflg byte definitions
- DQUIET EQU 1 ; Display mode, suppress file xfer statistics
- DREGULAR EQU 2 ; Regular formatted screen display of statistics
- DSERIAL EQU 4 ; Serial mode (non-formatted screen)
- D8BIT EQU 8 ; Display chars as 8-bit vs 7-bit quantities
- DSERVER EQU 10H ; Server mode active, if this bit is set
-
- MAXTAK EQU 25 ; Max number of TAKE's allowed
- DEFMXTRY EQU 5 ; default number of retries on a data packet (63 max)
- ; Init packet gets three times this number of tries
-
- DEFESC EQU 1DH ; The default escape character (Control rt sq bracket)
- DRPSIZ EQU 94 ; Default receive packet size, regular pkts
- DSPSIZ EQU 94 ; Default send packet size, regular pkts
- DSTIME EQU 8 ; Default send time out interval
- DSQUOT EQU 23H ; Default send (and receive) quote char
- DQBIN EQU 26H ; Default 8-bit prefix
- DCHKLEN EQU 1 ; Default checksum length
- DEFPAR EQU PARNON ; Default parity (none)
- DEFRPTQ EQU 7EH ; Default repeat quote
-
- bufsiz equ 1536 ; size of serial port input buffer
- buffsz equ 512 ; size of disk file i/o buffer (buff)
- cmdblen equ 1000 ; length of command lines (sharing buffers)
- cptsiz equ 256 ; size of session capture buffer
- tbufsiz equ 1000 ; size of Take buffers
- decbuflen equ 1024 ; length of decode/work buffer
- encbuflen equ 512 ; length of encode buffer
- maxwind equ 32 ; max number of window slots
- macmax equ 160 ; max number of macros
-
- ; bit defs for flags.capflg (LOG command)
- logoff equ 0 ; Off = no or suspended logging
- logdeb equ 1 ; log debugging (not yet imp)
- logpkt equ 2 ; log packets sent/received
- logses equ 4 ; log connect mode session
- logtrn equ 8 ; log (file) transaction
-
- ; Attributes-allowed bits in flags.attflg
- attchr equ 1 ; File Character-set
- attdate equ 2 ; File Date/Time
- attlen equ 4 ; File Length
- atttype equ 8 ; File Type
- attsys equ 16 ; System-identification
-
- xfr_xparent equ 0 ; transfer character set indices
- xfr_latin1 equ 1 ; ref table charids in mssfil.asm
- xfr_latin2 equ 2
- xfr_hebiso equ 3
- xfr_cyrillic equ 4
- xfr_japanese equ 5
-
- lock_disable equ 0 ; transfer locking shift capability
- lock_enable equ 1
- lock_force equ 2
-
- filecol_rename equ 0 ; File Collision actions for flags.flwflg
- filecol_overwrite equ 1 ; match with Rem Set File Collision codes
- filecol_backup equ 2
- filecol_append equ 3
- filecol_discard equ 4
- filecol_ask equ 5
- filecol_update equ 6
-
- ; Terminal emulator section
-
- ; Kinds of terminals available
- ttgenrc equ 0 ; no emulation done by Kermit
- ttheath equ 1 ; Heath-19
- ttvt52 equ 2 ; VT52
- ttvt100 equ 4 ; VT100
- ttvt102 equ 8 ; VT102
- ttvt220 equ 10h ; VT220
- ttvt320 equ 20h ; VT320
- tttek equ 40h ; Tektronix 4010
- tthoney equ 80h ; Honeywell VIP7809
- ttpt200 equ 100h ; Prime PT200
- ttd463 equ 200h ; Data General D463
- ttd470 equ 400h ; Data General D470
- ttwyse equ 800h ; Wyse-50
- ttd217 equ 1000h ; Data General D217 (D463 w/217 ident)
- ttansi equ 2000h ; Ansi.sys flavor (VT100 base)
- TTTYPES equ 15 ; Number of terminal types defined
-
- ; tekflg bits in byte
- tek_active equ 1 ; actively in graphics mode
- tek_tek equ 2 ; Tek terminal
- tek_dec equ 4 ; Tek submode of DEC terminals
- tek_sg equ 8 ; special graphics mode
-
- ; DEC emulator status flags (bits in words vtemu.vtflgst and vtemu.vtflgop)
- anslnm equ 1H ; ANSI line feed/new line mode
- decawm equ 2H ; DEC autowrap mode
- decscnm equ 80H ; DEC screen mode
- decckm equ 200H ; DEC cursor keys mode
- deckpam equ 400H ; DEC keypad application mode
- decom equ 800H ; DEC origin mode
- deccol equ 1000H ; DEC column mode (0=80 col)
- decanm equ 2000H ; ANSI mode
- ;dececho equ 4000H ; ANSI local echo on (1 = on)
-
- ; Terminal SETUP mode flags (joint with bits above, some name dups)
- vsnewline equ 1H ; ANSI new line (0 = off)
- vswrap equ 2H ; Line wrap around (0 = no wrap)
- vsnrcm equ 4H ; National Rep Char set (0=none)
- vswdir equ 8H ; Writing direction (0=left, 1 right)
- vskeyclick equ 10H ; Keyclick (0 = off)
- vsmarginbell equ 20H ; Margin bell (0 = off)
- vscursor equ 40H ; Cursor (0 = block, 1 = underline)
- vsscreen equ 80H ; Screen (0 = normal, 1 = rev. video)
- vscntl equ 100h ; 8 or 7 bit controls (1 = 8-bit)
- vshscroll equ 4000h ; horiz scroll (0=auto, 1=manual)
- vscompress equ 8000h ; compressed text(0=graphics,1=132col)
-
- ; VTxxx defaults for SETUP
- ; Note: Tab stops default to columns 9, 17, 25, 33, etc
- ;
- ; VSDEFAULTS holds Kermit startup time settings for the VT100 emulator
- ; Configure it by adding together names from the setup mode flags above
- ; to turn on features (they default to being off if not mentioned).
- ; Set the kind of terminal by placing a ttxxxx name in VTFLGS in the
- ; FLGINFO structure well below.
-
- vsdefaults equ 0+vscursor+vshscroll+vscompress ; default conditions
-
- emulst struc ; structure for terminal emulator global data
- vtflgst dw 0 ; VTxxx setup flags
- vtflgop dw 0 ; VTxxx runtime flags, like setup flags
- vttbs dw 0 ; pointer to default tab stops
- vttbst dw 0 ; pointer to tab stops (both in mszibm)
- vtchset db 16 ; value of default character set (16=Latin-1)
- vtchop db 16 ; value of operational char set
- att_ptr dw 0 ; pointer to video attributes: norm, rev
- vttable db 4 dup (0ffh) ; char set number for G0..G3 overrides
- vtdnld db 1 ; autodownload Kermit files (0 = off)
- emulst ends
- ; end of terminal emulator section
-
- ; Structure definitions
-
- ifdef save_mem2 ; define only for Xenix builds
- save_mem equ 1 ; for Xenix
- endif
-
- ifndef save_mem2 ; for regular DOS builds
- ; Command parser information
- cmdinfo struc
- cmrprs dd 0 ; offset,segment of where to jmp on reparsing
- cmostp dw 0 ; place to remember stack pointer
- cmblen dw 0 ; length of caller's cmtxt receiving buffer
- cmprmp dw 0 ; address (ds:offset) of prompt
- cmwhite db 0 ; non-zero to permit leading whitespace
- cmcr db 0 ; non-zero to accept bare CR
- cmper db 0 ; non-zero to allow literal backslash-percent in cmd
- cmquiet db 0 ; non-zero for no echoing
- cmkeep db 0 ; non-zero to keep Take/Macro open after EOF
- impdo db 0 ; non-zero for keyword search failure to use DO cmd
- cmdirect db 0 ; non-zero to force reading from kbd/file, not Take.
- cmdonum db 0 ; non-zero to allow \number -> byte expansion
- cmcomma db 0 ; non-zero to convert comma to space separator
- cmcnvkind db 0 ; see cmcnv_* for parser output filter kinds
- cmarray db 0 ; non-zero to allow substitution in array brackets
- cmdinfo ends
-
- ; Command parser equates
- cmkey equ 1 ; parse a keyword
- cmeol equ 4 ; parse a CR end of line character
- cmline equ 5 ; parse line of text up to CR
- cmword equ 6 ; parse an arbitrary word
- cmcnv_none equ 0 ; CR within curly braces is normal terminator
- cmcnv_crprot equ 1 ; allow CR within curly braces
-
- endif
-
- ; equates for flags.destflg
- dest_printer equ 0
- dest_disk equ 1
- dest_screen equ 2
- dest_memory equ 4
-
- ; Flags information
- flginfo struc
- belflg db 1 ; Use bell
- comflg db 1 ; Use COM1 by default
- abfflg db 0 ; Keep incoming file if abort
- debug db 0 ; Debugging mode (default off)
- flwflg db 0 ; File warning (collision) flag (default rename)
- extflg db 0 ; Exit flag (default off)
- vtflg dw ttvt320 ; term emulation type, default
- cxzflg db 0 ; ^X/^Z to interrupt file x-fer
- xflg db 0 ; Seen "X" packet
- eoflag db 0 ; EOF flag; non-zero on EOF
- capflg db 0 ; On if capturing data
- takflg db 0 ; On if echoing commands of TAKE file
- timflg db 1 ; Say if are timing out or not
- destflg db 1 ; Incoming files destination: disk or printer
- eofcz db 0 ; ^Z signals eof if non-zero
- remflg db DREGULAR ; server (remote) mode plus display flag bits
- modflg db 1 ; non-zero if mode line on
- attflg db 0ffh ; non-zero if file attributes packets are enabled
- chrset dw 0 ; ident of file character set (437=hardware, CP437)
- unkchs db 0 ; files w/unknown-character-set (0=keep, 1=cancel)
- xltkbd db 1 ; keyboard character-set translation (1=on, 0=off)
- oshift db 0 ; output-shift (1 = auto, 0 = none, default none)
- exitwarn db 1 ; exit warning if active session (0 = ignore)
- carrier db 0 ; check Carrier Detect (0 = ignore)
- flginfo ends
-
- ifndef save_mem2
- ; Transmission parameters
- trinfo struc
- maxdat dw 0 ; Max packet size for send, word for long packets
- chklen db 1 ; Number of characters in checksum
- seol db cr ; Send EOL char
- reol db cr ; Receive EOL char
- ssoh db soh ; Send start-of-packet character
- rsoh db soh ; Receive start-of-packet character
- squote db dsquot ; Send quote character
- rquote db dsquot ; Receive quote character
- rptq db 7eh ; Repeat quote character (tilde)
- rptqenable db 1 ; Repeat quote character enable (1)/disable(0)
- spsiz db dspsiz ; Send (regular) packet size
- rpsiz db drpsiz ; Receive (regular) packet size
- stime db dstime ; Send timeout. (Don't timeout)
- rtime db 5 ; Receive timeout
- sdelay db 0 ; Send delay time (sec) for just SEND command
- spad db 0 ; Send number of padding char
- rpad db 0 ; Receive number of padding char
- spadch db 0 ; Send padding char
- rpadch db 0 ; Receive padding char
- ebquot db 'Y' ; Send 8-bit quote character
- escchr db defesc ; Escape character
- capas db 2,0 ; Capas bytes (just two for now)
- windo db 1 ; number of window slots
- rlong dw drpsiz ; long pkt size we want to receive
- slong dw 9024 ; long pkt size we could send (negotiated with host)
- xchset db 0 ; transfer char set (0=hardware) on comms wire
- xchri db 0 ; transfer char set readable (0) or invertible (1)
- xtype db 0 ; file type for xfer (0=text,1=binary,etc)
- sdbl db 0 ; char to be doubled when sending (if non-null)
- rign db 0 ; char to be ignored when received (if non-null)
- lshift db lock_enable ; locking shift (0=disable, 1=enable, 2=force on)
- cpkind db 0 ; checkpoint availability
- cpint dd 0 ; checkpoint interval
- xmode db 0 ; binary/manual mode sensing (0=manual)
- trinfo ends
- endif
-
- ifndef save_mem
- pktinfo struc
- datadr dd 0 ; data field address (segment:offset)
- datlen dw 0 ; length of data field in a packet
- datsize dw 0 ; length of data field buffer
- pktype db 0 ; packet type, a letter
- seqnum db 0 ; packet SEQ number
- ackdone db 0 ; zero if pkt not ack'ed yet
- numtry db 0 ; number of tries on this packet
- sndtime dd 0 ; time packet sent, Bios clock ticks
- pktinfo ends
- endif
-
- filest struc
- dta db 26 dup(0) ; DOS, 21 resev'd bytes, file attr, 2 each date & time
- sizelo dw 0 ; DOS, file size double word
- sizehi dw 0
- fname db 13 dup(0) ; DOS, filename, asciiz, with dot. End of DOS section
- handle dw -1 ; Kermit, file handle
- string db 64 dup(0) ; Kermit, filename string, including drive and path
- fstat db 0 ; Kermit, status of Find First DOS call
- fstat2 db 0 ; zero for disk file, non-zero for device
- filest ends
-
- takinfo struc ; Take file structure
- taktyp db 0 ; type: valid file, macro, text subsititution
- takinvoke db 0 ; taklev of previous DO or top level cmd parser
- takhnd dw 0 ; file handle
- takptr dw 0 ; pointer in buffer to next char to read
- takbuf dw 0 ; segment of Take buffer, must be dd part of takptr
- takcnt dw 0 ; number of unread bytes in buffer
- takctr dw 0 ; COUNT variable for script program control
- takargc dw 0 ; argument quantity count
- takper db 0 ; comand.cmper (\... expansion) while in Take file
- takseek dd 0 ; lseek number bytes into disk file for Take Reading
- takattr db 0 ; attributes bitfield
- takinfo ends
-
- ; values for taktyp field
- take_file equ 1
- take_macro equ 2
- take_sub equ 4
- take_comand equ 8
-
- ; values for takattr field
- take_malloc equ 1
- take_autocr equ 2
- take_while equ 8 ; While or For loop or Switch
- take_subwhile equ 16 ; worker from IF part of While/For
- ; malloc means new buffer malloc'd and segment is in .takbuf
- ; autocr means report out CR at End of File
-
- ; Port Information
- prtinfo struc
- baud dw 0 ; Default baud rate
- ecoflg db 0 ; Local echo flag (default off)
- parflg db 0 ; Parity flag (default none)
- floflg db 0 ; If need flow control
- hndflg db 0 ; If need handshake during file transfer
- hands db 0 ; Default handshake
- stopbits db 1 ; number of stop bits (1 or 2)
- flowc dw 0 ; Do flow control with XON/XOFF
- duplex db 0 ; Do full (0) or half (1) duplex comms
- portrdy db 0 ; Non-zero if comms port is still active
- sndproc dw 0 ; byte sending procedure
- rcvproc dw 0 ; byte receiving procedure
- cloproc dw 0 ; session close procedure
- starttime db 4 dup (0) ; start time hh, mm, ss
- prtinfo ends
-
- ; ENABLE/DISABLE bits for denyflg
- cwdflg equ 1 ; deny remote cwd
- delflg equ 2 ; deny remote del
- dirflg equ 4 ; deny remote dir
- hostflg equ 8 ; deny remote host
- spcflg equ 10H ; deny remote space
- finflg equ 20H ; deny fin, bye, logo to server
- getsflg equ 40H ; deny paths in get cmds to server
- sndflg equ 80H ; deny paths in send cmds to server
- typflg equ 100H ; deny paths in type
- pasflg equ 200h ; username/password required
- kerflg equ 400h ; deny remote kermit
- prtflg equ 800h ; deny remote print
- defflg equ 1000h ; deny remote define
- qryflg equ 2000h ; deny remote query
- retflg equ 4000h ; deny retrieve (file deletion)
- tekxflg equ 8000h ; deny automatic Tektronix invokation
-
- ifndef save_mem
- statinfo struc ; statistics, basic information layout
- prbyte dw 2 dup (0) ; number of bytes received by port
- psbyte dw 2 dup (0) ; number of bytes sent to port
- frbyte dw 2 dup (0) ; bytes received
- fsbyte dw 2 dup (0) ; bytes sent
- prpkt dw 2 dup (0) ; number of packets received
- pspkt dw 2 dup (0) ; number of packets sent
- nakrcnt dw 0 ; count of naks received
- nakscnt dw 0 ; count of naks sent
- btime dw 2 dup (0) ; start time (seconds) of transfer
- etime dw 2 dup (0) ; elapsed time (seconds) of transfer
- pretry dw 0 ; packet retries
- xstatus dw 0 ; transfer status
- xstatus2 db 0 ; extended (file attribute) status
- xname db 64 dup (0) ; alias (send/receive as) filename
- statinfo ends
-
- endif
-
- scptinfo struc ; scripts
- inactv db 0 ; input action value (default proceed)
- incasv db 0 ; input case (default ignore)
- indfto dw 1 ; input and pause timeout (def 1 sec)
- inecho db 1 ; echo Input cmd text (0 = no)
- infilter db 1 ; filer control sequences from screen (0=no)
- xmitfill db 0 ; non-zero to TRANSMIT filler for blank line
- xmitlf db 0 ; non-zero to TRANSMIT LF's
- xmitpmt db lf ; default prompt for line acknowledgments
- xmitpause dw 0 ; millisec pause between lines
- scptinfo ends
-
- ; definitions for terminal handler:
- termarg struc
- flgs db 0 ; flags
- prt db 0 ; port to use (0,1,etc)
- captr dw 0 ; routine to call with captured data
- baudb db 0 ; baud rate bits
- parity db 0 ; parity
- termarg ends
-
- ; Character set identification bytes
- C_ASCII equ 0
- C_UKNRC equ 1
- C_DUNRC equ 2
- C_FINRC equ 3
- C_FRNRC equ 4
- C_FCNRC equ 5
- C_DENRC equ 6
- C_ITNRC equ 7
- C_NONRC equ 8
- C_PONRC equ 9
- C_SPNRC equ 10
- C_SENRC equ 11
- C_CHNRC equ 12
- C_DHEBNRC equ 13
- C_ALTROM equ 14
- C_XPARENT equ 15
- C_LATIN1 equ 16
- C_DMULTINAT equ 17
- C_DECTECH equ 18
- C_DECSPEC equ 19
- C_DGINT equ 20
- C_DGLINE equ 21
- C_DGWP equ 22
- C_LATIN2 equ 23
- C_HEBREWISO equ 24
- C_DECHEBREW equ 25
- C_WYSEGR equ 26
- C_HPROMAN8 equ 27
- C_CYRILLIC_ISO equ 28
- C_KOI8 equ 29
- C_SHORT_KOI equ 30
- C_JISKAT equ 141
- C_JISROM equ 142
- C_JISKANJI equ 215
-
- ; bits for flag byte
- capt equ 40h ; capture output
- emheath equ 20h ; emulate heath
- trnctl equ 08h ; translate controls (debug)
- modoff equ 04h ; mode line off
- lclecho equ 01h ; local echo
-
- ; bits for kstatus general Kermit status word
- kssuc equ 0000h ; success condition
- kssend equ 0001h ; send file failed
- ksrecv equ 0002h ; get/receive file failed
- ksrem equ 0004h ; Remote command failed
- kstake equ 0008h ; Take file failure
- ksgen equ 0010h ; general command failure
- ksuser equ 0080h ; user intervention (aka Control-C)
- ksattrib equ 0100h ; file attributes file rejection
-
- emsint equ 67h ; EMS interrupt
- xmspresent equ 4300h ; EMS presence check for XMS mgr
- emsmgrstat equ 40h ; EMS get manager status
- emsgetseg equ 41h ; EMS get segment of page frame
- emsgetnpgs equ 42h ; EMS get number free pages
- emsalloc equ 43h ; EMS get handle and allocate memory
- emsmapmem equ 44h ; EMS map memory
- emsrelease equ 45h ; EMS release mapped memory
- emsgetver equ 46h ; EMS get version number
- emssetname equ 5301h ; EMS LIM 4, set name
- xmsmanager equ 4310h ; XMS get manager entry point
- xmsquery equ 08h ; XMS query largest block available
- xmsalloc equ 09h ; XMS allocate memory block
- xmsrelease equ 0ah ; XMS free memory block
- xmsmove equ 0bh ; XMS move memory block
-
- xmsreq struc ; XMS memory move request block
- xms_count dd 0 ; bytes to move, must be even
- handle_src dw 0 ; source handle (0 = under 1MB)
- offset_src dd 0 ; offset into source block, bytes
- handle_dst dw 0 ; destination handle
- offset_dst dd 0 ; offset into destination block, bytes
- xmsreq ends
-
- mkeyw macro key,value ; widely used data structure
- local keylen,start
- start equ $ ; remember start address of structure
- dw keylen ; length of "key"
- db key ; "key" itself
- keylen equ $-(start+2) ; number of bytes in "key"
- dw value ; action value
- endm
- ;
- ; Note well. The following segment references are in THIS file to provide
- ; the desired ordering of them in memory. To wit: lowest addresses for
- ; 'code', followed by 'data', and only then by 'stack'.
- code segment public 'kcode'
- code ends
- code1 segment public 'kcode'
- code1 ends
- code2 segment public 'kcode'
- code2 ends
- data segment public 'kdata'
- data ends
- data1 segment public 'kdata'
- data1 ends
- _TEXT SEGMENT WORD PUBLIC 'CODE'
- _TEXT ENDS
- _DATA SEGMENT WORD PUBLIC 'DATA'
- _DATA ENDS
- CONST SEGMENT WORD PUBLIC 'CONST'
- CONST ENDS
- _BSS SEGMENT WORD PUBLIC 'BSS'
- _BSS ENDS
- _STACK SEGMENT WORD STACK 'STACK'
- _STACK ENDS
- DGROUP GROUP CONST, _BSS, _DATA, _STACK
- .list
-