| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- MODULE HW;
- IMPORT
- SYSTEM, KOSAPI;
- PROCEDURE BeginDraw;
- BEGIN
- KOSAPI.sysfunc2(12, 1)
- END BeginDraw;
- PROCEDURE EndDraw;
- BEGIN
- KOSAPI.sysfunc2(12, 2)
- END EndDraw;
- PROCEDURE DefineAndDrawWindow (left, top, width, height, color, style, hcolor, hstyle: INTEGER; header: ARRAY OF CHAR);
- BEGIN
- KOSAPI.sysfunc6(0, left*65536 + width, top*65536 + height, color + LSL(style, 24), hcolor + LSL(hstyle, 24), SYSTEM.ADR(header[0]))
- END DefineAndDrawWindow;
- PROCEDURE WriteTextToWindow (x, y, color: INTEGER; text: ARRAY OF CHAR);
- BEGIN
- KOSAPI.sysfunc6(4, x*65536 + y, color + LSL(48, 24), SYSTEM.ADR(text[0]), LENGTH(text), 0)
- END WriteTextToWindow;
- PROCEDURE WaitForEvent (): INTEGER;
- RETURN KOSAPI.sysfunc1(10)
- END WaitForEvent;
- PROCEDURE ExitApp;
- BEGIN
- KOSAPI.sysfunc1(-1)
- END ExitApp;
- PROCEDURE draw_window (header, text: ARRAY OF CHAR);
- CONST
- WHITE = 0FFFFFFH;
- RED = 0C00000H;
- GREEN = 0008000H;
- BLUE = 00000C0H;
- GRAY = 0808080H;
- BEGIN
- BeginDraw;
- DefineAndDrawWindow(200, 200, 300, 150, WHITE, 51, 0, 0, header);
- WriteTextToWindow( 5, 10, RED, text);
- WriteTextToWindow(35, 30, GREEN, text);
- WriteTextToWindow(65, 50, BLUE, text);
- WriteTextToWindow(95, 70, GRAY, text);
- EndDraw
- END draw_window;
- PROCEDURE main (header, text: ARRAY OF CHAR);
- CONST
- EVENT_REDRAW = 1;
- EVENT_KEY = 2;
- EVENT_BUTTON = 3;
- BEGIN
- WHILE TRUE DO
- CASE WaitForEvent() OF
- |EVENT_REDRAW: draw_window(header, text)
- |EVENT_KEY: ExitApp
- |EVENT_BUTTON: ExitApp
- END
- END
- END main;
- BEGIN
- main("Hello", "Hello, world!")
- END HW.
|