|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 13312 (0x3400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Lecteur, seg_041e05
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Io; with System; with Terminal_Specific; with Text_Io; with Device_Independent_Io; with Unchecked_Conversions; with Constantes; package body Lecteur is package Dio renames Device_Independent_Io; package Ts renames Terminal_Specific; package Tio renames Text_Io; subtype Bs is System.Byte_String; F_In : Ts.File_Type; F_Out : Ts.File_Type; procedure Convert (Numero_Carte : Natural; No_Carte_1 : out System.Byte; No_Carte_2 : out System.Byte) is No_2 : Natural; No_1 : Natural; begin No_1 := Numero_Carte / 100; No_2 := Numero_Carte mod 100; No_Carte_1 := System.Byte'Val (No_1); No_Carte_2 := System.Byte'Val (No_2); end Convert; procedure Convert_3 (Code_S : Natural; Code_1 : out System.Byte; Code_2 : out System.Byte; Code_3 : out System.Byte) is No_3 : Natural; No_2 : Natural; No_1 : Natural; begin No_1 := Code_S / 100; No_2 := No_1 / 100; Code_1 := System.Byte'Val (No_2); No_3 := No_1 mod 100; Code_2 := System.Byte'Val (No_3); No_1 := Code_S mod 100; Code_3 := System.Byte'Val (No_3); end Convert_3; procedure Ouvre_Fichier_Out is begin Dio.Open (File => F_Out, Mode => Dio.Out_File, Name => "!machine.devices.terminal_16", Form => ""); delay 0.5; end Ouvre_Fichier_Out; procedure Ferme_Fichier_Out is begin Dio.Close (File => F_Out); delay 0.5; end Ferme_Fichier_Out; procedure Ouvre_Fichier_In is begin Dio.Open (File => F_In, Mode => Dio.In_File, Name => "!machine.devices.terminal_16", Form => ""); delay 0.5; end Ouvre_Fichier_In; procedure Ferme_Fichier_In is begin Dio.Close (File => F_In); delay 0.5; end Ferme_Fichier_In; procedure Code_Sit (Code_S : Natural; Numero_Lecteur : System.Byte) is Cod_Site : Bs (1 .. 10); Code_1, Code_2, Code_3 : System.Byte; begin Convert_3 (Code_S, Code_1, Code_2, Code_3); Cod_Site := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#27#, Code_1, Code_2, Code_3, 16#F1#, 16#F2#); Ouvre_Fichier_Out; Dio.Write (File => F_Out, Item => Cod_Site); delay 0.5; Ferme_Fichier_Out; end Code_Sit; -- procedure Code_Sit (Code_S : Natural; Numero_Lecteur : System.Byte) is -- Cod_Site : Bs (1 .. 10); -- No_3 : Natural; -- No_2 : Natural; -- No_1 : Natural; -- Code_1, Code_2, Code_3 : System.Byte; -- begin -- No_1 := Code_S / 100; -- No_2 := No_1 / 100; -- Code_1 := System.Byte'Val (No_2); -- No_3 := No_1 mod 100; -- Code_2 := System.Byte'Val (No_3); -- No_1 := Code_S mod 100; -- Code_3 := System.Byte'Val (No_3); -- Cod_Site := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#27#, -- Code_1, Code_2, Code_3, 16#F1#, 16#F2#); -- -- Ouvre_Fichier_Out; -- -- Dio.Write (File => F_Out, Item => Cod_Site); -- delay 0.5; -- -- Ferme_Fichier_Out; -- end Code_Sit; procedure Beep (Numero_Lecteur : System.Byte) is Beep : Bs (1 .. 7); begin Beep := (16#01#, Numero_Lecteur, 16#00#, 16#01#, 16#2C#, 16#F1#, 16#F2#); Ouvre_Fichier_Out; Dio.Write (File => F_Out, Item => Beep); delay 1.0; Ferme_Fichier_Out; end Beep; procedure Valide_Carte (Numero_Lecteur : System.Byte; Numero_Carte : Natural; Numero_Plage : System.Byte; Code_Site : Natural) is Valid_Carte : Bs (1 .. 10); Cod_Site : Bs (1 .. 10); No_Carte_1 : System.Byte; No_Carte_2 : System.Byte; No_3 : Natural; No_2 : Natural; No_1 : Natural; Code_1, Code_2, Code_3 : System.Byte; begin No_1 := Numero_Carte / 100; No_2 := Numero_Carte mod 100; No_Carte_1 := System.Byte'Val (No_1); No_Carte_2 := System.Byte'Val (No_2); Valid_Carte := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#10#, No_Carte_1, No_Carte_2, Numero_Plage, 16#F1#, 16#F2#); No_1 := Code_Site / 100; No_2 := No_1 / 100; Code_1 := System.Byte'Val (No_2); No_3 := No_1 mod 100; Code_2 := System.Byte'Val (No_3); No_1 := Code_Site mod 100; Code_3 := System.Byte'Val (No_3); Cod_Site := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#27#, Code_1, Code_2, Code_3, 16#F1#, 16#F2#); Ouvre_Fichier_Out; Dio.Write (File => F_Out, Item => Cod_Site); delay 0.5; Dio.Write (File => F_Out, Item => Valid_Carte); delay 0.5; Ferme_Fichier_Out; end Valide_Carte; procedure Valide_Groupe_Carte (Numero_Lecteur : System.Byte; No_Premiere_Carte : Natural; No_Derniere_Carte : Natural; Numero_Plage : System.Byte; Code_Site : Natural) is Valid_Groupe_Carte : Bs (1 .. 12); No_Carte_P_1 : System.Byte; No_Carte_P_2 : System.Byte; No_P_1 : Natural; No_P_2 : Natural; No_Carte_D_1 : System.Byte; No_Carte_D_2 : System.Byte; No_D_1 : Natural; No_D_2 : Natural; begin No_P_1 := No_Premiere_Carte / 100; No_P_2 := No_Premiere_Carte mod 100; No_D_1 := No_Derniere_Carte / 100; No_D_2 := No_Derniere_Carte mod 100; No_Carte_P_1 := System.Byte'Val (No_P_1); No_Carte_P_2 := System.Byte'Val (No_P_2); No_Carte_D_1 := System.Byte'Val (No_D_1); No_Carte_D_2 := System.Byte'Val (No_D_2); Code_Sit (Code_Site, Numero_Lecteur); Valid_Groupe_Carte := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#11#, No_Carte_P_1, No_Carte_P_2, No_Carte_D_1, No_Carte_D_2, Numero_Plage, 16#F1#, 16#F2#); Ouvre_Fichier_Out; Dio.Write (File => F_Out, Item => Valid_Groupe_Carte); delay 1.0; Ferme_Fichier_Out; end Valide_Groupe_Carte; procedure Invalide_Carte (Numero_Lecteur : System.Byte; Numero_Carte : Natural; Numero_Plage : System.Byte; Code_Site : Natural) is Invalid_Carte : Bs (1 .. 10); Cod_Site : Bs (1 .. 10); No_Carte_1 : System.Byte; No_Carte_2 : System.Byte; No_3 : Natural; No_2 : Natural; No_1 : Natural; Code_1, Code_2, Code_3 : System.Byte; begin No_1 := Numero_Carte / 100; No_2 := Numero_Carte mod 100; No_Carte_1 := System.Byte'Val (No_1); No_Carte_2 := System.Byte'Val (No_2); Invalid_Carte := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#12#, No_Carte_1, No_Carte_2, Numero_Plage, 16#F1#, 16#F2#); No_1 := Code_Site / 100; No_2 := No_1 / 100; Code_1 := System.Byte'Val (No_2); No_3 := No_1 mod 100; Code_2 := System.Byte'Val (No_3); No_1 := Code_Site mod 100; Code_3 := System.Byte'Val (No_3); Cod_Site := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#27#, Code_1, Code_2, Code_3, 16#F1#, 16#F2#); Ouvre_Fichier_Out; Dio.Write (File => F_Out, Item => Cod_Site); delay 0.5; Dio.Write (File => F_Out, Item => Invalid_Carte); delay 0.5; Ferme_Fichier_Out; end Invalide_Carte; procedure Invalide_Groupe_Carte (Numero_Lecteur : System.Byte; No_Premiere_Carte : Natural; No_Derniere_Carte : Natural; Numero_Plage : System.Byte; Code_Site : Natural) is Invalid_Groupe_Carte : Bs (1 .. 12); No_Carte_P_1 : System.Byte; No_Carte_P_2 : System.Byte; No_P_1 : Natural; No_P_2 : Natural; No_Carte_D_1 : System.Byte; No_Carte_D_2 : System.Byte; No_D_1 : Natural; No_D_2 : Natural; begin No_P_1 := No_Premiere_Carte / 100; No_P_2 := No_Premiere_Carte mod 100; No_D_1 := No_Derniere_Carte / 100; No_D_2 := No_Derniere_Carte mod 100; No_Carte_P_1 := System.Byte'Val (No_P_1); No_Carte_P_2 := System.Byte'Val (No_P_2); No_Carte_D_1 := System.Byte'Val (No_D_1); No_Carte_D_2 := System.Byte'Val (No_D_2); Invalid_Groupe_Carte := (16#01#, Numero_Lecteur, 16#00#, 16#04#, 16#13#, No_Carte_P_1, No_Carte_P_2, No_Carte_D_1, No_Carte_D_2, Numero_Plage, 16#F1#, 16#F2#); Ouvre_Fichier_Out; Dio.Write (File => F_Out, Item => Invalid_Groupe_Carte); delay 1.0; Ferme_Fichier_Out; end Invalide_Groupe_Carte; end Lecteur;
nblk1=c nid=c hdr6=16 [0x00] rec0=25 rec1=00 rec2=01 rec3=02a [0x01] rec0=25 rec1=00 rec2=04 rec3=00a [0x02] rec0=20 rec1=00 rec2=08 rec3=018 [0x03] rec0=20 rec1=00 rec2=09 rec3=034 [0x04] rec0=03 rec1=00 rec2=0a rec3=000 [0x05] rec0=1a rec1=00 rec2=06 rec3=040 [0x06] rec0=1c rec1=00 rec2=0b rec3=03c [0x07] rec0=21 rec1=00 rec2=02 rec3=02a [0x08] rec0=19 rec1=00 rec2=05 rec3=04e [0x09] rec0=1c rec1=00 rec2=07 rec3=02e [0x0a] rec0=1e rec1=00 rec2=03 rec3=000 [0x0b] rec0=1e rec1=00 rec2=03 rec3=000 tail 0x21742a44686286730964e 0x42a00088462060003 Free Block Chain: 0xc: 0000 00 00 00 09 80 06 20 20 20 20 4e 6f 06 00 00 00 ┆ No ┆