Line 1... |
Line 1... |
0 error(s), 1534 warning(s) unlisted in pass 1
|
3 error(s), 526 warning(s) unlisted in pass 1
|
|
; ============================================================================
|
|
; __
|
|
; \\__/ o\ (C) 2013-2022 Robert Finch, Waterloo
|
|
; \ __ / All rights reserved.
|
|
; \/_// robfinch@opencores.org
|
|
; ||
|
|
;
|
|
;
|
|
; BSD 3-Clause License
|
|
; Redistribution and use in source and binary forms, with or without
|
|
; modification, are permitted provided that the following conditions are met:
|
|
;
|
|
; 1. Redistributions of source code must retain the above copyright notice, this
|
|
; list of conditions and the following disclaimer.
|
|
;
|
|
; 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
; this list of conditions and the following disclaimer in the documentation
|
|
; and/or other materials provided with the distribution.
|
|
;
|
|
; 3. Neither the name of the copyright holder nor the names of its
|
|
; contributors may be used to endorse or promote products derived from
|
|
; this software without specific prior written permission.
|
|
;
|
|
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
; CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
;
|
|
; ============================================================================
|
|
;
|
; ============================================================================
|
; ============================================================================
|
; __
|
; __
|
; \\__/ o\ (C) 2013-2022 Robert Finch, Waterloo
|
; \\__/ o\ (C) 2013-2022 Robert Finch, Waterloo
|
; \ __ / All rights reserved.
|
; \ __ / All rights reserved.
|
; \/_// robfinch@opencores.org
|
; \/_// robfinch@opencores.org
|
Line 52... |
Line 88... |
|
|
FIRST_CORE EQU 1
|
FIRST_CORE EQU 1
|
MAX_TASKNO EQU 63
|
MAX_TASKNO EQU 63
|
DRAM_BASE EQU $10000000
|
DRAM_BASE EQU $10000000
|
|
|
ScreenLocation EQU $10
|
; ROM monitor functions
|
ColorCodeLocation EQU $14
|
;
|
ScreenLocation2 EQU $18
|
MF_Monitor EQU 0
|
BlkcpySrc EQU $1C
|
MF_INCH EQU 1
|
BlkcpyDst EQU $20
|
MF_OUTCH EQU 2
|
Strptr EQU $24
|
MF_CRLF EQU 3
|
PICptr EQU $28
|
MF_DisplayString EQU 4
|
; Forth Area
|
MF_DisplayByteAsHex EQU 5
|
; 0x30-0x60
|
MF_DisplayWordAsHex EQU 6
|
|
MF_ShowSprites EQU 7
|
RunningID EQU $800000
|
MF_Srand EQU 8
|
|
MF_Random EQU 9
|
; Task control blocks, room for 256 tasks
|
MF_OSCALL EQU 10
|
TCB_NxtRdy EQU $00 ; next task on ready / timeout list
|
MF_GetRange EQU 11
|
TCB_PrvRdy EQU $04 ; previous task on ready / timeout list
|
|
TCB_NxtTCB EQU $08
|
|
TCB_Timeout EQU $0C
|
|
TCB_Priority EQU $10
|
|
TCB_MSGPTR_D1 EQU $14
|
|
TCB_MSGPTR_D2 EQU $18
|
|
TCB_hJCB EQU $1C
|
|
TCB_Status EQU $1E
|
|
TCB_CursorRow EQU $20
|
|
TCB_CursorCol EQU $21
|
|
TCB_hWaitMbx EQU $22 ; handle of mailbox task is waiting at
|
|
TCB_mbq_next EQU $24 ; mailbox queue next
|
|
TCB_mbq_prev EQU $28 ; mailbox queue previous
|
|
TCB_iof_next EQU $2C
|
|
TCB_iof_prev EQU $30
|
|
TCB_SPSave EQU $34 ; TCB_SPSave area
|
|
TCB_mmu_map EQU $38
|
|
|
|
KeybdHead EQU $FFFFFC800
|
mon_numwka EQU $910
|
KeybdTail EQU $FFFFFC900
|
mon_r1 EQU $920
|
KeybdEcho EQU $FFFFFCA00
|
mon_r2 EQU $924
|
KeybdBad EQU $FFFFFCB00
|
; ============================================================================
|
KeybdAck EQU $FFFFFCC00
|
; __
|
KeybdLocks EQU $FFFFFCD00
|
; \\__/ o\ (C) S2022 Robert Finch, Waterloo
|
KeybdBuffer EQU $FFFFFC000 ; buffer is 16 chars
|
; \ __ / All rights reserved.
|
|
; \/_// robfinch@opencores.org
|
|
; ||
|
|
;
|
|
;
|
|
; BSD 3-Clause License
|
|
; Redistribution and use in source and binary forms, with or without
|
|
; modification, are permitted provided that the following conditions are met:
|
|
;
|
|
; 1. Redistributions of source code must retain the above copyright notice, this
|
|
; list of conditions and the following disclaimer.
|
|
;
|
|
; 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
; this list of conditions and the following disclaimer in the documentation
|
|
; and/or other materials provided with the distribution.
|
|
;
|
|
; 3. Neither the name of the copyright holder nor the names of its
|
|
; contributors may be used to endorse or promote products derived from
|
|
; this software without specific prior written permission.
|
|
;
|
|
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
; CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
;
|
|
; ============================================================================
|
|
|
COREID EQU $FFFFFFFE0
|
COREID EQU $FFFFFFFE0
|
MSCOUNT EQU $FFFFFFFE4
|
MSCOUNT EQU $FFFFFFFE4
|
LEDS EQU $FFFE60001
|
LEDS EQU $FFFE60001
|
VIA EQU $FFFE60000
|
VIA EQU $FFFE60000
|
Line 106... |
Line 156... |
VIA_T3LL EQU 18
|
VIA_T3LL EQU 18
|
VIA_T3LH EQU 19
|
VIA_T3LH EQU 19
|
VIA_T3CMPL EQU 20
|
VIA_T3CMPL EQU 20
|
VIA_T3CMPH EQU 21
|
VIA_T3CMPH EQU 21
|
TEXTSCR EQU $FFFE00000
|
TEXTSCR EQU $FFFE00000
|
TEXTREG EQU $FFFE0DF00
|
TEXTREG EQU $FFFE07F00
|
TEXT_COLS EQU 0
|
TEXT_COLS EQU 0
|
TEXT_ROWS EQU 1
|
TEXT_ROWS EQU 1
|
TEXT_CURPOS EQU 34
|
TEXT_CURPOS EQU 34
|
|
COLS EQU 64
|
|
ROWS EQU 32
|
ACIA EQU $FFFE30100
|
ACIA EQU $FFFE30100
|
ACIA_TX EQU 0
|
ACIA_TX EQU 0
|
ACIA_RX EQU 0
|
ACIA_RX EQU 0
|
ACIA_STAT EQU 1
|
ACIA_STAT EQU 1
|
ACIA_CMD EQU 2
|
ACIA_CMD EQU 2
|
ACIA_CTRL EQU 3
|
ACIA_CTRL EQU 3
|
ACIA_CTRL2 EQU 11
|
ACIA_CTRL2 EQU 11
|
RTC EQU $FFFE30500 ; I2C
|
RTC EQU $FFFE30500 ; I2C
|
RTCBuf EQU $7FC0
|
RTCBuf EQU $7FC0
|
|
PRNG EQU $FFFE30600
|
KEYBD EQU $FFFE30400
|
KEYBD EQU $FFFE30400
|
KEYBDCLR EQU $FFFE30402
|
KEYBDCLR EQU $FFFE30402
|
PIC EQU $FFFE3F000
|
PIC EQU $FFFE3F000
|
SPRITE_CTRL EQU $FFFE10000
|
SPRITE_CTRL EQU $FFFE10000
|
SPRITE_EN EQU $3C0
|
SPRITE_EN EQU $3C0
|
|
|
OUTSEMA EQU $EF0000
|
OUTSEMA EQU $EF0000
|
SEMAABS EQU $1000
|
SEMAABS EQU $1000
|
OSSEMA EQU $EF0010
|
OSSEMA EQU $EF0010
|
|
|
|
ScreenLocation EQU $10
|
|
ColorCodeLocation EQU $14
|
|
ScreenLocation2 EQU $18
|
|
BlkcpySrc EQU $1C
|
|
BlkcpyDst EQU $20
|
|
Strptr EQU $24
|
|
PICptr EQU $28
|
|
; Forth Area
|
|
; 0x30-0x60
|
|
|
|
; Task control blocks, room for 256 tasks
|
|
TCB_NxtRdy EQU $00 ; next task on ready / timeout list
|
|
TCB_PrvRdy EQU $04 ; previous task on ready / timeout list
|
|
TCB_NxtTCB EQU $08
|
|
TCB_Timeout EQU $0C
|
|
TCB_Priority EQU $10
|
|
TCB_MSGPTR_D1 EQU $14
|
|
TCB_MSGPTR_D2 EQU $18
|
|
TCB_hJCB EQU $1C
|
|
TCB_Status EQU $1E
|
|
TCB_CursorRow EQU $20
|
|
TCB_CursorCol EQU $21
|
|
TCB_hWaitMbx EQU $22 ; handle of mailbox task is waiting at
|
|
TCB_mbq_next EQU $24 ; mailbox queue next
|
|
TCB_mbq_prev EQU $28 ; mailbox queue previous
|
|
TCB_iof_next EQU $2C
|
|
TCB_iof_prev EQU $30
|
|
TCB_SPSave EQU $34 ; TCB_SPSave area
|
|
TCB_mmu_map EQU $38
|
|
|
|
KeybdHead EQU $FFFFFC800
|
|
KeybdTail EQU $FFFFFC900
|
|
KeybdEcho EQU $FFFFFCA00
|
|
KeybdBad EQU $FFFFFCB00
|
|
KeybdAck EQU $FFFFFCC00
|
|
KeybdLocks EQU $FFFFFCD00
|
|
KeybdBuffer EQU $FFFFFC000 ; buffer is 16 chars
|
|
|
BIOS_SCREENS EQU $17000000 ; $17000000 to $171FFFFF
|
BIOS_SCREENS EQU $17000000 ; $17000000 to $171FFFFF
|
|
|
; EhBASIC vars:
|
; EhBASIC vars:
|
;
|
;
|
NmiBase EQU $FF0013
|
NmiBase EQU $FFC013
|
IrqBase EQU $FF0014
|
IrqBase EQU $FFC014
|
|
|
IOFocusNdx EQU $100
|
IOFocusNdx EQU $100
|
|
|
; These variables in global OS storage area
|
; These variables in global OS storage area
|
|
|
IOFocusList EQU $FF0000 ; to $FF000F
|
IOFocusList EQU $FFC000 ; to $FF000F
|
IOFocusID EQU $FF0010
|
IOFocusID EQU $FFC010
|
IrqSource EQU $FF0011
|
IrqSource EQU $FFC011
|
IRQFlag EQU $FF0012
|
IRQFlag EQU $FFC012
|
|
RunningID EQU $FFC013
|
|
|
; These variables use direct page access
|
; These variables use direct page access
|
CursorRow EQU $110
|
CursorRow EQU $110
|
CursorCol EQU $111
|
CursorCol EQU $111
|
CharColor EQU $112
|
CharColor EQU $112
|
Line 191... |
Line 282... |
|
|
CharOutVec EQU $800
|
CharOutVec EQU $800
|
CharInVec EQU $804
|
CharInVec EQU $804
|
CmdPromptJI EQU $808
|
CmdPromptJI EQU $808
|
MonErrVec EQU $80C
|
MonErrVec EQU $80C
|
|
BreakpointFlag EQU $810
|
|
NumSetBreakpoints EQU $811
|
|
Breakpoints EQU $820 ; to $82F
|
|
BreakpointBytes EQU $830 ; to $83F
|
|
mon_vectb EQU $880
|
|
|
; Register save area for monitor
|
; Register save area for monitor
|
mon_DSAVE EQU $900
|
mon_DSAVE EQU $900
|
mon_XSAVE EQU $902
|
mon_XSAVE EQU $902
|
mon_YSAVE EQU $904
|
mon_YSAVE EQU $904
|
Line 205... |
Line 301... |
mon_CCRSAVE EQU $90F
|
mon_CCRSAVE EQU $90F
|
|
|
mon_numwka EQU $910
|
mon_numwka EQU $910
|
mon_r1 EQU $920
|
mon_r1 EQU $920
|
mon_r2 EQU $924
|
mon_r2 EQU $924
|
|
jmpvec EQU $928
|
|
|
; The ORG directive must set an address a multiple of 4 in order for the Verilog
|
; The ORG directive must set an address a multiple of 4 in order for the Verilog
|
; output to work correctly.
|
; output to work correctly.
|
|
|
org $FFD0AC
|
org $FFD0AC
|
Line 247... |
Line 344... |
|
|
org $FFD2CC
|
org $FFD2CC
|
00FFD2CC 012 nop
|
00FFD2CC 012 nop
|
00FFD2CD 012 nop
|
00FFD2CD 012 nop
|
HEX2
|
HEX2
|
00FFD2CE 017001139 lbsr DispByteAsHex
|
00FFD2CE 017001142 lbsr DispByteAsHex
|
00FFD2D1 039 rts
|
00FFD2D1 039 rts
|
HEX4
|
HEX4
|
00FFD2D2 01700112C lbsr DispWordAsHex
|
00FFD2D2 017001135 lbsr DispWordAsHex
|
00FFD2D5 039 rts
|
00FFD2D5 039 rts
|
|
|
org $FFD300
|
org $FFD300
|
ClearScreenJmp
|
ClearScreenJmp
|
00FFD300 016000F22 lbra ClearScreen
|
00FFD300 016000F2B lbra ClearScreen
|
org $FFD308
|
org $FFD308
|
HomeCursorJmp
|
HomeCursorJmp
|
00FFD308 016000F8D lbra HomeCursor
|
00FFD308 016000F96 lbra HomeCursor
|
|
|
org $FFD400
|
org $FFD400
|
|
|
; Local RAM test routine
|
; Local RAM test routine
|
; Checkerboard testing.
|
; Checkerboard testing.
|
Line 298... |
Line 395... |
00FFD43C 086046 lda #'F'
|
00FFD43C 086046 lda #'F'
|
00FFD43E 0A7804 sta ,x
|
00FFD43E 0A7804 sta ,x
|
00FFD440 013 sync
|
00FFD440 013 sync
|
00FFD441 06EC04 jmp ,u
|
00FFD441 06EC04 jmp ,u
|
|
|
|
dramtest:
|
|
00FFD443 18E010000 ldy #$10000 ; DRAM starts here
|
|
00FFD446 086001 lda #1
|
|
00FFD448 0150B7FFFE60001 sta LEDS
|
|
00FFD44D 0CEAAA555 ldu #$AAA555
|
|
00FFD450 017FFFC7F lbsr CRLF
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dramtest1:
|
|
00FFD453 04A deca
|
|
00FFD454 02600A bne dramtest4
|
|
00FFD456 01F020 tfr y,d
|
|
00FFD458 017000FAF lbsr DispWordAsHex
|
|
00FFD45B 0C600D ldb #CR
|
|
00FFD45D 0170018B2 lbsr OUTCH
|
|
dramtest4:
|
|
00FFD460 0EFA01 stu ,y++
|
|
00FFD462 18CE00000 cmpy #$E00000 ; DRAM ends here
|
|
00FFD465 025FEC blo dramtest1
|
|
; now readback values and compare
|
|
00FFD467 18E010000 ldy #$10000
|
|
00FFD46A 086001 lda #1
|
|
00FFD46C 017FFFC63 lbsr CRLF
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dramtest3:
|
|
00FFD46F 04A deca
|
|
00FFD470 02600A bne dramtest5
|
|
00FFD472 01F020 tfr y,d
|
|
00FFD474 017000F93 lbsr DispWordAsHex
|
|
00FFD477 0C600D ldb #CR
|
|
00FFD479 017001896 lbsr OUTCH
|
|
dramtest5:
|
|
00FFD47C 2A3A01 cmpu ,y++
|
|
00FFD47E 02600F bne dramerr
|
|
00FFD480 18CE00000 cmpy #$E00000
|
|
00FFD483 025FEA blo dramtest3
|
|
00FFD485 086002 lda #2
|
|
00FFD487 0150B7FFFE60001 sta LEDS
|
|
00FFD48C 016001A18 lbra Monitor
|
|
dramerr:
|
|
00FFD48F 086080 lda #$80
|
|
00FFD491 0150B7FFFE60001 sta LEDS
|
|
00FFD496 08EE00000 ldx #TEXTSCR
|
|
00FFD499 0150F6FFFFFFFE0 ldb COREID
|
|
00FFD49E 03A abx
|
|
00FFD49F 086046 lda #'F'
|
|
00FFD4A1 0A7804 sta ,x
|
|
00FFD4A3 016001A01 lbra Monitor
|
|
|
org $FFE000
|
org $FFE000
|
00FFE000 FFF92E FDB Monitor
|
00FFE000 FFEEA7 FDB Monitor
|
00FFE002 FFE022 FDB DumRts ; NEXTCMD
|
00FFE002 FFE022 FDB DumRts ; NEXTCMD
|
00FFE004 FFECDA FDB INCH
|
00FFE004 FFECDA FDB INCH
|
00FFE006 FFECF8 FDB INCHE
|
00FFE006 FFECF8 FDB INCHE
|
00FFE008 FFECFC FDB INCHEK
|
00FFE008 FFECFC FDB INCHEK
|
00FFE00A FFED12 FDB OUTCH
|
00FFE00A FFED12 FDB OUTCH
|
00FFE00C FFE3EE FDB PDATA
|
00FFE00C FFE3F7 FDB PDATA
|
00FFE00E FFE3E1 FDB PCRLF
|
00FFE00E FFE3EA FDB PCRLF
|
00FFE010 FFE3DD FDB PSTRNG
|
00FFE010 FFE3E6 FDB PSTRNG
|
00FFE012 FFE022 FDB DumRts ; LRA
|
00FFE012 FFE022 FDB DumRts ; LRA
|
00FFE014 FFE022 FDB DumRts
|
00FFE014 FFE022 FDB DumRts
|
00FFE016 FFE022 FDB DumRts
|
00FFE016 FFE022 FDB DumRts
|
00FFE018 FFE022 FDB DumRts
|
00FFE018 FFE022 FDB DumRts
|
00FFE01A FFE022 FDB DumRts ; VINIZ
|
00FFE01A FFE022 FDB DumRts ; VINIZ
|
00FFE01C FFE2F5 FDB DisplayChar ; VOUTCH
|
00FFE01C FFE2FE FDB DisplayChar ; VOUTCH
|
00FFE01E FFE022 FDB DumRts ; ACINIZ
|
00FFE01E FFE022 FDB DumRts ; ACINIZ
|
00FFE020 FFE022 FDB DumRts ; AOUTCH
|
00FFE020 FFE022 FDB DumRts ; AOUTCH
|
|
|
DumRts:
|
DumRts:
|
00FFE022 039 rts
|
00FFE022 039 rts
|
Line 330... |
Line 475... |
00FFE025 0150B7FFFE60003 sta VIA+VIA_DDRA
|
00FFE025 0150B7FFFE60003 sta VIA+VIA_DDRA
|
00FFE02A 086055 lda #$55 ; see if we can at least set LEDs
|
00FFE02A 086055 lda #$55 ; see if we can at least set LEDs
|
00FFE02C 0150B7FFFE60001 sta LEDS
|
00FFE02C 0150B7FFFE60001 sta LEDS
|
00FFE031 086001 lda #1 ; prime OS semaphore
|
00FFE031 086001 lda #1 ; prime OS semaphore
|
00FFE033 0B7EF1010 sta OSSEMA+$1000
|
00FFE033 0B7EF1010 sta OSSEMA+$1000
|
00FFE036 0CEFFE03C ldu #st6 ; U = return address
|
00FFE036 0B7EF1000 sta OUTSEMA+$1000
|
00FFE039 07EFFD400 jmp ramtest ; JMP dont JSR
|
00FFE039 0CEFFE03F ldu #st6 ; U = return address
|
|
00FFE03C 07EFFD400 jmp ramtest ; JMP dont JSR
|
st6:
|
st6:
|
00FFE03C 1CE006FFF lds #$6FFF ; boot up stack area
|
00FFE03F 1CE006FFF lds #$6FFF ; boot up stack area
|
00FFE03F 0150B6FFFFFFFE0 lda COREID
|
00FFE042 0150B6FFFFFFFE0 lda COREID
|
00FFE044 081001 cmpa #FIRST_CORE
|
00FFE047 081001 cmpa #FIRST_CORE
|
; beq st8
|
; beq st8
|
; sync ; halt cores other than 2
|
; sync ; halt cores other than 2
|
st8:
|
st8:
|
; bne skip_init
|
; bne skip_init
|
; bsr romToRam
|
; bsr romToRam
|
; ldd #st7 & $FFFF
|
; ldd #st7 & $FFFF
|
; tfr d,x
|
; tfr d,x
|
; jmp ,x ; jump to the BIOS now in local RAM
|
; jmp ,x ; jump to the BIOS now in local RAM
|
st7:
|
st7:
|
00FFE046 08D159 bsr Delay3s ; give some time for devices to reset
|
00FFE049 08D15F bsr Delay3s ; give some time for devices to reset
|
00FFE048 0860AA lda #$AA
|
00FFE04B 07F000810 clr BreakpointFlag
|
00FFE04A 0150B7FFFE60001 sta LEDS
|
00FFE04E 07F000811 clr NumSetBreakpoints
|
00FFE04F 086001 lda #FIRST_CORE
|
00FFE051 0860AA lda #$AA
|
00FFE051 0B7FF0010 sta IOFocusID ; core #2 has focus
|
00FFE053 0150B7FFFE60001 sta LEDS
|
00FFE054 0B7800000 sta RunningID
|
00FFE058 086001 lda #FIRST_CORE
|
|
00FFE05A 0B7FFC010 sta IOFocusID ; core #2 has focus
|
|
00FFE05D 0B7FFC013 sta RunningID
|
; Clear IO focus list
|
; Clear IO focus list
|
00FFE057 08E000000 ldx #0
|
00FFE060 08E000000 ldx #0
|
st9:
|
st9:
|
00FFE05A 06F80A000FF0000 clr IOFocusList,x
|
00FFE063 06F80A000FFC000 clr IOFocusList,x
|
00FFE05F 030001 inx
|
00FFE068 030001 inx
|
00FFE061 08C000010 cmpx #16
|
00FFE06A 08C000010 cmpx #16
|
00FFE064 025FF4 blo st9
|
00FFE06D 025FF4 blo st9
|
00FFE066 086018 lda #24
|
00FFE06F 086018 lda #24
|
00FFE068 0B7FF0001 sta IOFocusList+FIRST_CORE
|
00FFE071 0B7FFC001 sta IOFocusList+FIRST_CORE
|
|
|
00FFE06B 0860CE lda #$0CE
|
00FFE074 0860CE lda #$0CE
|
00FFE06D 097113 sta ScreenColor
|
00FFE076 097113 sta ScreenColor
|
00FFE06F 097112 sta CharColor
|
00FFE078 097112 sta CharColor
|
00FFE071 08D1B2 bsr ClearScreen
|
00FFE07A 08D1B2 bsr ClearScreen
|
00FFE073 0CCFFE2F5 ldd #DisplayChar
|
00FFE07C 0CCFFE2FE ldd #DisplayChar
|
00FFE076 0FD000800 std CharOutVec
|
00FFE07F 0FD000800 std CharOutVec
|
00FFE079 0CCFFEBE4 ldd #SerialPeekCharDirect
|
00FFE082 0CCFFEBE4 ldd #SerialPeekCharDirect
|
00FFE07C 0FD000804 std CharInVec
|
00FFE085 0FD000804 std CharInVec
|
00FFE07F 0C6018 ldb #24 ; request IO focus
|
; swi
|
00FFE081 017000CD5 lbsr OSCall
|
; fcb MF_OSCALL
|
00FFE084 0150F6FFFFFFFE0 ldb COREID
|
; fcb 24 ; request IO focus
|
00FFE089 0C1001 cmpb #FIRST_CORE
|
00FFE088 0150F6FFFFFFFE0 ldb COREID
|
00FFE08B 02700D beq init
|
00FFE08D 0C1001 cmpb #FIRST_CORE
|
00FFE08D 020046 bra skip_init
|
00FFE08F 02700D beq init
|
00FFE08F 0200AE bra multi_sieve
|
00FFE091 02004B bra skip_init
|
|
00FFE093 0200B3 bra multi_sieve
|
st3:
|
st3:
|
00FFE091 0860FF lda #$FF
|
00FFE095 0860FF lda #$FF
|
00FFE093 0150B7FFFE60001 sta LEDS
|
00FFE097 0150B7FFFE60001 sta LEDS
|
00FFE098 020FF7 bra st3
|
00FFE09C 020FF7 bra st3
|
|
|
; initialize interrupt controller
|
; initialize interrupt controller
|
; first, zero out all the vectors
|
; first, zero out all the vectors
|
init:
|
init:
|
00FFE09A 01700042A lbsr rtc_read ; get clock values
|
00FFE09E 01700042F lbsr rtc_read ; get clock values
|
00FFE09D 08E000127 ldx #kbdHeadRcv
|
00FFE0A1 08E000127 ldx #kbdHeadRcv
|
00FFE0A0 0C6020 ldb #32 ; number of bytes to zero out
|
00FFE0A4 0C6020 ldb #32 ; number of bytes to zero out
|
init1:
|
init1:
|
00FFE0A2 06F800 clr ,x+
|
00FFE0A6 06F800 clr ,x+
|
00FFE0A4 05A decb
|
00FFE0A8 05A decb
|
00FFE0A5 026FFB bne init1
|
00FFE0A9 026FFB bne init1
|
00FFE0A7 01700038E lbsr TimerInit
|
00FFE0AB 017000393 lbsr TimerInit
|
00FFE0AA 017000AC2 lbsr InitSerial
|
00FFE0AE 017000ABE lbsr InitSerial
|
00FFE0AD 08E000080 ldx #128
|
00FFE0B1 08E000080 ldx #128
|
00FFE0B0 086001 lda #1 ; set irq(bit0), clear firq (bit1), disable int (bit 6), clear edge sense(bit 7)
|
00FFE0B4 086001 lda #1 ; set irq(bit0), clear firq (bit1), disable int (bit 6), clear edge sense(bit 7)
|
00FFE0B2 0C6001 ldb #FIRST_CORE ; serving core id
|
00FFE0B6 0C6001 ldb #FIRST_CORE ; serving core id
|
st1:
|
st1:
|
00FFE0B4 06F809E3F000 clr PIC,x ; cause code
|
00FFE0B8 06F809E3F000 clr PIC,x ; cause code
|
00FFE0B8 0A7809E3F001 sta PIC+1,x
|
00FFE0BC 0A7809E3F001 sta PIC+1,x
|
00FFE0BC 0E7809E3F002 stb PIC+2,x
|
00FFE0C0 0E7809E3F002 stb PIC+2,x
|
00FFE0C0 030004 leax 4,x
|
00FFE0C4 030004 leax 4,x
|
00FFE0C2 08C000100 cmpx #256
|
00FFE0C6 08C000100 cmpx #256
|
00FFE0C5 025FED blo st1
|
00FFE0C9 025FED blo st1
|
; lda #4 ; make the timer interrupt edge sensitive
|
; lda #4 ; make the timer interrupt edge sensitive
|
; sta PIC+4 ; reg #4 is the edge sensitivity setting
|
; sta PIC+4 ; reg #4 is the edge sensitivity setting
|
; sta PIC ; reg #0 is interrupt enable
|
; sta PIC ; reg #0 is interrupt enable
|
00FFE0C7 086081 lda #$81 ; make irq edge sensitive
|
00FFE0CB 086081 lda #$81 ; make irq edge sensitive
|
00FFE0C9 0150B7FFFE3F0FD sta PIC+$FD
|
00FFE0CD 0150B7FFFE3F0FD sta PIC+$FD
|
00FFE0CE 08601F lda #31 ; enable timer interrupt
|
00FFE0D2 08601F lda #31 ; enable timer interrupt
|
; sta PIC+9
|
00FFE0D4 0150B7FFFE3F009 sta PIC+9
|
00FFE0D0 0C6001 ldb #1
|
00FFE0D9 0C6001 ldb #1
|
00FFE0D2 0F7EF1000 stb OUTSEMA+SEMAABS ; set semaphore to 1 available slot
|
00FFE0DB 0F7EF1000 stb OUTSEMA+SEMAABS ; set semaphore to 1 available slot
|
skip_init:
|
skip_init:
|
00FFE0D5 01C0EF andcc #$EF ; unmask irq
|
00FFE0DE 01C0EF andcc #$EF ; unmask irq
|
00FFE0D7 086038 lda #56
|
00FFE0E0 086040 lda #COLS
|
00FFE0D9 0150B7FFFE0DF00 sta TEXTREG+TEXT_COLS
|
00FFE0E2 0150B7FFFE07F00 sta TEXTREG+TEXT_COLS
|
00FFE0DE 08601D lda #29
|
00FFE0E7 086020 lda #ROWS
|
00FFE0E0 0150B7FFFE0DF01 sta TEXTREG+TEXT_ROWS
|
00FFE0E9 0150B7FFFE07F01 sta TEXTREG+TEXT_ROWS
|
00FFE0E5 08D13E bsr ClearScreen
|
00FFE0EE 08D13E bsr ClearScreen
|
00FFE0E7 08D1AF bsr HomeCursor
|
00FFE0F0 08D1AF bsr HomeCursor
|
00FFE0E9 086005 lda #5
|
00FFE0F2 086005 lda #5
|
00FFE0EB 0150B7FFFE60001 sta LEDS
|
00FFE0F4 0150B7FFFE60001 sta LEDS
|
00FFE0F0 0CCFFE108 ldd #msgStartup
|
00FFE0F9 0CCFFE111 ldd #msgStartup
|
00FFE0F3 08D2C1 bsr DisplayString
|
00FFE0FC 08D2C1 bsr DisplayString
|
00FFE0F5 08E000000 ldx #0
|
00FFE0FE 08E000000 ldx #0
|
00FFE0F8 0CC000000 ldd #0
|
00FFE101 0CC000000 ldd #0
|
00FFE0FB 017000C1E lbsr ShowSprites
|
00FFE104 017000C15 lbsr ShowSprites
|
00FFE0FE 01700083F lbsr KeybdInit
|
00FFE107 017000836 lbsr KeybdInit
|
00FFE101 0DC124 ldd KeybdID
|
00FFE10A 0DC124 ldd KeybdID
|
00FFE103 08D2FC bsr DispWordAsHex
|
00FFE10C 08D2FC bsr DispWordAsHex
|
00FFE105 07EFFF910 jmp MonitorStart
|
00FFE10E 07EFFEE60 jmp MonitorStart
|
|
|
msgStartup
|
msgStartup
|
00FFE108 072066036038030039020 fcb "rf6809 12-bit System Starting.",CR,LF,0
|
00FFE111 072066036038030039020 fcb "rf6809 12-bit System Starting.",CR,LF,0
|
00FFE10F 03103202D062069074020
|
00FFE118 03103202D062069074020
|
00FFE116 05307907307406506D020
|
00FFE11F 05307907307406506D020
|
00FFE11D 05307406107207406906E
|
00FFE126 05307406107207406906E
|
00FFE124 06702E00D00A000
|
00FFE12D 06702E00D00A000
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; The checkpoint register must be cleared within 1 second or a NMI interrupt
|
; The checkpoint register must be cleared within 1 second or a NMI interrupt
|
; will occur. checkpoint should be called with a JSR so that the global ROM
|
; will occur. checkpoint should be called with a JSR so that the global ROM
|
; routine is called.
|
; routine is called.
|
Line 449... |
Line 598... |
; Modifies:
|
; Modifies:
|
; none
|
; none
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
checkpoint:
|
checkpoint:
|
00FFE129 01507FFFFFFFFE1 clr $FFFFFFFE1 ; writing any value will do
|
00FFE132 01507FFFFFFFFE1 clr $FFFFFFFE1 ; writing any value will do
|
00FFE12E 039 rts
|
00FFE137 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Copy the system ROM to local RAM
|
; Copy the system ROM to local RAM
|
; Running the code from local RAM is probably an order of magnitude faster
|
; Running the code from local RAM is probably an order of magnitude faster
|
; then running from the global ROM. It also reduces the network traffic to
|
; then running from the global ROM. It also reduces the network traffic to
|
Line 463... |
Line 612... |
; Modifies:
|
; Modifies:
|
; d,x,y
|
; d,x,y
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
romToRam:
|
romToRam:
|
00FFE12F 08EFFC000 ldx #$FFC000
|
00FFE138 08EFFC000 ldx #$FFC000
|
00FFE132 18E00C000 ldy #$00C000
|
00FFE13B 18E00C000 ldy #$00C000
|
romToRam1:
|
romToRam1:
|
00FFE135 0EC801 ldd ,x++
|
00FFE13E 0EC801 ldd ,x++
|
00FFE137 0EDA01 std ,y++
|
00FFE140 0EDA01 std ,y++
|
00FFE139 08C000000 cmpx #0
|
00FFE142 08C000000 cmpx #0
|
00FFE13C 026FF7 bne romToRam1
|
00FFE145 026FF7 bne romToRam1
|
00FFE13E 039 rts
|
00FFE147 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Multi-core sieve program.
|
; Multi-core sieve program.
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
; First fill screen chars with 'P' indicating prime positions
|
; First fill screen chars with 'P' indicating prime positions
|
; Each core is responsible for the Nth position where N is the
|
; Each core is responsible for the Nth position where N is the
|
; core number minus two.
|
; core number minus two.
|
;
|
;
|
multi_sieve:
|
multi_sieve:
|
00FFE13F 086050 lda #'P' ; indicate prime
|
00FFE148 086050 lda #'P' ; indicate prime
|
00FFE141 0150F6FFFFFFFE0 ldb COREID ; find out which core we are
|
00FFE14A 0150F6FFFFFFFE0 ldb COREID ; find out which core we are
|
00FFE146 0C0001 subb #FIRST_CORE
|
00FFE14F 0C0001 subb #FIRST_CORE
|
00FFE148 08E000000 ldx #0 ; start at first char of screen
|
00FFE151 08E000000 ldx #0 ; start at first char of screen
|
00FFE14B 03A abx
|
00FFE154 03A abx
|
multi_sieve3:
|
multi_sieve3:
|
00FFE14C 0A7809E00000 sta TEXTSCR,x ; store 'P'
|
00FFE155 0A7809E00000 sta TEXTSCR,x ; store 'P'
|
00FFE150 030008 leax 8,x ; advance to next position
|
00FFE159 030008 leax 8,x ; advance to next position
|
00FFE152 08C000FFF cmpx #4095
|
00FFE15B 08C000FFF cmpx #4095
|
00FFE155 025FF5 blo multi_sieve3
|
00FFE15E 025FF5 blo multi_sieve3
|
00FFE157 0BDFFE129 jsr checkpoint
|
00FFE160 0BDFFE132 jsr checkpoint
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFE15A 0CB002 addb #2 ; start sieve at 2 (core id)
|
00FFE163 0CB002 addb #2 ; start sieve at 2 (core id)
|
00FFE15C 08604E lda #'N' ; flag position value of 'N' for non-prime
|
00FFE165 08604E lda #'N' ; flag position value of 'N' for non-prime
|
multi_sieve2:
|
multi_sieve2:
|
00FFE15E 08E000000 ldx #0
|
00FFE167 08E000000 ldx #0
|
00FFE161 03A abx ; skip the first position - might be prime
|
00FFE16A 03A abx ; skip the first position - might be prime
|
multi_sieve1:
|
multi_sieve1:
|
00FFE162 03A abx ; increment
|
00FFE16B 03A abx ; increment
|
00FFE163 0A7809E00000 sta TEXTSCR,x
|
00FFE16C 0A7809E00000 sta TEXTSCR,x
|
00FFE167 08C000FFF cmpx #4095
|
00FFE170 08C000FFF cmpx #4095
|
00FFE16A 025FF6 blo multi_sieve1
|
00FFE173 025FF6 blo multi_sieve1
|
00FFE16C 0BDFFE129 jsr checkpoint
|
00FFE175 0BDFFE132 jsr checkpoint
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFE16F 0CB008 addb #8 ; number of cores working on it
|
00FFE178 0CB008 addb #8 ; number of cores working on it
|
00FFE171 0C1FF0 cmpb #4080
|
00FFE17A 0C1FF0 cmpb #4080
|
00FFE173 025FE9 blo multi_sieve2
|
00FFE17C 025FE9 blo multi_sieve2
|
multi_sieve4: ; hang machine
|
multi_sieve4: ; hang machine
|
00FFE175 013 sync
|
00FFE17E 013 sync
|
00FFE176 0160017B5 lbra Monitor
|
00FFE17F 016000D25 lbra Monitor
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Single core sieve.
|
; Single core sieve.
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
sieve:
|
sieve:
|
00FFE179 086050 lda #'P' ; indicate prime
|
00FFE182 086050 lda #'P' ; indicate prime
|
00FFE17B 08E000000 ldx #0 ; start at first char of screen
|
00FFE184 08E000000 ldx #0 ; start at first char of screen
|
sieve3:
|
sieve3:
|
00FFE17E 0A7809E00000 sta TEXTSCR,x ; store 'P'
|
00FFE187 0A7809E00000 sta TEXTSCR,x ; store 'P'
|
00FFE182 030001 inx ; advance to next position
|
00FFE18B 030001 inx ; advance to next position
|
00FFE184 08C000FFF cmpx #4095
|
00FFE18D 08C000FFF cmpx #4095
|
00FFE187 025FF5 blo sieve3
|
00FFE190 025FF5 blo sieve3
|
00FFE189 0C6002 ldb #2 ; start sieve at 2
|
00FFE192 0C6002 ldb #2 ; start sieve at 2
|
00FFE18B 08604E lda #'N' ; flag position value of 'N' for non-prime
|
00FFE194 08604E lda #'N' ; flag position value of 'N' for non-prime
|
sieve2:
|
sieve2:
|
00FFE18D 08E000000 ldx #0
|
00FFE196 08E000000 ldx #0
|
00FFE190 03A abx ; skip the first position - might be prime
|
00FFE199 03A abx ; skip the first position - might be prime
|
sieve1:
|
sieve1:
|
00FFE191 03A abx ; increment
|
00FFE19A 03A abx ; increment
|
00FFE192 0A7809E00000 sta TEXTSCR,x
|
00FFE19B 0A7809E00000 sta TEXTSCR,x
|
00FFE196 08C000FFF cmpx #4095
|
00FFE19F 08C000FFF cmpx #4095
|
00FFE199 025FC7 blo multi_sieve1
|
00FFE1A2 025FC7 blo multi_sieve1
|
00FFE19B 05C incb ; number of cores working on it
|
00FFE1A4 05C incb ; number of cores working on it
|
00FFE19C 0C1FF0 cmpb #4080
|
00FFE1A5 0C1FF0 cmpb #4080
|
00FFE19E 025FED blo sieve2
|
00FFE1A7 025FED blo sieve2
|
sieve4: ; hang machine
|
sieve4: ; hang machine
|
00FFE1A0 039 rts
|
00FFE1A9 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Three second delay for user convenience and to allow some devices time to
|
; Three second delay for user convenience and to allow some devices time to
|
; reset.
|
; reset.
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
Delay3s:
|
Delay3s:
|
00FFE1A1 0CC895440 ldd #9000000
|
00FFE1AA 0CC895440 ldd #9000000
|
dly3s1:
|
dly3s1:
|
00FFE1A4 0C10FF cmpb #$FF
|
00FFE1AD 0C10FF cmpb #$FF
|
00FFE1A6 026000 bne dly3s2
|
00FFE1AF 026000 bne dly3s2
|
dly3s2:
|
dly3s2:
|
00FFE1A8 0150B7FFFE60001 sta LEDS
|
00FFE1B1 0150B7FFFE60001 sta LEDS
|
00FFE1AD 083000001 subd #1
|
00FFE1B6 083000001 subd #1
|
00FFE1B0 026FF2 bne dly3s1
|
00FFE1B9 026FF2 bne dly3s1
|
00FFE1B2 039 rts
|
00FFE1BB 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
ShiftLeft5:
|
ShiftLeft5:
|
00FFE1B3 058 aslb
|
00FFE1BC 058 aslb
|
00FFE1B4 049 rola
|
00FFE1BD 049 rola
|
00FFE1B5 058 aslb
|
00FFE1BE 058 aslb
|
00FFE1B6 049 rola
|
00FFE1BF 049 rola
|
00FFE1B7 058 aslb
|
00FFE1C0 058 aslb
|
00FFE1B8 049 rola
|
00FFE1C1 049 rola
|
00FFE1B9 058 aslb
|
00FFE1C2 058 aslb
|
00FFE1BA 049 rola
|
00FFE1C3 049 rola
|
00FFE1BB 058 aslb
|
00FFE1C4 058 aslb
|
00FFE1BC 049 rola
|
00FFE1C5 049 rola
|
00FFE1BD 039 rts
|
00FFE1C6 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Parameters:
|
; Parameters:
|
; b = core id of core to copy
|
; b = core id of core to copy
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
CopyVirtualScreenToScreen:
|
CopyVirtualScreenToScreen:
|
00FFE1BE 034076 pshs d,x,y,u
|
00FFE1C7 034076 pshs d,x,y,u
|
; Compute virtual screen location for core passed in accb.
|
; Compute virtual screen location for core passed in accb.
|
00FFE1C0 01F098 tfr b,a
|
00FFE1C9 01F098 tfr b,a
|
00FFE1C2 048 asla
|
00FFE1CB 048 asla
|
00FFE1C3 048 asla
|
00FFE1CC 048 asla
|
00FFE1C4 048 asla
|
00FFE1CD 048 asla
|
00FFE1C5 048 asla
|
00FFE1CE 048 asla
|
00FFE1C6 08AC00 ora #$C00
|
00FFE1CF 08AC00 ora #$C00
|
00FFE1C8 05F clrb
|
00FFE1D1 05F clrb
|
00FFE1C9 01F001 tfr d,x
|
00FFE1D2 01F001 tfr d,x
|
00FFE1CB 034006 pshs d
|
00FFE1D4 034006 pshs d
|
00FFE1CD 18EE00000 ldy #TEXTSCR
|
00FFE1D6 18EE00000 ldy #TEXTSCR
|
00FFE1D0 0CE00032C ldu #56*29/2
|
00FFE1D9 0CE000400 ldu #COLS*ROWS/2
|
cv2s1:
|
cv2s1:
|
00FFE1D3 0EC801 ldd ,x++
|
00FFE1DC 0EC801 ldd ,x++
|
00FFE1D5 0EDA01 std ,y++
|
00FFE1DE 0EDA01 std ,y++
|
00FFE1D7 0335FF leau -1,u
|
00FFE1E0 0335FF leau -1,u
|
00FFE1D9 283000000 cmpu #0
|
00FFE1E2 283000000 cmpu #0
|
00FFE1DC 026FF5 bne cv2s1
|
00FFE1E5 026FF5 bne cv2s1
|
; reset the cursor position in the text controller
|
; reset the cursor position in the text controller
|
00FFE1DE 035010 puls x
|
00FFE1E7 035010 puls x
|
00FFE1E0 0E6808110 ldb CursorRow,x
|
00FFE1E9 0E6808110 ldb CursorRow,x
|
00FFE1E3 086038 lda #56
|
00FFE1EC 086040 lda #COLS
|
00FFE1E5 03D mul
|
00FFE1EE 03D mul
|
00FFE1E6 01F002 tfr d,y
|
00FFE1EF 01F002 tfr d,y
|
00FFE1E8 0E6808111 ldb CursorCol,x
|
00FFE1F1 0E6808111 ldb CursorCol,x
|
00FFE1EB 01F021 tfr y,x
|
00FFE1F4 01F021 tfr y,x
|
00FFE1ED 03A abx
|
00FFE1F6 03A abx
|
00FFE1EE 0150BFFFFE0DF22 stx TEXTREG+TEXT_CURPOS
|
00FFE1F7 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
|
00FFE1F3 0350F6 puls d,x,y,u,pc
|
00FFE1FC 0350F6 puls d,x,y,u,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
CopyScreenToVirtualScreen:
|
CopyScreenToVirtualScreen:
|
00FFE1F5 034076 pshs d,x,y,u
|
00FFE1FE 034076 pshs d,x,y,u
|
00FFE1F7 08D08D bsr GetScreenLocation
|
00FFE200 08D08D bsr GetScreenLocation
|
00FFE1F9 01F002 tfr d,y
|
00FFE202 01F002 tfr d,y
|
00FFE1FB 08EE00000 ldx #TEXTSCR
|
00FFE204 08EE00000 ldx #TEXTSCR
|
00FFE1FE 0CE00032C ldu #56*29/2
|
00FFE207 0CE000400 ldu #COLS*ROWS/2
|
cs2v1:
|
cs2v1:
|
00FFE201 0EC801 ldd ,x++
|
00FFE20A 0EC801 ldd ,x++
|
00FFE203 0EDA01 std ,y++
|
00FFE20C 0EDA01 std ,y++
|
00FFE205 0335FF leau -1,u
|
00FFE20E 0335FF leau -1,u
|
00FFE207 283000000 cmpu #0
|
00FFE210 283000000 cmpu #0
|
00FFE20A 026FF5 bne cs2v1
|
00FFE213 026FF5 bne cs2v1
|
00FFE20C 0350F6 puls d,x,y,u,pc
|
00FFE215 0350F6 puls d,x,y,u,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
00FFE20E 054045058054053043052 fcb "TEXTSCR "
|
00FFE217 054045058054053043052 fcb "TEXTSCR "
|
00FFE215 020
|
00FFE21E 020
|
00FFE216 FFE220 fcw TextOpen
|
00FFE21F FFE229 fcw TextOpen
|
00FFE218 FFE221 fcw TextClose
|
00FFE221 FFE22A fcw TextClose
|
00FFE21A FFE222 fcw TextRead
|
00FFE223 FFE22B fcw TextRead
|
00FFE21C FFE223 fcw TextWrite
|
00FFE225 FFE22C fcw TextWrite
|
00FFE21E FFE224 fcw TextSeek
|
00FFE227 FFE22D fcw TextSeek
|
|
|
TextOpen:
|
TextOpen:
|
00FFE220 039 rts
|
00FFE229 039 rts
|
TextClose:
|
TextClose:
|
00FFE221 039 rts
|
00FFE22A 039 rts
|
TextRead:
|
TextRead:
|
00FFE222 039 rts
|
00FFE22B 039 rts
|
TextWrite:
|
TextWrite:
|
00FFE223 039 rts
|
00FFE22C 039 rts
|
TextSeek:
|
TextSeek:
|
00FFE224 039 rts
|
00FFE22D 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Clear the screen and the screen color memory
|
; Clear the screen and the screen color memory
|
; We clear the screen to give a visual indication that the system
|
; We clear the screen to give a visual indication that the system
|
; is working at all.
|
; is working at all.
|
Line 656... |
Line 805... |
; Modifies:
|
; Modifies:
|
; none
|
; none
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
ClearScreen:
|
ClearScreen:
|
00FFE225 034076 pshs d,x,y,u
|
00FFE22E 034076 pshs d,x,y,u
|
00FFE227 08E000658 ldx #56*29
|
00FFE230 08E000800 ldx #COLS*ROWS
|
00FFE22A 01F013 tfr x,u
|
00FFE233 01F013 tfr x,u
|
00FFE22C 08D058 bsr GetScreenLocation
|
00FFE235 08D058 bsr GetScreenLocation
|
00FFE22E 01F002 tfr d,y
|
00FFE237 01F002 tfr d,y
|
00FFE230 0C6020 ldb #' ' ; space char
|
00FFE239 0C6020 ldb #' ' ; space char
|
cs1:
|
cs1:
|
00FFE232 0E7A00 stb ,y+ ; set text to space
|
00FFE23B 0E7A00 stb ,y+ ; set text to space
|
00FFE234 0301FF leax -1,x ; decrement x
|
00FFE23D 0301FF leax -1,x ; decrement x
|
00FFE236 026FFA bne cs1
|
00FFE23F 026FFA bne cs1
|
00FFE238 0150F6FFFFFFFE0 ldb COREID ; update colors only if we have focus
|
00FFE241 0150F6FFFFFFFE0 ldb COREID ; update colors only if we have focus
|
00FFE23D 0F1FF0010 cmpb IOFocusID
|
00FFE246 0F1FFC010 cmpb IOFocusID
|
00FFE240 02000D bra cs3
|
00FFE249 02000D bra cs3
|
00FFE242 18EE02000 ldy #TEXTSCR+$2000
|
00FFE24B 18EE02000 ldy #TEXTSCR+$2000
|
; lda CharColor
|
; lda CharColor
|
00FFE245 0860CE lda #$0CE
|
00FFE24E 0860CE lda #$0CE
|
00FFE247 01F031 tfr u,x ; get back count
|
00FFE250 01F031 tfr u,x ; get back count
|
cs2:
|
cs2:
|
00FFE249 0A7A00 sta ,y+
|
00FFE252 0A7A00 sta ,y+
|
00FFE24B 0301FF dex ; decrement x
|
00FFE254 0301FF dex ; decrement x
|
00FFE24D 026FFA bne cs2
|
00FFE256 026FFA bne cs2
|
cs3:
|
cs3:
|
00FFE24F 0350F6 puls d,x,y,u,pc
|
00FFE258 0350F6 puls d,x,y,u,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Scroll text on the screen upwards
|
; Scroll text on the screen upwards
|
;
|
;
|
; Modifies:
|
; Modifies:
|
; none
|
; none
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
ScrollUp:
|
ScrollUp:
|
00FFE251 034076 pshs d,x,y,u
|
00FFE25A 034076 pshs d,x,y,u
|
00FFE253 18E00032B ldy #(56*29-1)/2 ; y = num chars/2 to move
|
00FFE25C 18E0003FF ldy #(COLS*ROWS-1)/2 ; y = num chars/2 to move
|
00FFE256 08D02E bsr GetScreenLocation
|
00FFE25F 08D02E bsr GetScreenLocation
|
00FFE258 01F001 tfr d,x
|
00FFE261 01F001 tfr d,x
|
00FFE25A 01F003 tfr d,u
|
00FFE263 01F003 tfr d,u
|
00FFE25C 030038 leax 56,x ; x = index to source row
|
00FFE265 030040 leax COLS,x ; x = index to source row
|
scrup1:
|
scrup1:
|
00FFE25E 0EC801 ldd ,x++ ; move 2 characters
|
00FFE267 0EC801 ldd ,x++ ; move 2 characters
|
00FFE260 0EDC01 std ,u++
|
00FFE269 0EDC01 std ,u++
|
00FFE262 0313FF dey
|
00FFE26B 0313FF dey
|
00FFE264 026FF8 bne scrup1
|
00FFE26D 026FF8 bne scrup1
|
00FFE266 08601D lda #29
|
00FFE26F 08601F lda #ROWS-1
|
00FFE268 08D002 bsr BlankLine
|
00FFE271 08D002 bsr BlankLine
|
00FFE26A 0350F6 puls d,x,y,u,pc
|
00FFE273 0350F6 puls d,x,y,u,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Blank out a line on the display
|
; Blank out a line on the display
|
;
|
;
|
; Modifies:
|
; Modifies:
|
Line 713... |
Line 862... |
; Parameters:
|
; Parameters:
|
; acca = line number to blank
|
; acca = line number to blank
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
BlankLine:
|
BlankLine:
|
00FFE26C 034016 pshs d,x
|
00FFE275 034016 pshs d,x
|
00FFE26E 034002 pshs a
|
00FFE277 034002 pshs a
|
00FFE270 08D014 bsr GetScreenLocation
|
00FFE279 08D014 bsr GetScreenLocation
|
00FFE272 01F001 tfr d,x
|
00FFE27B 01F001 tfr d,x
|
00FFE274 035002 puls a
|
00FFE27D 035002 puls a
|
00FFE276 0C6038 ldb #56 ; b = # chars to blank out from video controller
|
00FFE27F 0C6040 ldb #COLS ; b = # chars to blank out from video controller
|
00FFE278 03D mul ; d = screen index (row# * #cols)
|
00FFE281 03D mul ; d = screen index (row# * #cols)
|
00FFE279 03080B leax d,x
|
00FFE282 03080B leax d,x
|
00FFE27B 086020 lda #' '
|
00FFE284 086020 lda #' '
|
00FFE27D 0C6038 ldb #56 ; b = # chars to blank out from video controller
|
00FFE286 0C6040 ldb #COLS ; b = # chars to blank out from video controller
|
blnkln1:
|
blnkln1:
|
00FFE27F 0A7800 sta ,x+
|
00FFE288 0A7800 sta ,x+
|
00FFE281 05A decb
|
00FFE28A 05A decb
|
00FFE282 026FFB bne blnkln1
|
00FFE28B 026FFB bne blnkln1
|
00FFE284 035096 puls d,x,pc
|
00FFE28D 035096 puls d,x,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Get the location of the screen memory. The location
|
; Get the location of the screen memory. The location
|
; depends on whether or not the task has the output focus.
|
; depends on whether or not the task has the output focus.
|
;
|
;
|
Line 740... |
Line 889... |
; Retuns:
|
; Retuns:
|
; d = screen location
|
; d = screen location
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
GetScreenLocation:
|
GetScreenLocation:
|
00FFE286 0150B6FFFFFFFE0 lda COREID ; which core are we?
|
00FFE28F 0150B6FFFFFFFE0 lda COREID ; which core are we?
|
00FFE28B 0B1FF0010 cmpa IOFocusID ; do we have the IO focus
|
00FFE294 0B1FFC010 cmpa IOFocusID ; do we have the IO focus
|
00FFE28E 026004 bne gsl1 ; no, go pick virtual screen address
|
00FFE297 026004 bne gsl1 ; no, go pick virtual screen address
|
00FFE290 0CCE00000 ldd #TEXTSCR ; yes, we update the real screen
|
00FFE299 0CCE00000 ldd #TEXTSCR ; yes, we update the real screen
|
00FFE293 039 rts
|
00FFE29C 039 rts
|
gsl1:
|
gsl1:
|
00FFE294 0CC007800 ldd #$7800
|
00FFE29D 0CC007800 ldd #$7800
|
00FFE297 039 rts
|
00FFE2A0 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; HomeCursor
|
; HomeCursor
|
; Set the cursor location to the top left of the screen.
|
; Set the cursor location to the top left of the screen.
|
;
|
;
|
; Modifies:
|
; Modifies:
|
; none
|
; none
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
HomeCursor:
|
HomeCursor:
|
00FFE298 034016 pshs d,x
|
00FFE2A1 034016 pshs d,x
|
00FFE29A 00F110 clr CursorRow
|
00FFE2A3 00F110 clr CursorRow
|
00FFE29C 00F111 clr CursorCol
|
00FFE2A5 00F111 clr CursorCol
|
00FFE29E 0150F6FFFFFFFE0 ldb COREID
|
00FFE2A7 0150F6FFFFFFFE0 ldb COREID
|
00FFE2A3 0F1FF0010 cmpb IOFocusID
|
00FFE2AC 0F1FFC010 cmpb IOFocusID
|
00FFE2A6 026006 bne hc1
|
00FFE2AF 026006 bne hc1
|
00FFE2A8 04F clra
|
00FFE2B1 04F clra
|
00FFE2A9 0150B7FFFE0DF22 sta TEXTREG+TEXT_CURPOS
|
00FFE2B2 0150B7FFFE07F22 sta TEXTREG+TEXT_CURPOS
|
hc1:
|
hc1:
|
00FFE2AE 035096 puls d,x,pc
|
00FFE2B7 035096 puls d,x,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Update the cursor position in the text controller based on the
|
; Update the cursor position in the text controller based on the
|
; CursorRow,CursorCol.
|
; CursorRow,CursorCol.
|
;
|
;
|
; Modifies:
|
; Modifies:
|
; none
|
; none
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
UpdateCursorPos:
|
UpdateCursorPos:
|
00FFE2B0 034016 pshs d,x
|
00FFE2B9 034016 pshs d,x
|
00FFE2B2 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
|
00FFE2BB 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
|
00FFE2B7 0F1FF0010 cmpb IOFocusID ; only for the task with the output focus
|
00FFE2C0 0F1FFC010 cmpb IOFocusID ; only for the task with the output focus
|
00FFE2BA 026014 bne ucp1
|
00FFE2C3 026014 bne ucp1
|
00FFE2BC 096110 lda CursorRow
|
00FFE2C5 096110 lda CursorRow
|
00FFE2BE 08403F anda #$3F ; limit of 63 rows
|
00FFE2C7 08403F anda #$3F ; limit of 63 rows
|
00FFE2C0 0150F6FFFE0DF00 ldb TEXTREG+TEXT_COLS
|
00FFE2C9 0150F6FFFE07F00 ldb TEXTREG+TEXT_COLS
|
00FFE2C5 03D mul
|
00FFE2CE 03D mul
|
00FFE2C6 01F001 tfr d,x
|
00FFE2CF 01F001 tfr d,x
|
00FFE2C8 0D6111 ldb CursorCol
|
00FFE2D1 0D6111 ldb CursorCol
|
00FFE2CA 03A abx
|
00FFE2D3 03A abx
|
00FFE2CB 0150BFFFFE0DF22 stx TEXTREG+TEXT_CURPOS
|
00FFE2D4 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
|
ucp1:
|
ucp1:
|
00FFE2D0 035096 puls d,x,pc
|
00FFE2D9 035096 puls d,x,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Calculate screen memory location from CursorRow,CursorCol.
|
; Calculate screen memory location from CursorRow,CursorCol.
|
; Also refreshes the cursor location.
|
; Also refreshes the cursor location.
|
;
|
;
|
Line 804... |
Line 953... |
; Returns:
|
; Returns:
|
; d = screen location
|
; d = screen location
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
CalcScreenLoc:
|
CalcScreenLoc:
|
00FFE2D2 034010 pshs x
|
00FFE2DB 034010 pshs x
|
00FFE2D4 096110 lda CursorRow
|
00FFE2DD 096110 lda CursorRow
|
00FFE2D6 0C6038 ldb #56
|
00FFE2DF 0C6040 ldb #COLS
|
00FFE2D8 03D mul
|
00FFE2E1 03D mul
|
00FFE2D9 01F001 tfr d,x
|
00FFE2E2 01F001 tfr d,x
|
00FFE2DB 0D6111 ldb CursorCol
|
00FFE2E4 0D6111 ldb CursorCol
|
00FFE2DD 03A abx
|
00FFE2E6 03A abx
|
00FFE2DE 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
|
00FFE2E7 0150F6FFFFFFFE0 ldb COREID ; update cursor position in text controller
|
00FFE2E3 0F1FF0010 cmpb IOFocusID ; only for the task with the output focus
|
00FFE2EC 0F1FFC010 cmpb IOFocusID ; only for the task with the output focus
|
00FFE2E6 026005 bne csl1
|
00FFE2EF 026005 bne csl1
|
00FFE2E8 0150BFFFFE0DF22 stx TEXTREG+TEXT_CURPOS
|
00FFE2F1 0150BFFFFE07F22 stx TEXTREG+TEXT_CURPOS
|
csl1:
|
csl1:
|
00FFE2ED 08DF97 bsr GetScreenLocation
|
00FFE2F6 08DF97 bsr GetScreenLocation
|
00FFE2EF 03080B leax d,x
|
00FFE2F8 03080B leax d,x
|
00FFE2F1 01F010 tfr x,d
|
00FFE2FA 01F010 tfr x,d
|
00FFE2F3 035090 puls x,pc
|
00FFE2FC 035090 puls x,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Display a character on the screen.
|
; Display a character on the screen.
|
; If the task doesn't have the I/O focus then the character is written to
|
; If the task doesn't have the I/O focus then the character is written to
|
; the virtual screen.
|
; the virtual screen.
|
Line 833... |
Line 982... |
; Parameters:
|
; Parameters:
|
; accb = char to display
|
; accb = char to display
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
DisplayChar:
|
DisplayChar:
|
00FFE2F5 017000910 lbsr SerialPutChar
|
00FFE2FE 017000907 lbsr SerialPutChar
|
00FFE2F8 034016 pshs d,x
|
00FFE301 034016 pshs d,x
|
00FFE2FA 0C100D cmpb #CR ; carriage return ?
|
00FFE303 0C100D cmpb #CR ; carriage return ?
|
00FFE2FC 026007 bne dccr
|
00FFE305 026007 bne dccr
|
00FFE2FE 00F111 clr CursorCol ; just set cursor column to zero on a CR
|
00FFE307 00F111 clr CursorCol ; just set cursor column to zero on a CR
|
00FFE300 08DFAE bsr UpdateCursorPos
|
00FFE309 08DFAE bsr UpdateCursorPos
|
dcx14:
|
dcx14:
|
00FFE302 01600008C lbra dcx4
|
00FFE30B 01600008C lbra dcx4
|
dccr:
|
dccr:
|
00FFE305 0C1091 cmpb #$91 ; cursor right ?
|
00FFE30E 0C1091 cmpb #$91 ; cursor right ?
|
00FFE307 02600D bne dcx6
|
00FFE310 02600D bne dcx6
|
00FFE309 096111 lda CursorCol
|
00FFE312 096111 lda CursorCol
|
00FFE30B 081038 cmpa #56
|
00FFE314 081040 cmpa #COLS
|
00FFE30D 024003 bhs dcx7
|
00FFE316 024003 bhs dcx7
|
00FFE30F 04C inca
|
00FFE318 04C inca
|
00FFE310 097111 sta CursorCol
|
00FFE319 097111 sta CursorCol
|
dcx7:
|
dcx7:
|
00FFE312 08DF9C bsr UpdateCursorPos
|
00FFE31B 08DF9C bsr UpdateCursorPos
|
00FFE314 035096 puls d,x,pc
|
00FFE31D 035096 puls d,x,pc
|
dcx6:
|
dcx6:
|
00FFE316 0C1090 cmpb #$90 ; cursor up ?
|
00FFE31F 0C1090 cmpb #$90 ; cursor up ?
|
00FFE318 026009 bne dcx8
|
00FFE321 026009 bne dcx8
|
00FFE31A 096110 lda CursorRow
|
00FFE323 096110 lda CursorRow
|
00FFE31C 027FF4 beq dcx7
|
00FFE325 027FF4 beq dcx7
|
00FFE31E 04A deca
|
00FFE327 04A deca
|
00FFE31F 097110 sta CursorRow
|
00FFE328 097110 sta CursorRow
|
00FFE321 020FEF bra dcx7
|
00FFE32A 020FEF bra dcx7
|
dcx8:
|
dcx8:
|
00FFE323 0C1093 cmpb #$93 ; cursor left ?
|
00FFE32C 0C1093 cmpb #$93 ; cursor left ?
|
00FFE325 026009 bne dcx9
|
00FFE32E 026009 bne dcx9
|
00FFE327 096111 lda CursorCol
|
00FFE330 096111 lda CursorCol
|
00FFE329 027FE7 beq dcx7
|
00FFE332 027FE7 beq dcx7
|
00FFE32B 04A deca
|
00FFE334 04A deca
|
00FFE32C 097111 sta CursorCol
|
00FFE335 097111 sta CursorCol
|
00FFE32E 020FE2 bra dcx7
|
00FFE337 020FE2 bra dcx7
|
dcx9:
|
dcx9:
|
00FFE330 0C1092 cmpb #$92 ; cursor down ?
|
00FFE339 0C1092 cmpb #$92 ; cursor down ?
|
00FFE332 02600B bne dcx10
|
00FFE33B 02600B bne dcx10
|
00FFE334 096110 lda CursorRow
|
00FFE33D 096110 lda CursorRow
|
00FFE336 08101D cmpa #29
|
00FFE33F 081020 cmpa #ROWS
|
00FFE338 027FD8 beq dcx7
|
00FFE341 027FD8 beq dcx7
|
00FFE33A 04C inca
|
00FFE343 04C inca
|
00FFE33B 097110 sta CursorRow
|
00FFE344 097110 sta CursorRow
|
00FFE33D 020FD3 bra dcx7
|
00FFE346 020FD3 bra dcx7
|
dcx10:
|
dcx10:
|
00FFE33F 0C1094 cmpb #$94 ; cursor home ?
|
00FFE348 0C1094 cmpb #$94 ; cursor home ?
|
00FFE341 02600C bne dcx11
|
00FFE34A 02600C bne dcx11
|
00FFE343 096111 lda CursorCol
|
00FFE34C 096111 lda CursorCol
|
00FFE345 027004 beq dcx12
|
00FFE34E 027004 beq dcx12
|
00FFE347 00F111 clr CursorCol
|
00FFE350 00F111 clr CursorCol
|
00FFE349 020FC7 bra dcx7
|
00FFE352 020FC7 bra dcx7
|
dcx12:
|
dcx12:
|
00FFE34B 00F110 clr CursorRow
|
00FFE354 00F110 clr CursorRow
|
00FFE34D 020FC3 bra dcx7
|
00FFE356 020FC3 bra dcx7
|
dcx11:
|
dcx11:
|
00FFE34F 0C1099 cmpb #$99 ; delete ?
|
00FFE358 0C1099 cmpb #$99 ; delete ?
|
00FFE351 026008 bne dcx13
|
00FFE35A 026008 bne dcx13
|
00FFE353 08DF7D bsr CalcScreenLoc
|
00FFE35C 08DF7D bsr CalcScreenLoc
|
00FFE355 01F001 tfr d,x
|
00FFE35E 01F001 tfr d,x
|
00FFE357 096111 lda CursorCol ; acc = cursor column
|
00FFE360 096111 lda CursorCol ; acc = cursor column
|
00FFE359 020011 bra dcx5
|
00FFE362 020011 bra dcx5
|
dcx13
|
dcx13
|
00FFE35B 0C1008 cmpb #CTRLH ; backspace ?
|
00FFE364 0C1008 cmpb #CTRLH ; backspace ?
|
00FFE35D 02601E bne dcx3
|
00FFE366 02601E bne dcx3
|
00FFE35F 096111 lda CursorCol
|
00FFE368 096111 lda CursorCol
|
00FFE361 02702E beq dcx4
|
00FFE36A 02702E beq dcx4
|
00FFE363 04A deca
|
00FFE36C 04A deca
|
00FFE364 097111 sta CursorCol
|
00FFE36D 097111 sta CursorCol
|
00FFE366 08DF6A bsr CalcScreenLoc
|
00FFE36F 08DF6A bsr CalcScreenLoc
|
00FFE368 01F001 tfr d,x
|
00FFE371 01F001 tfr d,x
|
00FFE36A 096111 lda CursorCol
|
00FFE373 096111 lda CursorCol
|
dcx5:
|
dcx5:
|
00FFE36C 0E6001 ldb 1,x
|
00FFE375 0E6001 ldb 1,x
|
00FFE36E 0E7801 stb ,x++
|
00FFE377 0E7801 stb ,x++
|
00FFE370 04C inca
|
00FFE379 04C inca
|
00FFE371 081038 cmpa #56
|
00FFE37A 081040 cmpa #COLS
|
00FFE373 025FF7 blo dcx5
|
00FFE37C 025FF7 blo dcx5
|
00FFE375 0C6020 ldb #' '
|
00FFE37E 0C6020 ldb #' '
|
00FFE377 0301FF dex
|
00FFE380 0301FF dex
|
00FFE379 0E7804 stb ,x
|
00FFE382 0E7804 stb ,x
|
00FFE37B 020014 bra dcx4
|
00FFE384 020014 bra dcx4
|
dcx3:
|
dcx3:
|
00FFE37D 0C100A cmpb #LF ; linefeed ?
|
00FFE386 0C100A cmpb #LF ; linefeed ?
|
00FFE37F 02700E beq dclf
|
00FFE388 02700E beq dclf
|
00FFE381 034004 pshs b
|
00FFE38A 034004 pshs b
|
00FFE383 08DF4D bsr CalcScreenLoc
|
00FFE38C 08DF4D bsr CalcScreenLoc
|
00FFE385 01F001 tfr d,x
|
00FFE38E 01F001 tfr d,x
|
00FFE387 035004 puls b
|
00FFE390 035004 puls b
|
00FFE389 0E7804 stb ,x
|
00FFE392 0E7804 stb ,x
|
; ToDo character color
|
; ToDo character color
|
; lda CharColor
|
; lda CharColor
|
; sta $2000,x
|
; sta $2000,x
|
00FFE38B 08D006 bsr IncCursorPos
|
00FFE394 08D006 bsr IncCursorPos
|
00FFE38D 020002 bra dcx4
|
00FFE396 020002 bra dcx4
|
dclf:
|
dclf:
|
00FFE38F 08D011 bsr IncCursorRow
|
00FFE398 08D011 bsr IncCursorRow
|
dcx4:
|
dcx4:
|
00FFE391 035096 puls d,x,pc
|
00FFE39A 035096 puls d,x,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Increment the cursor position, scroll the screen if needed.
|
; Increment the cursor position, scroll the screen if needed.
|
;
|
;
|
; Modifies:
|
; Modifies:
|
; none
|
; none
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
IncCursorPos:
|
IncCursorPos:
|
00FFE393 034016 pshs d,x
|
00FFE39C 034016 pshs d,x
|
00FFE395 096111 lda CursorCol
|
00FFE39E 096111 lda CursorCol
|
00FFE397 04C inca
|
00FFE3A0 04C inca
|
00FFE398 097111 sta CursorCol
|
00FFE3A1 097111 sta CursorCol
|
00FFE39A 081038 cmpa #56
|
00FFE3A3 081040 cmpa #COLS
|
00FFE39C 025014 blo icc1
|
00FFE3A5 025014 blo icc1
|
00FFE39E 00F111 clr CursorCol ; column = 0
|
00FFE3A7 00F111 clr CursorCol ; column = 0
|
00FFE3A0 020002 bra icr1
|
00FFE3A9 020002 bra icr1
|
IncCursorRow:
|
IncCursorRow:
|
00FFE3A2 034016 pshs d,x
|
00FFE3AB 034016 pshs d,x
|
icr1:
|
icr1:
|
00FFE3A4 096110 lda CursorRow
|
00FFE3AD 096110 lda CursorRow
|
00FFE3A6 04C inca
|
00FFE3AF 04C inca
|
00FFE3A7 097110 sta CursorRow
|
00FFE3B0 097110 sta CursorRow
|
00FFE3A9 08101D cmpa #29
|
00FFE3B2 081020 cmpa #ROWS
|
00FFE3AB 025005 blo icc1
|
00FFE3B4 025005 blo icc1
|
00FFE3AD 04A deca ; backup the cursor row, we are scrolling up
|
00FFE3B6 04A deca ; backup the cursor row, we are scrolling up
|
00FFE3AE 097110 sta CursorRow
|
00FFE3B7 097110 sta CursorRow
|
00FFE3B0 08DE9F bsr ScrollUp
|
00FFE3B9 08DE9F bsr ScrollUp
|
icc1:
|
icc1:
|
00FFE3B2 08DEFC bsr UpdateCursorPos
|
00FFE3BB 08DEFC bsr UpdateCursorPos
|
icc2:
|
icc2:
|
00FFE3B4 035096 puls d,x,pc
|
00FFE3BD 035096 puls d,x,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Display a string on the screen.
|
; Display a string on the screen.
|
;
|
;
|
; Modifies:
|
; Modifies:
|
Line 974... |
Line 1123... |
; Parameters:
|
; Parameters:
|
; d = pointer to string
|
; d = pointer to string
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
DisplayString:
|
DisplayString:
|
00FFE3B6 034016 pshs d,x
|
00FFE3BF 034016 pshs d,x
|
00FFE3B8 01F001 tfr d,x
|
00FFE3C1 01F001 tfr d,x
|
dspj2: ; lock semaphore for access
|
dspj2: ; lock semaphore for access
|
00FFE3BA 0B6EF0001 lda OUTSEMA+1
|
00FFE3C3 0B6EF0001 lda OUTSEMA+1
|
00FFE3BD 027FFB beq dspj2
|
00FFE3C6 027FFB beq dspj2
|
dspj1B:
|
dspj1B:
|
00FFE3BF 0E6800 ldb ,x+ ; move string char into acc
|
00FFE3C8 0E6800 ldb ,x+ ; move string char into acc
|
00FFE3C1 027005 beq dsretB ; is it end of string ?
|
00FFE3CA 027005 beq dsretB ; is it end of string ?
|
00FFE3C3 01700094C lbsr OUTCH ; display character
|
00FFE3CC 017000943 lbsr OUTCH ; display character
|
00FFE3C6 020FF7 bra dspj1B
|
00FFE3CF 020FF7 bra dspj1B
|
dsretB:
|
dsretB:
|
00FFE3C8 07FEF0001 clr OUTSEMA+1 ; unlock semaphore
|
00FFE3D1 07FEF0001 clr OUTSEMA+1 ; unlock semaphore
|
00FFE3CB 035096 puls d,x,pc
|
00FFE3D4 035096 puls d,x,pc
|
|
|
DisplayStringCRLF:
|
DisplayStringCRLF:
|
00FFE3CD 034006 pshs d
|
00FFE3D6 034006 pshs d
|
00FFE3CF 08DFE5 bsr DisplayString
|
00FFE3D8 08DFE5 bsr DisplayString
|
00FFE3D1 0C600D ldb #CR
|
00FFE3DA 0C600D ldb #CR
|
00FFE3D3 01700093C lbsr OUTCH
|
00FFE3DC 017000933 lbsr OUTCH
|
00FFE3D6 0C600A ldb #LF
|
00FFE3DF 0C600A ldb #LF
|
00FFE3D8 017000937 lbsr OUTCH
|
00FFE3E1 01700092E lbsr OUTCH
|
00FFE3DB 035086 puls d,pc
|
00FFE3E4 035086 puls d,pc
|
|
|
;
|
;
|
; PRINT CR, LF, STRING
|
; PRINT CR, LF, STRING
|
;
|
;
|
PSTRNG
|
PSTRNG
|
00FFE3DD 08D002 BSR PCRLF
|
00FFE3E6 08D002 BSR PCRLF
|
00FFE3DF 02000D BRA PDATA
|
00FFE3E8 02000D BRA PDATA
|
PCRLF
|
PCRLF
|
00FFE3E1 034010 PSHS X
|
00FFE3EA 034010 PSHS X
|
00FFE3E3 08EFFE3F5 LDX #CRLFST
|
00FFE3EC 08EFFE3FE LDX #CRLFST
|
00FFE3E6 08D006 BSR PDATA
|
00FFE3EF 08D006 BSR PDATA
|
00FFE3E8 035010 PULS X
|
00FFE3F1 035010 PULS X
|
00FFE3EA 039 RTS
|
00FFE3F3 039 RTS
|
|
|
PRINT
|
PRINT
|
00FFE3EB 0BDFFED12 JSR OUTCH
|
00FFE3F4 0BDFFED12 JSR OUTCH
|
PDATA
|
PDATA
|
00FFE3EE 0E6800 LDB ,X+
|
00FFE3F7 0E6800 LDB ,X+
|
00FFE3F0 0C1004 CMPB #$04
|
00FFE3F9 0C1004 CMPB #$04
|
00FFE3F2 026FF7 BNE PRINT
|
00FFE3FB 026FF7 BNE PRINT
|
00FFE3F4 039 RTS
|
00FFE3FD 039 RTS
|
|
|
CRLFST
|
CRLFST
|
00FFE3F5 00D00A004 fcb CR,LF,4
|
00FFE3FE 00D00A004 fcb CR,LF,4
|
|
|
DispDWordAsHex:
|
DispDWordAsHex:
|
00FFE3F8 08D007 bsr DispWordAsHex
|
00FFE401 08D007 bsr DispWordAsHex
|
00FFE3FA 01E001 exg d,x
|
00FFE403 01E001 exg d,x
|
00FFE3FC 08D003 bsr DispWordAsHex
|
00FFE405 08D003 bsr DispWordAsHex
|
00FFE3FE 01E001 exg d,x
|
00FFE407 01E001 exg d,x
|
00FFE400 039 rts
|
00FFE409 039 rts
|
|
|
DispWordAsHex:
|
DispWordAsHex:
|
00FFE401 01E089 exg a,b
|
00FFE40A 01E089 exg a,b
|
00FFE403 08D005 bsr DispByteAsHex
|
00FFE40C 08D005 bsr DispByteAsHex
|
00FFE405 01E089 exg a,b
|
00FFE40E 01E089 exg a,b
|
00FFE407 08D001 bsr DispByteAsHex
|
00FFE410 08D001 bsr DispByteAsHex
|
00FFE409 039 rts
|
00FFE412 039 rts
|
|
|
DispByteAsHex:
|
DispByteAsHex:
|
00FFE40A 034004 pshs b
|
00FFE413 034004 pshs b
|
00FFE40C 054 lsrb
|
00FFE415 054 lsrb
|
00FFE40D 054 lsrb
|
00FFE416 054 lsrb
|
00FFE40E 054 lsrb
|
00FFE417 054 lsrb
|
00FFE40F 054 lsrb
|
00FFE418 054 lsrb
|
00FFE410 054 lsrb
|
00FFE419 054 lsrb
|
00FFE411 054 lsrb
|
|
00FFE412 054 lsrb
|
|
00FFE413 054 lsrb
|
|
00FFE414 08D00C bsr DispNyb
|
|
00FFE416 035004 puls b
|
|
00FFE418 034004 pshs b
|
|
00FFE41A 054 lsrb
|
00FFE41A 054 lsrb
|
00FFE41B 054 lsrb
|
00FFE41B 054 lsrb
|
00FFE41C 054 lsrb
|
00FFE41C 054 lsrb
|
00FFE41D 054 lsrb
|
00FFE41D 08D00C bsr DispNyb
|
00FFE41E 08D002 bsr DispNyb
|
00FFE41F 035004 puls b
|
00FFE420 035004 puls b
|
00FFE421 034004 pshs b
|
|
00FFE423 054 lsrb
|
|
00FFE424 054 lsrb
|
|
00FFE425 054 lsrb
|
|
00FFE426 054 lsrb
|
|
00FFE427 08D002 bsr DispNyb
|
|
00FFE429 035004 puls b
|
|
|
DispNyb
|
DispNyb
|
00FFE422 034004 pshs b
|
00FFE42B 034004 pshs b
|
00FFE424 0C400F andb #$0F
|
00FFE42D 0C400F andb #$0F
|
00FFE426 0C100A cmpb #10
|
00FFE42F 0C100A cmpb #10
|
00FFE428 025007 blo DispNyb1
|
00FFE431 025007 blo DispNyb1
|
00FFE42A 0CB037 addb #'A'-10
|
00FFE433 0CB037 addb #'A'-10
|
00FFE42C 0170008E3 lbsr OUTCH
|
00FFE435 0170008DA lbsr OUTCH
|
00FFE42F 035084 puls b,pc
|
00FFE438 035084 puls b,pc
|
DispNyb1
|
DispNyb1
|
00FFE431 0CB030 addb #'0'
|
00FFE43A 0CB030 addb #'0'
|
00FFE433 0170008DC lbsr OUTCH
|
00FFE43C 0170008D3 lbsr OUTCH
|
00FFE436 035084 puls b,pc
|
00FFE43F 035084 puls b,pc
|
|
|
;==============================================================================
|
;==============================================================================
|
; Timer
|
; Timer
|
;==============================================================================
|
;==============================================================================
|
|
|
Line 1098... |
Line 1247... |
; along with this program. If not, see .
|
; along with this program. If not, see .
|
;
|
;
|
; ============================================================================
|
; ============================================================================
|
;
|
;
|
TimerInit:
|
TimerInit:
|
00FFE438 0CC061A80 ldd #$61A80 ; compare to 400000 (100 Hz assuming 40MHz clock)
|
00FFE441 0CC061A80 ldd #$61A80 ; compare to 400000 (100 Hz assuming 40MHz clock)
|
00FFE43B 0150F7FFFE60014 stb VIA+VIA_T3CMPL
|
00FFE444 0150F7FFFE60014 stb VIA+VIA_T3CMPL
|
00FFE440 0150B7FFFE60015 sta VIA+VIA_T3CMPH
|
00FFE449 0150B7FFFE60015 sta VIA+VIA_T3CMPH
|
00FFE445 01507FFFFE60012 clr VIA+VIA_T3LL
|
00FFE44E 01507FFFFE60012 clr VIA+VIA_T3LL
|
00FFE44A 01507FFFFE60013 clr VIA+VIA_T3LH
|
00FFE453 01507FFFFE60013 clr VIA+VIA_T3LH
|
00FFE44F 0150B6FFFE6000B lda VIA+VIA_ACR ; set continuous mode for timer
|
00FFE458 0150B6FFFE6000B lda VIA+VIA_ACR ; set continuous mode for timer
|
00FFE454 08A100 ora #$100
|
00FFE45D 08A100 ora #$100
|
00FFE456 0150B7FFFE6000B sta VIA+VIA_ACR ; enable timer #3 interrupts
|
00FFE45F 0150B7FFFE6000B sta VIA+VIA_ACR ; enable timer #3 interrupts
|
00FFE45B 086810 lda #$810
|
00FFE464 086810 lda #$810
|
00FFE45D 0150B7FFFE6000E sta VIA+VIA_IER
|
00FFE466 0150B7FFFE6000E sta VIA+VIA_IER
|
00FFE462 039 rts
|
00FFE46B 039 rts
|
|
|
TimerIRQ:
|
TimerIRQ:
|
; Reset the edge sense circuit in the PIC
|
; Reset the edge sense circuit in the PIC
|
00FFE463 08601F lda #31 ; Timer is IRQ #31
|
00FFE46C 08601F lda #31 ; Timer is IRQ #31
|
00FFE465 0B7FF0011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
|
00FFE46E 0B7FFC011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
|
00FFE468 0150B7FFFE3F010 sta PIC+16 ; register 16 is edge sense reset reg
|
00FFE471 0150B7FFFE3F010 sta PIC+16 ; register 16 is edge sense reset reg
|
00FFE46D 0150B6FFFE6000D lda VIA+VIA_IFR
|
00FFE476 0150B6FFFE6000D lda VIA+VIA_IFR
|
00FFE472 02A011 bpl notTimerIRQ
|
00FFE47B 02A011 bpl notTimerIRQ
|
00FFE474 085800 bita #$800
|
00FFE47D 085080 bita #$80 ; timer3 irq is bit 7
|
00FFE476 02700D beq notTimerIRQ
|
00FFE47F 02700D beq notTimerIRQ
|
00FFE478 01507FFFFE60012 clr VIA+VIA_T3LL
|
00FFE481 01507FFFFE60012 clr VIA+VIA_T3LL
|
00FFE47D 01507FFFFE60013 clr VIA+VIA_T3LH
|
00FFE486 01507FFFFE60013 clr VIA+VIA_T3LH
|
00FFE482 07CE00037 inc $E00037 ; update timer IRQ screen flag
|
00FFE48B 07CE00037 inc $E00037 ; update timer IRQ screen flag
|
notTimerIRQ:
|
notTimerIRQ:
|
00FFE485 039 rts
|
00FFE48E 039 rts
|
|
|
|
|
|
|
; ============================================================================
|
; ============================================================================
|
; __
|
; __
|
Line 1186... |
Line 1335... |
; Parameters:
|
; Parameters:
|
; x = I2C controller address
|
; x = I2C controller address
|
; Returns: none
|
; Returns: none
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
_i2c_init:
|
i2c_init:
|
00FFE486 034004 pshs b
|
00FFE48F 034004 pshs b
|
00FFE488 0C6004 ldb #4 ; setup prescale for 400kHz clock
|
00FFE491 0C6004 ldb #4 ; setup prescale for 400kHz clock
|
00FFE48A 0E7804 stb I2C_PREL,x
|
00FFE493 0E7804 stb I2C_PREL,x
|
00FFE48C 06F001 clr I2C_PREH,x
|
00FFE495 06F001 clr I2C_PREH,x
|
00FFE48E 035084 puls b,pc
|
00FFE497 035084 puls b,pc
|
|
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; Wait for I2C transfer to complete
|
; Wait for I2C transfer to complete
|
;
|
;
|
; Parameters
|
; Parameters
|
; x - I2C controller base address
|
; x - I2C controller base address
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
i2c_wait_tip:
|
i2c_wait_tip:
|
00FFE490 034004 pshs b
|
00FFE499 034004 pshs b
|
i2cw1:
|
i2cw1:
|
00FFE492 0E6004 ldb I2C_STAT,x ; would use lvb, but lb is okay since its the I/O area
|
00FFE49B 0E6004 ldb I2C_STAT,x ; would use lvb, but lb is okay since its the I/O area
|
00FFE494 0C5001 bitb #1 ; wait for tip to clear
|
00FFE49D 0C5001 bitb #1 ; wait for tip to clear
|
00FFE496 026FFA bne i2cw1
|
00FFE49F 026FFA bne i2cw1
|
00FFE498 035084 puls b,pc
|
00FFE4A1 035084 puls b,pc
|
|
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; Write command to i2c
|
; Write command to i2c
|
;
|
;
|
; Parameters
|
; Parameters
|
Line 1218... |
Line 1367... |
; acca - command value
|
; acca - command value
|
; x - I2C controller base address
|
; x - I2C controller base address
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
i2c_wr_cmd:
|
i2c_wr_cmd:
|
00FFE49A 0E7003 stb I2C_TXR,x
|
00FFE4A3 0E7003 stb I2C_TXR,x
|
00FFE49C 0A7004 sta I2C_CMD,x
|
00FFE4A5 0A7004 sta I2C_CMD,x
|
00FFE49E 08DFF0 bsr i2c_wait_tip
|
00FFE4A7 08DFF0 bsr i2c_wait_tip
|
00FFE4A0 0E6004 ldb I2C_STAT,x
|
00FFE4A9 0E6004 ldb I2C_STAT,x
|
00FFE4A2 039 rts
|
00FFE4AB 039 rts
|
|
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; Parameters
|
; Parameters
|
; x - I2C controller base address
|
; x - I2C controller base address
|
; accb - data to send
|
; accb - data to send
|
; Returns: none
|
; Returns: none
|
; Stack space: 2 words
|
; Stack space: 2 words
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
_i2c_xmit1:
|
i2c_xmit1:
|
00FFE4A3 034006 pshs d ; save data value
|
00FFE4AC 034006 pshs d ; save data value
|
00FFE4A5 034006 pshs d ; and save it again
|
00FFE4AE 034006 pshs d ; and save it again
|
00FFE4A7 0C6001 ldb #1
|
00FFE4B0 0C6001 ldb #1
|
00FFE4A9 0E7002 stb I2C_CTRL,x ; enable the core
|
00FFE4B2 0E7002 stb I2C_CTRL,x ; enable the core
|
00FFE4AB 0C6076 ldb #$76 ; set slave address = %0111011
|
00FFE4B4 0C6076 ldb #$76 ; set slave address = %0111011
|
00FFE4AD 086090 lda #$90 ; set STA, WR
|
00FFE4B6 086090 lda #$90 ; set STA, WR
|
00FFE4AF 08DFE9 bsr i2c_wr_cmd
|
00FFE4B8 08DFE9 bsr i2c_wr_cmd
|
00FFE4B1 08D00A bsr i2c_wait_rx_nack
|
00FFE4BA 08D00A bsr i2c_wait_rx_nack
|
00FFE4B3 035006 puls d ; get back data value
|
00FFE4BC 035006 puls d ; get back data value
|
00FFE4B5 086050 lda #$50 ; set STO, WR
|
00FFE4BE 086050 lda #$50 ; set STO, WR
|
00FFE4B7 08DFE1 bsr i2c_wr_cmd
|
00FFE4C0 08DFE1 bsr i2c_wr_cmd
|
00FFE4B9 08D002 bsr i2c_wait_rx_nack
|
00FFE4C2 08D002 bsr i2c_wait_rx_nack
|
00FFE4BB 035086 puls d,pc
|
00FFE4C4 035086 puls d,pc
|
|
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
i2c_wait_rx_nack:
|
i2c_wait_rx_nack:
|
00FFE4BD 034004 pshs b ; save off accb
|
00FFE4C6 034004 pshs b ; save off accb
|
i2cwr1:
|
i2cwr1:
|
00FFE4BF 0E6004 ldb I2C_STAT,x ; wait for RXack = 0
|
00FFE4C8 0E6004 ldb I2C_STAT,x ; wait for RXack = 0
|
00FFE4C1 0C5080 bitb #$80 ; test for nack
|
00FFE4CA 0C5080 bitb #$80 ; test for nack
|
00FFE4C3 026FFA bne i2cwr1
|
00FFE4CC 026FFA bne i2cwr1
|
00FFE4C5 035084 puls b,pc
|
00FFE4CE 035084 puls b,pc
|
|
|
; ============================================================================
|
; ============================================================================
|
; __
|
; __
|
; \\__/ o\ (C) 2022 Robert Finch, Waterloo
|
; \\__/ o\ (C) 2022 Robert Finch, Waterloo
|
; \ __ / All rights reserved.
|
; \ __ / All rights reserved.
|
Line 1311... |
Line 1460... |
; Modifies: d and RTCBuf
|
; Modifies: d and RTCBuf
|
; Stack space: 6 words
|
; Stack space: 6 words
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
rtc_read:
|
rtc_read:
|
00FFE4C7 08EE30500 ldx #RTC
|
00FFE4D0 08EE30500 ldx #RTC
|
00FFE4CA 18E007FC0 ldy #RTCBuf
|
00FFE4D3 18E007FC0 ldy #RTCBuf
|
00FFE4CD 0C6080 ldb #$80
|
00FFE4D6 0C6080 ldb #$80
|
00FFE4CF 0E7002 stb I2C_CTRL,x ; enable I2C
|
00FFE4D8 0E7002 stb I2C_CTRL,x ; enable I2C
|
00FFE4D1 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
|
00FFE4DA 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
|
00FFE4D4 08DFC4 bsr i2c_wr_cmd
|
00FFE4DD 08DFC4 bsr i2c_wr_cmd
|
00FFE4D6 0C5080 bitb #$80
|
|
00FFE4D8 02603C bne rtc_rxerr
|
|
00FFE4DA 0CC010000 ldd #$10000 ; address zero, wr bit
|
|
00FFE4DD 08DFBB bsr i2c_wr_cmd
|
|
00FFE4DF 0C5080 bitb #$80
|
00FFE4DF 0C5080 bitb #$80
|
00FFE4E1 026033 bne rtc_rxerr
|
00FFE4E1 02603C bne rtc_rxerr
|
00FFE4E3 0CC0900DF ldd #$900DF ; read address, read op, STA + wr bit
|
00FFE4E3 0CC010000 ldd #$10000 ; address zero, wr bit
|
00FFE4E6 08DFB2 bsr i2c_wr_cmd
|
00FFE4E6 08DFBB bsr i2c_wr_cmd
|
00FFE4E8 0C5080 bitb #$80
|
00FFE4E8 0C5080 bitb #$80
|
00FFE4EA 02602A bne rtc_rxerr
|
00FFE4EA 026033 bne rtc_rxerr
|
|
00FFE4EC 0CC0900DF ldd #$900DF ; read address, read op, STA + wr bit
|
|
00FFE4EF 08DFB2 bsr i2c_wr_cmd
|
|
00FFE4F1 0C5080 bitb #$80
|
|
00FFE4F3 02602A bne rtc_rxerr
|
|
|
00FFE4EC 05F clrb
|
00FFE4F5 05F clrb
|
rtcr0001:
|
rtcr0001:
|
00FFE4ED 086020 lda #$20
|
00FFE4F6 086020 lda #$20
|
00FFE4EF 0A7004 sta I2C_CMD,x ; rd bit
|
00FFE4F8 0A7004 sta I2C_CMD,x ; rd bit
|
00FFE4F1 08DF9D bsr i2c_wait_tip
|
00FFE4FA 08DF9D bsr i2c_wait_tip
|
00FFE4F3 08DFC8 bsr i2c_wait_rx_nack
|
00FFE4FC 08DFC8 bsr i2c_wait_rx_nack
|
00FFE4F5 0A6004 lda I2C_STAT,x
|
00FFE4FE 0A6004 lda I2C_STAT,x
|
00FFE4F7 085080 bita #$80
|
00FFE500 085080 bita #$80
|
00FFE4F9 02601B bne rtc_rxerr
|
00FFE502 02601B bne rtc_rxerr
|
00FFE4FB 0A6003 lda I2C_RXR,x
|
00FFE504 0A6003 lda I2C_RXR,x
|
00FFE4FD 0A7A07 sta b,y
|
00FFE506 0A7A07 sta b,y
|
00FFE4FF 05C incb
|
00FFE508 05C incb
|
00FFE500 0C105F cmpb #$5F
|
00FFE509 0C105F cmpb #$5F
|
00FFE502 025FE9 blo rtcr0001
|
00FFE50B 025FE9 blo rtcr0001
|
00FFE504 086068 lda #$68
|
00FFE50D 086068 lda #$68
|
00FFE506 0A7004 sta I2C_CMD,x ; STO, rd bit + nack
|
00FFE50F 0A7004 sta I2C_CMD,x ; STO, rd bit + nack
|
00FFE508 08DF86 bsr i2c_wait_tip
|
00FFE511 08DF86 bsr i2c_wait_tip
|
00FFE50A 0A6004 lda I2C_STAT,x
|
00FFE513 0A6004 lda I2C_STAT,x
|
00FFE50C 085080 bita #$80
|
00FFE515 085080 bita #$80
|
00FFE50E 026006 bne rtc_rxerr
|
00FFE517 026006 bne rtc_rxerr
|
00FFE510 0A6003 lda I2C_RXR,x
|
00FFE519 0A6003 lda I2C_RXR,x
|
00FFE512 0A7A07 sta b,y
|
00FFE51B 0A7A07 sta b,y
|
00FFE514 04F05F clrd ; return 0
|
00FFE51D 04F05F clrd ; return 0
|
rtc_rxerr:
|
rtc_rxerr:
|
00FFE516 06F002 clr I2C_CTRL,x ; disable I2C and return status
|
00FFE51F 06F002 clr I2C_CTRL,x ; disable I2C and return status
|
00FFE518 04F clra
|
00FFE521 04F clra
|
00FFE519 039 rts
|
00FFE522 039 rts
|
|
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; Write the real-time-clock chip.
|
; Write the real-time-clock chip.
|
;
|
;
|
; The entire contents of the clock registers and sram are written from a
|
; The entire contents of the clock registers and sram are written from a
|
Line 1369... |
Line 1518... |
; Modifies: r1 and RTCBuf
|
; Modifies: r1 and RTCBuf
|
; Stack space: 6 words
|
; Stack space: 6 words
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
rtc_write:
|
rtc_write:
|
00FFE51A 08EE30500 ldx #RTC
|
00FFE523 08EE30500 ldx #RTC
|
00FFE51D 18E007FC0 ldy #RTCBuf
|
00FFE526 18E007FC0 ldy #RTCBuf
|
|
|
00FFE520 0C6080 ldb #$80
|
00FFE529 0C6080 ldb #$80
|
00FFE522 0E7002 stb I2C_CTRL,x ; enable I2C
|
00FFE52B 0E7002 stb I2C_CTRL,x ; enable I2C
|
00FFE524 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
|
00FFE52D 0CC0900DE ldd #$900DE ; read address, write op, STA + wr bit
|
00FFE527 08DF71 bsr i2c_wr_cmd
|
00FFE530 08DF71 bsr i2c_wr_cmd
|
00FFE529 0C5080 bitb #$80
|
|
00FFE52B 026FE9 bne rtc_rxerr
|
|
00FFE52D 0CC010000 ldd #$10000 ; address zero, wr bit
|
|
00FFE530 08DF68 bsr i2c_wr_cmd
|
|
00FFE532 0C5080 bitb #$80
|
00FFE532 0C5080 bitb #$80
|
00FFE534 026FE0 bne rtc_rxerr
|
00FFE534 026FE9 bne rtc_rxerr
|
|
00FFE536 0CC010000 ldd #$10000 ; address zero, wr bit
|
|
00FFE539 08DF68 bsr i2c_wr_cmd
|
|
00FFE53B 0C5080 bitb #$80
|
|
00FFE53D 026FE0 bne rtc_rxerr
|
|
|
00FFE536 0C6000 ldb #0
|
00FFE53F 0C6000 ldb #0
|
rtcw0001:
|
rtcw0001:
|
00FFE538 034004 pshs b
|
00FFE541 034004 pshs b
|
00FFE53A 0E6A05 ldb b,y
|
00FFE543 0E6A05 ldb b,y
|
00FFE53C 086010 lda #$10
|
00FFE545 086010 lda #$10
|
00FFE53E 08DF5A bsr i2c_wr_cmd
|
00FFE547 08DF5A bsr i2c_wr_cmd
|
00FFE540 0C5080 bitb #$80
|
00FFE549 0C5080 bitb #$80
|
00FFE542 035004 puls b
|
00FFE54B 035004 puls b
|
00FFE544 026FD0 bne rtc_rxerr
|
00FFE54D 026FD0 bne rtc_rxerr
|
00FFE546 05C incb
|
00FFE54F 05C incb
|
00FFE547 0C105F cmpb #$5F
|
00FFE550 0C105F cmpb #$5F
|
00FFE549 025FED blo rtcw0001
|
00FFE552 025FED blo rtcw0001
|
00FFE54B 0E6A05 ldb b,y
|
00FFE554 0E6A05 ldb b,y
|
00FFE54D 086050 lda #$50 ; STO, wr bit
|
00FFE556 086050 lda #$50 ; STO, wr bit
|
00FFE54F 08DF49 bsr i2c_wr_cmd
|
00FFE558 08DF49 bsr i2c_wr_cmd
|
00FFE551 0C5080 bitb #$80
|
00FFE55A 0C5080 bitb #$80
|
00FFE553 026FC1 bne rtc_rxerr
|
00FFE55C 026FC1 bne rtc_rxerr
|
00FFE555 04F05F clrd ; return 0
|
00FFE55E 04F05F clrd ; return 0
|
00FFE557 06F002 clr I2C_CTRL,x ; disable I2C and return status
|
00FFE560 06F002 clr I2C_CTRL,x ; disable I2C and return status
|
00FFE559 039 rts
|
00FFE562 039 rts
|
|
|
;==============================================================================
|
;==============================================================================
|
; Keyboard I/O
|
; Keyboard I/O
|
;==============================================================================
|
;==============================================================================
|
|
|
Line 1908... |
Line 2057... |
kbdiTryAgain:
|
kbdiTryAgain:
|
00FFE982 0313FF dey
|
00FFE982 0313FF dey
|
00FFE984 026FC3 bne kbdi0002
|
00FFE984 026FC3 bne kbdi0002
|
.keybdErr:
|
.keybdErr:
|
00FFE986 0CCFFE9AE ldd #msgBadKeybd
|
00FFE986 0CCFFE9AE ldd #msgBadKeybd
|
00FFE989 017FFFA41 lbsr DisplayStringCRLF
|
00FFE989 017FFFA4A lbsr DisplayStringCRLF
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFE98C 020014 bra ledxit
|
00FFE98C 020014 bra ledxit
|
kbdi0004:
|
kbdi0004:
|
00FFE98E 0C6002 ldb #2 ; select scan code set #2
|
00FFE98E 0C6002 ldb #2 ; select scan code set #2
|
00FFE990 08DF07 bsr KeybdSendByte
|
00FFE990 08DF07 bsr KeybdSendByte
|
Line 1967... |
Line 2116... |
00FFE9D4 085080 bita #$80 ; was key pressed?
|
00FFE9D4 085080 bita #$80 ; was key pressed?
|
00FFE9D6 027034 beq notKbdIRQ ; if not, exit
|
00FFE9D6 027034 beq notKbdIRQ ; if not, exit
|
00FFE9D8 0150F6FFFE30400 ldb KEYBD ; get the scan code
|
00FFE9D8 0150F6FFFE30400 ldb KEYBD ; get the scan code
|
00FFE9DD 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
|
00FFE9DD 01507FFFFE30401 clr KEYBD+1 ; clear receive register (write $00 to status reg)
|
00FFE9E2 034004 pshs b ; save it off
|
00FFE9E2 034004 pshs b ; save it off
|
00FFE9E4 0B6FF0010 lda IOFocusID ; compute core memory address $Cn0000
|
00FFE9E4 0B6FFC010 lda IOFocusID ; compute core memory address $Cn0000
|
00FFE9E7 05F clrb
|
00FFE9E7 05F clrb
|
00FFE9E8 048 asla
|
00FFE9E8 048 asla
|
00FFE9E9 048 asla
|
00FFE9E9 048 asla
|
00FFE9EA 048 asla
|
00FFE9EA 048 asla
|
00FFE9EB 048 asla
|
00FFE9EB 048 asla
|
Line 1987... |
Line 2136... |
00FFE9FF 0A7845 sta b,x ; store in buffer
|
00FFE9FF 0A7845 sta b,x ; store in buffer
|
00FFEA01 05C incb ; increment buffer index
|
00FFEA01 05C incb ; increment buffer index
|
00FFEA02 0C403F andb #$3f ; wrap around at 64 chars
|
00FFEA02 0C403F andb #$3f ; wrap around at 64 chars
|
00FFEA04 0E7A08128 stb kbdTailRcv,y ; update it
|
00FFEA04 0E7A08128 stb kbdTailRcv,y ; update it
|
00FFEA07 08601C lda #28 ; Keyboard is IRQ #28
|
00FFEA07 08601C lda #28 ; Keyboard is IRQ #28
|
00FFEA09 0B7FF0011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
|
00FFEA09 0B7FFC011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
|
notKbdIRQ:
|
notKbdIRQ:
|
00FFEA0C 039 rts
|
00FFEA0C 039 rts
|
kbdBufFull:
|
kbdBufFull:
|
00FFEA0D 032601 leas 1,s ; get rid of saved scancode
|
00FFEA0D 032601 leas 1,s ; get rid of saved scancode
|
00FFEA0F 039 rts
|
00FFEA0F 039 rts
|
Line 2310... |
Line 2459... |
00FFEB77 0DD137 std SerTailXmit-1
|
00FFEB77 0DD137 std SerTailXmit-1
|
00FFEB79 00F139 clr SerRcvXon
|
00FFEB79 00F139 clr SerRcvXon
|
00FFEB7B 00F140 clr SerRcvXoff
|
00FFEB7B 00F140 clr SerRcvXoff
|
00FFEB7D 0150B6FFFFFFFE0 lda COREID
|
00FFEB7D 0150B6FFFFFFFE0 lda COREID
|
sini1:
|
sini1:
|
00FFEB82 0B1FF0010 cmpa IOFocusID
|
00FFEB82 0B1FFC010 cmpa IOFocusID
|
00FFEB85 026FFB bne sini1
|
00FFEB85 026FFB bne sini1
|
00FFEB87 0C6009 ldb #$09 ; dtr,rts active, rxint enabled, no parity
|
00FFEB87 0C6009 ldb #$09 ; dtr,rts active, rxint enabled, no parity
|
00FFEB89 0150F7FFFE30102 stb ACIA+ACIA_CMD
|
00FFEB89 0150F7FFFE30102 stb ACIA+ACIA_CMD
|
00FFEB8E 0C601F ldb #$1F ; baud 9600, 1 stop bit, 8 bit, internal baud gen
|
00FFEB8E 0C601F ldb #$1F ; baud 9600, 1 stop bit, 8 bit, internal baud gen
|
00FFEB90 0150F7FFFE30103 stb ACIA+ACIA_CTRL
|
00FFEB90 0150F7FFFE30103 stb ACIA+ACIA_CTRL
|
Line 2414... |
Line 2563... |
; d = character or -1
|
; d = character or -1
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
SerialPeekCharDirect:
|
SerialPeekCharDirect:
|
00FFEBE4 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
|
00FFEBE4 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
|
00FFEBE9 0B1FF0010 cmpa IOFocusID
|
00FFEBE9 0B1FFC010 cmpa IOFocusID
|
00FFEBEC 026014 bne spcd0001
|
00FFEBEC 026014 bne spcd0001
|
; Disallow interrupts between status read and rx read.
|
; Disallow interrupts between status read and rx read.
|
00FFEBEE 01A010 sei
|
00FFEBEE 01A010 sei
|
00FFEBF0 0150F6FFFE30101 ldb ACIA+ACIA_STAT
|
00FFEBF0 0150F6FFFE30101 ldb ACIA+ACIA_STAT
|
00FFEBF5 0C5008 bitb #8 ; look for Rx not empty
|
00FFEBF5 0C5008 bitb #8 ; look for Rx not empty
|
Line 2447... |
Line 2596... |
|
|
SerialPutChar:
|
SerialPutChar:
|
00FFEC08 034003 pshs a,ccr
|
00FFEC08 034003 pshs a,ccr
|
spc0001:
|
spc0001:
|
00FFEC0A 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
|
00FFEC0A 0150B6FFFFFFFE0 lda COREID ; Ensure we have the IO Focus
|
00FFEC0F 0B1FF0010 cmpa IOFocusID
|
00FFEC0F 0B1FFC010 cmpa IOFocusID
|
00FFEC12 026FF6 bne spc0001
|
00FFEC12 026FF6 bne spc0001
|
00FFEC14 01C0EF cli ; provide a window for an interrupt to occur
|
00FFEC14 01C0EF cli ; provide a window for an interrupt to occur
|
00FFEC16 01A010 sei
|
00FFEC16 01A010 sei
|
; Between the status read and the transmit do not allow an
|
; Between the status read and the transmit do not allow an
|
; intervening interrupt.
|
; intervening interrupt.
|
Line 2506... |
Line 2655... |
00FFEC4B 026000 bne sirq0001
|
00FFEC4B 026000 bne sirq0001
|
; bsr DumpTraceQueue
|
; bsr DumpTraceQueue
|
sirq0001:
|
sirq0001:
|
00FFEC4D 034004 pshs b
|
00FFEC4D 034004 pshs b
|
; Compute receive buffer address
|
; Compute receive buffer address
|
00FFEC4F 0B6FF0010 lda IOFocusID
|
00FFEC4F 0B6FFC010 lda IOFocusID
|
00FFEC52 048 asla
|
00FFEC52 048 asla
|
00FFEC53 048 asla
|
00FFEC53 048 asla
|
00FFEC54 048 asla
|
00FFEC54 048 asla
|
00FFEC55 048 asla
|
00FFEC55 048 asla
|
00FFEC56 08AC00 ora #$C00
|
00FFEC56 08AC00 ora #$C00
|
Line 2578... |
Line 2727... |
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
SerialOutputTest:
|
SerialOutputTest:
|
00FFECA5 034006 pshs d
|
00FFECA5 034006 pshs d
|
00FFECA7 0CCFFECC5 ldd #msgSerialTest
|
00FFECA7 0CCFFECC5 ldd #msgSerialTest
|
00FFECAA 017FFF709 lbsr DisplayString
|
00FFECAA 017FFF712 lbsr DisplayString
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFECAD 08DEC0 bsr SerialInit
|
00FFECAD 08DEC0 bsr SerialInit
|
sotst1:
|
sotst1:
|
00FFECAF 0C6011 ldb #XON
|
00FFECAF 0C6011 ldb #XON
|
00FFECB1 08DF55 bsr SerialPutChar
|
00FFECB1 08DF55 bsr SerialPutChar
|
Line 2613... |
Line 2762... |
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
INCH:
|
INCH:
|
00FFECDA 034004 pshs b
|
00FFECDA 034004 pshs b
|
INCH2:
|
INCH2:
|
00FFECDC 0150F6FFFFFFFE0 ldb COREID
|
00FFECDC 0150F6FFFFFFFE0 ldb COREID
|
00FFECE1 0F1FF0010 cmpb IOFocusID ; if we do not have focus, block
|
00FFECE1 0F1FFC010 cmpb IOFocusID ; if we do not have focus, block
|
00FFECE4 026FF6 bne INCH2
|
00FFECE4 026FF6 bne INCH2
|
; ldb #$800 ; block if no key available, get scancode directly
|
; ldb #$800 ; block if no key available, get scancode directly
|
; bra GetKey
|
; bra GetKey
|
; jsr [CharInVec] ; vector is being overwritten somehow
|
; jsr [CharInVec] ; vector is being overwritten somehow
|
00FFECE6 017FFFEFB lbsr SerialPeekCharDirect
|
00FFECE6 017FFFEFB lbsr SerialPeekCharDirect
|
Line 2646... |
Line 2795... |
00FFED07 026005 bne INCHEK2
|
00FFED07 026005 bne INCHEK2
|
00FFED09 017FFE3C6 lbsr CRLF
|
00FFED09 017FFE3C6 lbsr CRLF
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFED0C 020003 bra INCHEK1
|
00FFED0C 020003 bra INCHEK1
|
INCHEK2:
|
INCHEK2:
|
00FFED0E 017FFF5E4 lbsr DisplayChar
|
00FFED0E 017FFF5ED lbsr DisplayChar
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
INCHEK1:
|
INCHEK1:
|
00FFED11 039 rts
|
00FFED11 039 rts
|
|
|
OUTCH:
|
OUTCH:
|
Line 2700... |
Line 2849... |
00FFED49 000000 fcw 0
|
00FFED49 000000 fcw 0
|
00FFED4B 000000 fcw 0
|
00FFED4B 000000 fcw 0
|
00FFED4D 000000 fcw 0
|
00FFED4D 000000 fcw 0
|
00FFED4F 000000 fcw 0
|
00FFED4F 000000 fcw 0
|
00FFED51 000000 fcw 0
|
00FFED51 000000 fcw 0
|
00FFED53 FFED84 fcw ReleaseIOFocus
|
00FFED53 FFED70 fcw ReleaseIOFocus
|
00FFED55 000000 fcw 0
|
00FFED55 000000 fcw 0
|
00FFED57 FFED6D fcw RequestIOFocus
|
00FFED57 FFED59 fcw RequestIOFocus
|
|
|
OSCall:
|
NumOSFuncs EQU (*-OSCallTbl)/2
|
; wait for availability
|
|
osc1:
|
|
00FFED59 07DEF0011 tst OSSEMA+1
|
|
00FFED5C 027FFB beq osc1
|
|
00FFED5E 058 aslb
|
|
00FFED5F 08EFFED27 ldx #OSCallTbl
|
|
00FFED62 03A abx
|
|
00FFED63 06D804 tst ,x
|
|
00FFED65 027002 beq oscx
|
|
00FFED67 06E904 jmp [,x]
|
|
oscx:
|
|
00FFED69 07FEF0011 clr OSSEMA+1
|
|
00FFED6C 039 rts
|
|
|
|
RequestIOFocus:
|
RequestIOFocus:
|
00FFED6D 0150F6FFFFFFFE0 ldb COREID
|
00FFED59 0150F6FFFFFFFE0 ldb COREID
|
00FFED72 08EFF0000 ldx #IOFocusList
|
00FFED5E 08EFFC000 ldx #IOFocusList
|
00FFED75 03A abx
|
00FFED61 03A abx
|
00FFED76 0A7804 sta ,x
|
00FFED62 0A7804 sta ,x
|
00FFED78 07DFF0010 tst IOFocusID
|
00FFED64 07DFFC010 tst IOFocusID
|
00FFED7B 126FFFFEB lbne oscx
|
00FFED67 1260006FF lbne oscx
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFED6A 0F7FFC010 stb IOFocusID
|
00FFED7E 0F7FF0010 stb IOFocusID
|
00FFED6D 0160006F9 lbra oscx
|
00FFED81 016FFFFE5 lbra oscx
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
|
ReleaseIOFocus:
|
ReleaseIOFocus:
|
00FFED84 0150F6FFFFFFFE0 ldb COREID
|
00FFED70 0150F6FFFFFFFE0 ldb COREID
|
00FFED89 08EFF0000 ldx #IOFocusList
|
00FFED75 08EFFC000 ldx #IOFocusList
|
00FFED8C 03A abx
|
00FFED78 03A abx
|
00FFED8D 06F804 clr ,x ; clear the request indicator
|
00FFED79 06F804 clr ,x ; clear the request indicator
|
00FFED8F 017FFF463 lbsr CopyScreenToVirtualScreen
|
00FFED7B 017FFF480 lbsr CopyScreenToVirtualScreen
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFED92 0F1FF0010 cmpb IOFocusID ; are we the one with the focus?
|
|
00FFED95 126FFFFD1 lbne oscx
|
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFED7E 0F1FFC010 cmpb IOFocusID ; are we the one with the focus?
|
|
00FFED81 1260006E5 lbne oscx
|
; We had the focus, so now a new core needs the focus.
|
; We had the focus, so now a new core needs the focus.
|
; Search the focus list for a requestor. If no requester
|
; Search the focus list for a requestor. If no requester
|
; is found, give focus to core #1.
|
; is found, give focus to core #1.
|
00FFED98 08600F lda #15
|
00FFED84 08600F lda #15
|
riof2:
|
riof2:
|
00FFED9A 05C incb
|
00FFED86 05C incb
|
00FFED9B 0C400F andb #15
|
00FFED87 0C400F andb #15
|
00FFED9D 03A abx
|
00FFED89 03A abx
|
00FFED9E 06D804 tst ,x
|
00FFED8A 06D804 tst ,x
|
00FFEDA0 026009 bne riof1
|
00FFED8C 026009 bne riof1
|
00FFEDA2 04A deca
|
00FFED8E 04A deca
|
00FFEDA3 026FF5 bne riof2
|
00FFED8F 026FF5 bne riof2
|
; If no focus is requested by anyone, give to core #1
|
; If no focus is requested by anyone, give to core #1
|
00FFEDA5 0C6001 ldb #1
|
00FFED91 0C6001 ldb #1
|
00FFEDA7 086018 lda #24
|
00FFED93 086018 lda #24
|
00FFEDA9 0A7804 sta ,x
|
00FFED95 0A7804 sta ,x
|
riof1:
|
riof1:
|
00FFEDAB 0F7FF0010 stb IOFocusID
|
00FFED97 0F7FFC010 stb IOFocusID
|
00FFEDAE 017FFF40D lbsr CopyVirtualScreenToScreen
|
00FFED9A 017FFF42A lbsr CopyVirtualScreenToScreen
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFEDB1 016FFFFB5 lbra oscx
|
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFED9D 0160006C9 lbra oscx
|
|
|
|
|
;==============================================================================
|
;==============================================================================
|
; Disassembler
|
|
;==============================================================================
|
;==============================================================================
|
|
|
; ============================================================================
|
;------------------------------------------------------------------------------
|
; __
|
; Seed the random number generator. All channels are seeded with the same
|
; \\__/ o\ (C) 2013-2022 Robert Finch, Waterloo
|
; value.
|
; \ __ / All rights reserved.
|
|
; \/_// robfinch@opencores.org
|
|
; ||
|
|
;
|
|
;
|
|
; BSD 3-Clause License
|
|
; Redistribution and use in source and binary forms, with or without
|
|
; modification, are permitted provided that the following conditions are met:
|
|
;
|
|
; 1. Redistributions of source code must retain the above copyright notice, this
|
|
; list of conditions and the following disclaimer.
|
|
;
|
|
; 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
; this list of conditions and the following disclaimer in the documentation
|
|
; and/or other materials provided with the distribution.
|
|
;
|
|
; 3. Neither the name of the copyright holder nor the names of its
|
|
; contributors may be used to endorse or promote products derived from
|
|
; this software without specific prior written permission.
|
|
;
|
|
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
; CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
;
|
|
; ============================================================================
|
|
;
|
|
; Disassembler
|
|
;
|
;
|
|
; Parameters:
|
|
; d = 'z' part of seed
|
|
; x = 'w' part of seed
|
|
; Returns:
|
|
; none
|
|
;------------------------------------------------------------------------------
|
|
|
|
mon_srand:
|
|
00FFEDA0 18E000000 ldy #0
|
|
mon_srand1:
|
|
00FFEDA3 0151BFFFFE30604 sty PRNG+4 ; select channel
|
|
00FFEDA8 01507FFFFE30608 clr PRNG+8
|
|
00FFEDAD 01507FFFFE30609 clr PRNG+9
|
|
00FFEDB2 0150FDFFFE3060A std PRNG+10 ; update low half of value
|
|
00FFEDB7 01507FFFFE3060C clr PRNG+12
|
|
00FFEDBC 01507FFFFE3060D clr PRNG+13
|
|
00FFEDC1 0150BFFFFE3060E stx PRNG+14 ; update low half of value
|
|
00FFEDC6 031201 iny
|
|
00FFEDC8 18C000400 cmpy #$400 ; 1k channels
|
|
00FFEDCB 025FD6 blo mon_srand1
|
|
00FFEDCD 039 rts
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Get a random number and generate the next one.
|
;
|
;
|
DIRECT EQU 1
|
; Parameters:
|
LSREL EQU 2
|
; d = channel to use
|
IMMB EQU 3
|
; Returns:
|
SREL EQU 4
|
; x,d = 36 bit random value
|
NDX EQU 5
|
;------------------------------------------------------------------------------
|
EXT EQU 6
|
|
IMMW EQU 7
|
mon_rand:
|
FAREXT EQU 8
|
00FFEDCE 0150FDFFFE30604 std PRNG+4 ; select channel
|
TFREXG EQU 9
|
00FFEDD3 0150BEFFFE30600 ldx PRNG+0
|
|
00FFEDD8 0150FCFFFE30602 ldd PRNG+2
|
distbl1:
|
00FFEDDD 0150F7FFFE30603 stb PRNG+3 ; trigger calc of next number
|
; 00 to 0F
|
00FFEDE2 039 rts
|
00FFEDB4 04E045047020001 fcb "NEG ", DIRECT
|
|
00FFEDB9 020020020020000 fcb " ", 0
|
|
00FFEDBE 020020020020000 fcb " ", 0
|
|
00FFEDC3 04304F04D020001 fcb "COM ", DIRECT
|
|
00FFEDC8 04C053052020001 fcb "LSR ", DIRECT
|
|
00FFEDCD 020020020020000 fcb " ", 0
|
|
00FFEDD2 05204F052020001 fcb "ROR ", DIRECT
|
|
00FFEDD7 041053052020001 fcb "ASR ", DIRECT
|
|
00FFEDDC 04105304C020001 fcb "ASL ", DIRECT
|
|
00FFEDE1 05204F04C020001 fcb "ROL ", DIRECT
|
|
00FFEDE6 044045043020001 fcb "DEC ", DIRECT
|
|
00FFEDEB 020020020020000 fcb " ", 0
|
|
00FFEDF0 04904E043020001 fcb "INC ", DIRECT
|
|
00FFEDF5 054053054020001 fcb "TST ", DIRECT
|
|
00FFEDFA 04A04D050020001 fcb "JMP ", DIRECT
|
|
00FFEDFF 04304C052020001 fcb "CLR ", DIRECT
|
|
|
|
; 10 to 1F
|
|
00FFEE04 020020020020000 fcb " ", 0
|
|
00FFEE09 020020020020000 fcb " ", 0
|
|
00FFEE0E 04E04F050020000 fcb "NOP ", 0
|
|
00FFEE13 05305904E043000 fcb "SYNC", 0
|
|
00FFEE18 020020020020000 fcb " ", 0
|
|
00FFEE1D 046041052020000 fcb "FAR ", 0
|
|
00FFEE22 04C042052041002 fcb "LBRA", LSREL
|
|
00FFEE27 04C042053052002 fcb "LBSR", LSREL
|
|
00FFEE2C 020020020020000 fcb " ", 0
|
|
00FFEE31 044041041020000 fcb "DAA ", 0
|
|
00FFEE36 04F052043043003 fcb "ORCC", IMMB
|
|
00FFEE3B 020020020020000 fcb " ", 0
|
|
00FFEE40 04104E044043003 fcb "ANDC", IMMB
|
|
00FFEE45 053045058020000 fcb "SEX ", 0
|
|
00FFEE4A 045058047020009 fcb "EXG ", TFREXG
|
|
00FFEE4F 054046052020009 fcb "TFR ", TFREXG
|
|
|
|
; 20 to 2F
|
|
00FFEE54 042052041020004 fcb "BRA ", SREL
|
|
00FFEE59 04205204E020004 fcb "BRN ", SREL
|
|
00FFEE5E 042048049020004 fcb "BHI ", SREL
|
|
00FFEE63 04204C053020004 fcb "BLS ", SREL
|
|
00FFEE68 042048053020004 fcb "BHS ", SREL
|
|
00FFEE6D 04204C04F020004 fcb "BLO ", SREL
|
|
00FFEE72 04204E045020004 fcb "BNE ", SREL
|
|
00FFEE77 042045051020004 fcb "BEQ ", SREL
|
|
00FFEE7C 042056043020004 fcb "BVC ", SREL
|
|
00FFEE81 042056053020004 fcb "BVS ", SREL
|
|
00FFEE86 04205004C020004 fcb "BPL ", SREL
|
|
00FFEE8B 04204D049020004 fcb "BMI ", SREL
|
|
00FFEE90 042047045020004 fcb "BGE ", SREL
|
|
00FFEE95 04204C054020004 fcb "BLT ", SREL
|
|
00FFEE9A 042047054020004 fcb "BGT ", SREL
|
|
00FFEE9F 04204C045020004 fcb "BLE ", SREL
|
|
|
|
; 30 to 3F
|
|
00FFEEA4 04C045041058005 fcb "LEAX", NDX
|
|
00FFEEA9 04C045041059005 fcb "LEAY", NDX
|
|
00FFEEAE 04C045041053005 fcb "LEAS", NDX
|
|
00FFEEB3 04C045041055005 fcb "LEAU", NDX
|
|
00FFEEB8 050053048053003 fcb "PSHS", IMMB
|
|
00FFEEBD 05005504C053003 fcb "PULS", IMMB
|
|
00FFEEC2 050053048055003 fcb "PSHU", IMMB
|
|
00FFEEC7 05005504C055003 fcb "PULU", IMMB
|
|
00FFEECC 052054046020000 fcb "RTF ", 0
|
|
00FFEED1 052054053020000 fcb "RTS ", 0
|
|
00FFEED6 041042058020000 fcb "ABX ", 0
|
|
00FFEEDB 052054049020000 fcb "RTI ", 0
|
|
00FFEEE0 043057041049003 fcb "CWAI", IMMB
|
|
00FFEEE5 04D05504C020000 fcb "MUL ", 0
|
|
00FFEEEA 020020020020000 fcb " ", 0
|
|
00FFEEEF 053057049020000 fcb "SWI ", 0
|
|
|
|
; 40 to 4F
|
|
00FFEEF4 04E045047041000 fcb "NEGA", 0
|
|
00FFEEF9 020020020020000 fcb " ", 0
|
|
00FFEEFE 020020020020000 fcb " ", 0
|
|
00FFEF03 04304F04D041000 fcb "COMA", 0
|
|
00FFEF08 04C053052041000 fcb "LSRA", 0
|
|
00FFEF0D 020020020020000 fcb " ", 0
|
|
00FFEF12 05204F052041000 fcb "RORA", 0
|
|
00FFEF17 041053052041000 fcb "ASRA", 0
|
|
00FFEF1C 04105304C041000 fcb "ASLA", 0
|
|
00FFEF21 05204F04C041000 fcb "ROLA", 0
|
|
00FFEF26 044045043041000 fcb "DECA", 0
|
|
00FFEF2B 020020020020000 fcb " ", 0
|
|
00FFEF30 04904E043041000 fcb "INCA", 0
|
|
00FFEF35 054053054041000 fcb "TSTA", 0
|
|
00FFEF3A 020020020020000 fcb " ", 0
|
|
00FFEF3F 04304C052041000 fcb "CLRA", 0
|
|
|
|
; 50 to 5F
|
|
00FFEF44 04E045047042000 fcb "NEGB", 0
|
|
00FFEF49 020020020020000 fcb " ", 0
|
|
00FFEF4E 020020020020000 fcb " ", 0
|
|
00FFEF53 04304F04D042000 fcb "COMB", 0
|
|
00FFEF58 04C053052042000 fcb "LSRB", 0
|
|
00FFEF5D 020020020020000 fcb " ", 0
|
|
00FFEF62 05204F052042000 fcb "RORB", 0
|
|
00FFEF67 041053052042000 fcb "ASRB", 0
|
|
00FFEF6C 04105304C042000 fcb "ASLB", 0
|
|
00FFEF71 05204F04C042000 fcb "ROLB", 0
|
|
00FFEF76 044045043042000 fcb "DECB", 0
|
|
00FFEF7B 020020020020000 fcb " ", 0
|
|
00FFEF80 04904E043042000 fcb "INCB", 0
|
|
00FFEF85 054053054042000 fcb "TSTB", 0
|
|
00FFEF8A 020020020020000 fcb " ", 0
|
|
00FFEF8F 04304C052042000 fcb "CLRB", 0
|
|
|
|
; 60 to 6F
|
|
00FFEF94 04E045047020005 fcb "NEG ", NDX
|
|
00FFEF99 020020020020000 fcb " ", 0
|
|
00FFEF9E 020020020020000 fcb " ", 0
|
|
00FFEFA3 04304F04D020005 fcb "COM ", NDX
|
|
00FFEFA8 04C053052020005 fcb "LSR ", NDX
|
|
00FFEFAD 020020020020000 fcb " ", 0
|
|
00FFEFB2 05204F052020005 fcb "ROR ", NDX
|
|
00FFEFB7 041053052020005 fcb "ASR ", NDX
|
|
00FFEFBC 04105304C020005 fcb "ASL ", NDX
|
|
00FFEFC1 05204F04C020005 fcb "ROL ", NDX
|
|
00FFEFC6 044045043020005 fcb "DEC ", NDX
|
|
00FFEFCB 020020020020000 fcb " ", 0
|
|
00FFEFD0 04904E043020005 fcb "INC ", NDX
|
|
00FFEFD5 054053054020005 fcb "TST ", NDX
|
|
00FFEFDA 04A04D050020005 fcb "JMP ", NDX
|
|
00FFEFDF 04304C052020005 fcb "CLR ", NDX
|
|
|
|
; 70 to 7F
|
|
00FFEFE4 04E045047020006 fcb "NEG ", EXT
|
|
00FFEFE9 020020020020000 fcb " ", 0
|
|
00FFEFEE 020020020020000 fcb " ", 0
|
|
00FFEFF3 04304F04D020006 fcb "COM ", EXT
|
|
00FFEFF8 04C053052020006 fcb "LSR ", EXT
|
|
00FFEFFD 020020020020000 fcb " ", 0
|
|
00FFF002 05204F052020006 fcb "ROR ", EXT
|
|
00FFF007 041053052020006 fcb "ASR ", EXT
|
|
00FFF00C 04105304C020006 fcb "ASL ", EXT
|
|
00FFF011 05204F04C020006 fcb "ROL ", EXT
|
|
00FFF016 044045043020006 fcb "DEC ", EXT
|
|
00FFF01B 020020020020000 fcb " ", 0
|
|
00FFF020 04904E043020006 fcb "INC ", EXT
|
|
00FFF025 054053054020006 fcb "TST ", EXT
|
|
00FFF02A 04A04D050020006 fcb "JMP ", EXT
|
|
00FFF02F 04304C052020006 fcb "CLR ", EXT
|
|
|
|
; 80 to 8F
|
|
00FFF034 053055042041003 fcb "SUBA", IMMB
|
|
00FFF039 04304D050041003 fcb "CMPA", IMMB
|
|
00FFF03E 053042043041003 fcb "SBCA", IMMB
|
|
00FFF043 053055042044007 fcb "SUBD", IMMW
|
|
00FFF048 04104E044041003 fcb "ANDA", IMMB
|
|
00FFF04D 042049054041003 fcb "BITA", IMMB
|
|
00FFF052 04C044041020003 fcb "LDA ", IMMB
|
|
00FFF057 020020020020000 fcb " ", 0
|
|
00FFF05C 04504F052041003 fcb "EORA", IMMB
|
|
00FFF061 041044043041003 fcb "ADCA", IMMB
|
|
00FFF066 04F052041020003 fcb "ORA ", IMMB
|
|
00FFF06B 041044044041003 fcb "ADDA", IMMB
|
|
00FFF070 04304D050058007 fcb "CMPX", IMMW
|
|
00FFF075 042053052020004 fcb "BSR ", SREL
|
|
00FFF07A 04C044058020007 fcb "LDX ", IMMW
|
|
00FFF07F 04A04D046020008 fcb "JMF ", FAREXT
|
|
|
|
; 90 to 9F
|
|
00FFF084 053055042041001 fcb "SUBA", DIRECT
|
|
00FFF089 04304D050041001 fcb "CMPA", DIRECT
|
|
00FFF08E 053042043041001 fcb "SBCA", DIRECT
|
|
00FFF093 053055042044001 fcb "SUBD", DIRECT
|
|
00FFF098 04104E044041001 fcb "ANDA", DIRECT
|
|
00FFF09D 042049054041001 fcb "BITA", DIRECT
|
|
00FFF0A2 04C044041020001 fcb "LDA ", DIRECT
|
|
00FFF0A7 053054041020001 fcb "STA ", DIRECT
|
|
00FFF0AC 04504F052041001 fcb "EORA", DIRECT
|
|
00FFF0B1 041044043041001 fcb "ADCA", DIRECT
|
|
00FFF0B6 04F052041020001 fcb "ORA ", DIRECT
|
|
00FFF0BB 041044044041001 fcb "ADDA", DIRECT
|
|
00FFF0C0 04304D050058001 fcb "CMPX", DIRECT
|
|
00FFF0C5 04A053052020001 fcb "JSR ", DIRECT
|
|
00FFF0CA 04C044058020001 fcb "LDX ", DIRECT
|
|
00FFF0CF 053054058020001 fcb "STX ", DIRECT
|
|
|
|
; A0 to AF
|
|
00FFF0D4 053055042041005 fcb "SUBA", NDX
|
|
00FFF0D9 04304D050041005 fcb "CMPA", NDX
|
|
00FFF0DE 053042043041005 fcb "SBCA", NDX
|
|
00FFF0E3 053055042044005 fcb "SUBD", NDX
|
|
00FFF0E8 04104E044041005 fcb "ANDA", NDX
|
|
00FFF0ED 042049054041005 fcb "BITA", NDX
|
|
00FFF0F2 04C044041020005 fcb "LDA ", NDX
|
|
00FFF0F7 053054041020005 fcb "STA ", NDX
|
|
00FFF0FC 04504F052041005 fcb "EORA", NDX
|
|
00FFF101 041044043041005 fcb "ADCA", NDX
|
|
00FFF106 04F052041020005 fcb "ORA ", NDX
|
|
00FFF10B 041044044041005 fcb "ADDA", NDX
|
|
00FFF110 04304D050058005 fcb "CMPX", NDX
|
|
00FFF115 04A053052020005 fcb "JSR ", NDX
|
|
00FFF11A 04C044058020005 fcb "LDX ", NDX
|
|
00FFF11F 053054058020005 fcb "STX ", NDX
|
|
|
|
; B0 to BF
|
|
00FFF124 053055042041006 fcb "SUBA", EXT
|
|
00FFF129 04304D050041006 fcb "CMPA", EXT
|
|
00FFF12E 053042043041006 fcb "SBCA", EXT
|
|
00FFF133 053055042044006 fcb "SUBD", EXT
|
|
00FFF138 04104E044041006 fcb "ANDA", EXT
|
|
00FFF13D 042049054041006 fcb "BITA", EXT
|
|
00FFF142 04C044041020006 fcb "LDA ", EXT
|
|
00FFF147 053054041020006 fcb "STA ", EXT
|
|
00FFF14C 04504F052041006 fcb "EORA", EXT
|
|
00FFF151 041044043041006 fcb "ADCA", EXT
|
|
00FFF156 04F052041020006 fcb "ORA ", EXT
|
|
00FFF15B 041044044041006 fcb "ADDA", EXT
|
|
00FFF160 04304D050058006 fcb "CMPX", EXT
|
|
00FFF165 04A053052020006 fcb "JSR ", EXT
|
|
00FFF16A 04C044058020006 fcb "LDX ", EXT
|
|
00FFF16F 053054058020006 fcb "STX ", EXT
|
|
|
|
; C0 to CF
|
|
00FFF174 053055042042003 fcb "SUBB", IMMB
|
|
00FFF179 04304D050042003 fcb "CMPB", IMMB
|
|
00FFF17E 053042043062003 fcb "SBCb", IMMB
|
|
00FFF183 041044044044007 fcb "ADDD", IMMW
|
|
00FFF188 04104E044042003 fcb "ANDB", IMMB
|
|
00FFF18D 042049054042003 fcb "BITB", IMMB
|
|
00FFF192 04C044042020003 fcb "LDB ", IMMB
|
|
00FFF197 020020020020000 fcb " ", 0
|
|
00FFF19C 04504F052042003 fcb "EORB", IMMB
|
|
00FFF1A1 041044043042003 fcb "ADCB", IMMB
|
|
00FFF1A6 04F052042020003 fcb "ORB ", IMMB
|
|
00FFF1AB 041044044042003 fcb "ADDB", IMMB
|
|
00FFF1B0 04C044044020007 fcb "LDD ", IMMW
|
|
00FFF1B5 020020020020004 fcb " ", SREL
|
|
00FFF1BA 04C044055020007 fcb "LDU ", IMMW
|
|
00FFF1BF 04A053046020008 fcb "JSF ", FAREXT
|
|
|
|
; D0 to DF
|
|
00FFF1C4 053055042042001 fcb "SUBB", DIRECT
|
|
00FFF1C9 04304D050042001 fcb "CMPB", DIRECT
|
|
00FFF1CE 053042043042001 fcb "SBCB", DIRECT
|
|
00FFF1D3 041044044044001 fcb "ADDD", DIRECT
|
|
00FFF1D8 04104E044042001 fcb "ANDB", DIRECT
|
|
00FFF1DD 042049054042001 fcb "BITB", DIRECT
|
|
00FFF1E2 04C044042020001 fcb "LDB ", DIRECT
|
|
00FFF1E7 053054042020001 fcb "STB ", DIRECT
|
|
00FFF1EC 04504F052042001 fcb "EORB", DIRECT
|
|
00FFF1F1 041044043042001 fcb "ADCB", DIRECT
|
|
00FFF1F6 04F052042020001 fcb "ORB ", DIRECT
|
|
00FFF1FB 041044044042001 fcb "ADDB", DIRECT
|
|
00FFF200 04C044044020001 fcb "LDD ", DIRECT
|
|
00FFF205 053054044020001 fcb "STD ", DIRECT
|
|
00FFF20A 04C044055020001 fcb "LDU ", DIRECT
|
|
00FFF20F 053054055020001 fcb "STU ", DIRECT
|
|
|
|
; E0 to EF
|
|
00FFF214 053055042042005 fcb "SUBB", NDX
|
|
00FFF219 04304D050042005 fcb "CMPB", NDX
|
|
00FFF21E 053042043042005 fcb "SBCB", NDX
|
|
00FFF223 041044044044005 fcb "ADDD", NDX
|
|
00FFF228 04104E044042005 fcb "ANDB", NDX
|
|
00FFF22D 042049054042005 fcb "BITB", NDX
|
|
00FFF232 04C044042020005 fcb "LDB ", NDX
|
|
00FFF237 053054042020005 fcb "STB ", NDX
|
|
00FFF23C 04504F052042005 fcb "EORB", NDX
|
|
00FFF241 041044043042005 fcb "ADCB", NDX
|
|
00FFF246 04F052042020005 fcb "ORB ", NDX
|
|
00FFF24B 041044044042005 fcb "ADDB", NDX
|
|
00FFF250 04C044044020005 fcb "LDD ", NDX
|
|
00FFF255 053054044020005 fcb "STD ", NDX
|
|
00FFF25A 04C044055020005 fcb "LDU ", NDX
|
|
00FFF25F 053054055020005 fcb "STU ", NDX
|
|
|
|
; F0 to FF
|
|
00FFF264 053055042042006 fcb "SUBB", EXT
|
|
00FFF269 04304D050042006 fcb "CMPB", EXT
|
|
00FFF26E 053042043042006 fcb "SBCB", EXT
|
|
00FFF273 041044044044006 fcb "ADDD", EXT
|
|
00FFF278 04104E044042006 fcb "ANDB", EXT
|
|
00FFF27D 042049054042006 fcb "BITB", EXT
|
|
00FFF282 04C044042020006 fcb "LDB ", EXT
|
|
00FFF287 053054042020006 fcb "STB ", EXT
|
|
00FFF28C 04504F052042006 fcb "EORB", EXT
|
|
00FFF291 041044043042006 fcb "ADCB", EXT
|
|
00FFF296 04F052042020006 fcb "ORB ", EXT
|
|
00FFF29B 041044044042006 fcb "ADDB", EXT
|
|
00FFF2A0 04C044044020006 fcb "LDD ", EXT
|
|
00FFF2A5 053054044020006 fcb "STD ", EXT
|
|
00FFF2AA 04C044055020006 fcb "LDU ", EXT
|
|
00FFF2AF 053054055020006 fcb "STU ", EXT
|
|
|
|
; 120 to 12F
|
|
distbl2:
|
|
00FFF2B4 04C042052041 fcb "LBRA"
|
|
00FFF2B8 04C04205204E fcb "LBRN"
|
|
00FFF2BC 04C042048049 fcb "LBHI"
|
|
00FFF2C0 04C04204C053 fcb "LBLS"
|
|
00FFF2C4 04C042048053 fcb "LBHS"
|
|
00FFF2C8 04C04204C04F fcb "LBLO"
|
|
00FFF2CC 04C04204E045 fcb "LBNE"
|
|
00FFF2D0 04C042045051 fcb "LBEQ"
|
|
00FFF2D4 04C042056043 fcb "LBVC"
|
|
00FFF2D8 04C042056053 fcb "LBVS"
|
|
00FFF2DC 04C04205004C fcb "LBPL"
|
|
00FFF2E0 04C04204D049 fcb "LBMI"
|
|
00FFF2E4 04C042047045 fcb "LBGE"
|
|
00FFF2E8 04C04204C054 fcb "LBLT"
|
|
00FFF2EC 04C042047054 fcb "LBGT"
|
|
00FFF2F0 04C04204C045 fcb "LBLE"
|
|
|
|
distbl3:
|
|
00FFF2F4 13F fcb $13F
|
|
00FFF2F5 183 fcb $183
|
|
00FFF2F6 18C fcb $18C
|
|
00FFF2F7 18E fcb $18E
|
|
00FFF2F8 193 fcb $193
|
|
00FFF2F9 19C fcb $19C
|
|
00FFF2FA 19E fcb $19E
|
|
00FFF2FB 19F fcb $19F
|
|
00FFF2FC 1A3 fcb $1A3
|
|
00FFF2FD 1AC fcb $1AC
|
|
00FFF2FE 1AE fcb $1AE
|
|
00FFF2FF 1AF fcb $1AF
|
|
00FFF300 1B3 fcb $1B3
|
|
00FFF301 1BC fcb $1BC
|
|
00FFF302 1BE fcb $1BE
|
|
00FFF303 1BF fcb $1BF
|
|
00FFF304 1CE fcb $1CE
|
|
00FFF305 1DE fcb $1DE
|
|
00FFF306 1DF fcb $1DF
|
|
00FFF307 1EE fcb $1EE
|
|
00FFF308 1EF fcb $1EF
|
|
00FFF309 1FE fcb $1FE
|
|
00FFF30A 1FF fcb $1FF
|
|
00FFF30B 23F fcb $23F
|
|
00FFF30C 283 fcb $283
|
|
00FFF30D 28C fcb $28C
|
|
00FFF30E 293 fcb $293
|
|
00FFF30F 29C fcb $29C
|
|
00FFF310 2A3 fcb $2A3
|
|
00FFF311 2AC fcb $2AC
|
|
00FFF312 2B3 fcb $2B3
|
|
00FFF313 2BC fcb $2BC
|
|
|
|
distbl4:
|
|
00FFF314 053057049032000 fcb "SWI2", 0
|
|
00FFF319 04304D050044007 fcb "CMPD", IMMW
|
|
00FFF31E 04304D050059007 fcb "CMPY", IMMW
|
|
00FFF323 04C044059020007 fcb "LDY ", IMMW
|
|
00FFF328 04304D050044001 fcb "CMPD", DIRECT
|
|
00FFF32D 04304D050059001 fcb "CMPY", DIRECT
|
|
00FFF332 04C044059020001 fcb "LDY ", DIRECT
|
|
00FFF337 053054059020001 fcb "STY ", DIRECT
|
|
00FFF33C 04304D050044005 fcb "CMPD", NDX
|
|
00FFF341 04304D050059005 fcb "CMPY", NDX
|
|
00FFF346 04C044059020005 fcb "LDY ", NDX
|
|
00FFF34B 053054059020005 fcb "STY ", NDX
|
|
00FFF350 04304D050044006 fcb "CMPD", EXT
|
|
00FFF355 04304D050059006 fcb "CMPY", EXT
|
|
00FFF35A 04C044059020006 fcb "LDY ", EXT
|
|
00FFF35F 053054059020006 fcb "STY ", EXT
|
|
00FFF364 04C044053020007 fcb "LDS ", IMMW
|
|
00FFF369 04C044053020001 fcb "LDS ", DIRECT
|
|
00FFF36E 053054053020001 fcb "STS ", DIRECT
|
|
00FFF373 04C044053020005 fcb "LDS ", NDX
|
|
00FFF378 053054053020005 fcb "STS ", NDX
|
|
00FFF37D 04C044053020006 fcb "LDS ", EXT
|
|
00FFF382 053054053020006 fcb "STS ", EXT
|
|
00FFF387 053057049033000 fcb "SWI3", 0
|
|
00FFF38C 04304D050055007 fcb "CMPU", IMMW
|
|
00FFF391 04304D050053007 fcb "CMPS", IMMW
|
|
00FFF396 04304D050055001 fcb "CMPU", DIRECT
|
|
00FFF39B 04304D050053001 fcb "CMPS", DIRECT
|
|
00FFF3A0 04304D050055005 fcb "CMPU", NDX
|
|
00FFF3A5 04304D050053005 fcb "CMPS", NDX
|
|
00FFF3AA 04304D050055006 fcb "CMPU", EXT
|
|
00FFF3AF 04304D050053006 fcb "CMPS", EXT
|
|
|
|
disassem:
|
|
00FFF3B4 00F15F clr farflag
|
|
00FFF3B6 0170006AD lbsr GetRange
|
|
00FFF3B9 017FFDD16 lbsr CRLF
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3BC 1BE000922 ldy mon_r1+2
|
|
disLoop1:
|
|
00FFF3BF 01F020 tfr y,d
|
|
00FFF3C1 017FFF03D lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3C4 0C6020 ldb #' '
|
|
00FFF3C6 017FFF949 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3C9 0E6A00 ldb ,y+
|
|
00FFF3CB 0C5300 bitb #$300
|
|
00FFF3CD 12600041F lbne dis1
|
|
00FFF3D0 0C40FF andb #$FF ; mask off extra bits
|
|
00FFF3D2 0C1015 cmpb #$15
|
|
00FFF3D4 026004 bne dis20
|
|
00FFF3D6 0D715F stb farflag
|
|
00FFF3D8 020FE5 bra disLoop1
|
|
dis20:
|
|
00FFF3DA 08EFFEDB4 ldx #distbl1
|
|
dis23:
|
|
00FFF3DD 086005 lda #5
|
|
00FFF3DF 03D mul
|
|
00FFF3E0 03A abx
|
|
00FFF3E1 0E6800 ldb ,x+
|
|
00FFF3E3 017FFF92C lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3E6 0E6800 ldb ,x+
|
|
00FFF3E8 017FFF927 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3EB 0E6800 ldb ,x+
|
|
00FFF3ED 017FFF922 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3F0 0E6800 ldb ,x+
|
|
00FFF3F2 017FFF91D lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3F5 0C6020 ldb #' '
|
|
00FFF3F7 017FFF918 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3FA 0E6800 ldb ,x+
|
|
00FFF3FC 127000443 lbeq disNextLine
|
|
00FFF3FF 0C1001 cmpb #DIRECT
|
|
00FFF401 026008 bne disNotDirect
|
|
00FFF403 0E6A00 ldb ,y+
|
|
00FFF405 017FFF002 lbsr DispByteAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF408 016000437 lbra disNextLine
|
|
disNotDirect:
|
|
00FFF40B 0C1002 cmpb #LSREL
|
|
00FFF40D 02600C bne disNotLRel
|
|
dis21:
|
|
00FFF40F 0ECA01 ldd ,y++
|
|
dis2:
|
|
00FFF411 030A0B leax d,y
|
|
00FFF413 01F010 tfr x,d
|
|
00FFF415 017FFEFE9 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF418 016000427 lbra disNextLine
|
|
disNotLRel:
|
|
00FFF41B 0C1004 cmpb #SREL
|
|
00FFF41D 026005 bne disNotRel
|
|
00FFF41F 0E6A00 ldb ,y+
|
|
00FFF421 04F clra
|
|
00FFF422 020FED bra dis2
|
|
disNotRel:
|
|
00FFF424 0C1005 cmpb #NDX
|
|
00FFF426 026385 bne disNotNdx
|
|
00FFF428 0E6A00 ldb ,y+
|
|
00FFF42A 0C5800 bitb #$800
|
|
00FFF42C 02601E bne disNot9 ; test for offset 9 mode
|
|
00FFF42E 034004 pshs b
|
|
00FFF430 0C41FF andb #$1FF ; mask to offset bits
|
|
00FFF432 04F clra ;
|
|
00FFF433 0C5100 bitb #$100 ; test for negative offset
|
|
00FFF435 027003 beq dis3
|
|
00FFF437 04A deca ; sign extend offset
|
|
00FFF438 0CAE00 orb #$E00
|
|
dis3:
|
|
00FFF43A 017FFEFC4 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF43D 0C602C ldb #','
|
|
00FFF43F 017FFF8D0 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF442 035004 puls b
|
|
00FFF444 08D42E bsr disNdxReg
|
|
00FFF446 017FFF8C9 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF449 0160003F6 lbra disNextLine
|
|
disNot9:
|
|
00FFF44C 034004 pshs b
|
|
00FFF44E 0C5100 bitb #$100 ; check if indirect
|
|
00FFF450 027005 beq dis4
|
|
00FFF452 0C605B ldb #'['
|
|
00FFF454 017FFF8BB lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis4:
|
|
00FFF457 0E6E04 ldb ,s ; get back b
|
|
00FFF459 0C400F andb #15
|
|
00FFF45B 026030 bne disNotRplus
|
|
00FFF45D 0E6E04 ldb ,s
|
|
00FFF45F 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF461 027005 beq dis5
|
|
00FFF463 0C605D ldb #']'
|
|
00FFF465 017FFF8AA lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis5:
|
|
00FFF468 0C602C ldb #','
|
|
00FFF46A 017FFF8A5 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF46D 0E6E04 ldb ,s
|
|
00FFF46F 08D403 bsr disNdxReg
|
|
00FFF471 017FFF89E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF474 0C602B ldb #'+'
|
|
00FFF476 017FFF899 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF479 035004 puls b
|
|
00FFF47B 0C5100 bitb #$100
|
|
00FFF47D 1270003C2 lbeq disNextLine
|
|
00FFF480 0C5080 bitb #$80
|
|
00FFF482 1260003BD lbne disNextLine
|
|
00FFF485 0C605D ldb #']'
|
|
00FFF487 017FFF888 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF48A 0160003B5 lbra disNextLine
|
|
disNotRplus:
|
|
00FFF48D 0C1001 cmpb #1
|
|
00FFF48F 026033 bne disNotRplusplus
|
|
00FFF491 0E6E04 ldb ,s
|
|
00FFF493 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF495 027005 beq dis6
|
|
00FFF497 0C605D ldb #']'
|
|
00FFF499 017FFF876 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis6:
|
|
00FFF49C 0C602C ldb #','
|
|
00FFF49E 017FFF871 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4A1 0E6E04 ldb ,s
|
|
00FFF4A3 08D3CF bsr disNdxReg
|
|
00FFF4A5 017FFF86A lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4A8 0C602B ldb #'+'
|
|
00FFF4AA 017FFF865 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4AD 017FFF862 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4B0 035004 puls b
|
|
00FFF4B2 0C5100 bitb #$100
|
|
00FFF4B4 12700038B lbeq disNextLine
|
|
00FFF4B7 0C5080 bitb #$80
|
|
00FFF4B9 126000386 lbne disNextLine
|
|
00FFF4BC 0C605D ldb #']'
|
|
00FFF4BE 017FFF851 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4C1 01600037E lbra disNextLine
|
|
disNotRplusplus:
|
|
00FFF4C4 0C1002 cmpb #2
|
|
00FFF4C6 026030 bne disNotRminus
|
|
00FFF4C8 0E6E04 ldb ,s
|
|
00FFF4CA 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF4CC 027005 beq dis7
|
|
00FFF4CE 0C605D ldb #']'
|
|
00FFF4D0 017FFF83F lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis7:
|
|
00FFF4D3 0C602C ldb #','
|
|
00FFF4D5 017FFF83A lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4D8 0E6E04 ldb ,s
|
|
00FFF4DA 08D398 bsr disNdxReg
|
|
00FFF4DC 017FFF833 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4DF 0C602D ldb #'-'
|
|
00FFF4E1 017FFF82E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4E4 035004 puls b
|
|
00FFF4E6 0C5100 bitb #$100
|
|
00FFF4E8 127000357 lbeq disNextLine
|
|
00FFF4EB 0C5080 bitb #$80
|
|
00FFF4ED 126000352 lbne disNextLine
|
|
00FFF4F0 0C605D ldb #']'
|
|
00FFF4F2 017FFF81D lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4F5 01600034A lbra disNextLine
|
|
disNotRminus:
|
|
00FFF4F8 0C1003 cmpb #3
|
|
00FFF4FA 026033 bne disNotRminusminus
|
|
00FFF4FC 0E6E04 ldb ,s
|
|
00FFF4FE 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF500 027005 beq dis8
|
|
00FFF502 0C605D ldb #']'
|
|
00FFF504 017FFF80B lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis8:
|
|
00FFF507 0C602C ldb #','
|
|
00FFF509 017FFF806 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF50C 0E6E04 ldb ,s
|
|
00FFF50E 08D364 bsr disNdxReg
|
|
00FFF510 017FFF7FF lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF513 0C602D ldb #'-'
|
|
00FFF515 017FFF7FA lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF518 017FFF7F7 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF51B 035004 puls b
|
|
00FFF51D 0C5100 bitb #$100
|
|
00FFF51F 127000320 lbeq disNextLine
|
|
00FFF522 0C5080 bitb #$80
|
|
00FFF524 12600031B lbne disNextLine
|
|
00FFF527 0C605D ldb #']'
|
|
00FFF529 017FFF7E6 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF52C 016000313 lbra disNextLine
|
|
disNotRminusminus:
|
|
00FFF52F 0C1004 cmpb #4
|
|
00FFF531 02602B bne disNotR
|
|
00FFF533 0E6E04 ldb ,s
|
|
00FFF535 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF537 027005 beq dis9
|
|
00FFF539 0C605D ldb #']'
|
|
00FFF53B 017FFF7D4 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis9:
|
|
00FFF53E 0C602C ldb #','
|
|
00FFF540 017FFF7CF lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF543 0E6E04 ldb ,s
|
|
00FFF545 08D32D bsr disNdxReg
|
|
00FFF547 017FFF7C8 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF54A 035004 puls b
|
|
00FFF54C 0C5100 bitb #$100
|
|
00FFF54E 1270002F1 lbeq disNextLine
|
|
00FFF551 0C5080 bitb #$80
|
|
00FFF553 1260002EC lbne disNextLine
|
|
00FFF556 0C605D ldb #']'
|
|
00FFF558 017FFF7B7 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF55B 0160002E4 lbra disNextLine
|
|
disNotR:
|
|
00FFF55E 0C1005 cmpb #5
|
|
00FFF560 026038 bne disNotBOffs
|
|
00FFF562 0C6042 ldb #'B'
|
|
00FFF564 017FFF7AB lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF567 0E6E04 ldb ,s
|
|
00FFF569 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF56B 027005 beq dis10
|
|
00FFF56D 0C605D ldb #']'
|
|
00FFF56F 017FFF7A0 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis10:
|
|
00FFF572 0C602C ldb #','
|
|
00FFF574 017FFF79B lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF577 0E6E04 ldb ,s
|
|
00FFF579 08D2F9 bsr disNdxReg
|
|
00FFF57B 017FFF794 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF57E 0C602D ldb #'-'
|
|
00FFF580 017FFF78F lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF583 017FFF78C lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF586 035004 puls b
|
|
00FFF588 0C5100 bitb #$100
|
|
00FFF58A 1270002B5 lbeq disNextLine
|
|
00FFF58D 0C5080 bitb #$80
|
|
00FFF58F 1260002B0 lbne disNextLine
|
|
00FFF592 0C605D ldb #']'
|
|
00FFF594 017FFF77B lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF597 0160002A8 lbra disNextLine
|
|
disNotBOffs:
|
|
00FFF59A 0C1006 cmpb #6
|
|
00FFF59C 026038 bne disNotAOffs
|
|
00FFF59E 0C6041 ldb #'A'
|
|
00FFF5A0 017FFF76F lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5A3 0E6E04 ldb ,s
|
|
00FFF5A5 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF5A7 027005 beq dis11
|
|
00FFF5A9 0C605D ldb #']'
|
|
00FFF5AB 017FFF764 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis11:
|
|
00FFF5AE 0C602C ldb #','
|
|
00FFF5B0 017FFF75F lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5B3 0E6E04 ldb ,s
|
|
00FFF5B5 08D2BD bsr disNdxReg
|
|
00FFF5B7 017FFF758 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5BA 0C602D ldb #'-'
|
|
00FFF5BC 017FFF753 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5BF 017FFF750 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5C2 035004 puls b
|
|
00FFF5C4 0C5100 bitb #$100
|
|
00FFF5C6 127000279 lbeq disNextLine
|
|
00FFF5C9 0C5080 bitb #$80
|
|
00FFF5CB 126000274 lbne disNextLine
|
|
00FFF5CE 0C605D ldb #']'
|
|
00FFF5D0 017FFF73F lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5D3 01600026C lbra disNextLine
|
|
disNotAOffs:
|
|
00FFF5D6 0C1008 cmpb #8
|
|
00FFF5D8 026039 bne disNotBO
|
|
00FFF5DA 0E6A00 ldb ,y+
|
|
00FFF5DC 01D sex
|
|
00FFF5DD 017FFEE21 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5E0 0E6E04 ldb ,s
|
|
00FFF5E2 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF5E4 027005 beq dis12
|
|
00FFF5E6 0C605D ldb #']'
|
|
00FFF5E8 017FFF727 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis12:
|
|
00FFF5EB 0C602C ldb #','
|
|
00FFF5ED 017FFF722 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5F0 0E6E04 ldb ,s
|
|
00FFF5F2 08D280 bsr disNdxReg
|
|
00FFF5F4 017FFF71B lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5F7 0C602D ldb #'-'
|
|
00FFF5F9 017FFF716 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5FC 017FFF713 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF5FF 035004 puls b
|
|
00FFF601 0C5100 bitb #$100
|
|
00FFF603 12700023C lbeq disNextLine
|
|
00FFF606 0C5080 bitb #$80
|
|
00FFF608 126000237 lbne disNextLine
|
|
00FFF60B 0C605D ldb #']'
|
|
00FFF60D 017FFF702 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF610 01600022F lbra disNextLine
|
|
disNotBO:
|
|
00FFF613 0C1009 cmpb #9
|
|
00FFF615 026038 bne disNotWO
|
|
00FFF617 0ECA01 ldd ,y++
|
|
00FFF619 017FFEDE5 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF61C 0E6E04 ldb ,s
|
|
00FFF61E 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF620 027005 beq dis13
|
|
00FFF622 0C605D ldb #']'
|
|
00FFF624 017FFF6EB lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis13:
|
|
00FFF627 0C602C ldb #','
|
|
00FFF629 017FFF6E6 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF62C 0E6E04 ldb ,s
|
|
00FFF62E 08D244 bsr disNdxReg
|
|
00FFF630 017FFF6DF lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF633 0C602D ldb #'-'
|
|
00FFF635 017FFF6DA lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF638 017FFF6D7 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF63B 035004 puls b
|
|
00FFF63D 0C5100 bitb #$100
|
|
00FFF63F 127000200 lbeq disNextLine
|
|
00FFF642 0C5080 bitb #$80
|
|
00FFF644 1260001FB lbne disNextLine
|
|
00FFF647 0C605D ldb #']'
|
|
00FFF649 017FFF6C6 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF64C 0160001F3 lbra disNextLine
|
|
disNotWO:
|
|
00FFF64F 0C100A cmpb #10
|
|
00FFF651 02603D bne disNotTO
|
|
00FFF653 0E6A01 ldb ,y++
|
|
00FFF655 017FFEDB2 lbsr DispByteAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF658 0ECA01 ldd ,y++
|
|
00FFF65A 017FFEDA4 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF65D 0E6E04 ldb ,s
|
|
00FFF65F 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF661 027005 beq dis14
|
|
00FFF663 0C605D ldb #']'
|
|
00FFF665 017FFF6AA lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis14:
|
|
00FFF668 0C602C ldb #','
|
|
00FFF66A 017FFF6A5 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF66D 0E6E04 ldb ,s
|
|
00FFF66F 08D203 bsr disNdxReg
|
|
00FFF671 017FFF69E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF674 0C602D ldb #'-'
|
|
00FFF676 017FFF699 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF679 017FFF696 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF67C 035004 puls b
|
|
00FFF67E 0C5100 bitb #$100
|
|
00FFF680 1270001BF lbeq disNextLine
|
|
00FFF683 0C5080 bitb #$80
|
|
00FFF685 1260001BA lbne disNextLine
|
|
00FFF688 0C605D ldb #']'
|
|
00FFF68A 017FFF685 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF68D 0160001B2 lbra disNextLine
|
|
disNotTO:
|
|
00FFF690 0C100B cmpb #11
|
|
00FFF692 026038 bne disNotDOffs
|
|
00FFF694 0C6044 ldb #'D'
|
|
00FFF696 017FFF679 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF699 0E6E04 ldb ,s
|
|
00FFF69B 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF69D 027005 beq dis15
|
|
00FFF69F 0C605D ldb #']'
|
|
00FFF6A1 017FFF66E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis15:
|
|
00FFF6A4 0C602C ldb #','
|
|
00FFF6A6 017FFF669 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6A9 0E6E04 ldb ,s
|
|
00FFF6AB 08D1C7 bsr disNdxReg
|
|
00FFF6AD 017FFF662 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6B0 0C602D ldb #'-'
|
|
00FFF6B2 017FFF65D lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6B5 017FFF65A lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6B8 035004 puls b
|
|
00FFF6BA 0C5100 bitb #$100
|
|
00FFF6BC 127000183 lbeq disNextLine
|
|
00FFF6BF 0C5080 bitb #$80
|
|
00FFF6C1 12600017E lbne disNextLine
|
|
00FFF6C4 0C605D ldb #']'
|
|
00FFF6C6 017FFF649 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6C9 016000176 lbra disNextLine
|
|
disNotDOffs:
|
|
00FFF6CC 0C100C cmpb #12
|
|
00FFF6CE 026040 bne disNotPBO
|
|
00FFF6D0 0E6A00 ldb ,y+
|
|
00FFF6D2 01D sex
|
|
00FFF6D3 017FFED2B lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6D6 0E6E04 ldb ,s
|
|
00FFF6D8 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF6DA 027005 beq dis16
|
|
00FFF6DC 0C605D ldb #']'
|
|
00FFF6DE 017FFF631 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis16:
|
|
00FFF6E1 0C602C ldb #','
|
|
00FFF6E3 017FFF62C lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6E6 0E6E04 ldb ,s
|
|
00FFF6E8 08D18A bsr disNdxReg
|
|
00FFF6EA 0C6050 ldb #'P'
|
|
00FFF6EC 017FFF623 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6EF 0C6043 ldb #'C'
|
|
00FFF6F1 017FFF61E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6F4 0C602D ldb #'-'
|
|
00FFF6F6 017FFF619 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6F9 017FFF616 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF6FC 035004 puls b
|
|
00FFF6FE 0C5100 bitb #$100
|
|
00FFF700 12700013F lbeq disNextLine
|
|
00FFF703 0C5080 bitb #$80
|
|
00FFF705 12600013A lbne disNextLine
|
|
00FFF708 0C605D ldb #']'
|
|
00FFF70A 017FFF605 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF70D 016000132 lbra disNextLine
|
|
disNotPBO:
|
|
00FFF710 0C100D cmpb #13
|
|
00FFF712 02603F bne disNotPWO
|
|
00FFF714 0ECA01 ldd ,y++
|
|
00FFF716 017FFECE8 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF719 0E6E04 ldb ,s
|
|
00FFF71B 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF71D 027005 beq dis17
|
|
00FFF71F 0C605D ldb #']'
|
|
00FFF721 017FFF5EE lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis17:
|
|
00FFF724 0C602C ldb #','
|
|
00FFF726 017FFF5E9 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF729 0E6E04 ldb ,s
|
|
00FFF72B 08D147 bsr disNdxReg
|
|
00FFF72D 0C6050 ldb #'P'
|
|
00FFF72F 017FFF5E0 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF732 0C6043 ldb #'C'
|
|
00FFF734 017FFF5DB lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF737 0C602D ldb #'-'
|
|
00FFF739 017FFF5D6 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF73C 017FFF5D3 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF73F 035004 puls b
|
|
00FFF741 0C5100 bitb #$100
|
|
00FFF743 1270000FC lbeq disNextLine
|
|
00FFF746 0C5080 bitb #$80
|
|
00FFF748 1260000F7 lbne disNextLine
|
|
00FFF74B 0C605D ldb #']'
|
|
00FFF74D 017FFF5C2 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF750 0160000EF lbra disNextLine
|
|
disNotPWO:
|
|
00FFF753 0C100E cmpb #14
|
|
00FFF755 026044 bne disNotPTO
|
|
00FFF757 0E6A00 ldb ,y+
|
|
00FFF759 017FFECAE lbsr DispByteAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF75C 0ECA01 ldd ,y++
|
|
00FFF75E 017FFECA0 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF761 0E6E04 ldb ,s
|
|
00FFF763 0C5080 bitb #$80 ; outer indexed?
|
|
00FFF765 027005 beq dis18
|
|
00FFF767 0C605D ldb #']'
|
|
00FFF769 017FFF5A6 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis18:
|
|
00FFF76C 0C602C ldb #','
|
|
00FFF76E 017FFF5A1 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF771 0E6E04 ldb ,s
|
|
00FFF773 08D0FF bsr disNdxReg
|
|
00FFF775 0C6050 ldb #'P'
|
|
00FFF777 017FFF598 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF77A 0C6043 ldb #'C'
|
|
00FFF77C 017FFF593 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF77F 0C602D ldb #'-'
|
|
00FFF781 017FFF58E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF784 017FFF58B lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF787 035004 puls b
|
|
00FFF789 0C5100 bitb #$100
|
|
00FFF78B 1270000B4 lbeq disNextLine
|
|
00FFF78E 0C5080 bitb #$80
|
|
00FFF790 1260000AF lbne disNextLine
|
|
00FFF793 0C605D ldb #']'
|
|
00FFF795 017FFF57A lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF798 0160000A7 lbra disNextLine
|
|
disNotPTO:
|
|
00FFF79B 0C605B ldb #'['
|
|
00FFF79D 017FFF572 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7A0 0ECA01 ldd ,y++
|
|
00FFF7A2 017FFEC5C lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7A5 0C605D ldb #']'
|
|
00FFF7A7 017FFF568 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7AA 016000095 lbra disNextLine
|
|
disNotNdx:
|
|
00FFF7AD 0C1006 cmpb #EXT
|
|
00FFF7AF 026013 bne disNotExt
|
|
00FFF7B1 00D15F tst farflag
|
|
00FFF7B3 027005 beq dis30
|
|
00FFF7B5 0E6A01 ldb ,y++
|
|
00FFF7B7 017FFEC50 lbsr DispByteAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis30:
|
|
00FFF7BA 0ECA01 ldd ,y++
|
|
00FFF7BC 017FFEC42 lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7BF 00F15F clr farflag
|
|
00FFF7C1 01600007E lbra disNextLine
|
|
disNotExt:
|
|
00FFF7C4 0C1003 cmpb #IMMB
|
|
00FFF7C6 02600D bne disNotIMMB
|
|
00FFF7C8 0C6023 ldb #'#'
|
|
00FFF7CA 017FFF545 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7CD 0E6A00 ldb ,y+
|
|
00FFF7CF 017FFEC38 lbsr DispByteAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7D2 01600006D lbra disNextLine
|
|
disNotIMMB:
|
|
00FFF7D5 0C1007 cmpb #IMMW
|
|
00FFF7D7 02600C bne disNotIMMW
|
|
00FFF7D9 0C6023 ldb #'#'
|
|
00FFF7DB 017FFF534 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7DE 0ECA01 ldd ,y++
|
|
00FFF7E0 017FFEC1E lbsr DispWordAsHex
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF7E3 02005D bra disNextLine
|
|
disNotIMMW:
|
|
00FFF7E5 0C1009 cmpb #TFREXG
|
|
00FFF7E7 026006 bne disNotTfr
|
|
00FFF7E9 0E6A00 ldb ,y+
|
|
00FFF7EB 08D0B8 bsr disTfrExg
|
|
00FFF7ED 020053 bra disNextLine
|
|
disNotTfr:
|
|
dis1:
|
|
00FFF7EF 0C1121 cmpb #$121
|
|
00FFF7F1 025028 blo dis19
|
|
00FFF7F3 0C112F cmpb #$12F
|
|
00FFF7F5 022024 bhi dis19
|
|
00FFF7F7 0C40FF andb #$FF
|
|
00FFF7F9 08EFFF2B4 ldx #distbl2
|
|
00FFF7FC 058 aslb
|
|
00FFF7FD 058 aslb
|
|
00FFF7FE 03A abx
|
|
00FFF7FF 0E6800 ldb ,x+
|
|
00FFF801 017FFF50E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF804 0E6800 ldb ,x+
|
|
00FFF806 017FFF509 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF809 0E6800 ldb ,x+
|
|
00FFF80B 017FFF504 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF80E 0E6800 ldb ,x+
|
|
00FFF810 017FFF4FF lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF813 0C6020 ldb #' '
|
|
00FFF815 017FFF4FA lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF818 016FFFBF4 lbra dis21
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis19:
|
|
00FFF81B 08E000000 ldx #0
|
|
dis24:
|
|
00FFF81E 0E180A000FFF2F4 cmpb distbl3,x
|
|
00FFF823 026006 bne dis25
|
|
00FFF825 08EFFF314 ldx #distbl4
|
|
00FFF828 016FFFBB2 lbra dis23
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
dis25:
|
|
00FFF82B 030001 inx
|
|
00FFF82D 08C00001F cmpx #31
|
|
00FFF830 025FEC blo dis24
|
|
00FFF832 0C603F ldb #'?'
|
|
00FFF834 017FFF4DB lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF837 017FFF4D8 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF83A 017FFF4D5 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF83D 017FFF4D2 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF840 020000 bra disNextLine
|
|
disNextLine:
|
|
00FFF842 00F15F clr farflag
|
|
00FFF844 017FFD88B lbsr CRLF
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF847 1BC000926 cmpy mon_r2+2
|
|
00FFF84A 125FFFB72 lblo disLoop1
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF84D 0160000DE lbra Monitor
|
|
|
|
disNdxRegs:
|
|
00FFF850 058059053055 fcb 'X','Y','S','U'
|
|
disTfrRegs:
|
|
00FFF854 044020058020059020055 fcb "D X Y U S PC A B CCDP "
|
|
00FFF85B 020053020050043020020
|
|
00FFF862 020020041020042020043
|
|
00FFF869 043044050020020020020
|
|
00FFF870 020020020020
|
|
|
|
disNdxReg:
|
|
00FFF874 0C4600 andb #$600
|
|
00FFF876 059 rolb
|
|
00FFF877 059 rolb
|
|
00FFF878 059 rolb
|
|
00FFF879 059 rolb
|
|
00FFF87A 04F clra
|
|
00FFF87B 034040 pshs u
|
|
00FFF87D 01F003 tfr d,u
|
|
00FFF87F 0A6C0A000FFF850 lda disNdxRegs,u
|
|
00FFF884 035040 puls u
|
|
00FFF886 01E089 exg a,b
|
|
00FFF888 039 rts
|
|
|
|
disTfrReg:
|
|
00FFF889 034014 pshs b,x
|
|
00FFF88B 08EFFF854 ldx #disTfrRegs
|
|
00FFF88E 058 aslb
|
|
00FFF88F 0A6815 lda b,x
|
|
00FFF891 01E089 exg a,b
|
|
00FFF893 017FFF47C lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF896 01E089 exg a,b
|
|
00FFF898 030001 inx
|
|
00FFF89A 0E688D ldb b,x
|
|
00FFF89C 0C1020 cmpb #' '
|
|
00FFF89E 027003 beq disTfr1
|
|
00FFF8A0 017FFF46F lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
disTfr1:
|
|
00FFF8A3 035094 puls b,x,pc
|
|
|
|
disTfrExg:
|
|
00FFF8A5 034004 pshs b
|
|
00FFF8A7 059 rolb
|
|
00FFF8A8 059 rolb
|
|
00FFF8A9 059 rolb
|
|
00FFF8AA 059 rolb
|
|
00FFF8AB 0C400F andb #15
|
|
00FFF8AD 08DFDA bsr disTfrReg
|
|
00FFF8AF 0C602C ldb #','
|
|
00FFF8B1 017FFF45E lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF8B4 0E6E04 ldb ,s
|
|
00FFF8B6 0C400F andb #15
|
|
00FFF8B8 08DFCF bsr disTfrReg
|
|
00FFF8BA 035084 puls b,pc
|
|
|
|
ASMO:
|
|
00FFF8BC 034006 pshs d
|
|
00FFF8BE 0CCFFF8D0 ldd #ASMOUTCH
|
|
00FFF8C1 0FD000800 std CharOutVec
|
|
00FFF8C4 035086 puls d,pc
|
|
|
|
ASMOO:
|
|
00FFF8C6 034006 pshs d
|
|
00FFF8C8 0CCFFE2F5 ldd #DisplayChar
|
|
00FFF8CB 0FD000800 std CharOutVec
|
|
00FFF8CE 035086 puls d,pc
|
|
|
|
ASMOUTCH:
|
|
00FFF8D0 0E7C00 stb ,u+
|
|
00FFF8D2 039 rts
|
|
|
|
DumpAsmbuf:
|
|
00FFF8D3 0CE000160 ldu #asmbuf
|
|
dab2:
|
|
00FFF8D6 0E6C00 ldb ,u+
|
|
00FFF8D8 027005 beq dab1
|
|
00FFF8DA 017FFF435 lbsr OUTCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF8DD 020FF7 bra dab2
|
|
dab1:
|
|
00FFF8DF 039 rts
|
|
|
|
;==============================================================================
|
;==============================================================================
|
; System Monitor
|
; System Monitor
|
;==============================================================================
|
;==============================================================================
|
|
|
|
; Command Table
|
|
|
|
cmdTable1:
|
|
00FFEDE3 03C83E fcb '<','>'+$800
|
|
00FFEDE5 062873 fcb 'b','s'+$800
|
|
00FFEDE7 062863 fcb 'b','c'+$800
|
|
00FFEDE9 044852 fcb 'D','R'+$800
|
|
00FFEDEB 844 fcb 'D'+$800
|
|
00FFEDEC 83A fcb ':'+$800
|
|
00FFEDED 046049847 fcb "FI",'G'+$800
|
|
00FFEDF0 04604984C fcb "FI",'L'+$800
|
|
00FFEDF3 04684C fcb 'F','L'+$800
|
|
00FFEDF5 84A fcb 'J'+$800
|
|
00FFEDF6 05204104D054045053854 fcb "RAMTES",'T'+$800
|
|
00FFEDFD 053050844 fcb "SP",'D'+$800
|
|
00FFEE00 054049852 fcb "TI",'R'+$800
|
|
00FFEE03 855 fcb 'U'+$800
|
|
00FFEE04 065078069874 fcb "exi",'t'+$800
|
|
00FFEE08 83F fcb '?'+$800
|
|
00FFEE09 04304C853 fcb "CL",'S'+$800
|
|
00FFEE0C 000000 fcw 0
|
|
|
|
cmdTable2:
|
|
00FFEE0E FFEF11 fcw Redirect
|
|
00FFEE10 FFF4AC fcw ArmBreakpoint
|
|
00FFEE12 FFF4D3 fcw DisarmBreakpoint
|
|
00FFEE14 FFF2CF fcw DumpRegs
|
|
00FFEE16 FFF209 fcw DumpMemory
|
|
00FFEE18 FFF265 fcw EditMemory
|
|
00FFEE1A FE0000 fcw $FE0000 ; FIG forth
|
|
00FFEE1C FFF2A5 fcw FillMemory
|
|
00FFEE1E FFF390 fcw DumpIOFocusList
|
|
00FFEE20 FFF31A fcw jump_to_code
|
|
00FFEE22 FFD443 fcw dramtest
|
|
00FFEE24 FF8000 fcw $FF8000 ; sprite demo
|
|
00FFEE26 FFE4D0 fcw rtc_read
|
|
00FFEE28 FF8003 fcw $FF8003 ; unassembler
|
|
00FFEE2A FFF451 fcw xitMonitor
|
|
00FFEE2C FFEF37 fcw PromptHelp
|
|
00FFEE2E FFEF3F fcw PromptClearscreen
|
|
|
CmdPrompt:
|
CmdPrompt:
|
00FFF8E0 017FFD7EF lbsr CRLF
|
00FFEE30 017FFE29F lbsr CRLF
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFF8E3 0C6024 ldb #'$'
|
00FFEE33 0C6024 ldb #'$'
|
00FFF8E5 017FFF42A lbsr OUTCH
|
00FFEE35 017FFFEDA lbsr OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFF8E8 016FFF427 lbra OUTCH
|
00FFEE38 016FFFED7 lbra OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
msgF09Starting:
|
msgF09Starting:
|
00FFF8EB 04606506D07406906B069 fcb "Femtiki F09 Multi-core OS Starting",CR,LF,0
|
00FFEE3B 04606506D07406906B069 fcb "Femtiki F09 Multi-core OS Starting",CR,LF,0
|
00FFF8F2 02004603003902004D075
|
00FFEE42 02004603003902004D075
|
00FFF8F9 06C07406902D06306F072
|
00FFEE49 06C07406902D06306F072
|
00FFF900 06502004F053020053074
|
00FFEE50 06502004F053020053074
|
00FFF907 06107207406906E06700D
|
00FFEE57 06107207406906E06700D
|
00FFF90E 00A000
|
00FFEE5E 00A000
|
|
|
MonitorStart:
|
MonitorStart:
|
00FFF910 0CCFFF8EB ldd #msgF09Starting
|
00FFEE60 07F000810 clr BreakpointFlag
|
00FFF913 017FFEAA0 lbsr DisplayString
|
00FFEE63 07F000811 clr NumSetBreakpoints
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFEE66 0CC00007B ldd #123
|
00FFF916 0CCFFFB0E ldd #HelpMsg
|
00FFEE69 08E00028E ldx #654
|
00FFF919 017FFEA9A lbsr DisplayString
|
00FFEE6C 017FFFF31 lbsr mon_srand
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFF91C 0CCFFF8E0 ldd #CmdPrompt
|
00FFEE6F 0CCFFEE3B ldd #msgF09Starting
|
00FFF91F 0FD000808 std CmdPromptJI
|
00FFEE72 017FFF54A lbsr DisplayString
|
00FFF922 0CCFFFAF5 ldd #DisplayErr
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFF925 0FD00080C std MonErrVec
|
00FFEE75 0CCFFF06E ldd #HelpMsg
|
00FFF928 0CC0063FF ldd #$63FF ; default app stack
|
00FFEE78 017FFF544 lbsr DisplayString
|
00FFF92B 0FD000908 std mon_SSAVE
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFEE7B 0CCFFEE30 ldd #CmdPrompt
|
|
00FFEE7E 0FD000808 std CmdPromptJI
|
|
00FFEE81 0CCFFF055 ldd #DisplayErr
|
|
00FFEE84 0FD00080C std MonErrVec
|
|
00FFEE87 0CC0063FF ldd #$63FF ; default app stack
|
|
00FFEE8A 0FD000908 std mon_SSAVE
|
|
00FFEE8D 07F00090E clr mon_DPRSAVE ;
|
|
00FFEE90 01F0A8 tfr ccr,a
|
|
00FFEE92 0B700090F sta mon_CCRSAVE
|
|
00FFEE95 07F00090A clr mon_PCSAVE
|
|
00FFEE98 0CCFFEEA7 ldd #Monitor
|
|
00FFEE9B 0FD00090B std mon_PCSAVE+1
|
|
00FFEE9E 07F000902 clr mon_XSAVE
|
|
00FFEEA1 07F000904 clr mon_YSAVE
|
|
00FFEEA4 07F000906 clr mon_USAVE
|
Monitor:
|
Monitor:
|
00FFF92E 03280F006FFF leas $6FFF ; reset stack pointer
|
00FFEEA7 03280F006FFF leas $6FFF ; reset stack pointer
|
00FFF932 05F clrb ; turn off keyboard echo
|
00FFEEAB 05F clrb ; turn off keyboard echo
|
00FFF933 017FFF3E0 lbsr SetKeyboardEcho
|
00FFEEAC 017FFFE67 lbsr SetKeyboardEcho
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
; Reset IO vectors
|
; Reset IO vectors
|
00FFF936 0CCFFEBE4 ldd #SerialPeekCharDirect
|
00FFEEAF 0CCFFEBE4 ldd #SerialPeekCharDirect
|
00FFF939 0FD000804 std CharInVec
|
00FFEEB2 0FD000804 std CharInVec
|
00FFF93C 0CCFFE2F5 ldd #DisplayChar
|
00FFEEB5 0CCFFE2FE ldd #DisplayChar
|
00FFF93F 0FD000800 std CharOutVec
|
00FFEEB8 0FD000800 std CharOutVec
|
00FFF942 0CCFFF8E0 ldd #CmdPrompt
|
00FFEEBB 0CCFFEE30 ldd #CmdPrompt
|
00FFF945 0FD000808 std CmdPromptJI
|
00FFEEBE 0FD000808 std CmdPromptJI
|
; jsr RequestIOFocus
|
; jsr RequestIOFocus
|
PromptLn:
|
PromptLn:
|
00FFF948 0AD90F000808 jsr [CmdPromptJI]
|
00FFEEC1 0AD90F000808 jsr [CmdPromptJI]
|
|
|
; Get characters until a CR is keyed
|
; Get characters until a CR is keyed
|
|
|
Prompt3:
|
Prompt3:
|
00FFF94C 0CCFFFFFF ldd #-1 ; block until key present
|
00FFEEC5 0CCFFFFFF ldd #-1 ; block until key present
|
00FFF94F 017FFF388 lbsr INCH
|
00FFEEC8 017FFFE0F lbsr INCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFF952 0C100D cmpb #CR
|
00FFEECB 0C100D cmpb #CR ; carriage return?
|
00FFF954 027005 beq Prompt1
|
00FFEECD 027005 beq Prompt1
|
00FFF956 017FFF3B9 lbsr OUTCH
|
00FFEECF 017FFFE40 lbsr OUTCH ; spit out the character
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFF959 020FF1 bra Prompt3
|
00FFEED2 020FF1 bra Prompt3 ; and keep going
|
|
|
; Process the screen line that the CR was keyed on
|
; Process the screen line that the CR was keyed on
|
;
|
;
|
Prompt1:
|
Prompt1:
|
00FFF95B 0CC005050 ldd #$5050
|
00FFEED4 0CC005050 ldd #$5050
|
00FFF95E 0150FDFFFE60001 std LEDS
|
00FFEED7 0150FDFFFE60001 std LEDS
|
; ldb RunningID
|
; ldb RunningID
|
; cmpb #61
|
; cmpb #61
|
; bhi Prompt3
|
; bhi Prompt3
|
00FFF963 0CC005151 ldd #$5151
|
00FFEEDC 00F111 clr CursorCol ; go back to the start of the line
|
00FFF966 0150FDFFFE60001 std LEDS
|
00FFEEDE 017FFF3FA lbsr CalcScreenLoc ; calc screen memory location
|
00FFF96B 00F111 clr CursorCol ; go back to the start of the line
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFF96D 017FFE962 lbsr CalcScreenLoc ; calc screen memory location
|
00FFEEE1 01F002 tfr d,y
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF970 01F002 tfr d,y
|
|
00FFF972 0CC005252 ldd #$5252
|
|
00FFF975 0150FDFFFE60001 std LEDS
|
|
skipDollar:
|
skipDollar:
|
00FFF97A 08D0B9 bsr MonGetNonSpace
|
00FFEEE3 08D067 bsr MonGetNonSpace
|
00FFF97C 0C1024 cmpb #'$'
|
00FFEEE5 0C1024 cmpb #'$'
|
00FFF97E 027FFA beq skipDollar ; skip over '$' prompt character
|
00FFEEE7 027FFA beq skipDollar ; skip over '$' prompt character
|
00FFF980 086353 lda #$5353
|
|
00FFF982 0150FDFFFE60001 std LEDS
|
; Dispatch based on command
|
|
;
|
; Dispatch based on command character
|
00FFEEE9 0313FF dey
|
;
|
00FFEEEB 01F023 tfr y,u ; save off input position
|
Prompt2:
|
00FFEEED 05F clrb
|
00FFF987 0C103C cmpb #'<'
|
00FFEEEE 08EFFEDE3 ldx #cmdTable1
|
00FFF989 02602C bne PromptHelp
|
parseCmd1:
|
00FFF98B 08D0A3 bsr MonGetch
|
00FFEEF1 0A6A00 lda ,y+ ; get input character
|
00FFF98D 0C103E cmpb #'>'
|
00FFEEF3 06D804 tst ,x ; test for end of command
|
00FFF98F 026F9D bne Monitor
|
00FFEEF5 02B00F bmi endOfWord ;
|
00FFF991 08D09D bsr MonGetch
|
00FFEEF7 0A1800 cmpa ,x+ ; does input match command?
|
00FFF993 0C1073 cmpb #'s'
|
00FFEEF9 027FF6 beq parseCmd1
|
00FFF995 02600E bne Prompt2a
|
scanNextWord:
|
00FFF997 0CCFFEBE4 ldd #SerialPeekCharDirect
|
00FFEEFB 06D800 tst ,x+
|
00FFF99A 0FD000804 std CharInVec
|
00FFEEFD 027FA8 beq Monitor ; if end of table reached, not a command
|
00FFF99D 0CCFFEC08 ldd #SerialPutChar
|
00FFEEFF 02AFFA bpl scanNextWord
|
00FFF9A0 0FD000800 std CharOutVec
|
00FFEF01 05C incb
|
00FFF9A3 020F89 bra Monitor
|
00FFEF02 01F032 tfr u,y ; reset input pointer
|
|
00FFEF04 020FEB bra parseCmd1 ; try again
|
|
endOfWord:
|
|
00FFEF06 0A8804 eora ,x
|
|
00FFEF08 048 asla
|
|
00FFEF09 026FF0 bne scanNextWord
|
|
; we found the command in the table
|
|
00FFEF0B 058 aslb ; b = word index
|
|
00FFEF0C 08EFFEE0E ldx #cmdTable2
|
|
00FFEF0F 06E905 jmp [b,x] ; execute command
|
|
|
|
Redirect:
|
|
00FFEF11 08D034 bsr MonGetch
|
|
00FFEF13 0C1073 cmpb #'s'
|
|
00FFEF15 02600E bne Prompt2a
|
|
00FFEF17 0CCFFEBE4 ldd #SerialPeekCharDirect
|
|
00FFEF1A 0FD000804 std CharInVec
|
|
00FFEF1D 0CCFFEC08 ldd #SerialPutChar
|
|
00FFEF20 0FD000800 std CharOutVec
|
|
00FFEF23 020F82 bra Monitor
|
Prompt2a:
|
Prompt2a:
|
00FFF9A5 0C1063 cmpb #'c'
|
00FFEF25 0C1063 cmpb #'c'
|
00FFF9A7 026F85 bne Monitor
|
00FFEF27 026F7E bne Monitor
|
00FFF9A9 0CCFFEA12 ldd #GetKey
|
00FFEF29 0CCFFEA12 ldd #GetKey
|
00FFF9AC 0FD000804 std CharInVec
|
00FFEF2C 0FD000804 std CharInVec
|
00FFF9AF 0CCFFE2F5 ldd #DisplayChar
|
00FFEF2F 0CCFFE2FE ldd #DisplayChar
|
00FFF9B2 0FD000800 std CharOutVec
|
00FFEF32 0FD000800 std CharOutVec
|
00FFF9B5 020F77 bra Monitor
|
00FFEF35 020F70 bra Monitor
|
|
|
PromptHelp:
|
PromptHelp:
|
00FFF9B7 0C103F cmpb #'?' ; $? - display help
|
00FFEF37 0CCFFF06E ldd #HelpMsg
|
00FFF9B9 026008 bne PromptC
|
00FFEF3A 017FFF482 lbsr DisplayString
|
00FFF9BB 0CCFFFB0E ldd #HelpMsg
|
|
00FFF9BE 017FFE9F5 lbsr DisplayString
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF9C1 020F6B bra Monitor
|
|
PromptC:
|
|
00FFF9C3 0C1043 cmpb #'C'
|
|
00FFF9C5 026008 bne PromptD
|
|
00FFF9C7 017FFE85B lbsr ClearScreen
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF9CA 017FFE8CB lbsr HomeCursor
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF9CD 020F5F bra Monitor
|
|
PromptD:
|
|
00FFF9CF 0C1044 cmpb #'D'
|
|
00FFF9D1 026008 bne PromptColon
|
|
00FFF9D3 08D05B bsr MonGetch
|
|
00FFF9D5 0C1052 cmpb #'R'
|
|
00FFF9D7 02626F bne DumpMemory
|
|
00FFF9D9 020309 bra DumpRegs
|
|
PromptColon:
|
|
00FFF9DB 0C103A cmpb #':'
|
|
00FFF9DD 026003 bne PromptF
|
|
00FFF9DF 0160002C2 lbra EditMemory
|
|
PromptF:
|
|
00FFF9E2 0C1046 cmpb #'F'
|
|
00FFF9E4 026016 bne PromptJ
|
|
00FFF9E6 08D048 bsr MonGetch
|
|
00FFF9E8 0C1049 cmpb #'I'
|
|
00FFF9EA 026009 bne PromptFL
|
|
00FFF9EC 08D042 bsr MonGetch
|
|
00FFF9EE 0C1047 cmpb #'G'
|
|
00FFF9F0 026F3C bne Monitor
|
|
00FFF9F2 07EFE0000 jmp $FE0000
|
|
PromptFL:
|
|
00FFF9F5 0C104C cmpb #'L'
|
|
00FFF9F7 026F35 bne Monitor
|
|
00FFF9F9 0160003A9 lbra DumpIOFocusList
|
|
PromptJ:
|
|
00FFF9FC 0C104A cmpb #'J'
|
|
00FFF9FE 12700032E lbeq jump_to_code
|
|
PromptR:
|
|
00FFFA01 0C1052 cmpb #'R'
|
|
00FFFA03 026006 bne Prompt_s
|
|
00FFFA05 0CEFFF92E ldu #Monitor
|
|
00FFFA08 016FFD9F5 lbra ramtest
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
Prompt_s:
|
|
00FFFA0B 0C1073 cmpb #'s'
|
|
00FFFA0D 026005 bne PromptT
|
|
00FFFA0F 017FFF293 lbsr SerialOutputTest
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFFA12 020F1A bra Monitor
|
|
PromptT:
|
|
00FFFA14 0C1054 cmpb #'T'
|
|
00FFFA16 026011 bne PromptU
|
|
00FFFA18 08D016 bsr MonGetch
|
|
00FFFA1A 0C1049 cmpb #'I'
|
|
00FFFA1C 026F10 bne Monitor
|
|
00FFFA1E 08D010 bsr MonGetch
|
|
00FFFA20 0C1052 cmpb #'R'
|
|
00FFFA22 026F0A bne Monitor
|
|
00FFFA24 017FFEAA0 lbsr rtc_read
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFFA27 020F05 bra Monitor
|
|
PromptU:
|
|
00FFFA29 0C1055 cmpb #'U'
|
|
00FFFA2B 026F01 bne Monitor
|
|
00FFFA2D 016FFF984 lbra disassem
|
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFEF3D 020F68 bra Monitor
|
|
|
|
PromptClearscreen:
|
|
00FFEF3F 017FFF2EC lbsr ClearScreen
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFEF42 017FFF35C lbsr HomeCursor
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFEF45 020F60 bra Monitor
|
|
|
MonGetch:
|
MonGetch:
|
00FFFA30 0E6A04 ldb ,y
|
00FFEF47 0E6A04 ldb ,y
|
00FFFA32 031201 iny
|
00FFEF49 031201 iny
|
00FFFA34 039 rts
|
00FFEF4B 039 rts
|
|
|
MonGetNonSpace:
|
MonGetNonSpace:
|
00FFFA35 08DFF9 bsr MonGetCh
|
00FFEF4C 08DFF9 bsr MonGetCh
|
00FFFA37 0C1020 cmpb #' '
|
00FFEF4E 0C1020 cmpb #' '
|
00FFFA39 027FFA beq MonGetNonSpace
|
00FFEF50 027FFA beq MonGetNonSpace
|
00FFFA3B 039 rts
|
00FFEF52 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Ignore blanks in the input
|
; Ignore blanks in the input
|
; Y = text pointer
|
; Y = text pointer
|
; D destroyed
|
; D destroyed
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
ignBlanks:
|
ignBlanks:
|
ignBlanks1:
|
ignBlanks1:
|
00FFFA3C 08DFF2 bsr MonGetch
|
00FFEF53 08DFF2 bsr MonGetch
|
00FFFA3E 0C1020 cmpb #' '
|
00FFEF55 0C1020 cmpb #' '
|
00FFFA40 027FFA beq ignBlanks1
|
00FFEF57 027FFA beq ignBlanks1
|
00FFFA42 0313FF dey
|
00FFEF59 0313FF dey
|
00FFFA44 039 rts
|
00FFEF5B 039 rts
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Multiply number in work area by 10.
|
|
;------------------------------------------------------------------------------
|
|
Times10:
|
|
00FFEF5C 0FC000910 ldd mon_numwka ; make a copy of the number
|
|
00FFEF5F 0FD000918 std mon_numwka+8
|
|
00FFEF62 0FC000912 ldd mon_numwka+2
|
|
00FFEF65 0FD00091A std mon_numwka+10
|
|
00FFEF68 078000913 asl mon_numwka+3 ; shift left = *2
|
|
00FFEF6B 079000912 rol mon_numwka+2
|
|
00FFEF6E 079000911 rol mon_numwka+1
|
|
00FFEF71 079000910 rol mon_numwka+0
|
|
00FFEF74 078000913 asl mon_numwka+3 ; shift left = *4
|
|
00FFEF77 079000912 rol mon_numwka+2
|
|
00FFEF7A 079000911 rol mon_numwka+1
|
|
00FFEF7D 079000910 rol mon_numwka+0
|
|
00FFEF80 0FC000912 ldd mon_numwka+2 ; add in original value
|
|
00FFEF83 0F300091A addd mon_numwka+10 ; = *5
|
|
00FFEF86 0F6000911 ldb mon_numwka+1
|
|
00FFEF89 0F9000919 adcb mon_numwka+9
|
|
00FFEF8C 0F7000911 stb mon_numwka+1
|
|
00FFEF8F 0B6000910 lda mon_numwka+0
|
|
00FFEF92 0B9000918 adca mon_numwka+8
|
|
00FFEF95 0B7000910 sta mon_numwka+0
|
|
00FFEF98 078000913 asl mon_numwka+3 ; shift left = * 10
|
|
00FFEF9B 079000912 rol mon_numwka+2
|
|
00FFEF9E 079000911 rol mon_numwka+1
|
|
00FFEFA1 079000910 rol mon_numwka+0
|
|
00FFEFA4 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
GetTwoParams:
|
GetTwoParams:
|
00FFFA45 08DFF5 bsr ignBlanks
|
00FFEFA5 08DFAC bsr ignBlanks
|
00FFFA47 08D046 bsr GetHexNumber ; get start address of dump
|
00FFEFA7 08D046 bsr GetHexNumber ; get start address of dump
|
00FFFA49 0FC000910 ldd mon_numwka
|
00FFEFA9 0FC000910 ldd mon_numwka
|
00FFFA4C 0FD000920 std mon_r1
|
00FFEFAC 0FD000920 std mon_r1
|
00FFFA4F 0FC000912 ldd mon_numwka+2
|
00FFEFAF 0FC000912 ldd mon_numwka+2
|
00FFFA52 0FD000922 std mon_r1+2
|
00FFEFB2 0FD000922 std mon_r1+2
|
00FFFA55 08DFE5 bsr ignBlanks
|
00FFEFB5 08DF9C bsr ignBlanks
|
00FFFA57 08D036 bsr GetHexNumber ; get end address of dump
|
00FFEFB7 08D036 bsr GetHexNumber ; get end address of dump
|
00FFFA59 0FC000910 ldd mon_numwka
|
00FFEFB9 0FC000910 ldd mon_numwka
|
00FFFA5C 0FD000924 std mon_r2
|
00FFEFBC 0FD000924 std mon_r2
|
00FFFA5F 0FC000912 ldd mon_numwka+2
|
00FFEFBF 0FC000912 ldd mon_numwka+2
|
00FFFA62 0FD000926 std mon_r2+2
|
00FFEFC2 0FD000926 std mon_r2+2
|
00FFFA65 039 rts
|
00FFEFC5 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Get a range, the end must be greater or equal to the start.
|
; Get a range, the end must be greater or equal to the start.
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
GetRange:
|
GetRange:
|
00FFFA66 08DFDD bsr GetTwoParams
|
00FFEFC6 08DFDD bsr GetTwoParams
|
00FFFA68 0FC000926 ldd mon_r2+2
|
00FFEFC8 0FC000926 ldd mon_r2+2
|
00FFFA6B 0B3000922 subd mon_r1+2
|
00FFEFCB 0B3000922 subd mon_r1+2
|
00FFFA6E 0FC000924 ldd mon_r2
|
00FFEFCE 0FC000924 ldd mon_r2
|
00FFFA71 0F2000921 sbcb mon_r1+1
|
00FFEFD1 0F2000921 sbcb mon_r1+1
|
00FFFA74 0B2000920 sbca mon_r1
|
00FFEFD4 0B2000920 sbca mon_r1
|
00FFFA77 124000007 lbcc grng1
|
00FFEFD7 124000007 lbcc grng1
|
00FFFA7A 0AD90F00080C jsr [MonErrVec]
|
00FFEFDA 0AD90F00080C jsr [MonErrVec]
|
00FFFA7E 016FFFEAD lbra Monitor
|
00FFEFDE 016FFFEC6 lbra Monitor
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
grng1:
|
grng1:
|
00FFFA81 039 rts
|
00FFEFE1 039 rts
|
|
|
shl_numwka:
|
shl_numwka:
|
00FFFA82 078000913 asl mon_numwka+3
|
00FFEFE2 078000913 asl mon_numwka+3
|
00FFFA85 079000912 rol mon_numwka+2
|
00FFEFE5 079000912 rol mon_numwka+2
|
00FFFA88 079000911 rol mon_numwka+1
|
00FFEFE8 079000911 rol mon_numwka+1
|
00FFFA8B 079000910 rol mon_numwka
|
00FFEFEB 079000910 rol mon_numwka
|
00FFFA8E 039 rts
|
00FFEFEE 039 rts
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Get a hexidecimal number. Maximum of twelve digits.
|
; Get a hexidecimal number. Maximum of twelve digits.
|
;
|
;
|
; Modifies:
|
; Modifies:
|
Line 4217... |
Line 3242... |
; D = number of digits
|
; D = number of digits
|
; mon_numwka contains number
|
; mon_numwka contains number
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
GetHexNumber:
|
GetHexNumber:
|
00FFFA8F 04F05F clrd
|
00FFEFEF 04F05F clrd
|
00FFFA91 0FD000910 std mon_numwka ; zero out work area
|
00FFEFF1 0FD000910 std mon_numwka ; zero out work area
|
00FFFA94 0FD000912 std mon_numwka+2
|
00FFEFF4 0FD000912 std mon_numwka+2
|
00FFFA97 034010 pshs x
|
00FFEFF7 034010 pshs x
|
00FFFA99 08E000000 ldx #0 ; max 12 eight digits
|
00FFEFF9 08E000000 ldx #0 ; max 12 eight digits
|
gthxn2:
|
gthxn2:
|
00FFFA9C 08DF92 bsr MonGetch
|
00FFEFFC 08DF49 bsr MonGetch
|
00FFFA9E 08D01F bsr AsciiToHexNybble
|
00FFEFFE 08D01F bsr AsciiToHexNybble
|
00FFFAA0 0C1FFF cmpb #-1
|
00FFF000 0C1FFF cmpb #-1
|
00FFFAA2 027017 beq gthxn1
|
00FFF002 027017 beq gthxn1
|
00FFFAA4 08DFDC bsr shl_numwka
|
00FFF004 08DFDC bsr shl_numwka
|
00FFFAA6 08DFDA bsr shl_numwka
|
00FFF006 08DFDA bsr shl_numwka
|
00FFFAA8 08DFD8 bsr shl_numwka
|
00FFF008 08DFD8 bsr shl_numwka
|
00FFFAAA 08DFD6 bsr shl_numwka
|
00FFF00A 08DFD6 bsr shl_numwka
|
00FFFAAC 0C400F andb #$0f
|
00FFF00C 0C400F andb #$0f
|
00FFFAAE 0FA000913 orb mon_numwka+3
|
00FFF00E 0FA000913 orb mon_numwka+3
|
00FFFAB1 0F7000913 stb mon_numwka+3
|
00FFF011 0F7000913 stb mon_numwka+3
|
00FFFAB4 030001 inx
|
00FFF014 030001 inx
|
00FFFAB6 08C00000C cmpx #12
|
00FFF016 08C00000C cmpx #12
|
00FFFAB9 025FE1 blo gthxn2
|
00FFF019 025FE1 blo gthxn2
|
gthxn1:
|
gthxn1:
|
00FFFABB 01F010 tfr x,d
|
00FFF01B 01F010 tfr x,d
|
00FFFABD 035090 puls x,pc
|
00FFF01D 035090 puls x,pc
|
|
|
;GetDecNumber:
|
;GetDecNumber:
|
; phx
|
; phx
|
; push r4
|
; push r4
|
; push r5
|
; push r5
|
Line 4270... |
Line 3295... |
; Convert ASCII character in the range '0' to '9', 'a' to 'f' or 'A' to 'F'
|
; Convert ASCII character in the range '0' to '9', 'a' to 'f' or 'A' to 'F'
|
; to a hex nybble.
|
; to a hex nybble.
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;
|
;
|
AsciiToHexNybble:
|
AsciiToHexNybble:
|
00FFFABF 0C1030 cmpb #'0'
|
00FFF01F 0C1030 cmpb #'0'
|
00FFFAC1 025021 blo gthx3
|
00FFF021 025021 blo gthx3
|
00FFFAC3 0C1039 cmpb #'9'
|
00FFF023 0C1039 cmpb #'9'
|
00FFFAC5 022003 bhi gthx5
|
00FFF025 022003 bhi gthx5
|
00FFFAC7 0C0030 subb #'0'
|
00FFF027 0C0030 subb #'0'
|
00FFFAC9 039 rts
|
00FFF029 039 rts
|
gthx5:
|
gthx5:
|
00FFFACA 0C1041 cmpb #'A'
|
00FFF02A 0C1041 cmpb #'A'
|
00FFFACC 025016 blo gthx3
|
00FFF02C 025016 blo gthx3
|
00FFFACE 0C1046 cmpb #'F'
|
00FFF02E 0C1046 cmpb #'F'
|
00FFFAD0 022005 bhi gthx6
|
00FFF030 022005 bhi gthx6
|
00FFFAD2 0C0041 subb #'A'
|
00FFF032 0C0041 subb #'A'
|
00FFFAD4 0CB00A addb #10
|
00FFF034 0CB00A addb #10
|
00FFFAD6 039 rts
|
00FFF036 039 rts
|
gthx6:
|
gthx6:
|
00FFFAD7 0C1061 cmpb #'a'
|
00FFF037 0C1061 cmpb #'a'
|
00FFFAD9 025009 blo gthx3
|
00FFF039 025009 blo gthx3
|
00FFFADB 0C107A cmpb #'z'
|
00FFF03B 0C107A cmpb #'z'
|
00FFFADD 022005 bhi gthx3
|
00FFF03D 022005 bhi gthx3
|
00FFFADF 0C0061 subb #'a'
|
00FFF03F 0C0061 subb #'a'
|
00FFFAE1 0CB00A addb #10
|
00FFF041 0CB00A addb #10
|
00FFFAE3 039 rts
|
00FFF043 039 rts
|
gthx3:
|
gthx3:
|
00FFFAE4 0C6FFF ldb #-1 ; not a hex number
|
00FFF044 0C6FFF ldb #-1 ; not a hex number
|
00FFFAE6 039 rts
|
00FFF046 039 rts
|
|
|
AsciiToDecNybble:
|
AsciiToDecNybble:
|
00FFFAE7 0C1030 cmpb #'0'
|
00FFF047 0C1030 cmpb #'0'
|
00FFFAE9 024007 bcc gtdc3
|
00FFF049 024007 bcc gtdc3
|
00FFFAEB 0C103A cmpb #'9'+1
|
00FFF04B 0C103A cmpb #'9'+1
|
00FFFAED 025003 bcs gtdc3
|
00FFF04D 025003 bcs gtdc3
|
00FFFAEF 0C0030 subb #'0'
|
00FFF04F 0C0030 subb #'0'
|
00FFFAF1 039 rts
|
00FFF051 039 rts
|
gtdc3:
|
gtdc3:
|
00FFFAF2 0C6FFF ldb #-1
|
00FFF052 0C6FFF ldb #-1
|
00FFFAF4 039 rts
|
00FFF054 039 rts
|
|
|
DisplayErr:
|
DisplayErr:
|
00FFFAF5 0CCFFFB06 ldd #msgErr
|
00FFF055 0CCFFF066 ldd #msgErr
|
00FFFAF8 017FFE8BB lbsr DisplayString
|
00FFF058 017FFF364 lbsr DisplayString
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFAFB 07EFFF92E jmp Monitor
|
00FFF05B 07EFFEEA7 jmp Monitor
|
|
|
DisplayStringDX
|
DisplayStringDX
|
00FFFAFE 0DD024 std Strptr
|
00FFF05E 0DD024 std Strptr
|
00FFFB00 09F026 stx Strptr+2
|
00FFF060 09F026 stx Strptr+2
|
00FFFB02 0BDFFE3B6 jsr DisplayString
|
00FFF062 0BDFFE3BF jsr DisplayString
|
00FFFB05 039 rts
|
00FFF065 039 rts
|
|
|
msgErr:
|
msgErr:
|
00FFFB06 02A02A04507207200D00A fcb "**Err",CR,LF,0
|
00FFF066 02A02A04507207200D00A fcb "**Err",CR,LF,0
|
00FFFB0D 000
|
00FFF06D 000
|
|
|
HelpMsg:
|
HelpMsg:
|
00FFFB0E 03F02003D020044069073 fcb "? = Display help",CR,LF
|
00FFF06E 03F02003D020044069073 fcb "? = Display help",CR,LF
|
00FFFB15 07006C061079020068065
|
00FFF075 07006C061079020068065
|
00FFFB1C 06C07000D00A
|
00FFF07C 06C07000D00A
|
00FFFB20 04304C05302003D020063 fcb "CLS = clear screen",CR,LF
|
00FFF080 04304C05302003D020063 fcb "CLS = clear screen",CR,LF
|
00FFFB27 06C065061072020073063
|
00FFF087 06C065061072020073063
|
00FFFB2E 07206506506E00D00A
|
00FFF08E 07206506506E00D00A
|
|
00FFF094 06207302003D020073065 fcb "bs = set breakpoint",CR,LF
|
|
00FFF09B 07402006207206506106B
|
|
00FFF0A2 07006F06906E07400D00A
|
|
00FFF0A9 06206302003D02006306C fcb "bc = clear breakpoint",CR,LF
|
|
00FFF0B0 065061072020062072065
|
|
00FFF0B7 06106B07006F06906E074
|
|
00FFF0BE 00D00A
|
; db "S = Boot from SD Card",CR,LF
|
; db "S = Boot from SD Card",CR,LF
|
00FFFB34 03A02003D020045064069 fcb ": = Edit memory bytes",CR,LF
|
00FFF0C0 03A02003D020045064069 fcb ": = Edit memory bytes",CR,LF
|
00FFFB3B 07402006D06506D06F072
|
00FFF0C7 07402006D06506D06F072
|
00FFFB42 079020062079074065073
|
00FFF0CE 079020062079074065073
|
00FFFB49 00D00A
|
00FFF0D5 00D00A
|
; db "L = Load sector",CR,LF
|
; db "L = Load sector",CR,LF
|
; db "W = Write sector",CR,LF
|
; db "W = Write sector",CR,LF
|
00FFFB4B 04405202003D020044075 fcb "DR = Dump registers",CR,LF
|
00FFF0D7 04405202003D020044075 fcb "DR = Dump registers",CR,LF
|
00FFFB52 06D070020072065067069
|
00FFF0DE 06D070020072065067069
|
00FFFB59 07307406507207300D00A
|
00FFF0E5 07307406507207300D00A
|
00FFFB60 04402003D02004407506D fcb "D = Dump memory",CR,LF
|
00FFF0EC 04402003D02004407506D fcb "D = Dump memory",CR,LF
|
00FFFB67 07002006D06506D06F072
|
00FFF0F3 07002006D06506D06F072
|
00FFFB6E 07900D00A
|
00FFF0FA 07900D00A
|
; db "F = Fill memory",CR,LF
|
00FFF0FD 04602003D02004606906C fcb "F = Fill memory",CR,LF
|
00FFFB71 04604C02003D020044075 fcb "FL = Dump I/O Focus List",CR,LF
|
00FFF104 06C02006D06506D06F072
|
00FFFB78 06D07002004902F04F020
|
00FFF10B 07900D00A
|
00FFFB7F 04606F06307507302004C
|
00FFF10E 04604C02003D020044075 fcb "FL = Dump I/O Focus List",CR,LF
|
00FFFB86 06907307400D00A
|
00FFF115 06D07002004902F04F020
|
00FFFB8B 04604904702003D020073 fcb "FIG = start FIG Forth",CR,LF
|
00FFF11C 04606F06307507302004C
|
00FFFB92 074061072074020046049
|
00FFF123 06907307400D00A
|
00FFFB99 04702004606F072074068
|
00FFF128 04604904702003D020073 fcb "FIG = start FIG Forth",CR,LF
|
00FFFBA0 00D00A
|
00FFF12F 074061072074020046049
|
|
00FFF136 04702004606F072074068
|
|
00FFF13D 00D00A
|
; db "KILL n = kill task #n",CR,LF
|
; db "KILL n = kill task #n",CR,LF
|
; db "B = start tiny basic",CR,LF
|
; db "B = start tiny basic",CR,LF
|
; db "b = start EhBasic 6502",CR,LF
|
; db "b = start EhBasic 6502",CR,LF
|
00FFFBA2 04A02003D02004A07506D fcb "J = Jump to code",CR,LF
|
00FFF13F 04A02003D02004A07506D fcb "J = Jump to code",CR,LF
|
00FFFBA9 07002007406F02006306F
|
00FFF146 07002007406F02006306F
|
00FFFBB0 06406500D00A
|
00FFF14D 06406500D00A
|
00FFFBB4 05204104D02003D020074 fcb "RAM = test RAM",CR,LF
|
00FFF151 05204104D02003D020074 fcb "RAM = test RAM",CR,LF
|
00FFFBBB 06507307402005204104D
|
00FFF158 06507307402005204104D
|
00FFFBC2 00D00A
|
00FFF15F 00D00A
|
; db "R[n] = Set register value",CR,LF
|
; db "R[n] = Set register value",CR,LF
|
; db "r = random lines - test bitmap",CR,LF
|
; db "r = random lines - test bitmap",CR,LF
|
; db "e = ethernet test",CR,LF
|
; db "e = ethernet test",CR,LF
|
00FFFBC4 07302003D020073065072 fcb "s = serial output test",CR,LF
|
00FFF161 07302003D020073065072 fcb "s = serial output test",CR,LF
|
00FFFBCB 06906106C02006F075074
|
00FFF168 06906106C02006F075074
|
00FFFBD2 070075074020074065073
|
00FFF16F 070075074020074065073
|
00FFFBD9 07400D00A
|
00FFF176 07400D00A
|
|
00FFF179 05305002003D020073070 fcb "SP = sprite demo",CR,LF
|
|
00FFF180 072069074065020064065
|
|
00FFF187 06D06F00D00A
|
; db "T = Dump task list",CR,LF
|
; db "T = Dump task list",CR,LF
|
; db "TO = Dump timeout list",CR,LF
|
; db "TO = Dump timeout list",CR,LF
|
00FFFBDC 05404902003D020064069 fcb "TI = display date/time",CR,LF
|
00FFF18B 05404902003D020064069 fcb "TI = display date/time",CR,LF
|
00FFFBE3 07307006C061079020064
|
00FFF192 07307006C061079020064
|
00FFFBEA 06107406502F07406906D
|
00FFF199 06107406502F07406906D
|
00FFFBF1 06500D00A
|
00FFF1A0 06500D00A
|
; db "TEMP = display temperature",CR,LF
|
; db "TEMP = display temperature",CR,LF
|
00FFFBF4 05502003D02007506E061 fcb "U = unassemble",CR,LF
|
00FFF1A3 05502003D02007506E061 fcb "U = unassemble",CR,LF
|
00FFFBFB 07307306506D06206C065
|
00FFF1AA 07307306506D06206C065
|
00FFFC02 00D00A
|
00FFF1B1 00D00A
|
; db "P = Piano",CR,LF,0
|
; db "P = Piano",CR,LF
|
00FFFC04 000 fcb 0
|
00FFF1B3 07802003D020065078069 fcb "x = exit monitor",CR,LF
|
|
00FFF1BA 07402006D06F06E069074
|
|
00FFF1C1 06F07200D00A
|
|
00FFF1C5 000 fcb 0
|
|
|
msgRegHeadings
|
msgRegHeadings
|
00FFFC05 00D00A02002004402F041 fcb CR,LF," D/AB X Y U S PC DP CCR",CR,LF,0
|
00FFF1C6 00D00A02002004402F041 fcb CR,LF," D/AB X Y U S PC DP CCR",CR,LF,0
|
00FFFC0C 042020020020020020058
|
00FFF1CD 042020020020020020058
|
00FFFC13 020020020020020020059
|
00FFF1D4 020020020020020020059
|
00FFFC1A 020020020020020020055
|
00FFF1DB 020020020020020020055
|
00FFFC21 020020020020020020053
|
00FFF1E2 020020020020020020053
|
00FFFC28 020020020020020020020
|
00FFF1E9 020020020020020020020
|
00FFFC2F 050043020020020020044
|
00FFF1F0 050043020020020020044
|
00FFFC36 05002002004304305200D
|
00FFF1F7 05002002004304305200D
|
00FFFC3D 00A000
|
00FFF1FE 00A000
|
|
|
nHEX4:
|
nHEX4:
|
00FFFC3F 0BDFFD2D2 jsr HEX4
|
00FFF200 0BDFFD2D2 jsr HEX4
|
00FFFC42 039 rts
|
00FFF203 039 rts
|
|
|
nXBLANK:
|
nXBLANK:
|
00FFFC43 0C6020 ldb #' '
|
00FFF204 0C6020 ldb #' '
|
00FFFC45 016FFF0CA lbra OUTCH
|
00FFF206 016FFFB09 lbra OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Dump Memory
|
; Dump Memory
|
;
|
;
|
Line 4413... |
Line 3453... |
; :FFFC12 012 012 012 012 555 666 777 888
|
; :FFFC12 012 012 012 012 555 666 777 888
|
;
|
;
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
DumpMemory:
|
DumpMemory:
|
00FFFC48 08DE1C bsr GetRange
|
00FFF209 08DDBB bsr GetRange
|
00FFFC4A 18E000000 ldy #0
|
00FFF20B 18E000000 ldy #0
|
00FFFC4D 1BE000922 ldy mon_r1+2
|
00FFF20E 1BE000922 ldy mon_r1+2
|
dmpm2:
|
dmpm2:
|
00FFFC50 017FFD47F lbsr CRLF
|
00FFF211 017FFDEBE lbsr CRLF
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC53 0C603A ldb #':'
|
00FFF214 0C603A ldb #':'
|
00FFFC55 017FFF0BA lbsr OUTCH
|
00FFF216 017FFFAF9 lbsr OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC58 01F020 tfr y,d
|
00FFF219 01F020 tfr y,d
|
;addd mon_r1+2 ; output the address
|
;addd mon_r1+2 ; output the address
|
00FFFC5A 017FFE7A4 lbsr DispWordAsHex
|
00FFF21B 017FFF1EC lbsr DispWordAsHex
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC5D 0C6020 ldb #' '
|
00FFF21E 0C6020 ldb #' '
|
00FFFC5F 017FFF0B0 lbsr OUTCH
|
00FFF220 017FFFAEF lbsr OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC62 08E000008 ldx #8 ; number of bytes to display
|
00FFF223 08E000008 ldx #8 ; number of bytes to display
|
dmpm1:
|
dmpm1:
|
; ldb far [mon_r1+1],y
|
; ldb far [mon_r1+1],y
|
;ldb [mon_r1+2],y
|
;ldb [mon_r1+2],y
|
00FFFC65 0E6A04 ldb ,y
|
00FFF226 0E6A04 ldb ,y
|
00FFFC67 031201 iny
|
00FFF228 031201 iny
|
00FFFC69 017FFE79E lbsr DispByteAsHex ; display byte
|
00FFF22A 017FFF1E6 lbsr DispByteAsHex ; display byte
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC6C 0C6020 ldb #' ' ; followed by a space
|
00FFF22D 0C6020 ldb #' ' ; followed by a space
|
00FFFC6E 017FFF0A1 lbsr OUTCH
|
00FFF22F 017FFFAE0 lbsr OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC71 05F clrb
|
00FFF232 05F clrb
|
00FFFC72 04F clra
|
00FFF233 04F clra
|
00FFFC73 017FFF064 lbsr INCH
|
00FFF234 017FFFAA3 lbsr INCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC76 0C1003 cmpb #CTRLC
|
00FFF237 0C1003 cmpb #CTRLC
|
00FFFC78 027024 beq dmpm3
|
00FFF239 027024 beq dmpm3
|
00FFFC7A 0301FF dex
|
00FFF23B 0301FF dex
|
00FFFC7C 026FE7 bne dmpm1
|
00FFF23D 026FE7 bne dmpm1
|
; Now output ascii
|
; Now output ascii
|
00FFFC7E 0C6020 ldb #' '
|
00FFF23F 0C6020 ldb #' '
|
00FFFC80 017FFF08F lbsr OUTCH
|
00FFF241 017FFFACE lbsr OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC83 08E000008 ldx #8 ; 8 chars to output
|
00FFF244 08E000008 ldx #8 ; 8 chars to output
|
00FFFC86 0313F8 leay -8,y ; backup pointer
|
00FFF247 0313F8 leay -8,y ; backup pointer
|
dmpm5:
|
dmpm5:
|
; ldb far [mon_r1+1],y ; get the char
|
; ldb far [mon_r1+1],y ; get the char
|
; ldb [mon_r1+2],y ; get the char
|
; ldb [mon_r1+2],y ; get the char
|
00FFFC88 0E6A04 ldb ,y
|
00FFF249 0E6A04 ldb ,y
|
00FFFC8A 0C1020 cmpb #$20 ; is it a control char?
|
00FFF24B 0C1020 cmpb #$20 ; is it a control char?
|
00FFFC8C 024002 bhs dmpm4
|
00FFF24D 024002 bhs dmpm4
|
00FFFC8E 0C602E ldb #'.'
|
00FFF24F 0C602E ldb #'.'
|
dmpm4:
|
dmpm4:
|
00FFFC90 017FFF07F lbsr OUTCH
|
00FFF251 017FFFABE lbsr OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFC93 031201 iny
|
00FFF254 031201 iny
|
00FFFC95 0301FF dex
|
00FFF256 0301FF dex
|
00FFFC97 026FEF bne dmpm5
|
00FFF258 026FEF bne dmpm5
|
00FFFC99 1BC000926 cmpy mon_r2+2
|
00FFF25A 1BC000926 cmpy mon_r2+2
|
00FFFC9C 025FB2 blo dmpm2
|
00FFF25D 025FB2 blo dmpm2
|
dmpm3:
|
dmpm3:
|
00FFFC9E 017FFD431 lbsr CRLF
|
00FFF25F 017FFDE70 lbsr CRLF
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFCA1 016FFFC8A lbra Monitor
|
00FFF262 016FFFC42 lbra Monitor
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Edit Memory
|
; Edit Memory
|
;
|
;
|
Line 4487... |
Line 3527... |
; :FFFC12 012 012 012 012 555 666 777 888
|
; :FFFC12 012 012 012 012 555 666 777 888
|
;
|
;
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
EditMemory:
|
EditMemory:
|
00FFFCA4 0CE000008 ldu #8 ; set max byte count
|
00FFF265 0CE000008 ldu #8 ; set max byte count
|
00FFFCA7 017FFFDE5 lbsr GetHexNumber ; get the start address
|
00FFF268 017FFFD84 lbsr GetHexNumber ; get the start address
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFCAA 0BE000922 ldx mon_r1+2
|
00FFF26B 0BE000912 ldx mon_numwka+2
|
EditMem2:
|
EditMem2:
|
00FFFCAD 017FFFD8C lbsr ignBlanks ; skip over blanks
|
00FFF26E 017FFFCE2 lbsr ignBlanks ; skip over blanks
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFCB0 017FFFDDC lbsr GetHexNumber ; get the byte value
|
00FFF271 017FFFD7B lbsr GetHexNumber ; get the byte value
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFCB3 05D tstb ; check for valid value
|
00FFF274 05D tstb ; check for valid value
|
00FFFCB4 02B00C bmi EditMem1 ; if invalid, quit
|
00FFF275 02700C beq EditMem1 ; if invalid, quit
|
00FFFCB6 0F6000923 ldb mon_r1+3 ; get value
|
00FFF277 0F6000913 ldb mon_numwka+3 ; get value
|
00FFFCB9 0E7800 stb ,x+ ; update memory at address
|
00FFF27A 0E7800 stb ,x+ ; update memory at address
|
00FFFCBB 0335FF leau -1,u ; decremeent byte count
|
00FFF27C 0335FF leau -1,u ; decremeent byte count
|
00FFFCBD 283000000 cmpu #0
|
00FFF27E 283000000 cmpu #0
|
00FFFCC0 026FEB bne EditMem2 ; go back for annother byte
|
00FFF281 026FEB bne EditMem2 ; go back for annother byte
|
EditMem1:
|
EditMem1:
|
00FFFCC2 017FFFD6B lbsr MonGetch ; see if a string is being entered
|
00FFF283 017FFFCC1 lbsr MonGetch ; see if a string is being entered
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFCC5 0C1022 cmpb #'"'
|
00FFF286 0C1022 cmpb #'"'
|
00FFFCC7 026018 bne EditMem3 ; no string, we're done
|
00FFF288 026018 bne EditMem3 ; no string, we're done
|
00FFFCC9 0CE000028 ldu #40 ; string must be less than 40 chars
|
00FFF28A 0CE000028 ldu #40 ; string must be less than 40 chars
|
EditMem4:
|
EditMem4:
|
00FFFCCC 017FFFD61 lbsr MonGetch ; look for close quote
|
00FFF28D 017FFFCB7 lbsr MonGetch ; look for close quote
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFCCF 0C1022 cmpb #'"'
|
00FFF290 0C1022 cmpb #'"'
|
00FFFCD1 026005 bne EditMem6 ; end of string?
|
00FFF292 026005 bne EditMem6 ; end of string?
|
00FFFCD3 0CE000008 ldu #8 ; reset the byte count
|
00FFF294 0CE000008 ldu #8 ; reset the byte count
|
00FFFCD6 020FD5 bra EditMem2
|
00FFF297 020FD5 bra EditMem2
|
EditMem6:
|
EditMem6:
|
00FFFCD8 0E7800 stb ,x+ ; store the character in memory
|
00FFF299 0E7800 stb ,x+ ; store the character in memory
|
00FFFCDA 0335FF leau -1,u ; decrement byte count
|
00FFF29B 0335FF leau -1,u ; decrement byte count
|
00FFFCDC 283000000 cmpu #0
|
00FFF29D 283000000 cmpu #0
|
00FFFCDF 022FEB bhi EditMem4 ; max 40 chars
|
00FFF2A0 022FEB bhi EditMem4 ; max 40 chars
|
EditMem3:
|
EditMem3:
|
00FFFCE1 016FFFC4A lbra Monitor
|
00FFF2A2 016FFFC02 lbra Monitor
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
; Fill Memory
|
|
;
|
|
; Usage:
|
|
; $$F FFFC12 FFFC30 89F
|
|
;
|
|
;------------------------------------------------------------------------------
|
|
|
|
FillMemory:
|
|
00FFF2A5 017FFFD1E lbsr GetRange ; get address range to fill
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF2A8 017FFFCA8 lbsr ignBlanks
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF2AB 017FFFD41 lbsr GetHexNumber ; get target byte to write
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF2AE 0F6000913 ldb mon_numwka+3
|
|
00FFF2B1 0BE000922 ldx mon_r1+2
|
|
00FFF2B4 04F clra
|
|
fillm1: ; Check for a CTRL-C every page of memory
|
|
00FFF2B5 04D tsta
|
|
00FFF2B6 02600D bne fillm2
|
|
00FFF2B8 05F clrb ; we want a non-blocking check
|
|
00FFF2B9 04F clra
|
|
00FFF2BA 017FFFA1D lbsr INCH
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF2BD 0C1003 cmpb #CTRLC
|
|
00FFF2BF 127FFFBE5 lbeq Monitor
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF2C2 0F6000913 ldb mon_numwka+3 ; reset target byte
|
|
fillm2:
|
|
00FFF2C5 0E7800 stb ,x+
|
|
00FFF2C7 0BC000926 cmpx mon_r2+2
|
|
00FFF2CA 023FE9 bls fillm1
|
|
fillm3:
|
|
00FFF2CC 016FFFBD8 lbra Monitor
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
|
;------------------------------------------------------------------------------
|
; Dump Registers
|
; Dump Registers
|
;
|
;
|
; Usage:
|
; Usage:
|
; $DR
|
; $DR
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
DumpRegs:
|
DumpRegs:
|
00FFFCE4 0CCFFFC05 ldd #msgRegHeadings
|
00FFF2CF 0CCFFF1C6 ldd #msgRegHeadings
|
00FFFCE7 017FFE6CC lbsr DisplayString
|
00FFF2D2 017FFF0EA lbsr DisplayString
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFCEA 08DF57 bsr nXBLANK
|
00FFF2D5 08DF2D bsr nXBLANK
|
00FFFCEC 0FC000900 ldd mon_DSAVE
|
00FFF2D7 0FC000900 ldd mon_DSAVE
|
00FFFCEF 08DF4E bsr nHEX4
|
00FFF2DA 08DF24 bsr nHEX4
|
00FFFCF1 08DF50 bsr nXBLANK
|
00FFF2DC 08DF26 bsr nXBLANK
|
00FFFCF3 0FC000902 ldd mon_XSAVE
|
00FFF2DE 0FC000902 ldd mon_XSAVE
|
00FFFCF6 08DF47 bsr nHEX4
|
00FFF2E1 08DF1D bsr nHEX4
|
00FFFCF8 08DF49 bsr nXBLANK
|
00FFF2E3 08DF1F bsr nXBLANK
|
00FFFCFA 0FC000904 ldd mon_YSAVE
|
00FFF2E5 0FC000904 ldd mon_YSAVE
|
00FFFCFD 08DF40 bsr nHEX4
|
00FFF2E8 08DF16 bsr nHEX4
|
00FFFCFF 08DF42 bsr nXBLANK
|
00FFF2EA 08DF18 bsr nXBLANK
|
00FFFD01 0FC000906 ldd mon_USAVE
|
00FFF2EC 0FC000906 ldd mon_USAVE
|
00FFFD04 08DF39 bsr nHEX4
|
00FFF2EF 08DF0F bsr nHEX4
|
00FFFD06 08DF3B bsr nXBLANK
|
00FFF2F1 08DF11 bsr nXBLANK
|
00FFFD08 0FC000908 ldd mon_SSAVE
|
00FFF2F3 0FC000908 ldd mon_SSAVE
|
00FFFD0B 08DF32 bsr nHEX4
|
00FFF2F6 08DF08 bsr nHEX4
|
00FFFD0D 08DF34 bsr nXBLANK
|
00FFF2F8 08DF0A bsr nXBLANK
|
00FFFD0F 0F600090B ldb mon_PCSAVE+1
|
00FFF2FA 0F600090B ldb mon_PCSAVE+1
|
00FFFD12 017FFE6F5 lbsr DispByteAsHex
|
00FFF2FD 017FFF113 lbsr DispByteAsHex
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFD15 0FC00090C ldd mon_PCSAVE+2
|
00FFF300 0FC00090C ldd mon_PCSAVE+2
|
00FFFD18 08DF25 bsr nHEX4
|
00FFF303 08DEFB bsr nHEX4
|
00FFFD1A 08DF27 bsr nXBLANK
|
00FFF305 08DEFD bsr nXBLANK
|
00FFFD1C 0FC00090E ldd mon_DPRSAVE
|
00FFF307 0FC00090E ldd mon_DPRSAVE
|
00FFFD1F 0BDFFD2CE jsr HEX2
|
00FFF30A 0BDFFD2CE jsr HEX2
|
00FFFD22 08DF1F bsr nXBLANK
|
00FFF30D 08DEF5 bsr nXBLANK
|
00FFFD24 0B600090F lda mon_CCRSAVE
|
00FFF30F 0B600090F lda mon_CCRSAVE
|
00FFFD27 017FFD5A4 lbsr HEX2
|
00FFF312 017FFDFB9 lbsr HEX2
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFD2A 08DF17 bsr nXBLANK
|
00FFF315 08DEED bsr nXBLANK
|
00FFFD2C 016FFFBFF lbra Monitor
|
00FFF317 016FFFB8D lbra Monitor
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
; Jump to code
|
; Jump to code
|
;
|
;
|
Line 4579... |
Line 3656... |
;
|
;
|
; J
|
; J
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
jump_to_code:
|
jump_to_code:
|
00FFFD2F 08DD5E bsr GetHexNumber
|
00FFF31A 08DCD3 bsr GetHexNumber
|
00FFFD31 01A010 sei
|
00FFF31C 01A010 sei
|
00FFFD33 1FE000908 lds mon_SSAVE
|
00FFF31E 1FE000908 lds mon_SSAVE
|
00FFFD36 0CCFFFD6A ldd #
|
00FFF321 0CCFFF355 ldd #
|
00FFFD39 034006 pshs d
|
00FFF324 034006 pshs d
|
00FFFD3B 0C6000 ldb #>jtc_exit
|
00FFF326 0C6000 ldb #>jtc_exit
|
00FFFD3D 034004 pshs b
|
00FFF328 034004 pshs b
|
00FFFD3F 0FC000912 ldd mon_numwka+2 ; get the address parameter
|
00FFF32A 0FC000912 ldd mon_numwka+2 ; get the address parameter
|
00FFFD42 034006 pshs d
|
00FFF32D 034006 pshs d
|
00FFFD44 0F6000911 ldb mon_numwka+1
|
00FFF32F 0F6000911 ldb mon_numwka+1
|
00FFFD47 034004 pshs b
|
00FFF332 034004 pshs b
|
00FFFD49 0FC000906 ldd mon_USAVE
|
00FFF334 0FC000906 ldd mon_USAVE
|
00FFFD4C 034006 pshs d
|
00FFF337 034006 pshs d
|
00FFFD4E 0FC000904 ldd mon_YSAVE
|
00FFF339 0FC000904 ldd mon_YSAVE
|
00FFFD51 034006 pshs d
|
00FFF33C 034006 pshs d
|
00FFFD53 0FC000902 ldd mon_XSAVE
|
00FFF33E 0FC000902 ldd mon_XSAVE
|
00FFFD56 034006 pshs d
|
00FFF341 034006 pshs d
|
00FFFD58 0B600090E lda mon_DPRSave
|
00FFF343 0B600090E lda mon_DPRSAVE
|
00FFFD5B 034002 pshs a
|
00FFF346 034002 pshs a
|
00FFFD5D 0FC000900 ldd mon_DSAVE
|
00FFF348 0FC000900 ldd mon_DSAVE
|
00FFFD60 034006 pshs d
|
00FFF34B 034006 pshs d
|
00FFFD62 0B600090F lda mon_CCRSAVE
|
00FFF34D 0B600090F lda mon_CCRSAVE
|
00FFFD65 034002 pshs a
|
00FFF350 034002 pshs a
|
00FFFD67 0150350FF puls far ccr,d,dpr,x,y,u,pc
|
00FFF352 0150350FF puls far ccr,d,dpr,x,y,u,pc
|
jtc_exit:
|
jtc_exit:
|
00FFFD6A 1FF000908 sts >mon_SSAVE ; need to use extended addressing, no direct page setting
|
00FFF355 1FF000908 sts >mon_SSAVE ; need to use extended addressing, no direct page setting
|
00FFFD6D 03280F006FFF leas $6FFF ; reset stack to system area, dont modify flags register!
|
00FFF358 03280F006FFF leas $6FFF ; reset stack to system area, dont modify flags register!
|
00FFFD71 034001 pshs ccr ; now the stack can be used
|
00FFF35C 034001 pshs ccr ; now the stack can be used
|
00FFFD73 034002 pshs a ; save acca register so we can use it
|
00FFF35E 034002 pshs a ; save acca register so we can use it
|
00FFFD75 01F0B8 tfr dpr,a ; a = outgoing dpr value
|
00FFF360 01F0B8 tfr dpr,a ; a = outgoing dpr value
|
00FFFD77 0B700090E sta >mon_DPRSAVE ; force extended addressing mode usage here dpr is not set
|
00FFF362 0B700090E sta >mon_DPRSAVE ; force extended addressing mode usage here dpr is not set
|
00FFFD7A 04F clra ; dpg register must be set to zero before values are
|
00FFF365 04F clra ; dpg register must be set to zero before values are
|
00FFFD7B 01F08B tfr a,dpr ; saved in the monitor register save area.
|
00FFF366 01F08B tfr a,dpr ; saved in the monitor register save area.
|
00FFFD7D 035002 puls a ; get back acca
|
00FFF368 035002 puls a ; get back acca
|
00FFFD7F 0FD000900 std mon_DSAVE ; save regsters, can use direct addressing now
|
00FFF36A 0FD000900 std mon_DSAVE ; save regsters, can use direct addressing now
|
00FFFD82 0BF000902 stx mon_XSAVE
|
00FFF36D 0BF000902 stx mon_XSAVE
|
00FFFD85 1BF000904 sty mon_YSAVE
|
00FFF370 1BF000904 sty mon_YSAVE
|
00FFFD88 0FF000906 stu mon_USAVE
|
00FFF373 0FF000906 stu mon_USAVE
|
00FFFD8B 035002 puls a ; get back ccr
|
00FFF376 035002 puls a ; get back ccr
|
00FFFD8D 0B700090F sta mon_CCRSAVE ; and save it too
|
00FFF378 0B700090F sta mon_CCRSAVE ; and save it too
|
; Reset vectors in case they got toasted.
|
; Reset vectors in case they got toasted.
|
00FFFD90 0CCFFEBE4 ldd #SerialPeekCharDirect
|
00FFF37B 0CCFFEBE4 ldd #SerialPeekCharDirect
|
00FFFD93 0FD000804 std CharInVec
|
00FFF37E 0FD000804 std CharInVec
|
00FFFD96 0CCFFE2F5 ldd #DisplayChar
|
00FFF381 0CCFFE2FE ldd #DisplayChar
|
00FFFD99 0FD000800 std CharOutVec
|
00FFF384 0FD000800 std CharOutVec
|
00FFFD9C 0FCFFFAF5 ldd DisplayErr
|
00FFF387 0FCFFF055 ldd DisplayErr
|
00FFFD9F 0FD00080C std MonErrVec
|
00FFF38A 0FD00080C std MonErrVec
|
; todo set according to coreid
|
; todo set according to coreid
|
00FFFDA2 016FFFF3F lbra DumpRegs ; now go do a register dump
|
00FFF38D 016FFFF3F lbra DumpRegs ; now go do a register dump
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
|
|
DumpIOFocusList:
|
DumpIOFocusList:
|
00FFFDA5 08E000000 ldx #0
|
00FFF390 08E000000 ldx #0
|
dfl2:
|
dfl2:
|
00FFFDA8 0E680A000FF0000 ldb IOFocusList,x
|
00FFF393 0E680A000FFC000 ldb IOFocusList,x
|
00FFFDAD 0C1018 cmpb #24
|
00FFF398 0C1018 cmpb #24
|
00FFFDAF 02600A bne dfl1
|
00FFF39A 02600A bne dfl1
|
00FFFDB1 01F010 tfr x,d
|
00FFF39C 01F010 tfr x,d
|
00FFFDB3 017FFE654 lbsr DispByteAsHex
|
00FFF39E 017FFF072 lbsr DispByteAsHex
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFDB6 0C6020 ldb #' '
|
00FFF3A1 0C6020 ldb #' '
|
00FFFDB8 017FFEF57 lbsr OUTCH
|
00FFF3A3 017FFF96C lbsr OUTCH
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
dfl1:
|
dfl1:
|
00FFFDBB 030001 inx
|
00FFF3A6 030001 inx
|
00FFFDBD 08C000010 cmpx #16
|
00FFF3A8 08C000010 cmpx #16
|
00FFFDC0 025FE6 blo dfl2
|
00FFF3AB 025FE6 blo dfl2
|
00FFFDC2 017FFD30D lbsr CRLF
|
00FFF3AD 017FFDD22 lbsr CRLF
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
00FFFDC5 016FFFB66 lbra Monitor
|
00FFF3B0 016FFFAF4 lbra Monitor
|
*** warning 1: Long branch within short branch range could be optimized
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
|
bootpg:
|
|
00FFF3B3 000 fcb $000
|
|
boot_stack:
|
|
00FFF3B4 006FFF fcw $006FFF
|
|
numBreakpoints:
|
|
00FFF3B6 008 fcb 8
|
|
mon_rom_vectab:
|
|
00FFF3B7 FFF3B9 fcw mon_rom_vecs
|
|
mon_rom_vecs:
|
|
00FFF3B9 FFEEA7 fcw Monitor ; enter monitor program
|
|
00FFF3BB FFECDA fcw INCH ; input a character
|
|
00FFF3BD FFED12 fcw OUTCH ; output a character
|
|
00FFF3BF FFD0D2 fcw CRLF ; output carriage-return, line feed
|
|
00FFF3C1 FFE3BF fcw DisplayString
|
|
00FFF3C3 FFE413 fcw DispByteAsHex
|
|
00FFF3C5 FFE40A fcw DispWordAsHex
|
|
00FFF3C7 FFED1C fcw ShowSprites
|
|
00FFF3C9 FFEDA0 fcw mon_srand
|
|
00FFF3CB FFEDCE fcw mon_rand
|
|
00FFF3CD 000000 fcw 0 ; operating system call
|
|
00FFF3CF FFEFC6 fcw GetRange
|
|
|
|
NumFuncs EQU (*-mon_rom_vectab)/2
|
|
|
|
;------------------------------------------------------------------------------
|
|
; SWI routine.
|
|
;
|
|
; SWI is used to call ROM monitor routines and process breakpoints.
|
|
;
|
|
; swi
|
|
; fcb
|
|
;------------------------------------------------------------------------------
|
|
|
|
swi_rout:
|
|
00FFF3D1 0E680CFDF ldb bootpg,pcr ; reset direct page
|
|
00FFF3D4 01F09B tfr b,dp
|
|
swi_rout1:
|
|
00FFF3D6 0EE60B ldu 11,s ; get program counter (low order 2 bytes)
|
|
00FFF3D8 0335FF leau -1,u ; backup a byte
|
|
00FFF3DA 07D000810 tst BreakpointFlag ; are we in breakpoint mode?
|
|
00FFF3DD 02700F beq swiNotBkpt
|
|
00FFF3DF 0CE000820 ldu #Breakpoints
|
|
00FFF3E2 0F6000811 ldb NumSetBreakpoints
|
|
00FFF3E5 027007 beq swiNotBkpt
|
|
swi_rout2:
|
|
00FFF3E7 2A3A01 cmpu ,y++
|
|
00FFF3E9 027033 beq processBreakpoint
|
|
00FFF3EB 05A decb
|
|
00FFF3EC 026FF9 bne swi_rout2
|
|
swiNotBkpt:
|
|
00FFF3EE 07F000810 clr BreakpointFlag
|
|
00FFF3F1 037006 pulu d ; get function #, increment PC
|
|
00FFF3F3 0C100D cmpb #NumFuncs
|
|
00FFF3F5 122FFFC5D lbhi DisplayErr
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF3F8 0EF60B stu 11,s ; save updated PC on stack
|
|
00FFF3FA 0C100A cmpb #MF_OSCALL
|
|
00FFF3FC 027056 beq swiCallOS
|
|
00FFF3FE 058 aslb ; 2 bytes per vector
|
|
00FFF3FF 0AE80CFB5 ldx mon_rom_vectab,pcr
|
|
00FFF402 03A abx
|
|
00FFF403 0AE804 ldx ,x
|
|
00FFF405 0BF000928 stx jmpvec
|
|
00FFF408 1FF000908 sts mon_SSAVE ; save the stack pointer
|
|
00FFF40B 0EC601 ldd 1,s ; get back D
|
|
00FFF40D 0AE604 ldx 4,s ; get back X
|
|
00FFF40F 1AE606 ldy 6,s ; get back Y
|
|
00FFF411 0EE608 ldu 8,s ; get back U
|
|
00FFF413 1EE80CF9E lds boot_stack,pcr ; and use our own stack
|
|
00FFF416 0AD90F000928 jsr [jmpvec] ; call the routine
|
|
swi_rout3:
|
|
00FFF41A 1FE000908 lds mon_SSAVE ; restore stack
|
|
00FFF41D 03B rti
|
|
|
|
processBreakpoint:
|
|
00FFF41E 0A6E04 lda ,s
|
|
00FFF420 0B700090F sta mon_CCRSAVE
|
|
00FFF423 0EC601 ldd 1,s
|
|
00FFF425 0FD000900 std mon_DSAVE
|
|
00FFF428 0E6603 ldb 3,s
|
|
00FFF42A 0F700090E stb mon_DPRSAVE
|
|
00FFF42D 0EC604 ldd 4,s
|
|
00FFF42F 0FD000902 std mon_XSAVE
|
|
00FFF432 0EC606 ldd 6,s
|
|
00FFF434 0FD000904 std mon_YSAVE
|
|
00FFF437 0EC608 ldd 8,s
|
|
00FFF439 0FD000906 std mon_USAVE
|
|
00FFF43C 1FF000908 sts mon_SSAVE
|
|
00FFF43F 0EC60B ldd 11,s
|
|
00FFF441 0FD00090A std mon_PCSAVE
|
|
00FFF444 1EE80CF6D lds boot_stack,pcr
|
|
00FFF447 0CCFFF41A ldd #swi_rout3 ; setup so monitor can return
|
|
00FFF44A 034006 pshs d
|
|
00FFF44C 08D020 bsr DisarmAllBreakpoints
|
|
00FFF44E 016FFFE7E lbra DumpRegs
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
|
xitMonitor:
|
|
00FFF451 08D03A bsr ArmAllBreakpoints
|
|
00FFF453 039 rts
|
|
|
|
swiCallOS:
|
|
00FFF454 033401 leau 1,u ; next byte is func number
|
|
00FFF456 0E6C00 ldb ,u+
|
|
00FFF458 0C1019 cmpb #NumOSFuncs ; check for valid range
|
|
00FFF45A 122FFFBF8 lbhi DisplayErr
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF45D 0EF60B stu 11,s ; save updateed PC on stack
|
|
00FFF45F 058 aslb ; compute vector address
|
|
00FFF460 08EFFED27 ldx #OSCallTbl
|
|
00FFF463 06DE0F tst b,x ; check for non-zero vector
|
|
00FFF465 027FB3 beq swi_rout3
|
|
osc1:
|
|
; tst OSSEMA+1 ; wait for availability
|
|
; beq osc1
|
|
00FFF467 0ADF0F jsr [b,x] ; call the OS routine
|
|
oscx:
|
|
00FFF469 07FEF0011 clr OSSEMA+1
|
|
00FFF46C 020FAC bra swi_rout3
|
|
|
|
DisarmAllBreakpoints:
|
|
00FFF46E 034036 pshs d,x,y
|
|
00FFF470 18E000000 ldy #0
|
|
00FFF473 05F clrb
|
|
00FFF474 08E000830 ldx #BreakpointBytes ; x = breakpoint byte table address
|
|
disarm2:
|
|
00FFF477 0C13B6 cmpb #numBreakpoints ; safety check
|
|
00FFF479 024010 bhs disarm1
|
|
00FFF47B 0F1000811 cmpb NumSetBreakpoints
|
|
00FFF47E 02400B bhs disarm1
|
|
00FFF480 0A6837 lda b,x ; get memory byte
|
|
00FFF482 0A7B09000820 sta [Breakpoints,y] ; and store it back to memory
|
|
00FFF486 031202 leay 2,y ; increment for next address
|
|
00FFF488 05C incb ; increment to next byte
|
|
00FFF489 020FEC bra disarm2 ; loop back
|
|
disarm1:
|
|
00FFF48B 0350B6 puls d,x,y,pc
|
|
|
|
ArmAllBreakpoints:
|
|
00FFF48D 034036 pshs d,x,y
|
|
00FFF48F 18E000000 ldy #0
|
|
00FFF492 05F clrb
|
|
00FFF493 08E000830 ldx #BreakpointBytes ; x = breakpoint byte table address
|
|
arm2:
|
|
00FFF496 0C13B6 cmpb #numBreakpoints ; safety check
|
|
00FFF498 024010 bhs arm1
|
|
00FFF49A 0F1000811 cmpb NumSetBreakpoints
|
|
00FFF49D 02400B bhs arm1
|
|
00FFF49F 0A6B09000820 lda [Breakpoints,y] ; load byte at memory address
|
|
00FFF4A3 0A7B0D sta b,x ; save in table
|
|
00FFF4A5 031202 leay 2,y ; increment for next address
|
|
00FFF4A7 05C incb ; increment to next byte
|
|
00FFF4A8 020FEC bra arm2 ; loop back
|
|
arm1:
|
|
00FFF4AA 0350B6 puls d,x,y,pc
|
|
|
|
ArmBreakpoint:
|
|
00FFF4AC 034036 pshs d,x,y
|
|
00FFF4AE 0B6000811 lda NumSetBreakpoints ; check if too many breakpoints set
|
|
00FFF4B1 0813B6 cmpa #numBreakpoints
|
|
00FFF4B3 124FFFB9F lbhs DisplayErr
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4B6 017FFFB36 lbsr GetHexNumber ; get address parameter
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4B9 0F6000811 ldb NumSetBreakpoints ; bv= number of set breakpoints
|
|
00FFF4BC 1BE000912 ldy mon_numwka+2 ; get address
|
|
00FFF4BF 0A6A04 lda ,y ; get byte at address
|
|
00FFF4C1 08E000830 ldx #BreakpointBytes ; and store byte in a table
|
|
00FFF4C4 0A7A05 sta b,x
|
|
00FFF4C6 08E000820 ldx #Breakpoints ; also store the address in a table
|
|
00FFF4C9 058 aslb ; index for 2 byte values
|
|
00FFF4CA 1AFA05 sty b,x
|
|
00FFF4CC 054 lsrb ; size back to single byte
|
|
00FFF4CD 05C incb
|
|
00FFF4CE 0F7000811 stb NumSetBreakpoints
|
|
00FFF4D1 0350B6 puls d,x,y,pc
|
|
|
|
DisarmBreakpoint:
|
|
00FFF4D3 034076 pshs d,x,y,u
|
|
00FFF4D5 017FFFB17 lbsr GetHexNumber
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
00FFF4D8 05F clrb
|
|
00FFF4D9 05F clrb
|
|
00FFF4DA 01F001 tfr d,x ; x = zero too
|
|
disarm6:
|
|
00FFF4DC 0C13B6 cmpb #numBreakpoints ; no more than this many may be set
|
|
00FFF4DE 02403F bhs disarm4
|
|
00FFF4E0 0F1000811 cmpb NumSetBreakpoints ; number actually set
|
|
00FFF4E3 02403A bhs disarm4
|
|
00FFF4E5 1AE809000820 ldy Breakpoints,x ; y = breakpoint address
|
|
00FFF4E9 1BC000912 cmpy mon_numwka+2 ; is it the one we want?
|
|
00FFF4EC 02602C bne disarm3 ; if not, go increment to next
|
|
00FFF4EE 0BE000912 ldx mon_numwka+2 ; x = memory address
|
|
00FFF4F1 18E000830 ldy #BreakpointBytes
|
|
00FFF4F4 0A6A0D lda b,y ; get saved byte from table
|
|
00FFF4F6 0A7804 sta ,x ; set the byte at the memory address
|
|
; compress breakpoint table by removing breakpoint
|
|
00FFF4F8 07A000811 dec NumSetBreakpoints ; set the new number of set breakpoints
|
|
00FFF4FB 034004 pshs b ; save the position we're removing from
|
|
disarm7:
|
|
00FFF4FD 05C incb ; set index for next byte
|
|
00FFF4FE 0A6A05 lda b,y ; get byte
|
|
00FFF500 05A decb ; and store it back
|
|
00FFF501 0A7A05 sta b,y
|
|
00FFF503 05C incb ; move to next position
|
|
00FFF504 0C13B6 cmpb #numBreakpoints ; hit end of table?
|
|
00FFF506 025FF5 blo disarm7
|
|
00FFF508 035004 puls b ; get back position
|
|
00FFF50A 058 aslb ; times two for word index
|
|
00FFF50B 04F clra
|
|
00FFF50C 01F002 tfr d,y
|
|
00FFF50E 054 lsrb ; back to byte index value
|
|
disarm8:
|
|
00FFF50F 0EE202 ldu 2,y ; get next breakpoint address
|
|
00FFF511 0EFA01 stu ,y++ ; store in current pos, increment
|
|
00FFF513 05C incb ; increment count
|
|
00FFF514 0C13B6 cmpb #numBreakpoints ; hit end of table?
|
|
00FFF516 025FF7 blo disarm8
|
|
00FFF518 0350F6 puls d,x,y,u,pc
|
|
disarm3:
|
|
00FFF51A 030002 leax 2,x
|
|
00FFF51C 05C incb
|
|
00FFF51D 020FBD bra disarm6
|
|
disarm4:
|
|
00FFF51F 0350F6 puls d,x,y,u,pc
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
swi3_rout:
|
swi3_rout:
|
00FFFDC8 01A010 sei
|
00FFF521 01A010 sei
|
00FFFDCA 035002 puls a
|
00FFF523 0A6E04 lda ,s
|
00FFFDCC 0B700090F sta mon_CCRSAVE
|
00FFF525 0B700090F sta mon_CCRSAVE
|
00FFFDCF 03507E puls D,DPR,X,Y,U
|
00FFF528 0EC601 ldd 1,s
|
00FFFDD1 0FD000900 std mon_DSAVE
|
00FFF52A 0FD000900 std mon_DSAVE
|
00FFFDD4 0BF000902 stx mon_XSAVE
|
00FFF52D 0E6603 ldb 3,s
|
00FFFDD7 1BF000904 sty mon_YSAVE
|
00FFF52F 0F700090E stb mon_DPRSAVE
|
00FFFDDA 0FF000906 stu mon_USAVE
|
00FFF532 0EC604 ldd 4,s
|
00FFFDDD 01F0B8 tfr dpr,a
|
00FFF534 0FD000902 std mon_XSAVE
|
00FFFDDF 0B700090E sta mon_DPRSAVE
|
00FFF537 0EC606 ldd 6,s
|
00FFFDE2 035002 puls a
|
00FFF539 0FD000904 std mon_YSAVE
|
00FFFDE4 0B700090A sta mon_PCSAVE
|
00FFF53C 0EC608 ldd 8,s
|
00FFFDE7 035006 puls D
|
00FFF53E 0FD000906 std mon_USAVE
|
00FFFDE9 0FD00090B std mon_PCSAVE+1
|
00FFF541 1FF000908 sts mon_SSAVE
|
00FFFDEC 1FF000908 sts mon_SSAVE
|
00FFF544 0EC60B ldd 11,s
|
00FFFDEF 1CE003FFF lds #$3FFF
|
00FFF546 0FD00090A std mon_PCSAVE
|
00FFFDF2 01C0EF cli
|
00FFF549 1FF000908 sts mon_SSAVE
|
00FFFDF4 07EFFFCE4 jmp DumpRegs
|
00FFF54C 1CE003FFF lds #$3FFF
|
|
00FFF54F 0CCFFF559 ldd #swi3_exit
|
|
00FFF552 034006 pshs d
|
|
00FFF554 01C0EF cli
|
|
00FFF556 07EFFF2CF jmp DumpRegs
|
swi3_exit:
|
swi3_exit:
|
00FFFDF7 01A010 sei
|
00FFF559 1FE000908 lds mon_SSAVE
|
00FFFDF9 1FE000908 lds mon_SSAVE
|
00FFF55C 03B rti
|
00FFFDFC 0FC00090B ldd mon_PCSAVE+1
|
|
00FFFDFF 034006 pshs d
|
|
00FFFE01 0B600090A lda mon_PCSAVE
|
|
00FFFE04 034002 pshs a
|
|
00FFFE06 0FE000906 ldu mon_USAVE
|
|
00FFFE09 1BE000904 ldy mon_YSAVE
|
|
00FFFE0C 0BE000902 ldx mon_XSAVE
|
|
00FFFE0F 034070 pshs x,y,u
|
|
00FFFE11 0B600090E lda mon_DPRSAVE
|
|
00FFFE14 034002 pshs a
|
|
00FFFE16 0FC000900 ldd mon_DSAVE
|
|
00FFFE19 034006 pshs d
|
|
00FFFE1B 0B600090F lda mon_CCRSAVE
|
|
00FFFE1E 034002 pshs a
|
|
00FFFE20 01F08A tfr a,ccr
|
|
00FFFE22 01C0EF cli
|
|
00FFFE24 03B rti
|
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
firq_rout:
|
firq_rout:
|
00FFFE25 03B rti
|
00FFF55D 03B rti
|
|
|
irq_rout:
|
irq_rout:
|
; lbsr SerialIRQ ; check for recieved character
|
; lbsr SerialIRQ ; check for recieved character
|
; lbsr TimerIRQ
|
00FFF55E 017FFEF0B lbsr TimerIRQ
|
|
*** warning 1: Long branch within short branch range could be optimized
|
|
|
; Reset the edge sense circuit in the PIC
|
; Reset the edge sense circuit in the PIC
|
00FFFE26 08601F lda #31 ; Timer is IRQ #31
|
; lda #31 ; Timer is IRQ #31
|
00FFFE28 0B7FF0011 sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
|
; sta IrqSource ; stuff a byte indicating the IRQ source for PEEK()
|
00FFFE2B 0150B7FFFE3F010 sta PIC+16 ; register 16 is edge sense reset reg
|
; sta PIC+16 ; register 16 is edge sense reset reg
|
00FFFE30 0150B6FFFE6000D lda VIA+VIA_IFR
|
; lda VIA+VIA_IFR
|
00FFFE35 02A011 bpl notTimerIRQ2
|
; bpl notTimerIRQ2
|
00FFFE37 085800 bita #$800
|
; bita #$800
|
00FFFE39 02700D beq notTimerIRQ2
|
; beq notTimerIRQ2
|
00FFFE3B 01507FFFFE60012 clr VIA+VIA_T3LL
|
; clr VIA+VIA_T3LL
|
00FFFE40 01507FFFFE60013 clr VIA+VIA_T3LH
|
; clr VIA+VIA_T3LH
|
00FFFE45 07CE00037 inc $E00037 ; update timer IRQ screen flag
|
; inc $E00037 ; update timer IRQ screen flag
|
notTimerIRQ2:
|
;notTimerIRQ2:
|
|
|
00FFFE48 0B6FF0014 lda IrqBase ; get the IRQ flag byte
|
00FFF561 0B6FFC014 lda IrqBase ; get the IRQ flag byte
|
00FFFE4B 044 lsra
|
00FFF564 044 lsra
|
00FFFE4C 0BAFF0014 ora IrqBase
|
00FFF565 0BAFFC014 ora IrqBase
|
00FFFE4F 0840E0 anda #$E0
|
00FFF568 084FE0 anda #$FE0
|
00FFFE51 0B7FF0014 sta IrqBase
|
00FFF56A 0B7FFC014 sta IrqBase
|
|
|
; inc TEXTSCR+54 ; update IRQ live indicator on screen
|
; inc TEXTSCR+54 ; update IRQ live indicator on screen
|
|
|
; flash the cursor
|
; flash the cursor
|
; only bother to flash the cursor for the task with the IO focus.
|
; only bother to flash the cursor for the task with the IO focus.
|
Line 4753... |
Line 4043... |
; rola
|
; rola
|
; lsrb
|
; lsrb
|
; rola
|
; rola
|
; sta $E00000,y ; store the color code back to memory
|
; sta $E00000,y ; store the color code back to memory
|
tr1a:
|
tr1a:
|
00FFFE54 03B rti
|
00FFF56D 03B rti
|
|
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
nmi_rout:
|
nmi_rout:
|
00FFFE55 0150F6FFFFFFFE0 ldb COREID
|
00FFF56E 0150F6FFFFFFFE0 ldb COREID
|
00FFFE5A 086049 lda #'I'
|
00FFF573 086049 lda #'I'
|
00FFFE5C 08EE00028 ldx #TEXTSCR+40
|
00FFF575 08EE00028 ldx #TEXTSCR+40
|
00FFFE5F 0A788F sta b,x
|
00FFF578 0A7807 sta b,x
|
rti_insn:
|
rti_insn:
|
00FFFE61 03B rti
|
00FFF57A 03B rti
|
|
|
; Special Register Area
|
; Special Register Area
|
org $FFFFE0
|
org $FFFFE0
|
|
|
; Interrupt vector table
|
; Interrupt vector table
|
|
|
org $FFFFF0
|
org $FFFFF0
|
00FFFFF0 FFFE61 fcw rti_insn ; reserved
|
00FFFFF0 FFF57A fcw rti_insn ; reserved
|
00FFFFF2 FFFDC8 fcw swi3_rout ; SWI3
|
00FFFFF2 FFF521 fcw swi3_rout ; SWI3
|
00FFFFF4 FFFE61 fcw rti_insn ; SWI2
|
00FFFFF4 FFF57A fcw rti_insn ; SWI2
|
00FFFFF6 FFFE25 fcw firq_rout ; FIRQ
|
00FFFFF6 FFF55D fcw firq_rout ; FIRQ
|
00FFFFF8 FFFE26 fcw irq_rout ; IRQ
|
00FFFFF8 FFF55E fcw irq_rout ; IRQ
|
00FFFFFA FFE023 fcw start ; SWI
|
00FFFFFA FFF3D1 fcw swi_rout ; SWI
|
00FFFFFC FFFE55 fcw nmi_rout ; NMI
|
00FFFFFC FFF56E fcw nmi_rout ; NMI
|
00FFFFFE FFE023 fcw start ; RST
|
00FFFFFE FFE023 fcw start ; RST
|
|
|
192 warning(s) in pass 2.
|
66 warning(s) in pass 2.
|
|
|
SYMBOL TABLE
|
SYMBOL TABLE
|
ACIA 00 FFE30100 ACIA_CMD 00 00000002 ACIA_CTRL 00 00000003 ACIA_CTRL2 00 0000000B
|
ACIA 00 FFE30100 ACIA_CMD 00 00000002 ACIA_CTRL 00 00000003 ACIA_CTRL2 00 0000000B
|
ACIA_RX 00 00000000 ACIA_STAT 00 00000001 ACIA_TX 00 00000000 ASCIITODECNYBBLE 02 00FFFAE7
|
ACIA_RX 00 00000000 ACIA_STAT 00 00000001 ACIA_TX 00 00000000 ARM1 02 00FFF4AA
|
ASCIITOHEXNYBBLE 02 00FFFABF ASMBUF 00 00000160 ASMO 02 00FFF8BC ASMOO 02 00FFF8C6
|
ARM2 02 00FFF496 ARMALLBREAKPOINTS 02 00FFF48D ARMBREAKPOINT 02 00FFF4AC ASCIITODECNYBBLE 02 00FFF047
|
ASMOUTCH 02 00FFF8D0 BIOS_SCREENS 00 17000000 BLANKLINE 02 00FFE26C BLKCPYDST 00 00000020
|
ASCIITOHEXNYBBLE 02 00FFF01F ASMBUF 00 00000160 BIOS_SCREENS 00 17000000 BLANKLINE 02 00FFE275
|
BLKCPYSRC 00 0000001C BLNKLN1 02 00FFE27F CALCSCREENLOC 02 00FFE2D2 CHARCOLOR 00 00000112
|
BLKCPYDST 00 00000020 BLKCPYSRC 00 0000001C BLNKLN1 02 00FFE288 BOOTPG 02 00FFF3B3
|
CHARINVEC 00 00000804 CHAROUTVEC 00 00000800 CHECKPOINT 02 00FFE129 CLEARSCREEN 02 00FFE225
|
BOOT_STACK 02 00FFF3B4 BREAKPOINTBYTES 00 00000830 BREAKPOINTFLAG 00 00000810 BREAKPOINTS 00 00000820
|
CLEARSCREENJMP 02 00FFD300 CMDPROMPT 02 00FFF8E0 CMDPROMPTJI 00 00000808 COLORCODELOCATION 00 00000014
|
CALCSCREENLOC 02 00FFE2DB CHARCOLOR 00 00000112 CHARINVEC 00 00000804 CHAROUTVEC 00 00000800
|
COPYSCREENTOVIRTUALSCREEN 02 00FFE1F5 COPYVIRTUALSCREENTOSCREEN 02 00FFE1BE COREID 00 FFFFFFE0 CR 00 0000000D
|
CHECKPOINT 02 00FFE132 CLEARSCREEN 02 00FFE22E CLEARSCREENJMP 02 00FFD300 CMDPROMPT 02 00FFEE30
|
CRLF 02 00FFD0D2 CRLF1 02 00FFD0D2 CRLFST 02 00FFE3F5 CS1 02 00FFE232
|
CMDPROMPTJI 00 00000808 CMDTABLE1 02 00FFEDE3 CMDTABLE2 02 00FFEE0E COLORCODELOCATION 00 00000014
|
CS2 02 00FFE249 CS2V1 02 00FFE201 CS3 02 00FFE24F CSL1 02 00FFE2ED
|
COLS 00 00000040 COPYSCREENTOVIRTUALSCREEN 02 00FFE1FE COPYVIRTUALSCREENTOSCREEN 02 00FFE1C7 COREID 00 FFFFFFE0
|
CTRLC 00 00000003 CTRLH 00 00000008 CTRLI 00 00000009 CTRLJ 00 0000000A
|
CR 00 0000000D CRLF 02 00FFD0D2 CRLF1 02 00FFD0D2 CRLFST 02 00FFE3FE
|
CTRLK 00 0000000B CTRLM 00 0000000D CTRLS 00 00000013 CTRLT 00 00000014
|
CS1 02 00FFE23B CS2 02 00FFE252 CS2V1 02 00FFE20A CS3 02 00FFE258
|
CTRLX 00 00000018 CURSORCOL 00 00000111 CURSORFLASH 00 00000114 CURSORROW 00 00000110
|
CSL1 02 00FFE2F6 CTRLC 00 00000003 CTRLH 00 00000008 CTRLI 00 00000009
|
CV2S1 02 00FFE1D3 DAB1 02 00FFF8DF DAB2 02 00FFF8D6 DBGCHECKFORKEY 02 00FFEA10
|
CTRLJ 00 0000000A CTRLK 00 0000000B CTRLM 00 0000000D CTRLS 00 00000013
|
DBGK1 02 00FFEA4B DBGK10 02 00FFEAB0 DBGK11 02 00FFEB09 DBGK12 02 00FFEB0F
|
CTRLT 00 00000014 CTRLX 00 00000018 CURSORCOL 00 00000111 CURSORFLASH 00 00000114
|
DBGK13 02 00FFEB1B DBGK14 02 00FFEB2B DBGK15 02 00FFEB3A DBGK16 02 00FFEB45
|
CURSORROW 00 00000110 CV2S1 02 00FFE1DC DBGCHECKFORKEY 02 00FFEA10 DBGK1 02 00FFEA4B
|
DBGK17 02 00FFEB4E DBGK18 02 00FFEB51 DBGK2 02 00FFEA16 DBGK20 02 00FFEA38
|
DBGK10 02 00FFEAB0 DBGK11 02 00FFEB09 DBGK12 02 00FFEB0F DBGK13 02 00FFEB1B
|
DBGK22 02 00FFEA54 DBGK23 02 00FFEA65 DBGK24 02 00FFEA46 DBGK3 02 00FFEA68
|
DBGK14 02 00FFEB2B DBGK15 02 00FFEB3A DBGK16 02 00FFEB45 DBGK17 02 00FFEB4E
|
DBGK4 02 00FFEA74 DBGK5 02 00FFEA80 DBGK7 02 00FFEA90 DBGK8 02 00FFEA96
|
DBGK18 02 00FFEB51 DBGK2 02 00FFEA16 DBGK20 02 00FFEA38 DBGK22 02 00FFEA54
|
DBGK9 02 00FFEAAA DBGKNOTALT 02 00FFEB13 DBGKNOTCAPSLOCK 02 00FFEAE2 DBGKNOTCTRL 02 00FFEA9A
|
DBGK23 02 00FFEA65 DBGK24 02 00FFEA46 DBGK3 02 00FFEA68 DBGK4 02 00FFEA74
|
DBGKNOTNUMLOCK 02 00FFEACB DBGKNOTRSHIFT 02 00FFEAB4 DBGKNOTSCROLLLOCK 02 00FFEAF9 DCCR 02 00FFE305
|
DBGK5 02 00FFEA80 DBGK7 02 00FFEA90 DBGK8 02 00FFEA96 DBGK9 02 00FFEAAA
|
DCLF 02 00FFE38F DCX10 02 00FFE33F DCX11 02 00FFE34F DCX12 02 00FFE34B
|
DBGKNOTALT 02 00FFEB13 DBGKNOTCAPSLOCK 02 00FFEAE2 DBGKNOTCTRL 02 00FFEA9A DBGKNOTNUMLOCK 02 00FFEACB
|
DCX13 02 00FFE35B DCX14 02 00FFE302 DCX3 02 00FFE37D DCX4 02 00FFE391
|
DBGKNOTRSHIFT 02 00FFEAB4 DBGKNOTSCROLLLOCK 02 00FFEAF9 DCCR 02 00FFE30E DCLF 02 00FFE398
|
DCX5 02 00FFE36C DCX6 02 00FFE316 DCX7 02 00FFE312 DCX8 02 00FFE323
|
DCX10 02 00FFE348 DCX11 02 00FFE358 DCX12 02 00FFE354 DCX13 02 00FFE364
|
DCX9 02 00FFE330 DELAY3S 02 00FFE1A1 DFL1 02 00FFFDBB DFL2 02 00FFFDA8
|
DCX14 02 00FFE30B DCX3 02 00FFE386 DCX4 02 00FFE39A DCX5 02 00FFE375
|
DIRECT 00 00000001 DIS1 02 00FFF7EF DIS10 02 00FFF572 DIS11 02 00FFF5AE
|
DCX6 02 00FFE31F DCX7 02 00FFE31B DCX8 02 00FFE32C DCX9 02 00FFE339
|
DIS12 02 00FFF5EB DIS13 02 00FFF627 DIS14 02 00FFF668 DIS15 02 00FFF6A4
|
DELAY3S 02 00FFE1AA DFL1 02 00FFF3A6 DFL2 02 00FFF393 DISARM1 02 00FFF48B
|
DIS16 02 00FFF6E1 DIS17 02 00FFF724 DIS18 02 00FFF76C DIS19 02 00FFF81B
|
DISARM2 02 00FFF477 DISARM3 02 00FFF51A DISARM4 02 00FFF51F DISARM6 02 00FFF4DC
|
DIS2 02 00FFF411 DIS20 02 00FFF3DA DIS21 02 00FFF40F DIS23 02 00FFF3DD
|
DISARM7 02 00FFF4FD DISARM8 02 00FFF50F DISARMALLBREAKPOINTS 02 00FFF46E DISARMBREAKPOINT 02 00FFF4D3
|
DIS24 02 00FFF81E DIS25 02 00FFF82B DIS3 02 00FFF43A DIS30 02 00FFF7BA
|
DISPBYTEASHEX 02 00FFE413 DISPDWORDASHEX 02 00FFE401 DISPLAYCHAR 02 00FFE2FE DISPLAYERR 02 00FFF055
|
DIS4 02 00FFF457 DIS5 02 00FFF468 DIS6 02 00FFF49C DIS7 02 00FFF4D3
|
DISPLAYSTRING 02 00FFE3BF DISPLAYSTRINGCRLF 02 00FFE3D6 DISPLAYSTRINGDX 02 00FFF05E DISPNYB 02 00FFE42B
|
DIS8 02 00FFF507 DIS9 02 00FFF53E DISASSEM 02 00FFF3B4 DISLOOP1 02 00FFF3BF
|
DISPNYB1 02 00FFE43A DISPWORDASHEX 02 00FFE40A DLY3S1 02 00FFE1AD DLY3S2 02 00FFE1B1
|
DISNDXREG 02 00FFF874 DISNDXREGS 02 00FFF850 DISNEXTLINE 02 00FFF842 DISNOT9 02 00FFF44C
|
DMPM1 02 00FFF226 DMPM2 02 00FFF211 DMPM3 02 00FFF25F DMPM4 02 00FFF251
|
DISNOTAOFFS 02 00FFF5D6 DISNOTBO 02 00FFF613 DISNOTBOFFS 02 00FFF59A DISNOTDIRECT 02 00FFF40B
|
DMPM5 02 00FFF249 DRAMERR 02 00FFD48F DRAMTEST 02 00FFD443 DRAMTEST1 02 00FFD453
|
DISNOTDOFFS 02 00FFF6CC DISNOTEXT 02 00FFF7C4 DISNOTIMMB 02 00FFF7D5 DISNOTIMMW 02 00FFF7E5
|
DRAMTEST3 02 00FFD46F DRAMTEST4 02 00FFD460 DRAMTEST5 02 00FFD47C DRAM_BASE 00 10000000
|
DISNOTLREL 02 00FFF41B DISNOTNDX 02 00FFF7AD DISNOTPBO 02 00FFF710 DISNOTPTO 02 00FFF79B
|
DSPJ1B 02 00FFE3C8 DSPJ2 02 00FFE3C3 DSRETB 02 00FFE3D1 DUMPIOFOCUSLIST 02 00FFF390
|
DISNOTPWO 02 00FFF753 DISNOTR 02 00FFF55E DISNOTREL 02 00FFF424 DISNOTRMINUS 02 00FFF4F8
|
DUMPMEMORY 02 00FFF209 DUMPREGS 02 00FFF2CF DUMRTS 02 00FFE022 EDITMEM1 02 00FFF283
|
DISNOTRMINUSMINUS 02 00FFF52F DISNOTRPLUS 02 00FFF48D DISNOTRPLUSPLUS 02 00FFF4C4 DISNOTTFR 02 00FFF7EF
|
EDITMEM2 02 00FFF26E EDITMEM3 02 00FFF2A2 EDITMEM4 02 00FFF28D EDITMEM6 02 00FFF299
|
DISNOTTO 02 00FFF690 DISNOTWO 02 00FFF64F DISPBYTEASHEX 02 00FFE40A DISPDWORDASHEX 02 00FFE3F8
|
EDITMEMORY 02 00FFF265 ENDOFWORD 02 00FFEF06 FARFLAG 00 0000015F FILLM1 02 00FFF2B5
|
DISPLAYCHAR 02 00FFE2F5 DISPLAYERR 02 00FFFAF5 DISPLAYSTRING 02 00FFE3B6 DISPLAYSTRINGCRLF 02 00FFE3CD
|
FILLM2 02 00FFF2C5 FILLM3 02 00FFF2CC FILLMEMORY 02 00FFF2A5 FIRQ_ROUT 02 00FFF55D
|
DISPLAYSTRINGDX 02 00FFFAFE DISPNYB 02 00FFE422 DISPNYB1 02 00FFE431 DISPWORDASHEX 02 00FFE401
|
FIRST_CORE 00 00000001 FREEMBX 02 00000002 FREEMSG 02 00000006 FREETCB 00 0000078A
|
DISTBL1 02 00FFEDB4 DISTBL2 02 00FFF2B4 DISTBL3 02 00FFF2F4 DISTBL4 02 00FFF314
|
GETHEXNUMBER 02 00FFEFEF GETKEY 02 00FFEA12 GETRANGE 02 00FFEFC6 GETSCREENLOCATION 02 00FFE28F
|
DISTFR1 02 00FFF8A3 DISTFREXG 02 00FFF8A5 DISTFRREG 02 00FFF889 DISTFRREGS 02 00FFF854
|
GETTWOPARAMS 02 00FFEFA5 GRNG1 02 00FFEFE1 GSL1 02 00FFE29D GTDC3 02 00FFF052
|
DLY3S1 02 00FFE1A4 DLY3S2 02 00FFE1A8 DMPM1 02 00FFFC65 DMPM2 02 00FFFC50
|
GTHX3 02 00FFF044 GTHX5 02 00FFF02A GTHX6 02 00FFF037 GTHXN1 02 00FFF01B
|
DMPM3 02 00FFFC9E DMPM4 02 00FFFC90 DMPM5 02 00FFFC88 DRAM_BASE 00 10000000
|
GTHXN2 02 00FFEFFC HC1 02 00FFE2B7 HELPMSG 02 00FFF06E HEX2 02 00FFD2CE
|
DSPJ1B 02 00FFE3BF DSPJ2 02 00FFE3BA DSRETB 02 00FFE3C8 DUMPASMBUF 02 00FFF8D3
|
HEX4 02 00FFD2D2 HOMECURSOR 02 00FFE2A1 HOMECURSORJMP 02 00FFD308 I2CW1 02 00FFE49B
|
DUMPIOFOCUSLIST 02 00FFFDA5 DUMPMEMORY 02 00FFFC48 DUMPREGS 02 00FFFCE4 DUMRTS 02 00FFE022
|
I2CWR1 02 00FFE4C8 I2C_CMD 00 00000004 I2C_CTRL 00 00000002 I2C_INIT 02 00FFE48F
|
EDITMEM1 02 00FFFCC2 EDITMEM2 02 00FFFCAD EDITMEM3 02 00FFFCE1 EDITMEM4 02 00FFFCCC
|
I2C_PREH 00 00000001 I2C_PREL 00 00000000 I2C_RXR 00 00000003 I2C_STAT 00 00000004
|
EDITMEM6 02 00FFFCD8 EDITMEMORY 02 00FFFCA4 EXT 00 00000006 FAREXT 00 00000008
|
I2C_TXR 00 00000003 I2C_WAIT_RX_NACK 02 00FFE4C6 I2C_WAIT_TIP 02 00FFE499 I2C_WR_CMD 02 00FFE4A3
|
FARFLAG 00 0000015F FIRQ_ROUT 02 00FFFE25 FIRST_CORE 00 00000001 FREEMBX 02 00000002
|
I2C_XMIT1 02 00FFE4AC ICC1 02 00FFE3BB ICC2 02 00FFE3BD ICR1 02 00FFE3AD
|
FREEMSG 02 00000006 FREETCB 00 0000078A GETHEXNUMBER 02 00FFFA8F GETKEY 02 00FFEA12
|
IGNBLANKS 02 00FFEF53 IGNBLANKS1 02 00FFEF53 INCCURSORPOS 02 00FFE39C INCCURSORROW 02 00FFE3AB
|
GETRANGE 02 00FFFA66 GETSCREENLOCATION 02 00FFE286 GETTWOPARAMS 02 00FFFA45 GRNG1 02 00FFFA81
|
INCH 02 00FFECDA INCH1 02 00FFECEF INCH2 02 00FFECDC INCHE 02 00FFECF8
|
GSL1 02 00FFE294 GTDC3 02 00FFFAF2 GTHX3 02 00FFFAE4 GTHX5 02 00FFFACA
|
INCHEK 02 00FFECFC INCHEK1 02 00FFED11 INCHEK2 02 00FFED0E INCHEK3 02 00FFED05
|
GTHX6 02 00FFFAD7 GTHXN1 02 00FFFABB GTHXN2 02 00FFFA9C HC1 02 00FFE2AE
|
INIT 02 00FFE09E INIT1 02 00FFE0A6 INITSERIAL 02 00FFEB6F IOFOCUSID 00 00FFC010
|
HELPMSG 02 00FFFB0E HEX2 02 00FFD2CE HEX4 02 00FFD2D2 HOMECURSOR 02 00FFE298
|
IOFOCUSLIST 00 00FFC000 IOFOCUSNDX 00 00000100 IRQBASE 00 00FFC014 IRQFLAG 00 00FFC012
|
HOMECURSORJMP 02 00FFD308 I2CW1 02 00FFE492 I2CWR1 02 00FFE4BF I2C_CMD 00 00000004
|
IRQSOURCE 00 00FFC011 IRQ_ROUT 02 00FFF55E JMPVEC 00 00000928 JTC_EXIT 02 00FFF355
|
I2C_CTRL 00 00000002 I2C_PREH 00 00000001 I2C_PREL 00 00000000 I2C_RXR 00 00000003
|
JUMP_TO_CODE 02 00FFF31A KBDBUFFULL 02 00FFEA0D KBDFIFO 00 00000040 KBDFIFOALIAS 00 00C00040
|
I2C_STAT 00 00000004 I2C_TXR 00 00000003 I2C_WAIT_RX_NACK 02 00FFE4BD I2C_WAIT_TIP 02 00FFE490
|
KBDHEADRCV 00 00000127 KBDI0002 02 00FFE949 KBDI0004 02 00FFE98E KBDITRYAGAIN 02 00FFE982
|
I2C_WR_CMD 02 00FFE49A ICC1 02 00FFE3B2 ICC2 02 00FFE3B4 ICR1 02 00FFE3A4
|
KBDRCVCOUNT 02 00FFE9BD KBDTAILRCV 00 00000128 KBGS1 02 00FFE8F8 KBGS2 02 00FFE8F0
|
IGNBLANKS 02 00FFFA3C IGNBLANKS1 02 00FFFA3C IMMB 00 00000003 IMMW 00 00000007
|
KBGS3 02 00FFE8E1 KEYBD 00 FFE30400 KEYBDACK 00 FFFFCC00 KEYBDBAD 00 FFFFCB00
|
INCCURSORPOS 02 00FFE393 INCCURSORROW 02 00FFE3A2 INCH 02 00FFECDA INCH1 02 00FFECEF
|
KEYBDBLOCK 00 00000126 KEYBDBUFFER 00 FFFFC000 KEYBDCHECKFORKEYDIRECT 02 00FFECD8 KEYBDCLOSE 02 00FFEB6B
|
INCH2 02 00FFECDC INCHE 02 00FFECF8 INCHEK 02 00FFECFC INCHEK1 02 00FFED11
|
KEYBDCLR 00 FFE30402 KEYBDCONTROLCODES 02 00FFE780 KEYBDECHO 00 FFFFCA00 KEYBDEXTENDEDCODES 02 00FFE800
|
INCHEK2 02 00FFED0E INCHEK3 02 00FFED05 INIT 02 00FFE09A INIT1 02 00FFE0A2
|
KEYBDGETID 02 00FFE91C KEYBDGETSCANCODE 02 00FFE8FD KEYBDGETSTATUS 02 00FFE8E1 KEYBDHEAD 00 FFFFC800
|
INITSERIAL 02 00FFEB6F IOFOCUSID 00 00FF0010 IOFOCUSLIST 00 00FF0000 IOFOCUSNDX 00 00000100
|
KEYBDID 00 00000124 KEYBDINIT 02 00FFE940 KEYBDIRQ 02 00FFE9CF KEYBDLOCKS 00 FFFFCD00
|
IRQBASE 00 00FF0014 IRQFLAG 00 00FF0012 IRQSOURCE 00 00FF0011 IRQ_ROUT 02 00FFFE26
|
KEYBDOPEN 02 00FFEB6A KEYBDREAD 02 00FFEB6C KEYBDRECVBYTE 02 00FFE880 KEYBDSEEK 02 00FFEB6E
|
JTC_EXIT 02 00FFFD6A JUMP_TO_CODE 02 00FFFD2F KBDBUFFULL 02 00FFEA0D KBDFIFO 00 00000040
|
KEYBDSENDBYTE 02 00FFE899 KEYBDSETLED 02 00FFE909 KEYBDTAIL 00 FFFFC900 KEYBDWAITTX 02 00FFE89F
|
KBDFIFOALIAS 00 00C00040 KBDHEADRCV 00 00000127 KBDI0002 02 00FFE949 KBDI0004 02 00FFE98E
|
KEYBDWRITE 02 00FFEB6D KEYLED 00 00000122 KEYSTATE1 00 00000120 KEYSTATE2 00 00000121
|
KBDITRYAGAIN 02 00FFE982 KBDRCVCOUNT 02 00FFE9BD KBDTAILRCV 00 00000128 KBGS1 02 00FFE8F8
|
KGID1 02 00FFE939 KGNOTKBD 02 00FFE93C KRB3 02 00FFE885 KRB4 02 00FFE895
|
KBGS2 02 00FFE8F0 KBGS3 02 00FFE8E1 KEYBD 00 FFE30400 KEYBDACK 00 FFFFCC00
|
KRCXIT 02 00FFE9CE KWT1 02 00FFE8A4 KWT2 02 00FFE8B5 LEDS 00 FFE60001
|
KEYBDBAD 00 FFFFCB00 KEYBDBLOCK 00 00000126 KEYBDBUFFER 00 FFFFC000 KEYBDCHECKFORKEYDIRECT 02 00FFECD8
|
LEDXIT 02 00FFE9A2 LETTER 02 00FFD2C1 LF 00 0000000A MAX_TASKNO 00 0000003F
|
KEYBDCLOSE 02 00FFEB6B KEYBDCLR 00 FFE30402 KEYBDCONTROLCODES 02 00FFE780 KEYBDECHO 00 FFFFCA00
|
MF_CRLF 00 00000003 MF_DISPLAYBYTEASHEX 00 00000005 MF_DISPLAYSTRING 00 00000004 MF_DISPLAYWORDASHEX 00 00000006
|
KEYBDEXTENDEDCODES 02 00FFE800 KEYBDGETID 02 00FFE91C KEYBDGETSCANCODE 02 00FFE8FD KEYBDGETSTATUS 02 00FFE8E1
|
MF_GETRANGE 00 0000000B MF_INCH 00 00000001 MF_MONITOR 00 00000000 MF_OSCALL 00 0000000A
|
KEYBDHEAD 00 FFFFC800 KEYBDID 00 00000124 KEYBDINIT 02 00FFE940 KEYBDIRQ 02 00FFE9CF
|
MF_OUTCH 00 00000002 MF_RANDOM 00 00000009 MF_SHOWSPRITES 00 00000007 MF_SRAND 00 00000008
|
KEYBDLOCKS 00 FFFFCD00 KEYBDOPEN 02 00FFEB6A KEYBDREAD 02 00FFEB6C KEYBDRECVBYTE 02 00FFE880
|
MONERRVEC 00 0000080C MONGETCH 02 00FFEF47 MONGETNONSPACE 02 00FFEF4C MONITOR 02 00FFEEA7
|
KEYBDSEEK 02 00FFEB6E KEYBDSENDBYTE 02 00FFE899 KEYBDSETLED 02 00FFE909 KEYBDTAIL 00 FFFFC900
|
MONITORSTART 02 00FFEE60 MON_CCRSAVE 00 0000090F MON_DPRSAVE 00 0000090E MON_DSAVE 00 00000900
|
KEYBDWAITTX 02 00FFE89F KEYBDWRITE 02 00FFEB6D KEYLED 00 00000122 KEYSTATE1 00 00000120
|
MON_NUMWKA 00 00000910 MON_PCSAVE 00 0000090A MON_R1 00 00000920 MON_R2 00 00000924
|
KEYSTATE2 00 00000121 KGID1 02 00FFE939 KGNOTKBD 02 00FFE93C KRB3 02 00FFE885
|
MON_RAND 02 00FFEDCE MON_ROM_VECS 02 00FFF3B9 MON_ROM_VECTAB 02 00FFF3B7 MON_SRAND 02 00FFEDA0
|
KRB4 02 00FFE895 KRCXIT 02 00FFE9CE KWT1 02 00FFE8A4 KWT2 02 00FFE8B5
|
MON_SRAND1 02 00FFEDA3 MON_SSAVE 00 00000908 MON_USAVE 00 00000906 MON_VECTB 00 00000880
|
LEDS 00 FFE60001 LEDXIT 02 00FFE9A2 LETTER 02 00FFD2C1 LF 00 0000000A
|
|
LSREL 00 00000002 MAX_TASKNO 00 0000003F MONERRVEC 00 0000080C MONGETCH 02 00FFFA30
|
|
MONGETNONSPACE 02 00FFFA35 MONITOR 02 00FFF92E MONITORSTART 02 00FFF910 MON_CCRSAVE 00 0000090F
|
|
MON_DPRSAVE 00 0000090E MON_DSAVE 00 00000900 MON_NUMWKA 00 00000910 MON_PCSAVE 00 0000090A
|
|
MON_R1 00 00000920 MON_R2 00 00000924 MON_SSAVE 00 00000908 MON_USAVE 00 00000906
|
|
MON_XSAVE 00 00000902 MON_YSAVE 00 00000904 MSCOUNT 00 FFFFFFE4 MSGBADKEYBD 02 00FFE9AE
|
MON_XSAVE 00 00000902 MON_YSAVE 00 00000904 MSCOUNT 00 FFFFFFE4 MSGBADKEYBD 02 00FFE9AE
|
MSGERR 02 00FFFB06 MSGF09STARTING 02 00FFF8EB MSGREGHEADINGS 02 00FFFC05 MSGSERIALTEST 02 00FFECC5
|
MSGERR 02 00FFF066 MSGF09STARTING 02 00FFEE3B MSGREGHEADINGS 02 00FFF1C6 MSGSERIALTEST 02 00FFECC5
|
MSGSTARTUP 02 00FFE108 MULTI_SIEVE 02 00FFE13F MULTI_SIEVE1 02 00FFE162 MULTI_SIEVE2 02 00FFE15E
|
MSGSTARTUP 02 00FFE111 MULTI_SIEVE 02 00FFE148 MULTI_SIEVE1 02 00FFE16B MULTI_SIEVE2 02 00FFE167
|
MULTI_SIEVE3 02 00FFE14C MULTI_SIEVE4 02 00FFE175 NDX 00 00000005 NHEX4 02 00FFFC3F
|
MULTI_SIEVE3 02 00FFE155 MULTI_SIEVE4 02 00FFE17E NHEX4 02 00FFF200 NMAILBOX 02 00000004
|
NMAILBOX 02 00000004 NMESERIAL 02 00FFEC8E NMIBASE 00 00FF0013 NMI_ROUT 02 00FFFE55
|
NMESERIAL 02 00FFEC8E NMIBASE 00 00FFC013 NMI_ROUT 02 00FFF56E NMSGBLK 02 00000008
|
NMSGBLK 02 00000008 NOTKBDIRQ 02 00FFEA0C NOTRXINT 02 00FFEC8D NOTTIMERIRQ 02 00FFE485
|
NOTKBDIRQ 02 00FFEA0C NOTRXINT 02 00FFEC8D NOTTIMERIRQ 02 00FFE48E NUMBREAKPOINTS 02 00FFF3B6
|
NOTTIMERIRQ2 02 00FFFE48 NXBLANK 02 00FFFC43 ONEKEY 02 00FFD1DC OSC1 02 00FFED59
|
NUMFUNCS 00 0000000D NUMOSFUNCS 00 00000019 NUMSETBREAKPOINTS 00 00000811 NXBLANK 02 00FFF204
|
OSCALL 02 00FFED59 OSCALLTBL 02 00FFED27 OSCX 02 00FFED69 OSSEMA 00 00EF0010
|
ONEKEY 02 00FFD1DC OSC1 02 00FFF467 OSCALLTBL 02 00FFED27 OSCX 02 00FFF469
|
OUTCH 02 00FFED12 OUTSEMA 00 00EF0000 PCRLF 02 00FFE3E1 PDATA 02 00FFE3EE
|
OSSEMA 00 00EF0010 OUTCH 02 00FFED12 OUTSEMA 00 00EF0000 PARSECMD1 02 00FFEEF1
|
PIC 00 FFE3F000 PICPTR 00 00000028 PRINT 02 00FFE3EB PROMPT1 02 00FFF95B
|
PCRLF 02 00FFE3EA PDATA 02 00FFE3F7 PIC 00 FFE3F000 PICPTR 00 00000028
|
PROMPT2 02 00FFF987 PROMPT2A 02 00FFF9A5 PROMPT3 02 00FFF94C PROMPTC 02 00FFF9C3
|
PRINT 02 00FFE3F4 PRNG 00 FFE30600 PROCESSBREAKPOINT 02 00FFF41E PROMPT1 02 00FFEED4
|
PROMPTCOLON 02 00FFF9DB PROMPTD 02 00FFF9CF PROMPTF 02 00FFF9E2 PROMPTFL 02 00FFF9F5
|
PROMPT2A 02 00FFEF25 PROMPT3 02 00FFEEC5 PROMPTCLEARSCREEN 02 00FFEF3F PROMPTHELP 02 00FFEF37
|
PROMPTHELP 02 00FFF9B7 PROMPTJ 02 00FFF9FC PROMPTLN 02 00FFF948 PROMPTR 02 00FFFA01
|
PROMPTLN 02 00FFEEC1 PSTRNG 02 00FFE3E6 QNDX0 00 00000780 QNDX1 00 00000782
|
PROMPTT 02 00FFFA14 PROMPTU 02 00FFFA29 PROMPT_S 02 00FFFA0B PSTRNG 02 00FFE3DD
|
QNDX2 00 00000784 QNDX3 00 00000786 QNDX4 00 00000788 RAMERR 02 00FFD42C
|
QNDX0 00 00000780 QNDX1 00 00000782 QNDX2 00 00000784 QNDX3 00 00000786
|
RAMTEST 02 00FFD400 RAMTEST1 02 00FFD40D RAMTEST3 02 00FFD417 REDIRECT 02 00FFEF11
|
QNDX4 00 00000788 RAMERR 02 00FFD42C RAMTEST 02 00FFD400 RAMTEST1 02 00FFD40D
|
RELEASEIOFOCUS 02 00FFED70 REQUESTIOFOCUS 02 00FFED59 RIOF1 02 00FFED97 RIOF2 02 00FFED86
|
RAMTEST3 02 00FFD417 RELEASEIOFOCUS 02 00FFED84 REQUESTIOFOCUS 02 00FFED6D RIOF1 02 00FFEDAB
|
ROMTORAM 02 00FFE138 ROMTORAM1 02 00FFE13E ROWS 00 00000020 RTC 00 FFE30500
|
RIOF2 02 00FFED9A ROMTORAM 02 00FFE12F ROMTORAM1 02 00FFE135 RTC 00 FFE30500
|
RTCBUF 00 00007FC0 RTCR0001 02 00FFE4F6 RTCW0001 02 00FFE541 RTC_READ 02 00FFE4D0
|
RTCBUF 00 00007FC0 RTCR0001 02 00FFE4ED RTCW0001 02 00FFE538 RTC_READ 02 00FFE4C7
|
RTC_RXERR 02 00FFE51F RTC_WRITE 02 00FFE523 RTI_INSN 02 00FFF57A RUNNINGID 00 00FFC013
|
RTC_RXERR 02 00FFE516 RTC_WRITE 02 00FFE51A RTI_INSN 02 00FFFE61 RUNNINGID 00 00800000
|
RUNNINGTCB 06 00000000 SCANNEXTWORD 02 00FFEEFB SCREENCOLOR 00 00000113 SCREENLOCATION 00 00000010
|
RUNNINGTCB 06 00000000 SCREENCOLOR 00 00000113 SCREENLOCATION 00 00000010 SCREENLOCATION2 00 00000018
|
SCREENLOCATION2 00 00000018 SCROLLUP 02 00FFE25A SCRUP1 02 00FFE267 SC_ALT 00 00000011
|
SCROLLUP 02 00FFE251 SCRUP1 02 00FFE25E SC_ALT 00 00000011 SC_C 00 00000021
|
SC_C 00 00000021 SC_CAPSLOCK 00 00000058 SC_CTRL 00 00000014 SC_DEL 00 00000071
|
SC_CAPSLOCK 00 00000058 SC_CTRL 00 00000014 SC_DEL 00 00000071 SC_EXTEND 00 000000E0
|
SC_EXTEND 00 000000E0 SC_F12 00 00000007 SC_KEYUP 00 000000F0 SC_NUMLOCK 00 00000077
|
SC_F12 00 00000007 SC_KEYUP 00 000000F0 SC_NUMLOCK 00 00000077 SC_RSHIFT 00 00000059
|
SC_RSHIFT 00 00000059 SC_SCROLLLOCK 00 0000007E SC_T 00 0000002C SC_TAB 00 0000000D
|
SC_SCROLLLOCK 00 0000007E SC_T 00 0000002C SC_TAB 00 0000000D SC_Z 00 0000001A
|
SC_Z 00 0000001A SEMAABS 00 00001000 SERHEADRCV 00 00000131 SERHEADXMIT 00 00000136
|
SEMAABS 00 00001000 SERHEADRCV 00 00000131 SERHEADXMIT 00 00000136 SERHZERO 00 00000130
|
SERHZERO 00 00000130 SERIALGETCHAR 02 00FFEB9D SERIALINIT 02 00FFEB6F SERIALIRQ 02 00FFEC3B
|
SERIALGETCHAR 02 00FFEB9D SERIALINIT 02 00FFEB6F SERIALIRQ 02 00FFEC3B SERIALOUTPUTTEST 02 00FFECA5
|
SERIALOUTPUTTEST 02 00FFECA5 SERIALPEEKCHAR 02 00FFEBCD SERIALPEEKCHARDIRECT 02 00FFEBE4 SERIALPUTCHAR 02 00FFEC08
|
SERIALPEEKCHAR 02 00FFEBCD SERIALPEEKCHARDIRECT 02 00FFEBE4 SERIALPUTCHAR 02 00FFEC08 SERIALPUTSTRING 02 00FFEC95
|
SERIALPUTSTRING 02 00FFEC95 SERIALRCVCOUNT 02 00FFEC28 SERRCVBUF 00 00BFF000 SERRCVXOFF 00 00000140
|
SERIALRCVCOUNT 02 00FFEC28 SERRCVBUF 00 00BFF000 SERRCVXOFF 00 00000140 SERRCVXON 00 00000139
|
SERRCVXON 00 00000139 SERTAILRCV 00 00000133 SERTAILXMIT 00 00000138 SERTZERO 00 00000132
|
SERTAILRCV 00 00000133 SERTAILXMIT 00 00000138 SERTZERO 00 00000132 SETKEYBOARDECHO 02 00FFED16
|
SETKEYBOARDECHO 02 00FFED16 SGC2 02 00FFEBB6 SGCNOCHARS 02 00FFEBC6 SGCXIT 02 00FFEBC9
|
SGC2 02 00FFEBB6 SGCNOCHARS 02 00FFEBC6 SGCXIT 02 00FFEBC9 SHIFTEDSCANCODES 02 00FFE680
|
SHIFTEDSCANCODES 02 00FFE680 SHIFTLEFT5 02 00FFE1BC SHL_NUMWKA 02 00FFEFE2 SHOWSPRITES 02 00FFED1C
|
SHIFTLEFT5 02 00FFE1B3 SHL_NUMWKA 02 00FFFA82 SHOWSPRITES 02 00FFED1C SIEVE 02 00FFE179
|
SIEVE 02 00FFE182 SIEVE1 02 00FFE19A SIEVE2 02 00FFE196 SIEVE3 02 00FFE187
|
SIEVE1 02 00FFE191 SIEVE2 02 00FFE18D SIEVE3 02 00FFE17E SIEVE4 02 00FFE1A0
|
SIEVE4 02 00FFE1A9 SINI1 02 00FFEB82 SIRQ0001 02 00FFEC4D SIRQNXTBYTE 02 00FFEC3B
|
SINI1 02 00FFEB82 SIRQ0001 02 00FFEC4D SIRQNXTBYTE 02 00FFEC3B SIRQRXFULL 02 00FFEC8D
|
SIRQRXFULL 02 00FFEC8D SKIPDOLLAR 02 00FFEEE3 SKIP_INIT 02 00FFE0DE SOTST1 02 00FFECAF
|
SKIPDOLLAR 02 00FFF97A SKIP_INIT 02 00FFE0D5 SOTST1 02 00FFECAF SPC0001 02 00FFEC0A
|
SPC0001 02 00FFEC0A SPCD0001 02 00FFEC02 SPCNOCHARS 02 00FFEBDF SPCXIT 02 00FFEBE2
|
SPCD0001 02 00FFEC02 SPCNOCHARS 02 00FFEBDF SPCXIT 02 00FFEBE2 SPRITE_CTRL 00 FFE10000
|
SPRITE_CTRL 00 FFE10000 SPRITE_EN 00 000003C0 SPS2 02 00FFEC99 SPSXIT 02 00FFECA3
|
SPRITE_EN 00 000003C0 SPS2 02 00FFEC99 SPSXIT 02 00FFECA3 SRCXIT 02 00FFEC3A
|
SRCXIT 02 00FFEC3A ST1 02 00FFE0B8 ST3 02 00FFE095 ST6 02 00FFE03F
|
SREL 00 00000004 ST1 02 00FFE0B4 ST3 02 00FFE091 ST6 02 00FFE03C
|
ST7 02 00FFE049 ST8 02 00FFE049 ST9 02 00FFE063 START 02 00FFE023
|
ST7 02 00FFE046 ST8 02 00FFE046 ST9 02 00FFE05A START 02 00FFE023
|
STRPTR 00 00000024 SWI3_EXIT 02 00FFF559 SWI3_ROUT 02 00FFF521 SWICALLOS 02 00FFF454
|
STRPTR 00 00000024 SWI3_EXIT 02 00FFFDF7 SWI3_ROUT 02 00FFFDC8 TAB 00 00000009
|
SWINOTBKPT 02 00FFF3EE SWI_ROUT 02 00FFF3D1 SWI_ROUT1 02 00FFF3D6 SWI_ROUT2 02 00FFF3E7
|
TCB_CURSORCOL 00 00000021 TCB_CURSORROW 00 00000020 TCB_HJCB 00 0000001C TCB_HWAITMBX 00 00000022
|
SWI_ROUT3 02 00FFF41A TAB 00 00000009 TCB_CURSORCOL 00 00000021 TCB_CURSORROW 00 00000020
|
TCB_IOF_NEXT 00 0000002C TCB_IOF_PREV 00 00000030 TCB_MBQ_NEXT 00 00000024 TCB_MBQ_PREV 00 00000028
|
TCB_HJCB 00 0000001C TCB_HWAITMBX 00 00000022 TCB_IOF_NEXT 00 0000002C TCB_IOF_PREV 00 00000030
|
TCB_MMU_MAP 00 00000038 TCB_MSGPTR_D1 00 00000014 TCB_MSGPTR_D2 00 00000018 TCB_NXTRDY 00 00000000
|
TCB_MBQ_NEXT 00 00000024 TCB_MBQ_PREV 00 00000028 TCB_MMU_MAP 00 00000038 TCB_MSGPTR_D1 00 00000014
|
TCB_NXTTCB 00 00000008 TCB_PRIORITY 00 00000010 TCB_PRVRDY 00 00000004 TCB_SPSAVE 00 00000034
|
TCB_MSGPTR_D2 00 00000018 TCB_NXTRDY 00 00000000 TCB_NXTTCB 00 00000008 TCB_PRIORITY 00 00000010
|
TCB_STATUS 00 0000001E TCB_TIMEOUT 00 0000000C TEXTCLOSE 02 00FFE221 TEXTOPEN 02 00FFE220
|
TCB_PRVRDY 00 00000004 TCB_SPSAVE 00 00000034 TCB_STATUS 00 0000001E TCB_TIMEOUT 00 0000000C
|
TEXTREAD 02 00FFE222 TEXTREG 00 FFE0DF00 TEXTSCR 00 FFE00000 TEXTSEEK 02 00FFE224
|
TEXTCLOSE 02 00FFE22A TEXTOPEN 02 00FFE229 TEXTREAD 02 00FFE22B TEXTREG 00 FFE07F00
|
TEXTWRITE 02 00FFE223 TEXT_COLS 00 00000000 TEXT_CURPOS 00 00000022 TEXT_ROWS 00 00000001
|
TEXTSCR 00 FFE00000 TEXTSEEK 02 00FFE22D TEXTWRITE 02 00FFE22C TEXT_COLS 00 00000000
|
TFREXG 00 00000009 TIMEOUTLIST 00 0000078C TIMERINIT 02 00FFE438 TIMERIRQ 02 00FFE463
|
TEXT_CURPOS 00 00000022 TEXT_ROWS 00 00000001 TIMEOUTLIST 00 0000078C TIMERINIT 02 00FFE441
|
TR1A 02 00FFFE54 UCP1 02 00FFE2D0 UNSHIFTEDSCANCODES 02 00FFE580 UPDATECURSORPOS 02 00FFE2B0
|
TIMERIRQ 02 00FFE46C TIMES10 02 00FFEF5C TR1A 02 00FFF56D UCP1 02 00FFE2D9
|
VIA 00 FFE60000 VIA_ACR 00 0000000B VIA_DDRA 00 00000003 VIA_IER 00 0000000E
|
UNSHIFTEDSCANCODES 02 00FFE580 UPDATECURSORPOS 02 00FFE2B9 VIA 00 FFE60000 VIA_ACR 00 0000000B
|
VIA_IFR 00 0000000D VIA_PA 00 00000001 VIA_T3CMPH 00 00000015 VIA_T3CMPL 00 00000014
|
VIA_DDRA 00 00000003 VIA_IER 00 0000000E VIA_IFR 00 0000000D VIA_PA 00 00000001
|
VIA_T3LH 00 00000013 VIA_T3LL 00 00000012 W10_0001 02 00FFE8C0 W300_0001 02 00FFE8D4
|
VIA_T3CMPH 00 00000015 VIA_T3CMPL 00 00000014 VIA_T3LH 00 00000013 VIA_T3LL 00 00000012
|
WAIT10MS 02 00FFE8B9 WAIT300MS 02 00FFE8CD XBLANK 02 00FFD0AF XOFF 00 00000013
|
W10_0001 02 00FFE8C0 W300_0001 02 00FFE8D4 WAIT10MS 02 00FFE8B9 WAIT300MS 02 00FFE8CD
|
XON 00 00000011
|
XBLANK 02 00FFD0AF XITMONITOR 02 00FFF451 XOFF 00 00000013 XON 00 00000011
|
545 SYMBOLS
|
528 SYMBOLS
|
|
|
0 error(s), 1726 warning(s)
|
3 error(s), 592 warning(s)
|
3 error(s), 592 warning(s)
|
3 error(s), 592 warning(s)
|