Changeset 81be6a759539aac15f78155a22b2c7e42cb70e12
Commiter: Charles Childers
Author: Charles Childers
Parent: 49a8127e04
(2010/03/12 20:49) Almost 2 years ago
update gonga (yiyus)
Commiter: Charles Childers
Author: Charles Childers
Parent: 49a8127e04
(2010/03/12 20:49) Almost 2 years ago
update gonga (yiyus)
type Input struct {var ClearScreen func() = func() {}func IncludeFile(filename string) io.Reader {if err != nil {func LoadDump(filename string, img []int, start int) int {if err != nil {for i, _ = range img[start:] {if err := B.Read(br, B.LittleEndian, &ui); err != nil {func (vm *NgaroVM) WriteDump(filename string) {if err != nil {for _, i := range vm.img {if err = B.Write(w, B.LittleEndian, uint32(i)); err != nil {func (vm *NgaroVM) Channel(id int) chan int {if c, ok := vm.channel[id]; ok {func readA(data []int, a int) string {for w = a; w < len(data) && data[w] != 0; w++ {func (vm *NgaroVM) wait(port *[nports]int, tos int, ip int) (spdec int) {switch {if _, err := vm.Input.Read(c[0:]); err != nil {if err == os.EOF {} else {if port[2] == port[1] {} else {if tos < 0 {} else if _, err := vm.Output.Write(c[0:]); err != nil {switch port[4] {if f := IncludeFile(readA(vm.img, tos)); f != nil {vm.Input = &Input{f, vm.Input}switch port[5] {var size = flag.Int("s", 50000, "image size")var dump = flag.String("d", "retro.img", "image dump file")var retroImage = [...]int{}func main() {ngaro.ClearScreen = func() { fmt.Printf("\033[2J\033[1;1H") }if flag.NArg() == 0 {for i, n := 0, 0; i < flag.NArg(); i++ {if flag.Arg(i) == "-" {} else {input := &ngaro.Input{os.Stdin, nil}type NgaroVM struct {func (vm *NgaroVM) core(ip int) {for ; ip < len(vm.img); ip++ {switch vm.img[ip] {if data[sp-1] > tos {if data[sp-1] < tos {if data[sp-1] != tos {if data[sp-1] == tos {if tos == 0 {if sp < 2 {func NewVM(img []int, dump string, in *Input, out Output) *NgaroVM {vm := NgaroVM{