29 lines
697 B
Text
29 lines
697 B
Text
do {
|
|
#1 = Get_Num("Enter a number, or 0 to stop: ", STATLINE)
|
|
Ins_Text("Input: ") Num_Ins(#1, COUNT, 10)
|
|
Call("MIDDLE_3_DIGITS")
|
|
Ins_Text(" Result: ") Reg_Ins(10) Ins_Newline
|
|
Update()
|
|
} while (#1);
|
|
Return
|
|
|
|
// Find middle 3 digits of a number
|
|
// in: #1 = numeric value
|
|
// out: @10 = the result, or error text
|
|
//
|
|
:MIDDLE_3_DIGITS:
|
|
Buf_Switch(Buf_Free)
|
|
Num_Ins(abs(#1), LEFT+NOCR) // the input value as string
|
|
#2 = Cur_Col-1 // #2 = number of digits
|
|
if (#2 < 3) {
|
|
Reg_Set(10, "Too few digits!")
|
|
} else {
|
|
if ((#2 & 1) == 0) {
|
|
Reg_Set(10, "Not odd number of digits!")
|
|
} else {
|
|
Goto_Pos((#2-3)/2)
|
|
Reg_Copy_Block(10, Cur_Pos, Cur_Pos+3)
|
|
}
|
|
}
|
|
Buf_Quit(OK)
|
|
Return
|