//----------------------------------------------
//Inversionism 2020 by Kuemmel
//----------------------------------------------
.syntax unified
//--- some often used OS routines
.set OS_NewLine, 0x03
.set OS_ScreenMode, 0x65
.set OS_RemoveCursors, 0x36
.set OS_ReadVduVariables, 0x31
.set OS_Exit, 0x11
.set OS_ReadEscapeState, 0x2c
.set OS_ReadMonotonicTime, 0x42
.set OS_Byte, 0x06
.set OS_CallASWI, 0x6f
.set VFPSupport_CreateContext, 0x58ec1
.set OS_ConvertInteger4, 0xdc
.set OS_Write0, 0x02
.thumb
start:

  //ldr.n r0,number_to_display
  swi OS_ReadMonotonicTime
  adr.n r1,string_buffer // pointer to buffer
  movs  r2,11            // max buffer size
  swi OS_ConvertInteger4 // Entry: r0 value to be converted, r1 pointer to buffer for resulting string, r2 size of buffer
                         // Exit:  r0 pointer to buffer, r1 pointer to terminator, r2 free bytes in buffer
  swi OS_Write0          // Entry: r0 pointer to buffer

  swi OS_ReadEscapeState // check for ESC
  swi OS_Exit            // exit to OS

.align 2                 // align to 4 byte boundary, needed ?
number_to_display:
.word 12345
string_buffer:
.word 0,0,0              // fill up 12 byte buffer with zeros
