ac6502 1.3.0 → 1.4.1

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.
Files changed (141) hide show
  1. package/README.md +139 -32
  2. package/dist/components/IO/ACIA.d.ts +76 -0
  3. package/dist/components/IO/ACIA.js +282 -0
  4. package/dist/components/IO/ACIA.js.map +1 -0
  5. package/dist/components/IO/Attachments/Attachment.d.ts +112 -0
  6. package/dist/components/IO/Attachments/Attachment.js +71 -0
  7. package/dist/components/IO/Attachments/Attachment.js.map +1 -0
  8. package/dist/components/IO/Attachments/JoystickAttachment.d.ts +53 -0
  9. package/dist/components/IO/Attachments/JoystickAttachment.js +90 -0
  10. package/dist/components/IO/Attachments/JoystickAttachment.js.map +1 -0
  11. package/dist/components/IO/Attachments/KeyboardEncoderAttachment.d.ts +63 -0
  12. package/dist/components/IO/Attachments/KeyboardEncoderAttachment.js +489 -0
  13. package/dist/components/IO/Attachments/KeyboardEncoderAttachment.js.map +1 -0
  14. package/dist/components/IO/Attachments/KeyboardMatrixAttachment.d.ts +44 -0
  15. package/dist/components/IO/Attachments/KeyboardMatrixAttachment.js +274 -0
  16. package/dist/components/IO/Attachments/KeyboardMatrixAttachment.js.map +1 -0
  17. package/dist/components/IO/Attachments/KeypadAttachment.d.ts +47 -0
  18. package/dist/components/IO/Attachments/KeypadAttachment.js +141 -0
  19. package/dist/components/IO/Attachments/KeypadAttachment.js.map +1 -0
  20. package/dist/components/IO/Attachments/LCDAttachment.d.ts +110 -0
  21. package/dist/components/IO/Attachments/LCDAttachment.js +716 -0
  22. package/dist/components/IO/Attachments/LCDAttachment.js.map +1 -0
  23. package/dist/components/IO/Attachments/SNESAttachment.d.ts +85 -0
  24. package/dist/components/IO/Attachments/SNESAttachment.js +184 -0
  25. package/dist/components/IO/Attachments/SNESAttachment.js.map +1 -0
  26. package/dist/components/IO/Empty.d.ts +9 -0
  27. package/dist/components/IO/Empty.js +5 -7
  28. package/dist/components/IO/Empty.js.map +1 -1
  29. package/dist/components/IO/GPIOCard.d.ts +5 -5
  30. package/dist/components/IO/GPIOCard.js.map +1 -1
  31. package/dist/components/IO/RAMBank.d.ts +37 -0
  32. package/dist/components/IO/RAMBank.js +63 -0
  33. package/dist/components/IO/RAMBank.js.map +1 -0
  34. package/dist/components/IO/RTC.d.ts +107 -0
  35. package/dist/components/IO/RTC.js +483 -0
  36. package/dist/components/IO/RTC.js.map +1 -0
  37. package/dist/components/IO/Sound.d.ts +120 -0
  38. package/dist/components/IO/Sound.js +622 -0
  39. package/dist/components/IO/Sound.js.map +1 -0
  40. package/dist/components/IO/Storage.d.ts +74 -0
  41. package/dist/components/IO/Storage.js +409 -0
  42. package/dist/components/IO/Storage.js.map +1 -0
  43. package/dist/components/IO/Terminal.d.ts +19 -0
  44. package/dist/components/IO/Terminal.js +33 -0
  45. package/dist/components/IO/Terminal.js.map +1 -0
  46. package/dist/components/IO/VIA.d.ts +105 -0
  47. package/dist/components/IO/VIA.js +597 -0
  48. package/dist/components/IO/VIA.js.map +1 -0
  49. package/dist/components/IO/Video.d.ts +141 -0
  50. package/dist/components/IO/Video.js +630 -0
  51. package/dist/components/IO/Video.js.map +1 -0
  52. package/dist/components/Machine.d.ts +20 -24
  53. package/dist/components/Machine.js +249 -166
  54. package/dist/components/Machine.js.map +1 -1
  55. package/dist/index.js +28 -14
  56. package/dist/index.js.map +1 -1
  57. package/dist/lib.d.ts +16 -16
  58. package/dist/lib.js +32 -32
  59. package/dist/lib.js.map +1 -1
  60. package/dist/tests/IO/ACIA.test.d.ts +1 -0
  61. package/dist/tests/IO/ACIA.test.js +423 -0
  62. package/dist/tests/IO/ACIA.test.js.map +1 -0
  63. package/dist/tests/IO/Attachments/Attachment.test.d.ts +1 -0
  64. package/dist/tests/IO/Attachments/Attachment.test.js +339 -0
  65. package/dist/tests/IO/Attachments/Attachment.test.js.map +1 -0
  66. package/dist/tests/IO/Attachments/JoystickAttachment.test.d.ts +1 -0
  67. package/dist/tests/IO/Attachments/JoystickAttachment.test.js +126 -0
  68. package/dist/tests/IO/Attachments/JoystickAttachment.test.js.map +1 -0
  69. package/dist/tests/IO/Attachments/KeyboardEncoderAttachment.test.d.ts +1 -0
  70. package/dist/tests/IO/Attachments/KeyboardEncoderAttachment.test.js +779 -0
  71. package/dist/tests/IO/Attachments/KeyboardEncoderAttachment.test.js.map +1 -0
  72. package/dist/tests/IO/Attachments/KeyboardMatrixAttachment.test.d.ts +1 -0
  73. package/dist/tests/IO/Attachments/KeyboardMatrixAttachment.test.js +355 -0
  74. package/dist/tests/IO/Attachments/KeyboardMatrixAttachment.test.js.map +1 -0
  75. package/dist/tests/IO/Attachments/KeypadAttachment.test.d.ts +1 -0
  76. package/dist/tests/IO/Attachments/KeypadAttachment.test.js +323 -0
  77. package/dist/tests/IO/Attachments/KeypadAttachment.test.js.map +1 -0
  78. package/dist/tests/IO/Attachments/LCDAttachment.test.d.ts +1 -0
  79. package/dist/tests/IO/Attachments/LCDAttachment.test.js +627 -0
  80. package/dist/tests/IO/Attachments/LCDAttachment.test.js.map +1 -0
  81. package/dist/tests/IO/Attachments/SNESAttachment.test.d.ts +1 -0
  82. package/dist/tests/IO/Attachments/SNESAttachment.test.js +331 -0
  83. package/dist/tests/IO/Attachments/SNESAttachment.test.js.map +1 -0
  84. package/dist/tests/IO/Empty.test.d.ts +1 -0
  85. package/dist/tests/IO/Empty.test.js +121 -0
  86. package/dist/tests/IO/Empty.test.js.map +1 -0
  87. package/dist/tests/IO/GPIOCard.test.js.map +1 -1
  88. package/dist/tests/IO/RAMBank.test.d.ts +1 -0
  89. package/dist/tests/IO/RAMBank.test.js +229 -0
  90. package/dist/tests/IO/RAMBank.test.js.map +1 -0
  91. package/dist/tests/IO/RTC.test.d.ts +1 -0
  92. package/dist/tests/IO/RTC.test.js +177 -0
  93. package/dist/tests/IO/RTC.test.js.map +1 -0
  94. package/dist/tests/IO/Sound.test.d.ts +1 -0
  95. package/dist/tests/IO/Sound.test.js +528 -0
  96. package/dist/tests/IO/Sound.test.js.map +1 -0
  97. package/dist/tests/IO/Storage.test.d.ts +1 -0
  98. package/dist/tests/IO/Storage.test.js +656 -0
  99. package/dist/tests/IO/Storage.test.js.map +1 -0
  100. package/dist/tests/IO/VIA.test.d.ts +1 -0
  101. package/dist/tests/IO/VIA.test.js +503 -0
  102. package/dist/tests/IO/VIA.test.js.map +1 -0
  103. package/dist/tests/IO/Video.test.d.ts +1 -0
  104. package/dist/tests/IO/Video.test.js +549 -0
  105. package/dist/tests/IO/Video.test.js.map +1 -0
  106. package/dist/tests/Machine.test.js +27 -42
  107. package/dist/tests/Machine.test.js.map +1 -1
  108. package/package.json +1 -1
  109. package/src/components/IO/{SerialCard.ts → ACIA.ts} +2 -2
  110. package/src/components/IO/{GPIOAttachments/GPIOAttachment.ts → Attachments/Attachment.ts} +2 -2
  111. package/src/components/IO/{GPIOAttachments/GPIOJoystickAttachment.ts → Attachments/JoystickAttachment.ts} +3 -3
  112. package/src/components/IO/{GPIOAttachments/GPIOKeyboardEncoderAttachment.ts → Attachments/KeyboardEncoderAttachment.ts} +3 -3
  113. package/src/components/IO/{GPIOAttachments/GPIOKeyboardMatrixAttachment.ts → Attachments/KeyboardMatrixAttachment.ts} +5 -5
  114. package/src/components/IO/{GPIOAttachments/GPIOKeypadAttachment.ts → Attachments/KeypadAttachment.ts} +3 -3
  115. package/src/components/IO/{GPIOAttachments/GPIOLCDAttachment.ts → Attachments/LCDAttachment.ts} +7 -7
  116. package/src/components/IO/{EmptyCard.ts → Empty.ts} +1 -1
  117. package/src/components/IO/{RAMCard.ts → RAMBank.ts} +8 -8
  118. package/src/components/IO/{RTCCard.ts → RTC.ts} +1 -1
  119. package/src/components/IO/{SoundCard.ts → Sound.ts} +2 -2
  120. package/src/components/IO/{StorageCard.ts → Storage.ts} +70 -73
  121. package/src/components/IO/{DevOutputBoard.ts → Terminal.ts} +2 -2
  122. package/src/components/IO/{GPIOCard.ts → VIA.ts} +64 -64
  123. package/src/components/IO/{VideoCard.ts → Video.ts} +1 -1
  124. package/src/components/Machine.ts +276 -176
  125. package/src/index.ts +34 -21
  126. package/src/lib.ts +16 -16
  127. package/src/tests/IO/{SerialCard.test.ts → ACIA.test.ts} +5 -5
  128. package/src/tests/IO/{GPIOAttachments/GPIOAttachment.test.ts → Attachments/Attachment.test.ts} +12 -12
  129. package/src/tests/IO/{GPIOAttachments/GPIOJoystickAttachment.test.ts → Attachments/JoystickAttachment.test.ts} +23 -23
  130. package/src/tests/IO/{GPIOAttachments/GPIOKeyboardEncoderAttachment.test.ts → Attachments/KeyboardEncoderAttachment.test.ts} +4 -4
  131. package/src/tests/IO/{GPIOAttachments/GPIOKeyboardMatrixAttachment.test.ts → Attachments/KeyboardMatrixAttachment.test.ts} +5 -5
  132. package/src/tests/IO/{GPIOAttachments/GPIOKeypadAttachment.test.ts → Attachments/KeypadAttachment.test.ts} +38 -38
  133. package/src/tests/IO/{GPIOAttachments/GPIOLCDAttachment.test.ts → Attachments/LCDAttachment.test.ts} +12 -12
  134. package/src/tests/IO/Empty.test.ts +143 -0
  135. package/src/tests/IO/{RAMCard.test.ts → RAMBank.test.ts} +33 -33
  136. package/src/tests/IO/{RTCCard.test.ts → RTC.test.ts} +6 -6
  137. package/src/tests/IO/{SoundCard.test.ts → Sound.test.ts} +6 -6
  138. package/src/tests/IO/{StorageCard.test.ts → Storage.test.ts} +34 -25
  139. package/src/tests/IO/{GPIOCard.test.ts → VIA.test.ts} +7 -7
  140. package/src/tests/IO/{VideoCard.test.ts → Video.test.ts} +13 -13
  141. package/src/tests/Machine.test.ts +31 -38
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LCDAttachment.js","sourceRoot":"","sources":["../../../../src/components/IO/Attachments/LCDAttachment.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,sEAAsE;AAEzD,QAAA,aAAa,GAAoB,IAAI,CAAA;AACrC,QAAA,YAAY,GAAqB,IAAI,CAAA;AACrC,QAAA,kBAAkB,GAAe,IAAI,CAAA;AACrC,QAAA,4BAA4B,GAAK,IAAI,CAAA;AACrC,QAAA,wBAAwB,GAAS,IAAI,CAAA;AACrC,QAAA,eAAe,GAAkB,IAAI,CAAA;AACrC,QAAA,kBAAkB,GAAe,IAAI,CAAA;AACrC,QAAA,sBAAsB,GAAW,IAAI,CAAA;AACrC,QAAA,4BAA4B,GAAK,IAAI,CAAA;AACrC,QAAA,aAAa,GAAoB,IAAI,CAAA;AACrC,QAAA,qBAAqB,GAAY,IAAI,CAAA;AACrC,QAAA,mBAAmB,GAAc,IAAI,CAAA;AACrC,QAAA,gBAAgB,GAAiB,IAAI,CAAA;AACrC,QAAA,0BAA0B,GAAO,IAAI,CAAA;AACrC,QAAA,sBAAsB,GAAW,IAAI,CAAA;AACrC,QAAA,qBAAqB,GAAY,IAAI,CAAA;AAElD,sEAAsE;AAEtE,MAAM,aAAa,GAAI,CAAC,CAAA;AACxB,MAAM,cAAc,GAAG,CAAC,CAAA;AAExB,MAAM,UAAU,GAAgB,GAAG,CAAA;AACnC,MAAM,mBAAmB,GAAO,EAAE,CAAA;AAClC,MAAM,cAAc,GAAY,GAAG,GAAG,mBAAmB,CAAA;AACzD,MAAM,kBAAkB,GAAQ,IAAI,CAAA;AAEpC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAChC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEhC,MAAM,WAAW,GAAG,oCAA4B,GAAG,8BAAsB,CAAA;AAEzE,mDAAmD;AACnD,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5C,sEAAsE;AAEtE,MAAM,MAAM,GAAG,IAAI,CAAA,CAAE,QAAQ;AAC7B,MAAM,MAAM,GAAG,IAAI,CAAA,CAAE,QAAQ;AAC7B,MAAM,KAAK,GAAI,IAAI,CAAA,CAAE,QAAQ;AAE7B,sEAAsE;AACtE,oEAAoE;AACpE,yDAAyD;AAEzD,MAAM,QAAQ,GAAqE;IACjF,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,gBAAgB;IAC5C,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,YAAY;IACxC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,UAAU;IACtC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,WAAW;IACvC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,WAAW;IACvC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,CAAC,EAAE,MAAM;IAClC,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EA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"}
@@ -0,0 +1,85 @@
1
+ import { AttachmentBase } from './Attachment';
2
+ /**
3
+ * SNESAttachment - Emulates two Super Nintendo controllers attached to a VIA GPIO port.
4
+ *
5
+ * Pin mapping (on the attached port):
6
+ * Bit 0 (0x01) — CLK : clock signal driven by the 6502 (output)
7
+ * Bit 1 (0x02) — LATCH : latch signal driven by the 6502 (output)
8
+ * Bit 2 (0x04) — DATA1 : serial data from controller 1 to the 6502 (input)
9
+ * Bit 3 (0x08) — DATA2 : serial data from controller 2 to the 6502 (input)
10
+ *
11
+ * Protocol (SNES / NES shift-register protocol):
12
+ * 1. CPU pulses LATCH high then low — controllers sample their button states
13
+ * and the first bit (bit 0) appears on the DATA lines.
14
+ * 2. Each subsequent falling edge on CLK shifts to the next bit.
15
+ * 3. A total of 16 bits are transmitted per controller (SNES).
16
+ *
17
+ * SNES bit order (bit 0 first):
18
+ * 0=B 1=Y 2=SEL 3=STA 4=UP 5=DN 6=LT 7=RT
19
+ * 8=A 9=X 10=L 11=R 12-15=1 (always high)
20
+ *
21
+ * All data bits are active-low (0 = button pressed, 1 = not pressed).
22
+ *
23
+ * Button state format matches the constants used in index.ts / JoystickAttachment:
24
+ * BUTTON_UP=0x01 BUTTON_DOWN=0x02 BUTTON_LEFT=0x04 BUTTON_RIGHT=0x08
25
+ * BUTTON_A=0x10 BUTTON_B=0x20 BUTTON_SELECT=0x40 BUTTON_START=0x80
26
+ */
27
+ export declare class SNESAttachment extends AttachmentBase {
28
+ static readonly BUTTON_UP = 1;
29
+ static readonly BUTTON_DOWN = 2;
30
+ static readonly BUTTON_LEFT = 4;
31
+ static readonly BUTTON_RIGHT = 8;
32
+ static readonly BUTTON_A = 16;
33
+ static readonly BUTTON_B = 32;
34
+ static readonly BUTTON_SELECT = 64;
35
+ static readonly BUTTON_START = 128;
36
+ private static readonly PIN_CLK;
37
+ private static readonly PIN_LATCH;
38
+ private static readonly PIN_DATA1;
39
+ private static readonly PIN_DATA2;
40
+ private static readonly SNES_BITS;
41
+ private readonly attachedToPortA;
42
+ private buttonState1;
43
+ private buttonState2;
44
+ private shiftReg1;
45
+ private shiftReg2;
46
+ private bitIndex;
47
+ private prevLatch;
48
+ private prevClk;
49
+ /**
50
+ * @param attachToPortA - true to respond on Port A, false for Port B
51
+ * @param priority - attachment priority (lower = higher priority)
52
+ */
53
+ constructor(attachToPortA?: boolean, priority?: number);
54
+ reset(): void;
55
+ readPortA(ddr: number, or: number): number;
56
+ readPortB(ddr: number, or: number): number;
57
+ writePortA(value: number, ddr: number): void;
58
+ writePortB(value: number, ddr: number): void;
59
+ /**
60
+ * Update the button state for controller 1 (DATA1 line).
61
+ * @param buttons - Button state byte using BUTTON_x bit masks (1 = pressed)
62
+ */
63
+ updateController1(buttons: number): void;
64
+ /**
65
+ * Update the button state for controller 2 (DATA2 line).
66
+ * @param buttons - Button state byte using BUTTON_x bit masks (1 = pressed)
67
+ */
68
+ updateController2(buttons: number): void;
69
+ /**
70
+ * Build a 16-bit SNES shift register from a button-state byte.
71
+ * Bits are active-low (0 = pressed, 1 = not pressed).
72
+ * Bits 12-15 are always 1 (used by the protocol to identify controller type).
73
+ * Y (bit 1), X (bit 9), L (bit 10), R (bit 11) have no mapping and stay 1.
74
+ */
75
+ private buildShiftRegister;
76
+ /**
77
+ * Detect LATCH / CLK signal transitions and update internal state accordingly.
78
+ */
79
+ private handleSignals;
80
+ /**
81
+ * Return the port byte with DATA1 and DATA2 reflecting the current shift-register bit.
82
+ * All other bits (CLK, LATCH, and unused bits 4-7) are returned as 1.
83
+ */
84
+ private currentDataBits;
85
+ }
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SNESAttachment = void 0;
4
+ const Attachment_1 = require("./Attachment");
5
+ /**
6
+ * SNESAttachment - Emulates two Super Nintendo controllers attached to a VIA GPIO port.
7
+ *
8
+ * Pin mapping (on the attached port):
9
+ * Bit 0 (0x01) — CLK : clock signal driven by the 6502 (output)
10
+ * Bit 1 (0x02) — LATCH : latch signal driven by the 6502 (output)
11
+ * Bit 2 (0x04) — DATA1 : serial data from controller 1 to the 6502 (input)
12
+ * Bit 3 (0x08) — DATA2 : serial data from controller 2 to the 6502 (input)
13
+ *
14
+ * Protocol (SNES / NES shift-register protocol):
15
+ * 1. CPU pulses LATCH high then low — controllers sample their button states
16
+ * and the first bit (bit 0) appears on the DATA lines.
17
+ * 2. Each subsequent falling edge on CLK shifts to the next bit.
18
+ * 3. A total of 16 bits are transmitted per controller (SNES).
19
+ *
20
+ * SNES bit order (bit 0 first):
21
+ * 0=B 1=Y 2=SEL 3=STA 4=UP 5=DN 6=LT 7=RT
22
+ * 8=A 9=X 10=L 11=R 12-15=1 (always high)
23
+ *
24
+ * All data bits are active-low (0 = button pressed, 1 = not pressed).
25
+ *
26
+ * Button state format matches the constants used in index.ts / JoystickAttachment:
27
+ * BUTTON_UP=0x01 BUTTON_DOWN=0x02 BUTTON_LEFT=0x04 BUTTON_RIGHT=0x08
28
+ * BUTTON_A=0x10 BUTTON_B=0x20 BUTTON_SELECT=0x40 BUTTON_START=0x80
29
+ */
30
+ class SNESAttachment extends Attachment_1.AttachmentBase {
31
+ /**
32
+ * @param attachToPortA - true to respond on Port A, false for Port B
33
+ * @param priority - attachment priority (lower = higher priority)
34
+ */
35
+ constructor(attachToPortA = true, priority = 0) {
36
+ super(priority, false, false, false, false);
37
+ // Raw button states (1-bit-per-button, BUTTON_x masks, as received from the host)
38
+ this.buttonState1 = 0x00;
39
+ this.buttonState2 = 0x00;
40
+ // 16-bit SNES shift registers (active-low: 0=pressed, 1=not pressed)
41
+ this.shiftReg1 = 0xFFFF;
42
+ this.shiftReg2 = 0xFFFF;
43
+ // Index of the bit currently presented on DATA (0..15)
44
+ this.bitIndex = 0;
45
+ // Previous signal levels used to detect rising/falling edges
46
+ this.prevLatch = false;
47
+ this.prevClk = false;
48
+ this.attachedToPortA = attachToPortA;
49
+ }
50
+ reset() {
51
+ super.reset();
52
+ this.buttonState1 = 0x00;
53
+ this.buttonState2 = 0x00;
54
+ this.shiftReg1 = 0xFFFF;
55
+ this.shiftReg2 = 0xFFFF;
56
+ this.bitIndex = 0;
57
+ this.prevLatch = false;
58
+ this.prevClk = false;
59
+ }
60
+ // ---------------------------------------------------------------------------
61
+ // Port reads — supply DATA1 / DATA2 bits to the VIA for the CPU to read
62
+ // ---------------------------------------------------------------------------
63
+ readPortA(ddr, or) {
64
+ return this.attachedToPortA ? this.currentDataBits() : 0xFF;
65
+ }
66
+ readPortB(ddr, or) {
67
+ return this.attachedToPortA ? 0xFF : this.currentDataBits();
68
+ }
69
+ // ---------------------------------------------------------------------------
70
+ // Port writes — monitor CLK and LATCH transitions driven by the CPU
71
+ // ---------------------------------------------------------------------------
72
+ writePortA(value, ddr) {
73
+ if (this.attachedToPortA) {
74
+ this.handleSignals(value);
75
+ }
76
+ }
77
+ writePortB(value, ddr) {
78
+ if (!this.attachedToPortA) {
79
+ this.handleSignals(value);
80
+ }
81
+ }
82
+ // ---------------------------------------------------------------------------
83
+ // Controller state update API
84
+ // ---------------------------------------------------------------------------
85
+ /**
86
+ * Update the button state for controller 1 (DATA1 line).
87
+ * @param buttons - Button state byte using BUTTON_x bit masks (1 = pressed)
88
+ */
89
+ updateController1(buttons) {
90
+ this.buttonState1 = buttons & 0xFF;
91
+ }
92
+ /**
93
+ * Update the button state for controller 2 (DATA2 line).
94
+ * @param buttons - Button state byte using BUTTON_x bit masks (1 = pressed)
95
+ */
96
+ updateController2(buttons) {
97
+ this.buttonState2 = buttons & 0xFF;
98
+ }
99
+ // ---------------------------------------------------------------------------
100
+ // Private helpers
101
+ // ---------------------------------------------------------------------------
102
+ /**
103
+ * Build a 16-bit SNES shift register from a button-state byte.
104
+ * Bits are active-low (0 = pressed, 1 = not pressed).
105
+ * Bits 12-15 are always 1 (used by the protocol to identify controller type).
106
+ * Y (bit 1), X (bit 9), L (bit 10), R (bit 11) have no mapping and stay 1.
107
+ */
108
+ buildShiftRegister(buttons) {
109
+ let data = 0xFFFF; // start with all 1s (no buttons pressed)
110
+ if (buttons & SNESAttachment.BUTTON_B)
111
+ data &= ~(1 << 0); // B
112
+ // bit 1 = Y — unmapped, stays 1
113
+ if (buttons & SNESAttachment.BUTTON_SELECT)
114
+ data &= ~(1 << 2); // SELECT
115
+ if (buttons & SNESAttachment.BUTTON_START)
116
+ data &= ~(1 << 3); // START
117
+ if (buttons & SNESAttachment.BUTTON_UP)
118
+ data &= ~(1 << 4); // UP
119
+ if (buttons & SNESAttachment.BUTTON_DOWN)
120
+ data &= ~(1 << 5); // DOWN
121
+ if (buttons & SNESAttachment.BUTTON_LEFT)
122
+ data &= ~(1 << 6); // LEFT
123
+ if (buttons & SNESAttachment.BUTTON_RIGHT)
124
+ data &= ~(1 << 7); // RIGHT
125
+ if (buttons & SNESAttachment.BUTTON_A)
126
+ data &= ~(1 << 8); // A
127
+ // bits 9=X, 10=L, 11=R — unmapped, stay 1
128
+ // bits 12-15 — always 1 (controller present / protocol identification)
129
+ return data & 0xFFFF;
130
+ }
131
+ /**
132
+ * Detect LATCH / CLK signal transitions and update internal state accordingly.
133
+ */
134
+ handleSignals(value) {
135
+ const latch = (value & SNESAttachment.PIN_LATCH) !== 0;
136
+ const clk = (value & SNESAttachment.PIN_CLK) !== 0;
137
+ // LATCH rising edge: capture current button states and reset the bit counter
138
+ if (latch && !this.prevLatch) {
139
+ this.shiftReg1 = this.buildShiftRegister(this.buttonState1);
140
+ this.shiftReg2 = this.buildShiftRegister(this.buttonState2);
141
+ this.bitIndex = 0;
142
+ }
143
+ // CLK falling edge: advance to the next bit
144
+ if (!clk && this.prevClk) {
145
+ if (this.bitIndex < SNESAttachment.SNES_BITS - 1) {
146
+ this.bitIndex++;
147
+ }
148
+ }
149
+ this.prevLatch = latch;
150
+ this.prevClk = clk;
151
+ }
152
+ /**
153
+ * Return the port byte with DATA1 and DATA2 reflecting the current shift-register bit.
154
+ * All other bits (CLK, LATCH, and unused bits 4-7) are returned as 1.
155
+ */
156
+ currentDataBits() {
157
+ const bit1 = (this.shiftReg1 >> this.bitIndex) & 1;
158
+ const bit2 = (this.shiftReg2 >> this.bitIndex) & 1;
159
+ let result = 0xFF;
160
+ if (bit1 === 0)
161
+ result &= ~SNESAttachment.PIN_DATA1;
162
+ if (bit2 === 0)
163
+ result &= ~SNESAttachment.PIN_DATA2;
164
+ return result;
165
+ }
166
+ }
167
+ exports.SNESAttachment = SNESAttachment;
168
+ // Button bit masks — identical to the constants in index.ts
169
+ SNESAttachment.BUTTON_UP = 0x01;
170
+ SNESAttachment.BUTTON_DOWN = 0x02;
171
+ SNESAttachment.BUTTON_LEFT = 0x04;
172
+ SNESAttachment.BUTTON_RIGHT = 0x08;
173
+ SNESAttachment.BUTTON_A = 0x10;
174
+ SNESAttachment.BUTTON_B = 0x20;
175
+ SNESAttachment.BUTTON_SELECT = 0x40;
176
+ SNESAttachment.BUTTON_START = 0x80;
177
+ // Pin masks within the VIA port
178
+ SNESAttachment.PIN_CLK = 0x01; // bit 0 — driven by CPU
179
+ SNESAttachment.PIN_LATCH = 0x02; // bit 1 — driven by CPU
180
+ SNESAttachment.PIN_DATA1 = 0x04; // bit 2 — read by CPU (controller 1)
181
+ SNESAttachment.PIN_DATA2 = 0x08; // bit 3 — read by CPU (controller 2)
182
+ // Total number of bits shifted out per SNES controller read cycle
183
+ SNESAttachment.SNES_BITS = 16;
184
+ //# sourceMappingURL=SNESAttachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SNESAttachment.js","sourceRoot":"","sources":["../../../../src/components/IO/Attachments/SNESAttachment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { IO } from '../IO';
2
+ export declare class Empty implements IO {
3
+ raiseIRQ: () => void;
4
+ raiseNMI: () => void;
5
+ read(address: number): number;
6
+ write(address: number, data: number): void;
7
+ tick(frequency: number): void;
8
+ reset(coldStart: boolean): void;
9
+ }
@@ -6,14 +6,12 @@ class Empty {
6
6
  this.raiseIRQ = () => { };
7
7
  this.raiseNMI = () => { };
8
8
  }
