ac6502 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CPU.js +6 -4
- package/dist/components/CPU.js.map +1 -1
- package/dist/components/IO/ACIA.d.ts +5 -0
- package/dist/components/IO/ACIA.js +39 -16
- package/dist/components/IO/ACIA.js.map +1 -1
- package/dist/components/IO/Attachments/KeyboardEncoderAttachment.d.ts +1 -0
- package/dist/components/IO/Attachments/KeyboardEncoderAttachment.js +13 -3
- package/dist/components/IO/Attachments/KeyboardEncoderAttachment.js.map +1 -1
- package/dist/components/IO/VIA.js +3 -8
- package/dist/components/IO/VIA.js.map +1 -1
- package/dist/components/Machine.js +17 -8
- package/dist/components/Machine.js.map +1 -1
- package/dist/index.js +41 -30
- package/dist/index.js.map +1 -1
- package/dist/tests/IO/ACIA.test.js +8 -8
- package/dist/tests/IO/ACIA.test.js.map +1 -1
- package/package.json +1 -1
- package/src/components/CPU.ts +8 -4
- package/src/components/IO/ACIA.ts +43 -18
- package/src/components/IO/Attachments/KeyboardEncoderAttachment.ts +14 -4
- package/src/components/IO/VIA.ts +4 -9
- package/src/components/Machine.ts +20 -8
- package/src/index.ts +17 -8
- package/src/tests/IO/ACIA.test.ts +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ACIA.test.js","sourceRoot":"","sources":["../../../src/tests/IO/ACIA.test.ts"],"names":[],"mappings":";;AAAA,mDAA+C;AAE/C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,UAAgB,CAAA;IAEpB,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAI,WAAI,EAAE,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,oEAAoE;YACpE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,eAAe;QAClD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,qDAAqD;YACrD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,mCAAmC;QAClF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACpC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC9C,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC3C,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAEzC,0CAA0C;gBAC1C,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC9C,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,CAAC,mBAAmB;gBACjD,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;gBACnE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvB,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,gBAAgB;gBACjD,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,+BAA+B;gBAC5D,oCAAoC;gBACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;gBACtE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,eAAe;YAClD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC9C,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,gBAAgB;gBACtC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,iBAAiB;YACjD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;gBACtE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,eAAe;YAClD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC9C,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,iBAAiB;YACjD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACvD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,cAAc;YACjD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,gBAAgB;YAChD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACzC,gEAAgE;gBAChE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvB,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,iCAAiC;gBAC9D,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,uBAAuB;gBAErD,mDAAmD;YACrD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,kCAAkC;YAClE,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,4BAA4B;YAC5D,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;gBAChC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,wBAAwB;YACxD,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACvC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC5C,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC7B,8CAA8C;YAChD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;gBACrD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;gBACzB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;gBAE7B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,qBAAqB;gBAClD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEvB,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAA;YACpC,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACxD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;gBACzB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;gBAE7B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,sBAAsB;gBACnD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEvB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;YACxC,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACnD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,mBAAmB;gBAChD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEvB,0DAA0D;gBAC1D,uDAAuD;gBACvD,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC9C,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,iDAAiD;YAC3F,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACvC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBAC5C,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC7B,8CAA8C;YAChD,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBAChD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,YAAY;gBACzC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAE5B,gEAAgE;YAClE,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC9B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAA;YAElC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAE5B,kDAAkD;YAClD,kEAAkE;YAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC9B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAA;YAElC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACrD,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACrD,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC9B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAA;YAElC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,aAAa;YAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;YAED,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,WAAW;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,MAAM;YAC9B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,MAAM;YAC9B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,MAAM;YAE9B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACzB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;YAE7B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,qBAAqB;YAClD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAA;YAClC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,eAAe;QACjE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC9B,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;YAC7B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAA;YAElC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,uBAAuB;YACpD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,sBAAsB;YACnD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;YAED,gDAAgD;YAChD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACzB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;YAE7B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,sBAAsB;YACnD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACzB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;YAE7B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,qBAAqB;YAClD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,UAAU;YAE1D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,YAAY;YAElC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,cAAc;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAE1C,yCAAyC;YACzC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEzC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,mBAAmB;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,gBAAgB;YAExC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,yBAAyB;YAC/C,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,qCAAqC;YAEtE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,0BAA0B;YAChD,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,qCAAqC;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC9B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAA;YAElC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,mBAAmB;YAChD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,6BAA6B;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC9B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAA;YAElC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,qBAAqB;YAClD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,mBAAmB;YAChD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,uBAAuB;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,SAAS,GAAG;gBAChB,CAAC,IAAI,EAAE,MAAM,CAAC;gBACd,CAAC,IAAI,EAAE,EAAE,CAAC;gBACV,CAAC,IAAI,EAAE,EAAE,CAAC;gBACV,CAAC,IAAI,EAAE,GAAG,CAAC;gBACX,CAAC,IAAI,EAAE,GAAG,CAAC;gBACX,CAAC,IAAI,EAAE,GAAG,CAAC;gBACX,CAAC,IAAI,EAAE,GAAG,CAAC;gBACX,CAAC,IAAI,EAAE,GAAG,CAAC;gBACX,CAAC,IAAI,EAAE,IAAI,CAAC;gBACZ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACZ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACZ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACZ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACZ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACZ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACZ,CAAC,IAAI,EAAE,KAAK,CAAC;aACd,CAAA;YAED,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;gBACjC,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAA;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAc,CAAC,CAAA,CAAC,uCAAuC;gBACxE,yDAAyD;YAC3D,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,8DAA8D;YAC9D,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,uBAAuB;YACpD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,+BAA+B;YAC/B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,6CAA6C;YAE1E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpC,2EAA2E;YAC3E,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,mBAAmB;YACjD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,qBAAqB;QACxD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEtB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,WAAW;YAC3D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,aAAa;YAC1D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,YAAY;QAC3D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAE5B,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEtB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,oCAAoC;QACtF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEtB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,sCAAsC;QACrF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,+DAA+D;YAC/D,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,6BAA6B;YAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,8BAA8B;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC9B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAA;YAElC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACzB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;YAE7B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YACzB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAA;YAE7B,qEAAqE;YACrE,MAAM,CAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClB,mBAAmB;QACrB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;YAClC,CAAC;YACD,sCAAsC;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,cAAc;YAClD,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,oBAAoB;YAExD,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"ACIA.test.js","sourceRoot":"","sources":["../../../src/tests/IO/ACIA.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/components/CPU.ts
CHANGED
|
@@ -83,12 +83,14 @@ export class CPU {
|
|
|
83
83
|
this.write(0x0100 + this.sp, this.pc & 0x00FF)
|
|
84
84
|
this.decSP()
|
|
85
85
|
|
|
86
|
-
// Push the status register onto the stack
|
|
86
|
+
// Push the status register onto the stack (B=0, I unchanged)
|
|
87
87
|
this.setFlag(CPU.B, false)
|
|
88
|
-
this.setFlag(CPU.I, true)
|
|
89
88
|
this.write(0x0100 + this.sp, this.st)
|
|
90
89
|
this.decSP()
|
|
91
90
|
|
|
91
|
+
// Now set I to prevent nested interrupts
|
|
92
|
+
this.setFlag(CPU.I, true)
|
|
93
|
+
|
|
92
94
|
// Read new PC location from IRQ vector
|
|
93
95
|
const irqVector = 0xFFFE
|
|
94
96
|
const lo: number = this.read(irqVector + 0)
|
|
@@ -108,12 +110,14 @@ export class CPU {
|
|
|
108
110
|
this.write(0x0100 + this.sp, this.pc & 0x00FF)
|
|
109
111
|
this.decSP()
|
|
110
112
|
|
|
111
|
-
// Push the status register onto the stack
|
|
113
|
+
// Push the status register onto the stack (B=0, I unchanged)
|
|
112
114
|
this.setFlag(CPU.B, false)
|
|
113
|
-
this.setFlag(CPU.I, true)
|
|
114
115
|
this.write(0x0100 + this.sp, this.st)
|
|
115
116
|
this.decSP()
|
|
116
117
|
|
|
118
|
+
// Now set I to prevent nested interrupts
|
|
119
|
+
this.setFlag(CPU.I, true)
|
|
120
|
+
|
|
117
121
|
// Read new PC location from NMI vector
|
|
118
122
|
const nmiVector = 0xFFFA
|
|
119
123
|
const lo: number = this.read(nmiVector + 0)
|
|
@@ -102,8 +102,11 @@ export class ACIA implements IO {
|
|
|
102
102
|
this.statusRegister &= ~0x04
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
//
|
|
106
|
-
if (
|
|
105
|
+
// If more bytes remain in the buffer, re-assert IRQ so the BIOS services them
|
|
106
|
+
if (this.receiveBuffer.length > 0 && !(this.commandRegister & 0x02)) {
|
|
107
|
+
this.irqFlag = true
|
|
108
|
+
this.statusRegister |= 0x80
|
|
109
|
+
} else {
|
|
107
110
|
this.irqFlag = false
|
|
108
111
|
this.statusRegister &= ~0x80
|
|
109
112
|
}
|
|
@@ -126,6 +129,11 @@ export class ACIA implements IO {
|
|
|
126
129
|
|
|
127
130
|
/**
|
|
128
131
|
* Read status register
|
|
132
|
+
*
|
|
133
|
+
* Per the R6551 datasheet, reading the status register clears:
|
|
134
|
+
* - Bit 7 (IRQ)
|
|
135
|
+
* - Bit 0 (Parity Error), Bit 1 (Framing Error), Bit 2 (Overrun)
|
|
136
|
+
* The returned byte contains the values BEFORE the clear.
|
|
129
137
|
*/
|
|
130
138
|
private readStatus(): number {
|
|
131
139
|
let status = 0
|
|
@@ -145,15 +153,21 @@ export class ACIA implements IO {
|
|
|
145
153
|
// Bit 4: Transmit Data Register Empty
|
|
146
154
|
if (this.transmitBuffer.length === 0) status |= 0x10
|
|
147
155
|
|
|
148
|
-
// Bit 5: Data Carrier Detect (DCD)
|
|
156
|
+
// Bit 5: Data Carrier Detect (DCD)
|
|
149
157
|
status &= ~0x20
|
|
150
158
|
|
|
151
|
-
// Bit 6: Data Set Ready (DSR)
|
|
159
|
+
// Bit 6: Data Set Ready (DSR)
|
|
152
160
|
status |= 0x40
|
|
153
161
|
|
|
154
162
|
// Bit 7: Interrupt (IRQ)
|
|
155
163
|
if (this.irqFlag) status |= 0x80
|
|
156
164
|
|
|
165
|
+
// Clear IRQ and error flags after building the status byte (R6551 spec)
|
|
166
|
+
this.irqFlag = false
|
|
167
|
+
this.parityError = false
|
|
168
|
+
this.framingError = false
|
|
169
|
+
this.overrun = false
|
|
170
|
+
|
|
157
171
|
this.statusRegister = status
|
|
158
172
|
return status
|
|
159
173
|
}
|
|
@@ -167,14 +181,14 @@ export class ACIA implements IO {
|
|
|
167
181
|
// Bits 0-1: DTR control
|
|
168
182
|
// const dtrControl = data & 0x03
|
|
169
183
|
|
|
170
|
-
// Bit
|
|
171
|
-
const receiveIRQEnabled = (data &
|
|
184
|
+
// Bit 1: Receiver Interrupt Request Disable (RIIE) — 0 = IRQ enabled, 1 = disabled (active low)
|
|
185
|
+
const receiveIRQEnabled = (data & 0x02) === 0
|
|
172
186
|
|
|
173
|
-
// Bits 3-
|
|
174
|
-
// const transmitControl = (data >>
|
|
187
|
+
// Bits 3-2: Transmitter Interrupt Control (TIC)
|
|
188
|
+
// const transmitControl = (data >> 2) & 0x03
|
|
175
189
|
|
|
176
|
-
// Bit
|
|
177
|
-
this.echoMode = (data &
|
|
190
|
+
// Bit 4: Echo Mode Enable (EME)
|
|
191
|
+
this.echoMode = (data & 0x10) !== 0
|
|
178
192
|
|
|
179
193
|
// Bits 6-7: Parity control
|
|
180
194
|
// const parityControl = (data >> 6) & 0x03
|
|
@@ -250,6 +264,17 @@ export class ACIA implements IO {
|
|
|
250
264
|
* Tick - emulate ACIA timing
|
|
251
265
|
*/
|
|
252
266
|
tick(frequency: number): void {
|
|
267
|
+
// Re-evaluate receive interrupt condition.
|
|
268
|
+
// After readStatus() clears irqFlag, the IRQ must be re-asserted if
|
|
269
|
+
// the underlying condition (RDRF + receive IRQ enabled) is still active.
|
|
270
|
+
if (!(this.commandRegister & 0x02) && this.receiveBuffer.length > 0) {
|
|
271
|
+
this.irqFlag = true
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
if (this.irqFlag) {
|
|
275
|
+
this.raiseIRQ()
|
|
276
|
+
}
|
|
277
|
+
|
|
253
278
|
this.cycleCounter++
|
|
254
279
|
|
|
255
280
|
// Calculate cycles per byte: (CPU_CLOCK / baud_rate) * bits_per_frame
|
|
@@ -266,13 +291,13 @@ export class ACIA implements IO {
|
|
|
266
291
|
if (byte !== undefined && this.transmit) {
|
|
267
292
|
this.transmit(byte)
|
|
268
293
|
}
|
|
269
|
-
|
|
294
|
+
|
|
270
295
|
// Set Transmit Data Register Empty if buffer is empty
|
|
271
296
|
if (this.transmitBuffer.length === 0) {
|
|
272
297
|
this.statusRegister |= 0x10
|
|
273
|
-
|
|
274
|
-
// Trigger transmit complete IRQ if enabled
|
|
275
|
-
if ((this.commandRegister &
|
|
298
|
+
|
|
299
|
+
// Trigger transmit complete IRQ if enabled (bits 3-2 = 01 means TxIRQ on TDRE)
|
|
300
|
+
if ((this.commandRegister & 0x0C) === 0x04) {
|
|
276
301
|
this.irqFlag = true
|
|
277
302
|
this.statusRegister |= 0x80
|
|
278
303
|
this.raiseIRQ()
|
|
@@ -307,8 +332,8 @@ export class ACIA implements IO {
|
|
|
307
332
|
* Receive data from external source
|
|
308
333
|
*/
|
|
309
334
|
onData(data: number): void {
|
|
310
|
-
if (this.receiveBuffer.length > 0
|
|
311
|
-
// Overrun
|
|
335
|
+
if (this.receiveBuffer.length > 0) {
|
|
336
|
+
// Overrun: new data arrived before the previous byte was read
|
|
312
337
|
this.overrun = true
|
|
313
338
|
this.statusRegister |= 0x04
|
|
314
339
|
}
|
|
@@ -318,8 +343,8 @@ export class ACIA implements IO {
|
|
|
318
343
|
// Set Receive Data Register Full flag
|
|
319
344
|
this.statusRegister |= 0x08
|
|
320
345
|
|
|
321
|
-
// Trigger receive IRQ if enabled
|
|
322
|
-
if (this.commandRegister &
|
|
346
|
+
// Trigger receive IRQ if enabled (bit 1 = 0 means enabled, active low)
|
|
347
|
+
if (!(this.commandRegister & 0x02)) {
|
|
323
348
|
this.irqFlag = true
|
|
324
349
|
this.statusRegister |= 0x80
|
|
325
350
|
this.raiseIRQ()
|
|
@@ -101,6 +101,7 @@ export class KeyboardEncoderAttachment extends AttachmentBase {
|
|
|
101
101
|
private ctrlPressed: boolean = false
|
|
102
102
|
private altPressed: boolean = false
|
|
103
103
|
private menuPressed: boolean = false
|
|
104
|
+
private capsLockActive: boolean = false
|
|
104
105
|
|
|
105
106
|
// Control line states
|
|
106
107
|
private stateCA1: boolean = false
|
|
@@ -128,6 +129,7 @@ export class KeyboardEncoderAttachment extends AttachmentBase {
|
|
|
128
129
|
this.ctrlPressed = false
|
|
129
130
|
this.altPressed = false
|
|
130
131
|
this.menuPressed = false
|
|
132
|
+
this.capsLockActive = false
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
readPortA(ddrA: number, orA: number): number {
|
|
@@ -354,13 +356,15 @@ export class KeyboardEncoderAttachment extends AttachmentBase {
|
|
|
354
356
|
}
|
|
355
357
|
|
|
356
358
|
// Handle Shift combinations - uppercase and shifted symbols
|
|
357
|
-
|
|
358
|
-
|
|
359
|
+
// Caps Lock XORs with Shift for letters (they cancel each other out)
|
|
360
|
+
const effectiveUppercase = this.capsLockActive !== this.shiftPressed
|
|
361
|
+
if (effectiveUppercase && !this.ctrlPressed && !this.altPressed) {
|
|
359
362
|
if (baseChar >= 0x61 && baseChar <= 0x7A) { // a-z
|
|
360
363
|
return baseChar - 0x61 + 0x41 // A-Z
|
|
361
364
|
}
|
|
362
|
-
|
|
363
|
-
|
|
365
|
+
}
|
|
366
|
+
if (this.shiftPressed && !this.ctrlPressed && !this.altPressed) {
|
|
367
|
+
// Shifted symbols (Caps Lock does not affect symbols)
|
|
364
368
|
switch (baseChar) {
|
|
365
369
|
case 0x31: return 0x21 // '1' -> '!'
|
|
366
370
|
case 0x32: return 0x40 // '2' -> '@'
|
|
@@ -403,6 +407,12 @@ export class KeyboardEncoderAttachment extends AttachmentBase {
|
|
|
403
407
|
this.ctrlPressed = pressed
|
|
404
408
|
return // Don't generate output for modifier keys alone
|
|
405
409
|
|
|
410
|
+
case 0x39: // Caps Lock - toggle on press, ignore release
|
|
411
|
+
if (pressed) {
|
|
412
|
+
this.capsLockActive = !this.capsLockActive
|
|
413
|
+
}
|
|
414
|
+
return
|
|
415
|
+
|
|
406
416
|
case 0xE1: // Left Shift
|
|
407
417
|
case 0xE5: // Right Shift
|
|
408
418
|
this.shiftPressed = pressed
|
package/src/components/IO/VIA.ts
CHANGED
|
@@ -113,15 +113,7 @@ export class VIA implements IO {
|
|
|
113
113
|
this.T1_IRQ_enabled = false
|
|
114
114
|
this.T2_IRQ_enabled = false
|
|
115
115
|
|
|
116
|
-
//
|
|
117
|
-
this.portA_attachmentCount = 0
|
|
118
|
-
this.portB_attachmentCount = 0
|
|
119
|
-
for (let i = 0; i < VIA.MAX_ATTACHMENTS_PER_PORT; i++) {
|
|
120
|
-
this.portA_attachments[i] = null
|
|
121
|
-
this.portB_attachments[i] = null
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// Reset all attachments
|
|
116
|
+
// Reset all attachments (keep registrations — they represent physical wiring)
|
|
125
117
|
for (let i = 0; i < this.portA_attachmentCount; i++) {
|
|
126
118
|
if (this.portA_attachments[i] !== null) {
|
|
127
119
|
this.portA_attachments[i]!.reset()
|
|
@@ -133,6 +125,9 @@ export class VIA implements IO {
|
|
|
133
125
|
}
|
|
134
126
|
}
|
|
135
127
|
|
|
128
|
+
// Re-notify attachments of current (reset) control line states
|
|
129
|
+
this.notifyAttachmentsControlLines()
|
|
130
|
+
|
|
136
131
|
// Reset timing
|
|
137
132
|
this.tickCounter = 0
|
|
138
133
|
this.ticksPerMicrosecond = 1
|
|
@@ -159,6 +159,10 @@ export class Machine {
|
|
|
159
159
|
rtc.raiseIRQ = () => this.cpu.irq()
|
|
160
160
|
rtc.raiseNMI = () => this.cpu.nmi()
|
|
161
161
|
|
|
162
|
+
// Connect VIA IRQ/NMI to CPU
|
|
163
|
+
via.raiseIRQ = () => this.cpu.irq()
|
|
164
|
+
via.raiseNMI = () => this.cpu.nmi()
|
|
165
|
+
|
|
162
166
|
// Create standard GPIO attachments
|
|
163
167
|
this.keyboardMatrixAttachment = new KeyboardMatrixAttachment(10)
|
|
164
168
|
this.keyboardEncoderAttachment = new KeyboardEncoderAttachment(20)
|
|
@@ -191,6 +195,10 @@ export class Machine {
|
|
|
191
195
|
video.raiseIRQ = () => this.cpu.irq()
|
|
192
196
|
video.raiseNMI = () => this.cpu.nmi()
|
|
193
197
|
|
|
198
|
+
// Connect VIA IRQ/NMI to CPU
|
|
199
|
+
via.raiseIRQ = () => this.cpu.irq()
|
|
200
|
+
via.raiseNMI = () => this.cpu.nmi()
|
|
201
|
+
|
|
194
202
|
// Connect Sound pushSamples callback
|
|
195
203
|
sound.pushSamples = (samples: Float32Array) => {
|
|
196
204
|
if (this.play) {
|
|
@@ -228,7 +236,7 @@ export class Machine {
|
|
|
228
236
|
|
|
229
237
|
const rtc = new RTC()
|
|
230
238
|
const storage = new Storage()
|
|
231
|
-
const
|
|
239
|
+
const via = new VIA()
|
|
232
240
|
const sound = new Sound()
|
|
233
241
|
const video = new Video()
|
|
234
242
|
|
|
@@ -236,7 +244,7 @@ export class Machine {
|
|
|
236
244
|
this.io2 = new RAMBank()
|
|
237
245
|
this.io3 = rtc
|
|
238
246
|
this.io4 = storage
|
|
239
|
-
this.io6 =
|
|
247
|
+
this.io6 = via
|
|
240
248
|
this.io7 = sound
|
|
241
249
|
this.io8 = video
|
|
242
250
|
|
|
@@ -248,6 +256,10 @@ export class Machine {
|
|
|
248
256
|
video.raiseIRQ = () => this.cpu.irq()
|
|
249
257
|
video.raiseNMI = () => this.cpu.nmi()
|
|
250
258
|
|
|
259
|
+
// Connect GPIO VIA IRQ/NMI to CPU
|
|
260
|
+
via.raiseIRQ = () => this.cpu.irq()
|
|
261
|
+
via.raiseNMI = () => this.cpu.nmi()
|
|
262
|
+
|
|
251
263
|
// Connect Sound pushSamples callback
|
|
252
264
|
sound.pushSamples = (samples: Float32Array) => {
|
|
253
265
|
if (this.play) {
|
|
@@ -262,12 +274,12 @@ export class Machine {
|
|
|
262
274
|
this.joystickAttachmentB = new JoystickAttachment(false, 100)
|
|
263
275
|
|
|
264
276
|
// Attach peripherals to GPIO Card
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
277
|
+
via.attachToPortA(this.keyboardMatrixAttachment)
|
|
278
|
+
via.attachToPortB(this.keyboardMatrixAttachment)
|
|
279
|
+
via.attachToPortA(this.keyboardEncoderAttachment)
|
|
280
|
+
via.attachToPortB(this.keyboardEncoderAttachment)
|
|
281
|
+
via.attachToPortA(this.joystickAttachmentA)
|
|
282
|
+
via.attachToPortB(this.joystickAttachmentB)
|
|
271
283
|
} else {
|
|
272
284
|
this.io1 = new Empty()
|
|
273
285
|
this.io2 = new Empty()
|
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import sdl from '@kmamal/sdl'
|
|
|
12
12
|
import { readFile, writeFile } from 'fs/promises'
|
|
13
13
|
import { existsSync } from 'fs'
|
|
14
14
|
|
|
15
|
-
const VERSION = '1.
|
|
15
|
+
const VERSION = '1.6.0'
|
|
16
16
|
const WIDTH = 320
|
|
17
17
|
const HEIGHT = 240
|
|
18
18
|
|
|
@@ -72,7 +72,7 @@ class Emulator {
|
|
|
72
72
|
await this.loadBinaries()
|
|
73
73
|
this.configureFrequency()
|
|
74
74
|
this.configureScale()
|
|
75
|
-
this.setupSerialPort()
|
|
75
|
+
await this.setupSerialPort()
|
|
76
76
|
this.setupAudio()
|
|
77
77
|
this.setupWindow()
|
|
78
78
|
this.setupControllers()
|
|
@@ -156,7 +156,7 @@ class Emulator {
|
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
private setupSerialPort(): void {
|
|
159
|
+
private async setupSerialPort(): Promise<void> {
|
|
160
160
|
if (!this.options.port) {
|
|
161
161
|
return
|
|
162
162
|
}
|
|
@@ -171,11 +171,8 @@ class Emulator {
|
|
|
171
171
|
baudRate: baudRate,
|
|
172
172
|
parity: parity,
|
|
173
173
|
dataBits: dataBits,
|
|
174
|
-
stopBits: stopBits
|
|
175
|
-
|
|
176
|
-
if (err) {
|
|
177
|
-
console.log('Error: ', err.message)
|
|
178
|
-
}
|
|
174
|
+
stopBits: stopBits,
|
|
175
|
+
autoOpen: false
|
|
179
176
|
})
|
|
180
177
|
|
|
181
178
|
this.serialPort.on('data', (data: Buffer<ArrayBuffer>) => {
|
|
@@ -193,6 +190,18 @@ class Emulator {
|
|
|
193
190
|
})
|
|
194
191
|
}
|
|
195
192
|
}
|
|
193
|
+
|
|
194
|
+
await new Promise<void>((resolve, reject) => {
|
|
195
|
+
this.serialPort!.open((err) => {
|
|
196
|
+
if (err) {
|
|
197
|
+
console.log('Error opening serial port: ', err.message)
|
|
198
|
+
reject(err)
|
|
199
|
+
} else {
|
|
200
|
+
console.log(`Serial port opened: ${this.options.port}`)
|
|
201
|
+
resolve()
|
|
202
|
+
}
|
|
203
|
+
})
|
|
204
|
+
})
|
|
196
205
|
}
|
|
197
206
|
|
|
198
207
|
private setupAudio(): void {
|
|
@@ -137,18 +137,18 @@ describe('ACIA (6551 ACIA)', () => {
|
|
|
137
137
|
expect(mockIRQ).toHaveBeenCalled()
|
|
138
138
|
})
|
|
139
139
|
|
|
140
|
-
it('should disable receive IRQ when bit
|
|
140
|
+
it('should disable receive IRQ when RIIE bit (bit 1) is set', () => {
|
|
141
141
|
const mockIRQ = jest.fn()
|
|
142
142
|
serialCard.raiseIRQ = mockIRQ
|
|
143
143
|
|
|
144
|
-
serialCard.write(0x02,
|
|
144
|
+
serialCard.write(0x02, 0x02) // RIIE=1: receive IRQ disabled (W65C51N: bit1=1 disables)
|
|
145
145
|
serialCard.onData(0x42)
|
|
146
146
|
|
|
147
147
|
expect(mockIRQ).not.toHaveBeenCalled()
|
|
148
148
|
})
|
|
149
149
|
|
|
150
|
-
it('should enable echo mode when bit
|
|
151
|
-
serialCard.write(0x02,
|
|
150
|
+
it('should enable echo mode when REM bit (bit 4) is set', () => {
|
|
151
|
+
serialCard.write(0x02, 0x10) // REM=1: echo mode enabled (bit 4 per 6551 spec)
|
|
152
152
|
serialCard.onData(0x42)
|
|
153
153
|
|
|
154
154
|
// In echo mode, received data is added to transmit buffer
|
|
@@ -276,7 +276,7 @@ describe('ACIA (6551 ACIA)', () => {
|
|
|
276
276
|
serialCard.transmit = mockTransmit
|
|
277
277
|
|
|
278
278
|
serialCard.write(0x03, 0x00) // Set control register
|
|
279
|
-
serialCard.write(0x02,
|
|
279
|
+
serialCard.write(0x02, 0x04) // TIC=01: transmit IRQ enabled with /RTS low (bits 3-2 = 01)
|
|
280
280
|
serialCard.write(0x00, 0x42)
|
|
281
281
|
|
|
282
282
|
for (let i = 0; i < 100; i++) {
|
|
@@ -291,7 +291,7 @@ describe('ACIA (6551 ACIA)', () => {
|
|
|
291
291
|
const mockIRQ = jest.fn()
|
|
292
292
|
serialCard.raiseIRQ = mockIRQ
|
|
293
293
|
|
|
294
|
-
serialCard.write(0x02,
|
|
294
|
+
serialCard.write(0x02, 0x02) // RIIE=1: receive IRQ disabled (W65C51N: bit1=1 disables)
|
|
295
295
|
serialCard.onData(0x42)
|
|
296
296
|
|
|
297
297
|
expect(mockIRQ).not.toHaveBeenCalled()
|
|
@@ -343,7 +343,7 @@ describe('ACIA (6551 ACIA)', () => {
|
|
|
343
343
|
const mockTransmit = jest.fn()
|
|
344
344
|
serialCard.transmit = mockTransmit
|
|
345
345
|
|
|
346
|
-
serialCard.write(0x02,
|
|
346
|
+
serialCard.write(0x02, 0x10) // REM=1: echo mode enabled (bit 4 per 6551 spec)
|
|
347
347
|
serialCard.onData(0x42)
|
|
348
348
|
|
|
349
349
|
// Tick to allow transmission
|
|
@@ -369,7 +369,7 @@ describe('ACIA (6551 ACIA)', () => {
|
|
|
369
369
|
})
|
|
370
370
|
|
|
371
371
|
it('should clear TDRE flag in echo mode', () => {
|
|
372
|
-
serialCard.write(0x02,
|
|
372
|
+
serialCard.write(0x02, 0x10) // REM=1: echo mode enabled (bit 4 per 6551 spec)
|
|
373
373
|
serialCard.onData(0x42)
|
|
374
374
|
|
|
375
375
|
const status = serialCard.read(0x01)
|