PBCL batch command compiles a procedure (external program executable from the command prompt), links to it necessary internal precompiled object modules and creates program's EXE module. It "knows" and uses two hardcoded important locations:
%DOS%:\PWRBASIC\PBC | PowerBASIC command-line compiler program EXE module. |
%DOS%:\PBASIC | Directory with PowerBASIC source procedure; resultant EXE module gets placed in the same directory. |
All compiler technicalities were hardcoded inside the PBCL batch command, so that there is no need to remember any of them or waste time to type them in. Compiler parameters were most carefully chosen and balanced once, and they could be forgotten thereafter for good. The only required parameter is the name of the procedure that is the source for the EXE module with the same name.
Non-empty second parameter causes conversion of the resultant EXE module into compressed self-extracting EXE file using LZEXE (Fabrice Bellard, 1989). Average compression ratio is usually slightly over 25%. This feature is the legacy of the old days of small hard drives and is not so important now, but once it's there I don't feel compelled to remove it.
Demo of PBCL command operation can be found below the command text.
: PBCL Compile and Link into EXE PowerBASIC Procedure 01/11/1996-06/21/1997 : --------------------------------------------------------------------------- : Copyright (C) 1996-1997 by Vladimir Veytsel www.davar.net : 1. Name of %DOS%:\PBASIC procedure to be compiled into EXE file : "?" - Display PBCL.BTM script text (Equivalent: "/"). : 2. When non-empty compress EXE using LZEXE. @ECHO %TR% IF %1.==?. .OR. %1.==/. (LIST %_BATCHNAME ^ CLS ^ QUIT) IF NOT EXIST %DOS%:\PBASIC\%1.BAS (ECHO %S%%R%Procedure %DOS%:\PBASIC\%M%%@UPPER[%1].BAS %R%doesn't exist - %M%PBCL %R%cancelled%D% ^ QUIT) PUSHD %DOS%:\PBASIC %DOS%:\PWRBASIC\PBC %1 /EB-/EN-/EO-/ES- /LB-/LG-/LP-/LS- /OZF @ECHO: INKEY /W5 /K"[Enter]" %W%Hit %C%[Enter] %W%or %Y%wait %W%to continue...%D% %%R SET R= @ECHO: IF NOT %2.==. (LZEXE %1 ^ DEL %1.OLD /Q) @ECHO %W%Procedure %DOS%:\PBASIC\%G%%@UPPER[%1].BAS %W%compiled and linked into %DOS%:\PBASIC\%G%%@UPPER[%1].EXE%D% POPD
Tue 4/16/02 18:24 C:\> PBCL RENPHOT |
PowerBASIC Compiler Version 3.20 Copyright (c) 1989-1995 by Robert S. Zale PowerBASIC Inc. * Carmel, CA, USA C:\PBASIC\RENPHOT.BAS 263 statements, 1049 lines Compile time: 00:00.2 Compilation speed: 314400 lines/minute 5856 bytes code, 3056 bytes data, 2048 bytes stack Segments(2): 3k/4k Hit [Enter] or wait to continue... Procedure C:\PBASIC\RENPHOT.BAS compiled and linked into C:\PBASIC\RENPHOT.EXE |