9
- read(address) { return 0; }
10
- write(address, data) { }
11
- tick() { }
12
- reset() { }
13
- description() {
14
- return Empty.DESCRIPTION;
9
+ read(address) {
10
+ return 0;
15
11
  }
12
+ write(address, data) { }
13
+ tick(frequency) { }
14
+ reset(coldStart) { }
16
15
  }
17
16
  exports.Empty = Empty;
18
- Empty.DESCRIPTION = { className: 'Empty', title: 'Empty' };
19
17
  //# sourceMappingURL=Empty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Empty.js","sourceRoot":"","sources":["../../../src/components/IO/Empty.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAAlB;QAIE,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;QACnB,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IAWrB,CAAC;IATC,IAAI,CAAC,OAAe,IAAY,OAAO,CAAC,CAAA,CAAC,CAAC;IAC1C,KAAK,CAAC,OAAe,EAAE,IAAY,IAAS,CAAC;IAC7C,IAAI,KAAU,CAAC;IACf,KAAK,KAAU,CAAC;IAEhB,WAAW;QACT,OAAO,KAAK,CAAC,WAAW,CAAA;IAC1B,CAAC;;AAdH,sBAgBC;AAdQ,iBAAW,GAAkB,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,AAAxD,CAAwD"}
1
+ {"version":3,"file":"Empty.js","sourceRoot":"","sources":["../../../src/components/IO/Empty.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAAlB;QAEE,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;QACnB,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IAUrB,CAAC;IARC,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAY,IAAS,CAAC;IAC7C,IAAI,CAAC,SAAiB,IAAS,CAAC;IAChC,KAAK,CAAC,SAAkB,IAAS,CAAC;CAEnC;AAbD,sBAaC"}
@@ -1,5 +1,5 @@
1
1
  import { IO } from '../IO';
2
- import { GPIOAttachment } from './GPIOAttachments/GPIOAttachment';
2
+ import { Attachment } from './Attachments/Attachment';
3
3
  /**
4
4
  * GPIOCard - Emulates the 65C22 VIA (Versatile Interface Adapter)
5
5
  *
@@ -84,22 +84,22 @@ export declare class GPIOCard implements IO {
84
84
  * Attach a GPIO device to Port A
85
85
  * @param attachment - The attachment to add
86
86
  */
87
- attachToPortA(attachment: GPIOAttachment): void;
87
+ attachToPortA(attachment: Attachment): void;
88
88
  /**
89
89
  * Attach a GPIO device to Port B
90
90
  * @param attachment - The attachment to add
91
91
  */
92
- attachToPortB(attachment: GPIOAttachment): void;
92
+ attachToPortB(attachment: Attachment): void;
93
93
  /**
94
94
  * Get a Port A attachment by index
95
95
  * @param index - The attachment index
96
96
  * @returns The attachment or null if not found
97
97
  */
98
- getPortAAttachment(index: number): GPIOAttachment | null;
98
+ getPortAAttachment(index: number): Attachment | null;
99
99
  /**
100
100
  * Get a Port B attachment by index
101
101
  * @param index - The attachment index
102
102
  * @returns The attachment or null if not found
103
103
  */
104
- getPortBAttachment(index: number): GPIOAttachment | null;
104
+ getPortBAttachment(index: number): Attachment | null;
105
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GPIOCard.js","sourceRoot":"","sources":["../../../src/components/IO/GPIOCard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GPIOCard.js","sourceRoot":"","sources":["../../../src/components/IO/GPIOCard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { IO } from '../IO';
2
+ /**
3
+ * RAMBank - Emulates banked RAM with 256KB total capacity
4
+ *
5
+ * Provides 256KB of banked RAM divided into 256 banks of 1KB each.
6
+ * A bank control register at address 0x3FF selects which bank is currently visible.
7
+ *
8
+ * Address Map:
9
+ * $000-$3FE: Bank data (1K window into selected bank)
10
+ * $3FF: Bank control register (read/write)
11
+ */
12
+ export declare class RAMBank implements IO {
13
+ static TOTAL_SIZE: number;
14
+ static BANK_SIZE: number;
15
+ static NUM_BANKS: number;
16
+ static BANK_CONTROL_REGISTER: number;
17
+ data: number[];
18
+ currentBank: number;
19
+ raiseIRQ: () => void;
20
+ raiseNMI: () => void;
21
+ /**
22
+ * Read from RAM or bank control register
23
+ */
24
+ read(address: number): number;
25
+ /**
26
+ * Write to RAM or bank control register
27
+ */
28
+ write(address: number, data: number): void;
29
+ /**
30
+ * Tick - no timing behavior for RAM
31
+ */
32
+ tick(frequency: number): void;
33
+ /**
34
+ * Reset the RAM card
35
+ */
36
+ reset(coldStart: boolean): void;
37
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RAMBank = void 0;
4
+ /**
5
+ * RAMBank - Emulates banked RAM with 256KB total capacity
6
+ *
7
+ * Provides 256KB of banked RAM divided into 256 banks of 1KB each.
8
+ * A bank control register at address 0x3FF selects which bank is currently visible.
9
+ *
10
+ * Address Map:
11
+ * $000-$3FE: Bank data (1K window into selected bank)
12
+ * $3FF: Bank control register (read/write)
13
+ */
14
+ class RAMBank {
15
+ constructor() {
16
+ this.data = [...Array(RAMBank.TOTAL_SIZE)].fill(0x00);
17
+ this.currentBank = 0;
18
+ this.raiseIRQ = () => { };
19
+ this.raiseNMI = () => { };
20
+ }
21
+ /**
22
+ * Read from RAM or bank control register
23
+ */
24
+ read(address) {
25
+ // Reading from bank control register returns current bank number
26
+ if (address === RAMBank.BANK_CONTROL_REGISTER) {
27
+ return this.currentBank;
28
+ }
29
+ // Calculate actual address in RAM: bank * bank_size + offset and return data
30
+ return this.data[this.currentBank * RAMBank.BANK_SIZE + address];
31
+ }
32
+ /**
33
+ * Write to RAM or bank control register
34
+ */
35
+ write(address, data) {
36
+ // Writing to bank control register switches banks
37
+ if (address === RAMBank.BANK_CONTROL_REGISTER) {
38
+ this.currentBank = data & 0xFF; // Ensure 0-255 range
39
+ return;
40
+ }
41
+ // Calculate actual address in RAM: bank * bank_size + offset and store data
42
+ this.data[this.currentBank * RAMBank.BANK_SIZE + address] = data & 0xFF;
43
+ }
44
+ /**
45
+ * Tick - no timing behavior for RAM
46
+ */
47
+ tick(frequency) { }
48
+ /**
49
+ * Reset the RAM card
50
+ */
51
+ reset(coldStart) {
52
+ if (coldStart) {
53
+ this.currentBank = 0;
54
+ this.data.fill(0x00);
55
+ }
56
+ }
57
+ }
58
+ exports.RAMBank = RAMBank;
59
+ RAMBank.TOTAL_SIZE = 256 * 1024; // 256k bytes
60
+ RAMBank.BANK_SIZE = 1024; // 1k per bank
61
+ RAMBank.NUM_BANKS = RAMBank.TOTAL_SIZE / RAMBank.BANK_SIZE; // 256 banks
62
+ RAMBank.BANK_CONTROL_REGISTER = 0x3FF; // Last byte in 1k window
63
+ //# sourceMappingURL=RAMBank.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RAMBank.js","sourceRoot":"","sources":["../../../src/components/IO/RAMBank.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACH,MAAa,OAAO;IAApB;QAOE,SAAI,GAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,gBAAW,GAAW,CAAC,CAAA;QAEvB,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;QACnB,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IA4CrB,CAAC;IA1CC;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,iEAAiE;QACjE,IAAI,OAAO,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;QAED,6EAA6E;QAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,CAAA;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,IAAY;QACjC,kDAAkD;QAClD,IAAI,OAAO,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,qBAAqB;YACpD,OAAM;QACR,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,SAAiB,IAAS,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,SAAkB;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;;AArDH,0BAuDC;AArDQ,kBAAU,GAAW,GAAG,GAAG,IAAI,AAArB,CAAqB,CAAC,aAAa;AAC7C,iBAAS,GAAW,IAAI,AAAf,CAAe,CAAC,cAAc;AACvC,iBAAS,GAAW,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,AAAjD,CAAiD,CAAC,YAAY;AACvE,6BAAqB,GAAW,KAAK,AAAhB,CAAgB,CAAC,yBAAyB"}