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