|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 72832 (0x11c80) Types: TextFile Names: »D93«
└─⟦5dbd6b396⟧ Bits:30005867/disk12.imd Dokumenter (RCSL m.m.) └─⟦this⟧ »D93«
i T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 1. INTRODUCTION ........................................... 1 2. BLOCK DIAGRAM .......................................... 3 3. TIMING DIAGRAMS ........................................ 4 4. LOGIC DIAGRAMS and SIGNAL DISCRIPTION .................. 6 5. PLUG LISTS ............................................. 18 6. COMPONENT LIST ......................................... 20 7. ASSEMBLY DRAWING ....................................... 21 \f ii \f 1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1. The MBA 602, Multibus adapter, is the Multibus part of two con- trollers connecting the RC8000 computer system and the Multibus. Connection to the RC8000 system bus is provided by the IFP 801, interface processor. The MBA 602 and the IFP 801 are intercon- nected by a flat cable with a maximum length of 12 meters. See figure 1. The IFP 801 is an iAPX86 microprocessor based controller provided with a multi-port RAM with one port reserved for Multibus access through the MBA 602. The multi-port RAM is used for communication between RC8000 and Multibus units. The MBA 602 may only act as a slave on the Multibus. A strap field on the MBA 602 allows the multi-port RAM to be divided into a local part and a shared part in 16 K-byte increments. Only the shared part is accessible from the Multibus. The shared part of the multi-port RAM may be located starting at any 16 K-byte boundary within the 1 M-byte address range of the Multibus. Multibus write access to any of the first eight locations of the shared RAM interrupts the iAPX86 processor on the IFP 801. Under control of the IFP 801 the MBA 602 may generate a non-bus vectored interrupt on any of the eight Multibus interrupt lines. The interrupt is cleared by an I/O write command. \f F_ Figure 1: RC8000 System Bus Interface to Multibus. \f F_ Figure 2: MBA 602 Multibus Adapter Block Diagram. \f F_ Figure 3: MULTIBUS READ ACCESS TO IFP MULTIPORT MEMORY. \f F_ Figure 4: MULTIBUS WRITE ACCESS TO IFP MULTIPORT MEMORY. \f F_ S_i_g_n_a_l_ _ _ _ _ _ _ _ _ _D_e_s_t_i_n_a_t_i_o_n_ _ _D_e_s_c_r_i_p_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -,ADR(0-B) 5 Address signals from Multibus. ADDA(0-B) 2 Bidirectional, Multiplexed ADDA(C-F) 3 address/data tri-state bus, connecting Multibus drivers/ receivers and IFP interface bus drivers/receivers. \f F_ \f F_ S_i_g_n_a_l_ _ _ _ _ _ _ _ _ _D_e_s_t_i_n_a_t_i_o_n_ _ _D_e_s_c_r_i_p_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ IFBUS (0-B) Bidirectional, multiplexed address/ -,IFBUS(0-B) data tri-state bus, which connects the MBA 602 and the IFP 801. Differ- ential mode signals. ADDA(0-B) 1 Bidirectional, multiplexed address/ data tri-state bus, connecting Multi- bus drivers/receivers and IFP inter- face drivers/receivers. \f F_ \f F_ S_i_g_n_a_l_ _ _ _ _ _ _ _ _ _D_e_s_t_i_n_a_t_i_o_n_ _ _D_e_s_c_r_i_p_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ IFBUS(C-F) Bidirectional, multiplexed address/ -,IFBUS(C-F) data tri-state bus, which connects the MBA 602 and the IFP 801. Differ- ential mode signals. ADDA(C-F) 1 Bidirectional, multiplexed address/ data tri-state bus, connecting Multibus drivers/receivers and IFP interface drivers/receivers. IFADR0 Least significant address bit to IFP -,IFADR0 801. IFBHEN IFBHEN and IFADR0 control byte/word -,IFBHEN accesses to/from IFP memory. -,IFREAD Memory read command to IFP. IFREAD -,IFWRITE Memory write command to IFP. IFWRITE IFADRLD Control signal to IFP indicating -,IFADRLD that an address is available on the IFBUS. -,MEMACK 3,6 Response from IFP indicating that MEMACK 4 a read or write operation is com- plete. CPINTR 5 Sets the Multibus interrupt flip- flop. IFINIT 4 Reset signal from IFP controlling the -,INIT signal on the Multibus. \f F_ \f F_ S_i_g_n_a_l_ _ _ _ _ _ _ _ _ _D_e_s_t_i_n_a_t_i_o_n_ _ _D_e_s_c_r_i_p_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -,MADR(E-10) 1 Three most significant bits of the memory address. Generated by the address transformation logic. BLKSEL 4 Indicates that one of the visible 16 kbyte memory blocks is addressed. ONEA 4,5 Logic one for unused inputs. SEGSEL 4 Indicates that the address is within the selected 128 K byte segment. MEMREAD 1,4,6 A memory read command is received and the address is within the decoded range. MEMCMD 6 MEMCMD = MEMREAD or MEMWRT. -,MEMWRT 2,3,4 A memory write command is received MEMWRT 6 and the address is within the decoded range. ENIFDRV 2,3 Enable signal for the IFBUS line drivers. -,ADREN 1,4,6 Enable signal for Multibus address line receivers. -,ENIFREC 2,3 Enable signal for the IFBUS line receivers. -,WORDEN 1 Enable signal for Multibus data tranceiver. -,SWAPEN 1 Enable signal for the Multibus swap byte data tranceiver. ONEB 4,5 Logic one for unused inputs. -,XACK Control signal to Multibus indicating that a read or write operation is complete. -,INIT 5 Reset signal to/from Multibus. \f F_ \f F_ S_i_g_n_a_l_ _ _ _ _ _ _ _ _ _D_e_s_t_i_n_a_t_i_o_n_ _ _D_e_s_c_r_i_p_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ -,IOSEL 5 Output from I/O address decoder. -,INT(0-7) Interrupt request signals to Multibus. -,INTRESET 4,5 Reset signal for interrupt request flip-flop. IOCMD 4,5 An I/O write command is received and the unit is addressed. ADR0 3,4 Least significant address signal received from Multibus. ADR(1-8) 5 Address signals received from Multibus. BHEN 3,5 Byte control signal from Multibus. MRDC 4 Memory read command from Multibus. MWTC 4 Memory write command from Multibus. INIT 3,5 Reset signal from Multibus. -,HIGHBYTE 4 Byte control signal from Multibus. \f F_ \f F_ S_i_g_n_a_l_ _ _ _ _ _ _ _ _ _D_e_s_t_i_n_a_t_i_o_n_ _ _D_e_s_c_r_i_p_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ LDADR 3,6 Control signal indicating that an address is available on the IFBUS. ADREN 4 Controls multiplexing of address and data. -,IFRD 3 Memory read command to IFP. Indicates also that the IFBUS is available for transfer of data from the IFP to the MBA. -,IFWRT 3 Memory write command to IFP. Indicates also that data is available on the IFBUS: CLOCK 6 22.1184 MHz clock for logic controlling transfer of address and data between IFP and MBA. \f F_ \f F_ P_1_:_ _M_U_L_T_I_B_U_S_ _C_O_N_N_E_C_T_O_R_ _ _ _ _ _ _ _C_O_M_P_O_N_E_N_T_ _S_I_D_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _C_I_R_C_U_I_T_ _S_I_D_E_ _ _ _ _ _ _ _ P_I_N_ S_O_U_R_C_E_ _ _ _ _ _ _ _ M_N_E_M_O_N_I_C_ P_I_N_ S_O_U_R_C_E_ _ _ _ _ _ _ M_N_E_M_O_N_I_C_ 1 0V 2 0V 3 +5V 4 +5V 5 +5V 6 +5V 7 1) +12V 8 1) +12V 9 1) -5V 10 1) -5V 11 0V 12 0V 13 1) -,BCLK 14 3-6 -,INIT 15 -,BPRN 16 P1-15 -,BPRO 17 1) -,BUSY 18 1) -,BREQ 19 -,MRDC 20 -,MWTC 21 1) -,IORC 22 -,IOWC 23 32-11 -,XACK 24 -,INH1 25 1) Reserved 26 1) -,INH2 27 -,BHEN 28 -,AD10 29 1) -,CBRQ 30 -,AD11 31 1) -,CCLK 32 -,AD12 33 1) -,INTA 34 -,AD13 35 21-10 -,INT6 36 21-9 -,INT7 37 21-12 -,INT4 38 21-11 -,INT5 39 21-14 -,INT2 40 21-13 -,INT3 41 21-16 -,INT0 42 21-15 -,INT1 43 -,ADRE 44 -,ADRF 45 -,ADRC 46 -,ADRD 47 -,ADRA 48 -,ADRB 49 -,ADR8 50 -,ADR9 51 -,ADR6 52 -,ADR7 53 -,ADR4 54 -,ADR5 55 -,ADR2 56 -,ADR3 57 -,ADR0 58 -,ADR1 59 61-13 -,DATE 60 61-12 -,DATF 61 61-15 -,DATC 62 61-14 -,DATD 63 61-17 -,DATA 64 61-16 -,DATB 65 61-19 -,DAT8 66 61-18 -,DAT9 67 41-13, 51-13 -,DAT6 68 41-12, 51-12 -,DAT7 69 41-15, 51-15 -,DAT4 70 41-14, 51-14 -,DAT5 71 41-17, 51-17 -,DAT2 72 41-16, 51-16 -,DAT3 73 41-19, 51-19 -,DAT0 74 41-18, 51-18 -,DAT1 75 0V 76 0V 77 1) Reserved 78 1) Reserved 79 1) -12V 80 1) -12V 81 +5V 82 +5V 83 +5V 84 +5V 85 0V 86 0V 1: The signal is not used on this board. \f F_ P_1_:_ _I_F_P_ _I_N_T_E_R_F_A_C_E_ _C_O_N_N_E_C_T_O_R_ P_I_N_ S_O_U_R_C_E_ _ _ _ _ _ _ M_N_E_M_O_N_I_C_ P_I_N_ S_O_U_R_C_E_ _ _ _ _ _ _ M_N_E_M_O_N_I_C_ 1 123-2 IFBUS0 2 123-3 -,IFBUS0 3 123-6 IFBUS1 4 123-5 -,IFBUS1 5 123-10 IFBUS2 6 123-11 -,IFBUS2 7 123-14 IFBUS3 8 123-13 -,IFBUS3 9 102-2 IFBUS4 10 102-3 -,IFBUS4 11 102-6 IFBUS5 12 102-5 -,IFBUS5 13 102-10 IFBUS6 14 102-11 -,IFBUS6 15 102-14 IFBUS7 16 102-13 -,IFBUS7 17 93-2 IFBUS8 18 93-3 -,IFBUS8 19 93-6 IFBUS9 20 93-5 -,IFBUS9 21 93-10 IFBUSA 22 93-11 -,IFBUSA 23 93-14 IFBUSB 24 93-13 -,IFBUSB 25 82-2 IFBUSC 26 82-3 -,IFBUSC 27 82-6 IFBUSD 28 82-5 -,IFBUSD 29 82-10 IFBUSE 30 82-11 -,IFBUSE 31 82-14 IFBUSF 32 82-13 -,IFBUSF 33 83-2 IFADR0 34 83-3 -,IFADR0 35 83-6 IFBHEN 36 83-5 -,IFBHEN 37 83-10 -,IFREAD 38 83-11 IFREAD 39 83-14 -,IFWRITE 40 83-13 IFWRITE 41 122-2 IFADRLD 42 122-3 -,IFADRLD 43 -,IFACK 44 IFACK 45 -,IFINTR 46 IFINTR 47 -,IFRESET 48 IFRESET 49 GROUND 50 GROUND \f F_ C_O_M_P_O_N_E_N_T_ _L_I_S_T_ R_E_F_E_R_E_N_C_E_ _ _ _ _ _ _ _ _ _ D_E_S_C_R_I_P_T_I_O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Q_T_Y_ U1, U11, U81 P3205 3 U3 SN7438N 1 U13 SN74LS74N 1 U22 SN74LS148N 1 U23 SN74S02N 1 U31, U41, U51, 8287 5 U61, U71 U32 DM8098N 1 U33 SN74LS00N 1 U42, U52 SN74S240N 2 U43, U63SN74S10N2 U53 SN74S04N 1 U62 AM25LS2521PC 1 U73, U92, U103, AM26LS32PC 5 U112, U113 U82, U83, U93, AM26LS31PC 6 U102, U122, U123 U101 SN74S00N 1 U111 SN74S175N 1 U121 P8284A 1 U72 Switch, 8 position DIP 1 C1-4 Capacitor, tantal, 22 F, 15 V 4 C5 Capacitor, 6.8 pF 1 +5 V decoupling Capacitor, 47nF, 16V 16 R1-2 Resistor, 22 Kohm, 1/8W 2 R3-6 Resistor, 1 Kohm, 1/20W 4 SIL1-2 Resistor network, 9x1 Kohm 2 SIL3-7 Resistor network, 4x150 ohm 5 XTAL Crystal, 22.1184 MHz 1 \f \f 5_._6_._1_ _ _V_o_u_c_h_e_r_ _S_t_a_r_t_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Read the debtor/creditor key (general key reading) Reading : From input buffer Writing : Conditions for activa- tion : After interpretation of the line code (adp 0) Comm. Vari- ables : Read _set (call): 16 - deb/cred master deb _cred _type (call): selects record type in dc-logical file. Use : Reading of record identifications to the key variable in question Block refe- rence : B(adp _block _2,3) Next adap- tion point : Adp 2 \f 5_._6_._1_ _ _V_o_u_c_h_e_r_ _S_t_a_r_t_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 2 Designation : Check on the debtor/creditor information Reading : Writing : Conditions for activa- tion : After fetching the deb-cred record If the deb-cred record is not protected Comm. vari- ables : Use : Check on information in deb/cred record (potential refusal of the invoice) Block refe- rence : B(adp _block _9,1) Next adap- tion point : Adp 3 \f 5_._6_._1_ _ _V_o_u_c_h_e_r_ _S_t_a_r_t_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 3 Designation : Read the invoice information Reading : From input buffer Writing : Conditions for activa- tion : After create of invoice voucher start record. Comm. vari- ables : parent _dc _wanted, call: 0 answer: 0, 1 Use : Reading of commmon information for the in- voice voucher Block refe- rence : B(adp _block _9,2) Next adap- tion point : Adp 4 or exit \f 5_._6_._1_ _ _V_o_u_c_h_e_r_ _S_t_a_r_t_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 4 Designation : Process parent debcred Reading : Writing : Conditions for activa- tion : After create of invoice voucher start record. After fetching parent debcred Comm. vari- ables : Use : Possible use or updating of information from the parent debcred record Block refe- rence : B(adp _block _9,3) Next adap- tion point : Exit \f 5.6.2 V_o_u_c_h_e_r_ _E_n_d_ (tegning) \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ (tegning) \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ (tegning) \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ (tegning) \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Check the deb-cred information. Reading : Writing : Conditions for activa- tion : After fetching the invoice voucher start record. After fetching the user record. After calculation of invoice voucher. After fetching the deb/cred record. Comm. variables : parent deb cred entry call: 0 answer: 0, 1 posting _wanted call: 1 answer: 0, 1 credit _ok call: 1 answer: 0, 1 Use : Check of user information in deb-cred re- cord (normally: credit check). Assign the comm. variables Block refe- rence : B(adp _block _17,21) Next adap- tion point : Adp 2, adp 1 in order voucher end or adp 1 in print output \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 2 Designation : Fill in the part account entry Reading : Writing : Conditions for activa- tion : After a potential execution of the order voucher end. After deletion of the debtor/creditor pro- tection. If posting wanted = 1 (true). If parent deb _cred _entry = 0 (false). After create of part entry record. After print output Comm. vari- ables : Use : Calculation of information for accounting on part debtor/creditor Block refe- rence : B(adp _block _17,22) Next adap- tion point : Adp 4 or adp 5 \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 3 Designation : Fill in the parent account entry Reading : Writing : Conditions for activa- tion : After a potential execution of the order voucher end. After cancellation of the debtor/creditor protection. If posting _wanted = 1 (true). If parent deb _cred _entry ' 0. After fetching the structure list record referring to the parent deb-cred record After put of part deb-cred record. After fetching the parent deb-cred record. After creation of the parent deb-cred re- cord. After print output Comm. vari- ables : Use : Calculation of information for accounting on parent debtor/creditor Block refe- rence : B(adp _block _17,23) Next adap- tion point : Adp 4, adp 5 \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ m_A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 4 Designation : Update Order Reading : Writing : Conditions for activa- tion : If adp 2 or adp 3 is executed: After put of the account entry record and the deb-cred record. Else: After a potential execution of order voucher start. After cancellation of the debtor/cre- ditor protection. If order or deb-cred invoicing is executed in the current voucher. If adp5 is executed: After cancellation of the debtor/cre- ditor protection. After put of the deb-cred record. After fetching the order and order voucher records. After print output Comm. vari- ables : Use : Updating of the order with the invoice in- formation. Block refe- rence : B(adp _block _17,24) Next adap- ption point : Adp 4 or adp 5 \f 5_._6_._2_ _ _V_o_u_c_h_e_r_ _E_n_d_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 5 Designation : Update the deb-cred record Reading : Writing : Conditions for activa- tion : If adp 2 or adp 3 is executed: cf. adp 4. If deb-cred invoicing is the current voucher. If adp 4 is executed: After cancellation of the order pro- tection and put of accessed orders. After fetching the deb-cred record and the deb-cred voucher record (the copy). After print output Comm. vari- ables : Use : Updating of the deb-cred record with the invoice information Block refe- rence : B(adp _block _17,25) Next adap- tion point : Adp 4 \f 5.6.3 C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ O_u_t_l_i_n_e_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ S_u_b_f_u_n_c_t_i_o_n_:_ _R_e_a_d_ _t_h_e_ _I_t_e_m_ _I_d_e_n_t_i_f_i_e_r_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ S_u_b_f_u_n_c_t_i_o_n_:_ _C_r_e_a_t_e_ _t_h_e_ _V_o_u_c_h_e_r_ _R_e_c_o_r_d_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ S_u_b_f_u_n_c_t_i_o_n_:_ _P_a_r_t_s_-_L_i_s_t_ _S_c_a_n_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ S_u_b_f_u_n_c_t_i_o_n_:_ _P_a_r_t_s_-_L_i_s_t_ _S_c_a_n_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ S_u_b_f_u_n_c_t_i_o_n_:_ _P_a_r_t_s_-_L_i_s_t_ _S_c_a_n_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ S_u_b_f_u_n_c_t_i_o_n_:_ _P_o_s_s_i_b_l_e_ _O_r_d_e_r_ _C_r_e_a_t_i_o_n_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ S_u_b_f_u_n_c_t_i_o_n_:_ _P_u_t_ _I_t_e_m_/_A_d_d_i_t_i_o_n_ _R_e_c_o_r_d_ (tegning) \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Read the item key (general key reading) Reading : Writing : Conditions for activa- tion : After interpretation of the line code (adp 0). If the line is an item line Comm. vari- ables : Read _set (call): 3 - item master Item _type (call): identify the record type in the item logical file. Use : Reading of the record identifier to the key variable in question Block refe- rence : B(adp _block _2,3) Next adap- tion point : Adp 2 \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 2 Designation : Read the information Reading : From input buffer Writing : Conditions for activa- tion : After possible fetching of the item record Comm. vari- ables : 0 = false, 1 = true cancel _wanted call : 0 answer: 0, 1 parts _list _wanted call : 0 answer: 0, 1 order _wanted call : 0 answer: 0, 1 item _changed call : 1 answer: 0, 1 Use : Reading information to the invoice line. Update the item information Block refe- rence : B(adp _block _10,1) Next adap- tion point : Adp 3, adp 5, adp 1 in the order voucher start, adp 1 in create order line or exit \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 3 Designation : Processing the parts-list element Reading : Writing : Conditions for activa- tion : If adp 4 has been executed: After put of the voucher invoice line and the part item Else: If parts _list _wanted = 1 If the line is an item line. If there are more parts-list records. After fetching the parts-list record and the part item. Comm. vari- ables : Invc _line _wanted call : 0 answer: 0, 1 Use : Selection of the part item for invoicing Block refe- rence : B(adp _block _10,2) Next adap- tion point : Adp 3, adp 4 or adp 5 \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 4 Designation : Fill in the part invoice line Reading : Writing : Conditions for activa- tion : If invc _line _wanted = 1 After creation of the part invoice item line Comm. vari- ables : Use : Filling in of the part invoice item line Block refe- rence : B(adp _block _10,3) Next adap- tion line : Adp 3 or adp 5 \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 5 Designation : Updating after the parts-list scan Reading : Writing : Conditions for activa- tion : If adp 4 has been executed: cf. adp 3 After chain end in the parts-list scan Comm. vari- ables : Use : Possible updating after the parts-list scan. Block refe- rence : B(adp _block _10,4) Next adap- tion point : Adp 6, adp 1 in the order voucher start, adp 1 in the order line creation, adp 8 or exit \f 5_._6_._3_ _ _C_r_e_a_t_e_ _I_n_v_o_i_c_e_ _L_i_n_e_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 6 Designation : Updating the parent invoice item line Reading : Writing : Conditions for activa- tion : If the cancellation is not wanted. If a change of the parent invoice line is wanted. If the line is an item line. After fetching the parent invoice item line. Comm. vari- ables : Use : Updating of information in the parent item line (normally after the parts list scan) Block refe- rence : B(adp _block _11,1) Next adap- tion point : Adp 1 in the order voucher start, adp 1 in the order line creation, adp 7 or exit \f 5.6.4 O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ (tegning 143)\f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ (tegning 144)\f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ (tegning 144a)\f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ S_u_b_f_u_n_c_t_i_o_n_:_ _O_r_d_e_r_ _L_i_n_e_ _S_c_a_n_ (tegning 145) \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ S_u_b_f_u_n_c_t_i_o_n_:_ _O_r_d_e_r_ _L_i_n_e_ _S_c_a_n_ (tegning 146) \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ S_u_b_f_u_n_c_t_i_o_n_:_ _O_r_d_e_r_ _L_i_n_e_ _S_c_a_n_ (tegning 147) \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ S_u_b_f_u_n_c_t_i_o_n_:_ _S_c_a_n_ _o_f_ _P_a_r_t_ _O_r_d_e_r_ _L_i_n_e_ (tegning 148) \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ S_u_b_f_u_n_c_t_i_o_n_:_ _S_c_a_n_ _o_f_ _P_a_r_t_ _O_r_d_e_r_ _L_i_n_e_ (tegning 149) \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Read the order key (general key reading) Reading : Writing : Conditions for activa- tion : After interpretation of the line code (adp 0) Comm. variables: read set (call): 21 - order master od _type (call): indicates the record type of the order master. Use : Reading of the order identification to the key variable in question. Block refe- rence : B(adp _block _2,3) Next adap- tion point : Adp 2 \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 2 Designation : Read the information Reading :From input buffer Writing : Conditions for activa- tion : After fetching the order master. If the order is unprotected: After create of the order head copy. Else: If the order is protected by the current terminal. Comm. variables: chosen call: 0 answer: 0,1 no _of _scans call: 1 answer: '= 1 Use : Reading of information to be used by the order invoicing (common information, restrictions). Check on, whether the order is to be in- voiced. Block refe- rence : B(adp _block _12,1) Next adap- tion point : Adp 3, adp 4, adp 7 or exit \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 3 Designation : Select the order line Reading : Writing : Conditions for activa- tion : If chosen = 1. If the found order line is neutral or parent. Comm. variables: invc _line _wanted call: 0 answer: 0,1 part _order _lines call: 0 answer: 0,1 Use : Selection of (neutral or parent) order line for the invoicing Block refe- rence : B(adp _block _12,2) Next adap- tion point : Adp 3, adp 4, adp 5, adp 8 or exit \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 4 Designation : Fill in the (parent) invoice line. Reading : Writing : Conditions for activa- tion : If invc _line _wanted = 1. After create of the invoice voucher line. If it is an order item line: After fetching the item record. Comm. variables: odl _erased call: init. from the order line record. answer: 0,1 part _order _lines call: 0,1 (assigned in adp 3) answer: 0,1 Use : Updating the information in the (parent) order line, invoice line and possibly the item record. Block refe- rence : B(adp _block _12,3) Next adap- tion point : Adp 3, adp 5 or exit \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 5 Designation : Update the part item. Reading : Writing : Conditions for activa- tion : If adp 4 has been executed: After a possible put of an item record. After a put of the invoice voucher line and the order line. If part _order _lines = 1 After fetching the part order line and the part item. Comm. variables: invc _line _wanted call: 0 answer: 0,1 Use : Selection of the part order line for invoicing. Block refe- rence : B(adp _block _12,4) Next adap- tion point : Adp 3, adp 5, adp 6 or exit\f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 6 Designation : Fill in the part invoice line. Reading : Writing : Conditions for activa- tion : If invc _line _wanted = 1. After create of the invoice line. Comm. variables: odl _erased call: init. from the order line record answer: 0,1 Use : Updating the information in the part order line, the invoice line and the item record. Block refe- rence : B(adp _block _12,5) Next adap- tion point : Adp 3, adp 5 or exit \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 7 Designation : Update invoice voucher start Reading : Writing : Conditions for activa- tion : If skp _line _code ' .FP. After possible creation of an order head copy. If chosen = 1 Comm. variables: Use : The adaption point is only activated in compound transactions and it is used to update the invoice voucher start before each order invoicing. Block refe- rence : B(adp _block _12,10) Next adap- tion point : Adp 3, adp 4 or exit \f 5_._6_._4_ _ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 8 Designation : Check part item. Reading : Writing : Conditions for activa- tion : If part _order _lines = 1. After fetching the part item. After fetching the part order line. Comm. variables:invc_line_wanted call: 0,1 (assigned in adp 3) answer: 0,1 Use : Checking of the part item to find out if invoicing of the parent item is possible. Block refe- rence : B(adp _block _12,6) Next adap- tion point : Adp 8, adp 4, adp 5 or exit \f 5.6.5 D_e_b_t_o_r_/_C_r_e_d_i_t_o_r_ _I_n_v_o_i_c_i_n_g_ (tegning 157)\f 5_._6_._5_ _ _D_e_b_t_o_r_/_C_r_e_d_i_t_o_r_ _I_n_v_o_i_c_i_n_g_ (tegning 158)\f 5_._6_._5_ _ _D_e_b_t_o_r_/_C_r_e_d_i_t_o_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Read the deb-cred keys Reading :From input buffer Writing : Conditions for activa- tion : After interpretation of the line code (adp 0) Comm. variables: read _set (call) 8 - deb/cred master (part) deb _cred _type (call) indicates the record type for the deb-cred record. Use : Reading of the deb-cred identification to the key variable in question. Block refe- rence : B(adp _block _2,3) Next adap- tion point : Adp 2 \f 5_._6_._5_ _ _D_e_b_t_o_r_/_C_r_e_d_i_t_o_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 2 Designation : Read the information Reading :From input buffer Writing : Conditions for activa- tion : After fetching the deb-cred record. If the deb-cred record is not protected by any other terminal. Comm. variables: Use : Reading of the information used by the debtor/creditor invoicing (common information, restrictions). Block refe- rence : B(adp _block _12,6) Next adap- tion point : Adp 1 in the order invoicing or exit \f 5.6.6 E_r_a_s_e_ _I_n_v_o_i_c_e_ _L_i_n_e_/_I_n_v_o_i_c_e_ _V_o_u_c_h_e_r_ (tegning 161)\f 5_._6_._6_ _ _E_r_a_s_e_ _I_n_v_o_i_c_e_ _L_i_n_e_/_I_n_v_o_i_c_e_ _V_o_u_c_h_e_r_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Read the information Reading :From input buffer Writing : Conditions for activa- tion : After interpretation of the line code (adp 0). After reading the wanted position (the line - or serial number). Comm. variables: Use : Reading of supplementary information (e.g. restrictions). Block refe- rence : B(adp _block _16,6) Next adap- tion point : Adp 1 in the cancellation. \f 5.6.7 I_n_v_o_i_c_e_ _H_e_a_d_ _A_m_e_n_d_m_e_n_t_ (tegning 163)\f 5_._6_._7_ _ _I_n_v_o_i_c_e_ _H_e_a_d_ _A_m_e_n_d_m_e_n_t_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Read the information Reading :From input buffer Writing : Conditions for activa- tion : After fetching the invoice voucher start record. Comm. variables: Use : Reading of modifications to the invoice voucher start record. Block refe- rence : B(adp _block _9,6) Next adap- tion point : Exit \f 5.6.8 C_o_m_p_o_u_n_d_ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ (Tegning 165)\f 5_._6_._8_ _ _C_o_m_p_o_u_n_d_ _O_r_d_e_r_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ The transaction uses the Skeleton Program - including the adaption points - from: The invoice voucher start - cf. section 5.6.1. The order invoicing - cf. section 5.6.4. The invoice voucher end - cf. section 5.6.2. All the adaption points from the above mentioned functions may principally be executed.\f 5.6.9 C_o_m_p_o_u_n_d_ _D_e_b_/_C_r_e_d_ _I_n_v_o_i_c_i_n_g_ (tegning 168)\f 5_._6_._9_ _ _C_o_m_p_o_u_n_d_ _D_e_b_/_C_r_e_d_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ Number : 1 Designation : Read the deb/cred keys (general key reading) Reading :From input buffer Writing : Conditions for activa- tion : After interpretation of the line code (adp 0) Comm. variables: read _set (call): 16 - deb/cred master deb _cred _type (call) indicates the record type for the deb/cred record. Use : Reading of the deb/cred identification to the key variable in question. Block refe- rence : B(adp _block _2,3) Next adap- tion point : Adp 1 in the invoice voucher start. (cf. next page).\f 5_._6_._9_ _ _C_o_m_p_o_u_n_d_ _D_e_b_/_C_r_e_d_ _I_n_v_o_i_c_i_n_g_ A_d_a_p_t_i_o_n_ _P_o_i_n_t_ _D_e_s_c_r_i_p_t_i_o_n_ The transaction uses the Skeleton Program - including the adaption points - from The invoice voucher start - section 5.6.1. The deb-cred invoicing - section 5.6.5. The invoice voucher end - section 5.6.2. The deb-cred invoicing uses the Skeleton Program from the order invoicing (section 5.6.4). All the adaption points from the above mentioned functions - except adp 1 in the order invoicing - may principally be executed.\f F_1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ This manual is a complete list of corrections to the CF-System manual, collecting all changes since may 1972. It contains minor changes of procedure descriptions as well as completely rewritten sections. \f F_2_._ _ _ _ _ _ _ _ _C_O_R_R_E_C_T_I_O_N_S_ 2_._1_ _ _ _ _ _ _ _P_a_g_e_ _1_5_-_1_7_,_ _P_r_o_t_e_c_t_i_o_n_ _o_f_ _f_i_l_e_s_: In this chapter the subsections >Security measures in the cf-system>, >Set-descr-cf>, and >Alarms> should be replaced by: S_e_c_u_r_i_t_y_ _m_e_a_s_u_r_e_s_ _i_n_ _t_h_e_ _c_f_-_s_y_s_t_e_m_. The cf-system has been provided with protection against the error cause 1, but not against 2 and 3. The catalog entry of a file is used by the protection system in this way: file = set segments' bs device' shortclock' update mark' The last quantity is special for the cf-system: update mark' Either 0 or 1 0: The file is in read-only-state. This should be the state between runs, and this is the state accepted by open-cf. 1: The file is in update-state. This state must not occur between runs, and a file in update-state is rejected by open-cf. Errors of type 1 are detected by means of the update-mark, which will be equal to one, if a processing in an update mode is terminated by an index alarm f.ex.. When a masterfile contains an update mark in the catalog entry, it also contains an internal update mark originating from the isq-system. The program >recoveri> can be used to reestablish the contents of a destroyed masterfile, whereas the update mark in the catalog entry can be removed by the utility program >backfile>. \f The current value of shortclock is inserted in the catalog each time the processing mode is changed from read-only to an update mode, or when the procedure >extendcf> is called. R_e_a_c_t_i_o_n_s_ _o_n_ _u_p_d_a_t_e_ _m_a_r_k_ _e_r_r_o_r_s_: If a masterfile contains an isq update mark when opened, the file can be read but not updated. As soon as the processing mode is changed to an update mode, the run will be terminated by the runtime alarm >prep i 9>. If a cf file contains an update mark in the catalog entry when opened, the file cannot even be read. The opencf procedure will terminate the run with the runtime alarm ***protectcf alarm: file file no' file name' d.shortclock' upd.mark 1 2_._2_ _ _ _ _P_a_g_e_ _1_9_,_ _p_r_o_c_e_d_u_r_e_ _b_u_f_l_e_n_g_t_h_c_f_: The second parameter of buflengthcf has been changed to: extendsegs _and _blocksincore (call value, integer) The parameter has the meaning: extend _segments shift 6 add blocks _in _core Extend _segments may be 0, in which case the bufferlength is calculated without room for extension of the file. If extend _segments ' 0, the bufferlength is as large as needed when the file has been extended with this number of segments. The bufferlength will, however, never exceed the limit corresponding to the maximum size of the file. This value may be obtained in any case by using the parameter (-1) shift 6 add blocks _in _core. \f 2_._3_ _ _ _ _P_a_g_e_ _2_5_,_ _p_r_o_c_e_d_u_r_e_ _e_x_t_e_n_d_c_f_: Add the following explanation: If the value of the parameter >segments> does not place the end of the file at a bucket or block limit, the extension will be decreased to the nearest such limit, but the extension will never be less than one bucket or block. This means f.ex. that extendcf (z, 1) will extend a masterfile with one bucket and a listfile with one block. 2_._4_ _ _ _ _P_a_g_e_ _2_7_,_ _p_r_o_c_e_d_u_r_e_ _g_e_t_l_: The description of the parameter gmode should be replaced by: gmode (call value, integer) =1 get the f_i_r_s_t_ _r_e_c_o_r_d_ in the chain from current record in the motherfile =2 get the record n_e_x_t_ _t_o_ _l_a_s_t_ _a_c_c_e_s_s_e_d_ _r_e_c_o_r_d_ in the chain =3 get the l_a_s_t_ _a_c_c_e_s_s_e_d_ _r_e_c_o_r_d_ in the chain =4 get the record n_e_x_t_ _t_o_ _c_u_r_r_e_n_t_ _r_e_c_o_r_d_ in the chain The description of resultcf is: resultcf current record 1 found the wanted 2 not found, end of chain if gmode = 2 the last accessed else none 3 gmode = 3: last accessed unchanged undefined gmode = 4: current record not connected to this chain \f 2_._5_ _ _ _ _P_a_g_e_ _2_9_,_ _p_r_o_c_e_d_u_r_e_ _g_e_t_n_u_m_b_l_: resultcf current record 1 found the record with the given number 2 next, the specified the next record in record number did ascending record number not identify an active order record 3 end of file. As 2, but none no record exists with greater record number recnocf is always returned as the record number of the current record. Dead records are not returned by the procedure. The procedure getnumbl may thus be used to read a listfile sequentially: for recnocf := 0, recnocf while result ' 3 do getnumbl (zl, recnocf +1); 2_._6_ _ _ _ _ _P_a_g_e_ _3_1_-_3_2_,_ _p_r_o_c_e_d_u_r_e_s_ _h_e_a_d_l_ _a_n_d_ _h_e_a_d_m_: After creation of the file head the size of the area will be cut down to the nearest bucket or block limit (as described for extendcf), so that a masterfile will contain at least one bucket and a masterfile at least one block. Shortclock and contents fields are inserted in the catalog entry. Contents will be 22.1 for a masterfile and 23.1 for a listfile. 2_._7_ _ _ _ _P_a_g_e_ _3_5_,_ _p_r_o_c_e_d_u_r_e_ _i_n_i_t_r_e_c_m_: When resultcf = 1 the current record is now available as current record. This record is lateron written to the file, so be careful not to change key or length fields as this will destroy the file. \f 2_._8_ _ _ _ _P_a_g_e_ _4_0_,_ _p_r_o_c_e_d_u_r_e_ _o_p_e_n_c_f_: Opencf may yield the following results: resultcf current record 1 ok if masterfile then the first else none 2 ok, but only room for the first in the masterfile simple insertion in the masterfile 3 isq update mark in masterfile the first in the masterfile 4 isq update mark and only the first in the masterfile room for simple insertion 2_._9_ _ _ _ _P_a_g_e_ _4_1_,_ _p_r_o_c_e_d_u_r_e_ _p_r_o_t_e_c_t_c_f_: The procedure description should be replaced by: protectcf proc.no. 33 Special purpose procedure. The procedure is called internally by the cf-system in order to check update mark in the catalog entry, and to perform an extended alarm printing in case of a runtime alarm. But it can be called directly from a user>s program for testprinting. Call: protectcf (z, action) z (call and return value, zone) Connected to a masterfile or listfile action (call value, integer) Defines the function of the procedure: = 0 The call is dummy \f = 1 This call is used internally from opencf, to check that the catalog entry contains no update mark. = 2 This call is used internally from readupdcf and updallcf if the file was in read only mode. It will reserve the area process, and set the shortblock and the update mark in the catalog entry. = 3 This call is used internally from readonlycf and closecf if the file was in an updatemode. It removes the update mark from the catalog entry and releases the reservation of the area process. ' 3 This call is used internally for an extended alarmprinting or from the user>s program for testprinting. The action parameter is interpreted as cfprocno shift 12 add alarmno No internal states are modified by the call. The printing from action ' 3 is performed on the zone >out>, and contains selected parts of zone and share descriptors, current record, chain part, and chain table. The printing is performed for the zone given by the first parameter, as well as for the latest accessed mother zone and the latest accessed daugther zone, if any, in a recursive manner. W_a_r_n_i_n_g_: The procedure should never be called with action 1, 2, or 3 from the user>s program. \f 2_._1_0_ _ _ _P_a_g_e_ _4_5_,_ _p_r_o_c_e_d_u_r_e_ _s_e_t_d_e_s_c_r_c_f_: Remove this procedure description, as the procedure is no longer contained in the cf-system. 2_._1_1_ _ _ _P_a_g_e_ _5_8_-_6_0_,_ _A_l_a_r_m_s_ _f_r_o_m_ _c_o_d_e_ _p_r_o_c_e_d_u_r_e_s_: Add the following description of how alarm printing is performed, and the explanation of the new alarms: A runtime alarm from a cf code-procedure is handled in the following steps: 1. If the alarm is >z.state>, >prep-cf>, or >prep i>, then the normal short alarm text is printed, and the run terminated immediately. 2. If setjumpscf (z, alarmproc, 1,1) has been called previously, then this user specified alarm procedure is called. If this alarm procedure does not return through its final end, the next two steps will not be performed. 3. Now protectcf is called with the action parameter cfprocno shift 12 add alarmno Protect performs the extended alarm printing of zone and share descriptors, current record, chain part and chain table as described for protectcf. 4. Finally the normal short alarm printing terminates the alarm actions. The alarm address of this printing may be misleading (i.e. not cf-system 1 to 16) due to algol segmentation during the preceding alarm actions. \f New or changed alarm causes: t_e_x_t_ _a_l_a_r_m_n_o_ _e_x_p_l_a_n_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _e_r_r_o_r_ _c_a_u_s_e_d_ _b_y_ cf-error 12 Error in block at insertion file of a listfile record prep i 8 Contents field of catalog file entry of a masterfile ' 22 prep i 9 Isq update mark found program in a masterfile, i.e. the or last updating has not been file terminated. rec.no. 19 The record number of a program listfile record is 1. This or may happen explicitly in a file call of getnumbl as a program error, or implicitly in other procedures if the file has been destroyed. 2_._1_2_ _ _ _P_a_g_e_ _6_3_,_ _A_l_a_r_m_s_ _f_r_o_m_ _e_x_t_e_r_n_a_l_ _a_l_g_o_l_ _p_r_o_c_e_d_u_r_e_s_: The error messages *** protectcf descrrec *** protectcf setdescr *** protectcf version have been removed from the system. 2_._1_3_ _ _ _P_a_g_e_ _7_0_,_ _A_p_p_e_n_d_i_x_ _E_: This appendix is no longer relevant for the cf-system.\f «eof»