home *** CD-ROM | disk | FTP | other *** search
- /*
- cOMMODORE 64 eMULATOR V0.4 eARLE f. pHILHOWER iii
- cOPYRIGHT (c) 1993-4 (ST916W9R@DUNX1.OCS.DREXEL.EDU)
-
- tHIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
- IT UNDER THE TERMS OF THE gnu gENERAL pUBLIC lICENSE AS PUBLISHED BY
- THE fREE sOFTWARE fOUNDATION; EITHER VERSION 2 OF THE lICENSE, OR
- (AT YOUR OPTION) ANY LATER VERSION.
-
- tHIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
- BUT without any warranty; WITHOUT EVEN THE IMPLIED WARRANTY OF
- merchantability OR fitness for a particular purpose. sEE THE
- gnu gENERAL pUBLIC lICENSE FOR MORE DETAILS.
-
- yOU SHOULD HAVE RECEIVED A COPY OF THE gnu gENERAL pUBLIC lICENSE
- ALONG WITH THIS PROGRAM; IF NOT, WRITE TO THE fREE sOFTWARE
- fOUNDATION, iNC., 675 mASS aVE, cAMBRIDGE, ma 02139, usa.
- */
-
- #INCLUDE <aPPLEeVENTS.H>
- #INCLUDE "pROCESSOR.H"
- #INCLUDE "eRROR.H"
- #INCLUDE "fILEtYPES.H"
-
-
- INT aPPLEeVENTiNITIALIZE(VOID);
-
- oseRR dOquit(VOID), dOoapp(VOID);
- oseRR dOodoc(CONST aPPLEeVENT *THEae,CONST aPPLEeVENT *THErP);
- oseRR dOpdoc(CONST aPPLEeVENT *THEae,CONST aPPLEeVENT *THErP);
-
- EXTERN VOID cLEANuPcOMMODORE(VOID);
-
- VOID oPENfssPEC(fssPEC *SPEC);
- VOID pRINTfssPEC(fssPEC *SPEC);
- VOID aTTACHfLOPPYiMAGE(fssPEC *SPEC);
- VOID lOADramfs(fssPEC *SPEC);
- VOID lOADtAPEfs(fssPEC *SPEC);
-
- #IFNDEF __mwerks__
- PASCAL oseRR aehANDLEquit(CONST aPPLEeVENT *THEae,CONST aPPLEeVENT *THErP, LONG rc);
- PASCAL oseRR aehANDLEoapp(CONST aPPLEeVENT *THEae,CONST aPPLEeVENT *THErP, LONG rc);
- PASCAL oseRR aehANDLEodoc(CONST aPPLEeVENT *THEae,CONST aPPLEeVENT *THErP, LONG rc);
- PASCAL oseRR aehANDLEpdoc(CONST aPPLEeVENT *THEae,CONST aPPLEeVENT *THErP, LONG rc);
- #ELSE
- STATIC aeeVENThANDLERupp MYquitaehANDLER = null;
- STATIC aeeVENThANDLERupp MYoappaehANDLER = null;
- STATIC aeeVENThANDLERupp MYodocaehANDLER = null;
- STATIC aeeVENThANDLERupp MYpdocaehANDLER = null;
-
- PASCAL oseRR aehANDLEquit(CONST aPPLEeVENT *THEae,CONST aeeVENThANDLERupp *THErP, LONG rc);
- PASCAL oseRR aehANDLEoapp(CONST aPPLEeVENT *THEae,CONST aeeVENThANDLERupp *THErP, LONG rc);
- PASCAL oseRR aehANDLEodoc(CONST aPPLEeVENT *THEae,CONST aeeVENThANDLERupp *THErP, LONG rc);
- PASCAL oseRR aehANDLEpdoc(CONST aPPLEeVENT *THEae,CONST aeeVENThANDLERupp *THErP, LONG rc);
- #ENDIF
-
-
-
- STATIC dESCtYPE MISSEDtYPEcODE;
- STATIC LONG MISSEDaCTUALsIZE;
- #DEFINE iNSTALLfINDER(Z,Y) aeiNSTALLeVENThANDLER(KcOREeVENTcLASS, Z, Y, 0, FALSE)
- #DEFINE mISSEDpARAMS(Z) \
- (aesIZEoFaTTRIBUTE(Z, KEYmISSEDkEYWORDaTTR, \
- &MISSEDtYPEcODE, &MISSEDaCTUALsIZE) != ERRaedESCnOTfOUND)
-
-
- oseRR dOquit(VOID)
- {$7b}
- cLEANuPcOMMODORE();
- eXITtOsHELL();
- {$7d}
-
- PASCAL oseRR aehANDLEquit(THEaPPLEeVENT, THErEPLY, THErEFcON)
- CONST aPPLEeVENT *THEaPPLEeVENT, *THErEPLY;
- LONG THErEFcON;
- {$7b}
- oseRR ERR=NOeRR;
-
- ERR = dOquit();
- IF (mISSEDpARAMS(THEaPPLEeVENT) && ERR==NOeRR) ERR = ERRaepARAMmISSED;
- /* tHERE SHOULD BE no PARAMETERS SENT TO US..IF THERE ARE, SOMEONE'S
- GOT A real PROBLEM! (NOT US, THOUGH!) */
-
- RETURN(ERR);
- {$7d}
-
- oseRR dOoapp()
- {$7b}
- RETURN NOeRR;
- {$7d}
-
- PASCAL oseRR aehANDLEoapp(THEaPPLEeVENT, THErEPLY, THErEFcON)
- CONST aPPLEeVENT *THEaPPLEeVENT, *THErEPLY;
- LONG THErEFcON;
- {$7b}
- oseRR ERR=NOeRR;
-
- ERR = dOoapp();
- IF (mISSEDpARAMS(THEaPPLEeVENT) && ERR==NOeRR) ERR = ERRaepARAMmISSED;
-
- RETURN(ERR);
- {$7d}
-
- VOID oPENfssPEC(fssPEC *SPEC)
- {$7b}
- fiNFO FiNFO;
-
- fsPgETfiNFO(SPEC, &FiNFO);
- SWITCH(FiNFO.FDtYPE)
- {$7b}
- CASE diskftype:
- aTTACHfLOPPYiMAGE(SPEC);
- BREAK;
- CASE ramftype:
- lOADramfs(SPEC);
- BREAK;
- CASE printerftype:
- BREAK;
- CASE tapeftype:
- lOADtAPEfs(SPEC);
- BREAK;
- {$7d}
- {$7d}
-
-
- VOID pRINTfssPEC(fssPEC *SPEC)
- {$7b}
- fiNFO FiNFO;
-
- fsPgETfiNFO(SPEC, &FiNFO);
- SWITCH(FiNFO.FDtYPE)
- {$7b}
- CASE diskftype:
- BREAK;
- CASE ramftype:
- BREAK;
- CASE printerftype:
- BREAK;
- CASE tapeftype:
- BREAK;
- {$7d}
- {$7d}
-
- oseRR dOodoc(THEaPPLEeVENT, THErEPLY)
- CONST aPPLEeVENT *THEaPPLEeVENT, *THErEPLY;
- {$7b}
- oseRR ERR;
- fssPEC MYfss;
- aedESClIST *DOClIST;
- LONG ITEMS;
- LONG INDEX;
- aekEYWORD KEYWD;
- dESCtYPE TYPEcODE;
- sIZE ACTUALsIZE;
-
- ERR = aegETpARAMdESC(THEaPPLEeVENT, KEYdIRECToBJECT, TYPEaelIST, DOClIST);
- IF (ERR!=NOeRR) RETURN (ERR);
-
- ERR = aecOUNTiTEMS(DOClIST, &ITEMS);
- IF (ERR!=NOeRR) RETURN (ERR);
-
- FOR (INDEX=1; INDEX<=ITEMS; INDEX++)
- {$7b}
- ERR = aegETnTHpTR(DOClIST, INDEX, TYPEfss, &KEYWD, &TYPEcODE,(pTR)&MYfss,
- SIZEOF(MYfss), &ACTUALsIZE );
- IF (ERR!=NOeRR)
- {$7b}
- aedISPOSEdESC(DOClIST);
- RETURN (ERR);
- {$7d}
- oPENfssPEC(&MYfss);
- {$7d}
-
- ERR = aedISPOSEdESC(DOClIST);
- RETURN(ERR);
- {$7d}
-
-
-
- PASCAL oseRR aehANDLEodoc(THEaPPLEeVENT, THErEPLY, THErEFcON)
- CONST aPPLEeVENT *THEaPPLEeVENT, *THErEPLY;
- LONG THErEFcON;
- {$7b}
- oseRR ERR=NOeRR;
-
- ERR = dOodoc(THEaPPLEeVENT, THErEPLY);
- IF (mISSEDpARAMS(THEaPPLEeVENT) && ERR==NOeRR) ERR = ERRaepARAMmISSED;
-
- RETURN(ERR);
- {$7d}
-
-
- oseRR dOpdoc(THEaPPLEeVENT, THErEPLY)
- CONST aPPLEeVENT *THEaPPLEeVENT, *THErEPLY;
- {$7b}
- oseRR ERR;
- fssPEC MYfss;
- aedESClIST *DOClIST;
- LONG ITEMS;
- LONG INDEX;
- aekEYWORD KEYWD;
- dESCtYPE TYPEcODE;
- sIZE ACTUALsIZE;
-
- ERR = aegETpARAMdESC(THEaPPLEeVENT, KEYdIRECToBJECT, TYPEaelIST, DOClIST);
- IF (ERR!=NOeRR) RETURN (ERR);
-
- ERR = aecOUNTiTEMS(DOClIST, &ITEMS);
- IF (ERR!=NOeRR) RETURN (ERR);
-
- FOR (INDEX=1; INDEX<=ITEMS; INDEX++)
- {$7b}
- ERR = aegETnTHpTR(DOClIST, INDEX, TYPEfss, &KEYWD, &TYPEcODE, (pTR)&MYfss,
- SIZEOF(MYfss), &ACTUALsIZE );
- IF (ERR!=NOeRR)
- {$7b}
- aedISPOSEdESC(DOClIST);
- RETURN (ERR);
- {$7d}
- pRINTfssPEC(&MYfss);
- {$7d}
-
- ERR = aedISPOSEdESC(DOClIST);
- RETURN(ERR);
- {$7d}
-
-
-
- PASCAL oseRR aehANDLEpdoc(THEaPPLEeVENT, THErEPLY, THErEFcON)
- CONST aPPLEeVENT *THEaPPLEeVENT, *THErEPLY;
- LONG THErEFcON;
- {$7b}
- oseRR ERR=NOeRR;
-
- ERR = dOpdoc(THEaPPLEeVENT, THErEPLY);
- IF (mISSEDpARAMS(THEaPPLEeVENT) && ERR==NOeRR) ERR = ERRaepARAMmISSED;
-
- RETURN(ERR);
- {$7d}
-
-
-
- INT aPPLEeVENTiNITIALIZE(VOID)
- {$7b}
- #IFNDEF __mwerks__
- IF (iNSTALLfINDER(KaeqUITaPPLICATION, aehANDLEquit)) RETURN KaPPLEeVENTeRROR;
- IF (iNSTALLfINDER(KaeoPENaPPLICATION, aehANDLEoapp)) RETURN KaPPLEeVENTeRROR;
- IF (iNSTALLfINDER(KaeoPENdOCUMENTS, aehANDLEodoc)) RETURN KaPPLEeVENTeRROR;
- IF (iNSTALLfINDER(KaepRINTdOCUMENTS, aehANDLEpdoc)) RETURN KaPPLEeVENTeRROR;
- #ELSE
- MYquitaehANDLER = nEWaeeVENThANDLERpROC(aehANDLEquit);
- MYoappaehANDLER = nEWaeeVENThANDLERpROC(aehANDLEoapp);
- MYodocaehANDLER = nEWaeeVENThANDLERpROC(aehANDLEodoc);
- MYpdocaehANDLER = nEWaeeVENThANDLERpROC(aehANDLEpdoc);
-
- IF (iNSTALLfINDER(KaeqUITaPPLICATION, MYquitaehANDLER)) RETURN KaPPLEeVENTeRROR;
- IF (iNSTALLfINDER(KaeoPENaPPLICATION, MYoappaehANDLER)) RETURN KaPPLEeVENTeRROR;
- IF (iNSTALLfINDER(KaeoPENdOCUMENTS, MYodocaehANDLER)) RETURN KaPPLEeVENTeRROR;
- IF (iNSTALLfINDER(KaepRINTdOCUMENTS, MYpdocaehANDLER)) RETURN KaPPLEeVENTeRROR;
- #ENDIF
-
- RETURN KnOeRROR;
- {$7d}
-
-