home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / rbsrc / rb-erept.scr < prev    next >
Text File  |  1988-04-28  |  30KB  |  1 lines

  1.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 \ Load Screen                                    08:54 03/29/88                                                                 : MARKER ;                                                      2 28 THRU 2 28 THRU                                             BSAVE OVERLAY RBEREPT                                           FORGET MARKER                                                   BYE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             \ Variables                                      09:08 03/29/88                                                                 FORTH DEFINITIONS DECIMAL                                       BSTART OVERLAY                                                                                                                  INCLUDE REPORT.DEF                                              INCLUDE FILES.DEF                                               INCLUDE FIELD.DEF                                                                                                               SIZEOF REPORT ITEM-ALLOT R.BUFF                                                                                                 0 EQU MODE                       0 EQU CFILE                    0 EQU S.BUFF                     0 EQU DUMMY                                                                                    CREATE TBUFF      80 ALLOT  TBUFF 80 BLANK                                                                                      \ Variables                                      09:09 03/29/88                                                                 1 0 21 0 WINDOW CURRENTW                                        3  2  4 14 WINDOW MODEW                   \ mode window                                                                         VARIABLE CLINE                   VARIABLE CCOL                                                                                                                                                  : MSTR   " Create    Modify    Delete    " ;                    MSTR 3 10 10 CHOICE MODEC                                                                                                       DICTIONARY WRK.DCT NULL                                         DICTIONARY WRK.RPT NULL                                         HCB WRK.LAY                                                     DICTIONARY REL.DCT NULL                                                                                                         \ !line & @line                                  14:43 03/28/88                                                                                                                                 : !LINE          ( --- )                                                         DS0 TBUFF S.BUFF                                                CLINE @ R.BUFF RPT.#COLS C@ DUP >R *                            R> CMOVEL ;                                                                                                    : @LINE          ( --- ) S.BUFF CLINE @ R.BUFF RPT.#COLS C@                      DUP >R * DS0 TBUFF R> CMOVEL ;                                                                                 : .LINE          ( --- ) 1 ?XY NIP                                               FULLW NOR R.BUFF RPT.#COLS C@ 1- TBUFF WND-STR!                 ;                                                                                                                                                                              \ @report                                        09:18 03/29/88                                                                 5 5 10 35 WINDOW REPORTW                                                                                                        ' NO.COND WRK.RPT R.BUFF 0 RPT.DESCR 30 DCT-CHOICE REPORTC                                                                      : @REPORT  " Reports" LISTL DOUBLE REPORTW OPEN-WINDOW                     REPORTW REPORTC DCT-CHOOSE                                      REPORTW CLOSE-WINDOW ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \ edt-rpt & del-rpt                              15:01 04/01/88                                                                                                                                 : EDT-RPT   @REPORT DUP                                                     IF 1- R.BUFF OVER WRK.RPT DICT-READ                                   WRK.LAY 8712 ROT UM* 0 FSEEK 2DROP                              WRK.LAY S.BUFF 0 8712 FREADL DROP CLINE OFF               1 THEN ;                                                                                                                                                                            : DEL-RPT  @REPORT DUP                                                     IF 1- WRK.RPT DEL-ITEM 0 THEN ;                                                                                                                                                                                                                                                                                      \ new-rpt                                        09:49 03/29/88                                                                 5 5 3 35 WINDOW ADDW                                                                                                            : NEW-RPT " Report Description" NONE DOUBLE ADDW OPEN-WINDOW              R.BUFF SIZEOF REPORT ERASE                                      2 2 ADDW R.BUFF RPT.DESCR 30 @STRING DROP                       ADDW CLOSE-WINDOW                                               79 R.BUFF RPT.#COLS C!    66 R.BUFF RPT.#LINES C!               00 R.BUFF RPT.LM C!       00 R.BUFF RPT.RM C!                   R.BUFF WRK.RPT ADD-ITEM DUP                                     WRK.LAY 8712 ROT UM* 0 FSEEK 2DROP                              WRK.LAY S.BUFF 0 8172 FWRITEL DROP                              R.BUFF SWAP WRK.RPT DICT-READ -1 ;                                                                                                                                                    \ @mode                                          09:33 03/29/88                                                                 CREATE DVECS  ] NOOP NEW-RPT EDT-RPT DEL-RPT [                                                                                  : @MODE   ( --- t/f )                                                     " Active DataBases" @ACTIVES DUP IF 1- EQU CFILE                WRK.DCT CFILE NAME>DCT WRK.RPT CFILE NAME>RPT                   WRK.DCT HCB>N -EXT " .LAY" +EXT WRK.LAY NAME>HCB                WRK.DCT OPEN-DICTIONARY                                         WRK.RPT OPEN-DICTIONARY WRK.LAY 2 FOPEN DROP                    " Reports" NONE SINGLE MODEW OPEN-WINDOW                        MODEW MODEC CHOOSE MODEW CLOSE-WINDOW                           DUP IF 2* DVECS + PERFORM THEN THEN ;                                                                                                                                                                                                                 \ rhelp                                          09:43 04/22/88                                                                                                                                 : RHELP      3 HELP 00 00 ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     \ rhlines                                        14:10 03/25/88                                                                 : RHLINES  R.BUFF RPT.#COLS C@ 1                                           ?DO                                                               I 1 FULLW NOR 196 WND-CHAR!                                     I 22 FULLW NOR I 10 MOD IF 193 ELSE 197 THEN                    WND-CHAR!                                                     LOOP ;                                                                                                               : RVLINES  22 2                                                            ?DO                                                               0 I FULLW NOR 179 WND-CHAR!                                     R.BUFF RPT.#COLS C@ I FULLW NOR 179 WND-CHAR!                  LOOP ;                                                                                                                                                                              \ rbox                                           14:50 03/25/88                                                                 : RBOX   0 1 FULLW NOR 218 WND-CHAR!                                     0 R.BUFF RPT.#COLS C@ + DUP >R 1 FULLW NOR 191                  WND-CHAR!                                                       0 22 DUP >R  FULLW NOR 192                                      WND-CHAR!                                                       R> R> SWAP FULLW NOR 217 WND-CHAR!                              RHLINES RVLINES ;                                                                                                      : MARGINS  R.BUFF RPT.RM C@ R.BUFF RPT.LM C@ <> IF                         R.BUFF RPT.RM C@ 22                                             DUP >R FULLW HIL 17 WND-CHAR!                                   R.BUFF RPT.LM C@ R> FULLW HIL 16 WND-CHAR! THEN ;                                                                                                                                    \ down & up                                      09:52 03/28/88                                                                                                                                 : DOWN   ( --- cl_off rw_off ) @LINE !LINE                               CLINE @ 65 < IF 1 CLINE +! @LINE                                ?XY NIP 21 =                                                    IF CURRENTW WND-UP 00 00 ELSE 00 01 THEN                        ELSE ERRTONE 00 00 THEN ;                                                                                                                                                              : UP     ?XY NIP 2 = CLINE @ 0 = AND IF ERRTONE 00 00 ELSE               ?XY NIP 2 = CLINE @ 0 >=  AND IF CURRENTW WND-DOWN 00 0         ELSE 00 -1 THEN !LINE -1 CLINE +! @LINE THEN                    ;                                                                                                                                                                                      \ right & left                                   10:35 03/28/88                                                                 : RIGHT ( --- cl_off rw_off )                                           ?XY DROP 1 = IF ERRTONE 00 00                                                ELSE -1 00 -1 CCOL +! THEN   ;                                                                             : LEFT ( --- cl_off rw_off )                                           ?XY DROP R.BUFF RPT.#COLS C@ 1- =                               IF ERRTONE 00 00 ELSE 01 00 1 CCOL +! THEN ;                                                                                                                                             ( -- cl-off rw-off )                                            : LF/CR  DOWN NIP                                                        ?XY DROP 1- NEGATE SWAP CCOL OFF ;                                                                                                                                                     \ pg-dw                                          17:47 03/28/88                                                                                                                                 : HOME   CCOL @ NEGATE 0 CCOL OFF ;                                                                                             : END    0 R.BUFF RPT.#COLS C@ 0 ?DO TBUFF R.BUFF RPT.#COLS C@ +         I - C@ 32 <> IF DROP R.BUFF RPT.#COLS C@ I - LEAVE THEN         LOOP 1+ DUP CCOL @ SWAP - NEGATE                                SWAP CCOL ! 0 ;                                                                                                        : PG-DW  66 CLINE @ - 15 MIN 0                                           ?DO DOWN ?XY ROT + >R + R> GOTOXY .LINE LOOP HOME ;                                                                    : PG-UP  CLINE @ 15 MIN 0                                                ?DO UP ?XY ROT + >R + R> GOTOXY .LINE LOOP HOME ;                                                                      \ bck_sp & sp                                    10:53 03/28/88                                                                 : CLR-LINE TBUFF 80 BLANK HOME ;                                                                                                                                                                : BCK_SP ( --- ) ?XY FULLW NOR 32 WND-CHAR!                                      32 CCOL @ TBUFF + C! RIGHT ;                                                                                                                                                   : DELETE   TBUFF CCOL @ + 1+ TBUFF CCOL @ +                                R.BUFF RPT.#COLS C@ CCOL @ - CMOVE                              0 0 ;                                                                                                                                                                                                                                                                                                                \ char-process                               hs  10:18 01/20/88                                                                 ( char -- cl-off rw-off flag )                                  : CHAR-PROCESS   MODE IF TBUFF CCOL @ + DUP 1+ R.BUFF RPT.#COLS                          C@ CCOL @ - CMOVE> THEN                                 DUP CCOL @ TBUFF + C! DROP                       \              >R ?XY FULLW NOR R> WND-CHAR!                                   0 LEFT 0 ;                                                                                                     : SPACE  32 CHAR-PROCESS DROP ROT DROP ;                                                                                                                                                                                                                                                                                                                                                                                                                        \ toggle-mode                                    07:21 03/29/88                                                                                                                                 : TMODE      MODE 1 XOR EQU MODE ;                                                                                                                                                              : COORDS      63 24 FULLW REV MODE IF " Ins" ELSE "    " THEN                 WND-CSTR!                                                       70 24 FULLW REV CLINE @ 0 <# 44 HOLD # # #> SWAP                WND-STR!                                                        73 24 FULLW REV CCOL @ 0 <# # # #> SWAP                         WND-STR! ;                                                                                                                                                                                                                                                                                                        \ @field                                         10:48 03/29/88                                                                 ' NO.COND WRK.DCT FLD.BUFF 0 FLD.NAME 20 DCT-CHOICE FLDC                                                                        : @FIELD  " Fields" LISTL DOUBLE REPORTW OPEN-WINDOW -CUR                 REPORTW FLDC DCT-CHOOSE                                         REPORTW CLOSE-WINDOW +CUR IF                                    FLD.BUFF FLD.NLEN C@ 0                                          ?DO FLD.BUFF FLD.NAME I + C@                                        CHAR-PROCESS DROP ROT DROP                                      ?XY ROT + >R + R> GOTOXY                                    LOOP THEN 0 0 ;                                                                                                                                                                                                                                                                                                       \ ins-line                                       15:41 03/31/88                                                                                                                                 : INS-LINE  S.BUFF CLINE @ R.BUFF RPT.#COLS @ *                             2DUP R.BUFF RPT.#COLS @ +                                       66 CLINE @ - R.BUFF RPT.#COLS @ * CMOVEL>                       TBUFF 80 BLANK                                                  !LINE .LINE ?XY CLINE @                                         21 ?XY NIP                                                      ?DO @LINE .LINE 1 CLINE +!                                          ?XY 1+ GOTOXY LOOP CLINE ! GOTOXY                           @LINE .LINE 0 0 ;                                                                                                                                                                                                                                                                                                   \ ins-line                                       15:41 03/31/88                                                                                                                                 : DEL-LINE  S.BUFF CLINE @ R.BUFF RPT.#COLS @ *                             2DUP R.BUFF RPT.#COLS @ + 2SWAP                                 66 CLINE @ - R.BUFF RPT.#COLS @ * CMOVEL                        .LINE ?XY CLINE @                                               21 ?XY NIP                                                      ?DO @LINE .LINE 1 CLINE +!                                          ?XY 1+ GOTOXY LOOP CLINE ! GOTOXY                           @LINE .LINE 0 0 ;                                                                                                                                                                                                                                                                                                                                                                   \ disp-page                                      18:19 03/29/88                                                                                                                                 : DISP-PAGE 1 2 FULLW WND-GOTOXY CLINE OFF                                  20 0                                                            ?DO @LINE .LINE 1 CLINE +!                                          ?XY 1+ GOTOXY LOOP CLINE OFF  ;                                                                                                                                                                                                                 : .TITLE-LNE PAD 80 BLANK                                                    0 24 FULLW REV 80 PAD WND-STR!                                 35 24 FULLW REV " Design a Report" WND-CSTR!                     2 24 FULLW REV 30 R.BUFF RPT.DESCR WND-STR! ;                                                                                                                                      \ rpt-setup & @mem                               10:06 03/29/88                                                                 : RPT-SETUP ( --- )                                                         R.BUFF RPT.#COLS C@ CURRENTW WINDOW-#COL C!                     DISP-PAGE                                                       CLINE OFF CCOL OFF @LINE                                        1 EQU MODE ;                                                                                                                                                                        : @MEM      545 MALLOC EQU S.BUFF                                           TBUFF 80 BLANK                                                  66 0 DO DS0 TBUFF S.BUFF I 80 * 80 CMOVEL LOOP ;                                                                                                                                                                                                                                                                    \ draw-window                                    14:24 04/04/88                                                                 5 15 8 50 WINDOW SIZEW                                                                                                          : DRAW-WINDOW  " Report Specs." EDITL DOUBLE SIZEW OPEN-WINDOW                 2 2 SIZEW NOR " Description:" WND-CSTR!                         2 3 SIZEW NOR " #Lines/Page:" WND-CSTR!                         2 4 SIZEW NOR " #Cols/Line :" WND-CSTR!                         2 5 SIZEW NOR " Right Marg.:" WND-CSTR!                         2 6 SIZEW NOR " Left Marg. :" WND-CSTR!              15 2 SIZEW HIL 30 R.BUFF RPT.DESCR WND-STR!                     15 3 SIZEW HIL R.BUFF RPT.#LINES C@ 0 <# #S #> SWAP WND-STR!    15 4 SIZEW HIL R.BUFF RPT.#COLS C@ 0 <# #S #> SWAP WND-STR!     15 5 SIZEW HIL R.BUFF RPT.RM C@ 0 <# #S #> SWAP WND-STR!        15 6 SIZEW HIL R.BUFF RPT.LM C@ 0 <# #S #> SWAP WND-STR! ;                                                                  \ fetches                                        14:33 04/04/88                                                                 : @DESCR    15 2 SIZEW R.BUFF RPT.DESCR 30 @STRING ;                                                                            : @LINES    15 3 SIZEW R.BUFF RPT.#LINES C@ 0 0 2 @NUM                      >R DROP 66 MIN R.BUFF RPT.#LINES C! R> ;                                                                            : @COLS     15 4 SIZEW R.BUFF RPT.#COLS C@ 0 0 2 @NUM                       >R DROP 79 MIN R.BUFF RPT.#COLS C! R> ;                                                                             : @RM       15 5 SIZEW R.BUFF RPT.RM C@ 0 0 2 @NUM                          >R DROP 79 MIN R.BUFF RPT.RM C! R> ;                                                                                : @LM       15 6 SIZEW R.BUFF RPT.LM C@ 0 0 2 @NUM                          >R DROP 79 MIN R.BUFF RPT.LM C! R> ;                                                                                \ @size                                          15:03 04/04/88                                                                 CREATE vINP  ] @DESCR @LINES @COLS @RM @LM [                                                                                    5 ' NOOP vINP INP-DEF ISIZE                                                                                                     : @SIZE  DRAW-WINDOW                                                     ISIZE 0 @SCREEN DROP                                            SIZEW CLOSE-WINDOW                                              CLS RBOX RPT-SETUP .TITLE-LNE                                   1 2 FULLW WND-GOTOXY 0 0 ;                                                                                                                                                                                                                                                                                                                                                             \ process                                  h hs  10:18 01/20/88 : PROCESS  PCKEY ?DUP 0= IF 100 + THEN                                     CASE                                                  168 OF  -1 -1 0 0  ENDOF ( f10   f1 ) 159 OF 0 RHELP     ENDOF   27 OF   0 -1 0 0  ENDOF ( esc   f3 ) 161 OF 0 @SIZE     ENDOF  014 OF 0 INS-LINE  ENDOF ( ^N    f6 ) 179 OF 0 END       ENDOF  172 OF 0 UP        ENDOF ( up    dw ) 180 OF 0 DOWN      ENDOF  177 OF 0 LEFT      ENDOF ( lft   rg ) 175 OF 0 RIGHT     ENDOF   32 OF 0 SPACE     ENDOF ( sp    cr )  13 OF 0 LF/CR     ENDOF  160 OF 0 @FIELD    ENDOF ( f2       )  08 OF 0 BCK_SP    ENDOF  183 OF 0 DELETE    ENDOF ( del pgdw ) 181 OF 0 PG-DW     ENDOF  173 OF 0 PG-UP     ENDOF              171 OF 0 HOME      ENDOF  021 OF 0 CLR-LINE  ENDOF              182 OF 0 TMODE 0 0 ENDOF  025 OF 0 DEL-LINE  ENDOF                                                  CHAR-PROCESS ENDCASE !LINE                                      ?XY ROT + >R + R> GOTOXY .LINE COORDS ;              \ rberept                                        14:50 03/25/88                                                                 : RBEREPT ( --- )                                                         @MEM @MODE IF CLS                                             RBOX MARGINS RPT-SETUP                                          .TITLE-LNE                                                     1 2 FULLW WND-GOTOXY BEGIN PROCESS UNTIL                        IF R.BUFF WRK.RPT DUP D.LST-READ @ DUP >R SWAP DICT-WRITE          WRK.LAY 8712 R> UM* 0 FSEEK 2DROP                               WRK.LAY S.BUFF 0 8712 FWRITEL DROP                           THEN WRK.DCT CLOSE-DICTIONARY                                   WRK.RPT CLOSE-DICTIONARY WRK.LAY FCLOSE DROP                    THEN S.BUFF FREE ;                                                                                                                                                                                                                                       \ Excises                                        16:56 04/13/88                                                                 EXCISE MODE CFILE                                               EXCISE S.BUFF DUMMY