DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦47143a99e⟧ TextFile

    Length: 2528 (0x9e0)
    Types: TextFile
    Notes: Mikados_K
    Names: »EXCOMCO1.K«

Derivation

└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
    └─⟦this⟧ »EXCOMCO1.K« 
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
    └─⟦this⟧ »EXCOMCO1.K« 

Mikados K File

(*$P*)
PROCEDURE EXTRACT(RECPOS,RESPOS:ZONEADR); 
(*UDTRÆK NØGLE AF POST I ZONEN, OG GEM I ZONEN*)
VAR I,
    J,KP :INTEGER;
BEGIN
  WITH FILEHEAD DO
  FOR I:=1 TO KEYFLDS DO          
  BEGIN                           
    KP:=KEYPOS(I)+RECPOS-2;       
    FOR J:=1 TO KEYLNG(I) DO      
    BEGIN                         
      Z(RESPOS):=Z(KP+J);         
      IF ABS(KEYSGN(I))=2 THEN
        Z(RESPOS):=(Z(RESPOS) MOD 256)*256+Z(RESPOS) DIV 256;
      RESPOS:=RESPOS+1            
    END                           
  END                             
END;
 
PROCEDURE REXTRACT(RESPOS:ZONEADR); 
(*UDTRÆK NØGLE AF POST , OG GEM I ZONEN*)
VAR I,
    J,KP :INTEGER;
BEGIN
  WITH FILEHEAD DO
  FOR I:=1 TO KEYFLDS DO            
  BEGIN                             
    KP:=KEYPOS(I)-1;                
    FOR J:=1 TO KEYLNG(I) DO        
    BEGIN                           
      Z(RESPOS):=REC^(KP+J);        
      IF ABS(KEYSGN(I))=2 THEN
        Z(RESPOS):=(Z(RESPOS) MOD 256)*256 + Z(RESPOS) DIV 256;
      RESPOS:=RESPOS+1              
    END                             
  END                               
END;
 
FUNCTION COMPARE(KEY1POS,KEY2POS:ZONEADR):INTEGER;
(*SAMMENLIGNER TO NØGLER I ZONEN*)
VAR I,
    J,KP:INTEGER;
BEGIN
  KP:=0;
  COMPARE:=0;
  WITH FILEHEAD DO
  FOR I:=1 TO KEYFLDS DO                           
  BEGIN                                            
    FOR J:=KP TO KP+KEYLNG(I)-1 DO                 
    IF Z(KEY1POS+J)<>Z(KEY2POS+J) THEN             
    BEGIN                                          
      IF Z(KEY1POS+J)>Z(KEY2POS+J) THEN            
        COMPARE:=KEYSGN(I) ELSE                
        COMPARE:=-KEYSGN(I);                   
      EXIT(COMPARE)                                
    END;                                           
    KP:=KP+KEYLNG(I)                               
  END                                              
END;

Full view