Stories's Log |
This log represents the Life and Times of the Las Vegas Dude. |
|
08/09/2009 18:33:18 jim ZMacros | Sun |||||||||||||||||||
?section GO macro == **************************************************************************** == * GO program|macro|routine * == * GO FUP INFO *.* * == *--------------------------------------------------------------------------* == * Runs a program, showing its command line * == **************************************************************************** #output %*% %*% ?section VAR macro == **************************************************************************** == * VAR variable [value] * == * VAR MyVar This is a test * == *--------------------------------------------------------------------------* == * Pushes a variable if it doesn't already exist. * == * If [value] is supplied, set it, otherwise, preserve the old value. * == **************************************************************************** [#if [#variableinfo/existence/ %1%] |else| #push %1%] [#if [#empty %2%] |then| |else| #set %1% %2 to 99%] ?section CompAll macro == **************************************************************************** == * COMPALL [file mask] [;list] [$S] * == *--------------------------------------------------------------------------* == * Gets a list of file names using the file mask * == * Volumes to where the file is * == * Compiles the program based on its contents * == * Volumes back to where you started * == **************************************************************************** var Param1 %1% #push Param2 Param3 var Param2 %2% var Param3 %3% var NoList ;nolist #set NoList var tst_lst #set tst_lst [#case [#chargetv Param1 1 1] |;| #set NoList [Param1] |otherwise|] [#case [#chargetv Param2 1 1] |;| #set NoList [Param2] |otherwise|] [#case [#chargetv Param1 1 1] |$| #set tst_lst [Param1] |otherwise|] [#case [#chargetv Param2 1 1] |$| #set tst_lst [Param2] |otherwise|] #push MyFile FileList fup /outv FileList/info %1% #extractv FileList MyFile #extractv FileList MyFile #extractv FileList MyFile var CompVol [#FILEINFO/VOLUME/x].[#FILEINFO/SUBVOL/x]] [#loop |do| [#case [#chargetv MyFile 1 1] |$| VOLUME [MyFile] |otherwise| #set MyFile [#chargetv MyFile MyFile 1 8] COMPILE [MyFile] ] #extractv FileList MyFile |until| [#emptyv FileList] ] VOLUME [CompVol] #pop MyFile FileList ?section COMP macro var tst_lst #set tst_lst var nolist ;nolist var tst_src %1% [#if [#fileinfo/existence/[tst_src]] |then| COMPILE %*% |else| #output *** ERROR: %1% Does not exists ] ?section COMPF macro var tst_src %1% var tst_lst ,OUT LISTING.[tst_src] var nolist #set nolist ;nolist [#if [#fileinfo/existence/[tst_src]] |then| COMPILE %*% |else| #output *** ERROR: %1% Does not exists ] ?section COMPP macro var tst_src %1% var tst_lst ,OUT $P.#COMP.[tst_src] var nolist #set nolist ;NOLIST [#if [#fileinfo/existence/[tst_src]] |then| COMPILE %*% |else| #output *** ERROR: %1% Does not exists ] ?section COMPILE macro var tst_lst var nolist var #INLINEPREFIX -- var tst_src %1% var Src_Root [#charget tst_src 1 for [#compute [#charcount tst_src] - 1]] var ThisVol [#FILEINFO/VOLUME/[tst_src]].[#FILEINFO/SUBVOL/[tst_src]] var tst_lib $TECH1D.COPYSRC var tst_all [ThisVol].[tst_src] var tst_cat $DEV3.MISCCATL var tst_pobj $DEV2.TURBOBJ.xxx1 [#case [#charget [#shiftstring tst_src] 1 for 3] |EBC| var tst_OBJ $DEV2.TECHOB.[src_root] |EXP| var tst_OBJ $DEV2.EXPOBJ.[src_root]o var tst_pobj $DEV2.EXPOBJ.EXP1 var ComptPobj EXP1 |EMS| var tst_OBJ $DEV2.EMS.[src_root]n |ERR| var tst_OBJ $DEV2.SUBOBJ.[src_root]o |SUB| var tst_OBJ $DEV2.SUBOBJ.[src_root]o |BAT| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |ENF| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |DJL| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |xxx| var tst_OBJ $DEV2.TURBOBJ.[src_root]o var ComptPobj xxx1 |FLX| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |FSR| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |GBP| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |PRG| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |TAL| var tst_OBJ $DEV2.TECHOB.[src_root]o |TMP| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |UTL| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |STR| var tst_OBJ $DEV2.STOREOBJ.[src_root]o |INT| var tst_OBJ $DEV2.WEBOBJ.[src_root]o |REP| var tst_OBJ $DEV2.WEBOBJ.[src_root]o |WEB| var tst_OBJ $DEV2.WEBOBJ.[src_root]o |OTHERWISE| var tst_OBJ $DEV2.xxxROBJ.[src_root]o var ComptPobj xxx1 ] var tmp [tst_src] #push Found srcLanguage #set Found #set srcLanguage [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ SCREEN / RB/ SECTION/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SCOBOL ] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ TERMINAL / RB/ CONVERSATIONAL/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SCOBOL ] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ TERMINAL / RB/ IBM-3270/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SCOBOL ] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/PROCEDURE / RB/DIVISION/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage COBOL] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ $SYSTEM.SYSTEM.EXTDECS/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage Tal] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/#include/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage C] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/?DICTIONARY /;E [#if [#linecount Found] > 2 |then| #set SrcLanguage Enform] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/?DICT /;E [#if [#linecount Found] > 2 |then| #set SrcLanguage DDL] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/CATALOG / r/=/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SQL] ] [#if [#emptyv tst_lst] |then| |else| [#if [#fileinfo/volume/[tst_lst]] |then| [#if [#fileinfo/existence/listing.[tst_src]] |then| PURGE listing.[tst_src]] fup CREATE listing.[tst_src], type u, ext(50,50) |else| fup purgedata listing.[tst_src] ] #set tst_lst ,out listing.[tst_src] |else| #set tst_lst ,out [tst_lst].#[SrcLanguage].[tst_src] ] ] comment GO EDIT/INLINE/[tst_all] comment GO -- CBA/$TECH1D.COPYSRC./COPYSRC./A comment GO -- CBA/$TECH1.COPYSRC./COPYSRC./A comment GO -- CBA/$TECH2D.//A comment GO -- CBA/$TECH2.//A comment GO -- CBA/?SOURCE ./?SOURCE /A comment GO -- CBA/ COPYSRC./ / /COPY / comment GO -- CF/*/ /TIMEFILE-MOD-TIME/ RN/*/ comment GO -- CBA/BLKTJRC/BLKTJRN/A comment GO -- CA/search "$tech1D./search "/A comment GO -- EXIT param SYMBOL-BLOCKS 8 VOLUME [tst_lib] [#case [SrcLanguage] |COBOL| GO COBOL85/IN [tst_all][tst_lst]/[tst_obj][nolist],ENV COMMON var ComptNbr 1 |SCOBOL| GO SCOBOLX/IN [tst_all][tst_lst]/[TST_POBJ][nolist] var ComptNbr 2 [ComptPobj] |Enform| GO enform /inline[tst_lst]/ GO -- ?compile [tst_all] TO [tst_obj] GO -- exit; var ComptNbr 3 |TAL| GO TAL /IN [tst_all][tst_lst]/[tst_obj][nolist] var ComptNbr 4 |SQL| GO SQLCI /IN [tst_all][tst_lst]/ |C| GO C /IN [tst_all][tst_lst]/[tst_obj][nolist], & SSV0 "$system.system",SSV1 "$system.ztcpip",SSV2 "$tech1.nos" == SSV3 "$tech1d" var ComptNbr 5 |DDL| GO DDL /IN [tst_all][tst_lst]/ |otherwise| #output Skipping [tst_ALL] var ComptNbr 99 ] volume [ThisVol] [#IF (_COMPLETION:COMPLETIONCODE > 1) |then| #output **** ERROR **** |else| SqlCheck [tst_obj] ] [#if [#fileinfo/existence/[tst_obj]] |then| RUN $DEV2.CUTLAR.ZFUP SECURE [tst_obj],"nnnn" RUN $DEV2.CUTLAR.ZFUP GIVE [tst_obj],SYSTEM.AOES ] #pop Found [#if [#empty %2%] |then| |else| COMPILE %2 TO 99%] ======================== ?section SqlCheck macro ======================== [#if [#fileinfo/existence/%1%] |then| var lstSql #set lstSql SQLCOMP/IN %1%,outv lstSql/CATALOG [tst_cat] [#IF ([#LINEFIND lstSql 1 No SQL source ]>0) |then| #output Sql Compiling is not needed for %1% #set _COMPLETION SaveCompT R [tst_src] [ComptNbr] |else| #push #out #set #out [tst_lst] outvar lstSql #pop #out #set _COMPLETION [#IF (_COMPLETION:COMPLETIONCODE > 1) |then| #output ********** SQL ERROR ********************** |else| [#case [ComptNbr] |1| SaveCompT R [tst_src] 6 |otherwise| SaveCompT R [tst_src] [ComptNbr] ] ] ] |else| SaveCompT R [tst_src] [ComptNbr] ] ?section SaveCompT macro == This is for, in my opinion, a rather interesting compile macro that compiles turnovers. #push #out #set #out zcompfil #output %*% #pop #out COMMENT rename [tst_src],TURNOVER.[tst_src] ?section SetPw macro var Param1 Param2 #set Param1 %1% #set Param2 %2% [#case [#chargetv Param1 1 1] |$| var PcName [Param1] |otherwise| var PcServer [Param2]] [#case [#chargetv Param2 1 1] |$| var PcName [Param2] |otherwise| var PcServer [Param1]] [#if [#emptyv PcName] |then| var PcName [#input Enter the Pathway System: ($MNTF):] ] [#if [#emptyv PcServer] |then| var PcServer [#input Enter the Pathway Server (TESTPOST-SERVER):] ] ?section DebugOn macro == * DebugOn [$PW] [server-name] SetPw %*% freeze [PcName] [PcServer] go pathcom [PcName];alter [PCServer],hometerm [#myterm],debug on thaw [PcName] [PcServer] ?section Freeze macro SetPw %*% go pathcom [PcName];freeze [PCServer] go pathcom [PcName];stop [PCServer], delay 10 secs ?section Thaw macro SetPw %*% go pathcom [PcName];thaw [PCServer] ?section DebugOff macro == * DebugOff [$PW] [server-name] SetPw %*% freeze [PcName] [PcServer] go pathcom [PcName];alter [PCServer],hometerm $VHS, debug off thaw [PcName] [PcServer] ?section set_SysIni macro var CdVol $DEV2.TEST var LstVol $DEV2.TESTLST var SrcVol $DEV2.TESTSRC var TST_EXE $DEV2.TESTOBJ.[SrcFile]O var ObjVol $DEV2.TESTOBJ var TST_REN $DEV2.TESTOBJ.[SrcFile]X var TST_OBJ $DEV2.TESTOBJ var TST_POBJ $DEV2.TESTOBJ.xxx1 var ObeyFile_VOL $DEV2.TESTOBEY ?section LIB macro GO VOLUME [TST_LIB] ?section LST macro GO volume $DEV2.LISTING ?section SRC macro [#if [#empty %1%] |then| GO volume $DEV2.SOURCE |else| var SrcFile %1% ] ?section OK macro [#case [#input RUN %*% (y)?] |y Y| GO %*% |otherwise|] #output --------------------------------------------- ?section PCLS macro SPOOLCOM $SPLS;JOB (OWNER),DELETE ! SPOOLCOM $PPLS;JOB (OWNER),DELETE ! ?section SV macro FUP SUBVOLS %*% ?section Type macro fup copy %1% ?section p macro [#if [#empty %1%] |then| peruse $PPLS |else| peruse $SPLS] ?section InfoDefine macro #frame #push X1 X2 X3 X4 #setMANY X1 X2 X3 X4,[#defineinfo %1%] #output/HOLD/ADD DEFINE %1% #output/HOLD,COLUMN 25/,CLASS [X2] #output/COLUMN 40/,[X3] [X4] #unframe [#if [#empty %2%] |then| |else| INFODEFINE %2 to 99%] ?section CreateDefines macro PURGE XD INFO/OUT XD/DEFINE =* EDIT XD;DQN/=/;CQ/ Define Name / INFODEFINE /A;E PURGE DEFINES #push #OUT #set #OUT DEFINES O XD #pop #OUT EDIT DEFINES;DQ/INFODEFINE/;E EDIT DEFINES [#if [#empty %2%] |then| |else| INFODEFINE %2 to 99%] ?section ST macro [#IF [#EMPTY %1%] |then| STATUS *,TERM |else| STATUS %*% ] ?section DelY macro [#IF [#FILEINFO/EXISTENCE/%1%] |then| FILEINFO %1% [#CASE [#INPUT Do you wish to delete this (y)?] |y Y| purge %1% |otherwise| ] ] ?section COMPARE macro $DEV2.testobj.COMPARE %*% ?section PC macro [#if [#empty %1%] |then| GO pathcom [PcName] |else| #set PcName %*% GO pathcom %*%] ?section OBJ macro Go VOLUME $DEV2.TESTOBJ ?section TL macro Go LOAD/KEEP 1/$DEV2.COMPILES.ZMACROS ?section GT macro edit $DEV2.COMPILES.ZMACROS;set tabs 10 20 30 40 50 60 70;%1 TO 9% ?section CD macro var CdVol %1% volume [CdVol] ?section G macro var GSrc %*% EDIT;SET TABS 10 20 30 40 50 60 70;SET JOIN 80;G [GSrc] ?section O macro var ObeyFile %1% [#if [#emptyv ObeyFile] |then| #output ([ObeyFile]) doesn't exist. |else| [#if [#fileinfo/existence/[ObeyFile]] |then| #push Found edit /OUTV Found/[ObeyFile] R;LB/?section/RB/ ROUTINE/;E [#if [#linecount Found] > 2 |then| GO T [ObeyFile] |else| GO OBEY [ObeyFile] ] #pop Found |else| #output The default Obey File hasn't been set yet. Try: O obeyfile ] ] [#if [#empty %2%] |then| |else| O %2 to 99%] ?section BYE macro CSAVE LOGOFF ?section CLOAD macro #push MyVol #set MyVol [#DEFAULTS] VOLUME OBEY DEFAULTS VOLUME [MyVol] #pop MyVol ?section CSAVE macro #push WS_VOLUME #set WS_VOLUME [#DEFAULTS] VOLUME #frame #push #INLINEPREFIX #set #INLINEPREFIX -- edit/INLINE/DEFAULTS ! -- DQ ! F/L -- 101 /#set PCName [PCName]/ -- 102 /#set PCServer [PCServer]/ -- 103 /#set SrcFile [SrcFile]/ -- 104 /#set ObeyFile [ObeyFile]/ -- 105 /#set CdVol [CdVol]/ -- 106 /#set SrcFile [SrcFile]/ -- 107 /#set COut [COut]/ -- 108 /#set GSrc [GSrc]/ -- 109 /#set CdVol [CdVol]/ -- E VOLUME [WS_VOLUME] #unframe ?section FILESPEC macro [#if [#fileinfo /existence/ %1%] |then| #output /hold/ [#fileinfo/fullname/ %1%] #output /column 35,hold/ [#case [#fileinfo /filestructure/ %1%] |0| #output /hold/ U: |1| #output /hold/ R: |2| #output /hold/ E: |3| #output /hold/ K: |otherwise| ] #output /column 37,hold/ [#fileinfo/eof/ %1%] #output /column 44,hold/& [_CONTIME_TO_TEXT [#CONTIME [#fileinfo/modification/%1%]]] #output /column 72,hold/ [#fileinfo/owner/ %1%] |else| #output /hold/ File %1% does not exist ] #output ?section SCUPINFO macro #frame #push OUTLIST SCUP /OUTV OUTLIST/INFO %*% #output [#LINEGET OUTLIST 1 FOR 1] #output [#LINEGET OUTLIST 5 FOR 1] #unframe ?section PRINT macro FUP COPY %1%,$P [#if [#empty %2%] |then| |else| PRINT %2 to 99%] ?section SQCOST macro SQLCOMP/IN $DEV2.TESTOBJ.%1%,OUT $P.#SQCOST/ & STOREDDEFINES EXPLAIN PLAN NORECOMPILE ?section LOG macro [#if [#empty %1%] |then| EDIT $DEV2.TEST.LOG2009;XVS L-20;E |else| #frame #push #out #set #width 230 #push wYY wMM wDD wHH wMI #setmany wYY wMM wDD wHH wMI, [#contime [#timestamp]] [#IF [wYY]< 10 |then| #set wYY 0[wYY]] [#IF [wMM]< 10 |then| #set wMM 0[wMM]] [#IF [wDD]< 10 |then| #set wDD 0[wDD]] [#IF [wHH]< 10 |then| #set wHH 0[wHH]] [#IF [wMI]< 10 |then| #set wMI 0[wMI]] #set #out $DEV2.TEST.LOG[wYY] #output [wMM]/[wDD]/[wYY] [wHH]:[wMI]-> %*% #set #width 80 #pop #out #unframe ] ?section sv macro fup subvols %1% ?section CLS macro #frame [#DEF ascii STRUCT BEGIN BYTE byt5(0:1) value 27 73; CHAR clr(0:1) redefines byt5; END; ] #output [ascii:clr(0:1)] #unframe ?section IMP macro var tst_src %1% [#if [#fileinfo/existence/[tst_src]] |then| GO fup dup [tst_src], $tech1d.turnover.[tst_src],purge ] [#if [#empty %2%] |then| |else| IMP %2 TO 99%] ?section GL macro var tst_src %1% purge x edit listing.[tst_src] p x ?section GS macro var tst_src %1% EDIT;SET TABS 10 20 30 40 50 60 70;SET JOIN 80;G [tst_src] ?section FS ALIAS FINDDATA ?section CALC ALIAS COMPUTE ?section dir ALIAS fileinfo ?section fs alias finddata ?section grep alias finddata |
08/08/2009 19:09:06 jim Wexford Apt Neighbors | Sat |||||||||||||||||||
08/07/2009 18:38:22 jim Soergel Orchard | Fri |||||||||||||||||||
08/07/2009 17:55:44 jim Mobile BBQ Stand | Fri |||||||||||||||||||
08/07/2009 17:31:26 jim LakeMoraine,PA-Rennaisance | Fri |||||||||||||||||||
08/07/2009 17:30:36 jim Rennaisance Fair - 11,000 People | Fri |||||||||||||||||||
08/07/2009 17:24:36 jim Lake Moraine - Mt Union | Fri |||||||||||||||||||
08/07/2009 17:00:18 jim Lake Moraine Marina | Fri |||||||||||||||||||
08/07/2009 16:54:40 jim Lake Moraine Forest | Fri |||||||||||||||||||
08/07/2009 16:38:42 jim Lake Moraine Cabin | Fri |||||||||||||||||||
08/07/2009 15:48:40 jim 1994 30 ft TravelTrailer $6k | Fri |||||||||||||||||||
08/07/2009 15:36:40 jim 1992 25 ft TravelTrailer 7.5k | Fri |||||||||||||||||||
08/07/2009 15:34:44 jim 2003 17 ft TravelTrailer 8k | Fri |||||||||||||||||||
08/07/2009 15:17:52 jim Butler, Pa | Fri |||||||||||||||||||
08/05/2009 21:08:40 jim Mt Washington View | Wed |||||||||||||||||||
08/05/2009 19:47:30 jim Station Square Fountain | Wed |||||||||||||||||||
08/05/2009 19:13:04 jim Station Square | Wed |||||||||||||||||||
08/04/2009 20:08:38 jim Sewickley, Pa - Deer | Tue |||||||||||||||||||
08/04/2009 20:06:08 jim Sewickley, Pa | Tue |||||||||||||||||||
08/04/2009 19:14:32 jim Sewickley, Pa - Carmadys | Tue |||||||||||||||||||
08/04/2009 16:28:03 jim Cranberry, Pa and Abouts | Tue |||||||||||||||||||
08/01/2009 22:36:04 jim Watch this video! | Sat |||||||||||||||||||
Sony played this mind-blowing video at their executive conference. Be prepared to be startled by facts. http://www.youtube.com/watch?v=cL9Wu2kWwSY In the next decade, computers will become more intelligent than we are. The questions that rise are: - What kind of child are we giving birth too? When they pass us in intelligence? Will they continue to be our tool? - As the world of information continues to unfold, what will we learn about ourselves and this life? - Where are we going as a species? Will silicon life out live carbon life? - Who will be controlling our direction, or will it all be just a series of actions with no direction at all? - Finally, after we learn how to conquer death (and we will), what will our new fears become? These, and more questions will be answered...in the future. |
08/01/2009 20:02:05 jim Cranberry, Pa - Red Robin | Sat |||||||||||||||||||
08/01/2009 07:08:47 jim Wexford - Fog and Turkeys | Sat |||||||||||||||||||
07/30/2009 18:28:36 jim Moon, Pa - Jimmys Restaurant | Thu |||||||||||||||||||
07/26/2009 14:49:15 jim Ross, Pa - Mad Mex | Sun |||||||||||||||||||
07/26/2009 10:02:16 jim Work Places | Sun |||||||||||||||||||
07/25/2009 16:59:56 jim Washington, Pa | Sat |||||||||||||||||||
07/25/2009 16:07:24 jim Eighty Four, Pa | Sat |||||||||||||||||||
07/25/2009 10:50:44 jim Out and About | Sat |||||||||||||||||||
07/24/2009 17:48:21 jim More about C Data types | Fri ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#pragma EXTENSIONS #include Best practices. Don't use int. use long or short instead. Put environment specific functions in an #include Avoid HP specific, and C extensions to data types if possible. Use unsigned only for short and long.
|
07/24/2009 17:48:20 SAE .AWAITIOX - C Example | Fri |||||||||||||||||||
There are 2,201 bugs in this code segment |
07/24/2009 17:48:20 jim (Reply)AWAITIOX - C Example | Fri |||||||||||||||||||
!From http://docs.hp.com/en/524521-012/524521-012.pdf, Page 157 #include <in.h> C / TAL Comparisons (Using SEND_NW as an example): C Synopsis, used for data type comparisons #include <....lost in html conversion> #include <...lost in html conversion> error = send_nw (socket, nbuffer_ptr, nbuffer_length, flags,tag); int error, socket; char *nbuffer_ptr; int nbuffer_length, flags; long tag; Tal Synopsis, used for data type comparisons ?NOLIST, SOURCE SOCKDEFT ?NOLIST, SOURCE SOCKPROC error := send_nw (socket, nbuffer_ptr, nbuffer_length, flags, tag); INT(32) error, socket; STRING .EXT nbuffer_ptr; INT(32) nbuffer_length, flags; INT(32) tag; |
07/24/2009 08:36:18 SAE .Tal | Fri |||||||||||||||||||
But only 1,022 bugs in this code segment.. |
07/24/2009 08:36:18 jim (Reply)Tal | Fri |||||||||||||||||||
-- This is a comment ! This is a comment ! This is a bracketted comment ! STRING - 1 bytes integer 0 to 255, EG STRING(2) x; is a 2 byte ascii string INT - 2 bytes, 0 to 65,535 or -32,768 to + 32,767. This can also be a string EG: INT twochars := "CH"; INT(32) - 4 bytes UNSIGNED(1~15) - n bits, 0 thru (2**n - 1) UNSIGNED(16) - 0 to 65,535, or -32,768 to +32,767. This is your standard address FIXED - 8 bytes, for FIXED(0) or FIXED(*) the range is -9 kazillion to +9 kazillion REAL - 4 bytes, precise to 9 digits REAL(64) - 8 bytes, precise to 17 digits INT(16) is the same as INT INT(64) is the same as FIXED(0) REAL(32) is the same as REAL Examples: LITERAL double_word = (4 * 8); INT (double_word) num; ! num is a INT(32) INT x := 4 ! x is decimal 4 INT x := %177 ! x is Octal 177 INT x := %B01010 ! x is Binary 01010 INT x := %B0000000000000010 ! x is 2; INT x := %B1111111111111110 ! x is -2 (using twos compliment); INT x := %H1A ! x is Hex 1A FIXED(3) x := 0.642F; ! x is 642000, the 3 shifts the decimal right FIXED(-3) x := 642945F; ! x is 642000, the -3 shifts the decimal left FIXED(*) x := 123 ! x is stored, not scaled BLOCK x ; ! Declare Global Variables INT flag := TRUE; INT(32) index := 22 ; END BLOCK ; BLOCK PRIVATE ; ! Declare Local Variables INT myflag := TRUE; INT(32) myindex := 22 ; END BLOCK ; PROC paragraph_x ; FORWARD ; ! Declares that paragraph_x will be out of compile sequence PROC called_program; EXTERNAL ; ! Declares that a paragraph can be found in a called program PROC paragraph_x (param) ; BEGIN INT param; END; PROC paragraphs_nested (param) ; BEGIN ENTRY entry_point ; ! Declares a programs entry point some code SUBPROC entry_subroutine(x) ; ! Declares a subroutine with a PROC BEGIN some code END; entry_point: some more code END; PROC myproc; BEGIN !Local data declarations SUBPROC some_sub (param); !Declare subprocedure INT param; ENTRY sub_entry; ! Declare entry-point identifier INT var; ! Some code here sub_entry: ! Apply entry-point var := var - param; ! identifier to statement some code ; ! Tal can get ugly very quickly END; ! End subprocedure some code !Local statements CALL sub_entry (1); !Call entry-point SUB_ENTRY END; PROC xx(v1,v2,v3); BEGIN...END; ...CALL xx(v1, !nothing!, v3) ! Comments help document ommited variables DEFINETOG omit ! some code ?IF omit some code ?ENDIF omit Sample compile statement: suppress octal code after each line, suppress all but header information, compile for syntax only and puts the errors in a file called xxx, and sets the omit toggle on TAL/in myprogram/;nocode, suppress, syntax, errorfile xxx,settog omit, Operators: x := 2 ! move 2 to a number x ':=' 'AB' ! move characters to a string x := @var ! x is the address of var .x ! convert x from a INT to the word address of another variable << ! Signed Left shift '<<' ! Unsigned Left shift + - * ! Signed operators for add, subtract and multiply '+' '-' '*' ! Unsigned operators for add, subtract and multiply = <= >= ! comparisons '=' '<=' ! comparisons (unsigned) <> ! Not equal According to the manual, you can do math on a string variable. EG: STRING x; x ':=' 'A"; x := x * 2; Go figure? |
07/21/2009 20:11:06 jim WestView, Pa - DPietros | Tue |||||||||||||||||||
07/20/2009 18:08:29 jim The Flame BBQ | Mon |||||||||||||||||||
07/20/2009 07:17:22 jim A week of Goodbyes | Mon |||||||||||||||||||
It was nice hanging with you guys. Goodbye for now: Jeff, Jennifer and Glen. We took Jennifer to the airport. She went to Vegas and we went to the Moon Township. We never got a good chance to take her to Mars. (I'm serious) While at the airport, Jen got into a little bit of trouble. It was her first time flying alone. She misplaced her ticket and her birth certificate down some place. A nice couple saw that she was in trouble and offered their help. In the end, the security office had her documents, and Jennifer and the couple flew off too Vegas. The couple was from...you guessed it, Pittsburgh. Pittsburgh people are the best! |
07/18/2009 16:14:15 jim Coraopolis, Pa | Sat |||||||||||||||||||
07/18/2009 10:45:24 jim During Jens Last Day | Sat |||||||||||||||||||
07/17/2009 20:34:21 jim Homestead Square at Night | Fri |||||||||||||||||||
07/17/2009 20:33:31 jim Homestead - Jen, Becky | Fri |||||||||||||||||||
07/17/2009 16:35:51 jim A Cool Goodbye | Fri |||||||||||||||||||
I was standing outside, talking to my buddy as he loaded up his car with the last of his belongings from his cubical. We shared a smoke, and I watched him drive off for the last time. Standing alone, I felt a cold breeze at my back. In less than five minutes, the sky turned into an orchestra of thunder and lightening. The streets flowed with mud. When I left work soon afterwards, it was still pouring outside. I looked at the parking lot and I realized that out of the hundreds of people I work with, I was the last person to leave. I have five weeks and three days left on my contract. This past year has been full of magic. |
07/16/2009 18:16:39 jim Cabana Bar - Jeffs Going Away Party | Thu |||||||||||||||||||
Bon Voyage, Jeffrey We celebrated Jeff's goodbye party at the Cabana Bar (lots of fun). The Cabana Club has a thatch covered bar in an outdoors setting with sand, lots of tables, fire pits, and a water fall. After two drinks, we wanted something to eat. If you want food at the Cabana Bar, you have to order take out from the restaurant, and bring it down. That seems odd, since it is right next to the restaurant. County codes make businesses do some very odd things. So our next stop was Walnut Grove. The party broke up probably around 7 pm. It sure is nice having friends. It's been a fun year with you buddy! We celebrated at the Cabana Bar then went to Walnut Grove. These guys are the greatest! |
07/14/2009 21:49:45 jim Robinson Cracker Barrel - Becky, Jen | Tue |||||||||||||||||||
07/14/2009 06:50:55 jim So Sad to Say Goodbye | Tue |||||||||||||||||||
A fellow contractor got the axe yesterday. I'm going to miss him a lot. It's pretty common for us contractors to come and go. It can happen at any time and as a general rule it should be expected. For me, contracting makes the most efficient use of the time we have here; if there's work, I work. If there is nothing to do, I play. It's not like my fellow contractor did anything wrong. It's always difficult to say goodbye. But we'll bump into each other again. We picked a high paying profession. We knew we'd be travelling a lot. We knew we'd be changing contracts every year. There's always the chance that when we come in, all of the security codes will be changed, and we'll be out of work. We knew we'd be giving up our rights of employment and we signed them away. While the road, I've lost loved ones, forgotten what it is like to have a home, and I can't say for sure who I've become. Last year I lost my fortune. I could never do this alone. To contract nationally, you have to give up a normal livestyle. It's an exchange. You trade familiarity for a broad spectrum of knowledge and experience. And I've got to say, I've met some GREAT People along the way. |
07/13/2009 20:26:02 jim West View - Football Fields | Mon |||||||||||||||||||
07/11/2009 19:42:04 jim Splashes of Kennywood | Sat |||||||||||||||||||
07/11/2009 19:18:24 jim Kennywood-Fountains | Sat |||||||||||||||||||
<< 08/2008 < 07/2009 Calendar 09/2009 > 08/2010 >> | Sign InView Other Logs |