- removed cycle counting in CPU, the sim_interval issue - fixed the Console multiplexer logic; it now works with SET REMOTE TELNET= and SET CONSOLE TELNET= - commented testhdt.sim - changed run.cmd to try to execute either VStudio or mingw executable, in this order. - changed printf messages to use sim_printf Possible issues remaining: - timer device polling, not yet debugged, the rate of 1.25MHz is likely still incorrect, so UCSD wall clock is surely wrong - few instructions still to be trapped by opcode.debug - I haven't seen them in life code yet - HD device still not yet finished; I'll pick this up again soon
158 lines
3.2 KiB
Text
158 lines
3.2 KiB
Text
;**** some possible debugging options
|
|
;set debug debug.log
|
|
;set debug stdout
|
|
|
|
;**** debugging of FDC
|
|
;**** read/write operations, attach&detach, FDC service, IMD handling, DMA/verbose, FDC cmds
|
|
;set fdc debug=read
|
|
;set fdc debug=write
|
|
;set fdc debug=verbose
|
|
;set fdc debug=svc
|
|
;set fdc debug=imd
|
|
;set fdc debug=dma
|
|
;set fdc debug=dmavb
|
|
;set fdc debug=cmd
|
|
|
|
;**** debugging of CPU: exceptions, tracing, memory read/write
|
|
;**** opcode fetch, stack push/pull, concurrency
|
|
;set cpu exc
|
|
;set cpu debug=int
|
|
;set cpu debug=trace
|
|
;set cpu debug=write
|
|
;set cpu debug=read
|
|
;set cpu debug=fetch
|
|
;set cpu debug=stack
|
|
;set cpu debug=conc
|
|
|
|
;**** debugging of console: read/write to registers
|
|
;set con debug=read
|
|
;set con debug=write
|
|
|
|
;**** debugging of timer: read/write, service
|
|
;set tim debug=read
|
|
;set tim debug=write
|
|
;set tim debug=svc
|
|
|
|
;**** you should attach a telnet terminal emulator to PDQ-3 console
|
|
;**** to avoid mess with SIMH's control panel
|
|
set console telnet=8000
|
|
|
|
;**** you might remote control SIMH's control panel
|
|
;set remote telnet=7000,telnet=buffered
|
|
|
|
;**** you need a boot disk
|
|
att fdc0 master.imd
|
|
|
|
;**** make this write protected currently while emulator is still being debugged
|
|
set fdc0 wrtlck
|
|
|
|
;**** disable the second FDC
|
|
set fdc1 disable
|
|
|
|
;************************************************************************
|
|
;**** The following is pure f***ing magic - you must have the source code
|
|
;**** and a commented object dump of boot loader, SYSTEM.PASCAL, SYSTEM.DRIVERS etc.
|
|
; otherwise you won't understand where I had checkpoints for debugging.
|
|
|
|
; HDT boot
|
|
;break f418:368
|
|
;break f418:36a
|
|
;break f418:218
|
|
|
|
; HDT:bootfd
|
|
;break f418:e0
|
|
|
|
; HDT CHK instruction: will fail if CPU serial is > 0x7fff
|
|
;break 2018:067d
|
|
;break 2018:070f
|
|
|
|
; entering PASCALSY
|
|
;break eb1e:10
|
|
|
|
; problem main loop in syscode1
|
|
;break dc26:1d0a
|
|
;break d488:b1b
|
|
;break d488:b55
|
|
|
|
; bug in SPR(4), does not save SP in TIB?
|
|
;break d488:bb8
|
|
;break d488:bc7
|
|
|
|
; problem with wait?
|
|
;break d488:0917
|
|
|
|
; interrupt debugging
|
|
;break d078:4f
|
|
;break d488:919
|
|
;break d488:ebe
|
|
;break dc26:ec3
|
|
;break d1bd:79
|
|
;break b80d:715
|
|
;break dc26:1d35
|
|
;break d488:806
|
|
;break d488:915
|
|
;break dc26:1d36
|
|
|
|
; SHELL handling
|
|
;break badf:98
|
|
;break badf:51
|
|
;break bbd2:1ba
|
|
;break bbd2:1be
|
|
;break bbd2:32a
|
|
|
|
; Ser_RawEmit
|
|
;break c964:5f2
|
|
;break d488:d80
|
|
;break c964:6be
|
|
|
|
; ticker interrrupts
|
|
;break d078:4f
|
|
;break d1bd:6e
|
|
|
|
; Start/Stop Process
|
|
;break d488:7f0
|
|
;break d488:92e
|
|
;break d488:934
|
|
;break d488:958
|
|
;break d488:0dd9
|
|
;break c964:756
|
|
;break c964:a6
|
|
;break c964:cf4
|
|
|
|
; waiting for DSR sem
|
|
;break c964:624
|
|
|
|
; Ser_Read
|
|
;break c964:466
|
|
;break c964:4f9
|
|
;break c964:4fa
|
|
;break c964:327
|
|
;break c964:59e
|
|
;break c964:323
|
|
|
|
;break d078:4c
|
|
;break d078:4f
|
|
;break d1bd:6a
|
|
;break d1bd:6d
|
|
|
|
;break d488:ed0
|
|
|
|
;****
|
|
;**** end of PFM section
|
|
;************************************************************************
|
|
|
|
;**** load the boot PROM code for HD support
|
|
load hdt/CPU_C5.BIN
|
|
;
|
|
;**** set the INIT bit of SSR
|
|
dep _ssr 80
|
|
dep _ses 80
|
|
|
|
;**** load some symbolic names for debuging (not needed in production)
|
|
do names.sim
|
|
|
|
;**** run
|
|
boot cpu
|
|
|
|
;**** reset debug mode to normal when boot fails.
|
|
set debug stdout
|