Category : Utilities for DOS and Windows Machines
Archive   : XPANDISK.ZIP
Filename : XPANBOSS.ASM

 
Output of file : XPANBOSS.ASM contained in archive : XPANDISK.ZIP
; XpanBoss: the control program for the XPANDISK.SYS
; virtual disk expanded memory device driver. PC Magazine 10-31-88

_TEXT SEGMENT PUBLIC 'CODE'
ASSUME CS:_TEXT,DS:_TEXT
ASSUME ES:_TEXT,SS:_TEXT
ORG 100H

START: JMP MAIN

COPYRIGHT DB CR,LF,"XPANBOSS 1.0 (C) 1988 Ziff Communications Co."
PROGRAMMER DB CR,LF,"PC Magazine ",BOX," Michael J. Mefford",CR,LF,LF

DB "Syntax: XPANBOSS [d:][/D disk size][/S sector size][/E entries]"
DB "[/W][/R][/M][/A]",CR,LF,LF
DB "disk size = (16 - 32768)K bytes; default = 64",CR,LF
DB "sector size = (128,256,512) bytes; default = 256",CR,LF
DB "entries = (4 - 512)in root directory; default = 64",CR,LF
DB "/W = Change size WITHOUT asking. WARNING: All data will be lost.",CR,LF
DB "/R = Read-only drive",CR,LF
DB "/M = Minimum disk size (16K)",CR,LF
DB "/A = All of available expanded memory",CR,LF,LF

DB "Use XPANBOSS to control the XPANDISK virtual disk",CR,LF,"$"

BELL EQU 7
CR EQU 13
LF EQU 10
CTRL_Z EQU 26
SPACE EQU 32
BOX EQU 254
Y_SCAN EQU 15H

DRIVE EQU 5CH

PASSWORD DB "PC Magazine Productivity"
PASSWORD_LENGTH EQU $ - PASSWORD
PIPE DB PASSWORD_LENGTH + 1 DUP (?)

DRIVE_MSG DB "Drive $"
ILLEGAL_MSG DB ": does not belong to XPANBOSS",BELL,CR,LF,"$"
WARNING_MSG1 DB CR,LF,"WARNING: All current data of $"
WARNING_MSG2 DB ": will be lost.",CR,LF
DB "Do you wish to continue? Y/N $"
FAILED_MSG DB "UNSUCCESSFUL"
CRLF DB CR,LF,"$"

;----------------------------------------------------------------------
MAIN PROC NEAR

CLD ;All string moves forward.
MOV DX,OFFSET COPYRIGHT ;Display copyright.
CALL PRINT_STRING

MOV BL,DS:[DRIVE] ;Retrieve drive request.
MOV AL,BL ;Save it.
DEC AL ;Was there a drive request?
JNS GOT_DRIVE ;If yes, use it.

MOV AH,19H ;Else, get default drive.
INT 21H

GOT_DRIVE: ADD AL,"A" ;Convert to ASCII.
MOV DS:[DRIVE],AL ;Save it and
MOV BYTE PTR DS:[DRIVE + 1],"$" ; convert to DOS string.

MOV DX,OFFSET PIPE ;Request password from
MOV SI,DX ; block device driver.
MOV CX,PASSWORD_LENGTH
MOV AX,4404H ;IOCTL Read from block device.
INT 21H

MOV DI,OFFSET PASSWORD ;Did device driver return
REPZ CMPSB ; required password?
JZ CONTINUE ;If yes, continue.

MOV DX,OFFSET CRLF ;Else, CR and LF to next line.
CALL PRINT_STRING
CALL PRINT_DRIVE ;Print requested drive.
MOV DX,OFFSET ILLEGAL_MSG ;Tell user drive does not
CALL PRINT_STRING ; belong to XPANBOSS.
JMP SHORT ERROR_EXIT

CONTINUE: CMP BYTE PTR [SI],0 ;If Parameters not changed
JZ PARAMETERS ; or /W, skip warning.

CALL WARNING ;Else, warn user.
JNZ EXIT ;Exit if user said no.
MOV DX,OFFSET CRLF ;Else, CR, LF to next line.
CALL PRINT_STRING

PARAMETERS: MOV DX,OFFSET PASSWORD ;Send counter password as
MOV CX,PASSWORD_LENGTH ; OK to XPANDISK.
MOV AX,4405H ;IOCTL Write to block device.
INT 21H
MOV AL,0 ;ERRORLEVEL = 0.
JNC EXIT ;If successful, exit.

MOV DX,OFFSET FAILED_MSG ;Else, tell user it failed.
CALL PRINT_STRING
ERROR_EXIT: MOV AL,1 ;ERRORLEVEL = 1.

EXIT: PUSH AX ;Save ERRORLEVEL.
MOV DX,OFFSET CRLF ;Blank line.
CALL PRINT_STRING
POP AX ;Retrieve ERRORLEVEL.
MOV AH,4CH ;Exit.
INT 21H

MAIN ENDP

WARNING: MOV DX,OFFSET WARNING_MSG1 ;Display warning message.
CALL PRINT_STRING
CALL PRINT_DRIVE
MOV DX,OFFSET WARNING_MSG2
CALL PRINT_STRING

XOR AH,AH ;Get a keystroke.
INT 16H
CMP AH,Y_SCAN ;"Y" key pressed?
JNZ WARNING_END ;If no, quick exit.
MOV AH,0EH ;Else, display key pressed.
INT 10H
XOR AH,AH ;Retrieve another keystroke.
INT 16H
CMP AL,CR ;Requires a confirming Enter.

WARNING_END: RET

PRINT_DRIVE: MOV DX,OFFSET DRIVE_MSG
CALL PRINT_STRING
MOV DX,5CH ;Requested drive.

PRINT_STRING: MOV AH,9
INT 21H
RET

_TEXT ENDS
END START


  3 Responses to “Category : Utilities for DOS and Windows Machines
Archive   : XPANDISK.ZIP
Filename : XPANBOSS.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/