CLOSFREZ867
(George Source)
Macros used: BACKSPACE, BXE, BXU, CLOSE, CLOSETOP, FCBNO2, FREECORE, GEOERR, GETFNAME, INFORM, JBS, JFNZ, JMBS, LF, LONGON, MFREE, MFREEW, MHUNT, MHUNTW, NAME, OPENDIR, OUTPACKX, READ, REWRITE, SEG, SEGENTRY, SETNCORE, SFCAB, STF, TOPFCA2, TOPFCB2, UP
- CLOSFREZ867.txt
22FL ... SEG CLOSFREZ,863,SECTION FILE,CLOSE 22^= ...# 236D ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 23?L ...# 23DW ... SEGENTRY K1CLOSFREZ,XENT1 25CB SEGENTRY K2CLOSFREZ,XENT2 25X2 SEGENTRY K3CLOSFREZ,XENT3 26BL # 26W= SVLAN 4H#### 27*W # 27BG ...# 27C6 ...#SKI K6CLOSFREZ>199-199 27CQ ...( 27DF ...PACKMESS 27H4 ... SBX 7 FX1 27KM ... OUTPACKX 4,5,6 27N= ... ADX 7 FX1 27QT ... EXIT 7 0 27RP ...) 27SK ...# 27TG OPENDIR 28*6 SBX 6 FX1 28SQ ... GETFNAME [SET UP FABSNB FOR FILE OPEN AT DEPTH 29#B OPENDIR XBREAKIN,GENERAL,ERASING 29S2 ... MHUNTW 2,FILE,ENT 2=?L ... NAME 2,FILE,FWB 2=R= ... LDEX 0 ECOPS(2) 2?=W ... BZE 0 NOCOPS [J IF NO BLOCKS RECORD 2?QG ... BACKSPACE 2#PQ NOCOPS 2*9B ADX 6 FX1 2*P2 EXIT 6 0 2*YS ...# 2B8L # 2F6B # 2H4W # 2HJG ...# ENTRY FROM THE CLOSETHAW MACRO. 2J46 # THE DIRECTORY IS OPENED AND THE FREEZECOUNTS IN THE FCB AND THE 2JHQ # DIRECTORY ENTRY ARE CHECKED; IF ZERO OR INCONSISTENT WE 2K3B ...# GEOERR, OTHERWISE SUBTRACT 1 FROM THE COUNTS AND FORCE FULL 2KH2 ...# IF WORKFILE, UPDATE FCB COUNT ONLY. 2L2L ...# 2LG= ...XENT3 2L^W ... TOPFCB2 2 [X2-> FCB 2MFG ... JBS WORKFILE,2,BFWORK [J IF WORKFILE (NO DIRECTORY ENTRY) 2NDQ CALL 6 OPENDIR [OPEN DIRECTORY / POS. ON NAME RECORD 2NH^ ... MFREE FILE,FABSNB 2NM8 ... FCBNO2 2,THAWERR1 [X2 -> FCB AT LEVEL 1, ELSE GEOERR 2NQC ... MHUNTW 3,FILE,FWB [X3-> NAME RECORD BLOCK 2NTL ... LDEX 0 EAUTOCOUNT(3) 2NYT ... LF 2,FFFREZCT,1 2P44 ... BXU 0 1,THAWERR [GEOERR IF LF-FROZEN COUNTS IN FCB & 2P7? ... BZE 1 THAWERR [GEOERR IF FILE NOT FROZEN 2P=G ... SBN 1 1 2P*P ... STF 2,FFFREZCT,1 2PDY ... DEX 1 EAUTOCOUNT(3) [REDUCE BY 1 LF-FROZEN COUNTS IN FCB 2PJ7 ...XFRIG 2PMB ... REWRITE [REWRITE NAME RECORD 2PQK ... MFREEW FILE,FWB 2PTS ... CLOSETOP [CLOSE DIRECTORY 2P^3 ... TOPFCB2 2 [X2-> FCB OF THAWED FILE 2Q4= ... JFNZ NOTHAW,2,FFFREZCT [J IF FILE STILL FROZEN 2Q7F ... LONGON 6,FLOC1(2) [WAKE UP ANYONE WAITING FOR FILE TO B 2Q=N ...NOTHAW 2Q*X ... CLOSE [CLOSE THAWED FILE - FULL CLOSE TO EN 2QF6 ... [ DATE/TIME LAST ACCESSED 2QJ* ... UP 2QMJ ...WORKFILE 2QQR ... LF 2,FFFREZCT,4 2QW2 ... SBN 4 1 2Q^9 ... BNG 4 THAWERR2 [GEOERR IF FREEZECOUNT WRONG 2R4D ... STF 2,FFFREZCT,4 2R7M ... BRN NOTHAW 2R=W ...# 2RB5 ...# 2RF# ...THAWERR1 2RJH ... GEOERR BRIEFPM,1FILE [ONLY 1 FILE OPEN WHEN SHOULD BE 2 2RMQ ...# 2RQ^ ...THAWERR2 2RW8 ...#SKI K6CLOSFREZ>199-199 2R^C ... BRN NOTHAW 2S4L ... GEOERR BRIEFPM,NEGFREZ [FREEZE COUNT GOING -IVE ON ! FILE 2S7T ...# 2S?4 ...THAWERR 2SB? ...#SKI K6CLOSFREZ>199-199 2SFG ...#SKI 2SJP ... GEOERR BRIEFPM,FROZEN? [LF-FROZEN COUNTS IN FCB & DIR. ENTRY 2SMY ...#SKI K6CLOSFREZ>199-199 2SR7 ...( 2SXJ ... LDN 4 FUSER1(2) 2SYM ... LDN 5 3 2S^Q ... LDN 6 JPDUSERNAME 2T2T ... CALL 7 PACKMESS [OUTPUT USER NAME 2T3Y ... FCBNO2 2,THAWERR1 2T53 ... LDN 4 FLOC1(2) 2T66 ... LDN 6 JPDLOCNAME 2TKQ ... CALL 7 PACKMESS [OUTPUT LOCAL NAME 2W5B ... INFORM 1,FROZERROR,1 [SEND MESSAGE 'FREEZE ERROR ON :USER. 2WK2 ... [ (WITH CATEGORIES JOURNAL,CENTRAL 2X4L ... BRN XFRIG 3?G6 ) 3?^Q # 3#P8 ...# 3#^2 ...# 3*8S ...# ENTRY FROM THE MACRO FREEZESAVE. 3*DL # THE FILE OPEN AT THE TOP LEVEL IS FROZEN BY ADDING 1 TO THE 3*Y= # APPROPRIATE COUNT IN FSVCT (B0-11 IF OPEN FOR WRITING, 3B=M ...# B12-23 IF READING) AND ESVCT, EXCEPT IF CAME IN AT K1 (PARAM 3BK4 ...# WANT TO FREEZE FOR READING ANYWAY. 3BXG ...# FI/FCA AND FABSNB BLOCKS ARE LEFT AROUND FOR SAVEFILE SEGMENT. 3CC6 ...# 3CH3 ...XENT1 3CLY ... LDN 4 1 [SET 'READ-SAVE' INDICATOR 3CQT ... BRN XREAD 3CWQ XENT2 3CXR ... LDN 4 0 [SET 'HLS FREEZE ACCORDING TO MODE 3CYS ... [ OPEN IN' INDICATOR 3C^T ...XREAD 3DBB CALL 6 OPENDIR [OPEN DIRECTORY / POS. ON NAME RECORD 3DW2 # 3F*L ...# ADD 1 TO THE APPROPRIATE COUNT. 3FT= # NOTE THAT THE SAVING FILE (LANGUAGE #### ) IS A SPECIAL CASE - 3G#W # ALTHOUGH OPEN FOR WRITING WE FREEZE IT AS IF READING SINCE 3GSG # IT WILL BE REOPENED FOR READING 3HRQ LDN 0 1 3J?B ... SFCAB 0,3,2 [X2-> FCB & X3-> FCA OF 'TO BE HLS-FR 3JH8 ... BNZ 4 READ [J IF ALREADY KNOW MODE TO FREEZE IN 3JR2 ... LDN 4 1 [SET DEFAULT UPDATE AS 'READ SAVE' 3K=L ... JMBS READ,3,BAMREAD,BAMREADR [J IF READ OR READR MODE 3KGD ... LDX 0 FLAN(2) 3KQ= ... BXE 0 SVLAN(1),READ [J IF THIS IS THE SAVING FILE 3L9W ... LDX 4 BIT11 [SET UP 'WRITE FREEZE' 3PM= READ 3Q6W ... ADS 4 FSVCT(2) [UPDATE HLS-SAVE COUNT IN FCB 3RKQ # 3S5B ...# REWRITE THE DIRECTORY ENTRY, CLOSE THE DIRECTORY ,SET UP FI/FCA TO 3SK2 ...# AND BITS WORDS OF FCA AND LEAVE IT FOR SAVEFILE. THEN CLOSE THE F 3T4L # 3TJ= ... MHUNTW 3,FILE,FWB 3W3W ... ADS 4 ESVCT(3) [UPDATE HLS-SAVE COUNT IN DIR. ENTRY 3WHG ... REWRITE [REWRITE NAME RECORD 3X36 ... MFREEW FILE,FWB 3XGQ ... CLOSETOP [CLOSE DIRECTORY 3XJN ... MHUNT 2,FILE,FABSNB 3XLL ... LDX 0 A1(2) 3XNJ ... SBN 0 10 3XQG ... BZE 0 OKFAB [J IF 10-WORD FABSNB (SAVEFILE ASSUME 3XSD ... FREECORE 2 [FREE FABSNB 3XWB ... GETFNAME [GET NEW 10-WORD FABSNB 3XY# ...OKFAB 3Y2B ... SETNCORE FCASAVENO,3,FI,FCA [SET UP FI/FCA INTO WHICH TO SAVE FIL 3YG2 ... TOPFCA2 2 [X2-> FCA 3Y^L ... ADN 2 FREADBLOCK 3^F= ... ADN 3 FCASAVE 3^YW ... MOVE 2 FCASAVENO [MOVE FCA INTO FI/FCA 42DG ... CLOSETOP [CLOSE TO-BE-SAVED FILE 42W= ...UP 42Y6 ... UP 42^H ...# 43CQ ...# 43XB ...# 4SS= XBREAKIN 4T?W GEOERR BRIEFPM,FREEZBRK 4W?6 #END ^^^^ ...23446770000100000000