1 'DBATCH.BA (D)iskBATCH file driver by Ron Wiesen 06/07/95 2 'Use D.BA to create D.CO, then set HIMEM and LOADM"D to get (D)isk allocated in HIMEM memory. Define EN (line 11). Put (D)isk commands in a Batch (.DO) file and run this program. 10 '-- Guards of memory allocation -- 11 EN=62959:IFEN=>MAXRAMTHENLIST11 'ENd of (D)isk too high! Maximum is 62959. Define EN same as END assigned to (D)isk. 12 LN=756:TP=EN-LN+1:IFTP68ORPEEK(TP)<>33THENLIST13 '(D)isk not loaded! Use LOADM"D command. 20 '-- String character constants -- 21 CR$=CHR$(13) 'CarriageReturn 22 TB$=CHR$(9) 'TaB 23 BS$=CHR$(8) 'BackSpace 24 EC$=CHR$(27) 'EsCape 25 VN$="p" 'VideoNegative 26 VP$="q" 'VideoPositive 30 '-- Main routine -- 31 BF$="":FILES:INPUT"Batch file";BF$:IFBF$=""THENMENU 32 OPENBF$FORINPUTAS#1 33 IFEOF(1)THENPRINT"End of batch ";BF$:BEEP:CLOSE:GOTO31 34 LINEINPUT#1,DC$:PRINTEC$VN$MID$(DC$,12)EC$VP$:GOSUB101:GOTO33 100 '-- Subroutine -- 101 IFLEN(DC$)THENDC$=LEFT$(DC$,11):ELSERETURN '1-char to 11-char (D)isk command 102 IFLEFT$(DC$,1)="Q"THENPRINT"Quit in batch ";BF$:BEEP:CLOSE:GOTO31ELSEDC$=DC$+CR$ 'substitute guarenteed Quit 103 DC$=DC$+"Q "+TB$+TB$+" "+BS$+BS$+BS$+BS$+"Q"+CR$ 'guarenteed Quit & return from (D)isk; up to 24-char string 104 FORI=0TO2*LEN(DC$)-1:POKE-85+I,ASC(MID$(DC$,I/2+1,1)) 'each DC$ char becomes 2-char doublet put in typeahead buffer 105 NEXT:POKE-86,I/2 'set char count; O.S. processes doublets at next 4 mSec interrupt 106 CALLTP:RETURN 'Invoke (D)isk. Note that (D)isk EXE is same as ToP