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"); }
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 + "*/"); }
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"); }