Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,32 @@
|
|||
// Main program for testing the function
|
||||
//
|
||||
do {
|
||||
#1 = Get_Num("Number to convert: ", STATLINE)
|
||||
Call("NUM_TO_ROMAN")
|
||||
Num_Type(#1, NOCR) Message(" = ") Reg_Type(1) Type_Newline
|
||||
} while (Reg_Size(1))
|
||||
Return
|
||||
|
||||
// Convert numeric value into Roman number
|
||||
// #1 = number to convert; on return: T-reg(1) = Roman number
|
||||
//
|
||||
:NUM_TO_ROMAN:
|
||||
Reg_Empty(1) // @1 = Results (Roman number)
|
||||
if (#1 < 1) { Return } // non-positive numbers return empty string
|
||||
|
||||
Buf_Switch(Buf_Free)
|
||||
Ins_Text("M1000,CM900,D500,CD400,C100,XC90,L50,XL40,X10,IX9,V5,IV4,I1")
|
||||
|
||||
BOF
|
||||
#2 = #1
|
||||
Repeat(ALL) {
|
||||
Search("|A|[|A]", ADVANCE+ERRBREAK) // get next item from conversion list
|
||||
Reg_Copy_Block(20, CP-Chars_Matched, CP) // @20 = Letter(s) to be inserted
|
||||
#11 = Num_Eval() // #11 = magnitude (1000...1)
|
||||
while (#2 >= #11) {
|
||||
Reg_Set(1, @20, APPEND)
|
||||
#2 -= #11
|
||||
}
|
||||
}
|
||||
Buf_Quit(OK)
|
||||
Return
|
||||
Loading…
Add table
Add a link
Reference in a new issue