hưs8p,LAMBDAF2Dp,lFASD-DATADjimLoveҼF~F9Dp,COMPILER,NEW-DESTINATIONSpGLOBALlTpB SITElGigamos CambridgepB ,PACKAGETRAPpB lREADTABLEstandard Common-Lisp1DCIN-PACKAGEDÀQUOTEB51DÀEXPORTDB;D*MAGIC-GARBAGE-LOCATION*TRAP-ONÁWITHOUT-TRAPSCWITHOUT-INTERRUPTS1DDEFMACROpLISP-INTERNALSlTAIL-ERRORDCA0À&RESTpBIARESTWhen a call is made to error in a tail position use this macro instead to save information.DWHENDC>DpARRAYLENGTHBOFDpB+WARNlLI:TAIL-ERROR macro with more than 15 args -- might fail!DplSIXR-BQ-LIST*DB;ÀPROGNDBaDB;pBIERRORBLBODB;DNIL1DBHÀILLOPDILLOP-STRINGDLETDDCODEDpUSERALLOCATE-ILLOP-CODEBoDpB_lXR-BQ-LISTDB;ÁILLOP-FUNCTIONBr1DDEFCONSTANTB@F)1DBHÂSAVING-RETURN-REGISTERDÀTHUNKDBaDB;BqDBzDBzDB;BBDB;DJDp,HARDWARECH-OPEN-CALLp,GLOBAL-REGISTERS*TRAP-TEMP1*DpBCH-TOPEN-CALLDpBlOPEN-FRAMEDSETFDpBlO0pB*RETURN-16*DBDpBlO1pB*RETURN-17*DBDpBlO2pB*RETURN-18*DBDpBlO3pB*RETURN-19*DBDpBlO4pB*RETURN-20*DBDpBlO5pB*RETURN-21*DBDpBlO6pB*RETURN-22*DBDpBlO7pB*RETURN-23*DBDpBlO8pB*RETURN-24*DBDpBlO9pB*RETURN-25*DBDpBO10pB*RETURN-26*DBDpBO11pB*RETURN-27*DBDpBO12pB*RETURN-28*DBDpBO13pB*RETURN-29*DBDpBO14DpBLDBDpBREAD-PROCESSOR-STATUSpB%%PROCESSOR-STATUS-RETURN-CODEDBDpBO15pBl*NUMBER-OF-RETURN-VALUES*DBDBDBpBl*RETURN-0*DBDBpBl*RETURN-1*DBDBpBl*RETURN-2*DBDBpBl*RETURN-3*DBDBpBl*RETURN-4*DBDBpBl*RETURN-5*DBDBpBl*RETURN-6*DBDBpBl*RETURN-7*DBDBpBl*RETURN-8*DBDBpBl*RETURN-9*DBDBpB*RETURN-10*DBDBpB*RETURN-11*DBDBpB*RETURN-12*DBDBpB*RETURN-13*DBDBpB*RETURN-14*DBDBpB*RETURN-15*DFUNCALLBDSETQBDBDBDBDBDBDB DBDBDBDBDBDBDBDBDBDBDBDBDBDBDB DBDBDB$DBDBDB(DBDBDB,DBDBDB0DBDBDB4DBDBDB8DBDBDB<DBDBDB@DBDBDBDpBCALLDB;FLUSH-OPEN-FRAMEDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDpB*TRAP-TEMP2*DBfDB;BgDCIFDÀZEROPBDpBCH-RETURN-ONE-VALUEDpBlCH-RETURN-MULTIPLE-VALUESDpBNOPBh1DBHSAVING-TRAP-FRAME-FOR-NONMODIFYING-EXITDBDBaDB;BqDBaDBzDB;BBDB;DDCSAVED-OREGpB*SAVE-OREG*DSAVED-PCpB*SAVE-TRAP-PC*DCSAVED-PC+pB,*SAVE-TRAP-PC+*DSAVED-STATUSpB*SAVE-STATUS*DSAVED-JCONDpB*SAVE-JCOND*DSAVED-QDpB,READ-Q-REGISTERDSAVED-SSTEPDDISABLE-SINGLE-STEP-TRAPDB;DDBBBDRESTORE-SINGLE-STEP-TRAPBDpB,LOAD-Q-REGISTERBDBDBBDBDBBDBDBBDBDBBDBDBB1DBHÄSAVING-TRAP-FRAME-FOR-RECURSIVE-TRAPSDBDBaDB;LET*DBaDBzDB;BBDB;D DBBDBBDBBDBBDBBDBDBDBDBDMEMSTATDpBlREAD-MEMORY-STATUSDVMADpB,READ-VMADCMDDBbDBRDC=pB$$WMD-VALIDDBBpBl%%MEMORY-STATUS-MD-WRITTEN-LATELYDpBlVMA-START-WRITE-NO-GC-TRAP-UNBOXEDB@DpBMEMORY-WAITDpBlMD-START-WRITE-NO-GC-TRAP-UNBOXEDDpB,READ-MDDBADBDB;DDBBBBBDBDBDpB,TRAP-OFFDBBDBDBBDBDBBDBDBBDBDBBDBDBBDBBDpB,WRITE-MD-UNBOXEDBDBB@DpVIRTUAL-MEMORY,WRITE-MD-GENERICBDpB,LDB-NOTBpB,%%MEMORY-STATUS-MD-NOT-BOXED-BITDpB lWRITE-VMA-GENERICBDB$BpBl%%MEMORY-STATUS-VMA-NOT-BOXED-BIT1DBHCFLUSH-READ-ERRORSDBDBaDB;BDBaDBzDB;BBDB;DDTRANSP-TYPEDB$DBpB%%MEMORY-STATUS-TRANSPORT-TYPEDMAP-BITSDpB,READ-MAPDBDBDCVMA-BOXEDDB$DBB-DBDBDMD-BOXEDDB$DBB&DB;DDpBlVMA-START-READ-NO-TRANSPORT-VMA-UNBOXED-MD-UNBOXEDB@DBDBDBBBBBIBBPBBB;1DBHCFLUSH-WRITE-ERRORSDBDBaDB;BDBaDBzDB;BBDB;DDGC-TRAPDB$DBpB%%MEMORY-STATUS-GC-TRAP-ENABLEDBBDBDDBDBDBIDB$DBB-DBDBDBPDB$DBB&DB;DDpB,WRITE-MDDpB,UNBOXED-CONSTANTpB ,UNBOXEDDBB@DBDBDBBBBBIBBPBBBh1DBHÁFLUSH-GC-TRAPDBDBaDB;BbDBzDB;BBBDB;DDBDBDB$DBB-pB,$$BOXEDDpBVMA-START-WRITE-BOXEDDBDpB,VMA-START-WRITE-UNBOXEDDB1DBHÁDISABLE-TRAPSDBDBaDB;BqDBzDB;DÁOLD-TRAP-STATEDBDBzDB;BBDB;DDFLETDDÁRESTORE-TRAPSBhDpBWRITE-MEMORY-CONTROLDpBDPBBpB%%MEMORY-CONTROL-MASTER-TRAP-ENABLEDpBREAD-MEMORY-CONTROLDBDBBhDBBBDFUNCTIONB1DBHBBDBDBaDB;BqDBzDBzDB;BBDB;DDBDBDÀLAMBDADRE-ENABLE-TRAPSDÀPROG1DBBBDBBB1DBHBCDBMBODYDBqDDOLD-SEQUENCEDpB+GENSYMDBzDB;BqDBzDBaBDB;DpB*ALLOW-SEQUENCE-BREAK*DBzDB;pBIUNWIND-PROTECTDBaDB;BbDBzDB;BDDB;BDBzDB;C1+BBDBzDB;BDDB;BB1DBHÁ%TRAP-RESTOREDBWARNING: You are responsible for making sure Multi-Function I/O clears outand no traps happen (including unlinked functions)!!! (4 cycles)DBzDB;BDBaDB;pBDPB-UNBOXEDBDB;DBDB