( LOAD SCREEN FOR UTILITIES CRC VER = 765 ) : THRU 1+ SWAP DO I U. I LOAD ?TERMINAL IF LEAVE THEN LOOP ; EXIT ( CASE STATEMENT CRC VER = 7982) : !CSP SP@ CSP ! ; : ENDOF 5 ?PAIRS COMPILE BRANCH HERE 0 , SWAP 2 [COMPILE] THEN 4 ; IMMEDIATE ( PAUSE COPY FLUSH DSWAP ID. VLIST CRC VER = 62358) : PAUSE ?TERMINAL IF KEY DROP 1000 0 DO LOOP BEGIN ?TERMINAL UNTIL KEY DROP 2000 0 DO LOOP THEN ; 136 144 THRU : CASE ?COMP CSP @ !CSP 4 ; IMMEDIATE : OF 4 ?PAIRS COMPILE OVER COMPILE = COMPILE 0BRANCH HERE 0 , COMPILE DROP 5 ; IMMEDIATE : ENDCASE 4 ?PAIRS COMPILE DROP BEGIN SP@ CSP @ = 0 = WHILE 2 [COMPILE] THEN REPEAT CSP ! ; IMMEDIATE : COPY OFFSET @ + SWAP BLOCK 2- ! UPDATE ; : FLUSH SAVE-BUFFERS ; : DSWAP 4 ROLL 4 ROLL ; HEX : ID. COUNT 1F AND TYPE ; : VLIST C/L OUT ! CONTEXT @ @ BEGIN C/L OUT @ - OVER C@ 1F AND 4 + < IF CR 0 OUT ! THEN ( SAVE-FORTH CRC VER = 23595): SAVE-FORTH FREEZE 13 0 SYSCALL DROP 14 0 SYSCALL DROP CR CR ." FILE NAME ? ---" PAD 33 0 FILL PAD 1+ 11 BLANK QUERY 0 DO DUP 26 SWAP SYSCALL DROP 21 PAD SYSCALL DROP 128 + LOOP DROP 16 PAD SYSCALL DROP ; ( .INDEX INDEX .SS .SL .SR .S CRC VER = 58176) : .INDEX CR DUP SCR ! U. 1 0 DO I 3 .R SPACE I SCR @ .LINE LOOP ; ( NON-DESTRUCTIVE STACK DISPLAY --- DEFAULT SET TO .SR) 0 CONSTANT .SS ( .S LEFT OR RIGHT SWITCH) : .SL 0 ' .SS ! ; ( .S WITH TOP OF STACK ON LEFT) DUP ID. SPACE SPACE PFA 4 - @ DUP NOT PAUSE ?TERMINAL OR UNTIL DROP ; DECIMAL 46 WORD COUNT 8 MIN PAD 1+ SWAP CMOVE BL WORD COUNT 3 MIN PAD 9 + SWAP CMOVE 19 PAD SYSCALL DROP 22 PAD SYSCALL DROP 256 HERE 0 256 U/MOD SWAP DROP 1+ 2/ 2* 2* : INDEX ( FROM TO --- LISTS LINE 0 OF SCREENS) BEGIN DUP ROT DUP .INDEX DUP ROT < WHILE 1+ SWAP REPEAT DDROP ; : .SR -1 ' .SS ! ; ( .S WITH TOP OF STACK ON RIGHT) : .S CR DEPTH IF .SS IF SP@ S0 2- ELSE SP@ S0 SWAP THEN DO I @ 0 D. 2 .SS +- +LOOP ELSE ." EMPTY STACK" THEN CR ; .SR ( CHECKSUM FOR HAND-ENTERED SOURCE SCREENS CRC VER = 18123): ACCUMULATE ( OLDCRC\CHAR -- NEWCRC) 256 * XOR 8 0 DO DUP 0< IF 16386 XOR DUP + 1+ ELSE DUP + THEN LOOP ; THEN ; ( CAREFUL; LOOPS ON ADDRESSES) : MORE ( -- ADR F) BL WORD DUP C@ 2 < OVER 1+ C@ 33 < AND NOT ; : VERIFY ( SCR# -- CRCVALUE) BLK @ >R >IN @ >R BLK ! 0 >IN ! ( LIST NLIST LISTP NLISTP O-PAGE CRC VER = 65379)0 WARNING ! : LIST PAGE CR DUP SCR ! ." SCR #" U. 16 0 DO CR I 3 .R SPACE I SCR @ .LINE : LISTP ( PUTS A PAUSE INTO LIST, FOR NLISTP -- BELOW) PAGE CR DUP SCR ! ." SCR #" U. 16 0 DO CR I 3 .R SPACE I SCR @ .LINE ?TERMINAL IF LEAVE THEN LOOP CR KEY DROP ; ( N B L GOTO-XY CRC VER = 13142) : N 1 SCR +! ; : DISPOSE ( CRCVALUE\ADR\LEN -- NEWCRCVALUE) OVER DUP C@ 40 = SWAP 1+ C@ BL = AND OVER 1 = AND IF ( COMMENT; SKIP IT) DDROP 41 WORD DROP ELSE 1+ OVER + SWAP DO I C@ ACCUMULATE LOOP 0 BEGIN MORE WHILE BL OVER COUNT + C! COUNT DISPOSE REPEAT DROP R> >IN ! R> BLK ! ; : VER SCR @ VERIFY U. ;