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; }