DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦c95df662a⟧

    Length: 7674 (0x1dfa)
    Notes: pts_type(SC)
    Names: »FMHAND.SC«

Derivation

└─⟦cd4bbebb4⟧ Bits:30009680 Philips computer tape "600221"
    └─⟦this⟧ »ATM/FMHAND.SC« 
    └─⟦this⟧ »ATM6601/FMHAND.SC« 
    └─⟦this⟧ »BEBATM/FMHAND.SC« 

PTS(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

Full view