Blame | Last modification | View Log | Download
dec2int ;de-strld hl,0x0000.main_loopld a,(de)inc deor aret zcp 'x'jr z,hex2intsub '0'ret ccp 10ret ncld b,hld c,ladd hl,hladd hl,hladd hl,bcadd hl,hlld c,ald b,0x00add hl,bcjr .main_loophex2int ;de-strld hl,0x0000ld b,h.main_loopld a,(de)inc deor aret zsub '0'ret ccp 10jr c,.is_digitand 0xdfsub 0x11 - 10cp 10ret ccp 16ret nc.is_digitadd hl,hladd hl,hladd hl,hladd hl,hlld c,aadd hl,bcjr .main_loopcgetsxor ald (hl),ald (.curs),ald (.str),hlOS_GETXYld (.cxy),de.main_loopld de,(.cxy)OS_SETXYld hl,(.str)call putsld a,' 'OS_PRCHARld de,(.cxy)ld a,(.curs)add a,eld e,aOS_SETXYld e,0x07|0x28OS_PRATTRcall getcharpush afld e,0x07|0x00OS_PRATTRpop af.curs=$+1ld b,0.str=$+1ld hl,0cp 0x0dret z ;jr nz,.no_enter;ld hl,(.str);ret.no_entercp 0x08jr nz,.no_bsld a,b ;(.curs)sub 1adc a,0jr c,.main_loopld (.curs),a;ld hl,(.str)add a,lld l,aadc a,hsub lld h,ald d,hld e,linc hl.strshiftldild a,(de)or ajp z,.main_loopjr .strshift.no_bscp key_leftjr nz,.no_leftld a,b ;(.curs)sub 1adc a,0ld (.curs),ajr .main_loop.no_leftcp key_rightjr nz,.no_right;ld hl,(.str)ld a,b ;(.curs)add a,lld l,aadc a,hsub lld h,ald a,(hl)or ajr z,.main_loop.inc_cursld hl,.cursinc (hl)jp .main_loop.no_rightld c,a;ld hl,(.str)ld a,b ;(.curs)add a,lld l,aadc a,hsub lld h,a.char_loopld a,cld c,(hl)ld (hl),aor ajr z,.inc_cursinc hljr .char_loop.cxydefw 0print_hexpush afrrarrarrarracall .pr_dpop af.pr_dand 0x0fcp 10jr c,.is_digitadd a,7.is_digitadd a,'0'OS_PRCHARretstrcpy ;de-dst hl-srcld a,(hl)ldior aret zjr strcpyclsstrld a,"\r"OS_PRCHARld b,79.flld a,' 'push bcOS_PRCHARpop bcdjnz .flld a,"\r"OS_PRCHARret