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