From a9d85f7d603b92f4ac9b4d6e0aa329f7bd670250 Mon Sep 17 00:00:00 2001 From: MallocNull Date: Tue, 27 Jan 2015 14:11:57 -0600 Subject: [PATCH] debugging word owah --- js/Byte.js | 49 ++++++++++++++++++++++++++++++++++----------- js/Byte.js.map | 2 +- js/Byte.ts | 17 ++++++++++------ js/LCD.js | 29 +++++++++++++++++++++------ js/LCD.js.map | 2 +- js/Memory.js | 8 ++++++-- js/Memory.js.map | 2 +- js/Registers.js | 11 +++++++++- js/Registers.js.map | 2 +- js/TI.js | 12 ++++++++--- js/TI.js.map | 2 +- js/TI.ts | 8 ++++++-- js/ops/0x0.js | 26 ++++++++++++++++++++++-- js/ops/0x0.js.map | 2 +- js/ops/0x0.ts | 13 +++++++++++- js/ops/0x1.js | 6 ++++++ js/ops/0x1.js.map | 1 + js/ops/0x1.ts | 5 +++++ 18 files changed, 156 insertions(+), 41 deletions(-) create mode 100644 js/ops/0x1.js create mode 100644 js/ops/0x1.js.map create mode 100644 js/ops/0x1.ts diff --git a/js/Byte.js b/js/Byte.js index cecb09d..d0ddec6 100644 --- a/js/Byte.js +++ b/js/Byte.js @@ -1,6 +1,6 @@ var Byte = (function () { function Byte(init) { - if (init === void 0) { init = 0; } + if (typeof init === "undefined") { init = 0; } this.value = init & 0xFF | (init < 0 ? 0x80 : 0); } Byte.prototype.Add = function (val) { @@ -9,56 +9,68 @@ var Byte = (function () { this.value = hold & 0xFF; return new Byte(hold > 255 ? hold - 255 : 0); }; + Byte.prototype.Sub = function (val) { val = typeof val == "number" ? new Byte(val) : val; return this.Add(val.Neg()); }; + Byte.prototype.Get = function () { return this.value; }; + Byte.prototype.Set = function (val) { this.value = typeof val == "number" ? val & 0xFF : val.Get(); }; + Byte.prototype.Neg = function (bind) { - if (bind === void 0) { bind = false; } + if (typeof bind === "undefined") { bind = false; } var tmp = new Byte(~this.value + 1); this.value = bind ? tmp.Get() : this.value; return tmp; }; + Byte.prototype.And = function (val) { val = typeof val == "number" ? new Byte(val) : val; this.value = this.value & val.Get(); }; + Byte.prototype.Or = function (val) { val = typeof val == "number" ? new Byte(val) : val; this.value = this.value | val.Get(); }; + Byte.prototype.Xor = function (val) { val = typeof val == "number" ? new Byte(val) : val; this.value = this.value ^ val.Get(); }; + Byte.prototype.Not = function () { this.value = ~this.value; }; + Byte.prototype.Bit = function (pos, val) { pos = pos % 8; this.Set(val ? (this.value | Math.pow(2, pos)) : (this.value & ~Math.pow(2, pos))); }; + Byte.prototype.Test = function (pos) { pos = pos % 8; return (this.value & Math.pow(2, pos)) != 0; }; + Byte.prototype.ShiftLeft = function (carry, value) { - if (carry === void 0) { carry = false; } - if (value === void 0) { value = false; } + if (typeof carry === "undefined") { carry = false; } + if (typeof value === "undefined") { value = false; } var ret = (this.value & 0x80) != 0; this.Set(this.value << 1); this.Bit(0, carry ? ret : value); return ret; }; + Byte.prototype.ShiftRight = function (carry, value) { - if (carry === void 0) { carry = false; } - if (value === void 0) { value = false; } + if (typeof carry === "undefined") { carry = false; } + if (typeof value === "undefined") { value = false; } var ret = (this.value & 0x80) != 0; this.Set(this.value >>> 1); this.Bit(7, carry ? ret : value); @@ -66,35 +78,48 @@ var Byte = (function () { }; return Byte; })(); + var Word = (function () { function Word(high, low) { this.Set(high, low); } + Word.prototype.Get = function () { + return (this.value[0].Get() << 8) | this.value[1].Get(); + }; + Word.prototype.High = function () { return this.value[0]; }; + Word.prototype.Low = function () { return this.value[1]; }; + Word.prototype.Set = function (high, low) { this.value = typeof high == "number" ? [new Byte((high & ~0xFF) >> 8), new Byte(high & 0xFF)] : [high, low]; }; + Word.prototype.SetHigh = function (value) { this.value[0] = typeof value == "number" ? new Byte(value) : value; }; + Word.prototype.SetLow = function (value) { this.value[1] = typeof value == "number" ? new Byte(value) : value; }; + Word.prototype.Add = function (value) { value = typeof value == "number" ? new Word(value) : value; - var overflow = [this.value[0].Add(value.High()), this.value[1].Add(value.Low())]; + var hold = this.Get() + value.Get(); + this.Set(hold); + return new Word(hold > 0xFFFF ? hold - 0xFFFF : 0); + //var overflow = [this.value[0].Add(value.High()), this.value[1].Add(value.Low())]; + //return new Word(overflow[0].Get() + this.value[0].Add(overflow[1]).Get()); }; + Word.prototype.AddByte = function (value) { - value = typeof value == "number" ? new Byte(value) : value; - var over = this.value[1].Add(value); - over = this.value[0].Add(over); - return new Word(over.Get()); + value = typeof value != "number" ? value.Get() : value; + return this.Add(value); }; return Word; })(); -//# sourceMappingURL=Byte.js.map \ No newline at end of file +//# sourceMappingURL=Byte.js.map diff --git a/js/Byte.js.map b/js/Byte.js.map index c57cbb3..f9a9009 100644 --- a/js/Byte.js.map +++ b/js/Byte.js.map @@ -1 +1 @@ -{"version":3,"file":"Byte.js","sourceRoot":"","sources":["Byte.ts"],"names":["Byte","Byte.constructor","Byte.Add","Byte.Sub","Byte.Get","Byte.Set","Byte.Neg","Byte.And","Byte.Or","Byte.Xor","Byte.Not","Byte.Bit","Byte.Test","Byte.ShiftLeft","Byte.ShiftRight","Word","Word.constructor","Word.High","Word.Low","Word.Set","Word.SetHigh","Word.SetLow","Word.Add","Word.AddByte"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Byte.js","sourceRoot":"","sources":["Byte.ts"],"names":["Byte","Byte.constructor","Byte.Add","Byte.Sub","Byte.Get","Byte.Set","Byte.Neg","Byte.And","Byte.Or","Byte.Xor","Byte.Not","Byte.Bit","Byte.Test","Byte.ShiftLeft","Byte.ShiftRight","Word","Word.constructor","Word.Get","Word.High","Word.Low","Word.Set","Word.SetHigh","Word.SetLow","Word.Add","Word.AddByte"],"mappings":"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"} \ No newline at end of file diff --git a/js/Byte.ts b/js/Byte.ts index b508f3c..3deb368 100644 --- a/js/Byte.ts +++ b/js/Byte.ts @@ -96,6 +96,10 @@ class Word { this.Set(high, low); } + public Get(): number { + return (this.value[0].Get() << 8) | this.value[1].Get(); + } + public High(): Byte { return this.value[0]; } @@ -126,16 +130,17 @@ class Word { public Add(value: Word): Word; public Add(value: any): Word { value = typeof value == "number" ? new Word(value) : value; - var overflow = [this.value[0].Add(value.High()), this.value[1].Add(value.Low())]; - + var hold = this.Get() + value.Get(); + this.Set(hold); + return new Word(hold > 0xFFFF ? hold - 0xFFFF : 0); + //var overflow = [this.value[0].Add(value.High()), this.value[1].Add(value.Low())]; + //return new Word(overflow[0].Get() + this.value[0].Add(overflow[1]).Get()); } public AddByte(value: number): Word; public AddByte(value: Byte): Word; public AddByte(value: any): Word { - value = typeof value == "number" ? new Byte(value) : value; - var over = this.value[1].Add(value); - over = this.value[0].Add(over); - return new Word(over.Get()); + value = typeof value != "number" ? value.Get() : value; + return this.Add(value); } } \ No newline at end of file diff --git a/js/LCD.js b/js/LCD.js index c1a6871..f0f1f90 100644 --- a/js/LCD.js +++ b/js/LCD.js @@ -6,6 +6,7 @@ var Direction; Direction[Direction["DOWN"] = 2] = "DOWN"; Direction[Direction["LEFT"] = 3] = "LEFT"; })(Direction || (Direction = {})); + var LCD = (function () { function LCD() { } @@ -19,25 +20,31 @@ var LCD = (function () { if (x == 95) cell.style.borderRight = "4px solid white"; } + LCD.vram[y] = []; for (var x = 0; x < 15; x++) LCD.vram[y][x] = new Byte(0); } }; + LCD.GetCell = function (x, y) { return LCD.screen.rows[y % 64].cells[x % 120]; }; + LCD.SetCellX = function (cell, x) { cell.style.backgroundPosition = -x + "px " + cell.style.backgroundPosition.split(" ")[1]; }; + LCD.SetCellY = function (cell, y) { cell.style.backgroundPosition = cell.style.backgroundPosition.split(" ")[0] + " " + -y + "px"; }; + LCD.SetPixel = function (x, y, value) { - if (value === void 0) { value = true; } + if (typeof value === "undefined") { value = true; } if (LCD.enabled) LCD.SetCellY(LCD.GetCell(x, y), value ? 2 : 0); }; + LCD.IncrementCursor = function () { switch (LCD.inc) { case 0 /* UP */: @@ -54,6 +61,7 @@ var LCD = (function () { break; } }; + LCD.SetContrast = function (value) { LCD.contrast = Math.floor((value % 64) * (23 / 64)); for (var y = 0; y < 64; y++) { @@ -61,15 +69,19 @@ var LCD = (function () { LCD.SetCellX(LCD.GetCell(x, y), LCD.contrast * 2); } }; + LCD.Disable = function () { LCD.enabled = false; + for (var y = 0; y < 64; y++) { for (var x = 0; x < 120; x++) LCD.SetCellY(LCD.GetCell(x, y), 4); } }; + LCD.Enable = function () { LCD.enabled = true; + for (var y = 0; y < 64; y++) { for (var x = 0; x < 15; x++) { for (var bit = 0; bit < 8; bit++) @@ -77,6 +89,7 @@ var LCD = (function () { } } }; + LCD.Read = function () { var value = new Byte(0); if ((LCD.mode && LCD.cursor[1] < 15) || (!LCD.mode && LCD.cursor[1] < 20)) { @@ -91,14 +104,14 @@ var LCD = (function () { LCD.IncrementCursor(); return value; }; + LCD.Write = function (value) { if ((LCD.mode && LCD.cursor[1] < 15) || (!LCD.mode && LCD.cursor[1] < 20)) { if (LCD.mode) { LCD.vram[LCD.cursor[0]][LCD.cursor[1]] = value; for (var bit = 0; bit < 8; bit++) LCD.SetPixel(8 * LCD.cursor[1] + bit, LCD.cursor[0], value.Test(7 - bit)); - } - else { + } else { for (var bit = 0; bit < 6; bit++) { LCD.SetPixel(6 * LCD.cursor[1] + bit, LCD.cursor[0], value.Test(5 - bit)); LCD.vram[LCD.cursor[0]][Math.floor((6 * LCD.cursor[1] + bit) / 8)].Bit(7 - ((6 * LCD.cursor[1] + bit) % 8), value.Test(5 - bit)); @@ -107,24 +120,28 @@ var LCD = (function () { } LCD.IncrementCursor(); }; + LCD.SetRow = function (row) { LCD.cursor[0] = row % 64; }; + LCD.SetColumn = function (col) { LCD.cursor[1] = col % 32; }; + LCD.SetMode = function (mode) { LCD.mode = mode; }; + LCD.SetDirection = function (dir) { LCD.inc = dir; }; LCD.contrast = 12; LCD.vram = []; - LCD.cursor = [0, 0]; // row ; column - LCD.mode = true; // false: 6 bit ; true: 8 bit + LCD.cursor = [0, 0]; + LCD.mode = true; LCD.inc = 2 /* DOWN */; LCD.enabled = true; return LCD; })(); -//# sourceMappingURL=LCD.js.map \ No newline at end of file +//# sourceMappingURL=LCD.js.map diff --git a/js/LCD.js.map b/js/LCD.js.map index 985bd1a..1287702 100644 --- a/js/LCD.js.map +++ b/js/LCD.js.map @@ -1 +1 @@ -{"version":3,"file":"LCD.js","sourceRoot":"","sources":["LCD.ts"],"names":["Direction","LCD","LCD.constructor","LCD.Init","LCD.GetCell","LCD.SetCellX","LCD.SetCellY","LCD.SetPixel","LCD.IncrementCursor","LCD.SetContrast","LCD.Disable","LCD.Enable","LCD.Read","LCD.Write","LCD.SetRow","LCD.SetColumn","LCD.SetMode","LCD.SetDirection"],"mappings":"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MA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA,CAACA;YACvEA,EAAEA,CAACA,CAACA,GAAGA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACXA,GAAGA,CAACA,IAAIA,CAACA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,GAAGA,KAAKA,CAACA;gBAC/CA,GAAGA,CAACA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,CAACA,EAAEA,GAAGA,EAAEA;oBAC5BA,GAAGA,CAACA,QAAQA,CAACA,CAACA,GAAGA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,GAAGA,GAAGA,EAAEA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA;YAClFA,CAACA;YAACA,IAAIA,CAACA,CAACA;gBACJA,GAAGA,CAACA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,CAACA,EAAEA,GAAGA,EAAEA,EAAEA,CAACA;oBAC/BA,GAAGA,CAACA,QAAQA,CAACA,CAACA,GAAGA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,GAAGA,GAAGA,EAAEA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA;oBAC1EA,GAAGA,CAACA,IAAIA,CAACA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,GAAGA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,GAAGA,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,GAAGA,GAAGA,CAACA,GAAGA,CAACA,CAACA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA;gBACrIA,CAACA;YACLA,CAACA;QACLA,CAACA;QACDA,GAAGA,CAACA,eAAeA,EAAEA,CAACA;IAC1BA,CAACA;IAEaZ,UAAMA,GAApBA,UAAqBA,GAAWA;QAC5Ba,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,GAAGA,GAAGA,GAAGA,EAAEA,CAACA;IAC7BA,CAACA;IAEab,aAASA,GAAvBA,UAAwBA,GAAWA;QAC/Bc,GAAGA,CAACA,MAAMA,CAACA,CAACA,CAACA,GAAGA,GAAGA,GAAGA,EAAEA,CAACA;IAC7BA,CAACA;IAEad,WAAOA,GAArBA,UAAsBA,IAAaA;QAC/Be,GAAGA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;IACpBA,CAACA;IAEaf,gBAAYA,GAA1BA,UAA2BA,GAAcA;QACrCgB,GAAGA,CAACA,GAAGA,GAAGA,GAAGA,CAACA;IAClBA,CAACA;IAhIchB,YAAQA,GAAWA,EAAEA,CAACA;IACtBA,QAAIA,GAAaA,EAAEA,CAACA;IACpBA,UAAMA,GAAaA,CAACA,CAACA,EAACA,CAACA,CAACA,CAACA,CAACA,eAAeA;IACzCA,QAAIA,GAAYA,IAAIA,CAACA,CAACA,6BAA6BA;IACnDA,OAAGA,GAAcA,YAAcA,CAACA;IAChCA,WAAOA,GAAYA,IAAIA,CAACA;IA4H3CA,UAACA;AAADA,CAACA,AAnID,IAmIC"} \ No newline at end of file +{"version":3,"file":"LCD.js","sourceRoot":"","sources":["LCD.ts"],"names":["Direction","LCD","LCD.constructor","LCD.Init","LCD.GetCell","LCD.SetCellX","LCD.SetCellY","LCD.SetPixel","LCD.IncrementCursor","LCD.SetContrast","LCD.Disable","LCD.Enable","LCD.Read","LCD.Write","LCD.SetRow","LCD.SetColumn","LCD.SetMode","LCD.SetDirection"],"mappings":"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"} \ No newline at end of file diff --git a/js/Memory.js b/js/Memory.js index e845241..62774ae 100644 --- a/js/Memory.js +++ b/js/Memory.js @@ -1,11 +1,12 @@ /// var Bank = (function () { function Bank(fill) { - if (fill === void 0) { fill = 0; } + if (typeof fill === "undefined") { fill = 0; } this.data = []; } return Bank; })(); + var MemoryMap = (function () { function MemoryMap(type, index) { this.Set(type, index); @@ -16,17 +17,20 @@ var MemoryMap = (function () { }; return MemoryMap; })(); + var Memory = (function () { function Memory() { } Memory.Init = function () { }; + Memory.Get = function (location) { return new Byte(0); }; + Memory.Set = function (location, value) { }; Memory.romLock = true; return Memory; })(); -//# sourceMappingURL=Memory.js.map \ No newline at end of file +//# sourceMappingURL=Memory.js.map diff --git a/js/Memory.js.map b/js/Memory.js.map index c96a843..bcc4e2c 100644 --- a/js/Memory.js.map +++ b/js/Memory.js.map @@ -1 +1 @@ -{"version":3,"file":"Memory.js","sourceRoot":"","sources":["Memory.ts"],"names":["Bank","Bank.constructor","MemoryMap","MemoryMap.constructor","MemoryMap.Set","Memory","Memory.constructor","Memory.Init","Memory.Get","Memory.Set"],"mappings":"AAAA,gCAAgC;AAEhC,IAAM,IAAI;IAGNA,SAHEA,IAAIA,CAGaA,IAAgBA;QAAhBC,oBAAgBA,GAAhBA,QAAgBA;QAF5BA,SAAIA,GAAWA,EAAEA,CAACA;IAIzBA,CAACA;IACLD,WAACA;AAADA,CAACA,AAND,IAMC;AAED,IAAM,SAAS;IASXE,SATEA,SAASA,CASQA,IAAaA,EAAEA,KAAaA;QAC3CC,IAAIA,CAACA,GAAGA,CAACA,IAAIA,EAAEA,KAAKA,CAACA,CAACA;IAC1BA,CAACA;IAPMD,uBAAGA,GAAVA,UAAWA,IAAaA,EAAEA,KAAaA;QACnCE,IAAIA,CAACA,IAAIA,GAAGA,IAAIA,CAACA;QACjBA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA,CAACA;IACvBA,CAACA;IAKLF,gBAACA;AAADA,CAACA,AAZD,IAYC;AAED,IAAM,MAAM;IAAZG,SAAMA,MAAMA;IAgBZC,CAACA;IAXUD,WAAIA,GAAXA;IAEAE,CAACA;IAEMF,UAAGA,GAAVA,UAAWA,QAAcA;QACrBG,MAAMA,CAACA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;IACvBA,CAACA;IAEMH,UAAGA,GAAVA,UAAWA,QAAcA,EAAEA,KAAWA;IAEtCI,CAACA;IAZMJ,cAAOA,GAAYA,IAAIA,CAACA;IAanCA,aAACA;AAADA,CAACA,AAhBD,IAgBC"} \ No newline at end of file +{"version":3,"file":"Memory.js","sourceRoot":"","sources":["Memory.ts"],"names":["Bank","Bank.constructor","MemoryMap","MemoryMap.constructor","MemoryMap.Set","Memory","Memory.constructor","Memory.Init","Memory.Get","Memory.Set"],"mappings":"AAAA,gCAAgC;AAEhC;IAGIA,cAAmBA,IAAgBA;QAAhBC,mCAAAA,IAAIA,GAAWA,CAACA;AAAAA,QAFnCA,KAAOA,IAAIA,GAAWA,EAAEA,CAACA;IAIzBA,CAACA;IACLD,YAACA;AAADA,CAACA,IAAA;;AAED;IASIE,mBAAmBA,IAAaA,EAAEA,KAAaA;QAC3CC,IAAIA,CAACA,GAAGA,CAACA,IAAIA,EAAEA,KAAKA,CAACA;IACzBA,CAACA;IAPDD,0BAAAA,UAAWA,IAAaA,EAAEA,KAAaA;QACnCE,IAAIA,CAACA,IAAIA,GAAGA,IAAIA;QAChBA,IAAIA,CAACA,KAAKA,GAAGA,KAAKA;IACtBA,CAACA;IAKLF,iBAACA;AAADA,CAACA,IAAA;;AAED;IAAAG;IAgBAC,CAACA;AAAAD,IAXGA,cAAAA;IAEAE,CAACA;;IAEDF,aAAAA,UAAWA,QAAcA;QACrBG,OAAOA,IAAIA,IAAIA,CAACA,CAACA,CAACA;IACtBA,CAACA;;IAEDH,aAAAA,UAAWA,QAAcA,EAAEA,KAAWA;IAEtCI,CAACA;IAZDJ,iBAA0BA,IAAIA;IAalCA,cAACA;AAADA,CAACA,IAAA"} \ No newline at end of file diff --git a/js/Registers.js b/js/Registers.js index dcb2c4d..d77b383 100644 --- a/js/Registers.js +++ b/js/Registers.js @@ -10,6 +10,7 @@ var Flags; Flags[Flags["ZERO"] = 6] = "ZERO"; Flags[Flags["SIGN"] = 7] = "SIGN"; })(Flags || (Flags = {})); + var Registers = (function () { function Registers() { } @@ -18,30 +19,37 @@ var Registers = (function () { Registers.byteRegisters["IXL"] = new Byte(0); Registers.byteRegisters["IYH"] = new Byte(0); Registers.byteRegisters["IYL"] = new Byte(0); + var tmp = "ABCDEFHLIR"; for (var i; i < tmp.length; i++) Registers.byteRegisters[tmp[i]] = new Byte(0); + Registers.shadowRegisters["AF"] = new Word(0); Registers.shadowRegisters["BC"] = new Word(0); Registers.shadowRegisters["DE"] = new Word(0); Registers.shadowRegisters["HL"] = new Word(0); }; + Registers.GenerateWord = function (high, low) { return new Word(Registers.byteRegisters[high], Registers.byteRegisters[low]); }; + Registers.SetFlag = function (flag, value) { if (flag != 3 /* UNUSED1 */ && flag != 5 /* UNUSED2 */) Registers.byteRegisters["F"].Bit(flag, value); }; + Registers.GetFlag = function (flag) { return Registers.byteRegisters["F"].Test(flag); }; + Registers.ExchangeAFShadow = function () { var tmp = Registers.shadowRegisters["AF"]; Registers.shadowRegisters["AF"].Set(Registers.byteRegisters["A"], Registers.byteRegisters["F"]); Registers.byteRegisters["A"] = tmp.High(); Registers.byteRegisters["F"] = tmp.Low(); }; + Registers.ExchangeShadow = function () { var regs = ["BC", "DE", "HL"]; for (var reg in regs) { @@ -51,6 +59,7 @@ var Registers = (function () { Registers.byteRegisters[regs[reg][1]] = tmp.Low(); } }; + Registers.Exchange = function (a, b) { }; Registers.byteRegisters = []; @@ -59,4 +68,4 @@ var Registers = (function () { Registers.stackPointer = new Word(0); return Registers; })(); -//# sourceMappingURL=Registers.js.map \ No newline at end of file +//# sourceMappingURL=Registers.js.map diff --git a/js/Registers.js.map b/js/Registers.js.map index 0202d2d..b13b4ac 100644 --- a/js/Registers.js.map +++ b/js/Registers.js.map @@ -1 +1 @@ -{"version":3,"file":"Registers.js","sourceRoot":"","sources":["Registers.ts"],"names":["Flags","Registers","Registers.constructor","Registers.Init","Registers.GenerateWord","Registers.SetFlag","Registers.GetFlag","Registers.ExchangeAFShadow","Registers.ExchangeShadow","Registers.Exchange"],"mappings":"AAAA,gCAAgC;AAEhC,IAAK,KAAmE;AAAxE,WAAK,KAAK;IAAGA,mCAAKA;IAAEA,qCAAMA;IAAEA,qCAAMA;IAAEA,uCAAOA;IAAEA,iCAAIA;IAAEA,uCAAOA;IAAEA,iCAAIA;IAAEA,iCAAIA;AAACA,CAACA,EAAnE,KAAK,KAAL,KAAK,QAA8D;AAExE,IAAM,SAAS;IAAfC,SAAMA,SAASA;IAuDfC,CAACA;IAjDiBD,cAAIA,GAAlBA;QACIE,SAASA,CAACA,aAAaA,CAACA,KAAKA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAC7CA,SAASA,CAACA,aAAaA,CAACA,KAAKA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAC7CA,SAASA,CAACA,aAAaA,CAACA,KAAKA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAC7CA,SAASA,CAACA,aAAaA,CAACA,KAAKA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAE7CA,IAAIA,GAAGA,GAAGA,YAAYA,CAACA;QACvBA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,CAACA,EAAEA,CAACA,GAAGA,GAAGA,CAACA,MAAMA,EAAEA,CAACA,EAAEA;YAC1BA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAElDA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAC9CA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAC9CA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;QAC9CA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;IAClDA,CAACA;IAEaF,sBAAYA,GAA1BA,UAA2BA,IAAYA,EAAEA,GAAWA;QAChDG,MAAMA,CAACA,IAAIA,IAAIA,CAACA,SAASA,CAACA,aAAaA,CAACA,IAAIA,CAACA,EAAEA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,CAACA,CAACA;IACjFA,CAACA;IAEaH,iBAAOA,GAArBA,UAAsBA,IAAWA,EAAEA,KAAcA;QAC7CI,EAAEA,CAAAA,CAACA,IAAIA,IAAIA,eAAaA,IAAIA,IAAIA,IAAIA,eAAaA,CAACA;YAC9CA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,IAAIA,EAAEA,KAAKA,CAACA,CAACA;IACtDA,CAACA;IAEaJ,iBAAOA,GAArBA,UAAsBA,IAAWA;QAC7BK,MAAMA,CAACA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;IACnDA,CAACA;IAEaL,0BAAgBA,GAA9BA;QACIM,IAAIA,GAAGA,GAAGA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA;QAC1CA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,EAAEA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,CAACA,CAACA;QAChGA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,IAAIA,EAAEA,CAACA;QAC1CA,SAASA,CAACA,aAAaA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,GAAGA,EAAEA,CAACA;IAC7CA,CAACA;IAEaN,wBAAcA,GAA5BA;QACIO,IAAIA,IAAIA,GAAGA,CAACA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,CAACA,CAACA;QAC9BA,GAAGA,CAAAA,CAACA,GAAGA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,CAACA,CAACA;YAClBA,IAAIA,GAAGA,GAAGA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA;YAC/CA,SAASA,CAACA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,GAAGA,CAACA,SAASA,CAACA,aAAaA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA,EAAEA,SAASA,CAACA,aAAaA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;YACvHA,SAASA,CAACA,aAAaA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA,GAAGA,GAAGA,CAACA,IAAIA,EAAEA,CAACA;YACnDA,SAASA,CAACA,aAAaA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA,GAAGA,GAAGA,CAACA,GAAGA,EAAEA,CAACA;QACtDA,CAACA;IACLA,CAACA;IAEaP,kBAAQA,GAAtBA,UAAuBA,CAASA,EAAEA,CAASA;IAE3CQ,CAACA;IArDaR,uBAAaA,GAAWA,EAAEA,CAACA;IAC3BA,yBAAeA,GAAWA,EAAEA,CAACA;IAC7BA,wBAAcA,GAASA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;IACnCA,sBAAYA,GAASA,IAAIA,IAAIA,CAACA,CAACA,CAACA,CAACA;IAmDnDA,gBAACA;AAADA,CAACA,AAvDD,IAuDC"} \ No newline at end of file +{"version":3,"file":"Registers.js","sourceRoot":"","sources":["Registers.ts"],"names":["Flags","Registers","Registers.constructor","Registers.Init","Registers.GenerateWord","Registers.SetFlag","Registers.GetFlag","Registers.ExchangeAFShadow","Registers.ExchangeShadow","Registers.Exchange"],"mappings":"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"} \ No newline at end of file diff --git a/js/TI.js b/js/TI.js index f49b7de..3ea7ec2 100644 --- a/js/TI.js +++ b/js/TI.js @@ -3,19 +3,25 @@ /// /// /// + var TI = (function () { function TI() { } + TI.PerformOperation = function (data) { + this.Opcodes[data[0].Get()](data); + }; + TI.Init = function () { LCD.Init(); var a = new Byte(0xF0); var b = new Byte(10); + //a.Sub(b); - alert(a.Get()); + //alert(a.Get()); a.ShiftLeft(true); - alert(a.Get()); + //alert(a.Get()); }; TI.Opcodes = []; return TI; })(); -//# sourceMappingURL=TI.js.map \ No newline at end of file +//# sourceMappingURL=TI.js.map diff --git a/js/TI.js.map b/js/TI.js.map index a958156..b814d13 100644 --- a/js/TI.js.map +++ b/js/TI.js.map @@ -1 +1 @@ -{"version":3,"file":"TI.js","sourceRoot":"","sources":["TI.ts"],"names":["TI","TI.constructor","TI.Init"],"mappings":"AAAA,gCAAgC;AAChC,+BAA+B;AAC/B,kCAAkC;AAClC,qCAAqC;AACrC,mCAAmC;AAUnC,IAAM,EAAE;IAARA,SAAMA,EAAEA;IAYRC,CAACA;IATUD,OAAIA,GAAXA;QACIE,GAAGA,CAACA,IAAIA,EAAEA,CAACA;QACXA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,IAAIA,CAACA,CAACA;QACvBA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,EAAEA,CAACA,CAACA;QAErBA,AADAA,WAAWA;QACXA,KAAKA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA;QACfA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;QAClBA,KAAKA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA;IACnBA,CAACA;IAVaF,UAAOA,GAAaA,EAAEA,CAACA;IAWzCA,SAACA;AAADA,CAACA,AAZD,IAYC"} \ No newline at end of file +{"version":3,"file":"TI.js","sourceRoot":"","sources":["TI.ts"],"names":["TI","TI.constructor","TI.PerformOperation","TI.Init"],"mappings":"AAAA,gCAAgC;AAChC,+BAA+B;AAC/B,kCAAkC;AAClC,qCAAqC;AACrC,mCAAmC;;AAUnC;IAAAA;IAgBAC,CAACA;AAAAD,IAbGA,sBAAAA,UAAwBA,IAAYA;QAChCE,IAAIA,CAACA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA;IACrCA,CAACA;;IAEDF,UAAAA;QACIG,GAAGA,CAACA,IAAIA,CAACA,CAACA;QACVA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,IAAIA,CAACA;QACtBA,IAAIA,CAACA,GAAGA,IAAIA,IAAIA,CAACA,EAAEA,CAACA;;QACpBA,WAAWA;QACXA,iBAAiBA;QACjBA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA;QACjBA,iBAAiBA;IACrBA,CAACA;IAdDH,aAAkCA,EAAEA;IAexCA,UAACA;AAADA,CAACA,IAAA"} \ No newline at end of file diff --git a/js/TI.ts b/js/TI.ts index ccf3e52..f9e2b28 100644 --- a/js/TI.ts +++ b/js/TI.ts @@ -15,14 +15,18 @@ interface opcode { class TI { public static Opcodes: opcode[] = []; + static PerformOperation(data: Byte[]) { + this.Opcodes[data[0].Get()](data); + } + static Init() { LCD.Init(); var a = new Byte(0xF0); var b = new Byte(10); //a.Sub(b); - alert(a.Get()); + //alert(a.Get()); a.ShiftLeft(true); - alert(a.Get()); + //alert(a.Get()); } } diff --git a/js/ops/0x0.js b/js/ops/0x0.js index d53b2fd..3f4d739 100644 --- a/js/ops/0x0.js +++ b/js/ops/0x0.js @@ -6,19 +6,23 @@ TI.Opcodes[0x00] = function (args) { return [1, 4]; }; + TI.Opcodes[0x01] = function (args) { Registers.byteRegisters["B"] = args[2]; Registers.byteRegisters["C"] = args[1]; return [3, 10]; }; + TI.Opcodes[0x02] = function (args) { Memory.Set(Registers.GenerateWord("B", "C"), Registers.byteRegisters["A"]); return [1, 7]; }; + TI.Opcodes[0x03] = function (args) { // inc bc return [1, 4]; }; + TI.Opcodes[0x04] = function (args) { var tmp = Registers.byteRegisters["B"]; var over = Registers.byteRegisters["B"].Add(1); @@ -29,34 +33,52 @@ TI.Opcodes[0x04] = function (args) { Registers.SetFlag(7 /* SIGN */, Registers.byteRegisters["B"].Test(7)); return [1, 4]; }; + TI.Opcodes[0x05] = function (args) { // dec b return [1, 4]; }; + TI.Opcodes[0x06] = function (args) { Registers.byteRegisters["B"] = args[1]; return [1, 7]; }; + TI.Opcodes[0x07] = function (args) { Registers.SetFlag(0 /* CARRY */, Registers.byteRegisters["A"].ShiftLeft(true)); Registers.SetFlag(1 /* ADDSUB */, false); Registers.SetFlag(4 /* HALF */, false); return [1, 4]; }; + TI.Opcodes[0x08] = function (args) { Registers.ExchangeAFShadow(); return [1, 4]; }; + TI.Opcodes[0x09] = function (args) { // add hl, bc return [1, 11]; }; + TI.Opcodes[0x0A] = function (args) { Registers.byteRegisters["A"] = Memory.Get(Registers.GenerateWord("B", "C")); return [1, 7]; }; + TI.Opcodes[0x0B] = function (args) { - // dec b + // dec bc return [1, 4]; }; -//# sourceMappingURL=0x0.js.map \ No newline at end of file + +TI.Opcodes[0x0C] = function (args) { + var tmp = Registers.byteRegisters["C"]; + var over = Registers.byteRegisters["C"].Add(1); + Registers.SetFlag(1 /* ADDSUB */, false); + Registers.SetFlag(6 /* ZERO */, over.Get() != 0); + Registers.SetFlag(2 /* PARITY */, tmp.Test(7) == false && Registers.byteRegisters["C"].Test(7) == true); + Registers.SetFlag(4 /* HALF */, (tmp.Get() & 0x0F) == 0x0F); + Registers.SetFlag(7 /* SIGN */, Registers.byteRegisters["C"].Test(7)); + return [1, 4]; +}; +//# sourceMappingURL=0x0.js.map diff --git a/js/ops/0x0.js.map b/js/ops/0x0.js.map index 1746930..633e98b 100644 --- a/js/ops/0x0.js.map +++ b/js/ops/0x0.js.map @@ -1 +1 @@ -{"version":3,"file":"0x0.js","sourceRoot":"","sources":["0x0.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"0x0.js","sourceRoot":"","sources":["0x0.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/js/ops/0x0.ts b/js/ops/0x0.ts index fae2585..0baccc0 100644 --- a/js/ops/0x0.ts +++ b/js/ops/0x0.ts @@ -68,6 +68,17 @@ TI.Opcodes[0x0A] = function(args: Byte[]): number[] { }; TI.Opcodes[0x0B] = function(args: Byte[]): number[] { - // dec b + // dec bc + return [1, 4]; +}; + +TI.Opcodes[0x0C] = function(args: Byte[]): number[] { + var tmp = Registers.byteRegisters["C"]; + var over = Registers.byteRegisters["C"].Add(1); + Registers.SetFlag(Flags.ADDSUB, false); + Registers.SetFlag(Flags.ZERO, over.Get() != 0); + Registers.SetFlag(Flags.PARITY, tmp.Test(7) == false && Registers.byteRegisters["C"].Test(7) == true); + Registers.SetFlag(Flags.HALF, (tmp.Get() & 0x0F) == 0x0F); + Registers.SetFlag(Flags.SIGN, Registers.byteRegisters["C"].Test(7)) return [1, 4]; }; \ No newline at end of file diff --git a/js/ops/0x1.js b/js/ops/0x1.js new file mode 100644 index 0000000..fd6ad69 --- /dev/null +++ b/js/ops/0x1.js @@ -0,0 +1,6 @@ +/// +/// +/// +/// +/// +//# sourceMappingURL=0x1.js.map diff --git a/js/ops/0x1.js.map b/js/ops/0x1.js.map new file mode 100644 index 0000000..904fed2 --- /dev/null +++ b/js/ops/0x1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"0x1.js","sourceRoot":"","sources":["0x1.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,kCAAkC;AAClC,qCAAqC;AACrC,wCAAwC;AACxC,iCAAiC"} \ No newline at end of file diff --git a/js/ops/0x1.ts b/js/ops/0x1.ts new file mode 100644 index 0000000..de2fbef --- /dev/null +++ b/js/ops/0x1.ts @@ -0,0 +1,5 @@ +/// +/// +/// +/// +/// \ No newline at end of file