########################################################### # Relocatable machine language monitor for PC-1245 (125x) # # yagmon1245 # ########################################################### # key codes K_BRK equ 7 K_UP equ $c K_DOWN equ $d K_RIGHT equ $e K_LEFT equ $f # work area of internal RAM ADRL equ $39 ADRH equ $3a ADR equ ADRL ; current address BUF5 equ $3b ; 3b,3c,3d,3e,(3f) SUM equ $3f ; check sum # internal RAM registers I equ 0 J equ 1 A equ 2 B equ 3 XL equ 4 XH equ 5 YL equ 6 YH equ 7 org $c200 ; start address lidp $c6da orid $20 ; cursor on begin: cal $11e0 ; display on here0: ldr sbia 2 str stp lib (here1-here0)>>8 lia (here1-here0)&$ff adb lij 1 cal $11f9 ; LIY CHRBUFF-1 lp ADRH tohex: ; hexanize (P) into [Y] ; A and B will be destroyed. ldm lib 1 swp tohex0: ania $0f adia $40 ; '0' cpia $4a jrcp tohex1 adia $51-10-$40 ; 'A'-10-'0' tohex1: iys ldm decb jrzm tohex0 ldr end: rtn here1: str stp lib (here2-here1)>>8 lia (here2-here1)&$ff adb lp ADRL jrm tohex here2: str stp lib (here3-here2)>>8 lia (here3-here2)&$ff adb lia $1d ; ':' iys lp ADRH ; ADR -> BA ldm exab lp ADRL ldm lii 3 lp BUF5 data clra exam ; clear check sum lp BUF5 datlop: ldp push ldm lp SUM adm pop stp jrm tohex here3: str incp deci jrncm datlop stp lib (here4-here3)>>8 lia (here4-here3)&$ff adb lia $1d ; internal code of ':' iys lp SUM jrm tohex #################### # cursor UP/DOWN (move 4byte) mvup: lib $ff lia $fc jrp mvupdn mvdn: lib $00 lia $04 mvupdn: lp ADR adb gobegin: jrm begin ###################### here4: clra iys cal $11af ; display keyin: cal $1d0d ; key input cpia K_UP jrzm mvup cpia K_DOWN jrzm mvdn cpia K_BRK jrzm end cpia K_LEFT jrzp mvleft cpia K_RIGHT jrzp mvright cpia $40 jrcm keyin cpia $4a jrcp bufwrt cpia $51 jrcm keyin cpia $57 jrncm keyin bufwrt: exab lidp $c6ea ldd deca lp YL exam lia $c7 lp YH exam exab iys lp YL cpim $b4 jrncp rddata rdaddr: lij 1 cal $119a lp ADRH ldad1: ixl sbia $40 cpia 10 jrcp ldad2 sbia 7 ldad2: swp exam ixl sbia $40 cpia 10 jrcp ldad3 sbia 7 ldad3: orma decp ldp cpia ADRL-1 jrnzm ldad1 jrp mvright rddata: lij 1 cal $119a ; LIX CHRBUFF-1 liq ADR lij 1 mvb dy lp XL adim 5 lia 3 push stdat1: ixl sbia $40 cpia 10 jrcp stdat2 sbia 7 stdat2: swp exab ixl sbia $40 cpia 10 jrcp stdat3 sbia 7 stdat3: lp B orma exam iys loop stdat1 # move 1 nibble mvright: lidp $c6ea ldd inca jrp mvlr1 mvleft: lidp $c6ea ldd deca mvlr1: cpia $bd jrncp mvlr3 cpia $b0 jrcp mvlr2 std mvlr2: jrm gobegin mvlr3: lia $b5 std jrm mvdn