-- TSJaM.mesa; Typescript for JaM -- Written by Werner Winiger, August, 1981. -- last edited by Paxton, 15-Sep-81 11:40:13 DIRECTORY JaMIODefs USING [DirectUserOutput, AppendUserLine], JaMControlDefs USING [RunJaM], ViewerMenus USING [Destroy, Grow, Close], Menus USING [Menu, CreateMenu, InsertMenuEntry, MenuProc], Process USING [Detach], Rope USING [Ref], TypeScript USING [Typescript, TSLineProc, CreateTypescript, ClientPutChar]; TSJaM: PROGRAM IMPORTS JaMIODefs, JaMControlDefs, ViewerMenus, Menus, Process, TypeScript = { JaMtypescript: TypeScript.Typescript; -- the output procedure to be called from JaM: PutChar: PROC[ch: CHARACTER] = {IF ~TSdestroyed THEN TypeScript.ClientPutChar[JaMtypescript, ch]}; -- the input procedure to be called from the typescript: TakeLine: PROC [ts: TypeScript.Typescript, line: Rope.Ref] = { JaMIODefs.AppendUserLine[line] }; TSdestroyed: BOOLEAN ← FALSE; WatchedDestroy: Menus.MenuProc = { TSdestroyed ← TRUE; ViewerMenus.Destroy[info]; }; JaMmenu: Menus.Menu ← Menus.CreateMenu[]; -- main code -- Start: PROC = { JaMIODefs.DirectUserOutput[PutChar]; JaMtypescript ← TypeScript.CreateTypescript[ line: TakeLine, name: "*JaM*", iconic: TRUE, fork: FALSE]; Menus.InsertMenuEntry[JaMmenu, "Destroy", WatchedDestroy, TRUE]; Menus.InsertMenuEntry[JaMmenu, "Grow", ViewerMenus.Grow]; Menus.InsertMenuEntry[JaMmenu, "Close", ViewerMenus.Close]; JaMtypescript.menu ← JaMmenu; Process.Detach[FORK JaMControlDefs.RunJaM[]] }; Start; }. Paxton 15-Sep-81 11:13:14 changed to fork RunJaM and pass lines directly to jam io