papierkorb:editor.blk
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| papierkorb:editor.blk [2025-08-16 17:50] – ↷ Seite von projects:editor.blk nach papierkorb:editor.blk verschoben mka | papierkorb:editor.blk [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ===Mode-less full feature text editor=== | ||
| - | < | ||
| - | 0 list Screen 0 not modified | ||
| - | 0 \ VEDIT - FORTHSTAR | ||
| - | 1 \ Last change: | ||
| - | 2 Before loading the editor make the following changes to your | ||
| - | 3 UTILITY.BLK | ||
| - | | ||
| - | 5 DEFER EDIT ' | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 ALSO !! The recompiled system will overwrite the file | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 DO YOU HAVE A BACKUP | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 1 list Screen 1 not modified | ||
| - | 0 \ EDITOR LOAD BLOCK 22: | ||
| - | 1 : ARE.YOU.SURE? | ||
| - | | ||
| - | 3 CR .( LOADING | ||
| - | 4 ONLY FORTH DEFINITIONS ' NOOP IS WHERE | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 FROM UTILITY.BLK | ||
| - | 11 FROM UTILITY.BLK | ||
| - | 12 FROM UTILITY.BLK | ||
| - | 13 FROM UTILITY.BLK | ||
| - | 14 FROM UTILITY.BLK | ||
| - | 15 | ||
| - | |||
| - | 2 list Screen 2 not modified | ||
| - | 0 \ Load up the system | ||
| - | | ||
| - | 2 : HELLO (S -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 : MARK (S -- ) | ||
| - | 10 CREATE | ||
| - | 11 MARK EMPTY HERE FENCE ! | ||
| - | 12 CR .( System has been loaded, Size = ) HERE U. | ||
| - | 13 ( EXIT ) \ Remove brackets on EXIT when testing mods to EDITOR | ||
| - | 14 | ||
| - | 15 SAVE-SYSTEM FORTH83.COM CR .( System saved as FORTH83.COM ) | ||
| - | |||
| - | 4 list Screen 4 not modified | ||
| - | 0 \ Define vocabularies, | ||
| - | | ||
| - | 2 ONLY FORTH DEFINITIONS VOCABULARY EDITOR | ||
| - | | ||
| - | 4 ONLY FORTH ALSO ROOT | ||
| - | | ||
| - | 6 : EDITOR EDITOR ; | ||
| - | | ||
| - | 8 ONLY FORTH ALSO EDITOR ALSO DEFINITIONS | ||
| - | | ||
| - | 10 ORDER | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 5 list Screen 5 not modified | ||
| - | 0 \ VIDEO-IO | ||
| - | 1 \ Call video-io BIOS routines with type $10=16 INTerupt. | ||
| - | 2 CODE VIDEO-IO | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 DX PUSH \ Return all registers to user. | ||
| - | 11 CX PUSH | ||
| - | 12 BX PUSH | ||
| - | 13 | ||
| - | 14 END-CODE | ||
| - | 15 | ||
| - | |||
| - | 6 list Screen 6 not modified | ||
| - | | ||
| - | | ||
| - | 2 \ Leave true flag if KBF has changed. | ||
| - | 3 CODE KBF? ( -- flag ) \ Was: $KBF @ KBF DUP $KBF ! <> | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 0= IF AX AX SUB \ Leave false flag if the same | ||
| - | 11 ELSE AX 0 [DI] MOV \ Update $KBF and | ||
| - | 12 -1 # AX MOV \ return true if KBF has changed. | ||
| - | 13 THEN 1PUSH \ Push AX and fall into NEXT | ||
| - | 14 END-CODE | ||
| - | 15 | ||
| - | |||
| - | 7 list Screen 7 not modified | ||
| - | 0 \ INIT-WINDOW | ||
| - | 1 \ Scroll active page up. | ||
| - | 2 CODE INIT-WINDOW ( ulc ulr lrc lrr atrib -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 8 list Screen 8 not modified | ||
| - | 0 \ GOTOXY | ||
| - | 1 \ Move cursor to new location at (col, | ||
| - | 2 CODE AT (S col row -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 END-CODE | ||
| - | 11 : GOTOXY | ||
| - | 12 \ Wait for key without checking break key!! | ||
| - | 13 : {KEY} (S -- char ) | ||
| - | 14 0 7 BDOS 255 AND ; | ||
| - | 15 | ||
| - | |||
| - | 9 list Screen 9 not modified | ||
| - | 0 \ KBF @DATE | ||
| - | 1 \ Return the current state of the keybord flag KB_FLAG | ||
| - | 2 CODE KBF ( -- kbf ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 \ Fetch date from DOS. Returned in packed form, see (.DATE) | ||
| - | 9 CODE @DATE ( -- year mmdd ) | ||
| - | 10 42 ( 2A) # AH MOV | ||
| - | 11 33 ( 21) INT | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 10 list Screen 10 not modified | ||
| - | 0 \ @TIME TSMH TT SS MM HH 18: | ||
| - | 1 \ Fetch time from DOS. Returned packed in TSMH . | ||
| - | 2 CREATE TSMH 4 ALLOT | ||
| - | | ||
| - | 4 : TTT TSMH C@ ; : SSS TSMH 1+ C@ ; | ||
| - | 5 : MMM TSMH 2+ C@ ; : HHH TSMH 3 + C@ ; | ||
| - | | ||
| - | 7 CODE @TIME ( -- -- ) | ||
| - | | ||
| - | | ||
| - | 10 TSMH # DI MOV | ||
| - | 11 DX 0 [DI] MOV | ||
| - | 12 CX 2 [DI] MOV | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 11 list Screen 11 not modified | ||
| - | 0 \ ATRIB VEMIT 20: | ||
| - | | ||
| - | | ||
| - | 3 \ Emit character according to current attribute in ATRIB | ||
| - | 4 CODE VEMIT ( char -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 AX POP \ Fetch character to output. | ||
| - | 11 14 # AH MOV \ Now output actual character | ||
| - | 12 16 INT \ this time cursor will advance | ||
| - | 13 #OUT # DI MOV \ to the next legal position. | ||
| - | 14 0 [DI] INC \ Increment FORTH' | ||
| - | 15 | ||
| - | |||
| - | 12 list Screen 12 not modified | ||
| - | 0 \ (KEY? | ||
| - | | ||
| - | | ||
| - | 3 \ Skan for key press returning true if key is down. | ||
| - | 4 CODE (KEY? | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 1PUSH END-CODE | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 13 list Screen 13 not modified | ||
| - | 0 \ CUR@ CUR! 23: | ||
| - | 1 CODE CUR@ ( -- rc ) \ Fetch cursor position as 16-bit word. | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 \ Restore cursor position, row in hi byte col in low byte. | ||
| - | 9 CODE CUR! ( rc -- ) | ||
| - | 10 2 # AH MOV | ||
| - | 11 BH BH SUB | ||
| - | 12 DX POP | ||
| - | 13 16 INT | ||
| - | 14 NEXT | ||
| - | 15 END-CODE | ||
| - | |||
| - | 14 list Screen 14 not modified | ||
| - | 0 \ MATCH | ||
| - | 1 ASSEMBLER DEFINITIONS | ||
| - | | ||
| - | 3 LABEL MATCH2 | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 LABEL MATCH1 | ||
| - | 12 CX POP CX POP CX POP CX POP | ||
| - | 13 | ||
| - | 14 EDITOR DEFINITIONS | ||
| - | 15 | ||
| - | |||
| - | 15 list Screen 15 not modified | ||
| - | 0 \ MATCH 14: | ||
| - | | ||
| - | 2 CODE MATCH CLD \ Set for auto increment. | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 BEGIN AL LODS \ Fetch byte from screen. | ||
| - | 10 0 [BX] AL CMP \ Compare with string. | ||
| - | 11 0= IF DX PUSH \ Possible match, save | ||
| - | 12 BX PUSH \ current position. | ||
| - | 13 CX PUSH | ||
| - | 14 SI PUSH | ||
| - | 15 | ||
| - | |||
| - | 16 list Screen 16 not modified | ||
| - | 0 \ MATCH 14: | ||
| - | | ||
| - | 2 BEGIN CX DEC \ Decrement string length. | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 0<> UNTIL SI POP \ Restore pointers and counts. | ||
| - | 10 CX POP | ||
| - | 11 BX POP | ||
| - | 12 DX POP | ||
| - | 13 THEN DX DEC \ Decrement byte to end of screen | ||
| - | 14 0= UNTIL MATCH2 #) JMP | ||
| - | 15 | ||
| - | |||
| - | 17 list Screen 17 not modified | ||
| - | 0 \ (OF) | ||
| - | 1 \ EQUIVALENT TO OVER = IF DROP | ||
| - | 2 CODE (OF) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 NEXT END-CODE | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 18 list Screen 18 not modified | ||
| - | 0 \ CASE OF ENDOF ENDCASE | ||
| - | 1 ( see FORTH DIMENSIONS, II/3 page 37 ) | ||
| - | | ||
| - | 3 : CASE CSP @ !CSP TRUE ; IMMEDIATE | ||
| - | | ||
| - | 5 : OF ?CONDITION COMPILE (OF) ?>MARK ; IMMEDIATE | ||
| - | | ||
| - | 7 : ENDOF | ||
| - | | ||
| - | | ||
| - | 10 : ENDCASE | ||
| - | 11 CSP @ = 0= WHILE ?> | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 19 list Screen 19 not modified | ||
| - | 0 \ FIRSTF | ||
| - | 1 \ Search for first match of file spec at adr. | ||
| - | 2 CODE FIRSTF ( adr flag ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 U>= IF AX AX XOR THEN \ Carry flag set if error. | ||
| - | | ||
| - | | ||
| - | 10 \ Search for next file match. | ||
| - | 11 CODE NEXTF ( -- flag ) | ||
| - | 12 79 # AH MOV \ Search for next match. | ||
| - | 13 33 INT | ||
| - | 14 U>= IF AX AX XOR THEN \ Carry set if error. | ||
| - | 15 1PUSH END-CODE | ||
| - | |||
| - | 20 list Screen 20 not modified | ||
| - | 0 \ DBUFF ADD*.* | ||
| - | | ||
| - | 2 \ Add *.* to file spec at adr. | ||
| - | 3 : ADD*.* | ||
| - | | ||
| - | | ||
| - | 6 \ Add *.* if null spec or drive spec only. | ||
| - | 7 : ADD*.*? ( adr adr ) | ||
| - | | ||
| - | | ||
| - | 10 ELSE DUP C@ 2 = \ Maybe drive only. | ||
| - | 11 IF DUP 2+ C@ ASCII : = \ Is it drive spec? | ||
| - | 12 IF ADD*.* | ||
| - | 13 THEN THEN THEN ; | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 21 list Screen 21 not modified | ||
| - | 0 \ DISP-FNAME | ||
| - | 1 \ Display a filename and size from DOS scratch area at HERE | ||
| - | 2 : DISP-FNAME | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 THEN | ||
| - | 12 LOOP 12 #OUT @ 20 MOD - SPACES | ||
| - | 13 DBUFF 26 + DUP @ SWAP 2+ @ 6 D.R ; | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 22 list Screen 22 not modified | ||
| - | 0 \ (DIR) 15: | ||
| - | 1 \ Display directory based on file spec at adr. | ||
| - | 2 : (DIR) ( adr -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 23 list Screen 23 not modified | ||
| - | 0 \ 3DROP FUNCTION-KEYS | ||
| - | 1 : 3DROP DROP 2DROP ; | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 15 CONSTANT BACK-TAB | ||
| - | 11 61 CONSTANT F3 | ||
| - | 12 75 CONSTANT LEFT-ARROW | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 24 list Screen 24 not modified | ||
| - | 0 \ VIDEO MODES 20: | ||
| - | | ||
| - | 2 : -BLINK | ||
| - | 3 : BLINK ATRIB @ 10000000 | ||
| - | | ||
| - | 5 \ Type n bytes of string at adr using current atribute byte. | ||
| - | 6 : VTYPE ( adr n -- ) | ||
| - | | ||
| - | | ||
| - | 9 \ Set cursor type. Start line = sl End line = el | ||
| - | 10 \ Function 1 of type $10 int. | ||
| - | 11 : SET-CURSOR | ||
| - | 12 SWAP FLIP + 0 SWAP 0 256 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 25 list Screen 25 not modified | ||
| - | 0 \ BIG LITTLE AND NO CURSORS | ||
| - | 1 \ Make a big cursor. | ||
| - | 2 : BIG-CURSOR ( -- -- ) | ||
| - | | ||
| - | 4 \ Make a little cursor. | ||
| - | 5 : LITTLE-CURSOR ( -- -- ) | ||
| - | | ||
| - | 7 \ Make no cursor. | ||
| - | 8 : NO-CURSOR ( -- -- ) | ||
| - | | ||
| - | 10 : -NO-CURSOR ( -- -- ) | ||
| - | 11 0 8 SET-CURSOR ; | ||
| - | 12 : SELECT-CURSOR ( -- -- ) | ||
| - | 13 | ||
| - | 14 IF BIG-CURSOR | ||
| - | 15 ELSE LITTLE-CURSOR THEN ; | ||
| - | |||
| - | 26 list Screen 26 not modified | ||
| - | 0 \ CHK .INS .CAP .NUM .SRL .STAMP | ||
| - | | ||
| - | | ||
| - | | ||
| - | 4 : CHK \ nf ofaddr | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 : .STAMP ( -- -- ) CUR@ 25 CUR! $AUTO @ | ||
| - | | ||
| - | 10 HEX : .INS ( kbf -- ) 80 AND $INS CHK ; | ||
| - | 11 : .CAP ( kbf -- ) 40 AND $CAP CHK ; | ||
| - | 12 : .NUM ( kbf -- ) 20 AND $NUM CHK ; | ||
| - | 13 : .SRL ( kbf -- ) 10 AND $SRL CHK ; | ||
| - | 14 : $INIT 80 $INS ! 40 $CAP ! 20 $NUM ! 10 $SRL ! ; DECIMAL | ||
| - | 15 | ||
| - | |||
| - | 27 list Screen 27 not modified | ||
| - | 0 \ FUNCTION KEYS 14: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 79 CONSTANT END | ||
| - | 11 67 CONSTANT F9 | ||
| - | 12 73 CONSTANT PG-UP | ||
| - | 13 68 CONSTANT F10 | ||
| - | 14 81 CONSTANT PG-DN | ||
| - | 15 115 CONSTANT ^LEFT-ARROW | ||
| - | |||
| - | 28 list Screen 28 not modified | ||
| - | 0 \ FUNCTION KEYS 14: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 132 CONSTANT ^PG-UP | ||
| - | 11 100 CONSTANT ^F7 | ||
| - | 12 118 CONSTANT ^PG-DN | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 29 list Screen 29 not modified | ||
| - | 0 \ FUNCTION KEYS | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 108 CONSTANT ALTF5 23 CONSTANT ALTI | ||
| - | 11 109 CONSTANT ALTF6 20 CONSTANT ALTT | ||
| - | 12 110 CONSTANT ALTF7 | ||
| - | 13 111 CONSTANT ALTF8 | ||
| - | 14 112 CONSTANT ALTF9 | ||
| - | 15 113 CONSTANT ALTF10 | ||
| - | |||
| - | 30 list Screen 30 not modified | ||
| - | 0 \ VARIABLES | ||
| - | | ||
| - | 2 : HELD | ||
| - | 3 : SCREEN | ||
| - | 4 : BACKBUF | ||
| - | 5 : SEARCHBUF | ||
| - | 6 : REPLACEBUF | ||
| - | 7 : INSBUF | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 31 list Screen 31 not modified | ||
| - | 0 \ $REPLACE PREV-FILE $DIRECTORY | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 \ Open a new screen file give address of counted string. | ||
| - | 9 : OPEN-SCR | ||
| - | 10 COUNT CUR-FILE [ DOS ] (!FCB) [ EDITOR ] | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 32 list Screen 32 not modified | ||
| - | 0 \ SPLIT .DATE TIME@ (.TIME) .TIME 18: | ||
| - | 1 : SPLIT ( hilo hi lo ) | ||
| - | | ||
| - | | ||
| - | 4 : (.DATE) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 33 list Screen 33 not modified | ||
| - | 0 \ .TIME .DATE 18: | ||
| - | | ||
| - | 2 \ Format the time ready for typing. | ||
| - | 3 : (.TIME) ( -- adr count ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 : .TIME (.TIME) VTYPE ; | ||
| - | 12 | ||
| - | 13 : .DATE (.DATE) VTYPE ; | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 34 list Screen 34 not modified | ||
| - | 0 \ CLOCK PCKEY < | ||
| - | 1 : SS+5 5 $SECONDS +! ; | ||
| - | 2 : .CLOCK ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 : PCKEY ( -- char|code 0 ) | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 .INS DUP .NUM DUP | ||
| - | 12 .CAP .SRL SELECT-CURSOR | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 0= IF {KEY} SWAP THEN ; | ||
| - | |||
| - | 35 list Screen 35 not modified | ||
| - | 0 \ MODE .STATE | ||
| - | 1 : <KEY> ( -- n ) | ||
| - | | ||
| - | 3 : .STATE CUR@ KBF | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 : #IN ( --- n ) | ||
| - | | ||
| - | | ||
| - | 10 DUP 13 = IF DROP EXIT THEN | ||
| - | 11 DUP 8 = IF VEMIT 32 VEMIT 8 VEMIT 10 / ELSE | ||
| - | 12 DUP 48 < OVER 57 > OR IF DROP 7 VEMIT | ||
| - | 13 ELSE DUP VEMIT 48 - SWAP 10 * + THEN THEN | ||
| - | 14 AGAIN ; | ||
| - | 15 | ||
| - | |||
| - | 36 list Screen 36 not modified | ||
| - | 0 \ CLEARSCREEN | ||
| - | 1 \ Clear entire screen. | ||
| - | 2 : CLEARSCREEN | ||
| - | | ||
| - | | ||
| - | 5 \ Swap in our vectors for EMIT AND KEY . | ||
| - | 6 : SW ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 \ Restore original routines for EMIT AND KEY . | ||
| - | 11 : -SW ( -- -- ) | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 37 list Screen 37 not modified | ||
| - | 0 \ STAMP-PAD | ||
| - | | ||
| - | 2 \ Set up screen title as comment with time date and initials. | ||
| - | 3 : STAMP-PAD ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 38 list Screen 38 not modified | ||
| - | 0 \ DATE-SCREEN | ||
| - | | ||
| - | | ||
| - | 3 \ Stamp current screen with time, initials and date. | ||
| - | 4 : DATE-SCREEN | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 39 list Screen 39 not modified | ||
| - | 0 \ DATE-SCR0 | ||
| - | 1 \ Stamp second line of screen 0 with date and last screen | ||
| - | 2 \ modified. | ||
| - | 3 : DATE-SCR0 | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 40 list Screen 40 not modified | ||
| - | 0 \ CURSOR-CHK @(CURSOR) | ||
| - | 1 \ Store top of stack as current cursor value | ||
| - | 2 : CURSOR! | ||
| - | | ||
| - | 4 \ Fetch current value of cursor. | ||
| - | 5 : CURSOR@ | ||
| - | | ||
| - | 7 \ Check for out of bounds cursor. | ||
| - | 8 : CURSOR-CHK | ||
| - | | ||
| - | 10 \ Fetch storrage address corresponding to current cursor. | ||
| - | 11 : ADCUR ( -- adr ) | ||
| - | 12 | ||
| - | 13 \ Fetch character stored at current cursor location. | ||
| - | 14 : @(CURSOR) | ||
| - | 15 | ||
| - | |||
| - | 41 list Screen 41 not modified | ||
| - | 0 \ !(CURSOR | ||
| - | 1 \ Store character at current cursor position. | ||
| - | 2 : !(CURSOR) | ||
| - | | ||
| - | | ||
| - | 5 \ Print current cursor position. | ||
| - | 6 : .CURSOR | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 \ Return character count to end of current line. | ||
| - | 12 : CHAR-TO-EOL | ||
| - | 13 C/L CURSOR@ OVER MOD - ; | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | 42 list Screen 42 not modified | ||
| - | 0 \ +.CURSOR .LINE ?LINE | ||
| - | 1 \ Add n to current current cursor and print it. | ||
| - | 2 : +.CURSOR | ||
| - | | ||
| - | | ||
| - | 5 \ Print line n of the current screen. | ||
| - | 6 : .LINE ( n -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 \ Return number of line that cursor is currently on. | ||
| - | 11 : ?LINE ( -- n ) | ||
| - | 12 | ||
| - | 13 \ Leave true flag if there is a blank at the end of the line. | ||
| - | 14 : BLANK-AT-END? | ||
| - | 15 ?LINE 1+ C/L * 1- SCREEN C@ BL = ; | ||
| - | |||
| - | 43 list Screen 43 not modified | ||
| - | 0 \ ?LINE64* .LINE-TO-END MOVE-LINE | ||
| - | | ||
| - | 2 \ Return currsor position of start of line containing cursor. | ||
| - | 3 : ? | ||
| - | | ||
| - | | ||
| - | 6 \ Reprint the line the cursor is currently on. | ||
| - | 7 : .LINE-TO-END | ||
| - | | ||
| - | | ||
| - | 10 \ Move line n1 to line n2 . | ||
| - | 11 : MOVE-LINE | ||
| - | 12 SWAP C/L * SCREEN | ||
| - | 13 C/L CMOVE ; | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 44 not modified | ||
| - | 0 \ MOVE-HOLD SCROLLDOWN | ||
| - | 1 \ | ||
| - | 2 : MOVE-HOLD | ||
| - | | ||
| - | | ||
| - | 5 \ Scroll screen down one line. | ||
| - | 6 : SCROLLDOWN | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 \ Wipe reading or writing off upper right corner. | ||
| - | 11 : .CLEAN | ||
| - | 12 NO-CURSOR CUR@ 56 1 AT | ||
| - | 13 | ||
| - | 14 CUR! SELECT-CURSOR ; | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 45 not modified | ||
| - | 0 \ SCROLLUP .SCREEN# | ||
| - | 1 \ Scroll screen up one line. | ||
| - | 2 : SCROLLUP ( x y x' y' | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 \ Print screen number and current editing file. | ||
| - | 9 : .SCREEN# | ||
| - | 10 .STATE | ||
| - | 11 ." Screen # " SCREEN# | ||
| - | 12 19 1 AT | ||
| - | 13 IF ." Browsing" | ||
| - | 14 ." | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 46 not modified | ||
| - | 0 \ .WRITING | ||
| - | | ||
| - | | ||
| - | 3 : .WRITING | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 : .READING | ||
| - | | ||
| - | | ||
| - | 10 CUR! SELECT-CURSOR ; | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 47 not modified | ||
| - | 0 \ PRINT-SCREEN | ||
| - | 1 \ Send current screen to the printer. | ||
| - | 2 : PRINT-SCREEN ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 48 not modified | ||
| - | 0 \ PUSH-TO-PROCEED @(SCREEN#) CLEAR-PROMPT | ||
| - | | ||
| - | 2 \ Prompt for key press to continue. | ||
| - | 3 : PUSH-TO-PROCEED | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 \ Fetch screen n to the editing & backup buffer areas. | ||
| - | 8 : @(SCREEN# | ||
| - | | ||
| - | 10 1024 CMOVE 0 SCREEN | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 \ Clear n lines of prompt area below screen. | ||
| - | 14 : CLEAR-PROMPT | ||
| - | 15 0 20 ROT 79 SWAP ATRIB @ INIT-WINDOW 6 20 AT ; | ||
| - | |||
| - | |||
| - | Screen 49 not modified | ||
| - | 0 \ !(SCREEN# | ||
| - | 1 \ Store current screen in a FORTH buffer and mark as updated. | ||
| - | 2 : !(SCREEN# | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 IF SCREEN# | ||
| - | 11 | ||
| - | 12 THEN ; | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 50 not modified | ||
| - | 0 \ #RECORDS DISPLACEMENT ?SCREENS CHECK-SCR | ||
| - | 1 \ Return n, the maximum number of records in current file. | ||
| - | 2 : #RECORDS ( -- n ) | ||
| - | | ||
| - | | ||
| - | 5 \ Return offset n, to the alternate or shadow screen. | ||
| - | 6 : DISPLACEMENT | ||
| - | | ||
| - | | ||
| - | 9 \ Return the number n, of the last screen in current file. | ||
| - | 10 : ? | ||
| - | 11 #RECORDS 0 8 UM/MOD NIP 1- ; | ||
| - | 12 | ||
| - | 13 \ Do not allow n to exceed the last available screen. | ||
| - | 14 : CHECK-SCREEN | ||
| - | 15 0 MAX ? | ||
| - | |||
| - | |||
| - | Screen 51 not modified | ||
| - | 0 \ SHADOW-SCR IBUF IMOV 19: | ||
| - | 1 \ Convert screen n to corresponding shadow s. | ||
| - | 2 : SHADOW-SCR ( n s ) | ||
| - | | ||
| - | | ||
| - | 5 : IBUF ( -- adr ) \ Leave pointer into insert buffer. | ||
| - | | ||
| - | 7 : IMOV ( -- -- ) \ Move character under cursor to ins buf. | ||
| - | | ||
| - | | ||
| - | 10 IF | ||
| - | 11 ELSE 2 CLEAR-PROMPT ." Insert buffer full!" CR | ||
| - | 12 BEEP PUSH-TO-PROCEED .CURSOR | ||
| - | 13 THEN | ||
| - | 14 THEN ; | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 52 not modified | ||
| - | 0 \ IBLANK | ||
| - | 1 : IBLANK ( -- -- ) \ Clear insert buffer to blanks. | ||
| - | | ||
| - | 3 \ Display screen border and exit prompt. | ||
| - | 4 : BORDER | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 70 I 3 + AT 179 VEMIT | ||
| - | 11 LOOP | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 72 11 AT ." | ||
| - | 15 72 13 AT ." EDITOR" | ||
| - | |||
| - | |||
| - | Screen 53 not modified | ||
| - | 0 \ SCAN+<> | ||
| - | 1 : SCAN+<> | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 : SCAN+= | ||
| - | 10 2DUP = \ Return 0 if there is nothing | ||
| - | 11 | ||
| - | 12 ELSE 0 ROT ROT \ Other wise scan memory from | ||
| - | 13 DO OVER I C@ = \ low to high until | ||
| - | 14 ?LEAVE 1+ \ a match is found. | ||
| - | 15 LOOP NIP THEN ; \ Return with count to match. | ||
| - | |||
| - | |||
| - | Screen 54 not modified | ||
| - | 0 \ 09: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 55 not modified | ||
| - | 0 \ .BLANK-SCREEN .SCREEN | ||
| - | 1 \ Clear interior of screen window to blanks. | ||
| - | 2 : .BLANK-SCREEN ( -- -- ) | ||
| - | | ||
| - | 4 \ Display screen contents and headings. | ||
| - | 5 : .SCREEN | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 IF 6 I 3 + AT VTYPE | ||
| - | 11 ELSE 2DROP | ||
| - | 12 | ||
| - | 13 LOOP .CLEAN | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 56 not modified | ||
| - | 0 \ NEW-SCREEN .SCREEN-TO-END CLEAR-PROMPT | ||
| - | 1 \ Display a new screen. | ||
| - | 2 : NEW-SCREEN ( -- -- ) | ||
| - | | ||
| - | | ||
| - | 5 \ Redisplay lines from cursor to the end of the screen. | ||
| - | 6 : .SCREEN-TO-END ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 IF 6 I 3 + AT VTYPE | ||
| - | 11 ELSE 2DROP | ||
| - | 12 | ||
| - | 13 LOOP .CURSOR | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 57 not modified | ||
| - | 0 \ .HOLD WAIT.DIGIT | ||
| - | 1 \ Display the top of the line stack. | ||
| - | 2 : .HOLD ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 \ Wait n seconds for key press and convert to digit 1 ... 9 | ||
| - | 10 : WAIT.DIGIT \ n 1 ...9 | ||
| - | 11 0 SWAP 2000 * 0 | ||
| - | 12 ?DO (KEY? | ||
| - | 13 IF DROP PCKEY DUP 0= IF 2DROP 0 THEN LEAVE THEN | ||
| - | 14 | ||
| - | 15 48 - 1 MAX 9 MIN ; | ||
| - | |||
| - | |||
| - | Screen 58 not modified | ||
| - | 0 \ NEXT-SCREEN PREV-SCREEN +MOVE 14: | ||
| - | 1 \ Go to screen n. | ||
| - | 2 : GO-SCR | ||
| - | | ||
| - | | ||
| - | 5 \ Go to next screen. | ||
| - | 6 : NEXT-SCREEN ( -- -- ) | ||
| - | | ||
| - | 8 \ Go to previous screen. | ||
| - | 9 : PREV-SCREEN ( -- -- ) | ||
| - | 10 | ||
| - | 11 \ Move lines from cursor to end up one ( down on screen). | ||
| - | 12 : +MOVE ( -- -- ) | ||
| - | 13 ?LINE 15 < | ||
| - | 14 IF ?LINE 1+ 15 | ||
| - | 15 DO I 1- I MOVE-LINE | ||
| - | |||
| - | |||
| - | Screen 59 not modified | ||
| - | 0 \ -MOVE ASK-SCR | ||
| - | 1 \ Move lines from cursor to bottom down one ( up on screen). | ||
| - | 2 : -MOVE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 \ Prompt for input of new screen number. | ||
| - | 8 : ASK-SCR | ||
| - | | ||
| - | 10 \ Move to first screen of this file. | ||
| - | 11 : FIRST-SCR ( -- -- ) | ||
| - | 12 0 GO-SCR .CURSOR ; | ||
| - | 13 \ Move to the last screen of this file. | ||
| - | 14 : LAST-SCR | ||
| - | 15 ? | ||
| - | |||
| - | |||
| - | Screen 60 not modified | ||
| - | 0 \ GO-SHADOW | ||
| - | 1 \ Toggle between current screen and its shadow screen. | ||
| - | 2 : GO-SHADOW ( -- -- ) | ||
| - | | ||
| - | 4 \ Push current line to line stack and display it. | ||
| - | 5 : PUSH-LINE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 \ Pop line from line stack. | ||
| - | 10 : POP-LINE ( -- -- ) | ||
| - | 11 | ||
| - | 12 .LINE C/L HELD 0 HELD 960 CMOVE 960 HELD C/L BLANK | ||
| - | 13 HOLD-DEPTH | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 61 not modified | ||
| - | 0 \ SPLIT-LINE SPREAD-LINE | ||
| - | 1 \ Split line at current currsor position. | ||
| - | 2 : SPLIT-LINE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | 5 \ Insert blank line at current curssor postion. | ||
| - | 6 : SPREAD-LINE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 THEN ? | ||
| - | 12 IF 6 ?LINE 3 + 69 18 SCROLLDOWN | ||
| - | 13 ELSE 15 .LINE .CURSOR | ||
| - | 14 THEN ; | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 62 not modified | ||
| - | 0 \ DELETE-LINE | ||
| - | 1 \ Delete line at current currsor position and move rest up. | ||
| - | 2 : DELETE-LINE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 THEN ; | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 63 not modified | ||
| - | 0 \ FORWARD BACKUP PUT-CHAR TAB-RIGHT | ||
| - | 1 \ Move cursor forward one position. | ||
| - | 2 : FORWARD ( -- -- ) | ||
| - | | ||
| - | 4 \ Back cursor up one position. | ||
| - | 5 : BACKUP | ||
| - | | ||
| - | 7 \ Store character and display it. | ||
| - | 8 : PUT-CHAR ( char -- ) | ||
| - | | ||
| - | 10 \ Mover right to the next tab stop. | ||
| - | 11 : TAB-RIGHT ( -- -- ) | ||
| - | 12 TAB# @ CURSOR@ | ||
| - | 13 OVER / OVER * ?LINE64* + + | ||
| - | 14 CURSOR! | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 64 not modified | ||
| - | 0 \ TAB-LEFT TAB-UP +TRANSPOSE | ||
| - | 1 \ Move to the next tabstop on the left. | ||
| - | 2 : TAB-LEFT ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 6 \ Move cursor up one position. | ||
| - | 7 : TAB-UP | ||
| - | | ||
| - | 9 \ Transpose character under cursor with the one in front of it. | ||
| - | 10 : +TRANSPOSE ( -- -- ) | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 THEN ; | ||
| - | |||
| - | |||
| - | Screen 65 not modified | ||
| - | 0 \ TAB-DOWN ERASE-SCREEN | ||
| - | | ||
| - | 2 \ Move cursor down one position. | ||
| - | 3 : TAB-DOWN | ||
| - | | ||
| - | | ||
| - | 6 \ Erase current screen to blanks. | ||
| - | 7 : ERASE-SCREEN | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 \ Transpose character under cursor with the one behind it. | ||
| - | 12 : -TRANSPOSE ( -- -- ) | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 66 not modified | ||
| - | 0 \ ERASE-TO-END ERASE-LINE | ||
| - | | ||
| - | 2 \ Erase from cursor to end of screen with blanks. | ||
| - | 3 : ERASE-TO-END ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 \ Erase line that the cursor is on with blanks. | ||
| - | 8 : ERASE-LINE | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 67 not modified | ||
| - | 0 \ ERASE-EOL (DELC) DELETE-CHAR | ||
| - | 1 \ Erase line from cursor to end with blanks. | ||
| - | 2 : ERASE-EOL | ||
| - | | ||
| - | | ||
| - | 5 \ Delete character under cursor. | ||
| - | 6 : (DELC) ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 \ Delete character under cursor and refresh display. | ||
| - | 11 : DELETE-CHAR | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 68 not modified | ||
| - | 0 \ (INS-CHAR) | ||
| - | 1 \ Insert char at cursor position and advance cursor n positions. | ||
| - | 2 : (INS-CHAR) ( char n -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 \ Insert a blank at cursor position but do not advance cursor. | ||
| - | 12 : SPREAD-CHAR | ||
| - | 13 \ Insert char at cursor postion and advance one position. | ||
| - | 14 : INSERT-CHAR | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 69 not modified | ||
| - | 0 \ DELETE-CHARLFT NOT-EMPTY-LINE? | ||
| - | | ||
| - | 2 \ Delete character behind cursor. | ||
| - | 3 : DELETE-CHARLFT ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 \ Leave true flag if rest of line is not blank. | ||
| - | 10 : NOT-EMPTY-LINE? | ||
| - | 11 ADCUR CHAR-TO-EOL | ||
| - | 12 -TRAILING NIP 0<> ; | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 70 not modified | ||
| - | 0 \ IGET | ||
| - | | ||
| - | 2 \ Insert character from ins buf at current cursor position. | ||
| - | 3 : IGET ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 \ Backup and erase character behind cursor. | ||
| - | 9 : BACKSPACE ( -- -- ) | ||
| - | 10 CURSOR@ C/L MOD 0= | ||
| - | 11 IF BEEP | ||
| - | 12 ELSE -1 +.CURSOR BL !(CURSOR) | ||
| - | 13 BL VEMIT .CURSOR | ||
| - | 14 THEN ; | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 71 not modified | ||
| - | 0 \ CURSOR-RIGHTWORD | ||
| - | 1 \ Move cursor right one word. Word traversed goes to the | ||
| - | 2 \ insert buffer if scroll lock is on. | ||
| - | 3 : CURSOR-RIGHTWORD ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 BEGIN CURSOR@ | ||
| - | 11 IF DROP TRUE | ||
| - | 12 ELSE CURSOR! | ||
| - | 13 | ||
| - | 14 UNTIL .CURSOR | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 72 not modified | ||
| - | 0 \ CURSOR-LEFTWORD | ||
| - | 1 \ Move cursor left one word. | ||
| - | 2 : CURSOR-LEFTWORD ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 THEN | ||
| - | 12 BEGIN -1 CURSOR +! | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 UNTIL FORWARD ; | ||
| - | |||
| - | |||
| - | Screen 73 not modified | ||
| - | 0 \ FIND-CHARACTER INSERT-WORDRIGHT | ||
| - | 1 \ Move cursor to first occurance of inputed character. | ||
| - | 2 : FIND-CHARACTER ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 \ Insert word from the insert buffer. | ||
| - | 9 : INSERT-WORDRIGHT ( -- -- ) | ||
| - | 10 IPTR @ 0<> IBUF 1- C@ BL = AND | ||
| - | 11 IF BEGIN BLANK-AT-END? | ||
| - | 12 WHILE IGET REPEAT | ||
| - | 13 THEN BEGIN BLANK-AT-END? | ||
| - | 14 WHILE IGET REPEAT | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 74 not modified | ||
| - | 0 \ DELETE-WORDRIGHT | ||
| - | 1 \ Delete word to the right of the cursor. | ||
| - | 2 : DELETE-WORDRIGHT ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 THEN .LINE-TO-END | ||
| - | 11 THEN ; | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 75 not modified | ||
| - | 0 \ PULL-NEXT-LINE | ||
| - | 1 \ Pull line next line ( below cursor ) over to the right | ||
| - | 2 \ of the screen. | ||
| - | 3 : PULL-NEXT-LINE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 THEN ; | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 76 not modified | ||
| - | 0 \ MOVE-UPTO-BLANK | ||
| - | 1 \ | ||
| - | | ||
| - | 3 : MOVE-UPTO-BLANK ( adr1 adr2 n | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 THEN R> ; | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 77 not modified | ||
| - | 0 \ JOIN-LINE | ||
| - | 1 \ Join line under cursor to the one containing the cursor. | ||
| - | 2 : JOIN-LINE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 IF CURSOR@ | ||
| - | 11 | ||
| - | 12 ELSE .SCREEN-TO-END | ||
| - | 13 THEN | ||
| - | 14 ELSE 2DROP | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 78 not modified | ||
| - | 0 \ END-OF-SCREEN | ||
| - | | ||
| - | 2 \ Move to end of screen. | ||
| - | 3 : END-OF-SCREEN | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 \ Move to start of screen. | ||
| - | 8 : START-OF-SCREEN | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 79 not modified | ||
| - | 0 \ END-OF-LINE | ||
| - | | ||
| - | 2 \ Move to end of the line. | ||
| - | 3 : END-OF-LINE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 \ Move to the start of the line. | ||
| - | 8 : START-OF-LINE ( -- -- ) | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 80 not modified | ||
| - | 0 \ STRING-INPUT | ||
| - | | ||
| - | 2 \ Fetch string from user and return character count. | ||
| - | 3 : STRING-INPUT | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 81 not modified | ||
| - | 0 \ .SCH-TARGET | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 5 : .SCH-TARGET | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 0 REPLACEBUF | ||
| - | 11 ELSE 4 SPACES | ||
| - | 12 THEN ; | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 82 not modified | ||
| - | 0 \ .SCH-NO-FIND .SCH-ILLEGAL | ||
| - | | ||
| - | | ||
| - | 3 : .SCH-NO-FIND | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 8 : .SCH-ILLEGAL ( -- -- ) | ||
| - | | ||
| - | 10 PUSH-TO-PROCEED | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 83 not modified | ||
| - | 0 \ .SCH-ABORTED SEARCH-INPUT | ||
| - | | ||
| - | | ||
| - | 3 : .SCH-ABORTED | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 : SEARCH-INPUT ( -- -- ) | ||
| - | | ||
| - | | ||
| - | 10 STRING-INPUT ?DUP | ||
| - | 11 IF DUP >R 0 SEARCHBUF | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 THEN ; | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 84 not modified | ||
| - | 0 \ REPLACE-INPUT | ||
| - | | ||
| - | | ||
| - | 3 : REPLACE-INPUT | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 85 not modified | ||
| - | 0 \ .REP-ILLEGAL .REP-MISSING | ||
| - | 1 \ Display replace error message. | ||
| - | 2 : .REP-ILLEGAL ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 6 \ Display replace error message. | ||
| - | 7 : .REP-MISSING ( -- -- ) | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 86 not modified | ||
| - | 0 \ REPLACE-VALIDATE | ||
| - | | ||
| - | 2 \ Validate search and replace arguments. | ||
| - | 3 : REPLACE-VALIDATE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 THEN ; | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 87 not modified | ||
| - | 0 \ SEARCH-SCREEN SEARCH-ADJUST | ||
| - | | ||
| - | | ||
| - | 3 \ Search screen n. | ||
| - | 4 : SEARCH-SCREEN | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 : SEARCH-ADJUST | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 88 not modified | ||
| - | 0 \ SEARCH-TO-END | ||
| - | | ||
| - | 2 : SEARCH-TO-END | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 ELSE 0 OVER SEARCH-SCREEN | ||
| - | 11 IF SEARCH-ADJUST | ||
| - | 12 | ||
| - | 13 THEN | ||
| - | 14 | ||
| - | 15 AGAIN ; | ||
| - | |||
| - | |||
| - | Screen 89 not modified | ||
| - | 0 \ SEARCH-FILE | ||
| - | | ||
| - | | ||
| - | 3 : SEARCH-FILE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 90 not modified | ||
| - | 0 \ REPLACE-STRING | ||
| - | | ||
| - | 2 : REPLACE-STRING ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 THEN ; | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 91 not modified | ||
| - | 0 \ HLP1 | ||
| - | | ||
| - | | ||
| - | 3 : HLP1 ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 26 22 AT 17 VEMIT 217 VEMIT ." | ||
| - | 11 26 23 AT ." F1 more help" | ||
| - | 12 52 20 AT ." ^Home start of text" | ||
| - | 13 52 21 AT ." | ||
| - | 14 52 22 AT ." | ||
| - | 15 52 23 AT ." ^End end of text" | ||
| - | |||
| - | |||
| - | Screen 92 not modified | ||
| - | 0 \ HLP2 | ||
| - | | ||
| - | 2 : HLP2 ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 29 23 AT ." first occurance" | ||
| - | 11 52 20 AT ." F7 find string" | ||
| - | 12 52 21 AT ." ^L find again" | ||
| - | 13 52 22 AT ." F8 find & replace" | ||
| - | 14 52 23 AT ." F1 more help" ; | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 93 not modified | ||
| - | 0 \ HLP3 | ||
| - | | ||
| - | 2 : HLP3 ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 41 22 AT ." aU erase to EOL" | ||
| - | 11 61 20 AT ." ^N insert line" | ||
| - | 12 61 22 AT ." ^W insert space" | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 94 not modified | ||
| - | 0 \ HLP4 | ||
| - | | ||
| - | 2 : HLP4 ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 52 21 AT ." aA shadow | ||
| - | 11 52 22 AT ." F1 more help" | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 95 not modified | ||
| - | 0 \ HLP5 | ||
| - | | ||
| - | 2 : HLP5 ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 41 21 AT ." aM = copy many scrs" | ||
| - | 11 41 22 AT ." aO = open new file" | ||
| - | 12 61 20 AT ." aS = -transpose" | ||
| - | 13 61 21 AT ." aT = set tab stops" | ||
| - | 14 61 22 AT ." ESC= exit editor" | ||
| - | 15 61 23 AT ." F1 = more help" | ||
| - | |||
| - | |||
| - | Screen 96 not modified | ||
| - | 0 \ HLP6 | ||
| - | 1 : HLP6 ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 38 22 AT ." F9 erase screen" | ||
| - | 11 58 20 AT ." aF9 erase to EOS" | ||
| - | 12 58 21 AT ." F10 restore screen" | ||
| - | 13 58 22 AT ." F1 more help" | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 97 not modified | ||
| - | 0 \ HLP0 | ||
| - | 1 : HLP0 ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 61 21 AT ." ^U blank line" | ||
| - | 11 61 22 AT ." ^W ins blank char" | ||
| - | 12 61 23 AT ." ^Y delete line" | ||
| - | 13 61 24 AT ." ^Z new screen" | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 98 not modified | ||
| - | 0 \ +HELP .MENU 10: | ||
| - | | ||
| - | | ||
| - | 3 : +HELP ( -- -- ) \ Increment to next help screen. | ||
| - | | ||
| - | | ||
| - | 6 : .MENU ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 2 OF HLP2 ENDOF 3 OF HLP3 ENDOF | ||
| - | 11 4 OF HLP4 ENDOF 5 OF HLP5 ENDOF | ||
| - | 12 6 OF HLP6 ENDOF | ||
| - | 13 ENDCASE .CURSOR | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 99 not modified | ||
| - | 0 \ 10: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 100 not modified | ||
| - | 0 \ CERROR | ||
| - | 1 \ Screen color if we have an error. | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 101 not modified | ||
| - | 0 \ COLOR-INPUT | ||
| - | | ||
| - | | ||
| - | 3 \ Choose the text background and forground colors. | ||
| - | 4 : COLOR-INPUT ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 1 MAX 127 MIN ATRIB ! | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 102 not modified | ||
| - | 0 \ SET-STAMP | ||
| - | 1 \ Reset initials for auto date stamp. | ||
| - | 2 : SET-STAMP | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 THEN | ||
| - | 11 | ||
| - | 12 \ Display contents of insert buffer. | ||
| - | 13 : SHOW-IBUF ( -- -- ) | ||
| - | 14 4 CLEAR-PROMPT | ||
| - | 15 CR PUSH-TO-PROCEED .MENU .CURSOR ; | ||
| - | |||
| - | |||
| - | Screen 103 not modified | ||
| - | 0 \ ONE-COPY COPY-ABORT | ||
| - | | ||
| - | 2 \ Copy one screen to another. | ||
| - | 3 : ONE-COPY | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 \ Send copy abort message. | ||
| - | 12 : .CPY-ABORT ( -- -- ) | ||
| - | 13 6 21 AT | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 104 not modified | ||
| - | 0 \ (TRANSFER) | ||
| - | 1 \ Copy screem range, first thru last to destination. | ||
| - | 2 : (TRANSFER) ( first last dest -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 6 21 AT | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 105 not modified | ||
| - | 0 \ MULTI-COPY | ||
| - | 1 : MULTI-COPY | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 7 \ Convert word to upper case. | ||
| - | 8 : UCASE | ||
| - | | ||
| - | 10 IF 32 I CTOGGLE THEN LOOP ; | ||
| - | 11 \ Get screen filen name from user. | ||
| - | 12 : FILENAME-INPUT ( -- adr ) | ||
| - | 13 BEGIN 1 CLEAR-PROMPT | ||
| - | 14 | ||
| - | 15 UNTIL UCASE HERE ; | ||
| - | |||
| - | |||
| - | Screen 106 not modified | ||
| - | 0 \ DRIVE-INPUT | ||
| - | | ||
| - | 2 : DRIVE-INPUT | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 107 not modified | ||
| - | 0 \ QUICK INDEX 18: | ||
| - | 1 : QUICK-INDEX | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 ELSE #OUT @ 20 MOD 20 SWAP - SPACES | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 ELSE 2DROP THEN ; | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 108 not modified | ||
| - | 0 \ $DIR | ||
| - | 1 \ Default drive input string. | ||
| - | 2 : $DIR ( -- adr n ) | ||
| - | | ||
| - | | ||
| - | 5 : OPEN-NEW-FILE ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 IF 1 CLEAR-PROMPT | ||
| - | 11 | ||
| - | 12 42 CMOVE [ DOS ] OPEN-FILE [ EDITOR ] | ||
| - | 13 ELSE SCREEN# OFF | ||
| - | 14 THEN NEW-SCREEN | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 109 not modified | ||
| - | 0 \ QUICK-DIR | ||
| - | 1 \ Lists files on specified drive. | ||
| - | 2 : QUICK-DIR | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 \ Repeat previous search and replace. | ||
| - | 10 : ANOTHER-SEARCH | ||
| - | 11 | ||
| - | 12 IF .SCH-TARGET | ||
| - | 13 ELSE .SCH-ILLEGAL | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 110 not modified | ||
| - | 0 \ BACK-SPACE-KEY | ||
| - | 1 : BACK-SPACE-KEY ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 5 \ Move to next line. | ||
| - | 6 : RETURN-KEY ( -- -- ) | ||
| - | | ||
| - | | ||
| - | 9 \ Reset the current tab stops. | ||
| - | 10 : TABSET | ||
| - | 11 1 CLEAR-PROMPT ." Tab stops are now set at " | ||
| - | 12 TAB# @ . ." enter new setting : " | ||
| - | 13 2 MAX 63 MIN TAB# ! .MENU .CURSOR ; | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 111 not modified | ||
| - | 0 \ ENTER-SCR | ||
| - | 1 : ENTER-SCR ( -- -- ) | ||
| - | | ||
| - | | ||
| - | 4 : FIND-IT ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 : SEARCH-FOR-IT ( -- -- ) | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 IF .SCH-TARGET | ||
| - | 14 THEN .CLEAN .MENU .CURSOR | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 112 not modified | ||
| - | 0 \ (IBM) 21: | ||
| - | 1 : (IBM) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 ^PG-DN | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 ^LEFT-ARROW | ||
| - | 14 ^RIGHT-ARROW OF CURSOR-RIGHTWORD | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 113 not modified | ||
| - | 0 \ (IBM) ... 21: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 ALTO OF OPEN-NEW-FILE | ||
| - | 11 ALTI OF QUICK-INDEX | ||
| - | 12 F1 OF +HELP .MENU | ||
| - | 13 ALTF2 OF SET-STAMP | ||
| - | 14 F7 OF FIND-IT | ||
| - | 15 ENDCASE | ||
| - | |||
| - | |||
| - | Screen 114 not modified | ||
| - | 0 \ (IBM) ... 18: | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 ALTS OF -TRANSPOSE | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 115 not modified | ||
| - | 0 \ (IBM) .. | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 ALTF9 OF ERASE-TO-END | ||
| - | 12 F10 OF 0 BACKBUF | ||
| - | 13 | ||
| - | 14 ENDCASE | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 116 not modified | ||
| - | | ||
| - | 1 : CONTROL-CHAR | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 9 OF TAB-RIGHT | ||
| - | 11 12 OF ANOTHER-SEARCH | ||
| - | 12 13 OF RETURN-KEY | ||
| - | 13 15 OF TAB-LEFT | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 117 not modified | ||
| - | 0 \ (EDIT) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 118 not modified | ||
| - | 0 \ (EDIT) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 22 OF IGET | ||
| - | 11 23 OF SPREAD-CHAR | ||
| - | 12 25 OF DELETE-LINE | ||
| - | 13 ENDCASE | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 119 not modified | ||
| - | 0 \ (EDIT) ... | ||
| - | 1 : (EDIT) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 ELSE DROP THEN | ||
| - | 12 ELSE ?DUP | ||
| - | 13 IF CONTROL-CHAR | ||
| - | 14 ELSE (IBM) | ||
| - | 15 THEN FINI? @ UNTIL ; | ||
| - | |||
| - | |||
| - | Screen 120 not modified | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 121 not modified | ||
| - | 0 \ (VEDIT) | ||
| - | 1 ONLY FORTH ALSO DOS ALSO FORTH DEFINITIONS | ||
| - | 2 : (VEDIT) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 8 TAB# ! FINI? OFF IBLANK | ||
| - | 11 FILE @ CUR-FILE 42 CMOVE FILE @ OLD-FILE ! | ||
| - | 12 | ||
| - | 13 TSMH OFF $SECONDS OFF BROWSING @ | ||
| - | 14 | ||
| - | 15 0 MAX ?SCREENS MIN SCREEN# ! (EDIT) | ||
| - | |||
| - | |||
| - | Screen 122 not modified | ||
| - | 0 \ (VEDIT) .. | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 THEN CR ; FORTH | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 123 not modified | ||
| - | 0 \ < | ||
| - | | ||
| - | 2 : < | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 9 ' < | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 124 not modified | ||
| - | 0 \ VEDIT VED BROWSE | ||
| - | | ||
| - | 2 : BROWSE | ||
| - | | ||
| - | | ||
| - | 5 ' BROWSE IS EDIT | ||
| - | 6 : VEDIT ( scr# -- ) | ||
| - | | ||
| - | | ||
| - | 9 : VED ( -- -- ) | ||
| - | 10 [ EDITOR ] BROWSING OFF | ||
| - | 11 SCR @ 0 MAX ?SCREENS MIN | ||
| - | 12 CURSOR OFF ERRORS OFF (VEDIT) ; FORTH | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 125 not modified | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 126 not modified | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | |||
| - | |||
| - | Screen 127 not modified | ||
| - | | ||
| - | 1 ONLY EDITOR ALSO FORTH ALSO | ||
| - | 2 \ Leave true flag if KBF has changed. | ||
| - | 3 CODE KBF? ( -- flag ) \ Was: $KBF @ KBF DUP $KBF ! <> | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 0= IF AX AX SUB \ Leave false flag if the same | ||
| - | 11 ELSE AX 0 [DI] MOV \ Update $KBF and | ||
| - | 12 -1 # AX MOV \ return true if KBF has changed. | ||
| - | 13 THEN 1PUSH \ Push AX and fall into NEXT | ||
| - | 14 END-CODE | ||
| - | 15 : TEST CLEARSCREEN BEGIN CR KBF? U. $KBF ? KEY? UNTIL ; | ||
| - | |||
| - | |||
| - | Screen 128 not modified | ||
| - | 0 \ 18: | ||
| - | 1 ONLY EDITOR ALSO FORTH ALSO DEFINITIONS | ||
| - | | ||
| - | 3 CREATE TSMH 4 ALLOT | ||
| - | 4 CODE @TIME ( -- -- ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 : TT TSMH C@ ; : SS TSMH 1+ C@ ; : MM TSMH 2+ C@ ; | ||
| - | 12 : HH TSMH 3 + C@ ; | ||
| - | 13 : TEST CLEARSCREEN | ||
| - | 14 BEGIN 1 1 AT @TIME HH 3 U.R MM 3 U.R | ||
| - | 15 SS 3 U.R TT 3 U.R KEY? UNTIL ; | ||
| - | |||
| - | |||
| - | Screen 129 not modified | ||
| - | 0 \ ?MODE 23: | ||
| - | 1 \ Read current video mode. | ||
| - | 2 \ 0 = 40x25 bw 3 = 80x25 color 4 = 320x200 color | ||
| - | 3 \ 1 = 40x25 color 5 = 320x200 bw | ||
| - | 4 \ 2 = 80x25 bw 6 = 640x200 bw | ||
| - | 5 \ | ||
| - | 6 CODE ?MODE ( -- mode ) | ||
| - | | ||
| - | | ||
| - | | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 \ Note Function 15 of 16 INT also returns: | ||
| - | 13 \ Number of columns on the screen in AH and current active | ||
| - | 14 \ page in BH. Both of these are ignored by ?MODE | ||
| - | 15 : MODE! 0 0 0 VIDEO-IO 2DROP 2DROP ; | ||
| - | |||
| - | |||
| - | </ | ||
papierkorb/editor.blk.1755359401.txt.gz · Zuletzt geändert: 2025-08-16 17:50 von mka