Exemple #1
0
 public Lister(TapeReader tp, string o)
 {
     tr       = tp;
     dr       = null;
     deck     = new List <Card>();
     hadnoorg = true;
     out_p    = o;
     FirstAdr = 1000000;
     LastAdr  = -1000000;
 }
Exemple #2
0
        public void Putval(int adr, long value)
        {
            if (dr == null)
            {
                deck = new List <Card>();
                dr   = new DeckReader(tr, deck);
                if (hadnoorg)
                {
                    startline = thisline;
                    startpage = thispage;
                }
            }
            if (bssflag)
            {
                curadr = adr;
            }
            if (adr != curadr)
            {
                throw new InvalidDataException(string.Format("{0} {1} wrongadr", thispage, thisline));
            }
            if (dr.Read(out int dadr, out long dvalue))
            {
                if ((adr != dadr || value != dvalue) && (dr.Cardtype() != 'F'))
                {
                    Console.WriteLine("Difference {0} {1}", thispage, thisline);
                    Console.WriteLine("Card {0} {1}", Convert.ToString(dadr, 8).PadLeft(5, '0'), Convert.ToString(dvalue, 8).PadLeft(12, '0'));
                    Console.WriteLine("List {0} {1}", Convert.ToString(adr, 8).PadLeft(5, '0'), Convert.ToString(value, 8).PadLeft(12, '0'));
                    Environment.Exit(-1);
                }
            }
            else
            {
                Console.WriteLine("Difference {0} {1}", thispage, thisline);
                Console.WriteLine("Card Transfer {0}", Convert.ToString(dadr, 8).PadLeft(5, '0'));
                Console.WriteLine("List {0} {1}", Convert.ToString(adr, 8).PadLeft(5, '0'), Convert.ToString(value, 8).PadLeft(12, '0'));
                Environment.Exit(-1);
            }

            if (adr < FirstAdr)
            {
                FirstAdr = adr;
            }
            if (adr > LastAdr)
            {
                LastAdr = adr;
            }

            curadr++;
        }
Exemple #3
0
        public void END(int?TransferAdr)
        {
            char tch = ' ';

            if (TransferAdr != null && dr == null)
            {
                deck = new List <Card>();
                dr   = new DeckReader(tr, deck);
                if (hadnoorg)
                {
                    startline = thisline;
                    startpage = thispage;
                }
            }
            if (dr != null)
            {
                if (dr.Cardtype() == 'R')
                {
                    TransferAdr = 0;
                }
                if ((TransferAdr != null && (!hadnoorg || TransferAdr != 0)))
                {
                    if (dr.Read(out int adr, out long value))
                    {
                        Console.WriteLine("Difference {0} {1}", thispage, thisline);
                        Console.WriteLine("Card {0} {1}", Convert.ToString(adr, 8).PadLeft(5, '0'), Convert.ToString(value, 8).PadLeft(12, '0'));
                        Console.WriteLine("List Transfer {0}", Convert.ToString((int)TransferAdr, 8).PadLeft(5, '0'));
                        Environment.Exit(-1);
                    }
                    else if (adr != TransferAdr)
                    {
                        Console.WriteLine("Difference {0} {1}", thispage, thisline);
                        Console.WriteLine("Card Transfer {0}", Convert.ToString(adr, 8).PadLeft(5, '0'));
                        Console.WriteLine("List Transfer {0}", Convert.ToString((int)TransferAdr, 8).PadLeft(5, '0'));
                        Environment.Exit(-1);
                    }
                    if (dr.Cardtype() != 'T')
                    {
                        tch = 'T';
                    }
                }
                if (!dr.CardEmpty())
                {
                    Console.WriteLine("Difference {0} {1}", thispage, thisline);
                    Console.WriteLine("more data on card");
                    Environment.Exit(-1);
                }
                string x = "";
                if (startpage != 0)
                {
                    x += string.Format("Page{0}", startpage);
                }
                x += string.Format("Line{0}", startline);
                x += "_";
                x += dr.Cardtype();
                if (tch != ' ')
                {
                    x += tch;
                }
                Console.Write("{0}:{1} {2} {3} {4}\n", x, deck.Count, Convert.ToString(FirstAdr, 8).PadLeft(5, '0'), Convert.ToString(LastAdr, 8).PadLeft(5, '0'), TransferAdr != null ? Convert.ToString((int)TransferAdr, 8).PadLeft(5, '0') : "");
                using (TapeWriter tw = new TapeWriter(out_p + x + ".cbn", true))
                    foreach (Card crd in deck)
                    {
                        tw.WriteRecord(true, CBNConverter.ToCBN(crd));
                    }
                deck.Clear();
                dr = null;
            }
            curadr   = 0;
            bssflag  = false;
            hadnoorg = true;

            FirstAdr = 1000000;
            LastAdr  = -1000000;
        }