Commit graph

1,637 commits

Author SHA1 Message Date
Jeff
bdc946a62d Fixed some cycle calculation problems involving src and dst decoding (eg, when the dst operand is only being read, not written) 2016-10-03 15:31:01 -07:00
Jeff
2a065f4efc First stab at PDP-11 cycle times (11/70 to be precise) is more or less complete now 2016-10-03 14:27:14 -07:00
Jeff
07ee5497bc Added some polyfills for old browsers 2016-10-01 14:37:02 -07:00
Jeff
0b78b2885e Fixed MOV cycle calculation 2016-09-30 15:43:00 -07:00
Jeff
0e0dcb29ec Added some PDP-11 opcodes I missed (JMP and SWAB) 2016-09-30 15:27:53 -07:00
Jeff
af6b66d2a3 Laying the groundwork for an attempt at PDP-11 cycle counting (it won't be exact, but it should be close) 2016-09-30 12:00:07 -07:00
Jeff
a731313215 Updated default PDP-11 speed 2016-09-29 22:43:55 -07:00
Jeff
1d395b7bd5 Added some comments on cycle times 2016-09-29 15:36:34 -07:00
Jeff
98d3700fa4 Cleaned up OPFLAG handling 2016-09-29 14:02:37 -07:00
Jeff
b3ba03d0a5 Got rid of runState, implemented a solution for WAIT 2016-09-29 11:04:33 -07:00
Jeff
98081c6a6d Allow the PDP-11 debugger to use parentheses for sub-expressions 2016-09-29 09:38:17 -07:00
Jeff
44a2ec9f03 Fixed Debugger memory editing and register handling, tidied up some flag operations, and removed more now-unnecessary address checks in cpustate 2016-09-29 09:11:25 -07:00
Jeff
c7dbfc02be Fixed CPU start/stop control; runCPU is now strictly a worker function, not a control interface (PDP-11 only; other CPUs still need to be updated to match) 2016-09-28 22:21:52 -07:00
Jeff
c858fd0699 Codify reasons for assorted traps 2016-09-28 15:35:22 -07:00
Jeff
0ad98dc68b All PDP-11 opcode decoders implemented now 2016-09-28 13:45:36 -07:00
Jeff
ed189527d0 Optimized branch() 2016-09-27 21:51:24 -07:00
Jeff
b2c66b5374 Implemented more opcode decoders 2016-09-27 16:21:55 -07:00
Jeff
eb5aaa5d66 Strip leading zeros from selected debugger constants (typically immediate values) 2016-09-27 12:53:36 -07:00
Jeff
15fe831fc7 Sanpshot the bootcode used for initial PDP-11 testing 2016-09-27 11:40:47 -07:00
Jeff
9727a2d4df Across-the-board debugger fix 2016-09-27 09:34:56 -07:00
Jeff
e322c5f912 Implemented INC/DEC opcodes 2016-09-27 09:28:52 -07:00
Jeff
b2294e2293 Use CPU timer functions (instead of browser timeout/interval functions) to control device interrupts/timeouts 2016-09-26 20:34:31 -07:00
Jeff
3497466113 Cleaned up interrupt handling, register initialization, MMU initialization, etc 2016-09-26 16:53:37 -07:00
Jeff
1e1388b9ca Added KW11 interface (and LKS register) definitions 2016-09-26 12:36:36 -07:00
Jeff
4b4098a5c9 Cleaned up ACCESS defines 2016-09-26 11:57:21 -07:00
Jeff
6af956b8f0 Implemented branches and RTS 2016-09-26 11:27:32 -07:00
Jeff
5b25dc91ae Let's stop on any un(re)implemented opcode for now 2016-09-26 10:02:21 -07:00
Jeff
1ec60573d5 Implemented opJSR, removed more "negative address" tests (eg, in pushWord); bad addresses should result in special exceptions, not negative return values 2016-09-26 09:43:05 -07:00
Jeff
a4613082f8 Converted all "short" references to "word", since word meant 16-bit in the PDP-11 world, and no one said short back then 2016-09-26 08:53:35 -07:00
Jeff
a451bbc5bc Added another example of an I/O address handler (XCSR) 2016-09-25 15:15:06 -07:00
Jeff
da617d454d Laid groundwork for MMU-specific functions, to avoid address mapping work when unnecessary 2016-09-25 12:12:26 -07:00
Jeff
56c305ca64 Added more register documentation 2016-09-24 21:32:00 -07:00
Jeff
ff6d15a622 Updated the build process to formally declare that we're compiling from ES6 to ES5 (although for now, 99.99% of the code is already and will remain ES5.1-compatible) 2016-09-24 17:00:57 -07:00
Jeff
c9647a859d Link to Google's Closure Compiler ES6 wiki: https://github.com/google/closure-compiler/wiki/ECMAScript6 2016-09-24 16:45:55 -07:00
Jeff
63b0c9c02c Started centralizing the set of UNIBUS addresses, and adopted my first ES6 feature: octal constants (not the old-fashioned unofficial leading-zero kind, but the new "0o" kind); I will still use hex instead of octal whenever I can, but UNIBUS addresses are ALWAYS documented as octal, so I'm giving in.... 2016-09-24 16:44:42 -07:00
Jeff
b28166f493 Updated Closure Compiler to v20160911, so now we have a version that supports ECMAScript 6, but I'm not going to go bonkers on ES6 features just yet; the first feature I'm going to use is support for octal and binary constants (of the form 0onnnn and 0bnnnn) 2016-09-24 16:03:57 -07:00
Jeff
f82d6f1bfa Assorted improvements to new opcode decoders 2016-09-24 15:12:02 -07:00
Jeff
a7148a6eb3 Finished creating the new PDP-11 decoding skeleton 2016-09-23 17:59:18 -07:00
Jeff
b5a7525ad2 Fixed some sloppy coding (my bad) 2016-09-23 13:45:01 -07:00
Jeff
9d045008a3 More decoding functions 2016-09-23 13:16:12 -07:00
Jeff
7f0b6a091d Started work on new decoding functions 2016-09-22 18:47:32 -07:00
Jeff
a13bb9348a Bus-related defines moved to the Bus component 2016-09-22 08:21:28 -07:00
Jeff
122ca78fd5 Internal PSW getter/setter are now getPSW/setPSW 2016-09-22 08:03:43 -07:00
Jeff
0e38c6dbc7 Changed the primary means updating the PSW to setPSW(), and put some handcuffs on writePSW() 2016-09-21 19:02:36 -07:00
Jeff
7b3a2cb676 Migrated old PDP11 IOPAGE code to Device component 2016-09-21 16:00:40 -07:00
Jeff
52665168a9 Fixed I/O handler parameter order 2016-09-21 12:48:05 -07:00
Jeff
dfe367f53d New improved I/O handler functions for the PDP-11 2016-09-21 12:44:25 -07:00
Jeff Parsons
c61876a568 Added PSW to Debugger register dump 2016-09-20 14:56:05 -07:00
Jeff Parsons
1c9ea6445b New PDP11 Device component can now register read/write handlers for selected I/O addresses 2016-09-20 14:53:09 -07:00
Jeff Parsons
614fc11aca Restored support for custom memory controllers in the PDP11 emulator (to be used for UNIBUS I/O) 2016-09-20 11:19:42 -07:00