REM > CheckSWIs

errors% = 0
H%=OPENIN("<Grub$Srcdir>.include.grub.arm.RISC_OS.swis/h")

PRINT "The following SWI declarations are wrong:"'

REPEAT
  L$=GET$#H%
  IF LEFT$(L$, 7)="#define" THEN
    name$ = MID$(L$, 9, INSTR(L$, " ", 9) - 9)
    number% = EVAL("&" + MID$(L$, INSTR(L$, "0x") + 2))
    SYS "XOS_SWINumberFromString",, name$ TO real_number%; V%
    IF (V% AND 1) = 0 AND number% <> real_number% THEN
      PRINT name$; TAB(40), ~number%, ~real_number%
      errors% += 1
    ENDIF
  ENDIF
UNTIL EOF#H%
CLOSE#H%

PRINT ';errors%; " errors found."
