home *** CD-ROM | disk | FTP | other *** search
- * QueryAny v2.0 - make decisions from within scripts
- * by Mark W. Smith
- *
- * © 1987 Smithware
- * Cincinnati, OH
- * ------------------------------------------------------------------------------
- * PROGRAM REVISIONS:
- *
- * v1.0 Lattice C - 15000+ bytes
- * v1.1 Lattice C - 15000+ bytes
- * v1.2 Aztec C - 5244 bytes
- * v2.0 Assembly - 352 bytes
- *
- * ------------------------------------------------------------------------------
- * Version 1.0 would respond as follows:
- *
- * 1> QueryAny "Zing!"
- * Do you wish to install 'Zing!' (y/n) ?
- * 1>
- * ------------------------------------------------------------------------------
- * Version 1.1 now allows you to phrase it yourself:
- *
- * 1> QueryAny "Do you wish to install 'Zing!'"
- * Do you wish to install 'Zing!' (y/n) ? y
- * 1>
- * ------------------------------------------------------------------------------
- * Version 1.2 converted to Manx Aztec C.
- * ------------------------------------------------------------------------------
- * Version 2.0 now in assembly, with "" delimeters removed:
- *
- * 1> QueryAny Do you wish to install 'Zing!'
- * Do you wish to install 'Zing!' (y/n) ? y
- * 1>
- * ------------------------------------------------------------------------------
- * Included in this arc is an example of usage within the Startup-Sequence.
- * I have tried to make this program as generic as possible, so the user has
- * complete control over it, but kept the ' (y/n) ? ' at the end of the arg.
- * ------------------------------------------------------------------------------
-
-
-
- XREF _AbsExecBase
- XREF _LVOOpenLibrary
-
- XREF _LVOInput
- XREF _LVOOutput
-
- XREF _LVORead
- XREF _LVOWrite
-
-
-
- * Read and Write MACROS
-
- WriteFile macro ;File, String, Len
- move.l \1,d1
- move.l \2,d2
- move.l \3,d3
- jsr _LVOWrite(a6)
- endm
-
- ReadFile macro ;File, Buffer, Len
- move.l \1,d1
- move.l \2,d2
- move.l \3,d3
- jsr _LVORead(a6)
- endm
-
-
-
- * Save cmd line arg pointers
-
- movem.l a0/d0,-(sp)
-
-
-
- * Open DOS library
-
- move.l _AbsExecBase,a6
- move.l #DOS_Name,a1
- clr.l d0
- jsr _LVOOpenLibrary(a6)
- move.l d0,a6
- tst.l d0
- bne Continue ;branch if arg exists
- movem.l (sp)+,a0/d0 ;otherwise, restore stack & quit
- clr.l d0
- bra Quit
-
- Continue:
- jsr _LVOInput(a6) ;get stdin
- move.l d0,StdIn
- beq Quit
-
- jsr _LVOOutput(a6) ;get stdout
- move.l d0,StdOut
- beq Quit
-
- movem.l (sp)+,a0/d0 ;pop args from stack
- subq.l #1,d0 ;remove lf from cmd line arg
- WriteFile StdOut,a0,d0
- WriteFile StdOut,#Prompt,#Prompt_Len
- ReadFile StdIn,#Response,#2
- move.b Response,d0
- cmpi.b #'Y',d0
- beq No_Warning
- cmpi.b #'y',d0
- beq No_Warning
- move.l #5,d0
- bra Quit
-
- No_Warning:
- clr.l d0
-
- Quit:
- rts
-
-
-
-
- SECTION data,DATA
-
- DOS_Name:
- dc.b 'dos.library',0
-
- Prompt:
- dc.b ' (y/n) ? '
-
- Prompt_Len equ *-Prompt
-
-
-
- SECTION mem,BSS
-
- StdIn ds.l 1 ;input file handle
- StdOut ds.l 1 ;output file handle
-
- Response ds.l 1
-
-
- end
-
-
-
- * REMEMBER to support NORML !!
- * the National Organization for the Reform of Marijuana Laws
-
-
-