[Local symbol table -- service.s:] BeepStart: 016000 Cmd_MDump: 020010 JmpLoop: 010000 MemDumpStart: 020000 PROCLOC1: 041540 RWKLoc: 001777 RWKLoop: 012004 RWKStart: 012000 RWKTestVal: 012007 RWLoc1: 014010 RWLoc2: 014011 RWLoop: 014004 RWStart: 014000 RWTestVal: 014007 StkBottom: 020007 StkPtr: 001777 _beepLoop: 016003 _delayLoop: 016004 [Global symbol table:] [Source file 'service.s':] /************************************************************************ * * HP9830 Service ROM * * Several test routines to populate the Service ROM. * Each routine is aligned to start on one of 16 64-word boundaries. * The DR switches select which of these start points is mapped to * processor address 0, so the processor will boot to and execute * the selected routine. * * 2024 May: created / bh * ************************************************************************/ PROCLOC1 equ 041540 // special value required for processor microcode at address 1 /************************************************************* * DEBUG 0: Jump-to-self loop * **************************************************************/ org 010000 10000: 066000 JmpLoop JMP JmpLoop /************************************************************* * DEBUG 1: Write-Read RAM loop of Stack Pointer location * **************************************************************/ org 012000 12000: 066003 RWKStart JMP .+3 12001: 041540 dw PROCLOC1 // constant for MACs 12002: 066002 JMP . // interrupt vector 12003: 022007 LDA RWKTestVal 12004: 031777 RWKLoop STA RWKLoc 12005: 025777 LDB RWKLoc 12006: 066004 JMP RWKLoop 12007: 001515 RWKTestVal dw 01515 RWKLoc equ 01777 // test stack location /************************************************************* * DEBUG 2: Write-Read RAM loop in locations on both RAM boards * **************************************************************/ org 014000 14000: 066003 RWStart JMP .+3 14001: 041540 dw PROCLOC1 // constant for MACs 14002: 066002 JMP . // interrupt vector 14003: 022007 LDA RWTestVal 14004: 132010 RWLoop STA RWLoc1,I 14005: 126011 LDB RWLoc2,I 14006: 066004 JMP RWLoop 14007: 001515 RWTestVal dw 01515 14010: 042000 RWLoc1 dw 042000 14011: 050000 RWLoc2 dw 050000 /************************************************************* * DEBUG 3: Beep-Delay loop * **************************************************************/ org 016000 16000: 066003 BeepStart JMP .+3 16001: 041540 dw PROCLOC1 // constant for MACs 16002: 066002 JMP . // interrupt vector 16003: 172602 _beepLoop STC 2 // beep the 9830, beeper is control bit on channel 2 16004: 072030 _delayLoop RIA _delayLoop // loop until zero for delay, inc delay counter (A) 16005: 066003 JMP _beepLoop /************************************************************* * DEBUG 4: Memory Dump * **************************************************************/ org 020000 20000: 066003 MemDumpStart JMP .+3 20001: 041540 dw PROCLOC1 // constant for MACs 20002: 066002 JMP . // interrupt vector 20003: 022007 LDA StkBottom // setup subroutine call stack 20004: 031777 STA StkPtr 20005: 162010 JSM Cmd_MDump,I 20006: 066006 JMP . // loop on return 20007: 001400 StkBottom dw 01400 20010: 033570 Cmd_MDump dw 033570