/**********************************************************************/ /* */ /* Interface program between Macro68 and CygnusEd */ /* */ /**********************************************************************/ ADDRESS 'rexx_ced' /* CygnusEd -- AREXX port */ OPTIONS RESULTS status 21 /* ask CygnusEd for the name of the file */ srcfile = result /* sets assembler flags into environmental Variable M68FLAGS */ /* IF the environmental variable was non-existant */ if (exists('env:M68FLAGS')=0) then do GetString '-c t' if (result ~= 'RESULT') then m68flags = result else m68flags = '-c t' CALL Open 'm68env','ENV:M68FLAGS','W' CALL WriteLn 'm68env',m68flags CALL Close 'm68env' end else do CALL Open 'm68env','env:M68FLAGS','R' m68flags = ReadLn('m68env') CALL Close 'm68env' end /* Get suffix of source file */ sfx = upper(right(srcfile,length(srcfile)-lastpos('.',srcfile))) /* This program only handles Assembler source files */ if (sfx ~= 'ASM') then do /* Tell user */ okay1 'Suffix' sfx 'not handled by macro68.ced' '0A'X /* open CygnusEd requester to display message */ exit end STATUS 19 /* ask CygnusEd for the path/filename of the source file */ complete = result sfileinfo = STATEF(complete) if (GetClip('LastAsm') = '') then CALL SetClip 'LastAsm',sfileinfo else do if (GetClip('LastAsm') = sfileinfo) then do OKAY1 srcfile ' Has NOT CHANGED since LAST assembly ' '0A'X /* open CygnusEd requester to display message */ OKAY2 'Save '||complete||'0A'X||' .....BEFORE ASSEMBLY ?' /* open CygnusEd requester to display message */ if (result = 0) then exit(0) 'Jump To File' srcfile Save /* MENU 0 8 0 */ ADDRESS COMMAND 'c:rx rexx:RunMacro68.ced' /* go recursive */ exit(0) end end ADDRESS 'rexx_ced' /* CygnusEd -- AREXX port */ 'Jump To File' srcfile /* have CygnusEd activate the window with the source file */ STATUS 18 /* ask CygnusEd if file has been altered since last saved */ changes = result if (changes ~= 0) then do OKAY1 srcfile ' Has '||changes||' CHANGES NOT SAVED'||'0A'X ||' since LAST assembly ' /* open CygnusEd requester to display message */ OKAY2 'Save '||complete||'0A'X||' .....BEFORE ASSEMBLY ?' /* open CygnusEd requester to display message */ if (result = 1) then do Save /* have CygnusEd save the file */ sfileinfo = STATEF(complete) end else do Okay2 ' Should I Re-Assemble OLD '||'0A'X||complete /* open CygnusEd requester to display message */ if (result = 0) then exit(0) end end CALL SetClip 'LastAsm',sfileinfo ADDRESS COMMAND 'c:macro68 ' complete ' ' m68flags if (RC = 0) then do ADDRESS 'rexx_ced' /* CygnusEd -- AREXX port */ OKAY1 srcfile ' ALL OKAY' '0A'X /* open CygnusEd requester to display message */ exit(0) end if (RC ~= 0) then do ADDRESS 'rexx_ced' /* CygnusEd -- AREXX port */ OKAY1 srcfile ' FAILED ASSEMBLY' '0A'X /* open CygnusEd requester to display message */ end exit(0)