This internal processing is SHIFT-JIS, all work fine.
Please run under SHIFT-JIS forced mode is ON.
// SHIFT-JIS Version(Forced SHIFT-JIS mode) // X-BASIC for iOS can not text screen scroll, so it is displayed page by page. font("Migu 1M") int fzenhan:// YES= width(64,,fzenhan) print "fzenhan=";fzenhan cls() if isLocalizeJapan() then { setFunctionKey(0,"次へ",&h0d) setFunctionKey(1,"中断",&h1b) print "半角文字" } else { setFunctionKey(0,"Next",&h0d) setFunctionKey(1,"Break",&h1b) print "Half-Width Character" } print_code0(fzenhan) // displayFunctionKey(YES,0,1) // while YES if print_code(&h8100,&h9fff) then break if print_code(&he000,&hefff) then break print_head() break endwhile // The previous function key display will not erase automatically when changing the number. // The user must erase(View overlaps with otherwise). displayFunctionKey(NO,0,1) if isLocalizeJapan() then { setFunctionKey(0,"終了",&h0d) } else { setFunctionKey(0,"End",&h0d) } displayFunctionKey(YES,0,0) int ky repeat ky=inkey() until ky<>0 end //-------------------------------- func print_head() if fzenhan then { print "-code-:-+0-+1-+2-+3-+4-+5-+6-+7-+8-+9-+A-+B-+C-+D-+E-+F-" } else { print "-code-:-0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F-" } endfunc func print_skip() print " : " endfunc func str hex4$(h;int) return (right$("0000"+hex$(h),4)) endfunc func str hex2$(h;int) return (right$("00"+hex$(h),2)) endfunc func printChr(h;int,l;int) print chr$((h shl 16)or l); endfunc func int print_code(st;int,ed;int) /* Double-Width character display int i,li,hi int j for i=st to ed hi=i / 256 li=i mod 256 if li=0 then { print_head() int ky repeat ky=inkey() until ky<>0 if ky=&h1b then return (YES) cls() if isLocalizeJapan() then { print "全角文字" } else { print "Double-Width character" } print_head() } if li<&h40 then continue:/* The chatacter which low 8bit code<$40 is none /* print adrs print " ";hex4$(i);" :"; for j=0 to 16-1 print " "; int c=(i+j) and &hff if c<&h40 or c=&h7f or c>=&hfd then { :/* undefined character if fzenhan then { print "**"; } else { print "*"; } } else { c=(i+j) print chr$(c); :/* This was treated on the assumption that it does not cause a carry on the way } next print i=i+16-1::/* +1 in below 'next' next return (NO) endfunc func print_code0(fzenhan;int) /* half width character display int li int j,c print_head() for li=&h20 to &he0-1 /* skip area if li=&h80 then print_skip() if li>=&h80 and li<=&h9f then continue /* print adrs print " ";hex2$(li);" :"; /* print character for j=0 to 16-1 print " "; c=li+j if c=&h7f or c=&ha0 then c='*' print chr$(c); if fzenhan then print " ";:/* if Double-width equal half-width*2 then print space next print li=li+16-1:/* +1 in below 'next' next endfunc
Zip file : XBetc.zip
No comments:
Post a Comment