{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CLOSFREZ867)}}
====== CLOSFREZ867 ======
(George Source)
**Macros used:** [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSE|CLOSE]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:FCBNO2|FCBNO2]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETFNAME|GETFNAME]], [[george:macro:INFORM|INFORM]], [[george:macro:JBS|JBS]], [[george:macro:JFNZ|JFNZ]], [[george:macro:JMBS|JMBS]], [[george:macro:LF|LF]], [[george:macro:LONGON|LONGON]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OPENDIR|OPENDIR]], [[george:macro:OUTPACKX|OUTPACKX]], [[george:macro:READ|READ]], [[george:macro:REWRITE|REWRITE]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SFCAB|SFCAB]], [[george:macro:STF|STF]], [[george:macro:TOPFCA2|TOPFCA2]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:UP|UP]]
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