Exemple #1
0
 public void Visit(Print ps)
 {
     sw.WriteLine("\tnop ;print statement");
     //sw.WriteLine("\tmov ax,StringTable");
     //sw.WriteLine("\tpush ax");
     sw.WriteLine("\tmov ah,0");
     sw.WriteLine("\tmov al," + game.GetStringId(ps.text) + " ; " + ps.text.Substring(0, Math.Min(ps.text.Length, 10)));
     sw.WriteLine("\tpush ax");
     sw.WriteLine("\tcall print_string");
     sw.WriteLine("\tadd sp,2  ; pop 2 params");
 }
Exemple #2
0
        public void Visit(Print ps)
        {
            /*calling assembly routine*/

            //cmoc
            sw.WriteLine("\t;print statement");
            sw.WriteLine("\tlda #" + game.GetStringId(ps.text) + " ; /*" + ps.text + "*/");
            sw.WriteLine("\tpshs a");
            sw.WriteLine("\tlda #0");
            sw.WriteLine("\tpshs a");
            sw.WriteLine("\tjsr print_string");
            sw.WriteLine("\tleas 2,s ; pop params");
        }
        public void Visit(Print ps)
        {
            try
            {
                //arg has been left on stack
                sw.WriteLine("\t;call print");
                sw.WriteLine("\t;building a print statement");

                sw.WriteLine("\tlda #<string_table");
                sw.WriteLine("\tsta tableAddr");
                sw.WriteLine("\tlda #>string_table");
                sw.WriteLine("\tsta tableAddr+1");
                sw.WriteLine("\tlda #" + game.GetStringId(ps.text) + " ; " + "\"" + ps.text + "\"");
                sw.WriteLine("\tjsr printix");
            }
            catch (Exception ex)
            {
                throw new Exception("Visit(Print(" + ps.text + ")) failed", ex);
            }
        }
 public void Visit(Print ps)
 {
     sw.WriteLine(Tabs() + "print_string(" + game.GetStringId(ps.text) + "); /*" + ps.text + "*/");
 }
Exemple #5
0
 public void Visit(Print ps)
 {
     sw.WriteLine("\tld b," + game.GetStringId(ps.text) + " ; sub wants arg in b");
     sw.WriteLine("\tld ix,string_table");
     sw.WriteLine("\tcall print_table_entry");
 }