DOC867

(George Source)

Macros used: ACROSS, ALTLEN, APPEND, CLOSE, COMERR, DCA, DOCON, FINDCORE, FREECORE, GEOERR, GETCOREN, GSCAN, LGEOG, LONGON, LPROP, LTYPE, MASK, MENDAREA, MHUNT, MHUNTW, NAME, OPEN, PARANUMB, PARAPASS, PHOTO, SEGENTRY, SPARAPAS, TEST, TESTMOVE, TESTREP, TRACE

DOC867.txt
22FL    #LIS  K0DOC>K0ALLGEO>K0COMMAND  
22^=    #SEG  DOC8                         [A C PUTMAN  
2394 ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983.   
23DW          8HDOC 
23YG          SEGENTRY K1DOC,XDOC1  
24D6    #   
24XQ    #     THIS SEGMENT DEALS WITH THE COMMAND DOCUMENT. THE PARAMETERS ARE  
25CB    #     CHECKED AND IF CORRECT THE SYSTEM FILE DOCUMENT IS OPENED AND 
25X2    #     INFORMATION CONCERNING THE PERIPHERAL THAT HOLDS THE DOCUMENT IS  
26BL    #     STORED AS A RECORD IN THIS FILE. THIS COMMAND IS USED FOR BASIC   
26W=    #     PERIPHERALS IE. CARD READERS AND TAPE READERS.
27*W    #   
27TG    MASK           #77777   
28*6    WSP            #20202020
28SQ    WHDR           #50444462
29#B    MSK1           #20000000
29S2    XOPN           +16  
2=?L                   12HMASTER
2=R=                   12HSYSTEM
2?=W                   +1   
2?QG                   +1   
2#=6                   +0   
2#PQ                   12HDOCUMENT  
2*9B                   +1   
2*P2                   +1   
2B8L                   +0   
2BN=    SP             #20000020
2C7W    MAGIC          +7036875 
2CMG    PLET                               [CHECK CH. TO BE A LETTER
2D76          LDCH  0  APARA(2) 
2DLQ          SBN   0  #41  
2F6B          BNG   0  PERR 
2FL2          SBN   0  #73-#41  
2G5L          BPZ   0  PERR 
2GK=          EXIT  7  0
2H4W    TMOR                               [INSERT SPACES IN REDUNDANT CH. POSNS
2HJG          LDN   4  #20                 [USES X4, AND REQUIRES PTR. TO NEXT  
2J46    TEST  TXL   3  MSK1(1)             [CH. POSN. IN X3 
2JHQ          BCS      NSP  
2K3B          DCH   4  0(3) 
2KH2          BCHX  3  TEST 
2L2L    NSP 
2LG=          EXIT  7  0
2L^W    XDOC1   
2MFG    #     THIS ENTRY POINT PICKS UP THE NAME OF A DOCUMENT FROM A PARAMETER 
2M^6    #     BLOCK AND APPENDS IT TO A FILE TOGETHER WITH INFORMATION ABOUT THE
2NDQ    #     PERIPHERAL THAT IS 'DOCUMENT LOADED'  
2NYB    #SKI           99>K6DOC-99  
2PD2          TRACE    1,INDOC1 
2PXL          PARANUMB 6                   [NO. OF PARS. TO X6  
2QC=          BZE   6  NOPAR               [J IF NONE THERE 
2QWW          GETCOREN 20,1                [CORE FOR RECORD 
2RBG          FINDCORE 3
2RW6          NAME     3,ADATA,ADOC 
2S*Q          STO   6  A1+1(3)  
2STB          SPARAPAS                     [GET DOC. NAME   
2T*2          MHUNT    2,CPB,CUNI   
2TSL          LDX   4  ANUM(2)  
2W#=          BZE   4  NOPAR               [DOC. NAME NULL  
2WRW          BNG   4  NOPAR
2X?G          SRL   4  12                  [GET PARAM. TYPE 
2XR6          BZE   4  SIM1                [J IF SIMPLE: SHORT FORM 
2Y=Q          SBN   4  1
2YQB          BZE   4  PSIM                [J IF PSEUDO-SIMPLE: FULL FORM   
2^=2          BRN      PERR                [OTHERWISE FORMAT WRONG  
2^PL    SIM1  LDX   4  ANUM(2)  
329=          ANDN  4  #7777
32NW          SBN   4  13   
338G          BPZ   4  PERR                [FORMAT ERROR IF DOC. NAME > 12 CHS. 
33N6          CALL  7  PLET                [CHECK 1ST CH. LETTER
347Q          ADN   4  13                  [X4 CONTAINS NO. OF CHS. 
34MB          BRN      PINS 
3572    PSIM  LDCH  0  APARA(2) 
35LL          SBN   0  #12                 [COLON   
366=          BNZ   0  PERR 
36KW          SMO      FX2  
375G          STO   2  AWORK2   
37K6          BCHX  2  £
384Q          CALL  7  PLET                [CHECK USER NAME BEGINS WITH LETTER  
38JB          LDN   5  12   
3942    NXT   BCHX  2  £
39HL          LDCH  4  APARA(2) 
3=3=          SBN   4  #36                 [STOP
3=GW          BZE   4  NOMOR
3?2G          BCT   5  NXT  
3?G6          BRN      PERR                [ERROR IF MORE THAN 12 CHS. IN U.NAME
3?^Q    NOMOR BCHX  2  £
3#FB          CALL  7  PLET                [DOC. NAME MUST START WITH LETTER
3#^2          SBN   5  28   
3*DL          SMO      FX2  
3*Y=          LDX   2  AWORK2   
3BCW          LDX   4  ANUM(2)  
3BXG          ANDN  4  #7777
3CC6          ADX   5  4
3CWQ          BPZ   5  PERR                [ERROR IF DOC. NAME > 12 CHS.
3DBB    PINS  MHUNT    3,ADATA,ADOC 
3DW2          STO   4  A1+2(3)             [CT. OF NO. OF CHS.  
3F*L          SMO      FX2  
3FT=          STO   3  AWORK1              [PRESERVE S.A. OF DOC. BLOCK 
3G#W          STO   2  5                   [PRESERVE S.A. PARAM. BL.
3GSG          ADN   2  APARA
3H#6          ADN   3  A1+3 
3HRQ          SMO      4                   [X4 NON-ZERO: CHECKED EARLIER
3J?B          MVCH  2  0
3JR2          CALL  7  TMOR                [INSERT SPACES IF NECESSARY  
3K=L          SMO      FX2  
3KQ=          LDX   2  AWORK1   
3L9W          SBX   3  2                   [X3 CONTAINS PTR. TO POSN. IN BLOCK  
3LPG          SLL   3  12   
3M96          LDN   0  #7777
3MNQ          ANDS  0  A1+1(2)             [KEEP NO. OF PARS.   
3N8B          ADS   3  A1+1(2)  
3NN2          SBN   6  1
3P7L          FREECORE 5                   [FREE PARAM. BLOCK   
3PM=          BZE   6  ONEP                [J IF NO MORE PARAMS.
3Q6W    P1    PARAPASS                     [MODE OR TERM.   
3QLG          MHUNT    2,CPB,CUNI   
3R66          LDX   4  ANUM(2)  
3RKQ          SRL   4  12                  [GET PARAMETER TYPE  
3S5B          BZE   4  SIM2                [J IF SIMPLE 
3SK2          SBN   4  1
3T4L          BZE   4  SIM2                [J IF PSEUDO-SIMPLE  
3TJ=          BRN      PERR                [OTHERWISE ERROR 
3W3W    SIM2  LDX   4  ANUM(2)  
3WHG          BZE   4  NEXTP               [J IF NULL   
3X36          BNG   4  NOER 
3XGQ          ANDN  4  #7777
3Y2B          MHUNT    3,ADATA,ADOC 
3YG2          LDX   5  4
3Y^L          ADN   5  3
3^F=          SRL   5  2
3^YW    NMOR  LDX   7  A1+1(3)             [X5 CONTAINS NO. OF EXTRA WDS. REQD. 
42DG          SRL   7  12                  [PTR. TO NEXT FREE WD. IN DOC. BL.   
42Y6          ADX   5  7
43CQ          SBN   5  A1-3                [3 BECAUSE EXTRA WDS. FOR PERIPH.
43XB          TXL   5  ALOGLEN(3)          [INFORMATION,ETC.
44C2          BCS      OK1                 [J IF BLOCK LONG ENOUGH  
44WL          PHOTO    7
45B=          ALTLEN   3,5,ADATA,ADOC      [INCREASE LENGTH 
45TW          TESTMOVE 7,OK1               [J IF BLOCKS NOT MOVED   
46*G          MHUNTW   3,ADATA,ADOC        [RE-LOCATE   
46T6    OK1   MHUNT    2,CPB,CUNI          [RE-HUNT BECAUSE X2=FX2  
47#Q          SMO      FX2  
47SB          STO   3  AWORK1              [PRESERVE S.A. OF DOC. BL.   
48#2          LDX   7  A1+1(3)  
48RL          SRL   7  12   
49?=          ADX   3  7                   [X3 PTS. TO NEXT FREE POSN.  
49QW          STO   2  5                   [PRESERVE S.A. PARAM. BL.
4==G          STO   4  0(3)                [NO. OF CHS. INSERTED
4=Q6          ADN   3  1
4?9Q          ADN   2  APARA
4?PB          SMO      4                   [X4 NON-ZERO: CHECKED ABOVE  
4#92          MVCH  2  0                   [INSERT PAR. IN DOC. BL. 
4#NL          CALL  7  TMOR                [INSERT SPACES IN REDUNDANT CH. POSNS
4*8=          SMO      FX2  
4*MW          LDX   2  AWORK1              [GET S.A. DOC.   
4B7G          SBX   3  2                   [X3 GIVES PTR. TO NEXT FREE WD.  
4BM6          SLL   3  12   
4C6Q          LDN   0  #7777
4CLB          ANDS  0  A1+1(2)             [KEEP NO. OF PARS.   
4D62          ADS   3  A1+1(2)  
4DKL          FREECORE 5
4F5=          BCT   6  P1                  [J IF ANOTHER PARAM. 
4FJW    ONEP  LDX   2  FX2  
4G4G    #SKI  GENIE 
4GJ6    (   
4H3Q          LTYPE    ,5   
4HHB          SRC   5  9
4J32          DCA      ,LDX,0,MODE         [LD. MODE
4JGL          DLA   0  5
4K2=          LPROP    ,6                  [PROPERTY CODE   
4KFW          SRC   6  9
4K^G          LGEOG    ,0   
4LF6          ADX   6  0
4LYQ    )   
4MDB    #SKI  GENIE<1$1 
4MY2    (   
4NCL          LDX   5  CA1(2)              [LD. MODE
4NX=          LDX   6  CA5(2)              [PROPERTY CODE / GEOG'S UNITNO./GEO,N
4PBW    )   
4PWG          MHUNT    3,ADATA,ADOC 
4QB6          STO   3  AWORK1(2)           [PRESERVE S.A. DOC. BLOCK
4QTQ          LDX   4  A1+1(3)  
4R*B          SRL   4  12                  [X4 CONTAINS PTR. TO NEXT FREE WD.   
4RT2          ADX   3  4
4S#L          STO   5  0(3)                [1ST PERIPH. WD. 
4SS=          STO   6  1(3)                [2ND PERIPH. WD. 
4T?W    #SKI  GENIE 
4TRG          ANDN  6  #777                [MASK OUT GEO. NO. (9 BITS)  
4W?6    #SKI  GENIE<1$1 
4WQQ          ANDN  6  #77                 [MASK OUT GEO. NO. (6 BITS). 
4X=B          SBN   3  A1-2 
4XQ2          SBX   3  AWORK1(2)
4Y9L          SMO      AWORK1(2)
4YP=          STO   3  A1                  [NO. OF WDS. IN REC. HEADER  
4^8W    TENG  GETCOREN 16,1                [CORE FOR DOC. FILE NAME 
4^NG          FINDCORE 3
5286          NAME     3,FILE,FABSNB
52MQ          ADN   3  A1   
537B          LDN   2  XOPN(1)  
53M2          MOVE  2  16                  [INSERT FILE NAME IN BLOCK   
546L          LDX   2  FX2  
54L=          OPEN     OK,APPEND
555W          TESTREP  OPEN,OK2            [J IF FILE OPENED
55KG    OK    GEOERR   1,DOCFNOPN   
5656    OK2   MHUNT    3,ADATA,ADOC 
56JQ          NAME     3,FILE,FAPB  
574B          PHOTO    7
57J2          APPEND
583L          CLOSE 
58H=          TESTMOVE 7,OK3
592W          MHUNT    3,FILE,FAPB  
59GG    OK3   LDX   4  A1+1(3)  
5=26          TXU   4  WHDR(1)  
5=FQ          BCS      NOMT 
5=^B          LONGON   #61  
5?F2          BRN      ZFIN 
5?YL    NOMT  LDX   2  A1+2(3)             [LOAD NO. OF CHARS. IN DOC. NAME 
5#D=          ADN   2  7                   [3 FOR ROUNDING,4 FOR PERIPH. WD.
5#XW          SRL   2  2                   [CONVERT TO WDS. 
5*CG          STO   6  A1+2(3)             [STO GEOG. NO.   
5*X6          GSCAN    A1+2(3),DOCUMENT,0(2)
5BBQ    #SKI  GENIE 
5BWB          DOCON 
5CB2          LONGON   #60  
5CTL    ZFIN  ACROSS   LOGOUT,7 
5D*=    NEXTP FREECORE 2
5DSW          BCT   6  P1                  [J IF MORE PARAMS.   
5F#G          BRN      ONEP 
5FS6    NOER  GEOERR   1,PARANUMX          [PARANUM NO. NOT NO. OF PARS.
5G?Q    PERR  COMERR   ADOCER,JDOCN 
5GRB    NOPAR COMERR   JPARMIS,JDOCN
5H?2          MENDAREA 20,K99DOC
5HQL    #END
^^^^ ...24341513000100000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1