home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-27 | 156.8 KB | 5,670 lines |
- #REM DataFlex standard MACROs
- #REM Copyright 1987-1992 Data Access Corporation, Miami FL, USA
- #REM All Rights reserved.
- #REM THIS IS THE FILE THAT DEFINES THE COMMANDS IN DATAFLEX VERSION 3.01
- #REM IT MUST BE PACKed INTO FLEX.CFL WITH THE COMMAND "DFPACK FMAC"
-
- #REM GENERAL FORMAT OF AN ICODE LINE:
-
- #REM !A [] $000 ARG1 ARG2
- #REM !A Generates the next line number
- #REM [] is a place holder for the indicators
- #REM $000 is a hex number that calls the appropriate 'C' routine
- #REM arg1, arg2 - two arguments of any type/class
- #REM can be passed to the routine.
-
- #REM THE FOLLOWING ARE THE COMPILE-TIME VARIABLES USED
- #REM UPPERCASE WILL AUTO-INCREMENT (FIRST);
- #REM LOWER CASE WILL NOT. THEN SUBSTITUTE TO AN INTEGER VALUE.
-
- #REM !A - Next line number
- #REM !B - Reserved
- #REM !C - Next indicator number
- #REM !D - Next integer number
- #REM !E - Autopage, window #
- #REM !F - Autopage, page #
- #REM G,H,I,J,K,L,M - You may use these
- #REM !N - Static nesting level
- #REM !O - Reserved
- #REM !P - Used by report
- #REM !Q - Low level temporary
- #REM !R - Static structure number (Begin/End)
- #REM !S - Temporary used by end/loop/until
- #REM !T,!U - Reserved
- #REM !V - Next variable number.
- #REM !W - Reserved
- #REM !X - Temporary for enter & report - file numbers.
- #REM !Y - Temporary for keyproc
- #REM !Z - Reserved
-
- #REM Type checking in command args use negative logic and
- #REM conform to the following:
-
- #REM C - Constant V - Memory variable
- #REM F - File element G - Group
- #REM W - Window
- #REM S - String E - Expression
- #REM N - Number L - Label
- #REM D - Date O - Group options
- #REM I - Integer B - Group indicators
- #REM # - Indicator . - No more arguments
- #REM X - Not an indicator R - Argument required
- #REM T - Error if typed $ - Changes window to string
- #REM U - Error if untyped "constant" - Must be constant
-
- #REM Example: #COMMAND EXAMPLE SND means arg1 cannot be string,number,or date
-
- #COMMAND ABORT &.
- !A [] $040
- #ENDCOMMAND
-
- #COMMAND ACCEPT #L #L #LUC #LUWFC .
- #SET Q$ !0
- #IF !q=0
- AUTO2$ ACCEPT PAGE!f
- #ELSE
- #IF !q=1
- #IFCLASS !1 "G"
- AUTO2$ ACCEPT PAGE!f !1
- #ELSE
- #CHECK !1 _CVFG#L
- !A [] $1C1 !1 |CI0
- #ENDIF
- #ELSE
- #IF !q=2
- #IFCLASS !2 "G"
- #FORMAT !1 !2
- #CHECK !1 _CVFG#L
- !A [] $1C1 !1 |CI0
- #ELSE
- AUTO2$ ACCEPT PAGE!f TO !2
- #ENDIF
- #ELSE
- #IF !q>2
- #IFCLASS !3 "G"
- #CHECK !1 "TO"
- AUTO2$ ACCEPT PAGE!f TO !2 !3
- #ELSE
- #IFCLASS !4 "G"
- #FORMAT !1 !4
- #ENDIF
- #CHECK !1 _CVFG#L
- #CHECK !2 "TO"
- #CHECK !3 _CG#LE
- !A [] $1C1 !1 !3
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND APPEND #LGULCE$ #LGULR$
- !A [] $243 !1 !2
- #IF !0>2
- APPEND !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND ASCII GRLU "TO" #UGRLCE .
- !A [] $247 !1 !3
- #ENDCOMMAND
-
- #COMMAND ATTACH CVWR#LGE
- #IFDEF !1
- !A [] $C5 !1
- #ELSE
- #CHECK !1.RECNUM _CVWLR#GU
- !A [] $C5 !1.RECNUM
- #ENDIF
- #IF !0>1
- ATTACH !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #REM The AUTO commands are used internally to generate the
- #REM next AUTOPAGE window number at compile time.
-
- #COMMAND AUTO2$
- !1 !2.!E !3 !4 !5
- #CHECK !2.!e _RUCVF#L
- #ENDCOMMAND
-
- #COMMAND AUTO3$
- !1 !2 !3.!E !4 !5
- #CHECK !3.!e _RUCVF#L
- #ENDCOMMAND
-
- #COMMAND AUTO4$
- !1 !2 !3 !4.!E !5
- #CHECK !4.!e _RUCVF#L
- #ENDCOMMAND
-
- #COMMAND AUTOPAGE &T %USNVLE# .
- #CHECK !1.N _WFVSG#LU
- #SET F$ !1.N
- #SET E$ !2
- #IF !e>0
- #SET E$ !e-1
- #ENDIF
- #ENDCOMMAND
-
- #REM BACKFIELD can only be used in a KEY PROCedure. It returns to the
- #REM window (COMMAND) PRIOR to the one that called it.
-
- #COMMAND BACKFIELD &.
- !A [] $288
- #ENDCOMMAND
-
- #COMMAND BEGIN &.
- #SET N$ !N
- #PUSH !R
- #XPUSH !n $INIT // Init IF/ELSE stack at this nesting level.
- #IFIND //INCLUDE JUMPS IF INDICATORS ON LINE.
- // GOTO BEGIN$!r
- !A [] $041 |CI0
- #FREF BEGIN$!r !a
- #$ !A 0 0 0 $041 |CL0
- #FREF END$!r !a
- #ENDIF
- #$ BEGIN$!r:
- #ENDCOMMAND
-
- #COMMAND BLANKFORM &%CVFG#EL "THRU""THROUGH""" %CVFG#LUE .
- #IF !0>0
- #IFDEF !1
- !A [] $1C4 !1 !3
- #ELSE
- #CHECK !1.N _#RLGVU
- !A [] $1C4 !1.N
- #ENDIF
- #ELSE
- !A [] $1C4 |CI0
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BREAK$ // does breakpoint for all
- #IF (!0>0)
- #IFCLASS !1 _F
- BREAKPOINT |CI!P !1
- #ELSE
- #CHECK !1 _LGBCVWIEOU#
- #ENDIF
- #ENDIF
- #IF (!0>1)
- BREAK$ !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BREAK$DOWN R // does gosub to break
- #IF !x>0 // sections from N to 0
- #IF !0>1
- // GOSUB !1!x
- !A [] $42 |CL0
- #FREF !1!x !a
- #ELSE
- //[!x] GOSUB !1!x
- !A [!x] $42 |CL0
- #FREF !1!x !a
- #ENDIF
- #ENDIF
- #SET X$ !x-1
- #IF !x>0
- BREAK$DOWN !1 !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BREAK$PRT // prints all SUBHEADERs
- #IF !x<!p // for page
- #IFDEF !1!X.N
- !A [~ !x] $202 !1!x.N // OUTPUT
- #ENDIF
- BREAK$PRT !1 !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BREAK$T3
- #IF !x<!p // makes unused sections defined
- MAKEDEF$ RPT.SUBHEADER!X RPT.SUBTOTAL!x
- BREAK$T3
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BREAK$UP // does GOSUB to break
- #IF !x<!p // sections from 0 to N
- #IF !0=1
- //[!X] GOSUB !1!x
- !A [!X] $42 |CL0
- #FREF !1!x !a
- #ELSE
- // GOSUB !1!X
- !A [] $42 |CL0
- #FREF !1!X !a
- #ENDIF
- BREAK$UP !1 !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BREAKINIT &. // set up breakpoints for REPORT
- !A [] $207
- #ENDCOMMAND
-
- #COMMAND BREAKPOINT &UVFW UCI // test breakpoint and set indicators
- !A [] $204 !1 !2
- #ENDCOMMAND
-
- #COMMAND CALCULATE ULG "TO" #UCLGER .
- #IFTYPE !3 "R"
- !A [] $085 !1 !3 //MOVE REAL
- #ELSE
- !A [] $081 !1 !3 //MOVE NUM
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CHAIN RNDIG#L NDG#L
- #SET Q$ 0
- #IFSAME !1 WAIT
- CHAIN$HELP !3 !4 !5 !6 !7 !8 !9
- !A [] $049 !2 |CI!q
- #ELSE
- #CHECK !1 _U
- CHAIN$HELP !2 !3 !4 !5 !6 !7 !8 !9
- !A [] $045 !1 |CI!q
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CHAIN$HELP UVNDEG#L
- #IF (!0>0)
- #SET Q$ (!q+!1)
- CHAIN$HELP !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CHARACTER %GULD "TO" #GRULCE .
- !A [] $248 !1 !3
- #ENDCOMMAND
-
- #COMMAND CLEAR CVWR#LGE
- #IFDEF !1
- !A [] $C1 !1
- #ELSE
- #CHECK !1.RECNUM _CVWLR#GU
- !A [] $C1 !1.RECNUM
- #ENDIF
- #IF !0>1
- CLEAR !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CLEAR_OPTION #LGRE . // Clears window options which
- #IFCLASS !1 _C // have been set ON by set option
- #SET Q$ !1 // or by dfsetup.
- !A [] $04B |CI!q |CI0 // CLEAR_OPTION AUTORETURN
- #ELSE
- !A [] $04B !1 |CI0 // .
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CLEARFORM &%CVFG#LE "THRU""THROUGH""" %CVFG#LUE .
- #IF !0>0
- #IFDEF !1
- !A [] $1C3 !1 !3 |CI0
- #ELSE
- #CHECK !1.N _R#LGVU
- !A [] $1C3 !1.N |CI0
- #ENDIF
- #ELSE
- !A [] $1C3 |CI0
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CLEARSCREEN & .
- !A [] $144 !1
- #ENDCOMMAND
-
- #COMMAND CLEARWARNING &.
- !A [] $048
- #ENDCOMMAND
-
- #COMMAND CLEARXY &%#USGL %#USGLR .
- !A [] $146 !1 !2
- #ENDCOMMAND
-
- #COMMAND CLOSE RTE
- #CHECK !1.RECNUM _CVWLR#GU
- !A [] $181 !1.RECNUM
- #IF (!0>1)
- CLOSE !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CLOSE_INPUT
- #IFSAME !1 CHANNEL
- !A [] $10A |CI0 !2
- #ENDIF
- !A [] $100 |CS'CON:'
- #ENDCOMMAND
-
- #COMMAND CLOSE_OUTPUT
- #IFSAME !1 CHANNEL
- !A [] $10A |CI1 !2
- #ENDIF
- !A [] $101 |CS'LST:'
- #ENDCOMMAND
-
- #COMMAND CMDLINE RLUGE .
- !A [] $24A !1 |CS''
- #ENDCOMMAND
-
- #COMMAND COPYFILE LGU "TO" R#LGU .
- !A [] $2C5 !1 !3
- #ENDCOMMAND
-
- #COMMAND CONSTRAINT_SET R#LG """DELETE""CLEAR"
- #IFSAME !2 DELETE
- !A [] $0DA !1 // DELETE
- #ELSE
- #IFSAME !2 CLEAR
- !A [] $0DA !1 // DELETE FIRST
- #ENDIF
- !A [] $0D0 !1 // QUERY ID
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CONSTRAINT_SAVE_INIT .
- !A [] $0DE
- #ENDCOMMAND
-
- #COMMAND CONSTRAINT_VALIDATE .
- !A [] $0DF
- #ENDCOMMAND
-
- #COMMAND CONSTRAINT_INIT r r "BY" r // mode file by index
- #IFSAME !1 $0 $1 $2 $3 $4 $5
- #SET Q$ !1
- MOVE |CI!q TO INDEX_NUMBER
- #ELSE
- MOVE !1 TO INDEX_NUMBER
- #ENDIF
- #IFDEF !2
- !A [] $0D6 !2 !4 // VARIABLE FILE NUMBER
- #ELSE
- #SET Q$ !2.RECNUM // FILE NAME ONLY
- !A [] $0D6 |CI!q !4
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CONSTRAINED_CLEAR
- #IF !0>0
- CONSTRAINT_INIT !1 !2 !3 !4
- #ENDIF
- !A [] $DC // Find clear
- #ENDCOMMAND
-
- #COMMAND CONSTRAIN R
- #IFSAME !2 AS
- #CHECK !3 CFLVNSWG#
- #CHECK !1.RECNUM R#ULWVC
- #SET Q$ !1.RECNUM
- !A [] $DB |CI!q !3 // FILE AS (BOOL-EXP)
- #ELSE
- #IFSAME !2 BETWEEN // FIELD BETWEEN A AND B
- #CHECK !4 "AND"
- CONSTRAIN !1 GE !3
- CONSTRAIN !1 LE !5
- #ELSE
- #IFSAME !2 RELATES
- #CHECK !3 "TO"
- #IFDEF !1
- #IFDEF !4
- !A [] $D9 !1 !4 // FILE RELATES TO FILE
- #ELSE
- !A [] $D9 !1 !4.FILE_NUMBER // FILE RELATES TO FILE
- #ENDIF
- #ELSE
- #IFDEF !4
- !A [] $D9 !1.FILE_NUMBER !4
- #ELSE
- !A [] $D9 !1.FILE_NUMBER !4.FILE_NUMBER
- #ENDIF
- #ENDIF
- #ELSE
- #CHECK !1 R#LWVCEBG
- #IF !0>1
- #IFSAME !2 MATCHES
- #SET Q$ 6
- #ELSE
- #IFSAME !2 CONTAINS
- #SET Q$ 7
- #ELSE
- #CHECK !2 _U
- #SET Q$ !2
- #ENDIF
- #ENDIF
- MOVE |CI!q TO INDEX_NUMBER
- #IFCLASS !3 "F"
- !A [] $D2 !1 !3 // FILE MODE FILE
- #ELSE
- !A [] $D1 !1 !3 // FILE MODE VALUE
- #ENDIF
- #ELSE
- #CHECK !1 CVW#GRE
- !A [] $D3 !1 // FIELD ONLY
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND CONSTRAINED_FIND // MODE FILE by INDEX
- #IFSAME !1 NEXT
- #IF !0>1
- !A [] $0D0 !2 // QUERY ID
- #ENDIF
- !A [] $D8 // find NEXT
- #ELSE
- #IFSAME !1 FIRST
- CONSTRAINED_CLEAR GE !2 !3 !4
- #ELSE
- #IFSAME !1 LAST
- CONSTRAINED_CLEAR LE !2 !3 !4
- #ELSE
- #IF !0>0
- CONSTRAINT_INIT !1 !2 !3 !4
- #ENDIF
- // THIS USES RB DATA ,IT DOES NOT CLEAR THE rb.
- #ENDIF
- #ENDIF
- !A [] $D7 |CI0 // find init, sets found on status of constrained relates.
- !A [FOUND] $D8 // find NEXT (first)
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND DATE TR
- #NUM V$
- #REPLACE !1 |VD!v
- #IF (!0>1)
- DATE !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND DEBUG &.
- !A [] $044
- #ENDCOMMAND
-
- #COMMAND DECREMENT LCNSFWGRUE .
- !A [] $087 !1 |CI0
- #ENDCOMMAND
-
- #COMMAND DELETE CVWR#LGE
- #IFDEF !1
- !A [] $C3 !1
- #ELSE
- #CHECK !1.RECNUM _CVWLR#GU
- !A [] $C3 !1.RECNUM
- #ENDIF
- #IF !0>1
- DELETE !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND DESPOOL &. // This calls the system despool command, if available.
- !A [] $2C6 // Multiuser only, and only if the OS has program-
- #ENDCOMMAND // call-able Despool (many don't!)
-
- #COMMAND DIRECTORY &R#LGU .
- !A [] $2C4 !1
- #ENDCOMMAND
-
- #COMMAND DIRECT_INPUT
- #IFSAME !1 CHANNEL
- !A [] $10A |CI0 !2
- #IF !0>2
- DIRECT_INPUT !3 !4
- #ENDIF
- #ELSE
- #IFSAME !1 DBMS IMAGE
- #IFSAME !1 IMAGE
- #SET Q$ !2.N
- !A [] $100 |CS"!1:!q"
- #ELSE
- !A [] $100 |CS"!1:!2"
- #ENDIF
- #ELSE
- #CHECK !2 .
- !A [] $100 !1
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND DIRECT_OUTPUT
- #IFSAME !1 CHANNEL
- !A [] $10A |CI1 !2
- #IF !0>2
- DIRECT_OUTPUT !3 !4
- #ENDIF
- #ELSE
- #IFSAME !1 DBMS IMAGE
- #IFSAME !1 IMAGE
- #SET Q$ !2.N
- !A [] $101 |CS"!1:!q"
- #ELSE
- !A [] $101 |CS"!1:!2"
- #ENDIF
- #ELSE
- #CHECK !2 .
- !A [] $101 !1
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND APPEND_OUTPUT
- #IFSAME !1 CHANNEL
- !A [] $10A |CI1 !2
- #IF !0>2
- APPEND_OUTPUT !3 !4
- #ENDIF
- #ELSE
- #IFSAME !1 DBMS IMAGE
- #IFSAME !1 IMAGE
- #SET Q$ !2.N
- !A [] $101 |CS"!1:!q" |CI2
- #ELSE
- !A [] $101 |CS"!1:!2" |CI2
- #ENDIF
- #ELSE
- #CHECK !2 .
- !A [] $101 !1 |CI2
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND DISKFREE #LIDNRUG "TO" #LDRCUGE .
- !A [] $2d5 !3 !1
- #ENDCOMMAND
-
- #COMMAND DISPLAY RUG#L
- #IF !0>2
- #CHECK !2 "TO"
- #CHECK !3 _RGC#LE
- !A [] $1C2 !1 !3
- #IF !0>3
- #CHECK !4 _#LWFCV
- #FORMAT !3 !4
- #ENDIF
- #ELSE
- AUTO4$ DISPLAY !1 TO PAGE!f !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND ELSE
- #$ !A [] $41 |CI0 //jump over else code.
- #XPOP !n S$ // GET GOTO LINE NUMBER FROM LAST IF.
- #XPUSH 1 !a // Save line number of ELSE jump.
- #XPUSH 0 !n // Save static nest level.
- #FREF (!a+1) !s // Modify goto line number with ELSE command
- !1 !2 !3 !4 !5 !6 !7 !8 !9
- #XPOP 0 Q$ // Restore static nest level to Q.
- #XPOP 1 S$ // Restore line number of else jump.
- #IF (!n>!q)
- #FREF END$!r !s // Modify ELSE jump to after BEGIN block.
- #ELSE
- #FREF (!a+1) !s // Modify ELSE jump to after the ELSE command.
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND END &.
- #POP S$
- #IFDEF WHILE$!s
- !A [] $041 WHILE$!s
- #ENDIF
- END$!s:
- #SET N$ !n-1
- #ENDCOMMAND
-
- #COMMAND ENDGROUP &.
- //ENTUPDATE // update record buffer
- !A [] $280 |CI0
- //GOTO ENT$END!x
- !A [] $41 |CL0
- #FREF ENT$END!x !a
- //RETURN // RETURN stops entry command list
- !A [] $43 |CI0
- ENT$END!x:
- #ENDCOMMAND
-
- #COMMAND ENT$KEY
- ENT$DISP:
- IF ENTER$DISPLAY NE 0 BEGIN
- !A [FOUND] $042 ENTER$DISPLAY
- END
- ELSE BEGIN
- [FOUND] ENTDISPLAY // JUST DO AN ENTDISPLAY
- END
- // ENTAGAIN
- !A [] $287
- // RETURN
- !A [] $43 |CL0
-
- //<<<<<<< STANDARD KEY PROCEDURES FOR ENTER GROUP >>>>>>>>>>
- //KEYPROC KEY.FIND
- ENTER$.FIND:
- // ENTFIND GE // no, FIND
- !A [] $281 |CI3
- #KEYPROC 7 !a
- // GOTO ENT$DISP
- !A [] $41 ENT$DISP
-
- //KEYPROC KEY.NEXT // FIND next record
- ENTER$.NEXT:
- // ENTFIND GT
- !A [] $281 |CI4
- #KEYPROC 15 !a
- // GOTO ENT$DISP
- !A [] $41 ENT$DISP
-
- //KEYPROC KEY.PREVIOUS // FIND prv record
- ENTER$.PREVIOUS:
- // ENTFIND LT
- !A [] $281 |CI0
- #KEYPROC 14 !a
- // GOTO ENT$DISP
- !A [] $41 ENT$DISP
- //KEYPROC KEY.UP
- //KEYPROC KEY.FIELD // BACK FIELD
- ENTER$.FIELD:
- // BACKFIELD
- !A [] $288
- #KEYPROC 16 !a
- #KEYPROC 6 !a
- // RETURN
- !A [] $43 |CI0
- //KEYPROC KEY.CLEAR // CLEAR SCREEN
- ENTER$.CLEAR:
- // INDICATE ERR FALSE
- !A [] $4028 |CI0 |CI0 |127
- #KEYPROC 13 !a
- !A [] $284 // ENTCLEAR
- // RETURN
- !A [] $43 |CI0
- //KEYPROC KEY.SAVE
- ENTER$.SAVE:
- !A [] $285 // ENTSKIP
- #KEYPROC 9 !a
- // RETURN
- !A [] $43 |CI0
- //KEYPROC KEY.HELP
- ENTER$.HELP:
- //HELP
- !A [] $1C5 |CI0
- #KEYPROC 18 !a
- //ENTAGAIN
- !A [] $287
- //RETURN
- !A [] $43 |CI0
-
- // KEYPROC KEY.PRINT
- ENTER$.PRINT:
- // output current page
- !A [] $202 |VI9
- #KEYPROC 2 !a
- //ENTAGAIN and RETURN
- !A [] $287
- !A [] $43 |CI0
- #ENDCOMMAND
-
- #REM ENTAGAIN can only be used in a KEY PROCedure. It returns to the
- #REM same window (COMMAND) that called the KEY PROCedure.
-
- #COMMAND ENTAGAIN &.
- !A [] $287
- #ENDCOMMAND
-
- #COMMAND ENTDISPLAY &TCVWG#LE . // Display all entries for a file
- #IF (!0>0)
- //RELATE !1
- !A [] $C4 !1.RECNUM
- #ENDIF
- //display from entry section
- !A [] $283
- #ENDCOMMAND
-
- #COMMAND ENTER CVWSRL#E
- // INDICATE CONTINUE TRUE
- #REPLACE CONTINUE |!C
- !A [] $4028 |CI0 |CI0 CONTINUE~
- // INDICATE ENT$QUERY FALSE
- #REPLACE ENT$QUERY |9
- !A [] $4028 |CI0 |CI0 |9
- #IF !0>0 // ENT$QUERY tells us if
- #SET X$ !1.RECNUM // we are in QUERY(SUPERFIND) mode
- #ELSE
- #SET X$ 0
- #ENDIF
- //MOVEINT |CI!x TO |VI8 // set ENTMFILE (ENTER's main file variable)
- !A [] $82 |CI!x |VI8 // to main file for ENTSFIND
- ENT$LP: // start of enter loop
- // GOSUB ENTRYSEC // do ENTRY section
- !A [] $042 |CL0
- #FREF ENTRYSEC !a
- //[KEY.ESCAPE] GOTO END_ENTER // dropped thru
- !A [|103] $041 |CL0
- #FREF END_ENTER !a
- // INDICATE ERR FALSE // set error false
- !A [] $4028 |CI0 |CI0 |127
- // temp disable ON ERROR
- !A [] $82 |VI31 |VI32
- !A [] $82 |CI0 |VI31
- // REREAD // multiuser reread
- !A [|120] $0C9
- //[ENT$QUERY] GOSUB ENTER.EDIT // user procedure
- !A [|9] $042 |CL0
- #FREF ENTER.EDIT !a
- //[NOT ERR] ENTUPDATE // update files from ENTRY
- !A [~|127] $280 |CI0
- //[NOT ERR] GOSUB ENTER.SAVE // user procedure
- !A [~|127] $042 |CL0
- #FREF ENTER.SAVE !a
- [NOT ERR] MULTIBACK$ SAVE !1 !2 !3 !4 !5 !6 !7 !8 !9 // save
- // UNLOCK //multiuser
- !A [|120] $0C8
- //[NOT ERR] GOSUB ENT$CLEAR // clear screen
- !A [~ |127] $042 |CL0
- #FREF ENT$CLEAR !a
- // RE ENABLE ON ERROR
- !A [] $82 |VI32 |VI31
- //[CONTINUE] GOTO ENT$LP // loop
- !A [CONTINUE] $041 ENT$LP
- // GOTO END_ENTER // end if NOT CONTINUE
- !A [] $041 |CL0
- #FREF END_ENTER !a
- // this clears the screen and all data files
- ENT$CLEAR: MULTIBACK$ CLEAR !1 !2 !3 !4 !5 !6 !7 !8 !9
- // INDICATE ENT$QUERY FALSE
- !A [] $4028 |CI0 |CI0 |9
- // ENTCLEAR - clear ENTRY section
- !A [] $284
- // RETURN
- !A [] $043 |CI0
- //<<<<<<< STANDARD KEY PROCEDURES FOR ENTER >>>>>>>>>>
- //KEYPROC KEY.SAVE
- ENTER$.SAVE:
- !A [] $285 //ENTSKIP (skip rest of entries)
- #KEYPROC 9 !a
- // RETURN
- !A [] $043 |CI0
- //KEYPROC KEY.DELETE
- // INDICATE ERR FALSE //default
- ENTER$.DELETE:
- !A [] $4028 |CI0 |CI0 |127
- #KEYPROC 10 !a
- // DISABLE ON ERROR
- !A [] $82 |VI31 |VI32
- !A [] $82 |CI0 |VI31
- // REREAD
- !A [|120] $C9
- //[NOT ENT$QUERY] ERROR 71 // check for active record
- !A [~|9] $47 |CI71
- //[NOT ERR] GOSUB ENTER.DELETE // user procedure
- !A [~|127] $042 |CL0
- #FREF ENTER.DELETE !a
- //[NOT ERR] GOSUB ENTER.EDIT // user procedure
- !A [~|127] $042 |CL0
- #FREF ENTER.EDIT !a
- //[NOT ERR] DELETE !1 // delete records
- !A [~|127] $C3 !1.RECNUM
- [NOT ERR] MULTIBACK$ SAVE !2 !3 !4 !5 !6 !7 !8 !9 // related
- // UNLOCK
- !A [|120] $C8
- //[NOT ERR] GOSUB ENT$CLEAR // clear systems
- !A [~|127] $042 ENT$CLEAR
- // enable ON ERROR
- !A [] $82 |VI32 |VI31
- // RETURN ENTRYSEC
- !A [] $43
- #FREF ENTRYSEC !a
- // will GOSUB here for all find keys //
- // INDICATE WAS$QUERY GROUP ANY [ENT$QUERY]
- ENTER$.FIND:
- #REPLACE WAS$QUERY |!C
- !A [] $4020 |GB[|9] |GB[0] WAS$QUERY IN$GLANY |3
- #KEYPROC 8 !a // SUPERFIND
- #KEYPROC 7 !a // FIND
- #KEYPROC 15 !a // NEXT
- #KEYPROC 14 !a // PREVIOUS
- //[KEY.SFIND] INDICATE ENT$QUERY TRUE
- !A [|108] $4028 |CI0 |CI0 |9~
- //[NOT ENT$QUERY] INDICATE ENT$QUERY AS |CI!x EQ |VI15 // query mode?
- !A [~ |9] $4008 |CI!x |VI15 |9 |2
- //[KEY.SFIND] ENTSFIND GE
- !A [|108] $282 |CI3
- //[KEY.FIND][ENT$QUERY][ENT$PERMISSIVE] ENTFIND GE
- !A [|107 |9 |10] $281 |CI3
- //[KEY.FIND][ENT$QUERY][NOT ENT$PERMISSIVE] ENTSFIND GE // yes, SUPERFIND
- !A [|107 |9 ~ |10] $282 |CI3
- //[KEY.FIND][NOT ENT$QUERY] ENTFIND GE // no, FIND
- !A [|107 ~ |9] $281 |CI3
- //[KEY.NEXT][ENT$QUERY] ENTSFIND GT // yes, SUPERFIND
- !A [|115 |9] $282 |CI4
- //[KEY.NEXT][NOT ENT$QUERY] ENTFIND GT // no, FIND
- !A [|115 ~ |9] $281 |CI4
- //[KEY.PREVIOUS][ENT$QUERY] ENTSFIND LT // yes, SUPERFIND
- !A [|114 |9] $282 |CI0
- //[KEY.PREVIOUS][NOT ENT$QUERY] ENTFIND LT // no, FIND
- !A [|114 ~ |9] $281 |CI0
- [FINDERR] INDCT$GROUP ENT$QUERY GROUP ANY [WAS$QUERY]
- //!A [FOUND] $283 // display records
- !A [FOUND] $042 ENTER$DISPLAY
- // ENTAGAIN // same window
- !A [] $287
- // RETURN
- !A [] $43 |CI0
- ////// define ENTER's KEY PROCedures ////////////
- // KEYPROC BACKFIELD
- // BACKFIELD
- ENTER$.FIELD:
- !A [] $288
- #KEYPROC 16 !a
- #KEYPROC 6 !a
- ENTXRET:// RETURN
- !A [] $43 |CL0
- // KEYPROC CLEARSCREEN
- ENTER$.CLEAR:
- // INDICATE ERR FALSE
- !A [] $4028 |CI0 |CI0 |127
- #KEYPROC 13 !a
- // GOSUB ENTER.CLEAR
- !A [] $042 |CL0
- #FREF ENTER.CLEAR !a
- //[NOT ERR] GOSUB ENT$CLEAR
- !A [~ |127] $042 ENT$CLEAR
- // RETURN ENTRYSEC
- !A [] $043
- #FREF ENTRYSEC !a
- // KEYPROC ESCAPE key
- ENTER$.ESCAPE:
- // INDICATE ERR FALSE
- !A [] $4028 |CI0 |CI0 |127
- #KEYPROC 3 !a
- // GOSUB ENTER.EXIT
- !A [] $42 |CL0
- #FREF ENTER.EXIT !a
- //[NOT ERR] RETURN ENTXRET
- !A [~ |127] $43 ENTXRET
- // RETURN
- !A [] $43 |CI0
- //KEYPROC KEY.HELP
- //HELP
- ENTER$.HELP:
- !A [] $1C5 |CI0
- #KEYPROC 18 !a
- //ENTAGAIN
- !A [] $287
- //RETURN
- !A [] $43 |CI0
- //KEYPROC KEY.PRINT
- //output current page
- ENTER$.PRINT:
- !A [] $202 |VI9
- #KEYPROC 2 !a
- //ENTAGAIN and RETURN
- !A [] $287
- !A [] $43 |CI0
-
- ENTRYSEC:// ENTERMODE // start entry section
- !A [] $82 |CI!a |VI14
- !A [] $286
- #ENDCOMMAND
-
- #COMMAND ENTEREND // end of ENTER
- MAKEDEF$ ENTER.SAVE ENTER.EDIT ENTER.DELETE ENTER.CLEAR ENTER.EXIT
- //RETURN
- !A [] $43 |CI0
- #IFDEF ENTER.DISPLAY
- #ELSE
- ENTER.DISPLAY:
- ENTDISPLAY
- !A [] $43 |CI0
- #ENDIF
- END_ENTER:
- // CLEARSCREEN
- !A [] $144
- #ENDCOMMAND
-
- #COMMAND ENTERGROUP . // independent entry section
- #IFDEF ENT$DISP
- #ELSE
- //INTEGER ENT$START
- INTEGER ENT$END
- //#$ GOTO ENTK$END
- #$ !A [] $41 |CL0
- #FREF ENTK$END !a
- #$ ENT$KEY
- #SET X$ 0
- ENTK$END:
- #ENDIF
-
- ENTRYSEC!X:// ENTERMODE // start entry section
- !A [] $82 |CI!a |VI14
- !A [] $286
- // INDICATE ENT$QUERY FALSE
- !A [] $4028 |CI0 |CI0 |9
- #ENDCOMMAND
-
- #REM ENTERMODE defines the top of the ENTRY section.
-
- #COMMAND ENTERMODE &.
- //set start of ENTRY section
- !A [] $082 |CI!a |VI14
- //clear SAVE key
- !A [] $286
- #ENDCOMMAND
-
- #REM ENTFIND FINDs a record based on the file/field of the last executed
- #REM ENTRY command, and displays the results on a FIND. THE FIND mode
- #REM is the only argument.
- #REM ENTFIND also maintains the ENT$QUERY indicator.
-
- #COMMAND ENTFIND &"$0""$1""$2""$3""$4""$5"
- !A [] $281 |CI!1
- #ENDCOMMAND
-
- #COMMAND ENTRY RWV#LUG UVC#LF UFVW#BC
- #IF !0=1
- AUTO3$ ENTRY !1 PAGE!f
- #ELSE
- #IFTYPE !2 "O"
- AUTO3$ ENTRY !1 PAGE!f !2
- #ELSE
- #CHECK !2 _RVCLE
- #IFCLASS !1 "E"
- !A [] $8000 !1 !2 {$C002,$C003 !3
- #ELSE
- !A [] $8000 !1 !2 !3
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #REM ENTSFIND (SUPERFIND) FINDs a record in the main file, based on the
- #REM file/field of the last ENTRY command, and displays the results.
- #REM This depends on the main file number being in SYSINT 8 (|VI8).
-
- #COMMAND ENTSFIND &"$0""$1""$2""$3""$4""$5" .
- !A [] $282 |CI!1
- #ENDCOMMAND
-
- #REM ENTUPDATE moves all changed windows from the
- #REM window buffer to the record buffer
-
- #COMMAND ENTUPDATE &T .
- #IF !0>0
- !A [] $280 !1.RECNUM
- #ELSE
- !A [] $280 |CI0
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND ERASEFILE &R#LGU .
- !A [] $2C1 !1
- #ENDCOMMAND
-
- #COMMAND ERROR L%RGU #LUG .
- !A [] $047 !1 !2
- #ENDCOMMAND
-
- #COMMAND ERROR_REPORT SU#LGO .
- #IF !0>0
- !A [] $04C !1
- #ELSE
- !A [] $04C |CI0
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND FIELD_DEF _E U#LG "TO" #LGUCE #LGRUEC .
- #IFDEF !1
- !A [] $82 !1 FILENUMBER
- #ELSE
- #CHECK !1.RECNUM _U
- #SET Q$ !1.RECNUM
- !A [] $82 |CI!q FILENUMBER
- #ENDIF
- !A [] $82 !2 FIELDNUMBER
- !A [] $345 !4 !5
- #ENDCOMMAND
-
- #COMMAND FILELIST &R#%LG "TO""" #LUGCE #LUCGE .
- #IFSAME !1 NEXT
- !A [] $301 !3 !4
- #ELSE
- #IFSAME !1 PATHNAME
- !A [] $302 !3 !4
- #ELSE
- #CHECK !1 _U
- !A [] $82 !1 FILENUMBER
- !A [] $300 !3 !4
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #REM Put back into FILELIST. The file number must be in "FILENUMBER"
- #REM Three values are: ROOT NAME, DISPLAY NAME, LOGICAL NAME.
-
- #COMMAND FILELIST$PUT LRU #LRU #LU
- #IF !0>2
- !A [] $309 !3
- #ENDIF
- !A [] $30A !1 !2
- #ENDCOMMAND
-
- #COMMAND FILE_MODE RT "READ_ONLY""SINGLE_USER""ALIAS""MASTER_ALIAS""DEFAULT" .
- #CHECK !1.RECNUM _CVWLR#GU
- #IFSAME !2 READ_ONLY
- !A [] $0CB !1.RECNUM |CI91
- #ELSE
- #IFSAME !2 SINGLE_USER
- !A [] $0CB !1.RECNUM |CI7
- #ELSE
- #IFSAME !2 DEFAULT
- !A [] $0CB !1.RECNUM |CI0
- #ELSE
- #IFSAME !2 ALIAS
- !A [] $0CB !1.RECNUM |CI130
- #ELSE
- #IFSAME !2 MASTER_ALIAS
- !A [] $0CB !1.RECNUM |CI128
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #REM FILE$MODE <FILE> <MODE NUMBER>
- #REM MODE VALUES (VALUES ARE ADDITIVE)
- #REM 1 NO AUTOMATIC REREAD OF RECORD BUFFERS.
- #REM 2 NO LOCKS (LOCK OR REREAD)
- #REM 4 NO RE-READ OF BLOCK ZERO OF DATA FILE OR INDEXES
- #REM 8 NO EDITS OF ACTIVE RECORDS (ERROR 66)
- #REM 16 NO DELETES OF RECORDS (ERROR 63)
- #REM 32 NO FINDS (ERROR 64)
- #REM 64 NO CREATES OF NEW RECORDS. (ERROR 65)
- #REM 128 ALWAYS RE_READ BLOCK 0
- #REM Warning; Improper combinations of the above could disable
- #REM multiuser checking and destroy the data base.
- #REM 8 Thru 64 are non destructive and can be used in applications.
- #REM FOR EXPERTS ONLY!
-
- #COMMAND FILE$MODE RT #LGSU .
- #CHECK !1.RECNUM _RULG
- !A [] $0CB !1.RECNUM !2
- #ENDCOMMAND
-
- #COMMAND FILE_SIZE R#LGSD "TO" R#LGE #LUGE #LGUE .
- #IFDEF !1 // SET FILE SIZE
- #CHECK !3.RECNUM _RU
- #SET Q$ !3.RECNUM
- !A [] $343 |CI!q !1
- #ELSE
- #CHECK !1.RECNUM _U
- #SET Q$ !1.RECNUM
- !A [] $82 |CI!q FILENUMBER
- !A [] $341 !3 !4
- !A [] $82 STRMARK !5
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND FIND &"$0""$1""$2""$3""$4""$5" R "BY""" % .
- #IFCLASS !2 "F"
- #CHECK !2 _U#LGWV
- #CHECK !3 .
- !A [] $0C0 !2 |CI!1
- #ELSE
- #CHECK !2.RECNUM _U#LGWV
- #CHECK !4 _RUL#GVFW
- #SET Q$ !2.RECNUM
- #SET Y$ !4
- !A [] $0C6 |FS!q.!y |CI!1
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND FIND$PAGE "AT""COLORS""" #LUG U#LG .
- #IF !0>0
- #IFSAME !1 AT
- !A [] $1C8 !2 !3
- #ELSE
- #IFSAME !1 COLORS
- !A [] $1C9 !2 !3
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #REM FLEX$INIT - STANDARD REPLACES
- #REM These are the standard symbols that are required for the compiler
- #REM This procedure will be automatically executed
- #REM when the compiler starts
-
- #COMMAND FLEX$INIT &.
- #REPLACE CALC CALCULATE
- #REPLACE LT $0 // internal value for the find/indicate modes.
- #REPLACE LE $1
- #REPLACE EQ $2
- #REPLACE GE $3
- #REPLACE GT $4
- #REPLACE NE $5
- #REPLACE TRUE $1
- #REPLACE FALSE $0
- #REPLACE NOT ~
- #SET C$ 11
- #REPLACE LASTIF |!C
- #REPLACE ENT$PERMISSIVE |10
- #REPLACE IN$0 $4000
- #REPLACE IN$1 $4004
- #REPLACE IN$2 $4008
- #REPLACE IN$3 $400C
- #REPLACE IN$4 $4010
- #REPLACE IN$5 $4014
- #REPLACE IN$GLANY |0
- #REPLACE IN$GLALL |4
- #REPLACE IN$GRANY |0
- #REPLACE IN$GRALL |2
- #REPLACE IN$GMOR |0
- #REPLACE IN$GMAND |1
- #REPLACE ERR |127
- #REPLACE ERRLINE |VI6
- #REPLACE LAST_CRIT_ERR |VI102
- #REPLACE EXT_CRIT_ERR |VI103
- #REPLACE FINDERR |126
- #REPLACE SEQEOF |125
- #REPLACE SEQEOL |121
- #REPLACE MULTIUSER |120
- #REPLACE FIELDINDEX |VI1
- #REPLACE WINDOWINDEX |VI2
- #REPLACE LASTERR |VI5
- #REPLACE KEYPRESS |123
- #REPLACE TERMCHAR |VI3
- #REPLACE FLEXKEY |VI4
- #REPLACE SCREENEND |VI17
- #REPLACE MEMAVAIL |VI18
- #REPLACE LASTENTRY |VI19
- #REPLACE FLX_REVISION |VI36
- #REPLACE ENTER$DISPLAY |VI38
- #REPLACE NOKEYCHECK |VI80
- #REPLACE CHAIN_DEPTH |VI81
- #REPLACE CURSOR_SET |VI82 // THESE ARE USED BY AUTOBACK
- #REPLACE CURSOR_RETURN |VI83
- #REPLACE MINIMUM_MEMORY |VI86
- #REPLACE INDEX_NUMBER |VI90
- #REPLACE SCREEN_WIDTH |VI91
- #REPLACE KEY.ANY |100
- #REPLACE KEY.RETURN |101
- #REPLACE KEY.PRINT |102
- #REPLACE KEY.ESCAPE |103
- #REPLACE KEY.LEFT |104
- #REPLACE KEY.RIGHT |105
- #REPLACE KEY.FIELD |106
- #REPLACE KEY.FIND |107
- #REPLACE KEY.SFIND |108
- #REPLACE KEY.SAVE |109
- #REPLACE KEY.DELETE |110
- #REPLACE KEY.CALCULATE |111
- #REPLACE KEY.USER |112
- #REPLACE KEY.CLEAR |113
- #REPLACE KEY.NEXT |115
- #REPLACE KEY.PREVIOUS |114
- #REPLACE KEY.UP |116
- #REPLACE KEY.DOWN |117
- #REPLACE KEY.HELP |118
- #REPLACE KEY.USER2 |119
- #REPLACE NUMPAGE |VI28
- #REPLACE NUMWINDOW |VI29
- #REPLACE #$
- #SET F$ 1
- #REPLACE NEXT_MENU |VI127
- #REPLACE CURRENT_IMAGE |VI9
- #REPLACE CURRENT_WINDOW |VI7
- #REPLACE LAST_GOSUB |VI0
- #REPLACE FOUND |254
- #REPLACE STRMARK |VI12
- #REPLACE STRLEN |VI13
- // ENTER & REPORT DEF'S
- #REPLACE LINECOUNT |VI10
- #REPLACE PAGECOUNT |VI11
- #REPLACE PAGEEND |VI25
- #REPLACE PAGEFEED |VI26
- #SET D$ 128 // INTEGERS NOW START HERE.
- #SET P$ 0
- #REPLACE AUTOFIND $C000
- #REPLACE AUTOFIND_GE $C000,$C008
- #REPLACE FINDREQ $C001
- #REPLACE NOPUT $C002
- #REPLACE NOENTER $C003
- #REPLACE SKIPFOUND $C004
- #REPLACE RETAINALL $C005
- #REPLACE RETAIN $C006
- #REPLACE FORCEPUT $C007
- #REPLACE DISPLAYONLY $C002,$C003
- #REPLACE CAPSLOCK $C023
- #REPLACE ZERO_SUPPRESS $C024
- #REPLACE SUPPRESS $C040=''
- #REPLACE FLOAT$ $C026
- #REPLACE UPPER $C023
- #REPLACE SIGNRT $C027
- #REPLACE CHECK $C012
- #REPLACE RANGE $C013
- #REPLACE REQUIRED $C022
- #REPLACE AUTORETURN $C028
- #REPLACE AUTOBACK $C029
- #REPLACE NO_CALC $C02B // Disable Calculate (internal)
- #REPLACE MODAL_INSERT $C02A // Change insert style (internal)
- #REPLACE AUTOCLEAR $C02D
- #REPLACE WP_BACKSP $C02E
- #REPLACE PAGEBREAK |124
- #REPLACE FILL $C040
- #REPLACE POINTS $C080
- #REPLACE FILENUMBER |VI15
- #REPLACE FIELDNUMBER |VI16
- #REPLACE INDEX.1 |CI1 // the indexes are just integers.
- #REPLACE INDEX.2 |CI2
- #REPLACE INDEX.3 |CI3
- #REPLACE INDEX.4 |CI4
- #REPLACE INDEX.5 |CI5
- #REPLACE INDEX.6 |CI6
- #REPLACE INDEX.7 |CI7
- #REPLACE INDEX.8 |CI8
- #REPLACE INDEX.9 |CI9
- #REPLACE INDEX.10 |CI10
- #REPLACE INDEX.11 |CI11
- #REPLACE INDEX.12 |CI12
- #REPLACE INDEX.13 |CI13
- #REPLACE INDEX.14 |CI14
- #REPLACE INDEX.15 |CI15
- #REPLACE INDEX.BATCH |CI10
- #REPLACE RECNUM |CI0
- #REPLACE EXPORT_FILES 1
- #REPLACE EXPORT_ONLY 2
- #REPLACE SEQ_EXPORT 4
- #REPLACE INDIRECT_FILE.RECNUM |FS0,0&
- #REPLACE DESKTOP |CI2
- #REPLACE END_FUNCTION END_PROCEDURE
- #REPLACE PROCEDURE_RETURN FUNCTION_RETURN
-
- // These symbols are passed to the SYSCONF function to determine
- // which OS specific item is returned.
- #REPLACE SYSCONF_TIMER_RESOLUTION |CI0
- #REPLACE SYSCONF_DIR_SEPARATOR |CI1
- #REPLACE SYSCONF_OS_SHORT_NAME |CI2
- #REPLACE SYSCONF_OS_MAJOR_REV |CI3
- #REPLACE SYSCONF_OS_MINOR_REV |CI4
- #REPLACE SYSCONF_OS_NAME |CI5
- #REPLACE SYSCONF_MACHINE_NAME |CI6
- #REPLACE SYSCONF_FILE_MASK |CI7
- #REPLACE SYSCONF_DATAFLEX_REV |CI8
-
- #SET N$ 2 // save 0,1 stacks for IF/ELSE
- #XPUSH !n $INIT
- #CHKSUB 0 1 // Verify the General Flex subsystem.
- #ENDCOMMAND
-
- #COMMAND FOR &ECFWGSNR#LU "FROM" %UGLR# "TO""" %UGL#
- #SET N$ !N
- #PUSH !R
- #XPUSH !n $INIT
- //MOVEINT !3 TO !1
- !A [] $082 !3 !1
- #IF (!0>3)
- // IF !1 LE !5 GOTO FOR$!r
- !A [] $4004 !1 !5 |11 |2
- !A [|11] $041 |CL0
- #FREF FOR$!r !a
- #ENDIF
- #$ !A 0 0 0 $041 |CL0
- #FREF END$!r !a
- #$ BEGIN$!r:
- #$ WHILE$!r:
- #IF !0=3
- #$ !A [] $083 !1
- #ELSE
- #$ !A [] $083 !1 !5
- #$ !A [|122] $041 |CL0
- #FREF END$!r !a
- #ENDIF
- FOR$!r:
- #ENDCOMMAND
-
- // FORMAT window {}
- // FORMAT window THRU window {}
-
- #COMMAND FORMAT RUVCFL#G
- #IF !0>2
- FORMAT$RANGE !1 !2 !3 !4 !5
- #ELSE
- #CHECK !2 _RVCFWL#BE
- #CHECK !3 .
- #FORMAT !1 !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND FORMAT$RANGE ERUVCFL#G "THRU""THROUGH" ERUVCFL#G RVCFWL#B .
- #FORMAT !1 !4
- #IF (!1<!3)
- #SET Q$ !1
- FORMAT$RANGE |WS!Q THRU !3 !4
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND FORMFEED &. // just like PAGECHECK 500
- !A [] $203 |CI500 |CI0
- #ENDCOMMAND
-
- #COMMAND GET_ARGUMENT_SIZE "TO" _RUDCE#LGB .
- !A [] $24F !2
- #ENDCOMMAND
-
- #COMMAND GET_CURRENT_DIRECTORY "TO" _RUNRIDCE .
- !A [] $2D1 !2
- #ENDCOMMAND
-
- #COMMAND GET_ENVIRONMENT &RD#GOBLU "TO" _RCEUGOB# .
- !A [] $2CF !1 !3
- #ENDCOMMAND
-
- #COMMAND GOSUB &RVFWSNDE#G .
- #IFDEF !1
- !A [] $042 !1
- #ELSE
- !A [] $042 |CL0
- #FREF !1 !a
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND GOTO &RVFWSNDE#G .
- #IFDEF !1
- !A [] $041 !1
- #ELSE
- !A [] $041 |CL0
- #FREF !1 !a
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND GOTOXY &%#USGL %#USGLR .
- !A [] $145 !1 !2
- #ENDCOMMAND
-
- #COMMAND HELP &T .
- #IF !0>0
- #CHECK !1.N _U
- !A [] $1C5 !1.N
- #ELSE
- !A [] $1C5 |CI0
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND IF LR
- #IFSAME !1 ~
- IFNOT !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !1 STATUS
- INDCT$STATUS LASTIF STATUS !2
- IF$HELP !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 $0 $1 $2 $3 $4 $5 MATCH IN
- INDCT$AS LASTIF AS !1 !2 !3
- IF$HELP !4 !5 !6 !7 !8 !9
- #ELSE
- #IFCLASS !1 "G"
- INDCT$GROUP LASTIF GROUP ALL !1
- #ELSE
- INDCT$AS LASTIF AS !1
- #ENDIF
- IF$HELP !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND IFNOT LR
- #IFSAME !1 ~
- IF !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !1 STATUS
- INDCT$STATUS LASTIF~ STATUS !2
- IF$HELP !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 $0 $1 $2 $3 $4 $5 MATCH IN
- INDCT$AS LASTIF~ AS !1 !2 !3
- IF$HELP !4 !5 !6 !7 !8 !9
- #ELSE
- #IFCLASS !1 "G"
- INDCT$GROUP LASTIF~ GROUP ALL !1
- #ELSE
- INDCT$AS LASTIF~ AS !1
- #ENDIF
- IF$HELP !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND IF_ LR // THIS IF_ WILL NOT WORK WITH ELSE!
- #IFSAME !1 ~
- IFNOT_ !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !1 STATUS
- INDCT$STATUS LASTIF STATUS !2
- [LASTIF] !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 $0 $1 $2 $3 $4 $5 MATCH IN
- INDCT$AS LASTIF AS !1 !2 !3
- [LASTIF] !4 !5 !6 !7 !8 !9
- #ELSE
- #IFCLASS !1 "G"
- INDCT$GROUP LASTIF GROUP ALL !1
- #ELSE
- INDCT$AS LASTIF AS !1
- #ENDIF
- [LASTIF] !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND IFNOT_ LR // THIS IFNOT_ WILL NOT WORK WITH ELSE!
- #IFSAME !1 ~
- IF_ !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !1 STATUS
- INDCT$STATUS LASTIF~ STATUS !2
- [LASTIF] !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 $0 $1 $2 $3 $4 $5 MATCH IN
- INDCT$AS LASTIF~ AS !1 !2 !3
- [LASTIF] !4 !5 !6 !7 !8 !9
- #ELSE
- #IFCLASS !1 "G"
- INDCT$GROUP LASTIF~ GROUP ALL !1
- #ELSE
- INDCT$AS LASTIF~ AS !1
- #ENDIF
- [LASTIF] !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND IF$HELP
- !A [~LASTIF] $41 |CI0 // If LASTIF is false jump to end of IF command.
- #XPUSH 1 !a // Save line number of jump at static nesting level.
- #XPUSH 0 !n // Save nesting level in stack 0.
- !1 !2 !3 !4 !5 !6 !7 !8 !9
- #XPOP 0 Q$ // Restore nesting level into Q.
- #XPOP 1 S$ // Restore IF JUMP line number
- #XPUSH !q !s // Push it back for the ELSE.
- #IF (!n>!q) // after a begin
- #FREF END$!r !s // Make IF JUMP goto end of begin block.
- #ELSE // same or lower nesting level
- #FREF (!a+1) !s // Make IF JUMP goto end of the IF.
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND IFCHANGE R R
- #IFDEF !1
- #CHECK !1 _RFCVGE
- !A [] $1C6 !1
- #ELSE
- #CHECK !1.RECNUM _RWCVG
- !A [] $303 !1.RECNUM
- #ENDIF
- [|122] !2 !3 !4 !5 !6 !7 !8 !9
- #ENDCOMMAND
-
-
- #COMMAND INCREMENT LCNSFWGRUE .
- !A [] $083 !1 |CI0
- #ENDCOMMAND
-
- #COMMAND INDCT$$0 &
- !A [] $4028 |CI0 |CI0 !1 !3
- #ENDCOMMAND
-
- #COMMAND INDCT$$1 &RX R .
- !A [] $4028 |CI0 |CI0 !1~ !3
- #ENDCOMMAND
-
- #COMMAND INDCT$AS &RX "AS" LU "$0""$1""$2""$3""$4""$5""MATCH""IN""" #LUG .
- #IF (!0<4)
- #IFCLASS !3 "G"
- #CHECK !4 "" // INDICATE IND1 AS IND2
- #CHECK !3 _SNDI#LO
- !A [] $4020 !3 |GB[0] !1 |3
- #ELSE
- // INDICATE IND AS X
- #CHECK !3 _U
- #IFTYPE !3 "R"
- !A [] IN$5 !3 |CR0 !1 |3
- #ELSE
- #IFTYPE !3 "ND"
- !A [] IN$5 !3 |CN0 !1 |1
- #ELSE
- #IFTYPE !3 "IL"
- !A [] IN$5 !3 |CI0 !1 |2
- #ELSE
- #IFTYPE !3 "S"
- !A [] IN$5 !3 |CS"" !1 |0
- #ELSE
- #CHECK !3 _O
- !A [] $4020 !3 |GB[0] !1 IN$GLALL |3
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ELSE
- #CHECK !5 _R
- #IFSAME !4 MATCH
- !A [] $4031 !3 !5 !1 !6
- #ELSE
- #IFSAME !4 IN
- !A [] $4030 !3 !5 !1 !6
- #ELSE
- #CHECK !3 _U
- #IF2TYPE !3 !5 "R"
- !A [] IN!4 !3 !5 !1 !6 |3
- #ELSE
- #IF2TYPE !3 !5 "ND"
- !A [] IN!4 !3 !5 !1 !6 |1
- #ELSE
- #IF2TYPE !3 !5 "IL"
- !A [] IN!4 !3 !5 !1 !6 |2
- #ELSE
- !A [] IN!4 !3 !5 !1 !6 |0
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND INDCT$GROUP &XR "GROUP" R"ALL""ANY" CVFWSN#LRU "AND""OR""" "ANY""ALL""" CVFWSN#LU .
- #IF !0>4
- #CHECK !7 _R
- !A [] $4020 !4 !7 !1 IN$GL!3 IN$GR!6 IN$GM!5
- #ELSE
- !A [] $4020 !4 |GB[0] !1 IN$GL!3 |3
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND INDCT$STATUS &R R #LWCV
- #IFDEF !3
- !A [] $4029 !3 |CI0 !1 !4
- #ELSE
- #CHECK !3.RECNUM U#LWCV
- !A [] $4029 !3.RECNUM |CI0 !1 !4
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND INDEX_DEF R R#LGU "TO" #LGRNDCE #LGNDCE #LGNDCE
- #IFDEF !1
- !A [] $82 !1 FILENUMBER
- #ELSE
- #CHECK !1.RECNUM _UE
- #SET Q$ !1.RECNUM
- !A [] $82 |CI!q FILENUMBER
- #ENDIF
- !A [] $344 !2 !4 // index fields
- #IF !0>4
- !A [] $82 STRLEN !5 // number of fields
- #IF !0>5
- !A [] $349 !2 !6 // index attributes
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND INDICATE R
- #IFSAME !1 ~
- #IFDEF !2
- #ELSE
- #REPLACE !2 |!C
- #ENDIF
- INDICATE !2~ !3 !4 !5 !6 !7 !8 !9
- #ELSE
- // #CHECK !2 "AS""STATUS""$0""$1""GROUP"
- #IFDEF !1
- #CHECK !1 _X
- #ELSE
- #REPLACE !1 |!C
- #ENDIF
- INDCT$!2 !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND INDICATOR RT
- #REPLACE !1 |!C
- #IF (!0>1)
- INDICATOR !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND INHERIT_SCREEN &.
- !A [] $14B
- #ENDCOMMAND
-
- #COMMAND INKEY #LUCRE &.
- !A [] $147 !1
- #ENDCOMMAND
-
- #COMMAND INKEY$ #LUCRE &.
- !A [] $149 !1
- #ENDCOMMAND
-
- #COMMAND INPUT ULGR #LUG #ULG .
- #IFCLASS !1 "C"
- #CHECK !2 _RCLUEG _RCLUG
- !A [] $142 !1
- // INPUT !2 !3
- !A [] $140 !2 !3 |CI79
- #ELSE
- #CHECK !1 _RCLUEG
- !A [] $140 !1 !2 |CI79
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND INSERT #LGR "IN" #LGRCE "AT"""
- #IF (!0>3)
- #CHECK !5 #LGR%
- //MOVEINT !5 TO STRMARK
- !A [] $82 !5 STRMARK
- #ENDIF
- !A [] $24C !3 !1
- #ENDCOMMAND
-
- #COMMAND INTEGER TR
- // ALLOW FOR MORE INTS
- #REPLACE !1 |VI!D
- #IF (!0>1)
- INTEGER !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND IS_FILE_INCLUDED R R "TO"""
- !A [] $E0 !1 !2
- #IF !0>2
- #CHECK !4 _CUEGRL
- MOVE [FOUND] TO !4
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND KEYCHECK
- !A [] $046
- #IF !0>0
- [KEYPRESS] !1 !2 !3 !4 !5 !6 !7 !8
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND KEYPROC &R%WVF """GOSUB" WFVNSD# .
- #IFSAME !1 ON
- !A [] $82 |CI0 |VI33
- #ELSE
- #IFSAME !1 OFF
- !A [] $82 |CI9999 |VI33
- #ELSE
- #SET Y$ !a
- #IF (!0>1)
- // MOVEINT ADR(3) TO KEY LOC
- #SET Q$ (!1-100+40) // address in SYSINT
- #IFDEF !3
- !A [] $082 !3 |VI!q
- #ELSE
- !A [] $082 |CI0 |VI!q
- #FREF !3 !a
- #ENDIF
- #ELSE
- #SET Q$ (!1-100)
- #KEYPROC !q !Y
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND LEFT UGL$ "TO" #UEGRLC L#% .
- #IF !0>3
- !A [] $082 !4 STRMARK
- #ENDIF
- !A [] $241 !1 !3
- #ENDCOMMAND
-
- #COMMAND LENGTH LUG$ "TO" C#LREUG .
- !A [] $246 !1 !3
- #ENDCOMMAND
-
- #COMMAND LOCK &.
- !A [|120] $0C7
- #ENDCOMMAND
-
- #COMMAND LOOP &.
- #POP S$
- #CHECK BEGIN$!s _RVFWSNDEU
- !A [] $041 BEGIN$!s
- END$!s:
- #SET N$ !n-1
- #ENDCOMMAND
-
- #COMMAND MAKEDEF$ // make a list of symbols defined
- #IF !0>0
- #IFDEF !1
- #ELSE
- !1:
- #ENDIF
- #IF !0>1
- MAKEDEF$ !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND MAKE_FILE RU#LG U#LG U#LG .
- #IF !0>2
- !A [] $82 !3 FILENUMBER
- #ELSE
- !A [] $82 |CI0 FILENUMBER
- #ENDIF
- #IF !0>1
- !A [] $346 !1 !2
- #ELSE
- !A [] $346 !1 |CS''
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND MEMORY #LRCUGE &.
- !A [] $2CA !1
- #ENDCOMMAND
-
- #COMMAND MID UGL$ "TO" #UGRLEC #L%U #L% .
- #IF !0>4
- !A [] $082 !5 STRMARK
- #ENDIF
- !A [] $082 !4 STRLEN
- !A [] $245 !1 !3
- #ENDCOMMAND
-
- #REM The type of a move is determined at compile time, based on the
- #REM type of the destination. The move type refers to the intermediate
- #REM value to which the source will be converted.
-
- #COMMAND MOVE #LU "TO" LEURC .
- #IFCLASS !1 "G" // MOVE INDICATOR
- #CHECK !1 _VWFC
- !A [] $4020 !1 |GB[0] !3 IN$GLALL |3
- #ELSE
- // Type independent move as of 2.3
- !A [] $086 !1 !3
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND MOVEDATE &%#GULI "TO" #UCIGER .
- !A [] $084 !1 !3
- #ENDCOMMAND
-
- #COMMAND MOVEINT &%#GULD "TO" #UCSDEGR .
- !A [] $082 !1 !3
- #ENDCOMMAND
-
- #COMMAND MOVENUM ULG "TO" #UCLGRE .
- !A [] $081 !1 !3
- #ENDCOMMAND
-
- #COMMAND MOVEREAL ULG "TO" #UCLGER .
- !A [] $085 !1 !3
- #ENDCOMMAND
-
- #COMMAND MOVESTR ULG$ "TO" #UCLGR$E .
- !A [] $080 !1 !3
- #ENDCOMMAND
-
- #COMMAND MULTI$ // repeat a command for each argument (internal)
- #IF !0>1
- !1 !2
- #ENDIF
- #IF !0>2
- MULTI$ !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND MULTIBACK$ // same as above, except that arguments
- #IF !0>2 // are output in reverse order
- MULTIBACK$ !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #IF !0>1
- !1 !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND NAME R#L T
- #IFDEF !1
- #REPLACE !2 !1
- #CHECK !3 .
- #ELSE
- #IFCLASS !1.1 "W"
- AUTOPAGE !1
- #ELSE
- AUTO3$ #REPLACE !1 PAGE!f
- #ENDIF
- #IF !0>1
- NAME !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND NUMBER TR
- #NUM V$
- #REPLACE !1 |VN!v
- #IF (!0>1)
- NUMBER !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND ON R "GOTO""GOSUB""OFF" SNOBIODE
- #IFSAME !1 ERROR
- // MOVEINT ADDR to ONERROR (|VI31)
- #IFDEF !3
- !A [] $082 !3 |VI31
- #CHECK !2 "GOSUB"
- #ELSE
- !A [] $082 |CI0 |VI31
- #IFSAME !2 GOSUB
- #FREF !3 !a
- #ELSE
- #CHECK !2 "OFF"
- #ENDIF
- #ENDIF
- #ELSE
- #SET Q$ (!0-1)
- // INDICATE OK$1 AS !1 GT 0
- #IFDEF OK$1
- #ELSE
- #REPLACE OK$1 |!C
- #REPLACE OK$2 |!C
- #ENDIF
- #CHECK !1 _#ULGRS
- !A [] $4010 !1 |CI0 OK$1 |2
- // INDICATE OK$2 AS !1 LT !q
- !A [] $4000 !1 |CI!q OK$2 |2
- #SET Q$ (!a+2)
- #IFSAME !2 GOTO
- !A [OK$1 OK$2] $041 |CE(!q+!1 )
- #ELSE
- !A [OK$1 OK$2] $042 |CE(!q+!1 )
- #ENDIF
- #SET Q$ (!a+!0)
- !A [] $041 |CL!q //ERROR jump around GOTOs
- MULTI$ GOTO !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #REM OPEN FILENAME INDEX
- #REM OPEN "STRING" AS FILENAME INDEX
-
- #COMMAND OPEN
- #IFSAME !2 AS
- #IFDEF !3.RECNUM
- #ELSE
- #INCLUDE !3.FD
- #SET Q$ !3.RECNUM
- #REPLACE !3.FILE_NUMBER |CI!q
- #ENDIF
- #CHECK !3 _TR
- #CHECK !1 _#LG
- #CHECK !5 .
- #CHECK !3.RECNUM _URW#LG
- #IF (!0>3)
- #CHECK !4 _DGLOBU#
- MOVEINT !4 TO FIELDNUMBER
- !A [] $182 !3.RECNUM !1
- #ELSE
- MOVEINT |CI0 TO FIELDNUMBER
- !A [] $182 !3.RECNUM !1
- #ENDIF
- #ELSE
- #CHECK !3 .
- #IFDEF !1.RECNUM
- #ELSE
- #INCLUDE !1.FD
- #SET Q$ !1.RECNUM
- #REPLACE !1.FILE_NUMBER |CI!q
- #ENDIF
- #CHECK !1.RECNUM _URW#LG
- #IF (!0>1)
- #CHECK !2 FWSNDELG#U
- !A [] $180 !1.RECNUM !2
- #ELSE
- !A [] $180 !1.RECNUM |CI0
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #REM OS$CALL makes a system BDOS call. Only calls that can be passed
- #REM integer (not pointer) values can be used. Use at your own risk!
- #REM Format of command:
- #REM OS$CALL <FUNCTION> <ARGUMENT> {TO <RESULT>}
- #REM <FUNCTION> - BDOS function code - See O/S documentation.
- #REM <ARGUMENT> - Integer value to pass with function (optional)
- #REM <RESULT> - Result code returned by function
-
- #REM Example to set CP/M I/O byto to "NEW_IO_BYTE (integer):
- #REM OS$CALL 8 NEW_IO_BYTE
-
- #REM Example to get console status:
- #REM OS$CALL 12 0 TO CONSTAT //integer
-
- #COMMAND OS$CALL LRU%DG #L%UG "TO""" #LCGUE .
- !A [] $2C8 !1 !2
- #IF !0>3
- //MOVEINT STRMARK TO !4
- !A [] $82 STRMARK !4
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND OUTCLOSE &.
- // OUTFILE 'CON:'
- !A [] $200 |CS'CON:'
- #ENDCOMMAND
-
- #COMMAND OUTFILE &NDILU#G .
- !A [] $200 !1
- #ENDCOMMAND
-
- #COMMAND OUTPUT
- #IFSAME !1 CHANNEL
- !A [] $10A |CI1 !2
- OUTPUT !3
- #ELSE
- #CHECK !2 .
- #IF !0>0
- #CHECK !1.N _#LUGFV
- !A [] $202 !1.N
- #ELSE
- !A [] $202 |VI9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND OUTPUT_WRAP R
- #IFSAME !1 CHANNEL
- !A [] $10A |CI1 !2
- OUTPUT_WRAP !3
- #ELSE
- #CHECK !2 .
- #CHECK !1.N _#LUGFV
- !A [] $20A !1.N // Fill wrap fields and set |122 if empty
- OUTPUT !1
- [NOT |122] BLANKFORM !1
- !A [NOT |122] $20A !1.N
- [NOT |122] REPEAT
- #IFDEF NEWPAGE
- PAGECHECK !1.LINES
- [PAGEBREAK] GOSUB NEWPAGE
- #ENDIF
- OUTPUT !1
- !A [] $20A !1.N // get more from wrap fields
- [NOT |122] LOOP
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND PAD ULG$ "TO" #ULGRCE L%# .
- #IF !0>3
- !A [] $082 !4 STRMARK
- #ENDIF
- !A [] $240 !1 !3
- #ENDCOMMAND
-
- #COMMAND PAGE R%
- #IFSAME !1 SET
- #IF !0>1
- // Set attributes for future use
- #CHECK !2.N _RU#LG
- MOVE !2.N TO STRMARK
- FIND$PAGE !3 !4 !5
- FIND$PAGE !6 !7 !8
- #ELSE
- // Page an image named SET immediately
- !A [] $1C0 !1.N
- #ENDIF
- #ELSE
- #IF !0>1
- // Set attributes for use now
- #CHECK !1.N _RU#LG
- MOVE !1.N TO STRMARK
- FIND$PAGE !2 !3 !4
- FIND$PAGE !5 !6 !7
- #ENDIF
- // Put image with new attributes on screen now
- // OR, put regular image on screen now.
- !A [] $1C0 !1.N
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND PAGECHECK LG% .
- #IFDEF !1 |CI0
- !A [] $203 !1 |CI0
- #ELSE
- #CHECK !1.LINES _VFWU#LG
- !A [] $203 !1.LINES |CI0
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND POS UGRL$ "IN" #UGRL$ #L% #L% .
- !A [] $244 !1 !3
- #IF !0>3
- #CHECK !4 "TO"
- #CHECK !5 _RCEUL
- !A [] $082 STRMARK !5
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND PRINT #L
- #IF !0>2
- #IF !0>3
- #FORMAT !3 !4
- #CHECK !4 _CVFW#L
- #ENDIF
- #CHECK !2 "TO"
- #CHECK !3 _CVF#L
- #IFTYPE !3 "IND"
- !A [] $206 !1 !3
- #ELSE
- #IFTYPE !3 "R"
- !A [] $208 !1 !3
- #ELSE
- !A [] $205 !1 !3
- #ENDIF
- #ENDIF
- #ELSE
- AUTO4$ PRINT !1 TO PAGE!f !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND PRINT_WRAP #L
- #IF !0>2
- #IF !0>3
- #FORMAT !3 !4
- #CHECK !4 _CVFW#L
- #ENDIF
- #CHECK !2 "TO"
- #CHECK !3 _CVF#L
- #IFCLASS !1 "F"
- !A [] $209 |CS"DBMS:!1" !3 // assign seq file to wrap window.
- #ELSE
- !A [] $209 !1 !3
- #ENDIF
- #ELSE
- AUTO4$ PRINT_WRAP !1 TO PAGE!f !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND RE$ T // re-find all files listed by record number if multiuser
- #CHECK !1.RECNUM _RUWG
- !A [|120] $C0 !1.RECNUM |CI2 // |120 is multiuser flag.
- !A [|120 FINDERR] $047 |CI25 |CS"!1"
- #IF !0>1
- RE$ !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND READ
- #IFSAME !1 CHANNEL
- !A [] $10A |CI0 !2
- #IF !0>2
- #CHECK !3 _ULEC
- READ !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- !A [] $108 !1
- #IF !0>1
- #CHECK !2 _ULEC
- READ !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND READLN
- #IFSAME !1 CHANNEL
- #CHECK !3 _ULE
- !A [] $10A |CI0 !2
- READLN !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IF !0=0
- !A [] $104 |CS''
- #ENDIF
- #IF !0=1
- !A [] $104 !1
- #ENDIF
- #IF !0>1
- #CHECK !1 _ULE
- !A [] $108 !1
- READLN !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND READ_BLOCK
- #IFSAME !1 CHANNEL
- !A [] $10A |CI0 !2
- #IF !0>2
- #CHECK !3 _ULE
- #CHECK !4 _RU
- !A [] $109 !3 !4
- #ENDIF
- #ELSE
- #CHECK !1 _ULEC
- #CHECK !2 _RU
- !A [] $109 !1 !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND READ_DFINI LGOBDR .
- !A [] $14C !1
- #ENDCOMMAND
-
- #COMMAND REAL TR
- #REAL V$
- #REPLACE !1 |VR!v
- #IF (!0>1)
- REAL !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND REGISTRATION RLUGCE #LUGEC .
- !A [] $307 !1 !2
- #ENDCOMMAND
-
- #COMMAND RELATE CVWR#LGR
- #IFDEF !1
- !A [] $C4 !1
- #ELSE
- #CHECK !1.RECNUM _CVWLR#GU
- !A [] $C4 !1.RECNUM
- #ENDIF
- #IF !0>1
- RELATE !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND RENAMEFILE LGU "TO" R#LGU .
- !A [] $2C2 !1 !3
- #ENDCOMMAND
-
- #COMMAND REPEAT &.
- #SET N$ !N
- #PUSH !R
- #XPUSH !n $INIT
- #IFIND // INCLUDE JUMPS IF INDICATORS ON LINE
- // GOTO BEGIN$!r
- !A [] $041 |CL0
- #FREF BEGIN$!r !a
- #$ !A 0 0 0 $041 |CL0
- #FREF END$!r !a
- #ENDIF
- #$ WHILE#!r:
- #$ BEGIN$!r:
- #ENDCOMMAND
-
-
-
- #COMMAND REPLACE #LG "IN" #LGCE "WITH" #LRG
- #IFIND
- [] BEGIN
- POS !1 IN !3 TO STRMARK
- #$ [FOUND] MOVESTR (REPLACE(!1,!3,!5)) TO !3
- END
- #ELSE
- POS !1 IN !3 TO STRMARK
- [FOUND] MOVESTR (REPLACE(!1,!3,!5)) TO !3
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND REPORT T "BY""DOWN" VFW%LGR "BREAK"""
- #CHECK !1.RECNUM _UVCWGL
- INTEGER RECCOUNT
- #SET P$ 0
- // MOVEINT 20000 TO LINECOUNT // start with a full page
- !A [] $82 |CI20000 |VI10
- // MOVE 0 TO RECCOUNT
- !A [] $82 |CI0 RECCOUNT
- // BREAKINIT // init breakpoints
- !A [] $207
- // INDICATE FIRSTREC TRUE // used for subtotals
- #IFDEF FIRSTREC
- #ELSE
- #REPLACE FIRSTREC |!C
- #ENDIF
- !A [] $4028 |CI0 |CI0 FIRSTREC~
- #IFSAME !2 BY
- FIND GE !1 BY !3 // FIND first record
- #ELSE
- FIND LE !1 BY !3
- #ENDIF
- [~FOUND] GOTO END$OF$REPORT
- // CLEARSCREEN // start with a clear screen
- !A [] $144
- RPT.LOOP:// INDICATE SELECT TRUE // default for SELECT
- #IFDEF SELECT
- #ELSE
- #REPLACE SELECT |!C
- #ENDIF
- !A [] $4028 |CI0 |CI0 SELECT~
- // GOSUB RPT.SELECTION // go to user selection
- !A [] $42 |CL0
- #FREF RPT.SELECTION !a
- //[NOT SELECT] GOTO RPT.CONT // test SELECT
- !A [~ SELECT] $41 |CL0
- #FREF RPT.CONT !a
- BREAK$ !5 !6 !7 !8 !9 // set breakpoints
- #SET X$ !p // set up to break down
- [NOT FIRSTREC] BREAK$DOWN RPT.SUBTOTAL // break down for SUBTOTAL
- #SET X$ 0 // set up to break up
- // RELATE !1 // get related records
- !A [] $C4 !1.RECNUM
- BREAK$UP RPT.SUBHEADER // break up for SUBHEADER
- // INCREMENT RECCOUNT
- !A [] $083 RECCOUNT |CI0
- // GOSUB RPT.BODY // print body
- !A [] $42 |CL0
- #FREF RPT.BODY !a
- // INDICATE FIRSTREC FALSE // not first any more
- !A [] $4028 |CI0 |CI0 FIRSTREC
- RPT.CONT:
- #IFSAME !2 BY
- FIND GT !1 BY !3 // FIND next record
- #ELSE
- FIND LT !1 BY !3
- #ENDIF
- // KEYCHECK // check keyboard
- !A [] $46
- //[FOUND NOT KEYPRESS] GOTO RPT.LOOP // if ok, loop
- !A [FOUND ~ KEYPRESS] $41 RPT.LOOP
- //[KEYPRESS] GOSUB RPT.KEYPRESS // user can disable KEYPRESS
- !A [FOUND KEYPRESS] $42 |CL0
- #FREF RPT.KEYPRESS !a
- !A [FOUND ~ KEYPRESS] $41 RPT.LOOP
- #SET X$ !p // set up for break down
- END.OF.REPORT:
- [~ FIRSTREC] BREAK$DOWN RPT.SUBTOTAL $X // break down for last subtotals
- //[FIRSTREC] GOSUB RPT.TOTAL // print TOTAL
- !A [~ FIRSTREC] $42 |CL0
- #FREF RPT.TOTAL !a
- // GOTO END$OF$REPORT // GOTO end
- !A [] $41 |CL0
- #FREF END$OF$REPORT !a
- NEWPAGE:// GOSUB RPT.HEADER // new page, print HEADER
- !A [] $42 |CL0
- #FREF RPT.HEADER !a
- #SET X$ 0 // this will reprint the page headers if included //
- [NOT FIRSTREC] BREAK$PRT SUBHEADER // reprint pages
- // RETURN // end of NEWPAGE
- !A [] $43 |CI0
- RPT.SELECTION: // selection starts after REPORT
- #ENDCOMMAND
-
- #COMMAND REPORTEND . // end of REPORT
- MAKEDEF$ RPT.HEADER RPT.SELECTION RPT.BODY RPT.TOTAL
- #SET X$ 0
- BREAK$T3
- // RETURN
- !A [] $43 |CI0
- #IFDEF RPT.KEYPRESS
- #ELSE
- RPT.KEYPRESS:
- // STRING AKEY$ 1
- #IFDEF AKEY$
- #ELSE
- #STR V$ 1
- #REPLACE AKEY$ |VS!v
- #ENDIF
- // SHOWLN 'A KEY HAS BEEN PRESSED.'
- !A [] $142 |CS'A KEY HAS BEEN PRESSED.'
- !A [] $143
- // SHOW 'DO YOU WANT TO STOP THE REPORT (Y or N)? '
- !A [] $142 |CS'DO YOU WANT TO STOP THE REPORT (Y or N)? '
- // INKEY AKEY$
- !A [] $147 AKEY$
- !A [] $141 AKEY$
- // IF NOT AKEY$ IN 'Yy' RETURN RPT.LOOP
- INDCT$AS SELECT AS AKEY$ IN 'Yy'
- [~ SELECT] RETURN RPT.LOOP
- RETURN END$OF$REPORT // Necessary to pop stack
- #ENDIF
- END$OF$REPORT:
- #ENDCOMMAND
-
- #COMMAND REREAD
- #IF !0=0
- !A [|120] $0C9
- #ELSE
- !A [|120] $0C7
- RE$ !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND RETURN VFWNDE#G
- #IF !0=0
- !A [] $043 |CL0
- #ELSE
- #IFSAME !1 RETURN
- #SET Q$ (!a+2)
- !A [] $043 |CL!q // RETURN RETURN
- RETURN !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFDEF !1
- #CHECK !1 _S
- #CHECK !2 .
- !A [] $043 !1
- #ELSE
- !A [] $043 |CL0
- #FREF !1 !a
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND RIGHT UGRL$ "TO" #UGRLEC L#% .
- #IF !0>3
- !A [] $082 !4 STRLEN
- #ENDIF
- !A [] $242 !1 !3
- #ENDCOMMAND
-
- #COMMAND RUNPROGRAM_PIPE #RLGU #RLGU #RLGU .
- !A [] $2D6 !3 // Specify the object to receive MSG_INSERT
- // with the output from the pipe.
- !A [] $2D7 !1 !2 // Execute the OS command with any arguments.
- #ENDCOMMAND
-
- #COMMAND RUNPROGRAM #RLG #LGU #LGU #LGU .
- #IFSAME !1 WAIT BACKGROUND
- #IF !0>3
- #ERROR 162 TOO MANY ARGUMENTS TO RUNPROGRAM !1
- #ELSE
- #IFSAME !1 WAIT
- !A [] $2CC !2 !3
- #ELSE // BACKGROUND
- !A [] $2CD !2 !3
- #ENDIF
- #ENDIF
- #ELSE
- // Number of args is checked by type checking of command for PIPE.
- #IFSAME !1 PIPE
- #IF !0<4
- RUNPROGRAM_PIPE !2 "" !3 !4 !5 !6 !7 !8 !9
- #ELSE
- RUNPROGRAM_PIPE !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE // Plain RUNPROGRAM.
- #IF !0>2
- #ERROR 162 TOO MANY ARGUMENTS TO RUNPROGRAM
- #ELSE
- !A [] $2C0 !1 !2
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SAVE CVWR#LGE
- #IFDEF !1
- !A [] $C5 !1
- !A [] $C2 !1
- #ELSE
- #CHECK !1.RECNUM _CLVWLR#GU
- !A [] $C5 !1.RECNUM
- !A [] $C2 !1.RECNUM
- #ENDIF
- #IF !0>1
- SAVE !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SAVERECORD CVWR#LGE
- #IFDEF !1
- !A [] $C2 !1
- #ELSE
- #CHECK !1.RECNUM _CVWLR#GU
- !A [] $C2 !1.RECNUM
- #ENDIF
- #IF !0>1
- SAVERECORD !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SCREENMODE #%LGR # .
- #IFSAME !1 ON
- !A [] $148 |CE(458752) // SCREENMODE on 0x70000
- #ELSE
- #IFSAME !1 OFF
- !A [] $148 |CE(196608) // SCREENMODE off 0x30000
- #ELSE
- #CHECK !1 _U
- !A [] $148 !1
- #ENDIF
- #ENDIF
- #IF !0>1
- SCREENMODE !2
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SECTION &RT #LGU .
- #IFSAME !1 SELECTION // SELECTION is null SECTION
- #ELSE
- // RETURN // RETURN from last routine
- !A [] $43 |CI0
- RPT.!1: // label SECTION
- #IFDEF !2 // LINES REQ SPEC
- // PAGECHECK !2
- !A [] $203 !2
- // [PAGEBREAK] GOSUB NEWPAGE
- !A [PAGEBREAK] $42 NEWPAGE
- #IFDEF !1.LINES
- #SET F$ !1.N
- #SET E$ 0
- #ENDIF
- #ELSE
- #IFDEF !1.LINES // is there a page?
- // PAGECHECK !1.LINES // check for end of page
- !A [] $203 !1.LINES |CI0
- //[PAGEBREAK] GOSUB NEWPAGE // if end, GOSUB NEWPAGE
- !A [PAGEBREAK] $42 NEWPAGE
- // AUTOPAGE !1 // start default page
- #SET F$ !1.N
- #SET E$ 0
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SET_ARGUMENT_SIZE LGRBOUSD .
- !A [] $24E !1
- #ENDCOMMAND
-
- #COMMAND SET_DFPATH "TO" LGRBOUD .
- !A [] $2D0 !2
- #ENDCOMMAND
-
- #COMMAND SET_CHANNEL_POSITION LRUG$ "TO" LRUG$ .
- !A [] $10C !1 !3
- #ENDCOMMAND
-
- #COMMAND SET_OPTION #LGR . // Sets window options
- #IFCLASS !1 _C // To stay on perminantly until
- #SET Q$ !1 // Turned off with CLEAR_OPTION.
- !A [] $04A |CI!q |CI0 // SET_OPTION NO_CALC // Turn off calculate.
- #ELSE
- !A [] $04A !1 |CI0 // .
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SET_RELATE LGOBRWCV "TO" #LGOBRWCV .
- !A [] $348 !1 !3
- #ENDCOMMAND
-
- #COMMAND SET_TERMLIST LGOBDR #LGOBDIN .
- !A [] $14A !1 !2
- #ENDCOMMAND
-
- #COMMAND SETCHANGE &RCVF%G .
- !A [] $1C7 !1
- #ENDCOMMAND
-
- #COMMAND SHOW #ULRG$
- !A [] $142 !1
- #IF (!0>1)
- SHOW !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SHOWLN #LGU$
- #IF (!0>0)
- SHOW !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- !A [] $143
- #ENDCOMMAND
-
- #COMMAND SLEEP #LGURDBO .
- !A [] $02CE !1
- #ENDCOMMAND
-
- #COMMAND STATUS$ &CVW#LG "TO" #LUGRE
- #IFDEF !1
- !A [] $304 !1 !3
- #ELSE
- #CHECK !1.RECNUM _CVWLR#GU
- !A [] $304 !1.RECNUM !3
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND STOP &.
- !A [] $144
- !A [] $040
- #ENDCOMMAND
-
- #COMMAND STRING TR E#L%
- #IF (!0>1)
- #IFDEF !2
- #CHECK !2 _VSWDF
- #STR V$ !2
- #REPLACE !1 |VS!v
- #IF (!0>2)
- STRING !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- #STR V$ 80
- #REPLACE !1 |VS!v
- STRING !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- #STR V$ 80
- #REPLACE !1 |VS!v
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SUBTOTAL RFVC#LSD
- PRINT !1% !2 !3 !4 !5
- !A [] $082 |CI0 !1%
- #ENDCOMMAND
-
- #REM Get system date, hour, min, seconds.
- #REM WILL NOT WORK UNDER CPM 2.2
-
- #COMMAND SYSDATE ERCUGL #ECUGL #ECUGL #ECUGL . // SYSDATE DATE HR MIN SECOND
- !A [] $2C9 !1
- #IF !0>1
- //MOVE STRLEN TO !2
- !A [] $82 STRLEN !2
- #ENDIF
- #IF !0>2
- //MOVE STRMARK TO !3
- !A [] $82 STRMARK !3
- #IF !0>3
- //MOVE |VI37 TO !4
- !A [] $82 |VI37 !4
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SYSTEM &.
- !A [] $2C7
- #ENDCOMMAND
-
- #COMMAND TRIM LUG$ "TO" C#ELRUG . // remove pre- and trailing spaces
- !A [] $24B !1 !3
- #ENDCOMMAND
-
- #COMMAND UNLOCK &.
- !A [|120] $0C8
- #ENDCOMMAND
-
- #COMMAND UNTIL R L L L .
- #POP S$
- IFNOT_ !1 !2 !3 !4 GOTO BEGIN$!s
- END$!s:
- #SET N$ !n-1
- #ENDCOMMAND
-
- #COMMAND UPPERCASE &C#LUGRND$ "TO""" C#LUG$END .
- #IF !0>1
- !A [] $249 !1 !3
- #ELSE
- !A [] $249 !1 !1
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND WHILE R L L L .
- #SET N$ !N
- #PUSH !R
- #XPUSH !n $INIT
- // GOTO WHILE$!r
- !A [] $041 |CL0
- #FREF WHILE$!r !a
- #$ !A 0 0 0 $041 |CL!a
- #FREF END$!r !a
- #$ WHILE$!r:
- #$ BEGIN$!r:
- #$ IFNOT_ !1 !2 !3 !4 GOTO END$!r
- #ENDCOMMAND
-
- #COMMAND WRITE$STR #ULRG$
- !A [] $106 !1
- #IF (!0>1)
- WRITE$STR !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND WRITE
- #IFSAME !1 CHANNEL
- !A [] $10A |CI1 !2
- #IF !0>2
- WRITE$STR !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- #IF (!0>0)
- WRITE$STR !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND WRITELN
- #IFSAME !1 CHANNEL
- !A [] $10A |CI1 !2
- #IF !0>2
- WRITE$STR !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- #IF (!0>0)
- WRITE$STR !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- !A [] $107
- #ENDCOMMAND
-
- #COMMAND ZEROFILE $RT .
- #IFDEF !1.RECNUM
- #SET Q$ !1.RECNUM
- !A [] $308 |CI!q
- #ELSE
- #CHECK !1 _SG#L
- !A [] $308 !1
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SOUND &_L#RUG .
- !A [] $395 !1 // .
- #ENDCOMMAND
-
- #COMMAND GRAPHIC "ON""OFF" GDLOB# GNDIELOB# .
- #IFSAME !1 ON
- !A [] $382 !2 !3 //cmdgraphon mode device
- #ELSE
- !A [] $383 !2 |CN0 //cmdgraphoff
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND GRXY &GDLOB# RGDLOB# .
- !A [] $384 !1 !2 //cmdgraphxy row column
- #ENDCOMMAND
-
- #COMMAND GET_GRXY GDLOBCE R#GDLOBCE .
- !A [] $38C !1 !2 //cmdgraphgetpos row column
- #ENDCOMMAND
-
- #COMMAND GET_CHANNEL_POSITION LRUG$ "TO" LRUG$EC .
- !A [] $10B !1 !3
- #ENDCOMMAND
-
- #COMMAND CIRCLE R#GDLOB R#GDLOB R#GDLOB #GDLOB .
- #IF !0>3
- SCREENMODE !4
- #ENDIF
- !A [] $384 !1 !2 //cmdgraphxy row column
- #IF !0>3
- !A [] $388 !3 //cmdgraphfcircle radius
- #ELSE
- !A [] $390 !3 //cmdgraphcircle radius
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BOX R#GDLOB R#GDLOB R#GDLOB R#GDLOB #GDLOB .
- #IF !0>4
- SCREENMODE !5
- #ENDIF
- !A [] $381 !1 !2 //cmdgraphtmp row1 column1
- !A [] $387 !3 !4 //cmdgraphbox row2 column2
- #ENDCOMMAND
-
- #COMMAND BAR R#GDLOB R#GDLOB R#GDLOB R#GDLOB #GDLOB .
- #IF !0>4
- SCREENMODE !5
- #ENDIF
- !A [] $381 !1 !2 //cmdgraphtmp row1 column1
- !A [] $391 !3 !4 //cmdgraphbox row2 column2
- #ENDCOMMAND
-
- #COMMAND LINE R#GDLOB R#GDLOB #GDLOB .
- #IF !0>2
- SCREENMODE !3
- #ENDIF
- !A [] $385 !1 !2 //cmdgraphline end_row end_column
- #ENDCOMMAND
-
- #COMMAND PLOT R#GDLOB R#GDLOB #GDLOB .
- #IF !0>2
- SCREENMODE !3
- #ENDIF
- !A [] $386 !1 !2 //cmdgraphplot row column
- #ENDCOMMAND
-
- #COMMAND PIE R#GDLOB R#GDLOB R#GDLOB R#GDLOB #GDLOB .
- #IF !0>4
- SCREENMODE !5
- #ENDIF
- !A [] $381 !1 !2 //cmdgraphtmp radius arc1
- !A [] $389 !3 !4 //cmdgraphpie arc2 fill_color
- #ENDCOMMAND
-
- #COMMAND ARC R#GDLOB R#GDLOB R#GDLOB #GDLOB .
- #IF !0>3
- SCREENMODE !4
- #ENDIF
- !A [] $381 !1 !2 //cmdgraphtmp radius arc1
- !A [] $38A !3 //cmdgrapharc arc2
- #ENDCOMMAND
-
- #COMMAND ELLIPSE R#GDLOB R#GDLOB #GDLOB .
- #IF !0>2
- SCREENMODE !3
- #ENDIF
- !A [] $38B !1 !2 //cmdgraphellipse RADIUS ASPECT
- #ENDCOMMAND
-
- #COMMAND FLOOD &R#GDLOB .
- !A [] $3A0 !1 //cmdgraphflood color
- #ENDCOMMAND
-
- #COMMAND PALETTE GDLOB R#GDLOB .
- !A [] $38E !1 !2 //cmdgraphpalette background palette
- #ENDCOMMAND
-
- #COMMAND GR_PRINT GDLOBI .
- !A [] $392 !1
- #ENDCOMMAND
-
- #COMMAND SET_LINE_STYLE &GDLOB# GDLOB# .
- !A [] $3A1 !1 !2 //cmdsetlnstyle STYLE WIDTH
- #ENDCOMMAND
-
- #COMMAND SET_TEXT GDLOB R#GDLOB .
- !A [] $394 !1 !2 //cmdsettext SIZE ROTATION
- #ENDCOMMAND
-
- #COMMAND DISPLAY_GRAPHIC &R#GDLOBI .
- !A [] $397 !1
- #ENDCOMMAND
-
- #COMMAND SAVE_GRAPHIC &R#GDLOBI .
- !A [] $396 !1
- #ENDCOMMAND
-
- #COMMAND SAVE_CUT #GDLOBNIE #GDLOB #GDLOB #GDLOB R#GDLOB
- #IFSAME !1 DBMS
- SAVE_CUT |CS"DBMS:!2" !3 !4 !5 !6
- #ELSE
- GRXY !2 !3 //Start x and y
- !A [] $381 !4 !5 //End x and y
- !A [] $3A3 !1
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND DISPLAY_CUT #GDLOBNI #GDLOB R#GDLOB #GDLOB
- #IFSAME !1 DBMS
- DISPLAY_CUT |CS"DBMS:!2" !3 !4 !5 !6
- #ELSE
- !A [] $381 !2 !3 //Display at x and y
- !A [] $3A2 !1 !4 //cmdgetcut CUT_NAME MODE
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SETWORLD GDLOB #GDLOB #GDLOB R#GDLOB .
- !A [] $381 !1 !2 //cmdgraphtmp LOWER LEFT
- !A [] $398 !3 !4 //setworld UPPER RIGHT
- #ENDCOMMAND
-
- #COMMAND GETDRANGE &E#GDLOBC ER#GDLOBC .
- !A [] $399 !1 !2
- #ENDCOMMAND
-
- #COMMAND GRAPH_INIT &.
- !A [] $39A
- #ENDCOMMAND
-
- #COMMAND GRAPH_VALUE GDLOB R#GDLOB .
- !A [] $39B !1 !2
- #ENDCOMMAND
-
- #COMMAND GRAPH_SUM GDLOBC R#GDLOBC .
- !A [] $39C !1 !2
- #ENDCOMMAND
-
- #COMMAND GRAPH_STAT &E#GDLOBC ER#GDLOBC .
- !A [] $39D !1 !2
- #ENDCOMMAND
-
- #COMMAND GRAPH_GETFIRST #GDLOBIENC ER#GDLOBC .
- !A [] $39E !1 !2
- #ENDCOMMAND
-
- #COMMAND GRAPH_GETNEXT #GDLOBCIENC ER#GDLOBC .
- !A [] $39F !1 !2
- #ENDCOMMAND
-
- #COMMAND ASPECT R#GDLOBCE #GDLOB .
- !A [] $3A5 !1 !2
- #ENDCOMMAND
-
- #COMMAND CHART_INIT .
- #IFDEF GRAPH$NUM
- #ELSE
- string graph$label graph$title graph$ytitle graph$xtitle
- real total$value min$value max$value value$
- real radius mid$radian last$radian radian value$step
- integer text$size text$center graph$num num$values bar$width bar$space
- integer lower$left$x lower$left$y upper$right$x upper$right$y axis$base
- integer last$x last$y dev$x dev$y label$color chart$color axis$color gr$tmp
- indicator bar$chart line$chart pie$chart
- move 1 to label$color
- move 1 to chart$color
- move 1 to axis$color
- #ENDIF
- graph_init
- indicate bottom$label true
- #ENDCOMMAND
-
- #COMMAND CHART "BAR""LINE""PIE"
- #IFSAME !1 BAR
- indicate bar$chart true
- #ENDIF
- #IFSAME !1 LINE
- indicate line$chart true
- #ENDIF
- #IFSAME !1 PIE
- indicate pie$chart true
- #ENDIF
- #IF (!0>1)
- trim !2 to graph$title
- #ELSE
- move '' to graph$title
- #ENDIF
- #IFSAME !1 PIE
- #ELSE
- #IF (!0>2)
- trim !3 to graph$ytitle
- #ELSE
- move '' to graph$ytitle
- #ENDIF
- #ENDIF
- #IFSAME !1 PIE
- #ELSE
- #IF (!0>3)
- trim !4 to graph$xtitle
- #ELSE
- move '' to graph$xtitle
- #ENDIF
- #ENDIF
- move |VI34 to |VI35
- gosub do$chart
- screenmode |VI35
- #IFSAME !1 BAR
- indicate bar$chart false
- #ENDIF
- #IFSAME !1 LINE
- indicate line$chart false
- #ENDIF
- #IFSAME !1 PIE
- indicate pie$chart false
- #ENDIF
-
- #IFDEF DO$CHART
- #ELSE
- goto do$chart$end
-
- do$chart:
- graph_sum total$value num$values
- graph_stat min$value max$value
- gosub sc$init
- gosub calc$value
- gosub draw$axis
- indicate first$value true
- for graph$num from 1 to num$values
- [first$value] graph_getfirst graph$label value$
- [~first$value] graph_getnext graph$label value$
- trim graph$label to graph$label
- [bar$chart] gosub graph$bar
- [line$chart] gosub graph$line
- [pie$chart] gosub graph$pie
- indicate first$value false
- loop
- return
-
- graph$bar:
- move (axis$base+((value$/(max$value-min$value))*800)) to upper$right$y
- move (lower$left$x+bar$width) to upper$right$x
- bar lower$left$x lower$left$y upper$right$x upper$right$y chart$color
- [~bottom$label] grxy lower$left$x (upper$right$y-50)
- [ bottom$label] grxy lower$left$x 50
- screenmode label$color
- show graph$label
- move (lower$left$x+bar$width+bar$space) to lower$left$x
- return
-
- graph$line:
- move (axis$base+((value$/(max$value-min$value))*800)) to lower$left$y
- grxy lower$left$x lower$left$y
- [~first$value] line last$x last$y chart$color
- circle lower$left$x lower$left$y 5 axis$color
- move lower$left$x to last$x
- move lower$left$y to last$y
- [~bottom$label] grxy lower$left$x (lower$left$y-50)
- [ bottom$label] grxy lower$left$x 50
- screenmode label$color
- show graph$label
- move (lower$left$x+bar$width+bar$space) to lower$left$x
- return
-
- graph$pie:
- move ((6.28318 * (value$/total$value)) + last$radian) to radian
- move ((radian+last$radian)/2) to mid$radian
- move (cos(mid$radian)*30+500) to last$x
- move (sin(mid$radian)*30) to last$y
- move (last$y + (last$y*dev$y/dev$x) + 500) to last$y
- grxy last$x last$y
- pie radius last$radian radian chart$color axis$color
- move radian to last$radian
- move (cos(mid$radian)*(radius+50)+500) to last$x
- move (sin(mid$radian)*(radius+50)) to last$y
- move (last$y + (last$y*dev$y/dev$x) + 500) to last$y
- if last$x lt 500 ;
- move (0 max (last$x - (length(graph$label)*8000/dev$x))) to last$x
- grxy last$x last$y
- screenmode label$color
- show graph$label
- return
-
- sc$init:
- setworld 0 0 1000 1000
- clearscreen
- return
-
- calc$value:
- move (max$value*1.05) to max$value
- move (min$value*1.05) to min$value
- if min$value gt 0 move 0 to min$value // zero base pos ranges
- if max$value lt 0 move 0 to max$value
-
- real scaler$
- integer increments$
- move (10^(integer(log(max$value max -min$value)/log(10)))) to scaler$
- move (max$value/scaler$+1) to increments$
- move (scaler$*increments$) to max$value
- if min$value lt 0 begin
- move (scaler$*integer(min$value/scaler$-1)) to min$value
- move (increments$-integer(min$value/scaler$)) to increments$
- end
- if increments$ le 6 move (increments$*2) to increments$
-
- move ((((-min$value max min$value)/(max$value-min$value)) ;
- * 800)+100) to axis$base
- move axis$base to lower$left$y
- return
-
- center$title:
- move 3 to text$size
- center$title2:
- repeat
- move (text$size-1) to text$size
- move (((gr$tmp-((length(graph$label)+1)* ;
- (text$size*8)))/2)*1000/gr$tmp) to text$center
- until text$center ge 0
- return
-
- draw$axis:
- getdrange dev$x dev$y
- screenmode label$color
- if (length(graph$title)) gt 0 begin
- move dev$x to gr$tmp
- move graph$title to graph$label
- gosub center$title
- if (text$size*8000/dev$y) gt 50 gosub center$title2
- set_text text$size 0
- grxy text$center 950
- show graph$title
- end
-
- [pie$chart] begin
- indicate first$value true
- move 0 to gr$tmp
- for graph$num from 1 to num$values
- [first$value] graph_getfirst graph$label value$
- [~first$value] graph_getnext graph$label value$
- trim graph$label to graph$label
- move (gr$tmp max length(graph$label)) to gr$tmp
- indicate first$value false
- loop
- set_text 1 0
- move 0 to last$radian
- move ((50 max ((dev$x*0.4)-(gr$tmp*8)*1000/dev$x)) min 190) to radius
- return
- end
-
- if (length(graph$xtitle)) gt 0 begin
- move graph$xtitle to graph$label
- gosub center$title
- set_text text$size 0
- move (text$size*8000.0/dev$y) to gr$tmp
- // move ((text$size+1)*8000.0/dev$y) to gr$tmp
- grxy text$center gr$tmp
- show graph$xtitle
- setworld 0 (-gr$tmp) 1000 1000
- end
-
- if (length(graph$ytitle)) gt 0 begin
- move dev$y to gr$tmp
- move graph$ytitle to graph$label
- gosub center$title
- set_text text$size 1
- grxy 0 text$center
- show graph$ytitle
- end
- else move 0 to text$size
-
- set_text 1 0
- screenmode label$color
-
- move min$value to value$
- integer indent$
- move 0 to indent$
- move ((max$value-min$value)/increments$) to value$step
- while value$ le max$value
- move (axis$base+((value$/(max$value-min$value))*800)) ;
- to upper$right$y
- grxy (((text$size*8)+2)*1000/dev$x) upper$right$y
- show value$
- move (indent$ max length(value$)) to indent$
- move (value$+value$step) to value$
- end
- move ((((indent$+text$size)*8)+12)*1000/dev$x) to indent$
- move (real(900-indent$)/num$values * 0.8) to bar$width
- move (real(900-indent$)/num$values * 0.2) to bar$space
- move (indent$+bar$space) to lower$left$x
- bar (indent$-10) 90 indent$ 900 axis$color
- bar indent$ 90 900 100 axis$color
- grxy indent$ axis$base
- line 900 axis$base
- return
-
- do$chart$end:
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // INITIALIZE_INTERFACE
- //
- // Parameters:
- // None.
- //
- // Description:
- // INITIALIZE_INTERFACE initializes the object resource information.
- // It should be executed before any other object related operations
- // are performed.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND INITIALIZE_INTERFACE &.
- // B$ obj_flag bit 0 = in_object, bit 1 = in_class
- // X.AGG agg_count(class) defined count of objects in class
-
- // ZA$ procedure/function label for procedures and functions
- // ZB$ current_dep the current dependant number to assign
- // ZC$ current_message the current flex message number
- // ZD$ group_size size of the current item group
- // ZE$ group_id unique id of current item group
- // ZF$ super_class_count count of objects in superclass
- // ZG$ temp temp counter (items, functions etc)
- // ZH$ access_method the current access method identifyer
- // ZI$ sub_obj_count the sub object counter
- // ZJ$ current_object the current_object number
-
- #SET ZC$ $400 // begin up high, past predefinded
- #SET ZH$ $4001 // begin access methods here
- #SET ZJ$ 2 // desktop and clipboard are first
-
- // Define object class types.
- #REPLACE U_DESKTOP |CI1 // a desktop class object
- #REPLACE U_MESSAGE |CI2 // a message class object
- #REPLACE U_MENU |CI3 // a menu class object
- #REPLACE U_EDIT |CI4 // a edit class object
- #REPLACE U_SCROLLB |CI5 // a scroll bar class object
- #REPLACE U_LIST |CI6 // a list class object
- #REPLACE U_BUTTON |CI7 // a button class object
- #REPLACE U_CHECKBOX |CI8 // a check box class object
- #REPLACE U_CHECKLIST |CI9 // a check box class object
- #REPLACE U_FORM |CI10 // a form class object
- #REPLACE U_FORMLIST |CI11 // a form class object
- #REPLACE U_CLIENT |CI12 // a client area class object
- #REPLACE U_TITLE |CI13 // a title bar class object
- #REPLACE U_ACTION_BAR |CI14 // a action bar class object
- #REPLACE U_WARNING_MSG |CI15 // a warning message class object
- #REPLACE U_CRIT_MSG |CI16 // a critical error class object
- #REPLACE U_ERROR |CI17 // a standard error class object
- #REPLACE U_HELP |CI18 // a help class object
- #REPLACE U_ARRAY |CI19 // a array class of mixed scalars
- #REPLACE U_TRACE |CI20 // a trace class object
- #REPLACE U_ENTRY |CI21 // a data entry class object
- #REPLACE U_ENTRYLIST |CI22 // a data entry class object
- #REPLACE U_DIALOG |CI23 // a DIALOG area class object
- #REPLACE U_RADIO |CI24 // a radio button area
- #REPLACE U_RADIOLIST |CI25 // a radio list area
- #REPLACE U_VCONSOLE |CI26 // a virtual console area
- #REPLACE U_CLIPBOARD |CI27 // the clipboard handler
-
- // Base data structures
- #REPLACE MESSAGE_CLASS |CI0
- #REPLACE MENU_CLASS |CI1
- #REPLACE LIST_CLASS |CI2
- #REPLACE EDIT_CLASS |CI3
- #REPLACE SCROLL_CLASS |CI4
- #REPLACE ARRAY_CLASS |CI5
-
-
- // Define physical key names
- #REPLACE KEY_ALT |VI$8200
- #REPLACE KEY_SHIFT |VI$8400
- #REPLACE KEY_CTRL |VI$8800
-
- #REPLACE KEY_ENTER |VI$9001
- #REPLACE KEY_TAB |VI$9002
- #REPLACE KEY_BACK_SPACE |VI$9003
- #REPLACE KEY_ESCAPE |VI$9004
- #REPLACE KEY_UP_ARROW |VI$9005
- #REPLACE KEY_DOWN_ARROW |VI$9006
- #REPLACE KEY_LEFT_ARROW |VI$9007
- #REPLACE KEY_RIGHT_ARROW |VI$9008
- #REPLACE KEY_HOME |VI$9009
- #REPLACE KEY_END |VI$900A
- #REPLACE KEY_PGUP |VI$900B
- #REPLACE KEY_PGDN |VI$900C
- #REPLACE KEY_INSERT |VI$900D
- #REPLACE KEY_DELETE |VI$900E
- #REPLACE KEY_F1 |VI$9010
- #REPLACE KEY_F2 |VI$9011
- #REPLACE KEY_F3 |VI$9012
- #REPLACE KEY_F4 |VI$9013
- #REPLACE KEY_F5 |VI$9014
- #REPLACE KEY_F6 |VI$9015
- #REPLACE KEY_F7 |VI$9016
- #REPLACE KEY_F8 |VI$9017
- #REPLACE KEY_F9 |VI$9018
- #REPLACE KEY_F10 |VI$9019
- #REPLACE KEY_F11 |VI$901A
- #REPLACE KEY_F12 |VI$901B
- #REPLACE KEY_A |VI$8041
- #REPLACE KEY_B |VI$8042
- #REPLACE KEY_C |VI$8043
- #REPLACE KEY_D |VI$8044
- #REPLACE KEY_E |VI$8045
- #REPLACE KEY_F |VI$8046
- #REPLACE KEY_G |VI$8047
- #REPLACE KEY_H |VI$8048
- #REPLACE KEY_I |VI$8049
- #REPLACE KEY_J |VI$804A
- #REPLACE KEY_K |VI$804B
- #REPLACE KEY_L |VI$804C
- #REPLACE KEY_M |VI$804D
- #REPLACE KEY_N |VI$804E
- #REPLACE KEY_O |VI$804F
- #REPLACE KEY_P |VI$8050
- #REPLACE KEY_Q |VI$8051
- #REPLACE KEY_R |VI$8052
- #REPLACE KEY_S |VI$8053
- #REPLACE KEY_T |VI$8054
- #REPLACE KEY_U |VI$8055
- #REPLACE KEY_V |VI$8056
- #REPLACE KEY_W |VI$8057
- #REPLACE KEY_X |VI$8058
- #REPLACE KEY_Y |VI$8059
- #REPLACE KEY_Z |VI$805A
- #REPLACE KEY_SPACE |VI$8020
- #REPLACE KSPACE |VI$8020
- #REPLACE KEY_0 |VI$8030
- #REPLACE KEY_1 |VI$8031
- #REPLACE KEY_2 |VI$8032
- #REPLACE KEY_3 |VI$8033
- #REPLACE KEY_4 |VI$8034
- #REPLACE KEY_5 |VI$8035
- #REPLACE KEY_6 |VI$8036
- #REPLACE KEY_7 |VI$8037
- #REPLACE KEY_8 |VI$8038
- #REPLACE KEY_9 |VI$8039
- #REPLACE KEY_PLUS |VI$802B
- #REPLACE KEY_MINUS |VI$802D
- #REPLACE KEY_EQUAL |VI$803D
- #REPLACE KEY_BACK_SLASH |VI$805C
- #REPLACE KEY_SLASH |VI$802F
-
- // Define Accelerator key names.
- #REPLACE KHELP |CI274
- #REPLACE KSAVE_RECORD |CI265
- #REPLACE KDELETE_RECORD |CI266
- #REPLACE KEXIT_FUNCTION |CI281
- #REPLACE KEXIT_APPLICATION |CI282
- #REPLACE KPROMPT |CI283
- #REPLACE KPRINT_SCREEN |CI258
- #REPLACE KCLEAR |CI269
- #REPLACE KREFRESH_SCREEN |CI284
- #REPLACE KSWITCH |CI285
- #REPLACE KSWITCH_BACK |CI286
- #REPLACE KFIND |CI263
- #REPLACE KFIND_PREVIOUS |CI270
- #REPLACE KFIND_NEXT |CI271
- #REPLACE KSUPER_FIND |CI264
- #REPLACE KSUPER_FIND_PREVIOUS |CI287
- #REPLACE KSUPER_FIND_NEXT |CI288
- #REPLACE KACTION_BAR |CI289
- #REPLACE KENTER |CI257
- #REPLACE KUPARROW |CI272
- #REPLACE KDOWNARROW |CI273
- #REPLACE KLEFTARROW |CI260
- #REPLACE KRIGHTARROW |CI261
- #REPLACE KSCROLL_BACK |CI290
- #REPLACE KSCROLL_FORWARD |CI291
- #REPLACE KSCROLL_LEFT |CI292
- #REPLACE KSCROLL_RIGHT |CI293
- #REPLACE KBEGIN_OF_LINE |CI294
- #REPLACE KEND_OF_LINE |CI295
- #REPLACE KNEXT_ITEM |CI296
- #REPLACE KPREVIOUS_ITEM |CI262
- #REPLACE KDELETE_CHARACTER |CI277
- #REPLACE KERASE_END_OF_LINE |CI297
- #REPLACE KBACK_SPACE |CI278
- #REPLACE KCANCEL |CI259
- #REPLACE KBEGIN_OF_PANEL |CI298
- #REPLACE KEND_OF_PANEL |CI299
- #REPLACE KBEGIN_OF_DATA |CI300
- #REPLACE KEND_OF_DATA |CI301
- #REPLACE KWORD_LEFT |CI302
- #REPLACE KWORD_RIGHT |CI303
- #REPLACE KINSERT |CI276
- #REPLACE KCLEAR_AND_RETURN |CI279
- #REPLACE KADD_MODE |CI304
- #REPLACE KPASTE |CI305
- #REPLACE KCOPY |CI306
- #REPLACE KCUT |CI307
- #REPLACE KCLEAR_ALL |CI308
- #REPLACE KMOUSE |CI309
- #REPLACE KMARK |CI310
- #REPLACE KZOOM |CI311
- #REPLACE KCLOSE_PANEL |CI312
-
- //OLD KEY DEFINITIONS
- #REPLACE KCALCULATE |CI267
- #REPLACE KUSER |CI268
- #REPLACE KUSER2 |CI275
- #REPLACE KCLEOW |CI280
-
- // Built in UI messages
- #REPLACE GET_ACTIVE_STATE |CI$0001
- #REPLACE GET_PARENT |CI$0002
- #REPLACE SET_PARENT |CI$0003
- #REPLACE MSG_PAGE_OBJECT |CI$0004
- #REPLACE GET_LOCATION |CI$0005
- #REPLACE SET_LOCATION |CI$0006
- #REPLACE GET_ENTRY_MSG |CI$0007
- #REPLACE SET_ENTRY_MSG |CI$0008
- #REPLACE GET_EXIT_MSG |CI$0009
- #REPLACE SET_EXIT_MSG |CI$000A
- #REPLACE SET_SIZE |CI$000B
- #REPLACE GET_SIZE |CI$000C
- #REPLACE GET_CURRENT_ITEM |CI$000D
- #REPLACE SET_CURRENT_ITEM |CI$000E
- #REPLACE GET_TOP_ITEM |CI$000F
- #REPLACE SET_TOP_ITEM |CI$0010
- #REPLACE GET_VALUE |CI$0011
- #REPLACE SET_VALUE |CI$0012
- #REPLACE GET_MESSAGE |CI$0013
- #REPLACE SET_MESSAGE |CI$0014
- #REPLACE GET_ITEM_COUNT |CI$0015
- #REPLACE SET_ITEM_COUNT |CI$0016
- #REPLACE GET_SELECT_COUNT |CI$0017
- #REPLACE SET_SELECT_COUNT |CI$0018
- #REPLACE GET_MULTI_SELECT_MSG |CI$0019
- #REPLACE SET_MULTI_SELECT_MSG |CI$001A
- #REPLACE SET_FOCUS_MODE |CI$001B
- #REPLACE GET_FOCUS_MODE |CI$001C
- #REPLACE SET_VISIBLE_STATE |CI$001D
- #REPLACE GET_VISIBLE_STATE |CI$001E
- #REPLACE SET_SELECT_MODE |CI$001F
- #REPLACE GET_SELECT_MODE |CI$0020
- #REPLACE SET_WRAP_STATE |CI$0021
- #REPLACE GET_WRAP_STATE |CI$0022
- #REPLACE SET_SHADOW_STATE |CI$0023
- #REPLACE GET_SHADOW_STATE |CI$0024
- #REPLACE GET_SELECT_STATE |CI$0025
- #REPLACE SET_SELECT_STATE |CI$0026
- #REPLACE SET_AUTOCLEAR_STATE |CI$0027
- #REPLACE GET_AUTOCLEAR_STATE |CI$0028
- #REPLACE SET_CENTER_STATE |CI$0029
- #REPLACE GET_CENTER_STATE |CI$002A
- #REPLACE SET_CHECKBOX_ITEM_STATE |CI$002B
- #REPLACE GET_CHECKBOX_ITEM_STATE |CI$002C
- #REPLACE MSG_STOP_UI |CI$002D
- #REPLACE MSG_ERROR |CI$002E
- #REPLACE MSG_HELP |CI$002F
- #REPLACE MSG_BELL |CI$0030
- #REPLACE MSG_PAINT |CI$0031
- #REPLACE MSG_NONE |CI$0032
- #REPLACE MSG_EXIT |CI$0033
- #REPLACE MSG_NEXT |CI$0034
- #REPLACE MSG_PULL_RIGHT |CI$0035
- #REPLACE MSG_PULL_LEFT |CI$0036
- #REPLACE MSG_KEY |CI$0037
- #REPLACE MSG_INSERT_ITEM |CI$0038
- #REPLACE MSG_ADD_ITEM |CI$0039
- #REPLACE MSG_DELETE_ITEM |CI$003A
- #REPLACE MSG_DELETE_DATA |CI$003B
- #REPLACE MSG_SORT_ITEMS |CI$003C
- #REPLACE GET_ITEM_MATCHING |CI$003D
- #REPLACE GET_AUX_VALUE |CI$003E
- #REPLACE SET_AUX_VALUE |CI$003F
- #REPLACE GET_SEARCH_MODE |CI$0040
- #REPLACE SET_SEARCH_MODE |CI$0041
- #REPLACE GET_INVERSE_STATE |CI$0042
- #REPLACE SET_INVERSE_STATE |CI$0043
- #REPLACE MSG_SCROLL |CI$0044
- #REPLACE SET_CLASS_COLORS |CI$0045
- #REPLACE GET_HORIZONTAL_INCREMENT |CI$0046
- #REPLACE SET_HORIZONTAL_INCREMENT |CI$0047
- #REPLACE MSG_UP |CI$0048
- #REPLACE MSG_DOWN |CI$0049
- #REPLACE MSG_RIGHT |CI$004A
- #REPLACE MSG_LEFT |CI$004B
- #REPLACE MSG_BEGINNING_OF_DATA |CI$004C
- #REPLACE MSG_END_OF_DATA |CI$004D
- #REPLACE MSG_BEGINNING_OF_PANEL |CI$004E
- #REPLACE MSG_END_OF_PANEL |CI$004F
- #REPLACE MSG_BEGINNING_OF_LINE |CI$0050
- #REPLACE MSG_END_OF_LINE |CI$0051
- #REPLACE MSG_PAGE_UP |CI$0052
- #REPLACE MSG_PAGE_DOWN |CI$0053
- #REPLACE SET_INSERT_MODE |CI$0054
- #REPLACE MSG_GOTO_LINE |CI$0055
- #REPLACE MSG_MOVE_ABSOLUTE |CI$0056
- #REPLACE MSG_MOVE_RELATIVE |CI$0057
- #REPLACE MSG_MARK_ON |CI$0058
- #REPLACE MSG_PASTE |CI$0059
- #REPLACE MSG_CUT |CI$005A
- #REPLACE MSG_COPY |CI$005B
- #REPLACE MSG_INSERT |CI$005C
- #REPLACE MSG_DELETE_CHAR |CI$005D
- #REPLACE MSG_DELETE_LINE |CI$005E
- #REPLACE MSG_DELETE_TO_EOL |CI$005F
- #REPLACE MSG_FIND |CI$0060
- #REPLACE GET_FIND |CI$0060 //dup
- #REPLACE MSG_REPLACE |CI$0061
- #REPLACE GET_REPLACE |CI$0061 //dup
- #REPLACE MSG_PRINT |CI$0062
- #REPLACE GET_MARK |CI$0063
- #REPLACE GET_CHANGED_STATE |CI$0064
- #REPLACE SET_CHANGED_STATE |CI$0065
- #REPLACE SET_RIGHT_MARGIN |CI$0066
- #REPLACE GET_LINE_COUNT |CI$0067
- #REPLACE SET_STATUS_LINE_STATE |CI$0068
- #REPLACE SET_BLOCK_MOUSE_STATE |CI$0069
- #REPLACE GET_BLOCK_MOUSE_STATE |CI$006A
- #REPLACE SET_COLUMN_MODE |CI$006B
- #REPLACE GET_COLUMN_MODE |CI$006C
- #REPLACE SET_FILE_NAME |CI$006D
- #REPLACE GET_FILE_NAME |CI$006E
- #REPLACE MSG_DEFAULT_KEY |CI$006F
- #REPLACE SET_DYNAMIC_UPDATE_STATE |CI$0070
- #REPLACE GET_FOCUS |CI$0071
- #REPLACE MSG_REFRESH_SCREEN |CI$0072
- #REPLACE MSG_PREVIOUS |CI$0073
- #REPLACE SET_CHECK_STRING |CI$0074
- #REPLACE MSG_ACTIVATE |CI$0075
- #REPLACE MSG_ACTIVATE_GROUP |CI$0076
- #REPLACE MSG_DEACTIVATE |CI$0077
- #REPLACE MSG_DEACTIVATE_GROUP |CI$0078
- #REPLACE SET_LOCAL_ROTATE_STATE |CI$0079
- #REPLACE GET_LOCAL_ROTATE_STATE |CI$007A
- #REPLACE SET_CLIENT_AREA_STATE |CI$007B
- #REPLACE GET_CLIENT_AREA_STATE |CI$007C
- #REPLACE GET_READ_ONLY_STATE |CI$007D
- #REPLACE SET_READ_ONLY_STATE |CI$007E
- #REPLACE SET_LINE_WIDTH |CI$007F
- #REPLACE GET_LINE_SIZE |CI$0080
- #REPLACE GET_DISPLAY_SIZE |CI$0081
- #REPLACE SET_SCROLL_BAR_VISIBLE_STATE |CI$0082
- #REPLACE SET_ORIGIN |CI$0083
- #REPLACE GET_ORIGIN |CI$0084
- #REPLACE GET_POSITION |CI$0085
- #REPLACE MSG_TRUE |CI$0086
- #REPLACE MSG_FALSE |CI$0087
- #REPLACE MSG_LAST_KEY_PRESSED |CI$0088
- #REPLACE GET_LAST_KEY_PRESSED |CI$0088 //dup
- #REPLACE SET_RADIO_STRING |CI$0089
- #REPLACE SET_ENTRY_STATE |CI$008A
- #REPLACE GET_ENTRY_STATE |CI$008B
- #REPLACE MSG_READ |CI$008C
- #REPLACE MSG_WRITE |CI$008D
- #REPLACE SET_SCROLL_BAR_OFFSET |CI$008E
- #REPLACE GET_SCROLL_BAR_OFFSET |CI$008F
- #REPLACE MSG_ITEM_CHANGE |CI$0090
- #REPLACE GET_ITEM_CHANGED_STATE |CI$0091
- #REPLACE SET_ITEM_CHANGED_STATE |CI$0092
- #REPLACE GET_AUTO_TOP_ITEM_STATE |CI$0093
- #REPLACE SET_AUTO_TOP_ITEM_STATE |CI$0094
- #REPLACE SET_KBD_INPUT_MODE |CI$0095
- #REPLACE MSG_SUPPLY_KEY |CI$0096
- #REPLACE GET_INSERT_MODE |CI$0097
- #REPLACE MSG_OK |CI$0098
- #REPLACE MSG_CANCEL |CI$0099
- #REPLACE GET_ARRAY_VALUE |CI$009A
- #REPLACE SET_ARRAY_VALUE |CI$009B
- #REPLACE MSG_CONSTRUCT_OBJECT |CI$009C
- #REPLACE MSG_ACTIVATING |CI$009D
- #REPLACE MSG_TRACE_SWITCH |CI$009E
- #REPLACE MSG_TRACE_MESSAGE |CI$009F
- #REPLACE MSG_TRACE_STEP |CI$00A0
- #REPLACE MSG_TRACE_OUTPUT |CI$00A1
- #REPLACE MSG_DEACTIVATING |CI$00A2
- #REPLACE GET_CLASS |CI$00A3
- #REPLACE GET_HELP_NAME |CI$00A4
- #REPLACE MSG_EXIT_APPLICATION |CI$00A5
- #REPLACE MSG_PRINT_SCREEN |CI$00A6
- #REPLACE GET_RIGHT_MARGIN |CI$00A7
- #REPLACE GET_DELEGATION_MODE |CI$00A8
- #REPLACE SET_DELEGATION_MODE |CI$00A9
- #REPLACE GET_BASE_CLASS |CI$00AA
- #REPLACE SET_ITEM_ENTRY_MSG |CI$00AB
- #REPLACE GET_ITEM_ENTRY_MSG |CI$00AC
- #REPLACE SET_ITEM_EXIT_MSG |CI$00AD
- #REPLACE GET_ITEM_EXIT_MSG |CI$00AE
- #REPLACE SET_ITEM_VALIDATE_MSG |CI$00AF
- #REPLACE GET_ITEM_VALIDATE_MSG |CI$00B0
- #REPLACE SET_DATA_FILE |CI$00B1
- #REPLACE GET_DATA_FILE |CI$00B2
- #REPLACE SET_DATA_FIELD |CI$00B3
- #REPLACE GET_DATA_FIELD |CI$00B4
- #REPLACE SET_DATA_WINDOW |CI$00B5
- #REPLACE GET_DATA_WINDOW |CI$00B6
- #REPLACE SET_ITEM_OPTIONS |CI$00B7
- #REPLACE GET_ITEM_OPTIONS |CI$00B8
- #REPLACE SET_ITEM_OPTION |CI$00B9
- #REPLACE GET_ITEM_OPTION |CI$00BA
- #REPLACE MSG_ENTRY_UPDATE |CI$00BB
- #REPLACE MSG_ENTRY_FIND |CI$00BC
- #REPLACE MSG_ENTRY_SUPERFIND |CI$00BD
- #REPLACE MSG_ENTRY_DISPLAY |CI$00BE
- #REPLACE MSG_ENTRY_CLEAR |CI$00BF
- #REPLACE GET_VALIDATE_ITEMS |CI$00C0
- #REPLACE GET_ITEM_WINDOW |CI$00C1
- #REPLACE MSG_COPY_ITEMS |CI$00C2
- #REPLACE GET_IMAGE_NUMBER |CI$00C3
- #REPLACE MSG_ENTRY_CLEAR_ALL |CI$00C4
- #REPLACE MSG_SELECT_TOGGLING |CI$00C5
- #REPLACE GET_ITEM_ENTRY |CI$00C6
- #REPLACE GET_ITEM_EXIT |CI$00C7
- #REPLACE GET_ITEM_VALIDATE |CI$00C8
- #REPLACE GET_READ_ONLY_ERROR |CI$00C9
- #REPLACE GET_NAME |CI$00CA
- #REPLACE GET_ENTRY |CI$00CB
- #REPLACE MSG_DESTROY_OBJECT |CI$00CC
- #REPLACE MSG_DESTROY_ALL_OBJECTS |CI$00CD
- #REPLACE GET_MOUSE_HIT |CI$00CE
- #REPLACE SET_OBJECT_COLOR |CI$00CF
- #REPLACE SET_ARROWS |CI$00D0
- #REPLACE MSG_SWITCH |CI$00D1
- #REPLACE MSG_SWITCH_BACK |CI$00D2
- #REPLACE GET_WAS_FOUND |CI$00D3
- #REPLACE GET_STATUS_LINE_STATE |CI$00D4
- #REPLACE SET_HIGHLIGHT_STATE |CI$00D5 // INTERNAL
- #REPLACE MSG_ROTATE_UP |CI$00D6 // INTERNAL
- #REPLACE MSG_POP_PAGES |CI$00D7 // INTERNAL
- #REPLACE SET_CLASS |CI$00D8 // INTERNAL
- #REPLACE MSG_FETCH_HELP |CI$00D9 // INTERNAL
- #REPLACE GET_OBJECT_ID |CI$00DA // INTERNAL
- #REPLACE MSG_INIT_INSTANCE |CI$00DB // INTERNAL
- #REPLACE MSG_PAGE |CI$00DC // INTERNAL
- #REPLACE MSG_PAGE_DELETE |CI$00DD // INTERNAL
- //#REPLACE GET_COLORS |CI$00DE // INTERNAL
- #REPLACE GET_BAR_LOCATION |CI$00DF // INTERNAL
- #REPLACE RETURN_LOCATION |CI$00E0 // INTERNAL
- #REPLACE MSG_CHANGE_LOCATION |CI$00E1 // INTERNAL
- #REPLACE MSG_WRITE_DBMS |CI$00E2
- #REPLACE MSG_READ_DBMS |CI$00E3
- #REPLACE MSG_WRITE_IMAGE |CI$00E2 // same as dbms
- #REPLACE MSG_READ_IMAGE |CI$00E3 // same as dbms
- #REPLACE GET_STRING_VALUE |CI$00E4
- #REPLACE GET_NUMBER_VALUE |CI$00E5
- #REPLACE GET_DATE_VALUE |CI$00E6
- #REPLACE GET_INTEGER_VALUE |CI$00E7
- #REPLACE GET_REAL_VALUE |CI$00E8
- #REPLACE SET_BASE_ITEM |CI$00E9
- #REPLACE GET_BASE_ITEM |CI$00EA
- #REPLACE SET_ITEM_LIMIT |CI$00EB
- #REPLACE GET_ITEM_LIMIT |CI$00EC
- #REPLACE MSG_MARK_OFF |CI$00ED
- #REPLACE SET_SEARCH_CASE |CI$00EE
- #REPLACE SET_PRIOR_FOCUS |CI$00EF
- #REPLACE GET_PRIOR_FOCUS |CI$00F0
- #REPLACE SET_NEXT_FOCUS |CI$00F1
- #REPLACE GET_NEXT_FOCUS |CI$00F2
- #REPLACE SET_SCROLLBAR |CI$00F3
- #REPLACE GET_ASCII_STATE |CI$00F4
- #REPLACE SET_ASCII_STATE |CI$00F5
- #REPLACE GET_TEXT_INDENT |CI$00F6
- #REPLACE SET_TEXT_INDENT |CI$00F7
- #REPLACE MSG_ENTRY_AUTOFIND |CI$00F8
- #REPLACE SET_SCOPE_STATE |CI$00F9
- #REPLACE GET_SCOPE_STATE |CI$00FA
- #REPLACE MSG_MOUSE_CHANGE_FOCUS |CI$00FB
- #REPLACE GET_CHILD_COUNT |CI$00FC
- #REPLACE MSG_MOUSE_UP |CI$00FD
- #REPLACE MSG_MOUSE_UP2 |CI$00FE
- #REPLACE MSG_MOUSE_UP3 |CI$00FF
- #REPLACE MSG_MOUSE_CLICK |CI$0100
- #REPLACE MSG_MOUSE_CLICK2 |CI$0101
- #REPLACE MSG_MOUSE_CLICK3 |CI$0102
- #REPLACE MSG_MOUSE_DOWN |CI$0103
- #REPLACE MSG_MOUSE_DOWN2 |CI$0104
- #REPLACE MSG_MOUSE_DOWN3 |CI$0105
- #REPLACE MSG_MOUSE_DRAG |CI$0106
- #REPLACE MSG_MOUSE_DRAG2 |CI$0107
- #REPLACE MSG_MOUSE_DRAG3 |CI$0108
- #REPLACE GET_ABSOLUTE_MOUSE_LOCATION |CI$0109
- #REPLACE SET_ABSOLUTE_MOUSE_LOCATION |CI$010A
- #REPLACE GET_DYNAMIC_UPDATE_STATE |CI$010B
- #REPLACE SET_MAX_LINES |CI$010C
- #REPLACE GET_MAX_LINES |CI$010D
- #REPLACE MSG_VIRTUAL_CONSOLE |CI$010E
- #REPLACE GET_NEXT_ENTRY_OK |CI$010F
- #REPLACE GET_PREVIOUS_ENTRY_OK |CI$0110
- #REPLACE SET_DYNAMIC_COLORS |CI$0111
- #REPLACE SET_NEW_ITEM |CI$0112
- #REPLACE SET_BROADCAST_STATE |CI$0113
- #REPLACE GET_BROADCAST_STATE |CI$0114
- #REPLACE GET_WRAPPING |CI$0115
- #REPLACE GET_ROW_CHANGING |CI$0116
- #REPLACE MSG_ADD_FOCUS |CI$0117
- #REPLACE MSG_REMOVE_OBJECT |CI$0118
- #REPLACE MSG_RELEASE_FOCUS |CI$0119
- #REPLACE MSG_ENTERING |CI$011A
- #REPLACE MSG_EXITING |CI$011B
- #REPLACE MSG_ENTERING_SCOPE |CI$011C
- #REPLACE MSG_EXITING_SCOPE |CI$011D
- #REPLACE MSG_SWITCH_NEXT_GROUP |CI$011E
- #REPLACE MSG_SWITCH_PRIOR_GROUP |CI$011F
- #REPLACE GET_CURRENT_SCOPE |CI$0120
- #REPLACE SET_CURRENT_SCOPE |CI$0121
- #REPLACE MSG_POPUP |CI$0122
- #REPLACE MSG_POPUP_GROUP |CI$0123
- #REPLACE SET_POPUP_STATE |CI$0124
- #REPLACE GET_POPUP_STATE |CI$0125
- #REPLACE SET_RING_STATE |CI$0126
- #REPLACE GET_RING_STATE |CI$0127
- #REPLACE MSG_MOVE_FOCUS_TREE |CI$0128
- #REPLACE SET_PROMPT_OBJECT |CI$0129
- #REPLACE GET_PROMPT_OBJECT |CI$012A
- #REPLACE SET_ZOOM_OBJECT |CI$012B
- #REPLACE GET_ZOOM_OBJECT |CI$012C
- #REPLACE GET_PRIOR_LEVEL |CI$012D
- #REPLACE GET_NEXT_LEVEL |CI$012E
- #REPLACE GET_PRIOR_SCOPE |CI$012F
- #REPLACE GET_NEXT_SCOPE |CI$0130
- #REPLACE MSG_SWITCH_PRIOR_SCOPE |CI$0131
- #REPLACE MSG_SWITCH_NEXT_SCOPE |CI$0132
- #REPLACE SET_ATTACH_PARENT_STATE |CI$0133
- #REPLACE GET_ATTACH_PARENT_STATE |CI$0134
- #REPLACE MSG_CHILD_WRAPPING |CI$0135
- #REPLACE SET_DISPLAY_MODE |CI$0136
- #REPLACE GET_DISPLAY_MODE |CI$0137
- #REPLACE MSG_COLOR_BLOCK |CI$0138
- #REPLACE MSG_NEXT_OBJECT |CI$0139
- #REPLACE MSG_PRIOR_OBJECT |CI$013A
- #REPLACE SET_APPLICATION_NAME |CI$013B
- #REPLACE GET_APPLICATION_NAME |CI$013C
- #REPLACE SET_MODULE_NAME |CI$013D
- #REPLACE GET_MODULE_NAME |CI$013E
- #REPLACE GET_LAST_CHILD |CI$013F
- #REPLACE SET_WINDOW_COLOR |CI$0140
- #REPLACE GET_WINDOW_COLOR |CI$0141
- #REPLACE MSG_PROCESS_KEY |CI$0142
- #REPLACE MSG_ACTIVATE_SCOPE |CI$0143
- #REPLACE GET_FIND_SCOPE |CI$0144
- #REPLACE GET_SCOPE_FOCUS |CI$0145
- #REPLACE GET_VALID_ITEM |CI$0146
- #REPLACE MSG_UPDATE_DISPLAY |CI$0147
- #REPLACE SET_ITEM |CI$0148
- #REPLACE MSG_TRACE_COMMAND |CI$0149 // INTERNAL
- #REPLACE GET_OBJECT_COLOR |CI$014A
- #REPLACE SET_OBJECT_VALIDATION |CI$014B
- #REPLACE GET_OBJECT_VALIDATION |CI$014C
- #REPLACE GET_NEXT_OBJECT_ID |CI$014D
- #REPLACE GET_PRIOR_OBJECT_ID |CI$014E
- #REPLACE GET_CLASS_COLORS |CI$014F
- #REPLACE GET_LOCATION_TYPE |CI$0150
- #REPLACE GET_OBJECT_SIZE |CI$0151
- #REPLACE GET_IN_USE_STATE |CI$0152
- #REPLACE SET_IN_USE_STATE |CI$0153
- #REPLACE MSG_ATTACH_DEO_TO_SERVER |CI$0154
- #REPLACE MSG_REQUEST_CLEAR_ALL |CI$0155
- #REPLACE MSG_CLEAR |CI$0156
- #REPLACE SET_CURRENT_RECORD |CI$0157
- #REPLACE GET_CURRENT_RECORD |CI$0158
- #REPLACE MSG_REBUILD_CONSTRAINTS |CI$0159
- #REPLACE MSG_CONSTRAIN |CI$015A
- #REPLACE SET_MAIN_FILE |CI$015B
- #REPLACE GET_MAIN_FILE |CI$015C
- #REPLACE GET_FIND_SERVER |CI$015D
- #REPLACE GET_LOCATE_SERVER |CI$015E
- #REPLACE MSG_MARK_AS_COMPONENT |CI$015F
- #REPLACE MSG_DELETING |CI$0160
- #REPLACE GET_VALIDATE_DELETE |CI$0161
- #REPLACE MSG_REQUEST_DELETE |CI$0162
- #REPLACE MSG_DISPLAY |CI$0163
- #REPLACE MSG_RELATE_MAIN_FILE |CI$0164
- #REPLACE MSG_CLEAR_UI |CI$0165
- #REPLACE MSG_DISPLAY_UI |CI$0166
- #REPLACE MSG_REQUEST_ASSIGN |CI$0167
- #REPLACE GET_VALIDATE_SAVE |CI$0168
- #REPLACE MSG_ATTACH_MAIN_FILE |CI$0169
- #REPLACE MSG_REQUEST_CLEAR |CI$016A
- #REPLACE MSG_BACKOUT |CI$016B
- #REPLACE MSG_UPDATE |CI$016C
- #REPLACE MSG_SAVE_MAIN_FILE |CI$016D
- #REPLACE MSG_DELETE_MAIN_FILE |CI$016E
- #REPLACE GET_ENTRY_PERMISSIVE_STATE |CI$016F
- #REPLACE SET_ENTRY_PERMISSIVE_STATE |CI$0170
- #REPLACE SET_ORDERING |CI$0171
- #REPLACE GET_ORDERING |CI$0172
- #REPLACE GET_COMPONENT_STATE |CI$0173
- #REPLACE SET_COMPONENT_STATE |CI$0174
- #REPLACE GET_HAS_COMPONENTS_STATE |CI$0175
- #REPLACE SET_HAS_COMPONENTS_STATE |CI$0176
- #REPLACE MSG_REQUEST_SAVE |CI$0177
- #REPLACE MSG_REMOVE_FOCUS |CI$0178
- #REPLACE MSG_ATTACH_SERVER |CI$0179
- #REPLACE MSG_DETACH_SERVER |CI$017A
- #REPLACE MSG_ATTACH_CLIENT |CI$017B
- #REPLACE MSG_DETACH_CLIENT |CI$017C
- #REPLACE MSG_ADD_USER_INTERFACE |CI$017D
- #REPLACE MSG_REMOVE_USER_INTERFACE |CI$017E
- #REPLACE MSG_MAIN_FILE_CHANGED |CI$017F
- #REPLACE GET_IS_SUPERFIND_REQUIRED |CI$0180
- #REPLACE MSG_REQUEST_FIND |CI$0181
- #REPLACE MSG_ADD_PARENT_FILE |CI$0182
- #REPLACE MSG_REMOVE_PARENT_FILE |CI$0183
- #REPLACE MSG_REQUEST_SUPERFIND |CI$0184
- #REPLACE MSG_REQUEST_READ |CI$0185
- #REPLACE MSG_READ_BY_RECNUM |CI$0186
- #REPLACE MSG_FIND_BY_RECNUM |CI$0187
- #REPLACE MSG_ESTABLISH_FIND_DIRECTION |CI$0188
- #REPLACE MSG_LOCATE_NEXT |CI$0189
- #REPLACE GET_RECORD_NOT_FOUND |CI$018A
- #REPLACE MSG_INIT_CLASS |CI$018B
- #REPLACE SET_IMAGE_NUMBER |CI$018C
- #REPLACE GET_ROW |CI$018D
- #REPLACE GET_CURRENT_ROW |CI$018E
- #REPLACE GET_TOP_ROW |CI$018F
- #REPLACE GET_BOTTOM_ITEM |CI$0190
- #REPLACE GET_BOTTOM_ROW |CI$0191
- #REPLACE GET_ROW_COUNT |CI$0192
- #REPLACE GET_DISPLAYABLE_ROWS |CI$0193
- #REPLACE MSG_ADD_ROW |CI$0194
- #REPLACE MSG_INSERT_ROW |CI$0195
- #REPLACE SET_PALETTE_COLOR |CI$0196
- #REPLACE GET_PALETTE_COLOR |CI$0197
- #REPLACE SET_CLASS_PALETTE |CI$0198
- #REPLACE GET_CLASS_PALETTE |CI$0199
- #REPLACE GET_NO_DELETE_STATE |CI$019A
- #REPLACE SET_NO_DELETE_STATE |CI$019B
- #REPLACE MSG_REQUEST_ENTRY_UPDATE |CI$019C
- #REPLACE MSG_SCROLL_PAINT |CI$019D
- #REPLACE MSG_SHOW_ITEM |CI$019E
- #REPLACE SET_EXTERNAL_PAINT_STATE |CI$019F
- #REPLACE GET_EXTERNAL_PAINT_STATE |CI$01A0
- #REPLACE SET_MATRIX_SIZE |CI$01A1
- #REPLACE GET_MATRIX_SIZE |CI$01A2
- #REPLACE SET_SKIP_STATE |CI$01A3
- #REPLACE GET_SKIP_STATE |CI$01A4
- #REPLACE GET_REQUEST_VALIDATE |CI$01A5
- #REPLACE GET_AUTO_FILL_STATE |CI$01A6
- #REPLACE SET_AUTO_FILL_STATE |CI$01A7
- #REPLACE GET_FIND_PERMISSIVE_STATE |CI$01A8
- #REPLACE SET_FIND_PERMISSIVE_STATE |CI$01A9
- #REPLACE MSG_TRANSACTION_ABORTED |CI$01AA
- #REPLACE MSG_CLEAR_ALL |CI$01AB
- #REPLACE MSG_CREATING |CI$01AC
- #REPLACE MSG_DESTROYING |CI$01AD
- #REPLACE GET_SHOULD_SAVE |CI$01AE
- #REPLACE GET_WHICH_DATA_SET |CI$01AF
- #REPLACE GET_VALIDATE_CONSTRAINTS |CI$01B0
- #REPLACE MSG_ERROR_REPORT |CI$01B1
- #REPLACE MSG_REQUEST_RELATE |CI$01B2
- #REPLACE GET_ERROR_TEXT |CI$01B3
- #REPLACE GET_SUGGESTED_ORDERING |CI$01B4
- #REPLACE SET_SUGGESTED_ORDERING |CI$01B5
- #REPLACE GET_NO_RELATE_STATE |CI$01B6
- #REPLACE SET_NO_RELATE_STATE |CI$01B7
- #REPLACE GET_WINDOW_LOCATION |CI$01B8
- #REPLACE GET_SIGNON_STATUS |CI$01B9
- // #REPLACE MSG_ADD_WATCHER |CI$01BA
- // #REPLACE MSG_REMOVE_WATCHER |CI$01BB
- #REPLACE GET_SEARCH_CASE |CI$01BC
- #REPLACE GET_SHOULD_SAVE_ROW |CI$01BD
- #REPLACE MSG_DISPLAY_STATUS |CI$01BE
- #REPLACE MSG_CLEAR_SET |CI$01BF
- #REPLACE GET_AUTOFIND_ITEM |CI$01C0
- #REPLACE SET_KEY_PATH |CI$01C1
- #REPLACE GET_KEY_PATH |CI$01C2
- #REPLACE GET_CAN_DELETE |CI$01C3
- #REPLACE MSG_UPDATE_DEPENDENT_ITEMS |CI$01C4
- #REPLACE GET_SUPERFIND_FIELD |CI$01C5
- #REPLACE MSG_REFRESH |CI$01C6
- #REPLACE MSG_PROCESS_ACCELERATOR |CI$01C7
- #REPLACE GET_ERROR_TEXT_AVAILABLE |CI$01C8
- #REPLACE GET_PROTOTYPE_OBJECT |CI$01C9
- #REPLACE MSG_REFIND_RECORDS |CI$01CA
- #REPLACE MSG_END_CONSTRUCT_OBJECT |CI$01CB
- #REPLACE MSG_CLEAR_MAIN_FILE |CI$01CC
- #REPLACE MSG_REQUEST_CLEAR_FILE |CI$01CD
-
- #REPLACE DFLT$VALUE X
- #REPLACE DFLT$MESSAGE X
- #REPLACE DFLT$AUX_VALUE X
- #REPLACE DFLT$SHADOW_STATE X
- #REPLACE DFLT$SELECT_STATE X
- #REPLACE DFLT$CHECKBOX_ITEM_STATE X
- #REPLACE DFLT$AUTOCLEAR_STATE X
- #REPLACE DFLT$CENTER_STATE X
- #REPLACE DFLT$ENTRY_STATE X
- #REPLACE DFLT$ITEM_CHANGED_STATE X
- #REPLACE DFLT$ITEM_ENTRY_MSG X
- #REPLACE DFLT$ITEM_EXIT_MSG X
- #REPLACE DFLT$ITEM_VALIDATE_MSG X
- #REPLACE DFLT$DATA_FILE X
- #REPLACE DFLT$DATA_FIELD X
- #REPLACE DFLT$DATA_WINDOW X
- #REPLACE DFLT$ITEM_OPTIONS X
- #REPLACE DFLT$ITEM_OPTION X
- #REPLACE DFLT$PROMPT_OBJECT X
- #REPLACE DFLT$ZOOM_OBJECT X
-
- // Object commands
- #REPLACE OBJ$INIT $0440
- #REPLACE OBJ$CREATE $0441
- #REPLACE OBJ$ILIST $0442
- #REPLACE OBJ$ITEM $0443
- #REPLACE OBJ$ENDILIST $0444
- #REPLACE OBJ$ACCLIST $0445 // not used
- #REPLACE OBJ$ONKEY $0446
- #REPLACE OBJ$ENDALIST $0447 // not used
- #REPLACE OBJ$ENDDEFINE $0448 // not used
- #REPLACE OBJ$IODISPATCH $0449
- #REPLACE OBJ$SET $044A
- #REPLACE OBJ$GET $044B
- #REPLACE OBJ$SEND $044C
- #REPLACE OBJ$FIX $044D // not used
- #REPLACE OBJ$END $044E
- #REPLACE OBJ$FWDFIX $044F // not used
- #REPLACE OBJ$HRET $0450
- #REPLACE OBJ$ITEM_EXEC $0451
- #REPLACE OBJ$ACCEPT $0452
- #REPLACE CREATE$CLASS $0453
- #REPLACE HANDLE$FOR $0454
- #REPLACE OBJ$END$HANDLER $0455
- #REPLACE LOCAL$ARGUMENT $0456
- #REPLACE FIND$OBJECT $0457
- #REPLACE END$CLASS $0458
- #REPLACE CREATE$SUB$PAGE $0459
- #REPLACE CLONE$CLASS $045A
- #REPLACE OBJ$ENTRY$ITEM $045B
- #REPLACE MOVE$SUB$PAGE $045C
- #REPLACE OBJ$TIMER $045D
- #REPLACE SCREEN$OPT $045E
- #REPLACE CREATE$PROPERTY $045F
- #REPLACE REDEFINE$SUB$PAGE $0464
-
- //Focus modes:
- #REPLACE FOCUSABLE |CI0
- #REPLACE NONFOCUSABLE |CI1
- #REPLACE POINTER_ONLY |CI2
- #REPLACE NO_ACTIVATE |CI3
-
- //Search modes:
- #REPLACE FIRST_CHARACTER |CI0
- #REPLACE INCREMENTAL |CI1
- #REPLACE CAPITAL |CI2
- #REPLACE NO_SEARCH |CI3
-
- //Delegation modes:
- #REPLACE DELEGATE_TO_PARENT |CI0
- #REPLACE NO_DELEGATE_OR_ERROR |CI1
- #REPLACE NO_DELEGATION |CI2
- #REPLACE RETURN_INVALID_MESSAGE |CI3
- #REPLACE DELEGATE_PRIOR_LEVEL |CI4
-
- //Location modes:
- #REPLACE ABSOLUTE |CI0
- #REPLACE RELATIVE |CI1
- #REPLACE ITEM_RELATIVE |CI2
-
- //Sort modes:
- #REPLACE ASCENDING |CI0
- #REPLACE DESCENDING |CI1
-
- //Select Modes:
- #REPLACE NO_SELECT |CI0
- #REPLACE SINGLE_SELECT |CI1
- #REPLACE MULTI_SELECT |CI2
- #REPLACE AUTO_SELECT |CI3
-
- //Entry item options:
- #REPLACE IWINDOW $C0A1
- #REPLACE IENTRY $C0A2
- #REPLACE IEXIT $C0A3
- #REPLACE IVALIDATE $C0A4
- #REPLACE IZOOM $C0A5
- #REPLACE IPROMPT $C0A6
-
- //Import modes
- #REPLACE INHERIT 1
- #REPLACE NO_OVERWRITE 2
-
- //System integers
- #REPLACE CURRENT_OBJECT |VI85
- #REPLACE FORWARD$MESSAGE |VI87
- #REPLACE CURRENT_MESSAGE |VI88
- #REPLACE TOTAL_OBJECTS |VI89
-
- // Define the desktop objects
- #REPLACE NULL_OBJECT |CI0
- #REPLACE CLIPBOARD |CI1
- #REPLACE CLIPBOARD.N |CI0
- //#REPLACE DESKTOP |CI2 // now defined in flex$init
- #REPLACE DESKTOP.N |CI0
- //#REPLACE END_FUNCTION END_PROCEDURE // now defined in flex$init
- //#REPLACE PROCEDURE_RETURN FUNCTION_RETURN // now defined in flex$init
- #REPLACE NO_IMAGE |CI-9999
-
- #REPLACE CURRENT |CI-99 //use current item#
- #REPLACE TOGGLE_STATE |CI3 //toggle boolean state
- #REPLACE UPWARD_DIRECTION |CI0 //scroll up
- #REPLACE DOWNWARD_DIRECTION |CI1 //scroll down
-
- #REPLACE GET_SCROLLBAR |CI$4000
- #REPLACE GET_CLIPBOARD |CI$4001
- #FREG |CI$4000 RETURNS INTEGER
- #FREG |CI$4001 RETURNS INTEGER
-
- #REPLACE ERROR_OBJECT_ID |VI100
- #REPLACE ERROR_TYPE |VI101
-
- #REPLACE ERROR_CHILD_INHERITS_PARENT |CI0
- #REPLACE ERROR_OFF_IN_CHILD |CI1
- #REPLACE ERROR_DEFAULT_IN_CHILD |CI2
-
- //deactivate search modes
- #REPLACE SCOPE_TYPE |CI1
- #REPLACE POPUP_TYPE |CI2
- #REPLACE AREA_TYPE |CI3
-
- //add_focus/activate/deactivate/release_focus error return codes
- #REPLACE ERROR_ENTERING |CI1
- #REPLACE ERROR_EXITING |CI2
- #REPLACE ERROR_ACTIVATING |CI3
- #REPLACE ERROR_DEACTIVATING |CI4
- #REPLACE ERROR_CANT_ACCEPT_FOCUS |CI5
- #REPLACE ERROR_CANT_CREATE_TREE |CI6
- #REPLACE ERROR_ADD_TO_INACTIVE_OBJECT |CI7
- #REPLACE ERROR_NO_FOCUSABLE_CHILDREN |CI8
-
- #CHKSUB 1 1 // Verify the UI subsystem.
- !A [] OBJ$INIT |CI0 // INITIALIZE_INTERFACE
- #FREF OBJ$DESK$NUM !a // Number of desktop dependants
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Object ObjectName IS [A|AN] ObjectClass {ImageName} {SubImageNames...}
- //
- // Parameters:
- // ObjectName is a string.
- // ObjectClass is an integer.
- // ImageName is a string.
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND OBJECT R "IS" "A""AN" RVD#I
- #IF (!0<5) // if no image try to aquire one
- OBJECT !1 !2 !3 !4 !1
- #ELSE
- #DATA // start up the data stream
- #PUSH !Zj // save the unique object label
- #PUSH !b // save current definition state
- #IF (!b = 4) // if in procedure and not class
- #SET ZJ$ 0 // do not inc z
- #ELSE
- #SET ZJ$ !ZB // assign the next object id
- #ENDIF
- #PUSH !Zb // save this level on stack
- #IFDEF !4.AGG // was this a class with sub objects?
- #SET ZB$ !4.AGG // sub objects will begin at the
- #ELSE // next object after superclass
- #SET ZB$ 0 // base classes start at 0
- #ENDIF
- #SET ZI$ !ZI // count this object at the current level
- #PUSH !Zi // and push the level
- #IF (!b > 0) // if (in_object | in_class)
- #IF (!b & 2) // obj_flag == in_class?
- #REPLACE !$.!1.OBJ |CI-!Zj // object_name = -current_object
- #ENDIF
- #SET ZJ$ (32766-!a) // a very unique label for this object
- #DPUSH |CS".!1" // make name from parent and child
- #ELSE // global object name
- #DPUSH |CS"!1" // assign an absolute name to object
- #ENDIF
- #CHECK U_!4 _U // does class exist?
- #DPUSH U_!4 // define then class the class id
- GET$OBJ$IMAGE !5 // define the objects image
- #IF ((!b & 3) = 2) // if in_class & !in_object
- #DPUSH !$.!1.OBJ // pick the assigned dependant number
- #ELSE //
- #IF (!b = 0) // A global object must assign #
- #IFDEF !1.OBJ // Is the symbol defined, name_object?
- #DPUSH |CI0 // pick the next dependant number
- #ELSE
- #DPUSH |CI!Zj // force the dependant number
- #SET ZJ$ ($1000+!Zj) // mark as global object
- #REPLACE !1.OBJ |CI!Zj // Assign an ID to this object
- #ENDIF
- #ELSE
- #DPUSH |CI0 // pick the next dependant number
- #ENDIF
- #ENDIF
- REGISTER_OBJECT !1
- #DPUSH GET_!1
- #SET B$ (!b | 1) // we are in a object definition
- !A [] OBJ$CREATE |VL // create the object now
-
- #IFDEF !1.OBJ
- #IFCLASS !1.OBJ V$ // does this object have a global?
- MOVE CURRENT_OBJECT TO !1.OBJ // Move the object id to its global
- #ENDIF
- #ENDIF
-
- #SPUSH !$ //save the old class name
- #SET $$ !4
- #IFSUB '!$$SC' // if flex-defined class
- #IFSUB '!$$SM' // if begin-instance macro exists
- !$$SM !$ !5 !6 !7 !8 !9
- #ELSE
- FORWARD_BEGIN_CONSTRUCT !$ !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- ADD$IMAGE$ARGS MSG_CONSTRUCT_OBJECT !5 !6 !7 !8 !9 //else use default
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND GET$OBJ$IMAGE // identify the image type
- #IFDEF !1 // is it a int (dynamic?)
- #DPUSH !1
- #ELSE
- #IFDEF !1.N // try typical naming scheme
- #DPUSH !1.N
- #ELSE
- #DPUSH |CI0 // not found, make it dynamic
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND ADD$IMAGE$ARGS // pass sub image args to constructor
- #IF (!0>0) // while there are args to process
- #IFDEF !1 // image name a int?
- #IFSAME !1 MSG_CONSTRUCT_OBJECT // a special flag to get it going
- #DATA // start the data stream
- #ENDIF
- #DPUSH !1 // save the message or image id
- #ELSE
- #IFDEF !1.N // typical image name
- #DPUSH !1.N
- #ELSE
- #DPUSH |CI0 // dynamic image name
- #ENDIF
- #ENDIF
- ADD$IMAGE$ARGS !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- !A [] OBJ$SEND CURRENT_OBJECT |VL
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Register_Object Object_Name
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND REGISTER_OBJECT R
- #IFDEF GET_!1
- #ELSE
- #REPLACE GET_!1 |CI!ZH
- #FREG GET_!1 RETURNS INTEGER
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // ITEM_LIST
- //
- // Parameters:
- // None.
- //
- // Description:
- // This is the startment that markes the beginning of a list of
- // items to be attached to the current object. A list class object
- // can not have a item list.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND ITEM_LIST .
- #PUSH !Zg
- #PUSH !Zj
- #SET ZJ$ !a
- #PUSH !Zj
- #SET ZG$ 0 // Set the item counter to zero. This is used to
- // count and assign ID's to the items.
- !A [] OBJ$ILIST |CI0 // Create the command to save the item count,
- #FREF OBJ$!Zj$INUM !a // and tell flex to update it later.
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // ON_Item {Value} {[SEND Message {TO Object} | BEGIN_PULL_DOWN Pull_Down_Name {Pull_Down_Image}]}
- //
- // Parameters:
- // Value is a string.
- // Message is a integer.
- // Object is a integer.
- //
- // Description:
- // The ITEM command adds the next item to the current object list.
- // The Message is the value which will be passed to the handler
- // if this item is selected.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND ON_ITEM NDI """SEND""BEGIN_PULL_DOWN"
- #IF (!0<2)
- #IF (!0<1)
- ON_ITEM '' SEND MSG_NONE
- #ELSE
- ON_ITEM !1 SEND MSG_NONE
- #ENDIF
- #ELSE
- #IFSAME !1 SEND
- ON_ITEM '' !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 SEND
- #SET ZG$ !ZG // Increment the item counter
- #IFSAME !4 TO
- #CHECK !6 .
- #DATA
- #IFDEF !3
- #DPUSH !3 // Push the (variable) message
- #ELSE
- #IFDEF MSG_!3
- #DPUSH MSG_!3 // Push the constant message
- #ELSE
- #DPUSH |CI0
- #FREF MSG_!3 !a,0 // Forward fef the message
- #ENDIF
- #ENDIF
- #IFDEF !5
- #DPUSH !5 // Push the (expression, var) dest object
- #ELSE
- #IFDEF !5.OBJ
- #DPUSH !5.OBJ // Push the global object
- #ELSE
- #DPUSH |CI0
- #FREF !5.OBJ !a,1 // Forward ref the object
- #ENDIF
- #ENDIF
- !A [] OBJ$ITEM_EXEC !1 |VL
- #ELSE
- #IF (!0 > 3)
- #CHECK !4 "TO"
- #ENDIF
- #IFDEF MSG_!3
- !A [] OBJ$ITEM MSG_!3 !1 // Create the item passing name and value.
- #ELSE
- #IFDEF !3
- !A [] OBJ$ITEM !3 !1 // Create the item passing name and value.
- #ELSE
- !A [] OBJ$ITEM |CI0 !1 // Create the item passing name and value.
- #FREF MSG_!3 !a // fix value later with procedure address
- #ENDIF
- #ENDIF
- #ENDIF
- #ELSE
- #IFSAME !2 BEGIN_PULL_DOWN
- #CHECK !3 R
- REGISTER_OBJECT !3
- ON_ITEM !1 SEND ACTIVATE_PULL_DOWN TO (!3(CURRENT_OBJECT))
- #IFSUB 'END_MENU'
- CREATE_MENU !3 SUB_LOCATION !4 !5 !6 !7 !8 !9
- #ELSE
- #ERROR 1000 INVALID ARGUMENT: "BEGIN_PULL_DOWN" REQUIRES MENU_SYSTEM PACKAGE
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Repeat_Item Count# TIMES {Item_Syntax}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND REPEAT_ITEM _RNDE "TIMES"
- ON_ITEM !3 !4 !5 !6 !7 !8 !9
- #SET Q$ (!1-1)
- #IF (!q>0)
- REPEAT_ITEM !q TIMES !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Entry_Item File.Field {Entry_Options}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND ENTRY_ITEM R
- #SET ZG$ !ZG
- #DATA
- #IFCLASS !1 "EC"
- #ENTOPT {$C0A0=!1,$C002,$C003,!2}
- #ELSE
- #ENTOPT {$C0A0=!1,!2}
- #ENDIF
- !A [] OBJ$ENTRY$ITEM |CI0 |VL
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // END_ITEM_LIST
- //
- // Parameters:
- // None.
- //
- // Description:
- // The END_ITEM_LIST command marks the end of a list of items.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND END_ITEM_LIST .
- #POP ZJ$
- #REPLACE OBJ$!Zj$INUM |CI!Zg // Update the count in the ITEM_LIST cmd.
- !A [] OBJ$ENDILIST OBJ$!Zj$INUM // Tell runtime this is the end of list.
- #POP ZJ$
- #POP ZG$
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // END_PULL_DOWN
- //
- // Parameters:
- // None.
- //
- // Description:
- // Ends the structure of an ON_ITEM ... BEGIN_PULL_DOWN ... as used by
- // Menu_System package.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND END_PULL_DOWN .
- #IFSUB 'END_MENU'
- END_ITEM_LIST
- END_OBJECT
- #ELSE
- #ERROR 1000 INVALID ARGUMENT: "BEGIN_PULL_DOWN" REQUIRES MENU_SYSTEM PACKAGE
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // On_Key KeyName SEND Message {TO Object} {PRIVATE}
- //
- // Parameters:
- // KeyName is a valid hot key name.
- // Message is valid message name.
- // Object is the a valid object name.
- //
- // Description:
- // The ON_KEY command tells the menu manager to pass the
- // specified Message code to the specified Object when the
- // KeyNAme is pressed. If no Object name is passed, the current
- // object is used. Passing MSG_NONE for Message causes the key to do
- // nothing, passing MSG_DEFAULT_KEY will restore the default key definition.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND ON_KEY RULGBO#SDN "SEND" RLGBO#SDN """TO""PRIVATE" _DNOB """PRIVATE" .
- #IFSAME !4 PRIVATE
- ON_KEY !1 !2 !3 TO |CI-1 PRIVATE
- #ELSE
- #DATA
- #DPUSH !1
- #IFSAME !4 TO
- #IFDEF !5
- #DPUSH !5
- #ELSE
- #IFDEF !5.OBJ
- #DPUSH !5.OBJ
- #ELSE
- #DPUSH |CI0
- #FREF !5.OBJ !a,1
- #ENDIF
- #ENDIF
- #ELSE
- #DPUSH |CI-1
- #ENDIF
- #IFSAME !6 PRIVATE
- #DPUSH |CI1
- #ENDIF
- #IFDEF !3
- !A [] OBJ$ONKEY !3 |VL
- #ELSE
- #IFDEF MSG_!3
- !A [] OBJ$ONKEY MSG_!3 |VL
- #ELSE // else the command is defined in flex code
- !A [] OBJ$ONKEY |CI0 |VL // get flex to fix the fwd ref
- #FREF MSG_!3 !a
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // END_OBJECT
- //
- // Parameters:
- // None required
- //
- // Description:
- // END_OBJECT tells the manager we are done defining an object.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND END_OBJECT
- //
- // The following section was added 01-08-90 by SAL to support inheritable
- // end-instance macros for classes
- //
- #IFSUB '!$$SC' //if flex-defined class
- #IFSUB '!$$EM' //if end-instance macro defined for class,
- !$$EM !$ !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- FORWARD_END_CONSTRUCT !$ !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- DEFAULT_END_OBJECT //else use default
- #ENDIF
- #SPOP //restore old class name
- //
- // end of addition 01-08-90 by SAL
- //
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // DEFAULT_END_OBJECT
- //
- // Parameters:
- // NONE
- //
- // Description:
- // This command terminates an object declaration
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND DEFAULT_END_OBJECT .
- !A [] OBJ$END //Mark the end of the object list.
- #POP ZI$ //restore sub_obj_count
- #POP ZB$ //restore current_dep
- #POP B$ //restore obj_flag
- #POP ZJ$ //restore temp label
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Start_Ui {Object}
- //
- // Parameters:
- // NONE
- //
- // Description:
- // This command will dispatch io to the current focus. it will
- // remain in this routine until a non-zero return code is received.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND START_UI
- #IF (!0>0)
- SEND ACTIVATE TO !1
- #ENDIF
- !A [] OBJ$IODISPATCH |CI0 |CI0
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // UI_ACCEPT Object {GROUP | OBJECT} TO ReturnValue
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND UI_ACCEPT RSDGBO#L RDGBO#L RDGBO#L _CEL#BOG .
- #IFSAME !2 GROUP OBJECT
- #CHECK !3 "TO"
- #DATA
- #IFSAME !2 GROUP
- #DPUSH |CI1
- #ELSE
- #IFSAME !2 OBJECT
- #DPUSH |CI0
- #ENDIF
- #ENDIF
- #DPUSH !4
- #IFDEF !1
- !A [] OBJ$ACCEPT !1 |VL
- #ELSE
- #IFDEF !1.OBJ
- !A [] OBJ$ACCEPT !1.OBJ |VL
- #ELSE
- !A [] OBJ$ACCEPT |CI0 |VL
- #FREF !1.OBJ !a
- #ENDIF
- #ENDIF
- #ELSE
- UI_ACCEPT !1 OBJECT !2 !3 !4 !5 !6 !7
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // SET Property {OF Object} {ITEM #} TO Value {...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND SET
- GET$SET SET !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // GET Property {OF Object} {ITEM #} TO Value {...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND GET
- GET$SET GET !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // FORWARD {GET | SET | SEND} Property {...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND FORWARD "GET""SET""SEND"
- MOVE 1 TO FORWARD$MESSAGE
- !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // DELEGATE {GET | SET | SEND} Property {...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND DELEGATE "GET""SET""SEND"
- MOVE 8 TO FORWARD$MESSAGE
- !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // BROADCAST {RECURSIVE | RECURSIVE_UP} {IGNORE_RETURN} {GET | SET | SEND} Property {...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND BROADCAST "GET""SET""SEND""RECURSIVE""RECURSIVE_UP""NO_STOP"
- #IFSAME !1 RECURSIVE RECURSIVE_UP
- #CHECK !2 '"GET""SET""SEND""NO_STOP"'
- #IFSAME !1 RECURSIVE
- MOVE 20 TO FORWARD$MESSAGE // broadcast + recursive_down
- #ELSE
- MOVE 68 TO FORWARD$MESSAGE // broadcast + recursive_up
- #ENDIF
- #IFSAME !2 NO_STOP
- #CHECK !3 '"GET""SET""SEND"'
- MOVE (FORWARD$MESSAGE+128) TO FORWARD$MESSAGE // no stop on non-0 return
- !3 !4 !5 !6 !7 !8 !9
- #ELSE
- !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- MOVE 4 TO FORWARD$MESSAGE // broadcast
- #IFSAME !1 NO_STOP
- #CHECK !2 '"GET""SET""SEND"'
- MOVE (FORWARD$MESSAGE+128) TO FORWARD$MESSAGE // + no_stop
- !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND BROADCAST_FOCUS "GET""SET""SEND""RECURSIVE""RECURSIVE_UP""NO_STOP"
- #IFSAME !1 RECURSIVE RECURSIVE_UP
- #CHECK !2 '"GET""SET""SEND""NO_STOP"'
- #IFSAME !1 RECURSIVE
- MOVE 52 TO FORWARD$MESSAGE // broadcast + focus + recursive_down
- #ELSE
- MOVE 100 TO FORWARD$MESSAGE // broadcast + focus + recursive_up
- #ENDIF
- #IFSAME !2 NO_STOP
- #CHECK !3 '"GET""SET""SEND"'
- MOVE (FORWARD$MESSAGE+128) TO FORWARD$MESSAGE // no stop on non-0 return
- !3 !4 !5 !6 !7 !8 !9
- #ELSE
- !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- MOVE 36 TO FORWARD$MESSAGE // broadcast + focus
- #IFSAME !1 NO_STOP
- #CHECK !2 '"GET""SET""SEND"'
- MOVE (FORWARD$MESSAGE+128) TO FORWARD$MESSAGE // + no_stop
- !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND GET$SET
- #IFSAME !3 OF
- #IFSAME DFLT$!2 X // is this a item type message?
- #IFSAME !5 ITEM // is the item keyword used?
- OBJECT$PROPERTIES !1 !2 !4 !6 !7 !8 !9 // pass it on
- #ELSE
- OBJECT$PROPERTIES !1 !2 !4 -99 !5 !6 !7 !8 !9 // use dflt
- #ENDIF
- #ELSE
- #IFSAME !5 TO
- OBJECT$PROPERTIES !1 !2 !4 !6 !7 !8 !9 // just supply args
- #ELSE
- OBJECT$PROPERTIES !1 !2 !4 !5 !6 !7 !8 !9 // just supply args
- #ENDIF
- #ENDIF
- #ELSE
- GET$SET !1 !2 OF CURRENT_OBJECT !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command: OBJECT$PROPERTIES
- //
- // Parameters:
- // {GET | SET} PROPERTY OBJECT { {ITEM #} | TO } VALUE {...}
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND OBJECT$PROPERTIES "GET""SET" RD#OBLG RSND#OBLG R
- #DATA
- #IFDEF !2 // is message in a variable?
- #DPUSH !2 // yes, just push the value
- #ELSE
- #IFDEF !1_!2 // is this message defined?
- #DPUSH !1_!2 // yes, push the definition
- #ELSE
- #DPUSH |CI0 // forward reference the message
- #FREF !1_!2 !a,0 // add the reference to be defined
- #ENDIF
- #ENDIF
- #PUSH !Zg
- #SET ZG$ 0
- PROPERTY$HELP !4 !5 !6 !7 !8 !9
- #POP ZG$
- #IFDEF !3
- !A [] OBJ$!1 !3 |VL
- #ELSE
- #IFDEF !3.OBJ
- !A [] OBJ$!1 !3.OBJ |VL
- #ELSE
- !A [] OBJ$!1 |CI0 |VL
- #FREF !3.OBJ !a
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND PROPERTY$HELP
- #IF (!0>0)
- #IFSAME !1 TO
- #ELSE
- #IFSAME !1 ITEM
- #ELSE
- #SET ZG$ !ZG
- #IFDEF !1
- #DPUSH !1
- #ELSE
- #IFCLASS !1 0123456789ABCDEF
- #DPUSH !1
- #ELSE
- #IFDEF MSG_!1
- #DPUSH MSG_!1
- #ELSE
- #DPUSH |CI0
- #FREF MSG_!1 !a,!Zg
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- PROPERTY$HELP !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Send Message {OptionalArguments...} {TO Object} {OptionalArguments...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND SEND RSD#OBLG
- #DATA
- #IFDEF !1
- #DPUSH !1
- #ELSE
- #IFDEF MSG_!1
- #DPUSH MSG_!1
- #ELSE
- #DPUSH |CI0
- #FREF MSG_!1 !a,0
- #ENDIF
- #ENDIF
- #IFSAME !2 TO
- SEND$HELP !4 !5 !6 !7 !8 !9
- SEND$CMD TO !2 !3
- #ELSE
- SEND$HELP !2 !3 !4 !5 !6 !7 !8 !9
- SEND$CMD TO TO CURRENT_OBJECT
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SEND$HELP U
- #IF (!0>0)
- #DPUSH !1
- SEND$HELP !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SEND$CMD
- #IFSAME !1 !2
- #IFDEF !3
- // !A [] OBJ$SEND !3 |VL
- !A [] $044C !3 |VL
- #ELSE
- #IFDEF !3.OBJ
- !A [] OBJ$SEND !3.OBJ |VL
- #ELSE
- !A [] OBJ$SEND |CI0 |VL
- #FREF !3.OBJ !a
- #ENDIF
- #ENDIF
- #ELSE
- !A [] OBJ$SEND CURRENT_OBJECT |VL
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Procedure {Set} Message {FOR Class} {{Type Argument} ...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND PROCEDURE R
- #IFSAME !1 SET
- HANDLE$MESSAGE SET_!2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- HANDLE$MESSAGE MSG_!1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Function Message {FOR Class} {Type Argument} RETURNS Type
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND FUNCTION R
- HANDLE$MESSAGE GET_!1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDCOMMAND
-
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command: HANDLE$MESSAGE Message { FOR Class } { RETURNS Type } { Type Argument }
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND HANDLE$MESSAGE RGOBL#
- #IF (!b & 4)
- #ERROR 100 Procedures and Functions may .not. be nested.
- #ENDIF
- #CHECK NUM_ARGUMENTS _T
- #PUSH !Zg
- #PUSH !Za
- #SET ZA$ !a
- #PUSH !Zu
- #DATA
- #STKSYM // forget all old stack symbols
- #SET B$ (!b | 4) // set flag to in_procedure
- #REPLACE NUM_ARGUMENTS |SI0 // define the arg count
- #IFSAME !2 GLOBAL
- #DPUSH |CI0 // No message
- #DPUSH |CI0 // for no class
- #CHECK !1 T // cant have dups of these globals
- #SET ZG$ (0-!a-2) // make it negative to distuinguish it
- #REPLACE !1 |CI!Zg // this will cause all fwd refs to be fixed.
- #IF (!0>1) // do we have arguments?
- #SET ZG$ 1 // starting argument number
- DEFINE_ARGUMENTS !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #FREG !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 FOR // are we explict about the class?
- MESSAGE$ADDRESS !1 // create id symbol for this message
- #DPUSH !1
- #IFDEF !3
- #IFSAME !3 DESKTOP
- #DPUSH U_DESKTOP // Message for the desktop class
- #ELSE
- #DPUSH !3 // Message for the named class
- #ENDIF
- #ELSE
- #CHECK U_!3 RSDNU // check the class for goodness
- #DPUSH U_!3 // Message for the named class
- #ENDIF
- #IF (!0>3)
- #SET ZG$ 1 // starting argument number
- DEFINE_ARGUMENTS !4 !5 !6 !7 !8 !9
- #ENDIF
- #FREG !1 !4 !5 !6 !7 !8 !9
- #ELSE
- #IF (!b & 2) // obj_flag == in_class?
- MESSAGE$ADDRESS !1 // yes, same as handle "for"
- #DPUSH !1 // the message
- #DPUSH U_!$ // handle msg for "current class"
- #ELSE
- #IF (!b & 1) // in_object, instance method
- !A [] CLONE$CLASS
- MESSAGE$ADDRESS !1 // yes, same as handle "for"
- #DPUSH !1 // the message
- #DPUSH |CI0 // handle for objects class
- #ELSE // just your simple global message
- #DPUSH |CI0 // No message
- #DPUSH |CI0 // for no class
- #CHECK !1 T // cant have dups of these globals
- #SET ZG$ (0-!a-2) // make it negative to distuinguish it
- #REPLACE !1 |CI!Zg // this will cause all fwd refs to be fixed.
- #ENDIF
- #ENDIF
- #IF (!0>1) // do we have arguments?
- #SET ZG$ 1 // starting argument number
- DEFINE_ARGUMENTS !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #FREG !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- // !A [] HANDLE$FOR |CI0 |VL // handle the message
- !A [] $0454 |CI0 |VL
- #FREF OBJ$!Za$ENDPROC !a // fref the end procedure line
- #SET ZG$ 0 // starting argument number for locals
- #ENDCOMMAND
-
- #COMMAND MESSAGE$ADDRESS
- #IFDEF !1
- #ELSE // assign the next message number now
- #SET ZC$ !ZC
- #IF (!Zc>$0FFF)
- #ERROR 100 Maximum number of message/property definitions exceeded
- #ELSE
- #REPLACE !1 |CI!Zc // this will cause all fwd refs to be fixed.
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Register_Procedure Message {FOR Class} {{Type Argument} ...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND REGISTER_PROCEDURE R
- #IFSAME !1 GLOBAL
- #ERROR 101 GLOBAL PROCEDURES CANNOT BE REGISTERED
- #ELSE
- #IFSAME !1 SET
- MESSAGE$ADDRESS SET_!2
- #ELSE
- MESSAGE$ADDRESS MSG_!1
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Register_Function Message {FOR Class} {{Type Argument} ...} RETURNS Type
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND REGISTER_FUNCTION R
- #IFSAME !1 GLOBAL
- #ERROR 101 GLOBAL FUNCTIONS CANNOT BE REGISTERED
- #ELSE
- MESSAGE$ADDRESS GET_!1
- #IFSAME !2 FOR
- #FREG GET_!1 !4 !5 !6 !7 !8 !9
- #ELSE
- #FREG GET_!1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND DEFINE_ARGUMENTS
- #IF (!0>0)
- #IFSAME !1 STRING
- #REPLACE !2 |SS-!ZG
- #ELSE
- #IFSAME !1 NUMBER
- #REPLACE !2 |SN-!ZG
- #ELSE
- #IFSAME !1 INTEGER
- #REPLACE !2 |SI-!ZG
- #ELSE
- #IFSAME !1 DATE
- #REPLACE !2 |SD-!ZG
- #ELSE
- #IFSAME !1 REAL
- #REPLACE !2 |SR-!ZG
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- DEFINE_ARGUMENTS !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // END_PROCEDURE
- //
- // Parameters:
- // None.
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND END_PROCEDURE .
- #SET B$ (!b & 3) // reset flag to in_procedure
- #POP U$
- #REPLACE OBJ$!Za$LNUM |CI!Zg // Update the count in the local cmd.
- // !A [] OBJ$END$HANDLER |CI0
- !A [] $0455 |CI0
- #REPLACE OBJ$!Za$ENDPROC !a
- #POP U$
- #POP ZG$
- #STKSYM
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // FUNCTION_RETURN {OptionalReturnValue}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND FUNCTION_RETURN UGO .
- #IF (!0 > 0)
- // !A [] OBJ$HRET !1
- !A [] $0450 !1
- #ELSE
- // !A [] OBJ$HRET |CI0
- !A [] $0450 |CI0
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // LOCAL {STRING | NUMBER | DATE | INTEGER | REAL} LocalName {...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND LOCAL T T
- #IF (!0>0)
- #CHECK !1 '"STRING""NUMBER""DATE""INTEGER""REAL"'
- #CHECK !2 RT
- #IFDEF NUM_ARGUMENTS
- #IF (!Zg = 0)
- // !A [] LOCAL$ARGUMENT |CI0 // Create the command to save the local count,
- !A [] $0456 |CI0
- #FREF OBJ$!Za$LNUM !a // and tell flex to update it later.
- #ENDIF
- #IFSAME !1 STRING
- #REPLACE !2 |SS!ZG
- #ELSE
- #IFSAME !1 NUMBER
- #REPLACE !2 |SN!ZG
- #ELSE
- #IFSAME !1 DATE
- #REPLACE !2 |SD!ZG
- #ELSE
- #IFSAME !1 INTEGER
- #REPLACE !2 |SI!ZG
- #ELSE
- #IFSAME !1 REAL
- #REPLACE !2 |SR!ZG
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ELSE
- !1 !2
- #ENDIF
- #IF (!0>2)
- LOCAL !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // Class New_Class IS A|AN Old_Class {STARTMAC StartMacro} {ENDMAC EndMacro}
- // {FgColor BgColor {HandlerName}}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND CLASS _RCDNSO "IS" "A""AN" _RDNO //_UGBO#L _UGBO#L _GBO#L .
- #CHECK U_!4 _U // does class exist?
- #REPLACE !1$SC !4 //define superclass of new class
- #IFSAME !5 STARTMAC //if start macro specified,
- #REPLACE !1$SM !6 //remember its name
- #IFSAME !7 ENDMAC //if end macro specified,
- #REPLACE !1$EM !8 //remember it
- BASE_CREATE_CLASS !1 !2 !3 !4 !9
- #ELSE
- BASE_CREATE_CLASS !1 !2 !3 !4 !7 !8 !9
- #ENDIF
- #ELSE
- #IFSAME !5 ENDMAC //no STARTMAC - if ENDMAC specified,
- #REPLACE !1$EM !6 //remember it
- BASE_CREATE_CLASS !1 !2 !3 !4 !7 !8 !9
- #ELSE
- BASE_CREATE_CLASS !1 !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // BASE_CREATE_CLASS New_Class IS A|AN Old_Class {FgColor BgColor {HandlerName}}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND BASE_CREATE_CLASS _RCDNSO "IS" "A""AN" _RDNO _UGBO#L _UGBO#L _GBO#L .
- #PUSH !b // save obj_flag
- #PUSH !Zb // save current_dep
- #PUSH !Zf // save the super_class_count
- #SET B$ (!b | 2) // set flag to in_class
- #SET ZB$ 0 // based on atomic class object
- #IF ( (!b & 1) = 0 ) // are we NOT in a create_object?
- #IFDEF !4.AGG // bump dep number by already
- #SET ZB$ !4.AGG // defined sub objects
- #ENDIF
- #ENDIF
- #SET ZF$ !Zb // save the super_class_count
- #PUSH !Zi // save current sub object count
- #SET ZI$ 0 // and init for new class
-
- #PUSH !x // save old property index
- #SET X$ 0 //init to first array index# (0)
-
- #SPUSH !$ // save the old class name
- #SET $$ !1 // retain the name of the class
- #IFDEF U_!1 // if the new class id has already
- #ELSE // been defined, dont bother
- INTEGER U_!1 // else put it into a int of that name
- #ENDIF
- #DATA // wind up the stream
- #IFDEF !4
- #DPUSH !4
- #ELSE
- #DPUSH U_!4 // based upon
- #ENDIF
- #IF (!0<5)
- #DPUSH |CI0 // no colors defined, use default
- #ELSE
- #DPUSH !5 // else do what they say
- #ENDIF
- #IF (!0<6)
- #DPUSH |CI0 // no colors defined, use default
- #ELSE
- #DPUSH !6 // else do what they say
- #ENDIF
- #IF (!0=7) // if parameter used, this will be
- #DPUSH |CS"!7" // the name of a 'C' function.
- #ELSE
- #DPUSH |CS"" // else inherit one from the parent
- #ENDIF
- !A [] CREATE$CLASS U_!1 |VL // let 'er rip
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // END_CLASS
- //
- // Parameters:
- // None.
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND END_CLASS .
- #SET ZI$ (!Zi+!Zf) //subobject count = self + superclass
- #REPLACE !$.AGG |CI!Zi //define subobject count
- !A [] END$CLASS U_!$ |CI!Zi
-
- #SPOP // restore the old class name
- #POP X$ // reset the property index
- #POP ZI$ // reset old sub_object_count
- #POP ZF$ // reset super_class_count
- #POP ZB$ // reset current_dep
- #POP B$ // reset obj_flag
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // PROPERTY Type Name PRIVATE | PUBLIC {InitialValue}
- //
- // Parameters:
- // Type is a primitive DataFlex variable type, i.e. Integer, String...
- // Name is the local name of the property
- // PRIVATE indicates that no access handlers should be built
- // PUBLIC indicates that access/set handlers should be built (default)
- // InitialValue is the value the property is to have on creation
- //
- // Description:
- // PROPERTY declares an attribute of a class, and optionally provides
- // get and set handlers to manipulate its value. The class receiving
- // the property is assumed to have defined an array-object named
- // Attributes; properties will be stored in the Attributes array in the
- // order in which they are declared.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND PROPERTY R R """PRIVATE""PUBLIC" UGO .
- #IFSAME !3 PRIVATE
- PROPERTY !1 !$.!2 PUBLIC !4
- #ELSE
- #IF (!b & 1) // in_object, instance method
- !A [] CLONE$CLASS // Create a new class
- #ENDIF
- #DATA // Start the property
- MESSAGE$ADDRESS GET_!2
- #DPUSH GET_!2 // Push the get property id
- #FREG GET_!2 RETURNS !1
- MESSAGE$ADDRESS SET_!2
- #DPUSH SET_!2 // Push the set property id
- #DTYPE Q$ !1 // get the property type in q
- #DPUSH |CI!q // push the type
- #IF (!0 > 3)
- #DPUSH !4
- #ENDIF
- !A [] CREATE$PROPERTY |CI0 |VL
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // CALL RoutineName {Parameters ...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND CALL RGBO#L
- SEND !1 TO DESKTOP !2 !3 !4 !5 !6 !7 !8 !9
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // SUB_PAGE NewPage FROM FromPage ;
- // { (WindowNumber) | ;
- // ({VERTICAL|HORIZONTAL} FromWindow ForWindows) | ;
- // (RECTANGULAR FromWindow NumColumns NumRows) } {...}
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND SUB_PAGE RT "FROM" RGBO#L
- #PUSH !Zg // h is the number of windows on
- #SET ZG$ 0 // the sub page.
- #DATA // start up the arguments
- #IFDEF !3
- #DPUSH !3 // based on variable page number
- #ELSE
- #CHECK !3.N U
- #DPUSH !3.N // based on absolute page number
- #ENDIF
- SUB$IMAGE$DEFINE !4 !5 !6 !7 !8 !9 // loop thru the passed arguments
- #DPUSH |CI!Zg // store the number of windows
- #IFDEF !1.N
- #IFCLASS !1.N "C"
- #ERROR 102 SUB_PAGE !1 ALREADY DEFINED AS A PHYSICAL IMAGE
- #ELSE
- !A [] REDEFINE$SUB$PAGE !1.N |VL // create the sub image
- #ENDIF
- #ELSE
- INTEGER !1.N // create a int to place page # into
- !A [] CREATE$SUB$PAGE !1.N |VL // create the sub image
- #ENDIF
- #POP ZG$ // restore our general counter
- #ENDCOMMAND
-
- #COMMAND SUB$IMAGE$DEFINE
- #IF (!0>0)
- #IFSAME !1 VERTICAL // define a vertical set of windows
- #DPUSH |CI-1 // vertical flag
- #DPUSH !2 // push the start window number
- #DPUSH !3 // and the number of windows
- #SET ZG$ (!Zg+!3) // how many was that?
- SUB$IMAGE$DEFINE !4 !5 !6 !7 !8 !9 // one more time
- #ENDIF
- #IFSAME !1 HORIZONTAL // horzontal (contiguous) windows
- #DPUSH |CI-2 // horizontal flag
- #DPUSH !2 // push the start window number
- #DPUSH !3 // and the number of windows
- #SET ZG$ (!Zg+!3) // how many was that?
- SUB$IMAGE$DEFINE !4 !5 !6 !7 !8 !9 // one more time
- #ENDIF
- #IFSAME !1 RECTANGULAR // a rectangular array of windows
- #DPUSH |CI-3 // the rect. flag
- #DPUSH !2 // push the start window number
- #DPUSH !3 // number of windows per row
- #DPUSH !4 // number of rows
- #SET ZG$ (!Zg+(!3*!4)) // not bad huh
- SUB$IMAGE$DEFINE !5 !6 !7 !8 !9 // and again
- #ENDIF
- #IFSAME !1 VERTICAL RECTANGULAR HORIZONTAL // May look strange, but reduces
- #ELSE // use of #if stack levels.
- #DPUSH !1 // its just a single window def
- #SET ZG$ !ZG // just add one
- SUB$IMAGE$DEFINE !2 !3 !4 !5 !6 !7 !8 !9 // recurse
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND MOVE_SUB_PAGE _RDOBR "TO" _RDOBRU
- #IFDEF !1
- !A [] MOVE$SUB$PAGE !1 !3
- #ELSE
- #CHECK !1.N U
- !A [] MOVE$SUB$PAGE !1.N !3
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // USE PackageName | UI
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND USE R
- #IFSUB '!1.EXISTS'
- #ELSE
- #REPLACE !1.EXISTS |CI!a
- #IFSAME !1 UI
- INITIALIZE_INTERFACE
- #ELSE
- #USE !1
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND VFIND R R R .
- MOVE !2 TO INDEX_NUMBER
- #IFSAME !3 $0 $1 $2 $3 $4
- #SET Q$ !3
- !A [] $CC !1 |CI!q
- #ELSE
- !A [] $CC !1 !3
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- //
- // Parameters:
- //
- // Description:
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND SCREEN_OPTIMIZE RL .
- #IFSAME !1 $0 $1
- #PUSH !Zg
- #SET ZG$ !1
- !A [] SCREEN$OPT |CI!Zg
- #POP ZG$
- #ELSE
- !A [] SCREEN$OPT !1
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // FORWARD_BEGIN_CONSTRUCT ClassName { <argument> ... }
- //
- // Parameters:
- // ClassName is the name of the class which owns the macro that is
- // forwarding.
- // <argument> is any argument required
- //
- // Description:
- // This command allows the instance-creation macros defined for classes
- // to 'inherit' the instance-creation macro(s) defined by their
- // superclass(es).
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND FORWARD_BEGIN_CONSTRUCT R //<currentClassName> { <arg> ... }
- #IFSUB '!1$SC' // if flex-defined class
- #SPUSH !$
- #SET $$ !1$SC //get superclass name
- #IFSUB '!$$SM' //if class defines start macro
- !$$SM !$ !2 !3 !4 !5 !6 !7 !8 !9 //invoke it
- #ELSE //else not defined
- FORWARD_BEGIN_CONSTRUCT !$ !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #SPOP
- #ELSE
- ADD$IMAGE$ARGS MSG_CONSTRUCT_OBJECT !2 !3 !4 !5 !6 !7 !8 !9 //use default
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // FORWARD_END_CONSTRUCT ClassName { <argument> ... }
- //
- // Parameters:
- // ClassName is the name of the class which owns the macro that is
- // forwarding.
- // <argument> is any argument required
- //
- // Description:
- // This command allows the instance-ending macros defined for classes
- // to 'inherit' the instance-ending macro(s) defined by their
- // superclass(es).
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND FORWARD_END_CONSTRUCT R //<currentClassName> { <arg> ... }
- #IFSUB '!1$SC' // if flex-defined class
- #SPUSH !$
- #SET $$ !1$SC //get superclass name
- #IFSUB '!$$EM' //if end-instance macro defined,
- !$$EM !$ !2 !3 !4 !5 !6 !7 !8 !9 //use it
- #ELSE
- FORWARD_END_CONSTRUCT !$ !2 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #SPOP
- #ELSE
- DEFAULT_END_OBJECT //else use default
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND SET_DEFERRED &R .
- !A [] $460 !1
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // NAME_ITEM <object_name> item names...
- //
- // Description:
- // Gives names to items of objects in the form: object.item
- // Assumes item number has already been set.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- #COMMAND NAME_ITEM RT#L R
- #IFDEF !2
- #CHECK !2 #LUVFEWNSG
- #SET Q$ !2
- NAME_ITEM !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 ITEM
- NAME_ITEM !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 COLUMN
- NAME_COLUMN !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 PROPERTY
- NAME_PROPERTY !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #REPLACE !1.!2 !1.OBJ ITEM !q
- #SET Q$ (!q+1)
- #IF !0>2
- NAME_ITEM !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // NAME_COLUMN <object_name> item names...
- //
- // Description:
- // Gives names to items of objects in the form: object.item
- // Just like name_item except item numbers are relative to
- // base_item.
- // Assumes item number has already been set.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- #COMMAND NAME_COLUMN RT#L R
- #IFDEF !2
- #CHECK !2 #LUVFEWNSG
- #SET Q$ !2
- NAME_COLUMN !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 ITEM
- NAME_ITEM !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 COLUMN
- NAME_COLUMN !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 PROPERTY
- NAME_PROPERTY !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #REPLACE !1.!2 !1.OBJ ITEM (BASE_ITEM(!1.OBJ)+!q)
- #SET Q$ (!q+1)
- #IF !0>2
- NAME_COLUMN !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // NAME_PROPERTY <object_name> property names...
- //
- // Description:
- // Gives names to property of objects in the form: object.item
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- #COMMAND NAME_PROPERTY RT#L RT
- #IFSAME !2 ITEM
- NAME_ITEM !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 COLUMN
- NAME_COLUMN !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #IFSAME !2 PROPERTY
- NAME_PROPERTY !1 !3 !4 !5 !6 !7 !8 !9
- #ELSE
- #REPLACE !1.!2 (!2(!1.OBJ))
- #IF !0>2
- NAME_PROPERTY !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // NAME_OBJECT <object_name> ACCESS item names...
- // ACCESS = CHILD, GLOBAL, COLUMN, PROPERTY, ITEM or ACCESS METHOD.
- //
- // Description:
- // Gives names to objects in the form: object.obj
- // and allows items, properties and COLUMNs to be defined.
- // Inits item number to zero and assumes item names follow.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND NAME_OBJECT RT#L R
- #SET Q$ 0
- #IFDEF !2
- #CHECK !2 R#LSD
- #REPLACE !1.OBJ !2
- #IF !0>2
- NAME_ITEM !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- // #CHECK !2 "CHILD""ITEM""GLOBAL""COLUMN""PROPERTY"
- #IFSAME !2 CHILD
- REGISTER_OBJECT !1
- #IFDEF !3
- NAME_OBJECT !1 (!1(!3)) !4 !5 !6 !7 !8 !9
- #ELSE
- #CHECK !3.OBJ #LU
- NAME_OBJECT !1 (!1(!3.OBJ)) !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- #IFSAME !2 GLOBAL
- #IFDEF !1.OBJ
- #CHECK !1.OBJ NSDFW#L
- #ELSE
- INTEGER !1.OBJ
- #ENDIF
- #IFCLASS !1.OBJ V$
- #IF (!b & 1)
- MOVE CURRENT_OBJECT TO !1.OBJ
- #ELSE
- #IF (!b)
- #ERROR 100 NAME_OBJECT MUST PRECEDE CLASS OR PROCEDURE
- #ELSE
- MOVE 1023 TO !1.OBJ
- #ENDIF
- #ENDIF
- #ENDIF
- #IF !0>2
- NAME_ITEM !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- NAME_!2 !1 !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- #COMMAND ITEM_GROUP .
- #PUSH !Zd
- #PUSH !Ze
- #SET ZD$ 0
- !A [] $462 |CI0 //create new item group; size is fwd-ref'd
- #SET ZE$ !a
- #FREF ITEM$GROUP!Ze !a
- #ENDCOMMAND
-
- #COMMAND END_ITEM_GROUP .
- #REPLACE ITEM$GROUP!Ze |CI!Zd //define size of item group
- #POP ZE$
- #POP ZD$
- #ENDCOMMAND
-
- #COMMAND DEPENDENT_ITEM R
- #IFSAME !2 ITEM //if ITEM is second arg, item name replacement was used
- #IFDEF !1
- !A [] $463 !1 !3 //add obj#,item# pair to current item group
- #ELSE
- !A [] $463 !1.OBJ !3 //add obj#,item# pair to current item group
- #ENDIF
- #SET ZD$ !ZD //increment element counter
- #IF (!0>3)
- DEPENDENT_ITEM !4 !5 !6 !7 !8 !9
- #ENDIF
- #ELSE
- #IFDEF !1
- !A [] $463 !1 !2 //add obj#,item# pair to current item group
- #ELSE
- !A [] $463 !1.OBJ !2 //add obj#,item# pair to current item group
- #ENDIF
- #SET ZD$ !ZD //increment element counter
- #IF (!0>2)
- DEPENDENT_ITEM !3 !4 !5 !6 !7 !8 !9
- #ENDIF
- #ENDIF
- #ENDCOMMAND
-
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- // Command:
- // IMPORT_CLASS_PROTOCOL Source Dest {Msg | ALL} {Flag}
- //
- // Description:
- // This command will copy the message definitions of the Source
- // class to the Dest class. The program may choose to copy ALL
- // of the messages or only one of the messages from the Source.
- // The program has the option to stop any message that would overwrite
- // and to stop the copying of messages not directly defined in the
- // Source class.
- //
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- #COMMAND IMPORT_CLASS_PROTOCOL _RSNDLOB# _SNDLOB#
- #IF (!0<2)
- IMPORT_CLASS_PROTOCOL !1 CURRENT_CLASS
- #ELSE
- #DATA // Begining of data
- #IFDEF !1 // class is variable (integer) or constant
- #DPUSH !1 // defined_in
- #ELSE
- #DPUSH U_!1 // class is normal symbol type (integer)
- #ENDIF
- #IFDEF !2 // is the destination defined?
- #DPUSH !2 // add to class
- #ELSE
- #IFSAME !2 CURRENT_CLASS // use this symbol for "current class"
- #DPUSH U_!$ // cc is in this symbol (set by class)
- #ELSE
- #DPUSH U_!2 // another standard class id
- #ENDIF
- #ENDIF
- #IF (!0>2) // message or all specified
- #IFSAME !3 ALL // copy all messages
- #DPUSH |CI0 // 0 is all
- #ELSE
- #IFDEF !3
- #DPUSH !3 // message name, note full name required
- #ELSE
- #IFDEF MSG_!3
- #DPUSH MSG_!3
- #ELSE
- #IFDEF SET_!3
- #DPUSH SET_!3
- #ELSE
- #IFDEF GET_!3
- #DPUSH GET_!3
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #ENDIF
- #IF (!0>3)
- #SET Q$ 0
- CHAIN$HELP !4 !5 // NO_INHERIT and NO_OVERWRITE
- #DPUSH |CI!q // flags
- #ELSE
- #DPUSH |CI0 // no flags
- #ENDIF
- #ELSE
- #DPUSH |CI0 // all messages
- #DPUSH |CI0 // overwrite and superclasses
- #ENDIF
- !A [] $0465 |CI0 |VL
- #ENDIF
- #ENDCOMMAND