home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / oberon / system / l.mod (.txt) < prev    next >
Oberon Text  |  1977-12-31  |  1KB  |  63 lines

  1. Syntax10.Scn.Fnt
  2. MODULE L;
  3. IMPORT
  4.     SYSTEM,AmigaLogger;
  5. PROCEDURE Ch*(ch:CHAR);
  6. BEGIN
  7.     AmigaLogger.write(ch);
  8. END Ch;
  9. PROCEDURE Ln*;
  10. BEGIN
  11.     Ch(0AX);
  12. END Ln;
  13. PROCEDURE Stamp*;
  14. BEGIN
  15.     AmigaLogger.writeStamp();
  16. END Stamp;
  17. PROCEDURE Str*(str:ARRAY OF CHAR);
  18.     i:INTEGER;
  19. BEGIN
  20.     i:=0; WHILE str[i]#0X DO Ch(str[i]); INC(i); END;
  21. END Str;
  22. PROCEDURE Int*(x: LONGINT);
  23.     a: ARRAY 11 OF CHAR;
  24.     i: INTEGER;
  25.     x0: LONGINT;
  26. BEGIN i := 0;
  27.     IF x < 0 THEN
  28.         IF x = MIN(LONGINT) THEN Str(" -2147483648"); RETURN
  29.         ELSE x0 := -x
  30.         END
  31.     ELSE
  32.         x0 := x
  33.     END;
  34.     REPEAT
  35.         a[i] := CHR(x0 MOD 10 + 30H); x0 := x0 DIV 10; INC(i)
  36.     UNTIL x0 = 0;
  37.     Ch(" ");
  38.     IF x < 0 THEN Ch("-") END;
  39.     REPEAT DEC(i); Ch(a[i]) UNTIL i = 0
  40. END Int;
  41. PROCEDURE Hex*(x: LONGINT);
  42.     a: ARRAY 10 OF CHAR;
  43.     i: INTEGER;
  44.     y: LONGINT;
  45. BEGIN
  46.     i := 0; Ch(" ");
  47.     REPEAT y := x MOD 10H;
  48.         IF y < 10 THEN a[i] := CHR(y + 30H) ELSE a[i] := CHR(y + 37H) END;
  49.         x := x DIV 10H; INC(i)
  50.     UNTIL i = 8;
  51.     REPEAT DEC(i); Ch(a[i]) UNTIL i = 0
  52. END Hex;
  53. PROCEDURE Stk*;
  54.     fp, pc, i: LONGINT;
  55. BEGIN
  56.     SYSTEM.GETREG(14, fp);
  57.     FOR i := 1 TO 8 DO
  58.         SYSTEM.GET(fp+4, pc); SYSTEM.GET(fp, fp);
  59.         Hex(fp); Str("debug"); Hex(pc); Ln;
  60.     END;
  61. END Stk;
  62. END L.
  63.