FlagVM/flagpole/tests/tempconv.fp
2026-07-27 21:33:33 -04:00

39 lines
1.1 KiB
GLSL

$inc fvmstd.fp
proc mainvar
"Source Fahrenheit or Celsius (F/C): " :puts
:getchar @srcUnit
:getchar drop # newline pmo
if &srcUnit 0x43 == &srcUnit 0x63 == bor then
"Source Temp: " :puts :getuint @srcTemp
&srcTemp 9 u* 5 u/ 32 u+ @dstTemp
&srcTemp :putuint "*C == " :puts &dstTemp :putuint "*F" :puts :newline
return
endif
if &srcUnit 0x46 == &srcUnit 0x66 == bor then
"Source Temp: " :puts :getuint @srcTemp
&srcTemp 32 u- 5 u* 9 u/ @dstTemp
&srcTemp :putuint "*F == " :puts &dstTemp :putuint "*C" :puts :newline
return
endif
"Invalid Unit" :puts :newline
endproc
proc main
"Source Fahrenheit or Celsius (F/C): " :puts
:getchar
:getchar drop # newline pmo
if dup 0x43 == dup 0x63 == bor then
"Source Temp: " :puts :getuint
dup 9 u* 5 u/ 32 u+
swap :putuint "*C == " :puts :putuint "*F" :puts :newline
return
endif
if dup 0x46 == dup 0x66 == bor then
"Source Temp: " :puts :getuint
dup 32 u- 5 u* 9 u/
swap :putuint "*F == " :puts :putuint "*C" :puts :newline
return
endif
"Invalid Unit" :puts :newline
endproc