|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7674 (0x1dfa)
Notes: pts_type(SC)
Names: »FMHAND.SC«
└─⟦cd4bbebb4⟧ Bits:30009680 Philips computer tape "600221"
└─⟦this⟧ »ATM/FMHAND.SC«
└─⟦this⟧ »ATM6601/FMHAND.SC«
└─⟦this⟧ »BEBATM/FMHAND.SC«
IDENT FMHAND FM INTERFACE 05-03-82 * ************************************************************************ * * THE FUNCTION OF THESE ROUTINES IS TO PROVIDE AN * INTERFACE BETWEEN A CREDIT APPLICATION AND THE * FILE MANAGEMENT PACKAGE. * ************************************************************************ * * THE CALLS TO THESE ROUTINES HAVE THE FOLLOWING FORMATS :- * * CALL FMOPEN,<FN>,<BLK>,<RC> * CALL FMCLOS,<FN>,<BLK>,<RC> * CALL FMRFPB,<FN>,<BLK>,<RC> * CALL FMCRET,<FN>,<BLK>,<RC> * CALL FMDELT,<FN>,<BLK>,<RC> * CALL FMEXTD,<FN>,<BLK>,<RC> * CALL FMREAD,<FN>,<BUF>,<LTH>,<SEC>,<RC> * CALL FMWRIT,<FN>,<BUF>,<LTH>,<SEC>,<RC> * * * WHERE: * * <FN> IS A BINARY DATA ITEM IN WHICH WILL BE * RETURNED THE FILE NUMBER ALLOCATED BY * FILE MANAGEMENT DURING THE OPEN REQUEST * THIS VALUE MUST NOT BE CHANGED UNTIL AFTER * THE FILE HAS BEEN CLOSED. * * <BLK> IS A STRING DATA ITEM CONTAINING THE * PARAMETER BLOCK FOR THE FILE * * <BUF> IS A STRING DATA ITEM CONTAINING * THE DATA TO BE READ/WRITTEN FROM/TO * THE FILE. * * <SEC> IS A BINARY DATA ITEM CONTAINING * THE FILE SECTOR NUMBER. * * <RC> IS A BINARY DATA ITEM WHICH WILL CONTAIN * THE RETURN CODE AFTER THE REQUEST. * * THE CREDIT CONDITION REGISTER WILL BE SET TO ZERO IF THE * REQUEST WAS SUCCESSFUL AND TWO IF NOT. * ************************************************************************ * EJECT * ENTRY FMOPEN,FMCLOS,FMREAD,FMWRIT,FMRFPB ENTRY FMDELT,FMEXTD,FMCRET * EXTRN I:EVA0,I:RT1 EXTRN T:CSEG * ECBFC EQU 1 ECBBA EQU 2 ECBRL EQU 4 ECBEL EQU 6 ECBRC EQU 8 ECBCW1 EQU 10 ECBCW2 EQU 12 * * FMOPEN EQU * LDK A7,/A1 ORDER CODE /21 OPTION 0 RF FM:001 * FMCLOS EQU * LDK A7,/A2 ORDER CODE /22 OPTION 0 RF FM:001 * FMRFPB EQU * LDK A7,/83 ORDER CODE /03 = RFPB RF FM:001 * FMREAD EQU * LDK A7,/91 ORDER CODE /11 = READ RF FM:001 * FMWRIT EQU * LDK A7,/95 ORDER CODE /15 = WRITE RF FM:001 * FMDELT EQU * LDKL A7,/02A2 ORDER CODE /22 OPTION 2 RF FM:001 * FMEXTD EQU * LDKL A7,/01A1 ORDER CODE /21 OPTION 1 RF FM:001 * FMCRET EQU * LDKL A7,/02A1 ORDER CODE /21 OPTION 2 EJECT * FM:001 EQU * SUKL A14,14 RESERVE ECB AREA IN A14 STACK LDR A8,A14 ADKL A8,2 CALC ECB START ADDRESS LDKL A4,/8000 CF A14,I:EVA0 GET FILE NUMBER ITEM LC A4,1,A9 GET FILE NUMBER STR A4,A8 PUT IN ECB LDR A6,A9 SAVE RETURN ITEM ADDR IN A6 CF A14,I:EVA0 GET PARAMETER BLOCK ADDRESS ST A9,ECBBA,A8 PUT IN ECB LDR A4,A8 SAVE RETURN VALUE ADDRESS LDK A1,/10 BIT 11 TM A1,A7 READ OR WRITE ? RF(Z) FM:003 NO --> CF A14,I:EVA0 GET LENGTH ITEM LDR* A1,A9 GET REQUESTED LENGTH ST A1,ECBRL,A8 PUT IN ECB LDR A6,A9 SAVE RETURN ITEM ADDR IN A6 CF A14,I:EVA0 GET SECTOR NUMBER ITEM LDR* A1,A9 GET SECTOR NUMBER ST A1,ECBCW2,A8 PUT IN ECB CM ECBCW1,A8 LDR A4,A8 CALCULATE AND ADK A4,ECBEL SAVE RETURN VALUE ADDRESS FM:003 EQU * CF A14,I:EVA0 GET RC ITEM SU A12,-12,A13 MAKE PP RELATIVE TO CSB LKM DATA 15 EXECUTE FM REQUEST CF A14,T:CSEG SEGMENT LOAD ERROR ? AD A12,-12,A13 RESET PP LDR* A1,A4 GET RETURN VALUE STR A1,A6 RETURN IT ADKL A14,14 ADJUST A14 STACK POINTER LD A1,ECBRC,A8 GET RC VALUE STR A1,A9 RETURN IT RF(Z) FM:008 LDK A1,2 FM:008 EQU * LC A2,2,A14 ANK A2,/FC ORR A2,A1 SC A2,2,A14 SET CREDIT CR ABL I:RT1 GO BACK TO CREDIT * * END