home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1992 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1992.iso
/
msdos
/
batutl
/
batques.asm
< prev
next >
Wrap
Assembly Source File
|
1984-01-03
|
3KB
|
96 lines
page 64,132
title bat-ques -- Batch file Question Asker, sets errorlevel
.RADIX 10
;
;
;
;*****************************************************************
; INFO-IBMPC libarary contribution by H. Fischer - HFischer@eclb 12/83
; If you like it, do not send me $10 (but I will accept amounts
; with many more zeros if your generosity is excessive).
; Questions/problems to HFischer@eclb (213/902-5139).
;
; This program allows a batch file to ask the user a question
; and return a one-character response which is testable
; by the IF subcommand of bat files, via the errorlevel.
;
; You use the question asker per following example:
;
; .
; . (your batch file to ask if guy wants to edit with
; . mince/emacs or ibm's editor)
; .
; echo off
; bat-ques WHICH EDITOR, m OR e FOR MINCE (EMACS), i FOR IBM's? $
; if errorlevel 110 goto badresp
; if errorlevel 109 goto minceed
; if errorlevel 106 goto badresp
; if errorlevel 105 goto ibmed
; if errorlevel 102 goto badresp
; if errorlevel 101 goto minceed
; :badresp
; echo Your response was invalid. Sorry
; goto endit
; :minceed
; if not exist mincomm.sum copy \bin\mince.swp mince.swp
; mince %1
; if not exist mincomm.sum del mince.swp
; goto endit
; :ibmed
; profed %1
; :endit
; echo on
;
; Note that the question prompt follows the bat-ques command and
; must end with a dollar sign. The ascii value of the response is
; returned as the error level. Since error level tests are always
; greater than or equal tests, you must check for highest value first
; and lowest value last. Example above shows what you doto check for
; missing values. Note example assumes lower case answer only for
; simplicity sake.
;
; Ascii values (e.g., A is 65, B is 66, a is 97) are found in back
; of your BASIC manual. Only one character responses are accepted,
; and they are not followed by a carriage return.
;
; Extended ascii codes (function and alt keys) should work as per
; page G-6 of your BASIC manual; the first call to bat-ques will
; return a zero and the next call (presumably "bat-ques $" without
; another prompt) will return the number shown on page G-7.
;
; To build this program:
; 1) asm bat-ques
; 2) link bat-ques
; 3) exe2bin bat-ques.exe \bin\bat-ques.com (name your path dir!)
; 4) del bat-ques.exe
;
; have fun
;********************************************************************
code segment para
assume cs:code
org 82h
PROMPT label byte ; here DOS places the prompt string
org 100h
KEY proc far
START:
mov ax,cs ; make this mess addressable via ds
mov ds,ax
assume ds:code
mov dx,offset PROMPT
mov ah,9
int 21h ; display the prompt
mov ah,1
int 21h ; get the input into AL
mov saveit,al
mov dx,offset newlin ; move display to new line
mov ah,9
int 21h
mov al,saveit
mov ah,4ch ; return the errorlevel already in AL
int 21h
newlin: db 10,13,'$' ; give user a new line before quitting
saveit db 0
KEY endp
code ends
end start