|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800) Types: TextFile Names: »editp2«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦this⟧ »editp2«
tnpascp2=set 280 disc3 scope day tnpascp2 tnpascp2=edit tpascpass2 l./version/,r/pass2/pass2 hcø/, r/06.17/12.11/, l./defaultcode=1500/,r/15/5/, l./maxnest=20/,r/20/25/, l./last_std/,i/ fs_description, fs_firstaddress,fs_initproc,fs_reserveproc,ps_releaseproc,fs_include, fs_exclude,fs_sendmessage,fs_waitanswer,fs_waitmessage,ps_sendanswer, fs_waitevent,ps_getevent,fs_testevent, fs_wordload,ps_wordstore, fs_createint,fs_startint,fs_stopint,fs_modifyint,fs_removeproc, ps_regret,ps_fpproc,fs_connectcurri,ps_unstackcurri,ps_moncall, ps_monitormode,fs_cpumask,fs_systemaddress,fs_sendfurther, fs_systime, fs_inor,fs_inand,fs_inexor,fs_shift,fs_extract, fs_renameentry, ps_allocate, /, l./stdroutine=(/,l./binaryget/,l-1, r/,0)/, 32768,0,32770,32772,32774,32776, 32778,32780,32782,32784,32786, 32788,32790,32792,0,0, 32794,32796,32798,32800,32802, 32804,32806,32808,32810,32812, 32814,32816,32818,32820,32822, 0,0,0,0,0, 32824, newoffset, 0)/, l./procedureinitialize/, l./ifcompilertest/,r/compilertest/true/, l./procedurestandardproc/, l./filparam:/,r/:/,nextparam,param1,param2,param3,param4:/, l./:integer/,r/:/,storeindex:/, l./procedureread/,i/ /, l./ps_new:/,i/ ps_allocate, /, l./iflength<maxsignedhalfword/, i/ if standardname=ps_allocate then begin param1:=param^.next^.leftoperand; if param^.kind<>reg then load(param1); loadregister(0,param1); returnpseudo(param1); end (* allocate *) else /, l./ps_replace,/,l-1,i/ ps_monitormode, ps_unstackcuri: begin callstandard; makewordcode(routinenumber); end; ps_wordstore: begin nextparam:=param^.next^.leftoperand; param1:=nextparam^.rightoperand; if param^.kind=expression then evaltoresult(param,noskip); if param^.kind<>reg then load(param); if param1^.kind<>expression then evaltoresult(param1,noskip); if param1^.kind<>reg then loadregister(0,param1); loadregister(1,param); makeindexcode(rs,0,1,0); returnpseudo(param1); end; ps_sendanswer, ps_moncall, ps_fpproc: begin if param^.kind=expression then evaltoresult(param,noskip); if param^.kind<>reg then load(param); nextparam:=param^.next^.leftoperand; param1:=nextparam^.rightoperand; if param1^.kind=expression then evaltoresult(param1,noskip); if param1^.kind<>reg then load(param1); param2:=nextparam^.leftoperand; if param2^.kind=expression then evaltoresult(param2,noskip); if param2^.kind<>reg then load(param2); returnpseudo(nextparam); nextparam:=param2^.leftoperand; param3:=param2^.rightoperand; returnpseudo(nextparam); if param3^.kind=expression then evaltoresult(param3,noskip); if param3^.kind<>reg then load(param3); reservecode(50); makewrelcode(rs,param^.regno,0); makewrelcode(rs,param2^.regno,0); if standardname=ps_moncall then begin param4:=param3^.rightoperand; nextparam:=param3^.leftoperand; returnpseudo(nextparam); if param4^.kind=expression then evaltoresult(param4,noskip); if param4^.kind<>reg then load(param4); makewrelcode(rs,param4^.regno,0); returnpseudo(param4); end; storeindex:=lastindex; loadaddress(0,param1); loadaddress(1,param3); callstandard; makewordcode(routinenumber); makewordcode(0); makewordcode(2); if standardname=ps_moncall then makewordcode(4); if lastindex-storeindex>=maxsignedhalfword div oneword then error(319) else code^.cÆstoreindexÅ.displacement:=(lastindex-storeindex)*oneword; returnpseudo(param1); returnpseudo(param2); returnpseudo(param3); end; ps_releaseproc, ps_getevent, ps_regret, /, l./procedurestandardfunction/, l./fs_system/,i/ fs_firstaddress: begin loadaddress(0,param); makeregister(funct,0); end; fs_wordload: begin if param^.kind<>reg then load(param); loadregister(1,param); makeindexcode(rl,1,1,0); makeregister(funct,1); end; fs_inor, fs_inand, fs_inexor, fs_shift, fs_extract: begin if param^.kind<>reg then load(param); nextparam:=funct^.leftoperand^.leftoperand; param1:=nextparam^.rightoperand; if param1^.kind=expression then evaltoresult(param1,noskip); if param1^.kind<>reg then load(param1); loadregister(0,param); loadregister(1,param1); case std_func of fs_inor: makecode(lo,0,2); fs_inand: makecode(la,0,2); fs_inexor: makecode(lx,0,2); fs_shift: makeindexcode(ls,0,1,0); fs_extract: begin makecode(al,3,-1);makeindexcode(ls,3,1,0); makecode(la,0,6); end; end; makeregister(funct,0); returnpseudo(param1); end; fs_renameentry, fs_include, fs_exclude, fs_systemaddress, fs_sendfurther, fs_stopint: begin if param^.kind<>reg then load(param); param^.typ:=integertype; nextparam:=funct^.leftoperand^.leftoperand; param1:=nextparam^.rightoperand; if param1^.kind=expression then evaltoresult(param1,noskip); if param1^.kind<>reg then load(param1); param1^.typ:=integertype; loadaddress(1,param1); loadaddress(0,param); callstandard; makewordcode(stdroutineÆstd_funcÅ); makeregister(funct,0); returnpseudo(param1); returnpseudo(nextparam); end; fs_description, fs_initproc, fs_reserveproc, fs_waitevent, fs_cpumask, fs_connectcuri, fs_removeproc, fs_startint: begin if param^.kind<>reg then load(param); param^.typ:=integertype; loadaddress(0,param); callstandard; makewordcode(stdroutineÆstd_funcÅ); makeregister(funct,0); end; fs_createint, fs_modifyint, fs_waitanswer, fs_testevent: begin if param^.kind<>reg then load(param); param^.typ:=integertype; nextparam:=funct^.leftoperand^.leftoperand; param1:=nextparam^.rightoperand; loadaddress(1,param1); loadaddress(0,param); callstandard; makewordcode(stdroutineÆstd_funcÅ); makeregister(funct,0); returnpseudo(param1); returnpseudo(nextparam); end; fs_systime, fs_sendmessage, /, l./fs_monitor:/, l./callstandard/, l./makeregister/,i/ if std_func=fs_systime then begin makeregister(funct,0); registerÆ1Å:=registerÆ0Å; end else /,f cpass2=edit compass2 i/ o u80 /, l./tpascpass2/,r/tp/tnp/, r/pass2 /p2 /, l b.i/ o c /,f scope day cpass2 tnpascp2 mode list.no finisb ▶EOF◀