OpenCores
URL https://opencores.org/ocsvn/rf6809/rf6809/trunk

Subversion Repositories rf6809

[/] [rf6809/] [trunk/] [software/] [boot/] [boot_rom.lst] - Diff between revs 14 and 15

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 14 Rev 15
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)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.