MVPFORTH VERSION 1.0305.02 -10 AUG 82 MVPFORTH KERNEL VERSION 1.0305.02 A FORTH OPERATING SYSSTEM FORTH THE IBM PERSONAL COMPUTER PREPARED FOR MOUNTAIN VIEW PRESS, INC. PO BOX 4656 MOUNTAIN VIEW, CA 94040 IMPLEMENTATION BY HAYDON ENTERPRISES BOX 429 ROUTE 2 LA HONDA, CA 94020 THIS PUBLICATION IS PLACED IN THE PUBLIC DOMAIN. PERMISSION TO DISTRIBUTE IS GRANTED BY THE INCLUSION OF CREDIT TO MOUNTAIN VIEW PRESS, INC., AND HAYDON ENTERPRISES. THIS IMPLEMENTATION INCLUDES THE ENTIRE FORTH-79 REQUIRED WORD SET. THE BOOK "ALL ABOUT FORTH" BY GLEN B. HAYDON FULLY DOCUMENTS MVPFORTH. IT IS AVAILABLE FROM MOUNTAIN VIEW PRESS, INC. THE IMPLEMENTATION HAS BEEN TRANSCRIBED FROM THE ORIGINAL CROSS COMPILER VER. 1.0000.02 . IT WILL ASSEMBLE WITH "MASM.COM" UNDER MDOS VER. 1.0 OR 1.1 . BECAUSE OF THE TYPE-AHEAD BUFFER OF THE IBM, ?TERMINAL HAS A SLIGHTLY DIFFERENT FUNCTION FROM STANDARD MVPFORTH. THE TRUE FLAG IS THE ASCII VALUE OF THE KEY STRUCK (THE FALSE FLAG REMAINS 0). BY USING ?DUP BEFORE TESTING, THE VALUE OF THE STRUCK KEY WILL BE LEFT ON THE STACK. THUS IT IS NOT NECESSARY TO CLEAR THE STATUS FLAG WITH THE SEQUENCE - KEY DROP . THE FORTH REGISTERS ARE ASSIGNED ACCORDING TO FIG-FORTH FOR THE 8086/88, VERSION 1.0, AS IMPLEMENTED BY THOMAS NEWMAN, 27444 BERENDA WAY, HAYWARD, CA 94544, AND MADE AVAILABLE BY THE FORTH INTEREST GROUP, BOX 1105, SAN CARLOS, CA 94070. FORTH REGISTERS FORTH 8088 FORTH PRESERVATION RULES IP SI INTERPRETER POINTER. MUST BE PRESERVED ACROSS FORTH WORDS. W DX WORKING REGISTER. JUMP TO 'DPUSH' WILL PUSH CONTENTS ONTO THE PARAMETER STACK BEFORE EXECUTING 'APUSH'. SP SP PARAMETER STACK POINTER. MUST BE PRESERVED ACROSS FORTH WORDS. THIS IS ALSO THE SYSTEM STACK, WHICH IS SOMETIMES CALLED THE HARDWARE STACK -HS . RP BP RETURN STACK POINTER. MUST BE PRESERVED ACROSS FORTH WORDS. IN ADDITION, THE 8088 CODE SEGMENT, DATA SEGMENT AND STACK SEGMENT REGISTERS ( CS, DS, AND SS, MUST BE PRESERVED ACROSS FORTH WORDS. THE OTHER REGISTERS OF THE 8088 CPU MAY BE USED FREELY. ! !L # #> #BUFF #S ' '-FIND '?TERMINAL 'ABORT 'BLOCK 'CR 'EMIT 'EXPECT 'INTERPRET 'KEY 'LOAD 'NUMBER 'PAGE 'R/W 'STREAM 'T&SCALC 'VOCABULARY 'WORD ( * */ */MOD + +! +- +LOOP , - -FIND -TRAILING . ." .LINE .R / /LOOP /MOD 0 0< 0= 0> 0BRANCH 1 1+ 1- 2 2* 2+ 2- 2/ 79-STANDARD : ; < <# <+LOOP> <-FIND> <."> < ( ---C , F ) = > >IN >R ? ?COMP ?CONFIGURE ?CSP ?DUP ?LOADING ?PAIRS ?STACK ?STREAM ?TREMINAL @ @L ABORT ABORT" ABS AGAIN ALLOT AND APUSH BASE BEGIN BL BLANK BLK BLK/DRV BLOCK BPDRV BRANCH BUFFER BYE C! C!L C, C/L C@ C@L CFA CHANGE CLEAR CMOVE COLD COMPILE CONFIGURE CONSTANT CONTEXT CONVERT COUNT CR CREATE CSP CURRENT D! D+ D+- D. D.R DL DABS DDROP DDUP DECIMAL DEFINITIONS DEN DENSITY DEPTH DIGIT DISK-ERROR DLITERAL DNEGATE DO DOES> DP DPL DPUSH DR-DEN DR0 DR1 DR2 DR3 DR4 DRIVE DROP DUP ELSE EMIT EMPTY-BUFFERS ENCLOSE EPRINT EXECUTE EXIT EXPECT FENCE FILL FIND FIRST FLD FORGET FORTH FREEZE HERE HEX HLD HOLD I I' IF IMMEDIATE INIT-FORTH INIT-USER INTCALL INTERPRET J KEY LATEST LEAVE LFA LIMIT LIST LIT LITERAL LOAD LOOP M* M*/ M+ M/ M/MOD MAX MAX-DRV MIN MOD MOVE NEGATE NEXT NEXT1 NFA NOT NUMBER OFFSET OR OUT OVER P! P@ PAD PAGE PFA PICK PP PREV PW! PW@ QWERY QUIT R# R/W R0 R> R@ REPEAT ROLL ROT RP! RP@ RPP S->D S0 SAVE-BUFFERS SCR SEC SEC-READ SEC-WRITE SEC/BLK SEC/TR SET-DRX SIGN SMUDGE SP! SP0 SP@ SPACE SPACES SPBLK SPDRV SPT STATE SWAP SYSCALL T&SCALC TEXT THEN TIB TOGGLE TRACK TRAVERSE TYPE U* U. U/MOD U< UNITL UP UPDATE USE USER VARIABLE VOC-LINK VOCABULARY WARNING WHERE WHILE WIDTH WORD X (NULL) XOR [ [COMPILE] ]