home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / mvpforth.zip / SCREENS.MVP < prev   
Text File  |  1987-02-03  |  30KB  |  1 lines

  1. (DIRECTORY¼MVP-FORTH)└15âASSEMBLERüLOADüSCREENà(ü16-58)┘60âEDITORüLOADüSCREENê(ü61-78)┘110éMVP-FORTHüUTILITIESç(ü111-122)╫125éMVP-FORTHüSUPPLEMENTALSâ(ü126-128)ΣNEW≡130éMVP-FORTHüFILESü&üSCREENSü(ü131ü138) ╪(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(ü8086üASSEMBLERü--üLOADüSCREENùMVP-FORTH)└16üLOAD       (ü8086üASSEMBLERü---üERRORüHANDLINGü&üSTARTüLOADINGâMVP-FORTH)üHEX╝:ü-->üBLKü@ü.é?LOADINGü0ü>INü!ü1üBLKü+!ü;üIMMEDIATE╠:ü?ERROR1üABORT"üADDRESSüOUTüOFüRANGEü"ü;ù:ü?ERROR2üABORT"üIMMEDIATEüDATAüVALUEüNOTüALLOWEDü"ü;ï:ü?ERROR3üABORT"üILLEGALüOPERANDü"é;¢:ü?ERROR4üABORT"üDESTINATIONüADDRESSüMISSINGü"ü;É-->    ü(ü8080üASSEMBLERü---üVARIABLESÿMVP-FORTH)└VOCABULARYüASSEMBLERüIMMEDIATEäASSEMBLERüDEFINITIONSüHEX┼VARIABLEü<#>é0ü<#>ü!â(üIMMEDIATEüDATAüFLAGü)æVARIABLEü<TD>ü0ü<TD>ü!é(üDESITNATIONüOFüADDRESSINGüTYPEü)åVARIABLEü<TS>ü0ü<TS>ü!é(üSOURCEüADDRESSINGüTYPEü)ÄVARIABLEü<RD>ü0ü<RD>ü!é(üDESTINATIONüREGISTERé)ÅVARIABLEü<RS>ü0ü<RS>ü!é(üSOURCEüREGISTERé)öVARIABLEü<W>é0ü<W>é!é(üWORD/BYTEüFLAGé)òVARIABLEü<WD>ü0ü<WD>ü!é(üDESTINATIONüWORD/BYTEüFLAGü)èVARIABLEü<OD>ü0ü<OD>ü!é(üDESTINATIONüOFFSETé)æVARIABLEü<OS>ü0ü<OS>ü!é(üSOURCEüOFFSETü)ùVARIABLEü<D>é0ü<D>é!é(üDIRECTIONüFLAGüFORüR/Mü)ÄVARIABLEü<SP>ü0ü<SP>ü!é(üLOCALüSTACKüPOINTERü)æ-->╜(ü8086üASSEMBLERü---üCASEüSTATEMENTôMVP-FORTH)└(üCASEüSTATEMENTüBYüCHARLESEüE.üEAKERü)Ö(üFROMüFORTHüDIMENSIONS,üVOLUMEüII,üNO.ü3,üPAGEü37ü)╠:üCASEç?COMPüCSPü@üSP@üCSPü!é4ü;ïIMMEDIATEà:üOFë4ü?PAIRSüCOMPILEüOVERüCOMPILEü=íCOMPILEü0BRANCHüHEREü0ü,¿COMPILEüDROPü5ü;ôIMMEDIATEç:üENDOFå5ü?PAIRSüCOMPILEüBRANCHüHEREü0ü,áSWAPü2ü[COMPILE]üTHENü4ü;ëIMMEDIATEê:üENDCASEä4ü?PAIRSüCOMPILEüDROP½BEGINüSP@üCSPü@ü=ü0=¼WHILEü2ü[COMPILE]üTHEN¬REPEATüCSPü!ü;òIMMEDIATEç-->╜(ü8086üASSEMBLERü---üMISCELLANEOUSüPRIMITIVESëMVP-FORTH)└(üSAVEüTHEüCURRENTüSTACKüPOINTERüASüBASEüOFüLOCALüSTACKü)ç:ü!<SP>ëSP@ü<SP>ü!ü;ñ(üRETURNüNUMBERüOFüITEMSüONüLOCALüSTACKü)ù:ü?<SP>ë<SP>ü@üSP@ü-ü2ü-ü2/ü;¢-->     é(ü8086üASSEMBLERü---üDESTINATIONüREGISTERüPROCESSINGéMVP-FORTH)└:üDREGâCREATEüC,üC,üC,ï(üSTOREüINPUTüPARAMETER)ìDOES>╗DUPüC@üDUPü0FFü=î(üWORD/BYTEüFLADü)öIFüDROPüELSEüDUPü<W>ü!ü<WD>ü!üTHEN£1+üDUPüC@ü<TD>ü!î(üADDRESSINGüTYPEü)æ1+üC@ü<RD>ü!É(üGETüREGISTERüCODEü)Å<#>ü@ü?ERROR2│<TD>ü@ü4ü=Æ(üINDEXEDüADDRESSINGü?ü)ÄIFü?<SP>â0ü>î(üYES,üANYüDISPLACEMENT?ü)ÄIFü<OD>ü!üTHENè(üSAVEüDISPLACEMENTü)æTHENâ; »-->╜(ü8086üASSEMBLERü---üSOURCEüREGISTERüPROCESSINGçMVP-FORTH)└:üSREGéCREATEüC,üC,üC,ì(üSTOREüINPUTüPARAMETERSü)èDOES>╗DUPüC@üDUPü0FFü=î(üWORD/BYTEüFLAGü)öIFüDROPüELSEü<W>ü!üTHENº1+üDUPüC@ü<TS>ü!î(üADDRESSINGüTYPEé)É1+üC@ü<RS>ü!É(üSETüREGISTERüCODEü)Å<TS>é@ü4ü=æ(üINDEXEDüADDRESSING?ü)ÅIFü?<SP>ü0ü>Ä(üYES,üANYüDISPLACEMENT?ü)ÄIFü<OS>ü!üTHENè(üSAVEüDISPLACEMENTü)æTHENé;»--> ■(ü8086üASSEMBLERü---üSOURCEüREGISTERüDEFINITIONSåMVP-FORTH)└(üREGäTYPEäWîNAMEé)▐0å2å0äSREGàALó1å2å0äSREGàCLó2å2å0äSREGàDLó3å2å0äSREGàBLó4å2å0äSREGàAHó5å2å0äSREGàCHó6å2å0äSREGàDHó7å2å0äSREGàBHƒ--> ■(ü8086üASSEMBLERü---üSOURCEüREGISTERüDEFINITIONSåMVP-FORTH)└(üREGâTYPEäWèNAMEü)Γ0à3å1âSREGäAXÑ1à3å1âSREGäCXÑ2à3å1âSREGäDXÑ3à3å1âSREGäBXÑ4à3å1âSREGäSPÑ5à3å1âSREGäBPÑ6à3å1âSREGäSIÑ7à3å1âSREGäDIó--> ■(ü8086üASSEMBLERü---üSOURCEüREGISTERüDEFINITIONSåMVP-FORTH)└(üREGâTYPEäWèNAMEü)ó0à4à-1âSREGâ[BX+SI]í0à4à-1âSREGâ[SI+BX]í1à4à-1âSREGâ[BX+DI]í1à4à-1âSREGâ[DI+BX]í2à4à-1âSREGâ[BP+SI]í2à4à-1âSREGâ[SI+BP]í3à4à-1âSREGâ[BP+DI]í3à4à-1âSREGâ[DI+BP]í4à4à-1âSREGâ[SI]ñ5à4à-1âSREGâ[DI]ñ6à4à-1âSREGâ[BP]ñ7à4à-1âSREGâ[BX]í-->╜(ü8086üASSEMBLERü---üSEGMENTüREGISTERüDEFINITIONSàMVP-FORTH)└(üREGâTYPEâWèNAMEü)π0à5ä-1âSREGäESª1à5ä-1âSREGäCSª2à5ä-1âSREGäSSª3à5ä-1âSREGäDSµ0à5ä-1âDREGäES,Ñ1à5ä-1âDREGäCS,Ñ2à5ä-1âDREGäSS,Ñ3à5ä-1âDREGäDS,ó--> ╛(ü8086üASSEMBLERü---üDESTINATIONüREGISTERüDEFINITIONSüMVP-FORTH)└(üREGâTYPEäWèNAMEü)Γ0à2å0âDREGäAL,ñ1à2å0âDREGäCL,ñ2à2å0âDREGäDL,ñ3à2å0âDREGäBL,ñ4à2å0âDREGäAH,ñ5à2å0âDREGäCH,ñ6à2å0âDREGäDH,ñ7à2å0âDREGäBH,í--> ■(ü8086üASSEMBLERü---üDESTINATIONüREGISTERüDEFINITIONSüMVP-FORTH)└(üREGâTYPEàWèNAMEü)ß0à3ç1âDREGäAX,ú1à3ç1âDREGäCX,ú2à3ç1âDREGäDX,ú3à3ç1âDREGäBX,ú4à3ç1âDREGäSP,ú5à3ç1âDREGäBP,ú6à3ç1âDREGäSI,ú7à3ç1âDREGäDI,á--> ■(ü8086üASSEMBLERü---üDESITNATIONüREGISTERüDEFINITIONSüMVP-FORTH)└(üREGâTYPEàWèNAMEà)¥0à4å-1âDREGâ[BX+SI],ƒ0à4å-1âDREGâ[SI+BX],ƒ1à4å-1âDREGâ[BX+DI],ƒ1à4å-1âDREGâ[DI+BX],ƒ2à4å-1âDREGâ[BP+SI],ƒ2à4å-1âDREGâ[SI+BP],ƒ3à4å-1âDREGâ[BP+DI],ƒ3à4å-1âDREGâ[DI+BP],ƒ4à4å-1âDREGâ[SI],ó5à4å-1âDREGâ[DI],ó6à4å-1âDREGâ[BP],ó7à4å-1âDREGâ[BX],ƒ-->╜(ü8086üASSEMBLERü---üMISCELLANEOUSüOPERATORSèMVP-FORTH):ü?Wê<W>ü@ü;Æ(üFETCHüWORD/BUTEüFLAGü)â:ü?TDç<TD>ü@ü;æ(üFETCHüDESTüADDRüTYPEü)â:ü?TSç<TS>ü@ü;æ(üSOURCEüADDRüTYPEà)â:ü?RDç<RD>ü@ü;æ(üDESTüREGISTERüCODEâ)â:ü?RSç<RS>ü@ü;æ(üSOURCEüREGISTERüCODEü)â:ü?ODç<OD>ü@ü;æ(üDESTüDISPLACEMENTä)â:ü?OSç<OS>ü@ü;æ(üSOURCEüDISPLACEMENTé)â:ü+Dê<D>ü@ü2*ü+ü;ì(üMERGEüDIRECTIONüFLAGü)â:ü+Wê<W>ü@ü+ü;É(üMERGEüWORD/BYTEüFLAGü)â:ü+RDç<RD>ü@ü+ü;Å(üMERGEüDESTüREGüCODEé)â:ü+RSç<RS>ü@ü+ü;Å(üMERGEüSOOUREüREGüCODE)â:üMOD1å3FüANDü040üORü;è(üSETMODüFIELDüTOü01â)â:üMOD2å3FüANDü080üORü;è(üSETMODüFIELDüTOü10â)â:üMOD3å3FüANDü0C0üORü;è(üSETMODüFIELDüTOü11â)â-->╜(ü8086üASSEMBLERü---üMISCELLANEOUSüOPERATORSèMVP-FORTH)└(üEQUATESüTOüADDRESSINGüMODESâ)ƒ0üCONSTANTüDIRECTï3üCONSTANTüREG16ö1üCONSTANTüIMMEDî4üCONSTANTüINDEXEDÆ2üCONSTANTüREG8ì5üCONSTANTüSEGREG╙(üINITIALIZEüALLüVARIABLESüANDüFLAGSé)Ö:üRESETâ0ü<#>ü!à0ü<W>ü!å0ü<OS>ü!å0ü<RD>ü!æ0ü<TD>ü!ä0ü<TS>ü!à0ü<OD>ü!å!<SP>ö0ü<D>ü!à0ü<WD>ü!à0ü<RS>ü!â;æ(üINITIALIZEüDIRECTIONüPOINTERüFORüMEM/REGüINSTRUCTIONSü)ç:üDSETä?TSüINDEXEDü=ü<D>ü!ü;í(üSETüTHEüDIRECTIONüFLAGüTRUEé)á:üDTå1ü<D>ü!ü;¡-->╜(ü8086üASSEMBLERü---üMISCELLANEOUSüOPERATORSèMVP-FORTH)(üCALCULATEüANDüSTOREüRELATIVEüOFFSETüFORüBRANCHESüANDüLOOPSü)é:üOFFSET8,é(üISSUEüERRORüMESSAGEüIFüDARGETüOUTüOFüADDRüRANGEü)äHEREü1+ü-üDUPüABSü07Fü>ü?ERROR1âC,ü;ù(üCALCULATEüANDüSTOREü16üBITüOFFSETüFORüJMPüANDüCALLü)è:üOFFSET16,éHEREü2+ü-ü,ü;ª(üCALCULATEüANDüSTOREüDISPLACEMENTüFORüMEM/REGüINSTRUCTIONSü)â:üDISP,é<D>ü@üIFü?OSüELSEü?ODüTHENüDUPé(üGETüDISPLé)ÆIFéDUPüABSü07Fü>Å(üCHECKüSIZEü)öIFüSWAPüMOD2üC,üCì(üTWOüBYTESé)öELSEüSWAPüMOD1üC,üC,üTHENà(üONEüBYTEâ)ÆELSEüDROPüDUPü7üANDü6ü=ë(üNOüDISPLâ)öIFüMOD1üC,ü0üC,Å(üEXCEPTü[BP])öELSEüC,üTHENÆ(üALWAYSüGETS)ÆTHENé;░-->╜(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGRü1-3âMVP-FORTH)└(üSINGLEüBYTEüINSTRUCTIONSüWITHOUTüOPERANDSü)ô:ü1MIéCREATEâC,╡DOES>äC@üC,üRESETü;π(üCONDITIONALüJUMPSüANDüLOOPS,ü1üBYTEü+üOFFSETé)Å:ü2MIéCREATEâC,╡DOES>äC@üC,üOFFSET8,üRESETü;┌(üSTRINGüINSTRUCTIONSé)¿:ü3MIéCREATEâC,╡DOES>äC@ü+WüC,üRESETü;á--> ╛(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü4éMVP-FORTH)└(üREGISTERüPUSHüANDüPOPâ)Ñ:ü4MIâCREATEâC,üC,▓DOES>╜?TSá(üOPERANDüTYPEâ)ïCASE╝REG16äOFé1+üC@ü+RSüC,üENDOFä(üUSUALü16üBITüREG)èSEGREGâOFéC@ü?RSü8ü*ü+üC,üENDOFü(üSEGMENTüREGà)è1é?ERROR3╢ENDCASEâRESETé;ñ-->  ┐(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü5éMVP-FORTH)└(üINTRASEGMENTüJMPüANDüCALL,ü16üBITüOFFSETüORüREG/MENé)ê(üINTERSEGMENTüLONGüJMPSüANDüTHEüSHORTüJMPüAREüNOTüSUPPORTEDü)é:ü5MIüCREATEüC,üC,┤DOES>╜?TSó(üOPERANTüTYPEü)ïCASE╝DIRECTâOFé1+üC@üC,üOFFSET16,êENDOFü(üDISPü16)ëREG16äOFé0FFüC,üC@üMOD3ü+RSüC,àENDOFü(üVIAüREG)ëINDEXEDéOFéDSETü0FFüC,üC@ü+RSüDISP,éENDOFü(üINDEXED)ë1é?ERROR3╢ENDCASEéRESETé;º--> ╛(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü6éMVP-FORTH)└(üINüANDüOUTâ)░:ü6MIâCREATEéC,üC,│DOES>æ(üINüORüOUTü?É)ÄDUPüC@ü2üANDê(üIFüTRUEüISüOUTüINSTRç)ÄIFä?TDâ?TSà(üGETüOPERANDüTYPESè)ÄELSEé?TSâ?TDà(üTOSü=üDATAüWIDTHï)ÄTHENÉ(üNOSü=üPORTüADDRüTYPEç)ÄREG16ü=ü<W>ü!ç(üSETüWORD/BYTEüTRANSFERà)ÄREG16ü=ì(üCHECKüIFüREGISTERüADDRà)ÄIFà1+üC@ü+WüC,é(üVIAüDXò)ÄELSEâC@ü+WüC,üC,é(üVIAüINLINEüPORTü#è)ÄTHENéRESETé;¿-->²(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü7éMVP-FORTH)└(üADC,üADD,üAND,üCMP,üOR,üSBB,üSUB,üANDüXORï)ë:ü7MIâCREATEüC,üC,üC,▒DOES>╜?TSüIMMEDü=î(üSOURCEü=üIMMEDIATEüDATAü)ÄIFé1+üDUPü1+üC@ü+WüC,¼?TDüCASEì(üCHECKüDESTüTYPEë)ÉREG8äOFéC@üMOD3ü+RDüC,üC,äENDOFÜREG16âOFéC@üMOD3ü+RDüC,ü,àENDOFÜINDEXEDüOFüDSETüC@ü+RDüDISP,ª?WüIFü,üELSEüC,üTHENïENDOFÜ1üABORT"üILLEGALüOPERAND"åENDCASEÿELSEüDSETüC@ü+Dü+WüC,é(üSOURCEü=üREG/MEMç)æ?TDüCASEì(üCHECKüDESTüTYPEê)à-->╜(ü8086üASSEMBLERü---üINSTüPROCESSING,üGROUPü7üCONTäMVP-FORTH)╦REG8àOFü?TSüCASEï(ü8üBITüDESTüREGà)ìREG8üOFü?RSü8ü*ü+RDüMOD3üC,éENDOFü(ü8üBITüSOURCEü)ìINDEXEDüOFü?RDü8ü*ü+RSüDISP,üENDOFü(üINDEXEDüSOURC)ì1é?ERROR3éENDCASEâENDOFúREG16äOFü?TSüCASEï(ü16üBITüDESTüREGä)ìREG16äOFü?RSü8ü*ü+RDüMOD3üC,üENDOFü(ü16üBITüSRC)ìINDEXEDéOFü?RDü8ü*ü+RSüDISP,âENDOFü(üINDEXEDâ)ì1é?ERROR3üENDCASEâENDOFñINDEXEDéOFü?TSüCASEï(üINDEXEDüDESTç)ìREG8âOFü?RSü8ü*ü+RDüDISP,éENDOFä(ü8üBITüSRCü)ìREG16éOFü?RSü8ü*ü+RDüDISP,éENDOFä(ü16üBITüSRC)ì1ü?ERROR3üENDCASEâENDOFª1é?ERROR3éENDCASEüTHENüRESETü;ö-->╜(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü8éMVP-FORTH)└(üDIV,üIDIV,üIMUL,üMUL,üNEG,üANDüNOTà)û:ü8MIâCREATEüC,üC,┤DOES>╜DUPü1+üC@ü+WüC,▒?TSéCASE¥(üOPERANDüTYPEü)èREG8äOFéC@ü+RSüMOD3üC,åENDOFü(ü8üBITüREGä)èREG16âOFéC@ü+RSüMOD3üC,åENDOFü(ü16üBITüREGâ)èINDEXEDüOFéDSETüC@ü+RSüDISP,âENDOFü(üINDEXEDå)è1ü?ERROR3╖ENDCASEüRESETü;º--> ■(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü9éMVP-FORTH)└(üVARIOUSüSHIFüINSTRUCTIONSà)ƒ:ü9MIâCREATEüC,üC,┤DOES>╜DUPü1+üC@ü<WD>ü@ü+ç(üWORD/BYTEüFLAGEë)î?TSü1ü>üIFü2+üTHENüC,ä(üSHIFü1üORüCOUNTüINüCL?é)î?TDüCASEæ(üOPERANDüTOüBEüSHIFTEDâ)îREG8äOFâC@üMOD3ü+RDüC,âENDOFä(ü8üBITüREGü)îREG16âOFâC@üMOD3ü+RDüC,âENDOFä(ü16üBITüREG)îINDEXEDüOFâDSETüC@ü+RDüDISP,üENDOFâ(üINDEXEDâ)î1ü?ERROR3╖ENDCASE╣?TSü2ü<üIFüDROPüTHENüRESETü;ü(üCLEANüUPüSTACKå)é-->²(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü10üMVP-FORTH)└(ü2üBYTEüSIMPLEüINSTRUCTIONSüWITHOUTüOPERANDSé)╨:ü10MIâCREATEâC,üC,▓DOES>äDUPüC@üSWAPü1+üC@üC,üC,üRESETü;Å-->     é(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü11üMVP-FORTH)└(üINCüANDüDECüINSTRUCTIONSü)ñ:ü11MIâCREATEüC,üC,┤DOES>ü?TSüCASEÿ(üOPERANDüTYPEü)èREG8àOFé0FEüC,ü1+üC@┤MOD3é+RSüC,çENDOFü(ü8üBITüREGä)èREG16äOFéC@ü+RSüC,èENDOFü(ü16üBITüREGâ)èINDEXEDéOFéDSETü0FEü+WüC,▓1+üC@ü+RSüDISP,äENDOFü(üINDEXEDå)è1ü?ERROR3╖ENDCASEüRESETü;¿--> ■(ü8086üASSEMBLERü---üINSTüPROCERSSING,üGROUPü12çMVP-FORTH)└(üMOVüINSTRUCTIONSüREG/REG,üREG/MEM,üORüREG/IMMEDIATEå)ä:ü12MIüCREATE║DOES>üDROPüDSETü?TDüCASE¿DIRECTéOFé?TSüCASEä(üDISTINATIONü=üMEMORYüDIRECTé)è(üSOURCEü=ü8üBITüGENERALüREGISTERâ)¢REG8àOFü?RSüIFü088üC,ü?RSü8ü*ü6ü+üC,ü,â(üREGâ)òELSEü0A2ü+WüC,ü,üTHENåENDOFü(üACCâ)ï(üSOURCEü+ü16üBITüGENERALüREGISTERâ)ÜREG16äOFü?RSüIFü089üC,ü?RSü8ü*ü6ü+üC,ü,ü(üREGâ)ÿELSEü0A2ü+WüC,ü,üTHENäENDOFü(üACCâ)î(üSOURCEü+üSEGMENTüREGISTERé)óSEGREGâOFü08CüC,ü?RSü8ü*ü6ü+üC,ü,éENDOFû1ü?ERROR3âENDCASEäENDOF¢-->╜(ü8086üASSEMBLERü---üINSTüPROCESSING,üGROUPü12üCONTâMVP-FORTH)╟REG8âOFé?TSüCASEü(üDESTINATIONü+ü8üBITüGENERALüREGâ)ë(üSOURCEü=üMEMORYüDIRECTà)óDIRECTüOFé?RDüIFü08AüC,ü?RDü8ü*ü6ü+üC,ü,ÖELSEü0A0ü+WüC,ü,äTHENÅENDOFÆ(üSOURCEü=üIMMEDIATEüDATAé)ñIMMEDéOFé0B0ü+RDüC,üC,æENDOFÆ(üSOURCEü=ü8üBITüGENERALüREGâ)áREG8éOFüDTü88ü+DüC,ü?RDü8ü*ü+RSüMOD3üC,üENDOFÆREG16üOFé1üABORT"üREGISTERüMISMATCH"äENDOFÆ(üSOURCEü=üINDEXEDüADDRESSâ)óINDEXEDüOFü88ü+Dü+WüC,ü?RDü8ü*ü+RSüDISP,üENDOFÆ1ü?ERROR3åENDCASEçENDOFò-->²(ü8086üASSEMBLERü---üINSTüPROCESSING,üGROUPü12üCONTâMVP-FORTH)êREG16üOFü?TSüCASEé(üDESTINATIONü+ü16üBITüGENERALüREGé)è(üSOURCEü=üMEMORYüDIRECTü)ªDIRECTüOFü?RDüIFü08BüC,ü?RDü8ü*ü6ü+üC,ü,ÜELSEü0A0ü+WüC,ü,àTHENÆENDOFÄ(üSOURCEü=üIMMEDIATEüDATEâ)úIMMEDüOFé0B8ü+RDüC,ü,ùENDOFÄ(üSOURCEü=ü16üBITüGENERALüREGé)áREG16éOFüDTü88ü+Wü+DüC,ü?RDü8ü*ü+RSüMOD3üC,üENDOFÄ(üSOURCEü=üINDEXEDüADDRESSé)úINDEXEDéOFü88ü+Dü+WüC,ü?RDü8ü*ü+RSüDISP,äENDOFÄ(üSOURCEü=üSEGMENTüREGISTERâ)íSEGREGüOFü8CüC,ü?RSü8ü*ü+RDüMOD3üC,èENDOFÄ1ü?ERROR3ÄENDCASEéENDOFæ-->²(ü8086üASSEMBLERü---üINSTüPROCESSING,üGROUPü12üCONTâMVP-FORTH)╚INDEXEDüOFü?TSüCASEé(üDESTINATIONü+üINDEXEDüADDRESSÄ(üSOURCEü=üIMMEDIATEüDATEà)íIMMEDéOFé0C6ü+WüC,ü?RDüDISP,ñ?WüIFü,üELSEüC,üTHENÿENDOFì(üSOURCEü=ü8üBITüGENERALüREGâ)áREG8éOFé88ü+Dü+WüC,ü?RSü8ü*ü+RDüDISP,çENDOFì(üSOURCEü=ü16üBITüGENERALüREGâ)ƒREG16üOFé88ü+Dü+WüC,ü?RSü8ü*ü+RDüDISP,çENDOFì(üSOURCEü=üSEGMENTüREGISTERé)óSEGREGüOFé08CüC,ü?RSü8ü*ü+RDüDISP,ïENDOFì1é?ERROR3ÅENDCASEéENDOFÅ--> ╛(ü8086üASSEMBLERü---üINSTüPROCESSING,üGROUPü12üCONTâMVP-FORTH)╟SEGREGéOFé?TSüCASEé(üDESTINATIONü+üSEGMENTüREGISTER)ï(üSOURCEü=üMEMORYüDIRECTâ)ñDIRECTéOFé08EüC,ü?RDü8ü*ü6ü+üC,ü,èENDOFÄ(üSOURCEü=ü16üBITüGENERALüREGISTERâ)ÜREG16éOFé08EüC,é?RDü8ü*ü+RSüMOD3üC,çENDOFÄ(üSOURCEü=üINDEXEDüADDRESSINGé)áINDEXEDüOFé08EüC,ü?RDü8ü*ü+RSüDISP,ëENDOFÄ1ü?ERROR3ƒENDCASEüENDOF╔1ü?ERROR3£ENDCASEäRESETü;é--> ■(ü8086üASSEMBLERü---üINSTRUCTIONüPROCESSING,üGROUPü13üMVP-FORTH)└(üXCHGüINSTRUCTIONSä)¿:ü13MIéCREATE║DOES>üDROPüDSETü?TDéCASEç(üDESTINATIONüTYPEü?é)ë(üIFüMISSINGüDSTüREGüASSUMEü16üBITüREGü<->üACCü)ÉDIRECTéOFü?TSéREG16ü=½IFü90ü+RSüC,üELSEü1üABORT"üILLEGALüOPERAND"üTHENüENDOFè(üEXCHANGEüOFü8üBITüREGISTERüWITHüREGüORüMEMORYâ)ìREG8éOFé86ü+WüC,é?TSüCASEâ(üSOURCEüTYPE?â)æREG8àOFü?RDü8ü*ü+RSüMOD3üC,çENDOFòINDEXEDéOFü?RDü8ü*ü+RSüDISP,ëENDOFò1ü?ERROR3ÜENDCASEâENDOFé--> ╛(ü8086üASSEMBLERü---üINSTüPROCESSING,üGROUPü13üCONTâMVP-FORTH)╚(üEXCHANGEü16üBITüREGISTERüWITHüREGISTERüORüMEMORYé)ïREG16éOFé86ü+WüC,ü?TSüCASEªREG16äOFé?RDü8ü*ü+RSüMOD3üC,ïENDOFÉINDEXEDéOFé?RDü8ü*ü+RSüDISP,ìENDOFÉ1ü?ERROR3ÜENDCASEüENDOF╬1ü?ERROR3ÆENDCASEäRESETü;ï-->   └(ü8086üASSEMBLERü---üINSTüPROCESSING,üGROUPü14ü&ü15âMVP-FORTH)(üSPECIALüROUTINEüFORüTESTüINSTRUCTIONü)ÿ:ü14MIüCREATEüDOES>üDROPü?TSüCASEóDIRECTéOFü1üABORT"üILLEGALüOPERAND"üENDOFü(üDIRüADDüILLEAL)âIMMEDâOFü0F6ü+WüC,ü?TDüCASEå(üIMMEDIATEüTESTüDATAä)àREG8äOFü?RDüMOD3üC,ü?WüIFü,üELSEüC,üTHENâENDOFìREG16âOFü?RDüMOD3üC,ü?WüIFü,üELSEüC,üTHENâENDOFìINDEXEDüOFü?RDüDISP,ü?WüIFü,üELSEüC,üTHENàENDOFì1ü?ERROR3¥ENDCASEüENDOFïSEGREGéOFü1ü?ERROR3éENDOFÄ(üSEGüREGüILLEGALü)ä?TDüREG8ü<ü?TDüREG16ü>üORé?ERROR3á84ü+WüC,ü?RDü8ü*ü+RSå(üTESTüREGüWITHüREB/MEMü)ì?TSüINDEXEDü<üIFüMOD3üC,é(üSOURCEü=üGENERALüREGé)ÅELSEüDISP,éTHENê(üSOURCEü=üINDEXEDå)ìENDCASEàRESETé;¿:é15MIâCREATEüDOES>üDROPü0CDüC,üC,üRESETü;ü-->Å(ü8086üASSEMBLERü---üINSTRUCTIONüDEFINITIONSèMVP-FORTH)└37ç1MIäAAAè80ü38ü38ü7MIäCMPÉD5ü0Aä10MIâAADèA6ç3MIäCMPSÅD4ü0Aä10MIâAAMè99ç1MIäCWDÉ3Fç1MIäAASè27ç1MIäDAAÉ80ü10ü10ü7MIäADCè2Fç1MIäDASÉ80ü00ü00ü7MIäADDè08ü48ä11MIâDECÉ80ü20ü20ü7MIäANDèF6ü30ä8MIäDIVÉE8ü10ä5MIäCALLù(üESCü)Ä98ç1MIäCBWèF4ç1MIäHLTÉF8ç1MIäCLCèF6ü38ä8MIäIDIVÅFCç1MIäCLDèF6ü28ä8MIäIMULÅFAç1MIäCLIèECüE4ä6MIäINæF5ç1MIäCMCè00ü40ä11MIâINCÉ-->╜(ü8086üASSEMBLERü---üINSTRUCTIONüDEFINITIONSèMVP-FORTH)╚15MIäINTïE9ü20ä5MIäJMPÅCEç1MIäINTOè76ç2MIäJNAÅCFç1MIäIRETè72ç2MIäJNAEÄ77ç2MIäJAî73ç2MIäJNBÅ73ç2MIäJAEï77ç2MIäJNBEÄ72ç2MIäJBî75ç2MIäJNEÅ76ç2MIäJBEï7Eç2MIäJNGÅE3ç2MIäJCXYè7Cç2MIäJNGEÄ74ç2MIäJEî7Dç2MIäJNLÅ7Fç2MIäJGî7Fç2MIäJNLEÄ7Dç2MIäJGEï71ç2MIäJNOÅ7Cç2MIäJLî7Bç2MIäJNPÅ7Eç2MIäJLEï79ç2MIäJNSÅ-->╜(ü8086üASSEMBLERü---üINSTRUCTIONüDEFINITIONSèMVP-FORTH)└75ç2MIäJNZïE2ç2MIäLOOPÄ70ç2MIäJOîE1ç2MIäLOOPEì7Aç2MIäJPîE0ç2MIäLOOPNEî7Aç2MIäJPEïE0ç2MIäLOOPNZî7Bç2MIäJPOïE1ç2MIäLOOPZì7Bç2MIäJSò12MIâMOVÅ74ç2MIäJZîA4ç3MIäMOVSÄ9Fç1MIäLAHFèF6ü20ä8MIäMUL¥(üLDSü)ëF6ü18ä8MIäNEGÅ8Aü8Aü8Aü7MIäLEAï90ç1MIäNOP¥(üLESü)ëF6ü10ä8MIäNOTÅF0ç1MIäLOCKè80ü08ü08ü7MIäORÉACç3MIäLODSèEEüE6ä6MIäOUTÅ-->╜(ü8086üASSEMBLERü---üINSTRUCTIONüDEFINITIONSèMVP-FORTH)└58ü07ä4MIäPOPïD0ü08ä9MIäRORÅ9Dç1MIäPOPFè9Eç1MIäSAHFÄ50ü06ä4MIäPUSHèD0ü38ä9MIäSARÅ9Cç1MIäPUSHFë80ü18ü18ü7MIäSBBÅD0ü10ä9MIäRCLïAEç3MIäSCASÄD0ü18ä9MIäRCRÖ(üSEGü)ìF3ç1MIäREPïD0ü20ä9MIäSALÅF3ç1MIäREPEèD0ü20ä9MIäSHLÅF2ç1MIäREPNEëD0ü28ä9MIäSHRÅF2ç1MIäREFNZëF9ç1MIäSTCÅF3ç1MIäREPZèFDç1MIäSTDÅC3ç1MIäRETïFBç1MIäSTIÅD0ü00ä9MIäROLïAAç3MIäSTOSÄ-->╜(ü8086üASSEMBLERü---üINSTRUCTIONüDEFINITIONSèMVP-FORTH)└80ü28ü28ü7MIäSUB╢14MIâTEST¼9Bç1MIäWAIT╡13MIâXCHG¼D7ç1MIäXLAT¼80ü30ü30ü7MIäXOR¡-->    ü(ü8086üASSEMBLERü---üCONTROLüSTRUCTURESÅMVP-FORTH)(üIFü...üTHENéORéIFü...üELSEü...üTHENéPROVIDESüCONDITIONALé)(üEXECUTIONüBASEDüONüTHEüSTATüOFüTHEüCPU'SüZüFLAGÄ):üIFà074üC,ü0üC,üHEREüRESETü;å(üSTORESüJZì):üELSEâ0EBüC,ü0üC,üDUPÅ(üSTORESüJMPî)âHEREüSWAPü-üDUPüABSü07Fü>ü?ERROR1ƒSWAPü1-üC!üHEREüRESETü;ª:üENDIFéDUPüHEREüSWAPü-üDUPüABSü07Fü>ü?ERROR3òSWAPü1-üC!üRESETü;Æ(üRESOLVESüBRANCHESà)└(üBEGINü...üUNTILâCONSTRUCTüPROVIDESüCONTROLLEDüREPETITIVEâ)(üEXECUTION,üEXITüFROMüLOOPüTAKENüIFüZüFLAGüISüFALSE.è):üBEGINâHEREéRESETü;É(üLEAVESüADDRESSê):üUNTILâ074üC,üHEREü1+ü-ì(üSTORESüJZì)èDUPüABSü07Fü>ü?ERROR3üC,üRESETü;û-->╜(ü8086üASSEMBLERü---üSPECIALüOPERATORSÉMVP-FORTH)└(üFORCEüBYTEüADRESSINGüMODEà)ƒ:üBYTEä0ü<W>ü!ä0ü<WD>ü!ü;ß(üFORCEüWORDüADRESSINGüMODEâ)í:üWORDä1ü<W>ü!ä1ü<WD>ü!ü;ß(üSETüIMMEDIATEüDATAüFLAGé)ñ:ü#ç1ü<#>ü!ä1ü<TS>ü!ü;ß(üCOMMAüDELIMITSüDESTINATIONüFIELDüFORüDIRECTüADDRESSINGà)é:ü,çDEPTHü1ü<ü?ERROR4»0ü<TD>ü!ü;¼-->²(ü8086üASSEMBLERü---üLOADINGüTERMINATIONÄMVP-FORTH)└(üEND-CODEüCODE,ü:CODE,üANDüNEXTüDELIMITüAüCODEüDEFINITIONä)ü:üEND-CODEâCURRENTü@üCONTEXTü!üSP@ü2+ü=üFORTHöIFüSMUDGEüELSEü."üCODEüERROR,üSTACKüDEPTHüCHANGEDü"üTHENü;├FORTHüDEFINITIONSüFORTH⌐:üENTERCODEâ[COMPILE]üASSEMBLERüSP@ü;Ö:üCODEâCREATEüSMUDGEüHEREüDUPü2-ü!üENTERCODEü;É:ü;CODEé?CSPüCOMPILEü<;CODE>ü[COMPILE]ü[üENTERCODEü;üIMMEDIATE┴DECIMAL╣CRüCRü."ü8086üAssemblerüloaded.ü" α(ü8086üASSEMBLERü---üLOADINGüTERMINATIONÄMVP-FORTH)└(üCODE,ü:CODE,üANDüNEXTüDELIMITüAüCODEüDEFINITIONä)è:üNEXTä0E9üC,üNEXTüOFFSET16,üRESETÑ?CSPüSMUDGEü[COMPILE]üFORTHü;éIMMEDIATE╬FORTHüDEFINITIONS»:ü;CODEâ?CSPüCOMPILEü<;CODE>ü[COMPILE]ü[üASSEMBLERûRESETüFORTHü[COMPILE]üASSEMBLERü;üIMMEDIATEï:üCODEäSP@üCSPü!éCREATEüASSEMBLERéRESETüFORTHÿ[COMPILE]üASSEMBLERü;åIMMEDIATE╥DECIMAL╣CRüCRü."ü8086üAssemblerüloaded.ü"ƒEXITⁿ(╡MVP-FORTH)       ╟(éLOADüSCREENüFORüLINEüEDITORÿMVP-FORTH) ü61ü78üTHRU      ╝(é<MATCH>¼MVP-FORTH)┴WARNINGü@é0üWARNINGü!Θ:ü<MATCH>à(üADDR-3,üADDR-2,üCOUNT-1ü---üFLAGé)Å?DUPéIFüOVERü+üSWAP«DO└DUPüC@üIüC@ü-│IFü0=éLEAVEüELSEü1+éTHENñLOOP║ELSEüDROPü0=éTHENü;  ∞(éMATCH«MVP-FORTH)└:üMATCHä(üCURSORüADDR-4,üBYTESüLEFT-3,üSTRINGüADDR-2ü)Æ(üSTRINGüCOUNT-1,ü---üFLAG-2,éCURSORüOFFSET-1ü)ç>Ré>RéDDUPéR>üR>éDSWAPéOVERé+éSWAPù(üCADDR-6,üBLEFT-5,ü$ADDR-4,ü$LEN-3,üCADDR+BLEFT-2,üCADDR-1ü)âDO└DDUPéIüSWAPé<MATCH>½IF└>RüDDROPéR>é-éIéSWAPé-é0éSWAPé0é0éLEAVEî(üCADR,üBLEFT,ü$ADDR,ü$LENâORé0,üOFFSET,ü0,ü0é)ìTHEN║LOOP╝DDROPä(üCADDR-2,üBLEFT-1âORé0-2,üOFFSET-1ü)ÅSWAPé0=âSWAPâ;∞(éLINE»MVP-FORTH) üBASEü@éHEX⌡:üLINEâ(üRELATIVEüTOüSCR,üLEAVEüADDRESSüOFüLINEü)ÅDUPéFFF0éAND▓ABORT"üNOTüONüCURRENTüEDITINGüSCREEN"¢SCRü@é<LINE>éDROPü;ΘBASEü!·:üWIPEâSCRé@éCLEARé; Φ(éEDITORé#LOCATEñMVP-FORTH)└VOCABULARYéEDITORéIMMEDIATEéBASEü@éHEX╓EDITORüDEFINITIONSε:ü#LOCATEä(ü---üCURSORüOFFSET-2,üLINE-1ü)ûR#é@üC/Lé/MODü;φBASEü!   ╜(é#LEADé#LAGé-MOVEéBUF-MOVEùMVP-FORTH)└:ü#LEADà(ü---üCURSORüADDR-2,üOFFSETüTOüCURSOR-1ü)ì#LOCATEéLINEéSWAPé;Φ:ü#LAGà(ü---üCURSORüADDR-2,üCOUNTüAFTERüCURSOR-1ü)î#LEADéDUPé>Ré+éC/LéR>é-é;▐:ü-MOVEà(üMOVEüFORMüADDR-2,üTOüLINE-1ü---ü)ôLINEéC/LéCMOVEéUPDATEü;Σ:üBUF-MOVEä(üMOVEüTEXTüTOüBUFFER-1,üIFüANYé---ü)ÄHEREéC@╕IFéPADéSWAPéC/Lé1+éCMOVEúELSEüDROP╖THENé;╖(é>LINE#éFIND-BUFâINSERT-BUFûMVP-FORTH)└BASEü@éHEX⌡:ü>LINE#ä(üCONVERTüCURRENTüCURSORüPOSITIONüTOüLINE#ü)è#LOCATEüSWAPéDROPé; ¬:üFIND-BUFà(üBUFFERüUSEDüFORüALLüSEARCHESü)ôPADé50é+é; ▓:üINSERT-BUFà(üBUFFERüUSEDüFORüALLüINSERTIONSü)ÅFIND-BUFé50é+é;∞BASEü!║(éHOLD-é<KILL>é<SPREAD>éXÖMVP-FORTH)BASEü@éHEX╡:ü<HOLD>à(üMOVEüLINE-1üFROMüBLOCKüTOüINSERTüBUFFERü)èLINEüINSERT-BUFé1+éC/LéDUPéINSERT-BUFéC!éCMOVEé;╟:ü<KILL>à(üERASEüLINE-1üWITHüBLANKSé)ÿLINEéC/LéBLANKâUPDATEé;Γ:ü<SPREAD>â(üSPREAD,üMAKINGüLINE#üBLANKü)ù>LINE#éDUPâ0E░DOéIüLINEéIü1+é-MOVEé-1é+LOOPé<KILL>é;╤:üXë(üDELETEüLINE#üFROMüBLOCK,üPUTüINüINSERTüBUFFER)å>LINE#éDUPé<HOLD>é0FéDUPéROTƒDOéIé1+üLINEüIé-MOVEéLOOPé<KILL>â;òBASEü!║(éDISPLAY-CURSORéTéLƒMVP-FORTH)└BASEü@üHEX÷:üDISPLAY-CURSORà(ü---ü)ªCRüSPACEü#LEADüTYPEü5EüEMITÑ#LAGüTYPEü#LOCATEü2é.RüSPACEéDROPü;┘:üTÆ(ütypeüline#-1ü)¥C/Lü*üR#ü!üDISPLAY-CURSORü;π:üLæ(ülistücurrentüscreenü)ÿSCRü@éLISTüDISPLAY-CURSORü;ßBASEü!·(éNéBé(TOPâSEEK-ERROR£MVP-FORTH)└:üNà(üSELECTüNEXTüSEQUENTIALüSCREENü)Ö1éSCRü+!é;≥:üBà(üSELECTüPREVIOUSüSEQUENTIALüSCREENü)ò-1éSCRé+!é;≡:ü<TOP>ä(üRESETüCURSORüTOüTOPüOFüBLOCKü)ù0üR#é!ü;⌡:üSEEK-ERRORà(üOUTPUTüERRORüMSGüIFüNOüMATCHü)æ<TOP>éFIND-BUFéHEREéC/Lé1+éCMOVE¢HEREüCOUNTéTYPE░."üNONE"éQUITé;φ(é<R>éP¡MVP-FORTH)└BASEü@éHEX⌡:ü<R>à(üREPLACEüCURRENTüLINEüWITHüINSERTüBUFFERü)ì>LINE#║INSERT-BUFé1+éSWAPé-MOVEé;α:üPç(üFOLLOWINGüTEXTüINüINSERTüBUFFERüANDüLINEü)î5EéTEXT╕INSERT-BUFâBUF-MOVE½<R>é;°BASEü! ╗(é1LINE«MVP-FORTH) ┴:ü1LINEä(üSCANüCURRENTüLINEüFORüMATCHüWITHüFINDüBUFFERü)É(üUPDATEüCURSOR,éRETURNüBOOLEANÅ)ç#LAGéFIND-BUFéCOUNTéMATCHéR#é+!é;    █(é<SEEK>â<DELETE>óMVP-FORTH)BASEü@éHEX⌡:ü<SEEK>ä(üFINDüBUFFERüMATCHüOVERüFULLüSCREEN,üELSEüERRORü)äBEGINé3FFéR#é@é<«IFéSEEK-ERRORéTHEN¼1LINE╣UNTILé;÷:ü<DELETE>ä(üBACKWARDSüATüCURSORüBYüCOUNT-1ü)Æ>Ré#LAGé+éR@é-ä(üSAVEüBLANKüFILLüLOCATIONü)Ä#LAGéR@éNEGATEéR#é+!é(üBACKüATüCURSORü)ö#LEADé+éSWAPéCMOVE½R>éBLANKéUPDATEé;â(üFILLüFROMüENDüOFüTEXTé)═BASEü!║(é<F>éFé<E>âEñMVP-FORTH)BASEü@éHEX╡:ü<F>à(üFINDüOCCURANCEüOFüFOLLOWINGüTEXTü)ö5EéTEXT╕FIND-BUFâBUF-MOVE¡<SEEK>â;⌠:üFç(üFINDüANDüDISPLAYüFOLLOWINGüTEXTé)ö<F>éDISPLAY-CURSORâ;τ:ü<E>ä(üERASEüBACKWARDSüFROMüCURSORé)ÖFIND-BUFéC@é<DELETE>é;σ:üEå(üERASEüANDüDISPLAYüLINEé)₧<E>éDISPLAY-CURSORé;¿BASEü!║(éDéTILL¼MVP-FORTH)└BASEü@éHEX⌡:üDå(üFIND,üDELETE,üANDüDISPLAYüFOLLOWINGüTEXTü)ì<F>éEé;⌡:üTILLâ(üDELETEüFROMüCURSORüTOüTEXTüENDé)û#LEADé+é5EéTEXT«FIND-BUFéBUF-MOVE«1LINEé0=éIFéSEEK-ERRORâTHENá#LEADé+éSWAPé-é<DELETE>ÑDISPLAY-CURSORé;φBASEü!·(éCOUNTERâBUMPÑMVP-FORTH)└BASEü@éHEX⌡VARIABLEéCOUNTERé0üCOUNTERü!Γ:üBUMPä(üTHEüLINEüNUMBERüANDüHANDLEüPAGINGü)ô1éCOUNTERé+!éCOUNTERé@ª38é>éIFé0éCOUNTERé!¿CRéCRé0CéEMITéTHENé;σBASEü!  ╝(éS▓MVP-FORTH)└BASEü@éHEX⌡:üSà(üFROMüCURRENTüTOüSCREEN-1üFORüSTRINGé)Æ0CéEMITé5EéTEXTé0éCOUNTERé!ƒFIND-BUFéBUF-MOVE«SCRé@éDUPé>RéDOéIéSCRé!ó<TOP>╗BEGIN╜1LINEéIFéDISPLAY-CURSORéSCRé?éBUMPéTHENô3FEéR#é@é<é?TERMINALüIFü1üELSEü0üTHENüORæUNTIL╜PAUSEü?TERMINALüIFüKEYüDROPüLEAVEüTHENâLOOPéR>éSCRé!ü;┬BASEü!║(éIéU»MVP-FORTH)BASEü@éHEX╡:üIà(üINSERTüTEXTüWITHINüLINEà)¢5EéTEXTÅ(üLOADüINSERTüBUFFERüWITHüTEXTü)ëINSERT-BUFéBUF-MOVEç(üIFüANYé)ÜINSERT-BUFéCOUNTé#LAGéROTéOVERéMINé>RòR@éR#é+!Ä(üBUMPüCURSORé)ÿR@é-é>RÅ(üCHARACTERSüTOüSAVEü)ÆDUPéHEREéR@éCMOVEä(üFROMüOLDüCURSORüTOüHEREü)ìHEREé#LEADé+éR>éCMOVEé(üHEREüTOüCURSORüLOCATIONé)ëR>éCMOVEéUPDATEå(üPADüTOüOLDüCURSORé)ôDISPLAY-CURSORé;à(üLOOKüATüNEWüLINEé)╙:üUä(üINSERTüFOLLOWINGüTEXTüUNDERüCURRENTüLINEü)ÅC/LéR#é+!é<SPREAD>éPé;úBASEü!║(éRéM»MVP-FORTH)└:üRà(üREPLACEüFOUNDüTEXTüWITHüINSERTüBUFFERé)É<E>éIé;⌡:üMæ(üMOVEüFROMüCURRENTüLINEüONüCURRENTüSCREENü)éSCRé@é>Rê(üTOüSCREEN-2,üUNDERüLINE-1é)ÉR#é@é>Rë(üSAVEüORIGINALüSCREENüANDüCURSORüLOCATIONü)é>LINE#é<HOLD>ä(üMOVEüCURRENTüLINEüTOüINSERTüBUFFERé)çSWAPéSCRé!å(üSETüNEWüSCREENü#é)Ö1+éC/Lé*éR#ü!é(üTEXTüISüSTOREDüUNDERüREQUESTEDüLINEü)ç<SPREAD>â<R>ä(üSTOREüINSERTüBUFFERüINüNEWüSCREENé)êR>éC/Lé+éR#ü!é(üSETüORIGINALüCURSORüTOüNEXTüLINEâ)êR>éSCRé!é;à(üRESTOREüORIGINALüSCREENé)╨FORTHüDEFINITIONSå(üValueüonüstackü)éWARNINGü!î(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(éLOADüSCREENüFORüUTILITYüIDEOGRAMSÆMVP-FORTH)111üDUPü.üLOADü112ü122üTHRUÑ125üLOADÅ\éSTARTINGüFORTHüADDITIONSÄ60üLOADÉ\éEDITORáEXIT      é(éTHRUéTITLEé'TITLEéTRIADÖMVP-FORTH)└:üTHRUâ1+üSWAP│DOéIéU.éIéLOADé?TERMINALéIFéLEAVEéTHENéLOOPé;╞:üTITLEéCRé10üSPACES¡."üMOUNTAINüVIEWüPRESSüFORTHéVERSIONü1.0405.03"éCRé;╞VARIABLEü'TITLEé'üTITLEüCFAé'TITLEü!┌:üTRIADâPAGEé0é3éU/MODüSWAPüDROPâ3é*é3éOVERé+éSWAPàDOéCRéIéLISTé?TERMINAL⌐IFüLEAVEüTHEN░1é/LOOPâ'TITLEü@éEXECUTEé; ƒ(é\éBMOVEéCOPYéDOVERéSWAPÿMVP-FORTH)└:ü\â>INé@éC/Lé/é1+éC/Lé*é>INü!é;ÿIMMEDIATE⌡:üBMOVEâROTéROTéDDUPéU<ºIFéROTé<CMOVE▒ELSEéROTéCMOVE░THENé;÷:üCOPYâOFFSETé@é+éSWAPéBLOCKé2-é!éUPDATEé;╠:üDOVERâ4üPICKé4üPICKé;σ:üDSWAPâ4üROLLé4üROLLé;σ(éDU<éD-éD0=éD=éD>éD@¢MVP-FORTH)┴BASEü@éHEX┤:üDU<â>Ré>Ré8000é+¼R>éR>é8000é+éD<é;¿BASEü!∙:üD-âDNEGATEüD+ü;φ:üD0=âORé0=é;∩:üD=âD-üD0=ü;±:üD>âDSWAPéD<é;φ:üD@âDUPé2+é@éSWAPé@é;ú(éDCONSTANTéDMAXéDMIN₧MVP-FORTH)└:üDCONSTANTâCREATEâ,é,¿DOES>éDUPé2+é@éSWAPé@é;α:üDMAXâDOVERéDOVERéD<¬IFüDSWAPüTHENâDDROPü;µ:üDMINâDOVERéDOVERéD<éNOTÑIFéDSWAPéTHENéDDROPü;   ¿(é.INDEXéPAUSEªMVP-FORTH)└:ü.INDEX╗USEü@üSWAP╢PADüUSEü!éDUP▓SPBLKé*éT&SCALC»SEC-READ╕CRü4ü.Ré2üSPACES»PADüC/Lü-TRAILINGéTYPE⌐USEü!é;⌡:üPAUSEâ?TERMINAL░IFé1000é0éDOéLOOP«BEGINé?TERMINALâUNTIL¿2000é0éDOéLOOP¼THENé;╢(éDUMP-HEADER¿MVP-FORTH)HEX╜:üDUMP-HEADERüCRüCR░OVERé0FüAND┤."üADDRESSä"▒DUPü8ü0üDOüDUPü0FüANDü3ü.Rü1+üLOOPüSPACEÿ8ü0üDOüDUPü0FüANDü3ü.Rü1+üLOOPüDROPü3üSPACESö10ü0üDOüDUPü0FüANDü0ü<#ü#ü#>üTYPEü1+üLOOPùDROPüCRü;┤DECIMAL╣EXIT  ■(éDUMP»MVP-FORTH)HEX╜:üDUMPâBASEé@é>RéHEXüDUMP-HEADERü0£DOéCRéDUPéIé+éDUPé0é9ºD.Ré2üSPACESéDUPé8é0¿DOéDUPéIé+éC@é3é.RéLOOPóDROPéSPACEéDUPé8é+é8é0ñDOéDUPéIé+éC@é3é.RéLOOPóDROPé3üSPACESé10é0½DOéDUPéIé+éC@éDUPé20é<éOVERü7Eé>éORûIFéDROPé2EéTHENéEMITÑLOOPéDROPé10▓PAUSEé?TERMINALéIFéLEAVEéTHEN£/LOOPâDROPéCRéR>éBASEé!é;¥DECIMAL∙(éDUMPL«MVP-FORTH)HEX╜:üDUMPLäBASEé@é>RéHEXüDUMP-HEADERü0ÜDOüCRüDDUPéSWAPü0ü4üD.Rü3AüEMITé0ü4₧D.Ré2üSPACESâDDUPâ8é0ÑDOéDDUPâIé+éC@Lé3é.RéLOOPƒDDROPéSPACEéDDUPâ8é+é8é0íDOéDDUPâIé+éC@Lé3é.RéLOOPƒDDROPé3üSPACESé10é0¬DOéDDUPâIé+éC@LéDUPé20é<éOVERü7Eé>éORôIFéDROPé2EéTHENéEMITÑLOOPü10ü+ä10▒PAUSEé?TERMINALéIFéLEAVEéTHEN£/LOOPâDDROPéCRéR>éBASEé!é;£DECIMAL∙(éDVARIABLEéID.éINDEX₧MVP-FORTH)└:üDVARIABLEâCREATEé4éALLOTé;▀:üID.éCOUNTü31üANDüOVERü+üSWAPÑDOüIüC@ü127üANDüEMITüLOOPü32üEMITü;┘:üINDEXâCRüOVER▓BLOCKüDROPü1+üBPDRVüMINüSWAPüBPDRVüMINÜDOéIé.INDEX│PAUSEü?TERMINALüIFüLEAVEüTHENü1ü/LOOPü;  ╪(éVLIST«MVP-FORTH)HEX ╛:üVLISTâC/LéOUTé!éCONTEXTé@é@ƒBEGINéC/LéOUTé@é-éOVERéC@é1FéANDé4é+é<ÆIFéCRé0éOUTé!éTHEN⌐DUPéID.éSPACEéSPACEéPFAé4é-é@éDUPùNOTéPAUSEé?TERMINALéORñUNTILüDROP╡;²DECIMALüEXIT ⌡(é.SSé.SLé.SRé.SóMVP-FORTH)└0üCONSTANTü.SSå\ü.SüLEFTüORüRIGHTüSWITCH╙:ü.SLü0ü'ü.SSü!ü;â\ü.SüWITHüTOPüOFüSTACKüONüLEFT╬:ü.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ü; ⌠(éSAVE-FORTH⌐MVP-FORTH):üSAVE-FORTHàFREEZE¼13é0éSYSCALLéDROPò\üRESETüDISKüSYSTEMä14é0éSYSCALLéDROP¢\üSELECTüDISKäCRüCRü."üFILEüNAMEü?ü---"üPADü33ü0üFILLüPADü1+ü11üBLANKëQUERYé46üWORDüCOUNTü8üMINüPADü1+üSWAPüCMOVE¢BLüWORDüCOUNTü3üMINüPADü9é+üSWAPüCMOVEÆCRüCRü."üPLACEüYOURüSYSTEMüDISKüINüDRIVEüAü"öCRü."üANDüSTRIKEüANYüKEYü"üCRüCRåKEYüDROPÆ19üPADüSYSCALLüDROP£\üDELETEüFILEä22üPADüSYSCALLüDROP₧\üMAKEüFILEä256üBEGIN║26üOVERüSYSCALLüDROPæ\üSETüDMAüADDRESSè21üPADüSYSCALLüDROPÆ\üWRITEüSEQUENTIALå128ü+üDUPüHEREüSWAPüU<üUNTILüDROPƒ16üPADüSYSCALLüDROPé;Ü\üCLOSEüFILEü(╡MVP-FORTH)       ╟(╡MVP-FORTH)       ╟(éLOADüSCREENüFORüSUPPLEMEMTALüIDEOGRAMSìMVP-FORTH)└126ü128üTHRU      ·(é'Sé-TEXTé2!é2@é2CONSTANTé2DROPé2DUPèMVP-FORTH)└:ü'SâSP@ü;⌠:ü-TEXTâDDUPü+üSWAPüDOüDROPü1+üDUPü1-üC@üIüC@ü-üDUPìIFüDUPâABSü/üLEAVEüTHENü1ü/LOOPüSWAPüDROPü;╤:ü2!âD!é;⌠:ü2@âD@é;⌠:ü2CONSTANTâDCONSTANTé;µ:ü2DROPâDDROPé;ε:ü2DUPäDDUPé;»(é20VERé2SWAPé2VARIABLEé>BINARYé>üTYPEéEMPTYäMVP-FORTH)└:ü2OVERâDOVERé;ε:ü2SWAPâDSWAPé;ε:ü2VARIABLEâDVARIABLEé;µ:ü>BINARYéCONVERTé;δ:ü>TYPEâ."éUSEDüINüMULTIPROGRAMMEDüSYSTEMSüONLY.ü"ü;ëIMMEDIATE≈:üEMPTY╝INIT-FORTHé@é'üFORTHé2+é!úINIT-USERéUPé@é6é+é48éCMOVEé;Ö(éERASEéFLUSHéHéOCTALéU.Ré[']ôMVP-FORTH)└:üERASEâ0éFILLü;φ:üFLUSHéSAVE-BUFFERSü;Θ:üHéDPé;÷:üOCTALé8éBASEé!é;Ω:üU.Râ0éSWAPéD.Rü;Ω:ü[']â?COMPâ[COMPILE]é'é;âIMMEDIATE ╓(╡MVP-FORTH)       ╟(üSCREENS>FILEü&üFILE>SCREENSéLOADôMVP-FORTH)└131ü138üTHRU⌠CRüCRü."üScreensüloaded"âCRüCR     σ(üCOMPRESS¼MVP-FORTH)CREATEüCNTü0ü,≥:üCOMPRESSä(üaddr,üblock#ü---üaddrü)£0üCNTü!╣BLOCKé1024üOVERü+üSWAP⌐DOéIüC@üDUPü32ü=▒IFéDROPâCNTü@ü126ü=¼IFü255üOVERüC!é1+â0üCNTü!ñELSEü1üCNTü+!│THEN║ELSEé>RüCNTü@ü?DUP░IFü128üORüOVERéC!ü1+ü0üCNTü!üTHENüR>éOVERüC!ü1+îTHEN║LOOPàCNTü@ü?DUP¡IFâ128üORéOVERéC!ü1+üTHENé;¥(üEXPAND«MVP-FORTH)└:üEXPANDå(üaddr,üblock#é---ü)á0üCNTü!éDUPü>RüBLOCKüUPDATEñBEGIN╗OVERüC@üDUPü128üAND░IFé127üANDéDUPâCNTü+!⌐DDUPâBLANKä+¡ELSEüOVERüC!é1+â1üCNTü+!ÑTHENéSWAPü1+üSWAP«CNTü@ü1024ü=▒UNTILâDROPéR>ü1+âFLUSHé;  í(üCOMPRESSES,üEXPANDSíMVP-FORTH)└:üCOMPRESSESä(ülast-block+1,üfirst-blockü---üaddré)îPADüROTüROT╡DOüIü.üIüCOMPRESS»LOOPâ26üOVERüC!ü;Ω:üEXPANDSë(üfirst-blockü---üaddr.ünext-blockü)ìPADüSWAP╕BEGINäDUPü.üEXPAND«OVERüC@ü26ü=▒UNTILü;  ╕(üFCB,âMAKE-FCBÑMVP-FORTH)└CREATEüfcbü44üALLOT¡:üFCBéfcbé7ü+ü;∩:üMAKE-FCB╣13é0éSYSCALLéDROPÜ\üResetüdiskåCRüCRü."üEnteré[d:]filename.typü---ü"ÜFCBü37ü0üFILLüFCBü1+ü11üBLANKúQUERY⌐\üMakeüFCBê46üWORDéDUPü2+üC@ü58ü=½IFüDUPü1+üC@ü65ü-ü14üSWAPüSYSCALLüDROPå\üSelectüdriveêCOUNTü2-üSWAPü2+üSWAPüELSEüCOUNTüTHENù8üMINüFCBü1+üSWAPüCMOVE⌐BLüWORDüCOUNTü3üMINüFCBü9ü+üSWAPüCMOVEéCRü;╤(üTO-PAD«MVP-FORTH)└:üTO-PAD╗MAKE-FCB╕15üFCBüSYSCALL£\üOpenüfileï255üANDâABORT"üFileünotüfound.ü"₧FCBü16ü+é@ä128ü+âPADü+üPADè\üFindüsizeïDOé26üIéSYSCALLüDROPö\üSetüDMAÉ20üFCBüSYSCALLüDROPö\üReadüsectorë128ü/LOOP╖16üFCBüSYSCALLüDROPü;ò\üCloseüfile  ╔(üSAVE-PAD¼MVP-FORTH)└:üSAVE-PADà(ücountü---ü)º16üFCBüSYSCALLüDROPàMAKE-FCBè\üCloseüfirstë17üFCBüSYSCALLü255üANDü0=ö\ü?üExistèIFüCRü."üFileüexists.üReplace?é<Y>ü:ü"üKEYü89ü-ÆIFü."üAbortedü"üABORTüELSEü19üFCBüSYSCALLüDROPüTHENüTHENå22üFCBüSYSCALLüDROPù\üMakeüfileï128ü+éPADü+âPAD«DOü26üIüSYSCALLüDROPû\üSetüDMAÉ21üFCBüSYSCALLüDROPö\üWriteüsequentialä128ü/LOOP╖16üFCBüSYSCALLüDROPé;ö\üCloseüfile ╚(üSCREENS>FILE¿MVP-FORTH)└:üSCREENS>FILE╡CRüCRü."üWillüconvertüasürangeüofüscreensütoüaü"ÉCRü."ücompressedüfileüwithüprompts."éCRüCRò."üEnterütheübeginningüscreenünumberü-->ü"ûQUERYüBLüWORDüNUMBERüDROPºCRü."üEnterütheülastüscreenünumberå-->ü"ôQUERYüBLüWORDüNUMBERüDROPâ1+üSWAP¥CRüCRâCOMPRESSESäPADü-äSAVE-PADÖCRüCRü."üFileüsaved.ü"üCRüCRü;(üFILE>SCREENS¿MVP-FORTH)└:üFILE>SCREENS╡CRüCRü."üWillüconvertüaücompressedüfileütoütheünecessary"èCRü."ünumberüofüblocksüwithüprompts."ÿTO-PAD║CRüCRü."üEnterütheübeginningüscreenünumberü-->ü"ÉQUERYüBLüWORDüNUMBERüDROPºCRâCRâEXPANDSéDDROP¿CRüCRü."üScreensüloaded.ü"âCRüCRâ;╫:ü<IBM-PAGE>╖3ü0ü0ü0ü16üINTCALLüDROPü;Σ'ü<IBM-PAGE>üCFAü'PAGEü!¬(üMakeügenericüpageüworküonüIBM.ü)£(╡MVP-FORTH)       ╟        ê