home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Amiga Disk Format (OFS)
(archive/adfOFS).
You can browse this item here: in.adf
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Amiga Disk Format (OFS) (archive/adfOFS)
| magic
| Supported |
66%
| dexvert
| Amiga Disk Format (FFS) (archive/adfFFS)
| ext
| Supported |
1%
| dexvert
| ABackup Disk Image (archive/abackupDiskImage)
| ext
| Unsupported |
1%
| dexvert
| Amiga Hard Disk Image (PFS) (archive/amigaHardDiskPFS)
| ext
| Unsupported |
1%
| dexvert
| Amiga Kickstart disk image (archive/amigaKickstartDiskImage)
| ext
| Unsupported |
1%
| dexvert
| ESRI Arc/Info Binary Grid (other/esriArcInfoBinaryGrid)
| ext
| Unsupported |
100%
| file
| Amiga DOS disk (DD 880 KiB), "Amiga_E_v3.1i_extras"
| default
| |
99%
| file
| data
| default
| |
47%
| TrID
| GRASP animation
| default
| |
29%
| TrID
| Amiga Disk image File (OFS)
| default
| |
21%
| TrID
| Amiga Disk image File (generic)
| default (weak)
| |
0%
| TrID
| Memo File Apollo Database Engine
| default (weak)
| |
0%
| TrID
| VXD Driver
| default (weak)
| |
100%
| siegfried
| fmt/1361 Amiga Disk File
| default
| |
100%
| disktype
| Amiga OFS file system (non-intl.) Type "DOS\0" Size matches DD floppy
| default
| |
100%
| xdgMime
| application/x-amiga-disk-format
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 44 4f 53 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |DOS.....|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000080| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000090| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000200| 44 4f 53 80 44 4f 53 81 | 44 4f 53 82 44 4f 53 83 |DOS.DOS.|DOS.DOS.|
|00000210| 44 4f 53 84 44 4f 53 85 | 44 4f 53 86 44 4f 53 87 |DOS.DOS.|DOS.DOS.|
|00000220| 44 4f 53 88 44 4f 53 89 | 44 4f 53 8a 44 4f 53 8b |DOS.DOS.|DOS.DOS.|
|00000230| 44 4f 53 8c 44 4f 53 8d | 44 4f 53 8e 44 4f 53 8f |DOS.DOS.|DOS.DOS.|
|00000240| 44 4f 53 90 44 4f 53 91 | 44 4f 53 92 44 4f 53 93 |DOS.DOS.|DOS.DOS.|
|00000250| 44 4f 53 94 44 4f 53 95 | 44 4f 53 96 44 4f 53 97 |DOS.DOS.|DOS.DOS.|
|00000260| 44 4f 53 98 44 4f 53 99 | 44 4f 53 9a 44 4f 53 9b |DOS.DOS.|DOS.DOS.|
|00000270| 44 4f 53 9c 44 4f 53 9d | 44 4f 53 9e 44 4f 53 9f |DOS.DOS.|DOS.DOS.|
|00000280| 44 4f 53 a0 44 4f 53 a1 | 44 4f 53 a2 44 4f 53 a3 |DOS.DOS.|DOS.DOS.|
|00000290| 44 4f 53 a4 44 4f 53 a5 | 44 4f 53 a6 44 4f 53 a7 |DOS.DOS.|DOS.DOS.|
|000002a0| 44 4f 53 a8 44 4f 53 a9 | 44 4f 53 aa 44 4f 53 ab |DOS.DOS.|DOS.DOS.|
|000002b0| 44 4f 53 ac 44 4f 53 ad | 44 4f 53 ae 44 4f 53 af |DOS.DOS.|DOS.DOS.|
|000002c0| 44 4f 53 b0 44 4f 53 b1 | 44 4f 53 b2 44 4f 53 b3 |DOS.DOS.|DOS.DOS.|
|000002d0| 44 4f 53 b4 44 4f 53 b5 | 44 4f 53 b6 44 4f 53 b7 |DOS.DOS.|DOS.DOS.|
|000002e0| 44 4f 53 b8 44 4f 53 b9 | 44 4f 53 ba 44 4f 53 bb |DOS.DOS.|DOS.DOS.|
|000002f0| 44 4f 53 bc 44 4f 53 bd | 44 4f 53 be 44 4f 53 bf |DOS.DOS.|DOS.DOS.|
|00000300| 44 4f 53 c0 44 4f 53 c1 | 44 4f 53 c2 44 4f 53 c3 |DOS.DOS.|DOS.DOS.|
|00000310| 44 4f 53 c4 44 4f 53 c5 | 44 4f 53 c6 44 4f 53 c7 |DOS.DOS.|DOS.DOS.|
|00000320| 44 4f 53 c8 44 4f 53 c9 | 44 4f 53 ca 44 4f 53 cb |DOS.DOS.|DOS.DOS.|
|00000330| 44 4f 53 cc 44 4f 53 cd | 44 4f 53 ce 44 4f 53 cf |DOS.DOS.|DOS.DOS.|
|00000340| 44 4f 53 d0 44 4f 53 d1 | 44 4f 53 d2 44 4f 53 d3 |DOS.DOS.|DOS.DOS.|
|00000350| 44 4f 53 d4 44 4f 53 d5 | 44 4f 53 d6 44 4f 53 d7 |DOS.DOS.|DOS.DOS.|
|00000360| 44 4f 53 d8 44 4f 53 d9 | 44 4f 53 da 44 4f 53 db |DOS.DOS.|DOS.DOS.|
|00000370| 44 4f 53 dc 44 4f 53 dd | 44 4f 53 de 44 4f 53 df |DOS.DOS.|DOS.DOS.|
|00000380| 44 4f 53 e0 44 4f 53 e1 | 44 4f 53 e2 44 4f 53 e3 |DOS.DOS.|DOS.DOS.|
|00000390| 44 4f 53 e4 44 4f 53 e5 | 44 4f 53 e6 44 4f 53 e7 |DOS.DOS.|DOS.DOS.|
|000003a0| 44 4f 53 e8 44 4f 53 e9 | 44 4f 53 ea 44 4f 53 eb |DOS.DOS.|DOS.DOS.|
|000003b0| 44 4f 53 ec 44 4f 53 ed | 44 4f 53 ee 44 4f 53 ef |DOS.DOS.|DOS.DOS.|
|000003c0| 44 4f 53 f0 44 4f 53 f1 | 44 4f 53 f2 44 4f 53 f3 |DOS.DOS.|DOS.DOS.|
|000003d0| 44 4f 53 f4 44 4f 53 f5 | 44 4f 53 f6 44 4f 53 f7 |DOS.DOS.|DOS.DOS.|
|000003e0| 44 4f 53 f8 44 4f 53 f9 | 44 4f 53 fa 44 4f 53 fb |DOS.DOS.|DOS.DOS.|
|000003f0| 44 4f 53 fc 44 4f 53 fd | 44 4f 53 fe 44 4f 53 ff |DOS.DOS.|DOS.DOS.|
|00000400| 00 00 00 08 00 00 03 fc | 00 00 00 0b 00 00 01 b2 |........|........|
|00000410| 00 00 00 00 3e 37 a8 5c | 6f 6e 74 20 77 65 6e 74 |....>7.\|ont went|
|00000420| 20 77 72 6f 6e 67 0a 20 | 20 20 20 57 72 69 74 65 | wrong. | Write|
|00000430| 46 28 27 45 72 72 6f 72 | 3a 20 46 61 69 6c 65 64 |F('Error|: Failed|
|00000440| 20 74 6f 20 6f 70 65 6e | 20 66 6f 6e 74 20 22 5c | to open| font "\|
|00000450| 73 22 5c 6e 27 2c 20 66 | 6f 6e 74 5f 6e 61 6d 65 |s"\n', f|ont_name|
|00000460| 29 0a 20 20 43 41 53 45 | 20 45 52 52 5f 47 45 54 |). CASE| ERR_GET|
|00000470| 44 52 41 57 3b 20 57 72 | 69 74 65 46 28 27 45 72 |DRAW; Wr|iteF('Er|
|00000480| 72 6f 72 3a 20 46 61 69 | 6c 65 64 20 74 6f 20 67 |ror: Fai|led to g|
|00000490| 65 74 20 44 72 61 77 49 | 6e 66 6f 20 6f 66 20 73 |et DrawI|nfo of s|
|000004a0| 63 72 65 65 6e 5c 6e 27 | 29 0a 20 20 43 41 53 45 |creen\n'|). CASE|
|000004b0| 20 45 52 52 5f 4c 4f 43 | 4b 50 55 42 3b 20 57 72 | ERR_LOC|KPUB; Wr|
|000004c0| 69 74 65 46 28 27 45 72 | 72 6f 72 3a 20 46 61 69 |iteF('Er|ror: Fai|
|000004d0| 6c 65 64 20 74 6f 20 6c | 6f 63 6b 65 64 20 70 75 |led to l|ocked pu|
|000004e0| 62 6c 69 63 20 73 63 72 | 65 65 6e 5c 6e 27 29 0a |blic scr|een\n').|
|000004f0| 20 20 43 41 53 45 20 45 | 52 52 5f 4d 4f 44 45 49 | CASE E|RR_MODEI|
|00000500| 44 3b 20 20 57 72 69 74 | 65 46 28 27 45 72 72 6f |D; Writ|eF('Erro|
|00000510| 72 3a 20 50 75 62 6c 69 | 63 20 73 63 72 65 65 6e |r: Publi|c screen|
|00000520| 20 68 61 73 20 69 6e 76 | 61 6c 69 64 20 6d 6f 64 | has inv|alid mod|
|00000530| 65 20 49 44 5c 6e 27 29 | 0a 20 20 43 41 53 45 20 |e ID\n')|. CASE |
|00000540| 45 52 52 5f 53 43 52 4e | 3b 20 20 20 20 57 72 69 |ERR_SCRN|; Wri|
|00000550| 74 65 46 28 27 45 72 72 | 6f 72 3a 20 46 61 69 6c |teF('Err|or: Fail|
|00000560| 65 64 20 74 6f 20 6f 70 | 65 6e 20 63 75 73 74 6f |ed to op|en custo|
|00000570| 6d 20 73 63 72 65 65 6e | 5c 6e 27 29 0a 20 20 43 |m screen|\n'). C|
|00000580| 41 53 45 20 22 4d 45 4d | 22 3b 20 20 20 20 20 20 |ASE "MEM|"; |
|00000590| 20 57 72 69 74 65 46 28 | 27 45 72 72 6f 72 3a 20 | WriteF(|'Error: |
|000005a0| 52 61 6e 20 6f 75 74 20 | 6f 66 20 6d 65 6d 6f 72 |Ran out |of memor|
|000005b0| 79 5c 6e 27 29 0a 20 20 | 45 4e 44 53 45 4c 45 43 |y\n'). |ENDSELEC|
|000005c0| 54 0a 45 4e 44 50 52 4f | 43 0a 53 45 20 45 52 52 |T.ENDPRO|C.SE ERR|
|000005d0| 5f 46 4f 4e 54 0a 20 20 | 20 20 2d 3e 20 45 2d 4e |_FONT. | -> E-N|
|000005e0| 6f 74 65 3a 20 69 74 27 | 73 20 68 65 6c 70 66 75 |ote: it'|s helpfu|
|000005f0| 6c 20 74 6f 20 73 61 79 | 20 77 68 69 63 68 20 66 |l to say| which f|
|00000600| 00 00 00 08 00 00 03 fd | 00 00 00 01 00 00 01 e8 |........|........|
|00000610| 00 00 00 04 4f f2 e8 dd | 2d 3e 20 65 61 73 79 72 |....O...|-> easyr|
|00000620| 65 71 75 65 73 74 2e 65 | 20 2d 20 53 68 6f 77 20 |equest.e| - Show |
|00000630| 74 68 65 20 75 73 65 20 | 6f 66 20 61 6e 20 65 61 |the use |of an ea|
|00000640| 73 79 20 72 65 71 75 65 | 73 74 65 72 2e 0a 0a 4f |sy reque|ster...O|
|00000650| 50 54 20 4f 53 56 45 52 | 53 49 4f 4e 3d 33 37 20 |PT OSVER|SION=37 |
|00000660| 20 2d 3e 20 4e 6f 74 65 | 3a 20 73 69 6c 65 6e 74 | -> Note|: silent|
|00000670| 6c 79 20 72 65 71 75 69 | 72 65 20 56 33 37 0a 0a |ly requi|re V37..|
|00000680| 4d 4f 44 55 4c 45 20 27 | 69 6e 74 75 69 74 69 6f |MODULE '|intuitio|
|00000690| 6e 2f 69 6e 74 75 69 74 | 69 6f 6e 27 0a 0a 2d 3e |n/intuit|ion'..->|
|000006a0| 20 4d 61 69 6e 20 72 6f | 75 74 69 6e 65 20 74 6f | Main ro|utine to|
|000006b0| 20 73 68 6f 77 20 74 68 | 65 20 75 73 65 20 6f 66 | show th|e use of|
|000006c0| 20 45 61 73 79 52 65 71 | 75 65 73 74 41 72 67 73 | EasyReq|uestArgs|
|000006d0| 28 29 0a 50 52 4f 43 20 | 6d 61 69 6e 28 29 0a 20 |().PROC |main(). |
|000006e0| 20 44 45 46 20 61 6e 73 | 77 65 72 2c 20 6e 75 6d | DEF ans|wer, num|
|000006f0| 62 65 72 2c 20 74 65 78 | 74 0a 0a 20 20 6e 75 6d |ber, tex|t.. num|
|00000700| 62 65 72 3a 3d 33 31 32 | 35 37 39 34 20 20 2d 3e |ber:=312|5794 ->|
|00000710| 20 46 6f 72 20 75 73 65 | 20 69 6e 20 74 68 65 20 | For use| in the |
|00000720| 6d 69 64 64 6c 65 20 62 | 75 74 74 6f 6e 0a 0a 20 |middle b|utton.. |
|00000730| 20 2d 3e 20 54 68 65 20 | 65 61 73 79 20 72 65 71 | -> The |easy req|
|00000740| 75 65 73 74 20 73 74 72 | 75 63 75 74 72 65 20 75 |uest str|ucutre u|
|00000750| 73 65 73 20 6d 61 6e 79 | 20 66 65 61 74 75 72 65 |ses many| feature|
|00000760| 73 20 6f 66 20 45 61 73 | 79 52 65 71 75 65 73 74 |s of Eas|yRequest|
|00000770| 41 72 67 73 28 29 2c 0a | 20 20 2d 3e 20 69 6e 63 |Args(),.| -> inc|
|00000780| 6c 75 64 69 6e 67 3a 0a | 20 20 2d 3e 20 20 20 20 |luding:.| -> |
|00000790| 20 6d 75 6c 74 69 70 6c | 65 20 6c 69 6e 65 73 20 | multipl|e lines |
|000007a0| 6f 66 20 62 6f 64 79 20 | 74 65 78 74 20 73 65 70 |of body |text sep|
|000007b0| 61 72 61 74 65 64 20 62 | 79 20 27 5c 6e 27 2e 0a |arated b|y '\n'..|
|000007c0| 20 20 2d 3e 20 20 20 20 | 20 76 61 72 69 61 62 6c | -> | variabl|
|000007d0| 65 20 73 75 62 73 74 69 | 74 75 74 69 6f 6e 20 6f |e substi|tution o|
|000007e0| 66 20 61 20 73 74 72 69 | 6e 67 20 28 25 73 29 20 |f a stri|ng (%s) |
|000007f0| 69 6e 20 74 68 65 20 62 | 6f 64 79 20 74 65 78 74 |in the b|ody text|
|00000800| 00 00 00 08 00 00 03 fd | 00 00 00 02 00 00 01 e8 |........|........|
|00000810| 00 00 00 05 62 fe 40 fc | 2e 0a 20 20 2d 3e 20 20 |....b.@.|.. -> |
|00000820| 20 20 20 6d 75 6c 74 69 | 70 6c 65 20 62 75 74 74 | multi|ple butt|
|00000830| 6f 6e 20 67 61 64 67 65 | 74 73 20 73 65 70 61 72 |on gadge|ts separ|
|00000840| 61 74 65 64 20 62 79 20 | 27 7c 27 2e 0a 20 20 2d |ated by |'|'.. -|
|00000850| 3e 20 20 20 20 20 76 61 | 72 69 61 62 6c 65 20 73 |> va|riable s|
|00000860| 75 62 73 74 69 74 75 74 | 69 6f 6e 20 69 6e 20 61 |ubstitut|ion in a|
|00000870| 20 67 61 64 67 65 74 20 | 28 6c 6f 6e 67 20 64 65 | gadget |(long de|
|00000880| 63 69 6d 61 6c 20 27 25 | 6c 64 27 29 2e 0a 0a 20 |cimal '%|ld')... |
|00000890| 20 2d 3e 20 4e 4f 54 45 | 20 69 6e 20 74 68 65 20 | -> NOTE| in the |
|000008a0| 76 61 72 69 61 62 6c 65 | 20 73 75 62 73 74 69 74 |variable| substit|
|000008b0| 75 74 69 6f 6e 3a 0a 20 | 20 2d 3e 20 20 20 20 20 |ution:. | -> |
|000008c0| 74 68 65 20 73 74 72 69 | 6e 67 20 67 6f 65 73 20 |the stri|ng goes |
|000008d0| 69 6e 20 74 68 65 20 66 | 69 72 73 74 20 6f 70 65 |in the f|irst ope|
|000008e0| 6e 20 76 61 72 69 61 62 | 6c 65 20 28 69 6e 20 62 |n variab|le (in b|
|000008f0| 6f 64 79 20 74 65 78 74 | 29 2e 0a 20 20 2d 3e 20 |ody text|).. -> |
|00000900| 20 20 20 20 74 68 65 20 | 6e 75 6d 62 65 72 20 67 | the |number g|
|00000910| 6f 65 73 20 69 6e 20 74 | 68 65 20 73 65 63 6f 6e |oes in t|he secon|
|00000920| 64 20 6f 70 65 6e 20 28 | 67 61 64 67 65 74 20 74 |d open (|gadget t|
|00000930| 65 78 74 29 2e 0a 20 20 | 74 65 78 74 3a 3d 27 54 |ext).. |text:='T|
|00000940| 65 78 74 20 66 6f 72 20 | 74 68 65 20 72 65 71 75 |ext for |the requ|
|00000950| 65 73 74 5c 6e 27 2b 0a | 20 20 20 20 20 20 20 20 |est\n'+.| |
|00000960| 27 53 65 63 6f 6e 64 20 | 6c 69 6e 65 20 6f 66 20 |'Second |line of |
|00000970| 25 73 20 74 65 78 74 5c | 6e 27 2b 0a 20 20 20 20 |%s text\|n'+. |
|00000980| 20 20 20 20 27 54 68 69 | 72 64 20 6c 69 6e 65 20 | 'Thi|rd line |
|00000990| 6f 66 20 74 65 78 74 20 | 66 6f 72 20 74 68 65 20 |of text |for the |
|000009a0| 72 65 71 75 65 73 74 27 | 0a 20 20 61 6e 73 77 65 |request'|. answe|
|000009b0| 72 3a 3d 45 61 73 79 52 | 65 71 75 65 73 74 41 72 |r:=EasyR|equestAr|
|000009c0| 67 73 28 4e 49 4c 2c 0a | 20 20 20 20 20 20 20 20 |gs(NIL,.| |
|000009d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000009e0| 20 5b 53 49 5a 45 4f 46 | 20 65 61 73 79 73 74 72 | [SIZEOF| easystr|
|000009f0| 75 63 74 2c 20 30 2c 20 | 27 52 65 71 75 65 73 74 |uct, 0, |'Request|
|00000a00| 00 00 00 08 00 00 03 fd | 00 00 00 03 00 00 01 e8 |........|........|
|00000a10| 00 00 00 06 bc 28 a2 2b | 20 57 69 6e 64 6f 77 20 |.....(.+| Window |
|00000a20| 4e 61 6d 65 27 2c 0a 20 | 20 20 20 20 20 20 20 20 |Name',. | |
|00000a30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a40| 20 74 65 78 74 2c 0a 20 | 20 20 20 20 20 20 20 20 | text,. | |
|00000a50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a60| 20 27 59 65 73 7c 25 6c | 64 7c 4e 6f 27 5d 3a 65 | 'Yes|%l|d|No']:e|
|00000a70| 61 73 79 73 74 72 75 63 | 74 2c 0a 20 20 20 20 20 |asystruc|t,. |
|00000a80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000a90| 20 20 20 20 20 4e 49 4c | 2c 20 5b 27 28 56 61 72 | NIL|, ['(Var|
|00000aa0| 69 61 62 6c 65 29 27 2c | 20 6e 75 6d 62 65 72 5d |iable)',| number]|
|00000ab0| 29 0a 20 20 2d 3e 20 50 | 72 6f 63 65 73 73 20 74 |). -> P|rocess t|
|00000ac0| 68 65 20 61 6e 73 77 65 | 72 2e 20 20 4e 6f 74 65 |he answe|r. Note|
|00000ad0| 20 74 68 61 74 20 74 68 | 65 20 62 75 74 74 6f 6e | that th|e button|
|00000ae0| 73 20 61 72 65 20 6e 75 | 6d 62 65 72 65 64 20 69 |s are nu|mbered i|
|00000af0| 6e 20 61 20 73 74 72 61 | 6e 67 65 0a 20 20 2d 3e |n a stra|nge. ->|
|00000b00| 20 6f 72 64 65 72 2e 20 | 20 54 68 69 73 20 69 73 | order. | This is|
|00000b10| 20 62 65 63 61 75 73 65 | 20 74 68 65 20 72 69 67 | because| the rig|
|00000b20| 68 74 6d 6f 73 74 20 62 | 75 74 74 6f 6e 20 69 73 |htmost b|utton is|
|00000b30| 20 61 6c 77 61 79 73 20 | 61 20 6e 65 67 61 74 69 | always |a negati|
|00000b40| 76 65 20 72 65 70 6c 79 | 2e 0a 20 20 2d 3e 20 54 |ve reply|.. -> T|
|00000b50| 68 65 20 63 6f 64 65 20 | 63 61 6e 20 75 73 65 20 |he code |can use |
|00000b60| 74 68 69 73 20 69 66 20 | 69 74 20 63 68 6f 6f 73 |this if |it choos|
|00000b70| 65 73 2c 20 77 69 74 68 | 20 61 20 63 6f 6e 73 74 |es, with| a const|
|00000b80| 72 75 63 74 20 6c 69 6b | 65 3a 0a 20 20 2d 3e 0a |ruct lik|e:. ->.|
|00000b90| 20 20 2d 3e 20 20 20 20 | 20 49 46 20 45 61 73 79 | -> | IF Easy|
|00000ba0| 52 65 71 75 65 73 74 41 | 72 67 73 28 29 20 54 48 |RequestA|rgs() TH|
|00000bb0| 45 4e 20 70 6f 73 69 74 | 69 76 65 5f 72 65 73 70 |EN posit|ive_resp|
|00000bc0| 6f 6e 73 65 28 29 0a 20 | 20 53 45 4c 45 43 54 20 |onse(). | SELECT |
|00000bd0| 61 6e 73 77 65 72 0a 20 | 20 43 41 53 45 20 31 3b |answer. | CASE 1;|
|00000be0| 20 57 72 69 74 65 46 28 | 27 53 65 6c 65 63 74 65 | WriteF(|'Selecte|
|00000bf0| 64 20 22 59 65 73 22 5c | 6e 27 29 0a 20 20 43 41 |d "Yes"\|n'). CA|
|00000c00| 00 00 00 08 00 00 03 fd | 00 00 00 04 00 00 00 60 |........|.......`|
|00000c10| 00 00 00 00 21 ee a2 09 | 53 45 20 32 3b 20 57 72 |....!...|SE 2; Wr|
|00000c20| 69 74 65 46 28 27 53 65 | 6c 65 63 74 65 64 20 22 |iteF('Se|lected "|
|00000c30| 5c 64 22 5c 6e 27 2c 20 | 6e 75 6d 62 65 72 29 0a |\d"\n', |number).|
|00000c40| 20 20 43 41 53 45 20 30 | 3b 20 57 72 69 74 65 46 | CASE 0|; WriteF|
|00000c50| 28 27 53 65 6c 65 63 74 | 65 64 20 22 4e 6f 22 5c |('Select|ed "No"\|
|00000c60| 6e 27 29 0a 20 20 45 4e | 44 53 45 4c 45 43 54 0a |n'). EN|DSELECT.|
|00000c70| 45 4e 44 50 52 4f 43 0a | 74 2c 0a 20 20 20 20 20 |ENDPROC.|t,. |
|00000c80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000c90| 20 20 20 20 20 4e 49 4c | 2c 20 5b 27 28 56 61 72 | NIL|, ['(Var|
|00000ca0| 69 61 62 6c 65 29 27 2c | 20 6e 75 6d 62 65 72 5d |iable)',| number]|
|00000cb0| 29 0a 20 20 2d 3e 20 50 | 72 6f 63 65 73 73 20 74 |). -> P|rocess t|
|00000cc0| 68 65 20 61 6e 73 77 65 | 72 2e 20 20 4e 6f 74 65 |he answe|r. Note|
|00000cd0| 20 74 68 61 74 20 74 68 | 65 20 62 75 74 74 6f 6e | that th|e button|
|00000ce0| 73 20 61 72 65 20 6e 75 | 6d 62 65 72 65 64 20 69 |s are nu|mbered i|
|00000cf0| 6e 20 61 20 73 74 72 61 | 6e 67 65 0a 20 20 2d 3e |n a stra|nge. ->|
|00000d00| 20 6f 72 64 65 72 2e 20 | 20 54 68 69 73 20 69 73 | order. | This is|
|00000d10| 20 62 65 63 61 75 73 65 | 20 74 68 65 20 72 69 67 | because| the rig|
|00000d20| 68 74 6d 6f 73 74 20 62 | 75 74 74 6f 6e 20 69 73 |htmost b|utton is|
|00000d30| 20 61 6c 77 61 79 73 20 | 61 20 6e 65 67 61 74 69 | always |a negati|
|00000d40| 76 65 20 72 65 70 6c 79 | 2e 0a 20 20 2d 3e 20 54 |ve reply|.. -> T|
|00000d50| 68 65 20 63 6f 64 65 20 | 63 61 6e 20 75 73 65 20 |he code |can use |
|00000d60| 74 68 69 73 20 69 66 20 | 69 74 20 63 68 6f 6f 73 |this if |it choos|
|00000d70| 65 73 2c 20 77 69 74 68 | 20 61 20 63 6f 6e 73 74 |es, with| a const|
|00000d80| 72 75 63 74 20 6c 69 6b | 65 3a 0a 20 20 2d 3e 0a |ruct lik|e:. ->.|
|00000d90| 20 20 2d 3e 20 20 20 20 | 20 49 46 20 45 61 73 79 | -> | IF Easy|
|00000da0| 52 65 71 75 65 73 74 41 | 72 67 73 28 29 20 54 48 |RequestA|rgs() TH|
|00000db0| 45 4e 20 70 6f 73 69 74 | 69 76 65 5f 72 65 73 70 |EN posit|ive_resp|
|00000dc0| 6f 6e 73 65 28 29 0a 20 | 20 53 45 4c 45 43 54 20 |onse(). | SELECT |
|00000dd0| 61 6e 73 77 65 72 0a 20 | 20 43 41 53 45 20 31 3b |answer. | CASE 1;|
|00000de0| 20 57 72 69 74 65 46 28 | 27 53 65 6c 65 63 74 65 | WriteF(|'Selecte|
|00000df0| 64 20 22 59 65 73 22 5c | 6e 27 29 0a 20 20 43 41 |d "Yes"\|n'). CA|
|00000e00| 00 00 00 08 00 00 03 fe | 00 00 00 01 00 00 01 e8 |........|........|
|00000e10| 00 00 00 08 64 df 82 4d | 2d 3e 20 64 69 73 70 6c |....d..M|-> displ|
|00000e20| 61 79 61 6c 65 72 74 2e | 65 20 2d 20 20 54 68 69 |ayalert.|e - Thi|
|00000e30| 73 20 70 72 6f 67 72 61 | 6d 20 69 6d 70 6c 65 6d |s progra|m implem|
|00000e40| 65 6e 74 73 20 61 20 72 | 65 63 6f 76 65 72 61 62 |ents a r|ecoverab|
|00000e50| 6c 65 20 61 6c 65 72 74 | 0a 0a 4d 4f 44 55 4c 45 |le alert|..MODULE|
|00000e60| 20 27 69 6e 74 75 69 74 | 69 6f 6e 2f 69 6e 74 75 | 'intuit|ion/intu|
|00000e70| 69 74 69 6f 6e 27 0a 0a | 50 52 4f 43 20 6d 61 69 |ition'..|PROC mai|
|00000e80| 6e 28 29 0a 20 20 49 46 | 20 44 69 73 70 6c 61 79 |n(). IF| Display|
|00000e90| 41 6c 65 72 74 28 52 45 | 43 4f 56 45 52 59 5f 41 |Alert(RE|COVERY_A|
|00000ea0| 4c 45 52 54 2c 20 7b 61 | 6c 65 72 74 4d 73 67 7d |LERT, {a|lertMsg}|
|00000eb0| 2c 20 35 32 29 0a 20 20 | 20 20 57 72 69 74 65 46 |, 52). | WriteF|
|00000ec0| 28 27 41 6c 65 72 74 20 | 72 65 74 75 72 6e 65 64 |('Alert |returned|
|00000ed0| 20 54 52 55 45 5c 6e 27 | 29 0a 20 20 45 4c 53 45 | TRUE\n'|). ELSE|
|00000ee0| 0a 20 20 20 20 57 72 69 | 74 65 46 28 27 41 6c 65 |. Wri|teF('Ale|
|00000ef0| 72 74 20 72 65 74 75 72 | 6e 65 64 20 46 41 4c 53 |rt retur|ned FALS|
|00000f00| 45 5c 6e 27 29 0a 20 20 | 45 4e 44 49 46 0a 45 4e |E\n'). |ENDIF.EN|
|00000f10| 44 50 52 4f 43 0a 0a 2d | 3e 20 45 61 63 68 20 73 |DPROC..-|> Each s|
|00000f20| 74 72 69 6e 67 20 72 65 | 71 75 69 72 65 73 20 69 |tring re|quires i|
|00000f30| 74 73 20 6f 77 6e 20 70 | 6f 73 69 74 69 6f 6e 69 |ts own p|ositioni|
|00000f40| 6e 67 20 69 6e 66 6f 72 | 6d 61 74 69 6f 6e 2c 20 |ng infor|mation, |
|00000f50| 61 73 20 65 78 70 6c 61 | 69 6e 65 64 20 69 6e 20 |as expla|ined in |
|00000f60| 74 68 65 0a 2d 3e 20 6d | 61 6e 75 61 6c 2e 20 20 |the.-> m|anual. |
|00000f70| 48 65 78 20 6e 6f 74 61 | 74 69 6f 6e 20 68 61 73 |Hex nota|tion has|
|00000f80| 20 62 65 65 6e 20 75 73 | 65 64 20 74 6f 20 73 70 | been us|ed to sp|
|00000f90| 65 63 69 66 79 20 74 68 | 65 20 70 6f 73 69 74 69 |ecify th|e positi|
|00000fa0| 6f 6e 73 20 6f 66 20 74 | 68 65 20 74 65 78 74 2e |ons of t|he text.|
|00000fb0| 0a 2d 3e 20 48 65 78 20 | 6e 75 6d 62 65 72 73 20 |.-> Hex |numbers |
|00000fc0| 73 74 61 72 74 20 77 69 | 74 68 20 61 20 22 24 22 |start wi|th a "$"|
|00000fd0| 20 61 6e 64 20 74 68 65 | 20 63 68 61 72 61 63 74 | and the| charact|
|00000fe0| 65 72 73 20 74 68 61 74 | 20 6d 61 6b 65 20 75 70 |ers that| make up|
|00000ff0| 20 74 68 65 20 6e 75 6d | 62 65 72 2e 0a 2d 3e 0a | the num|ber..->.|
|00001000| 00 00 00 08 00 00 03 fe | 00 00 00 02 00 00 01 e8 |........|........|
|00001010| 00 00 00 09 64 f4 db 63 | 2d 3e 20 45 61 63 68 20 |....d..c|-> Each |
|00001020| 6c 69 6e 65 20 6e 65 65 | 64 73 20 32 20 62 79 74 |line nee|ds 2 byt|
|00001030| 65 73 20 6f 66 20 78 20 | 70 6f 73 69 74 69 6f 6e |es of x |position|
|00001040| 2c 20 61 6e 64 20 31 20 | 62 79 74 65 20 6f 66 20 |, and 1 |byte of |
|00001050| 79 20 70 6f 73 69 74 69 | 6f 6e 2e 0a 2d 3e 20 20 |y positi|on..-> |
|00001060| 20 69 6e 20 6f 75 72 20 | 31 73 74 20 6c 69 6e 65 | in our |1st line|
|00001070| 3a 20 78 20 3d 20 30 20 | 24 66 30 20 28 32 20 62 |: x = 0 |$f0 (2 b|
|00001080| 79 74 65 73 29 20 61 6e | 64 20 79 20 3d 20 24 31 |ytes) an|d y = $1|
|00001090| 34 20 28 31 20 62 79 74 | 65 29 0a 2d 3e 20 20 20 |4 (1 byt|e).-> |
|000010a0| 49 6e 20 6f 75 72 20 32 | 6e 64 20 6c 69 6e 65 3a |In our 2|nd line:|
|000010b0| 20 78 20 3d 20 30 20 24 | 38 30 20 28 32 20 62 79 | x = 0 $|80 (2 by|
|000010c0| 74 65 73 29 20 61 6e 64 | 20 79 20 3d 20 24 32 34 |tes) and| y = $24|
|000010d0| 20 28 31 20 62 79 74 65 | 29 0a 2d 3e 20 45 61 63 | (1 byte|).-> Eac|
|000010e0| 68 20 6c 69 6e 65 20 69 | 73 20 4e 49 4c 20 74 65 |h line i|s NIL te|
|000010f0| 72 6d 69 6e 61 74 65 64 | 20 70 6c 75 73 20 61 20 |rminated| plus a |
|00001100| 63 6f 6e 74 69 6e 75 61 | 74 69 6f 6e 20 63 68 61 |continua|tion cha|
|00001110| 72 61 63 74 65 72 20 28 | 30 3d 64 6f 6e 65 29 2e |racter (|0=done).|
|00001120| 20 20 54 68 65 0a 2d 3e | 20 65 6e 74 69 72 65 20 | The.->| entire |
|00001130| 61 6c 65 72 74 20 6d 75 | 73 74 20 65 6e 64 20 69 |alert mu|st end i|
|00001140| 6e 20 54 57 4f 20 4e 49 | 4c 73 2c 20 6f 6e 65 20 |n TWO NI|Ls, one |
|00001150| 66 6f 72 20 74 68 65 20 | 65 6e 64 20 6f 66 20 74 |for the |end of t|
|00001160| 68 65 20 73 74 72 69 6e | 67 2c 20 61 6e 64 20 6f |he strin|g, and o|
|00001170| 6e 65 0a 2d 3e 20 66 6f | 72 20 74 68 65 20 30 20 |ne.-> fo|r the 0 |
|00001180| 63 6f 6e 74 69 6e 75 61 | 74 69 6f 6e 20 63 68 61 |continua|tion cha|
|00001190| 72 61 63 74 65 72 2e 0a | 2d 3e 20 45 2d 4e 6f 74 |racter..|-> E-Not|
|000011a0| 65 3a 20 75 73 69 6e 67 | 20 73 74 61 74 69 63 20 |e: using| static |
|000011b0| 64 61 74 61 20 69 73 20 | 6a 75 73 74 20 6f 6e 65 |data is |just one|
|000011c0| 20 77 61 79 20 6f 66 20 | 64 6f 69 6e 67 20 74 68 | way of |doing th|
|000011d0| 69 73 20 6e 65 61 74 6c | 79 0a 61 6c 65 72 74 4d |is neatl|y.alertM|
|000011e0| 73 67 3a 0a 20 20 43 48 | 41 52 20 30 2c 20 24 66 |sg:. CH|AR 0, $f|
|000011f0| 30 2c 20 24 31 34 2c 20 | 27 4f 48 20 4e 4f 2c 20 |0, $14, |'OH NO, |
|00001200| 00 00 00 08 00 00 03 fe | 00 00 00 03 00 00 00 60 |........|.......`|
|00001210| 00 00 00 00 c9 a1 b0 f6 | 4e 4f 54 20 41 47 41 49 |........|NOT AGAI|
|00001220| 4e 21 27 2c 20 4e 49 4c | 2c 20 31 2c 0a 20 20 20 |N!', NIL|, 1,. |
|00001230| 20 20 20 20 30 2c 20 24 | 38 30 2c 20 24 32 34 2c | 0, $|80, $24,|
|00001240| 20 27 50 52 45 53 53 20 | 4d 4f 55 53 45 42 55 54 | 'PRESS |MOUSEBUT|
|00001250| 54 4f 4e 3a 20 20 20 4c | 45 46 54 3d 54 52 55 45 |TON: L|EFT=TRUE|
|00001260| 20 20 20 52 49 47 48 54 | 3d 46 41 4c 53 45 27 2c | RIGHT|=FALSE',|
|00001270| 20 4e 49 4c 2c 20 30 0a | 24 66 30 20 28 32 20 62 | NIL, 0.|$f0 (2 b|
|00001280| 79 74 65 73 29 20 61 6e | 64 20 79 20 3d 20 24 31 |ytes) an|d y = $1|
|00001290| 34 20 28 31 20 62 79 74 | 65 29 0a 2d 3e 20 20 20 |4 (1 byt|e).-> |
|000012a0| 49 6e 20 6f 75 72 20 32 | 6e 64 20 6c 69 6e 65 3a |In our 2|nd line:|
|000012b0| 20 78 20 3d 20 30 20 24 | 38 30 20 28 32 20 62 79 | x = 0 $|80 (2 by|
|000012c0| 74 65 73 29 20 61 6e 64 | 20 79 20 3d 20 24 32 34 |tes) and| y = $24|
|000012d0| 20 28 31 20 62 79 74 65 | 29 0a 2d 3e 20 45 61 63 | (1 byte|).-> Eac|
|000012e0| 68 20 6c 69 6e 65 20 69 | 73 20 4e 49 4c 20 74 65 |h line i|s NIL te|
|000012f0| 72 6d 69 6e 61 74 65 64 | 20 70 6c 75 73 20 61 20 |rminated| plus a |
|00001300| 63 6f 6e 74 69 6e 75 61 | 74 69 6f 6e 20 63 68 61 |continua|tion cha|
|00001310| 72 61 63 74 65 72 20 28 | 30 3d 64 6f 6e 65 29 2e |racter (|0=done).|
|00001320| 20 20 54 68 65 0a 2d 3e | 20 65 6e 74 69 72 65 20 | The.->| entire |
|00001330| 61 6c 65 72 74 20 6d 75 | 73 74 20 65 6e 64 20 69 |alert mu|st end i|
|00001340| 6e 20 54 57 4f 20 4e 49 | 4c 73 2c 20 6f 6e 65 20 |n TWO NI|Ls, one |
|00001350| 66 6f 72 20 74 68 65 20 | 65 6e 64 20 6f 66 20 74 |for the |end of t|
|00001360| 68 65 20 73 74 72 69 6e | 67 2c 20 61 6e 64 20 6f |he strin|g, and o|
|00001370| 6e 65 0a 2d 3e 20 66 6f | 72 20 74 68 65 20 30 20 |ne.-> fo|r the 0 |
|00001380| 63 6f 6e 74 69 6e 75 61 | 74 69 6f 6e 20 63 68 61 |continua|tion cha|
|00001390| 72 61 63 74 65 72 2e 0a | 2d 3e 20 45 2d 4e 6f 74 |racter..|-> E-Not|
|000013a0| 65 3a 20 75 73 69 6e 67 | 20 73 74 61 74 69 63 20 |e: using| static |
|000013b0| 64 61 74 61 20 69 73 20 | 6a 75 73 74 20 6f 6e 65 |data is |just one|
|000013c0| 20 77 61 79 20 6f 66 20 | 64 6f 69 6e 67 20 74 68 | way of |doing th|
|000013d0| 69 73 20 6e 65 61 74 6c | 79 0a 61 6c 65 72 74 4d |is neatl|y.alertM|
|000013e0| 73 67 3a 0a 20 20 43 48 | 41 52 20 30 2c 20 24 66 |sg:. CH|AR 0, $f|
|000013f0| 30 2c 20 24 31 34 2c 20 | 27 4f 48 20 4e 4f 2c 20 |0, $14, |'OH NO, |
|00001400| 00 00 00 08 00 00 03 ff | 00 00 00 01 00 00 01 e8 |........|........|
|00001410| 00 00 00 0b 85 5a 6f ca | 2d 3e 20 62 6c 6f 63 6b |.....Zo.|-> block|
|00001420| 69 6e 70 75 74 2e 65 20 | 2d 2d 20 50 72 6f 67 72 |input.e |-- Progr|
|00001430| 61 6d 20 74 6f 20 64 65 | 6d 6f 6e 73 74 72 61 74 |am to de|monstrat|
|00001440| 65 20 68 6f 77 20 74 6f | 20 62 6c 6f 63 6b 20 74 |e how to| block t|
|00001450| 68 65 20 69 6e 70 75 74 | 20 66 72 6f 6d 20 61 20 |he input| from a |
|00001460| 77 69 6e 64 6f 77 0a 2d | 3e 20 75 73 69 6e 67 20 |window.-|> using |
|00001470| 61 20 6d 69 6e 69 6d 61 | 6c 20 72 65 71 75 65 73 |a minima|l reques|
|00001480| 74 65 72 2c 20 61 6e 64 | 20 68 6f 77 20 74 6f 20 |ter, and| how to |
|00001490| 70 75 74 20 75 70 20 61 | 20 62 75 73 79 20 70 6f |put up a| busy po|
|000014a0| 69 6e 74 65 72 2e 0a 0a | 4f 50 54 20 4f 53 56 45 |inter...|OPT OSVE|
|000014b0| 52 53 49 4f 4e 3d 33 37 | 20 20 2d 3e 20 45 2d 4e |RSION=37| -> E-N|
|000014c0| 6f 74 65 3a 20 73 69 6c | 65 6e 74 6c 79 20 72 65 |ote: sil|ently re|
|000014d0| 71 75 69 72 65 20 56 33 | 37 0a 0a 4d 4f 44 55 4c |quire V3|7..MODUL|
|000014e0| 45 20 27 65 78 65 63 2f | 6d 65 6d 6f 72 79 27 2c |E 'exec/|memory',|
|000014f0| 0a 20 20 20 20 20 20 20 | 27 69 6e 74 75 69 74 69 |. |'intuiti|
|00001500| 6f 6e 2f 69 6e 74 75 69 | 74 69 6f 6e 27 0a 0a 45 |on/intui|tion'..E|
|00001510| 4e 55 4d 20 45 52 52 5f | 4e 4f 4e 45 2c 20 45 52 |NUM ERR_|NONE, ER|
|00001520| 52 5f 57 49 4e 0a 0a 52 | 41 49 53 45 20 45 52 52 |R_WIN..R|AISE ERR|
|00001530| 5f 57 49 4e 20 49 46 20 | 4f 70 65 6e 57 69 6e 64 |_WIN IF |OpenWind|
|00001540| 6f 77 54 61 67 4c 69 73 | 74 28 29 3d 4e 49 4c 0a |owTagLis|t()=NIL.|
|00001550| 0a 2d 3e 20 4f 70 65 6e | 20 61 20 77 69 6e 64 6f |.-> Open| a windo|
|00001560| 77 20 61 6e 64 20 64 69 | 73 70 6c 61 79 20 61 20 |w and di|splay a |
|00001570| 62 75 73 79 2d 70 6f 69 | 6e 74 65 72 20 66 6f 72 |busy-poi|nter for|
|00001580| 20 61 20 73 68 6f 72 74 | 20 74 69 6d 65 20 74 68 | a short| time th|
|00001590| 65 6e 20 77 61 69 74 20 | 66 6f 72 20 74 68 65 0a |en wait |for the.|
|000015a0| 2d 3e 20 75 73 65 72 20 | 74 6f 20 68 69 74 20 74 |-> user |to hit t|
|000015b0| 68 65 20 63 6c 6f 73 65 | 20 67 61 64 67 65 74 20 |he close| gadget |
|000015c0| 28 69 6e 20 70 72 6f 63 | 65 73 73 49 44 43 4d 50 |(in proc|essIDCMP|
|000015d0| 28 29 29 2e 20 20 4e 6f | 72 6d 61 6c 6c 79 2c 20 |()). No|rmally, |
|000015e0| 74 68 65 20 61 70 70 6c | 69 63 61 74 69 6f 6e 0a |the appl|ication.|
|000015f0| 2d 3e 20 77 6f 75 6c 64 | 20 62 72 61 63 6b 65 74 |-> would| bracket|
|00001600| 00 00 00 08 00 00 03 ff | 00 00 00 02 00 00 01 e8 |........|........|
|00001610| 00 00 00 0c 58 5a ea 08 | 20 73 65 63 74 69 6f 6e |....XZ..| section|
|00001620| 73 20 6f 66 20 63 6f 64 | 65 20 77 68 65 72 65 20 |s of cod|e where |
|00001630| 69 74 20 77 69 73 68 65 | 73 20 74 6f 20 62 6c 6f |it wishe|s to blo|
|00001640| 63 6b 20 77 69 6e 64 6f | 77 20 69 6e 70 75 74 20 |ck windo|w input |
|00001650| 77 69 74 68 0a 2d 3e 20 | 74 68 65 20 62 65 67 69 |with.-> |the begi|
|00001660| 6e 57 61 69 74 28 29 20 | 61 6e 64 20 65 6e 64 57 |nWait() |and endW|
|00001670| 61 69 74 28 29 20 66 75 | 6e 63 74 69 6f 6e 73 2e |ait() fu|nctions.|
|00001680| 0a 50 52 4f 43 20 6d 61 | 69 6e 28 29 20 48 41 4e |.PROC ma|in() HAN|
|00001690| 44 4c 45 0a 20 20 44 45 | 46 20 77 69 6e 3d 4e 49 |DLE. DE|F win=NI|
|000016a0| 4c 0a 0a 20 20 77 69 6e | 3a 3d 4f 70 65 6e 57 69 |L.. win|:=OpenWi|
|000016b0| 6e 64 6f 77 54 61 67 4c | 69 73 74 28 4e 49 4c 2c |ndowTagL|ist(NIL,|
|000016c0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000016d0| 20 20 20 20 20 20 20 20 | 20 5b 57 41 5f 49 44 43 | | [WA_IDC|
|000016e0| 4d 50 2c 20 20 20 20 20 | 20 20 49 44 43 4d 50 5f |MP, | IDCMP_|
|000016f0| 43 4c 4f 53 45 57 49 4e | 44 4f 57 20 4f 52 20 49 |CLOSEWIN|DOW OR I|
|00001700| 44 43 4d 50 5f 49 4e 54 | 55 49 54 49 43 4b 53 2c |DCMP_INT|UITICKS,|
|00001710| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001720| 20 20 20 20 20 20 20 20 | 20 20 57 41 5f 41 43 54 | | WA_ACT|
|00001730| 49 56 41 54 45 2c 20 20 | 20 20 54 52 55 45 2c 0a |IVATE, | TRUE,.|
|00001740| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001750| 20 20 20 20 20 20 20 20 | 20 57 41 5f 57 49 44 54 | | WA_WIDT|
|00001760| 48 2c 20 20 20 20 20 20 | 20 33 32 30 2c 0a 20 20 |H, | 320,. |
|00001770| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001780| 20 20 20 20 20 20 20 57 | 41 5f 48 45 49 47 48 54 | W|A_HEIGHT|
|00001790| 2c 20 20 20 20 20 20 31 | 30 30 2c 0a 20 20 20 20 |, 1|00,. |
|000017a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000017b0| 20 20 20 20 20 57 41 5f | 43 4c 4f 53 45 47 41 44 | WA_|CLOSEGAD|
|000017c0| 47 45 54 2c 20 54 52 55 | 45 2c 0a 20 20 20 20 20 |GET, TRU|E,. |
|000017d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000017e0| 20 20 20 20 57 41 5f 44 | 52 41 47 42 41 52 2c 20 | WA_D|RAGBAR, |
|000017f0| 20 20 20 20 54 52 55 45 | 2c 0a 20 20 20 20 20 20 | TRUE|,. |
|00001800| 00 00 00 08 00 00 03 ff | 00 00 00 03 00 00 01 e8 |........|........|
|00001810| 00 00 00 0d 59 fd 36 15 | 20 20 20 20 20 20 20 20 |....Y.6.| |
|00001820| 20 20 20 20 20 20 20 20 | 20 20 20 57 41 5f 44 45 | | WA_DE|
|00001830| 50 54 48 47 41 44 47 45 | 54 2c 20 54 52 55 45 2c |PTHGADGE|T, TRUE,|
|00001840| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001850| 20 20 20 20 20 20 20 20 | 20 20 57 41 5f 53 49 5a | | WA_SIZ|
|00001860| 45 47 41 44 47 45 54 2c | 20 20 54 52 55 45 2c 0a |EGADGET,| TRUE,.|
|00001870| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001880| 20 20 20 20 20 20 20 20 | 20 57 41 5f 4d 41 58 57 | | WA_MAXW|
|00001890| 49 44 54 48 2c 20 20 20 | 20 2d 31 2c 0a 20 20 20 |IDTH, | -1,. |
|000018a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000018b0| 20 20 20 20 20 20 57 41 | 5f 4d 41 58 48 45 49 47 | WA|_MAXHEIG|
|000018c0| 48 54 2c 20 20 20 2d 31 | 2c 0a 20 20 20 20 20 20 |HT, -1|,. |
|000018d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000018e0| 20 20 20 4e 49 4c 5d 29 | 0a 20 20 70 72 6f 63 65 | NIL])|. proce|
|000018f0| 73 73 49 44 43 4d 50 28 | 77 69 6e 29 0a 0a 45 58 |ssIDCMP(|win)..EX|
|00001900| 43 45 50 54 20 44 4f 0a | 20 20 49 46 20 77 69 6e |CEPT DO.| IF win|
|00001910| 20 54 48 45 4e 20 43 6c | 6f 73 65 57 69 6e 64 6f | THEN Cl|oseWindo|
|00001920| 77 28 77 69 6e 29 0a 20 | 20 2d 3e 20 45 2d 4e 6f |w(win). | -> E-No|
|00001930| 74 65 3a 20 77 65 20 63 | 61 6e 20 70 72 69 6e 74 |te: we c|an print|
|00001940| 20 61 20 6d 69 6e 69 6d | 61 6c 20 65 72 72 6f 72 | a minim|al error|
|00001950| 20 6d 65 73 73 61 67 65 | 0a 20 20 53 45 4c 45 43 | message|. SELEC|
|00001960| 54 20 65 78 63 65 70 74 | 69 6f 6e 0a 20 20 43 41 |T except|ion. CA|
|00001970| 53 45 20 45 52 52 5f 57 | 49 4e 3b 20 57 72 69 74 |SE ERR_W|IN; Writ|
|00001980| 65 46 28 27 45 72 72 6f | 72 3a 20 46 61 69 6c 65 |eF('Erro|r: Faile|
|00001990| 64 20 74 6f 20 6f 70 65 | 6e 20 77 69 6e 64 6f 77 |d to ope|n window|
|000019a0| 5c 6e 27 29 0a 20 20 43 | 41 53 45 20 22 4d 45 4d |\n'). C|ASE "MEM|
|000019b0| 22 3b 20 20 20 57 72 69 | 74 65 46 28 27 45 72 72 |"; Wri|teF('Err|
|000019c0| 6f 72 3a 20 52 61 6e 20 | 6f 75 74 20 6f 66 20 28 |or: Ran |out of (|
|000019d0| 63 68 69 70 29 20 6d 65 | 6d 6f 72 79 5c 6e 27 29 |chip) me|mory\n')|
|000019e0| 0a 20 20 45 4e 44 53 45 | 4c 45 43 54 0a 45 4e 44 |. ENDSE|LECT.END|
|000019f0| 50 52 4f 43 0a 0a 2d 3e | 20 45 2d 4e 6f 74 65 3a |PROC..->| E-Note:|
|00001a00| 00 00 00 08 00 00 03 ff | 00 00 00 04 00 00 01 e8 |........|........|
|00001a10| 00 00 00 0e 31 f8 fd c1 | 20 67 65 74 20 73 6f 6d |....1...| get som|
|00001a20| 65 20 43 68 69 70 20 6d | 65 6d 6f 72 79 20 61 6e |e Chip m|emory an|
|00001a30| 64 20 63 6f 70 79 20 6c | 69 73 74 20 28 71 75 69 |d copy l|ist (qui|
|00001a40| 63 6b 2c 20 73 69 6e 63 | 65 20 4c 4f 4e 47 20 61 |ck, sinc|e LONG a|
|00001a50| 6c 69 67 6e 65 64 29 0a | 50 52 4f 43 20 63 6f 70 |ligned).|PROC cop|
|00001a60| 79 4c 69 73 74 54 6f 43 | 68 69 70 28 64 61 74 61 |yListToC|hip(data|
|00001a70| 29 0a 20 20 44 45 46 20 | 73 69 7a 65 2c 20 6d 65 |). DEF |size, me|
|00001a80| 6d 0a 20 20 73 69 7a 65 | 3a 3d 4c 69 73 74 4c 65 |m. size|:=ListLe|
|00001a90| 6e 28 64 61 74 61 29 2a | 53 49 5a 45 4f 46 20 4c |n(data)*|SIZEOF L|
|00001aa0| 4f 4e 47 0a 20 20 6d 65 | 6d 3a 3d 4e 65 77 4d 28 |ONG. me|m:=NewM(|
|00001ab0| 73 69 7a 65 2c 20 4d 45 | 4d 46 5f 43 48 49 50 29 |size, ME|MF_CHIP)|
|00001ac0| 0a 20 20 43 6f 70 79 4d | 65 6d 51 75 69 63 6b 28 |. CopyM|emQuick(|
|00001ad0| 64 61 74 61 2c 20 6d 65 | 6d 2c 20 73 69 7a 65 29 |data, me|m, size)|
|00001ae0| 0a 45 4e 44 50 52 4f 43 | 20 6d 65 6d 0a 0a 2d 3e |.ENDPROC| mem..->|
|00001af0| 20 43 6c 65 61 72 20 74 | 68 65 20 72 65 71 75 65 | Clear t|he reque|
|00001b00| 73 74 65 72 20 77 69 74 | 68 20 49 6e 69 74 52 65 |ster wit|h InitRe|
|00001b10| 71 75 65 73 74 65 72 2e | 20 20 54 68 69 73 20 6d |quester.| This m|
|00001b20| 61 6b 65 73 20 61 20 72 | 65 71 75 65 73 74 65 72 |akes a r|equester|
|00001b30| 20 6f 66 0a 2d 3e 20 77 | 69 64 74 68 20 3d 20 30 | of.-> w|idth = 0|
|00001b40| 2c 20 68 65 69 67 68 74 | 20 3d 20 30 2c 20 6c 65 |, height| = 0, le|
|00001b50| 66 74 20 3d 20 30 2c 20 | 74 6f 70 20 3d 20 30 3b |ft = 0, |top = 0;|
|00001b60| 20 69 6e 20 66 61 63 74 | 2c 20 65 76 65 72 79 74 | in fact|, everyt|
|00001b70| 68 69 6e 67 20 69 73 20 | 7a 65 72 6f 2e 20 20 54 |hing is |zero. T|
|00001b80| 68 69 73 0a 2d 3e 20 72 | 65 71 75 65 73 74 65 72 |his.-> r|equester|
|00001b90| 20 77 69 6c 6c 20 73 69 | 6d 70 6c 79 20 62 6c 6f | will si|mply blo|
|00001ba0| 63 6b 20 69 6e 70 75 74 | 20 74 6f 20 74 68 65 20 |ck input| to the |
|00001bb0| 77 69 6e 64 6f 77 20 75 | 6e 74 69 6c 20 45 6e 64 |window u|ntil End|
|00001bc0| 52 65 71 75 65 73 74 20 | 69 73 20 63 61 6c 6c 65 |Request |is calle|
|00001bd0| 64 2e 0a 2d 3e 0a 2d 3e | 20 54 68 65 20 70 6f 69 |d..->.->| The poi|
|00001be0| 6e 74 65 72 20 69 73 20 | 73 65 74 20 74 6f 20 61 |nter is |set to a|
|00001bf0| 20 72 65 61 73 6f 6e 61 | 62 6c 65 20 34 2d 63 6f | reasona|ble 4-co|
|00001c00| 00 00 00 08 00 00 03 ff | 00 00 00 05 00 00 01 e8 |........|........|
|00001c10| 00 00 00 0f e2 57 65 21 | 6c 6f 72 20 62 75 73 79 |.....We!|lor busy|
|00001c20| 20 70 6f 69 6e 74 65 72 | 2c 20 77 69 74 68 20 70 | pointer|, with p|
|00001c30| 72 6f 70 65 72 20 6f 66 | 66 73 65 74 73 2e 0a 50 |roper of|fsets..P|
|00001c40| 52 4f 43 20 62 65 67 69 | 6e 57 61 69 74 28 77 69 |ROC begi|nWait(wi|
|00001c50| 6e 2c 20 77 61 69 74 52 | 65 71 75 65 73 74 29 0a |n, waitR|equest).|
|00001c60| 20 20 44 45 46 20 77 61 | 69 74 50 6f 69 6e 74 65 | DEF wa|itPointe|
|00001c70| 72 0a 0a 20 20 2d 3e 20 | 44 61 74 61 20 66 6f 72 |r.. -> |Data for|
|00001c80| 20 61 20 62 75 73 79 20 | 70 6f 69 6e 74 65 72 2e | a busy |pointer.|
|00001c90| 0a 20 20 2d 3e 20 54 68 | 69 73 20 64 61 74 61 20 |. -> Th|is data |
|00001ca0| 6d 75 73 74 20 62 65 20 | 69 6e 20 63 68 69 70 20 |must be |in chip |
|00001cb0| 6d 65 6d 6f 72 79 21 21 | 21 0a 20 20 2d 3e 20 45 |memory!!|!. -> E|
|00001cc0| 2d 4e 6f 74 65 3a 20 74 | 68 65 20 64 61 74 61 20 |-Note: t|he data |
|00001cd0| 69 73 20 72 65 61 6c 6c | 79 20 61 20 6c 6f 74 20 |is reall|y a lot |
|00001ce0| 6f 66 20 4c 4f 4e 47 73 | 0a 20 20 77 61 69 74 50 |of LONGs|. waitP|
|00001cf0| 6f 69 6e 74 65 72 3a 3d | 63 6f 70 79 4c 69 73 74 |ointer:=|copyList|
|00001d00| 54 6f 43 68 69 70 28 5b | 24 30 30 30 30 30 30 30 |ToChip([|$0000000|
|00001d10| 30 2c 20 20 20 2d 3e 20 | 52 65 73 65 72 76 65 64 |0, -> |Reserved|
|00001d20| 2c 20 6d 75 73 74 20 62 | 65 20 4e 49 4c 0a 20 20 |, must b|e NIL. |
|00001d30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 24 30 34 | | $04|
|00001d50| 30 30 30 37 43 30 2c 20 | 20 24 30 30 30 30 30 37 |0007C0, | $000007|
|00001d60| 43 30 2c 20 20 24 30 31 | 30 30 30 33 38 30 2c 20 |C0, $01|000380, |
|00001d70| 20 24 30 30 30 30 30 37 | 45 30 2c 0a 20 20 20 20 | $000007|E0,. |
|00001d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d90| 20 20 20 20 20 20 20 20 | 20 20 20 24 30 37 43 30 | | $07C0|
|00001da0| 31 46 46 38 2c 20 20 24 | 31 46 46 30 33 46 45 43 |1FF8, $|1FF03FEC|
|00001db0| 2c 20 20 24 33 46 46 38 | 37 46 44 45 2c 20 20 24 |, $3FF8|7FDE, $|
|00001dc0| 33 46 46 38 37 46 42 45 | 2c 0a 20 20 20 20 20 20 |3FF87FBE|,. |
|00001dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001de0| 20 20 20 20 20 20 20 20 | 20 24 37 46 46 43 46 46 | | $7FFCFF|
|00001df0| 37 46 2c 20 20 24 37 45 | 46 43 46 46 46 46 2c 20 |7F, $7E|FCFFFF, |
|00001e00| 00 00 00 08 00 00 03 ff | 00 00 00 06 00 00 01 e8 |........|........|
|00001e10| 00 00 00 10 ab 15 46 44 | 20 24 37 46 46 43 46 46 |......FD| $7FFCFF|
|00001e20| 46 46 2c 20 20 24 33 46 | 46 38 37 46 46 45 2c 0a |FF, $3F|F87FFE,.|
|00001e30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001e40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 24 | | $|
|00001e50| 33 46 46 38 37 46 46 45 | 2c 20 20 24 31 46 46 30 |3FF87FFE|, $1FF0|
|00001e60| 33 46 46 43 2c 20 20 24 | 30 37 43 30 31 46 46 38 |3FFC, $|07C01FF8|
|00001e70| 2c 20 20 24 30 30 30 30 | 30 37 45 30 2c 0a 20 20 |, $0000|07E0,. |
|00001e80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001e90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 24 30 30 | | $00|
|00001ea0| 30 30 30 30 30 30 20 20 | 20 20 2d 3e 20 52 65 73 |000000 | -> Res|
|00001eb0| 65 72 76 65 64 2c 20 6d | 75 73 74 20 62 65 20 4e |erved, m|ust be N|
|00001ec0| 49 4c 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |IL. | |
|00001ed0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001ee0| 20 5d 29 0a 0a 20 20 49 | 6e 69 74 52 65 71 75 65 | ]).. I|nitReque|
|00001ef0| 73 74 65 72 28 77 61 69 | 74 52 65 71 75 65 73 74 |ster(wai|tRequest|
|00001f00| 29 0a 20 20 49 46 20 52 | 65 71 75 65 73 74 28 77 |). IF R|equest(w|
|00001f10| 61 69 74 52 65 71 75 65 | 73 74 2c 20 77 69 6e 29 |aitReque|st, win)|
|00001f20| 0a 20 20 20 20 53 65 74 | 50 6f 69 6e 74 65 72 28 |. Set|Pointer(|
|00001f30| 77 69 6e 2c 20 77 61 69 | 74 50 6f 69 6e 74 65 72 |win, wai|tPointer|
|00001f40| 2c 20 31 36 2c 20 31 36 | 2c 20 2d 36 2c 20 30 29 |, 16, 16|, -6, 0)|
|00001f50| 0a 20 20 20 20 53 65 74 | 57 69 6e 64 6f 77 54 69 |. Set|WindowTi|
|00001f60| 74 6c 65 73 28 77 69 6e | 2c 20 27 42 75 73 79 20 |tles(win|, 'Busy |
|00001f70| 2d 20 49 6e 70 75 74 20 | 42 6c 6f 63 6b 65 64 27 |- Input |Blocked'|
|00001f80| 2c 20 2d 31 29 0a 20 20 | 20 20 52 45 54 55 52 4e |, -1). | RETURN|
|00001f90| 20 54 52 55 45 0a 20 20 | 45 4c 53 45 0a 20 20 20 | TRUE. |ELSE. |
|00001fa0| 20 52 45 54 55 52 4e 20 | 46 41 4c 53 45 0a 20 20 | RETURN |FALSE. |
|00001fb0| 45 4e 44 49 46 0a 45 4e | 44 50 52 4f 43 0a 0a 2d |ENDIF.EN|DPROC..-|
|00001fc0| 3e 20 52 6f 75 74 69 6e | 65 20 74 6f 20 72 65 73 |> Routin|e to res|
|00001fd0| 65 74 20 74 68 65 20 70 | 6f 69 6e 74 65 72 20 74 |et the p|ointer t|
|00001fe0| 6f 20 74 68 65 20 73 79 | 73 74 65 6d 20 64 65 66 |o the sy|stem def|
|00001ff0| 61 75 6c 74 2c 20 61 6e | 64 20 72 65 6d 6f 76 65 |ault, an|d remove|
|00002000| 00 00 00 08 00 00 03 ff | 00 00 00 07 00 00 01 e8 |........|........|
|00002010| 00 00 00 11 3f b6 14 de | 20 74 68 65 20 72 65 71 |....?...| the req|
|00002020| 75 65 73 74 65 72 0a 2d | 3e 20 69 6e 73 74 61 6c |uester.-|> instal|
|00002030| 6c 65 64 20 77 69 74 68 | 20 62 65 67 69 6e 57 61 |led with| beginWa|
|00002040| 69 74 28 29 2e 0a 50 52 | 4f 43 20 65 6e 64 57 61 |it()..PR|OC endWa|
|00002050| 69 74 28 77 69 6e 2c 20 | 77 61 69 74 52 65 71 75 |it(win, |waitRequ|
|00002060| 65 73 74 29 0a 20 20 43 | 6c 65 61 72 50 6f 69 6e |est). C|learPoin|
|00002070| 74 65 72 28 77 69 6e 29 | 0a 20 20 45 6e 64 52 65 |ter(win)|. EndRe|
|00002080| 71 75 65 73 74 28 77 61 | 69 74 52 65 71 75 65 73 |quest(wa|itReques|
|00002090| 74 2c 20 77 69 6e 29 0a | 20 20 53 65 74 57 69 6e |t, win).| SetWin|
|000020a0| 64 6f 77 54 69 74 6c 65 | 73 28 77 69 6e 2c 20 27 |dowTitle|s(win, '|
|000020b0| 4e 6f 74 20 42 75 73 79 | 27 2c 20 2d 31 29 0a 45 |Not Busy|', -1).E|
|000020c0| 4e 44 50 52 4f 43 0a 0a | 2d 3e 20 57 61 69 74 20 |NDPROC..|-> Wait |
|000020d0| 66 6f 72 20 74 68 65 20 | 75 73 65 72 20 74 6f 20 |for the |user to |
|000020e0| 63 6c 6f 73 65 20 74 68 | 65 20 77 69 6e 64 6f 77 |close th|e window|
|000020f0| 2e 0a 50 52 4f 43 20 70 | 72 6f 63 65 73 73 49 44 |..PROC p|rocessID|
|00002100| 43 4d 50 28 77 69 6e 29 | 0a 20 20 44 45 46 20 63 |CMP(win)|. DEF c|
|00002110| 6c 61 73 73 2c 20 6d 79 | 72 65 71 3a 72 65 71 75 |lass, my|req:requ|
|00002120| 65 73 74 65 72 2c 20 74 | 69 63 6b 5f 63 6f 75 6e |ester, t|ick_coun|
|00002130| 74 0a 0a 20 20 2d 3e 20 | 50 75 74 20 75 70 20 61 |t.. -> |Put up a|
|00002140| 20 72 65 71 75 65 73 74 | 65 72 20 77 69 74 68 20 | request|er with |
|00002150| 6e 6f 20 69 6d 61 67 65 | 72 79 20 28 73 69 7a 65 |no image|ry (size|
|00002160| 20 7a 65 72 6f 29 2e 0a | 20 20 49 46 20 62 65 67 | zero)..| IF beg|
|00002170| 69 6e 57 61 69 74 28 77 | 69 6e 2c 20 6d 79 72 65 |inWait(w|in, myre|
|00002180| 71 29 0a 20 20 20 20 2d | 3e 20 49 6e 73 65 72 74 |q). -|> Insert|
|00002190| 20 63 6f 64 65 20 68 65 | 72 65 20 66 6f 72 20 61 | code he|re for a|
|000021a0| 20 77 69 6e 64 6f 77 20 | 74 6f 20 61 63 74 20 61 | window |to act a|
|000021b0| 73 20 74 68 65 20 72 65 | 71 75 65 73 74 65 72 2e |s the re|quester.|
|000021c0| 0a 0a 20 20 20 20 2d 3e | 20 57 65 27 6c 6c 20 63 |.. ->| We'll c|
|000021d0| 6f 75 6e 74 20 64 6f 77 | 6e 20 49 4e 54 55 49 54 |ount dow|n INTUIT|
|000021e0| 49 43 4b 53 2c 20 77 68 | 69 63 68 20 63 6f 6d 65 |ICKS, wh|ich come|
|000021f0| 20 61 62 6f 75 74 20 74 | 65 6e 20 74 69 6d 65 73 | about t|en times|
|00002200| 00 00 00 08 00 00 03 ff | 00 00 00 08 00 00 01 53 |........|.......S|
|00002210| 00 00 00 00 a4 ae 97 4a | 20 61 20 73 65 63 6f 6e |.......J| a secon|
|00002220| 64 2e 20 20 57 65 27 6c | 6c 0a 20 20 20 20 2d 3e |d. We'l|l. ->|
|00002230| 20 6b 65 65 70 20 74 68 | 65 20 62 75 73 79 20 73 | keep th|e busy s|
|00002240| 74 61 74 65 20 66 6f 72 | 20 61 62 6f 75 74 20 74 |tate for| about t|
|00002250| 68 72 65 65 20 73 65 63 | 6f 6e 64 73 2e 0a 20 20 |hree sec|onds.. |
|00002260| 20 20 74 69 63 6b 5f 63 | 6f 75 6e 74 3a 3d 33 30 | tick_c|ount:=30|
|00002270| 0a 20 20 45 4e 44 49 46 | 0a 0a 20 20 52 45 50 45 |. ENDIF|.. REPE|
|00002280| 41 54 0a 20 20 20 20 63 | 6c 61 73 73 3a 3d 57 61 |AT. c|lass:=Wa|
|00002290| 69 74 49 4d 65 73 73 61 | 67 65 28 77 69 6e 29 0a |itIMessa|ge(win).|
|000022a0| 20 20 20 20 53 45 4c 45 | 43 54 20 63 6c 61 73 73 | SELE|CT class|
|000022b0| 0a 20 20 20 20 43 41 53 | 45 20 49 44 43 4d 50 5f |. CAS|E IDCMP_|
|000022c0| 49 4e 54 55 49 54 49 43 | 4b 53 0a 20 20 20 20 20 |INTUITIC|KS. |
|000022d0| 20 49 46 20 74 69 63 6b | 5f 63 6f 75 6e 74 3e 30 | IF tick|_count>0|
|000022e0| 0a 20 20 20 20 20 20 20 | 20 44 45 43 20 74 69 63 |. | DEC tic|
|000022f0| 6b 5f 63 6f 75 6e 74 0a | 20 20 20 20 20 20 20 20 |k_count.| |
|00002300| 49 46 20 74 69 63 6b 5f | 63 6f 75 6e 74 3d 30 20 |IF tick_|count=0 |
|00002310| 54 48 45 4e 20 65 6e 64 | 57 61 69 74 28 77 69 6e |THEN end|Wait(win|
|00002320| 2c 20 6d 79 72 65 71 29 | 0a 20 20 20 20 20 20 45 |, myreq)|. E|
|00002330| 4e 44 49 46 0a 20 20 20 | 20 45 4e 44 53 45 4c 45 |NDIF. | ENDSELE|
|00002340| 43 54 0a 20 20 55 4e 54 | 49 4c 20 63 6c 61 73 73 |CT. UNT|IL class|
|00002350| 3d 49 44 43 4d 50 5f 43 | 4c 4f 53 45 57 49 4e 44 |=IDCMP_C|LOSEWIND|
|00002360| 4f 57 0a 45 4e 44 50 52 | 4f 43 0a 46 20 62 65 67 |OW.ENDPR|OC.F beg|
|00002370| 69 6e 57 61 69 74 28 77 | 69 6e 2c 20 6d 79 72 65 |inWait(w|in, myre|
|00002380| 71 29 0a 20 20 20 20 2d | 3e 20 49 6e 73 65 72 74 |q). -|> Insert|
|00002390| 20 63 6f 64 65 20 68 65 | 72 65 20 66 6f 72 20 61 | code he|re for a|
|000023a0| 20 77 69 6e 64 6f 77 20 | 74 6f 20 61 63 74 20 61 | window |to act a|
|000023b0| 73 20 74 68 65 20 72 65 | 71 75 65 73 74 65 72 2e |s the re|quester.|
|000023c0| 0a 0a 20 20 20 20 2d 3e | 20 57 65 27 6c 6c 20 63 |.. ->| We'll c|
|000023d0| 6f 75 6e 74 20 64 6f 77 | 6e 20 49 4e 54 55 49 54 |ount dow|n INTUIT|
|000023e0| 49 43 4b 53 2c 20 77 68 | 69 63 68 20 63 6f 6d 65 |ICKS, wh|ich come|
|000023f0| 20 61 62 6f 75 74 20 74 | 65 6e 20 74 69 6d 65 73 | about t|en times|
|00002400| 00 00 00 08 00 00 04 00 | 00 00 00 01 00 00 01 e8 |........|........|
|00002410| 00 00 00 13 38 49 33 08 | 2d 3e 20 72 61 77 6b 65 |....8I3.|-> rawke|
|00002420| 79 2e 65 20 2d 20 48 6f | 77 20 74 6f 20 63 6f 72 |y.e - Ho|w to cor|
|00002430| 72 65 63 74 6c 79 20 63 | 6f 6e 76 65 72 74 20 66 |rectly c|onvert f|
|00002440| 72 6f 6d 20 52 41 57 4b | 45 59 20 74 6f 20 6b 65 |rom RAWK|EY to ke|
|00002450| 79 6d 61 70 70 65 64 20 | 41 53 43 49 49 0a 0a 4d |ymapped |ASCII..M|
|00002460| 4f 44 55 4c 45 20 27 63 | 6f 6e 73 6f 6c 65 27 2c |ODULE 'c|onsole',|
|00002470| 0a 20 20 20 20 20 20 20 | 27 64 65 76 69 63 65 73 |. |'devices|
|00002480| 2f 69 6e 70 75 74 65 76 | 65 6e 74 27 2c 0a 20 20 |/inputev|ent',. |
|00002490| 20 20 20 20 20 27 64 65 | 76 69 63 65 73 2f 74 69 | 'de|vices/ti|
|000024a0| 6d 65 72 27 2c 0a 20 20 | 20 20 20 20 20 27 65 78 |mer',. | 'ex|
|000024b0| 65 63 2f 69 6f 27 2c 0a | 20 20 20 20 20 20 20 27 |ec/io',.| '|
|000024c0| 69 6e 74 75 69 74 69 6f | 6e 2f 69 6e 74 75 69 74 |intuitio|n/intuit|
|000024d0| 69 6f 6e 27 0a 0a 45 4e | 55 4d 20 45 52 52 5f 4e |ion'..EN|UM ERR_N|
|000024e0| 4f 4e 45 2c 20 45 52 52 | 5f 44 45 56 2c 20 45 52 |ONE, ERR|_DEV, ER|
|000024f0| 52 5f 57 49 4e 0a 0a 52 | 41 49 53 45 20 45 52 52 |R_WIN..R|AISE ERR|
|00002500| 5f 44 45 56 20 49 46 20 | 4f 70 65 6e 44 65 76 69 |_DEV IF |OpenDevi|
|00002510| 63 65 28 29 3c 3e 30 2c | 0a 20 20 20 20 20 20 45 |ce()<>0,|. E|
|00002520| 52 52 5f 57 49 4e 20 49 | 46 20 4f 70 65 6e 57 69 |RR_WIN I|F OpenWi|
|00002530| 6e 64 6f 77 54 61 67 4c | 69 73 74 28 29 3d 4e 49 |ndowTagL|ist()=NI|
|00002540| 4c 0a 0a 2d 3e 20 41 20 | 62 75 66 66 65 72 20 69 |L..-> A |buffer i|
|00002550| 73 20 63 72 65 61 74 65 | 64 20 66 6f 72 20 52 61 |s create|d for Ra|
|00002560| 77 4b 65 79 43 6f 6e 76 | 65 72 74 28 29 20 74 6f |wKeyConv|ert() to|
|00002570| 20 70 75 74 20 69 74 73 | 20 6f 75 74 70 75 74 2e | put its| output.|
|00002580| 20 42 55 46 53 49 5a 45 | 20 69 73 20 74 68 65 0a | BUFSIZE| is the.|
|00002590| 2d 3e 20 73 69 7a 65 20 | 6f 66 20 74 68 65 20 62 |-> size |of the b|
|000025a0| 75 66 66 65 72 20 69 6e | 20 62 79 74 65 73 2e 20 |uffer in| bytes. |
|000025b0| 20 4e 4f 54 45 20 74 68 | 61 74 20 74 68 69 73 20 | NOTE th|at this |
|000025c0| 70 72 6f 67 72 61 6d 20 | 73 74 61 72 74 73 20 6f |program |starts o|
|000025d0| 75 74 20 77 69 74 68 20 | 61 0a 2d 3e 20 62 75 66 |ut with |a.-> buf|
|000025e0| 66 65 72 20 73 69 7a 65 | 20 6f 66 20 32 2e 20 20 |fer size| of 2. |
|000025f0| 54 68 69 73 20 69 73 20 | 6f 6e 6c 79 20 74 6f 20 |This is |only to |
|00002600| 00 00 00 08 00 00 04 00 | 00 00 00 02 00 00 01 e8 |........|........|
|00002610| 00 00 00 14 03 99 24 24 | 73 68 6f 77 20 68 6f 77 |......$$|show how|
|00002620| 20 74 68 65 20 62 75 66 | 66 65 72 20 69 73 20 61 | the buf|fer is a|
|00002630| 75 74 6f 6d 61 74 69 63 | 61 6c 6c 79 0a 2d 3e 20 |utomatic|ally.-> |
|00002640| 69 6e 63 72 65 61 73 65 | 64 20 69 6e 20 73 69 7a |increase|d in siz|
|00002650| 65 20 62 79 20 74 68 69 | 73 20 65 78 61 6d 70 6c |e by thi|s exampl|
|00002660| 65 21 20 20 49 6e 20 61 | 6e 20 61 70 70 6c 69 63 |e! In a|n applic|
|00002670| 61 74 69 6f 6e 2c 20 73 | 74 61 72 74 20 77 69 74 |ation, s|tart wit|
|00002680| 68 20 61 20 6d 75 63 68 | 0a 2d 3e 20 6c 61 72 67 |h a much|.-> larg|
|00002690| 65 72 20 62 75 66 66 65 | 72 20 61 6e 64 20 79 6f |er buffe|r and yo|
|000026a0| 75 20 77 69 6c 6c 20 70 | 72 6f 62 61 62 6c 79 20 |u will p|robably |
|000026b0| 6e 65 76 65 72 20 68 61 | 76 65 20 74 6f 20 69 6e |never ha|ve to in|
|000026c0| 63 72 65 61 73 65 20 69 | 74 73 20 73 69 7a 65 2e |crease i|ts size.|
|000026d0| 20 31 32 38 0a 2d 3e 20 | 62 79 74 65 73 20 6f 72 | 128.-> |bytes or|
|000026e0| 20 73 6f 20 73 68 6f 75 | 6c 64 20 64 6f 20 74 68 | so shou|ld do th|
|000026f0| 65 20 74 72 69 63 6b 2c | 20 62 75 74 20 61 6c 77 |e trick,| but alw|
|00002700| 61 79 73 20 62 65 20 61 | 62 6c 65 20 74 6f 20 63 |ays be a|ble to c|
|00002710| 68 61 6e 67 65 20 74 68 | 65 20 73 69 7a 65 20 69 |hange th|e size i|
|00002720| 66 0a 2d 3e 20 72 65 71 | 75 69 72 65 64 2e 0a 43 |f.-> req|uired..C|
|00002730| 4f 4e 53 54 20 42 55 46 | 53 49 5a 45 3d 32 0a 0a |ONST BUF|SIZE=2..|
|00002740| 50 52 4f 43 20 6d 61 69 | 6e 28 29 20 48 41 4e 44 |PROC mai|n() HAND|
|00002750| 4c 45 0a 20 20 44 45 46 | 20 77 69 6e 3d 4e 49 4c |LE. DEF| win=NIL|
|00002760| 2c 20 69 6f 72 65 71 3a | 69 6f 73 74 64 2c 20 69 |, ioreq:|iostd, i|
|00002770| 65 76 65 6e 74 3d 4e 49 | 4c 3a 50 54 52 20 54 4f |event=NI|L:PTR TO|
|00002780| 20 69 6e 70 75 74 65 76 | 65 6e 74 2c 0a 20 20 20 | inputev|ent,. |
|00002790| 20 20 20 62 75 66 66 65 | 72 3d 4e 49 4c 2c 20 62 | buffe|r=NIL, b|
|000027a0| 75 66 73 69 7a 65 3d 42 | 55 46 53 49 5a 45 0a 20 |ufsize=B|UFSIZE. |
|000027b0| 20 2d 3e 20 4f 70 65 6e | 20 74 68 65 20 63 6f 6e | -> Open| the con|
|000027c0| 73 6f 6c 65 20 64 65 76 | 69 63 65 20 6a 75 73 74 |sole dev|ice just|
|000027d0| 20 74 6f 20 64 6f 20 6b | 65 79 6d 61 70 70 69 6e | to do k|eymappin|
|000027e0| 67 2e 20 28 75 6e 69 74 | 20 2d 31 20 6d 65 61 6e |g. (unit| -1 mean|
|000027f0| 73 20 61 6e 79 20 75 6e | 69 74 29 0a 20 20 4f 70 |s any un|it). Op|
|00002800| 00 00 00 08 00 00 04 00 | 00 00 00 03 00 00 01 e8 |........|........|
|00002810| 00 00 00 15 a1 e4 74 be | 65 6e 44 65 76 69 63 65 |......t.|enDevice|
|00002820| 28 27 63 6f 6e 73 6f 6c | 65 2e 64 65 76 69 63 65 |('consol|e.device|
|00002830| 27 2c 20 2d 31 2c 20 69 | 6f 72 65 71 2c 20 30 29 |', -1, i|oreq, 0)|
|00002840| 0a 20 20 63 6f 6e 73 6f | 6c 65 64 65 76 69 63 65 |. conso|ledevice|
|00002850| 3a 3d 69 6f 72 65 71 2e | 64 65 76 69 63 65 0a 20 |:=ioreq.|device. |
|00002860| 20 2d 3e 20 41 6c 6c 6f | 63 61 74 65 20 74 68 65 | -> Allo|cate the|
|00002870| 20 69 6e 69 74 69 61 6c | 20 63 68 61 72 61 63 74 | initial| charact|
|00002880| 65 72 20 62 75 66 66 65 | 72 20 75 73 65 64 20 62 |er buffe|r used b|
|00002890| 79 20 64 65 61 64 4b 65 | 79 43 6f 6e 76 65 72 74 |y deadKe|yConvert|
|000028a0| 28 29 20 61 6e 64 0a 20 | 20 2d 3e 20 52 61 77 4b |() and. | -> RawK|
|000028b0| 65 79 43 6f 6e 76 65 72 | 74 28 29 20 66 6f 72 20 |eyConver|t() for |
|000028c0| 72 65 74 75 72 6e 69 6e | 67 20 74 72 61 6e 73 6c |returnin|g transl|
|000028d0| 61 74 65 64 20 63 68 61 | 72 61 63 74 65 72 73 2e |ated cha|racters.|
|000028e0| 20 20 49 66 20 74 68 65 | 20 63 68 61 72 61 63 74 | If the| charact|
|000028f0| 65 72 73 0a 20 20 2d 3e | 20 67 65 6e 65 72 61 74 |ers. ->| generat|
|00002900| 65 64 20 62 79 20 74 68 | 65 73 65 20 72 6f 75 74 |ed by th|ese rout|
|00002910| 69 6e 65 73 20 63 61 6e | 6e 6f 74 20 66 69 74 20 |ines can|not fit |
|00002920| 69 6e 74 6f 20 74 68 65 | 20 62 75 66 66 65 72 2c |into the| buffer,|
|00002930| 20 74 68 65 20 61 70 70 | 6c 69 63 61 74 69 6f 6e | the app|lication|
|00002940| 0a 20 20 2d 3e 20 6d 75 | 73 74 20 70 61 73 73 20 |. -> mu|st pass |
|00002950| 61 20 6c 61 72 67 65 72 | 20 62 75 66 66 65 72 2e |a larger| buffer.|
|00002960| 20 20 54 68 69 73 20 69 | 73 20 64 6f 6e 65 20 69 | This i|s done i|
|00002970| 6e 20 74 68 69 73 20 63 | 6f 64 65 20 62 79 20 66 |n this c|ode by f|
|00002980| 72 65 65 69 6e 67 20 74 | 68 65 20 6f 6c 64 0a 20 |reeing t|he old. |
|00002990| 20 2d 3e 20 62 75 66 66 | 65 72 20 61 6e 64 20 61 | -> buff|er and a|
|000029a0| 6c 6c 6f 63 61 74 69 6e | 67 20 61 20 6e 65 77 20 |llocatin|g a new |
|000029b0| 6f 6e 65 2e 0a 20 20 62 | 75 66 66 65 72 3a 3d 4e |one.. b|uffer:=N|
|000029c0| 65 77 52 28 62 75 66 73 | 69 7a 65 29 0a 20 20 4e |ewR(bufs|ize). N|
|000029d0| 45 57 20 69 65 76 65 6e | 74 0a 20 20 77 69 6e 3a |EW ieven|t. win:|
|000029e0| 3d 4f 70 65 6e 57 69 6e | 64 6f 77 54 61 67 4c 69 |=OpenWin|dowTagLi|
|000029f0| 73 74 28 4e 49 4c 2c 0a | 20 20 20 20 20 20 20 20 |st(NIL,.| |
|00002a00| 00 00 00 08 00 00 04 00 | 00 00 00 04 00 00 01 e8 |........|........|
|00002a10| 00 00 00 16 ac 19 d0 8f | 20 20 20 20 20 20 5b 57 |........| [W|
|00002a20| 41 5f 57 49 44 54 48 2c | 20 33 30 30 2c 0a 20 20 |A_WIDTH,| 300,. |
|00002a30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 57 41 5f | | WA_|
|00002a40| 48 45 49 47 48 54 2c 20 | 35 30 2c 0a 20 20 20 20 |HEIGHT, |50,. |
|00002a50| 20 20 20 20 20 20 20 20 | 20 20 20 57 41 5f 46 4c | | WA_FL|
|00002a60| 41 47 53 2c 20 57 46 4c | 47 5f 44 45 50 54 48 47 |AGS, WFL|G_DEPTHG|
|00002a70| 41 44 47 45 54 20 4f 52 | 20 57 46 4c 47 5f 43 4c |ADGET OR| WFLG_CL|
|00002a80| 4f 53 45 47 41 44 47 45 | 54 20 4f 52 20 57 46 4c |OSEGADGE|T OR WFL|
|00002a90| 47 5f 41 43 54 49 56 41 | 54 45 2c 0a 20 20 20 20 |G_ACTIVA|TE,. |
|00002aa0| 20 20 20 20 20 20 20 20 | 20 20 20 57 41 5f 49 44 | | WA_ID|
|00002ab0| 43 4d 50 2c 20 49 44 43 | 4d 50 5f 43 4c 4f 53 45 |CMP, IDC|MP_CLOSE|
|00002ac0| 57 49 4e 44 4f 57 20 4f | 52 20 49 44 43 4d 50 5f |WINDOW O|R IDCMP_|
|00002ad0| 52 41 57 4b 45 59 2c 0a | 20 20 20 20 20 20 20 20 |RAWKEY,.| |
|00002ae0| 20 20 20 20 20 20 20 57 | 41 5f 54 49 54 4c 45 2c | W|A_TITLE,|
|00002af0| 20 27 52 61 77 20 4b 65 | 79 20 45 78 61 6d 70 6c | 'Raw Ke|y Exampl|
|00002b00| 65 27 2c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |e',. | |
|00002b10| 20 20 20 4e 49 4c 5d 29 | 0a 20 20 57 72 69 74 65 | NIL])|. Write|
|00002b20| 46 28 27 50 72 65 73 73 | 20 6b 65 79 62 6f 61 72 |F('Press| keyboar|
|00002b30| 64 20 6b 65 79 73 20 74 | 6f 20 73 65 65 20 41 53 |d keys t|o see AS|
|00002b40| 43 49 49 20 63 6f 6e 76 | 65 72 73 69 6f 6e 20 66 |CII conv|ersion f|
|00002b50| 72 6f 6d 20 72 61 77 6b | 65 79 5c 6e 27 29 0a 20 |rom rawk|ey\n'). |
|00002b60| 20 57 72 69 74 65 46 28 | 27 55 6e 70 72 69 6e 74 | WriteF(|'Unprint|
|00002b70| 61 62 6c 65 20 63 68 61 | 72 61 63 74 65 72 73 20 |able cha|racters |
|00002b80| 77 69 6c 6c 20 62 65 20 | 73 68 6f 77 6e 20 61 73 |will be |shown as|
|00002b90| 20 5c 63 5c 6e 5c 6e 27 | 2c 20 24 37 46 29 0a 20 | \c\n\n'|, $7F). |
|00002ba0| 20 70 72 6f 63 65 73 73 | 5f 77 69 6e 64 6f 77 28 | process|_window(|
|00002bb0| 77 69 6e 2c 20 69 65 76 | 65 6e 74 2c 20 7b 62 75 |win, iev|ent, {bu|
|00002bc0| 66 66 65 72 7d 2c 20 7b | 62 75 66 73 69 7a 65 7d |ffer}, {|bufsize}|
|00002bd0| 29 0a 0a 45 58 43 45 50 | 54 20 44 4f 0a 20 20 49 |)..EXCEP|T DO. I|
|00002be0| 46 20 77 69 6e 20 54 48 | 45 4e 20 43 6c 6f 73 65 |F win TH|EN Close|
|00002bf0| 57 69 6e 64 6f 77 28 77 | 69 6e 29 0a 20 20 2d 3e |Window(w|in). ->|
|00002c00| 00 00 00 08 00 00 04 00 | 00 00 00 05 00 00 01 e8 |........|........|
|00002c10| 00 00 00 17 a6 6f 5f 6b | 20 45 2d 4e 6f 74 65 3a |.....o_k| E-Note:|
|00002c20| 20 64 6f 6e 27 74 20 6e | 65 65 64 20 74 6f 20 66 | don't n|eed to f|
|00002c30| 72 65 65 20 61 6e 79 20 | 6d 65 6d 6f 72 79 20 2d |ree any |memory -|
|00002c40| 2d 20 61 75 74 6f 6d 61 | 74 69 63 61 6c 6c 79 20 |- automa|tically |
|00002c50| 64 6f 6e 65 0a 20 20 49 | 46 20 63 6f 6e 73 6f 6c |done. I|F consol|
|00002c60| 65 64 65 76 69 63 65 20 | 54 48 45 4e 20 43 6c 6f |edevice |THEN Clo|
|00002c70| 73 65 44 65 76 69 63 65 | 28 69 6f 72 65 71 29 0a |seDevice|(ioreq).|
|00002c80| 20 20 53 45 4c 45 43 54 | 20 65 78 63 65 70 74 69 | SELECT| excepti|
|00002c90| 6f 6e 0a 20 20 43 41 53 | 45 20 45 52 52 5f 44 45 |on. CAS|E ERR_DE|
|00002ca0| 56 3b 20 57 72 69 74 65 | 46 28 27 45 72 72 6f 72 |V; Write|F('Error|
|00002cb0| 3a 20 46 61 69 6c 65 64 | 20 74 6f 20 6f 70 65 6e |: Failed| to open|
|00002cc0| 20 63 6f 6e 73 6f 6c 65 | 20 64 65 76 69 63 65 2e | console| device.|
|00002cd0| 5c 6e 27 29 0a 20 20 43 | 41 53 45 20 45 52 52 5f |\n'). C|ASE ERR_|
|00002ce0| 57 49 4e 3b 20 57 72 69 | 74 65 46 28 27 45 72 72 |WIN; Wri|teF('Err|
|00002cf0| 6f 72 3a 20 46 61 69 6c | 65 64 20 74 6f 20 6f 70 |or: Fail|ed to op|
|00002d00| 65 6e 20 77 69 6e 64 6f | 77 2e 5c 6e 27 29 0a 20 |en windo|w.\n'). |
|00002d10| 20 43 41 53 45 20 22 4d | 45 4d 22 3b 20 20 20 57 | CASE "M|EM"; W|
|00002d20| 72 69 74 65 46 28 27 45 | 72 72 6f 72 3a 20 52 61 |riteF('E|rror: Ra|
|00002d30| 6e 20 6f 75 74 20 6f 66 | 20 6d 65 6d 6f 72 79 2e |n out of| memory.|
|00002d40| 5c 6e 27 29 0a 20 20 45 | 4e 44 53 45 4c 45 43 54 |\n'). E|NDSELECT|
|00002d50| 0a 45 4e 44 50 52 4f 43 | 0a 0a 2d 3e 20 43 6f 6e |.ENDPROC|..-> Con|
|00002d60| 76 65 72 74 20 52 41 57 | 4b 45 59 73 20 69 6e 74 |vert RAW|KEYs int|
|00002d70| 6f 20 56 41 4e 49 4c 4c | 41 4b 45 59 73 2c 20 61 |o VANILL|AKEYs, a|
|00002d80| 6c 73 6f 20 73 68 6f 77 | 73 20 73 70 65 63 69 61 |lso show|s specia|
|00002d90| 6c 20 6b 65 79 73 20 6c | 69 6b 65 20 48 45 4c 50 |l keys l|ike HELP|
|00002da0| 2c 20 43 75 72 73 6f 72 | 0a 2d 3e 20 4b 65 79 73 |, Cursor|.-> Keys|
|00002db0| 2c 20 46 4b 65 79 73 2c | 20 65 74 63 2e 20 20 49 |, FKeys,| etc. I|
|00002dc0| 74 20 72 65 74 75 72 6e | 73 3a 0a 2d 3e 20 20 20 |t return|s:.-> |
|00002dd0| 2d 31 20 69 66 20 6e 6f | 74 20 65 6e 6f 75 67 68 |-1 if no|t enough|
|00002de0| 20 72 6f 6f 6d 20 69 6e | 20 74 68 65 20 62 75 66 | room in| the buf|
|00002df0| 66 65 72 2c 20 74 72 79 | 20 61 67 61 69 6e 20 77 |fer, try| again w|
|00002e00| 00 00 00 08 00 00 04 00 | 00 00 00 06 00 00 01 e8 |........|........|
|00002e10| 00 00 00 18 74 85 51 2c | 69 74 68 20 61 20 62 69 |....t.Q,|ith a bi|
|00002e20| 67 67 65 72 20 62 75 66 | 66 65 72 2e 0a 2d 3e 20 |gger buf|fer..-> |
|00002e30| 20 20 6f 74 68 65 72 77 | 69 73 65 2c 20 72 65 74 | otherw|ise, ret|
|00002e40| 75 72 6e 73 20 74 68 65 | 20 6e 75 6d 62 65 72 20 |urns the| number |
|00002e50| 6f 66 20 63 68 61 72 61 | 63 74 65 72 73 20 70 6c |of chara|cters pl|
|00002e60| 61 63 65 64 20 69 6e 20 | 74 68 65 20 62 75 66 66 |aced in |the buff|
|00002e70| 65 72 2e 0a 50 52 4f 43 | 20 64 65 61 64 4b 65 79 |er..PROC| deadKey|
|00002e80| 43 6f 6e 76 65 72 74 28 | 6b 62 75 66 66 65 72 2c |Convert(|kbuffer,|
|00002e90| 20 6b 62 73 69 7a 65 2c | 20 6b 6d 61 70 2c 20 69 | kbsize,| kmap, i|
|00002ea0| 65 76 65 6e 74 3a 50 54 | 52 20 54 4f 20 69 6e 70 |event:PT|R TO inp|
|00002eb0| 75 74 65 76 65 6e 74 29 | 0a 20 20 69 65 76 65 6e |utevent)|. ieven|
|00002ec0| 74 2e 63 6c 61 73 73 3a | 3d 49 45 43 4c 41 53 53 |t.class:|=IECLASS|
|00002ed0| 5f 52 41 57 4b 45 59 0a | 20 20 69 65 76 65 6e 74 |_RAWKEY.| ievent|
|00002ee0| 2e 63 6f 64 65 3a 3d 4d | 73 67 43 6f 64 65 28 29 |.code:=M|sgCode()|
|00002ef0| 0a 20 20 69 65 76 65 6e | 74 2e 71 75 61 6c 69 66 |. ieven|t.qualif|
|00002f00| 69 65 72 3a 3d 4d 73 67 | 51 75 61 6c 69 66 69 65 |ier:=Msg|Qualifie|
|00002f10| 72 28 29 0a 20 20 69 65 | 76 65 6e 74 2e 65 76 65 |r(). ie|vent.eve|
|00002f20| 6e 74 61 64 64 72 65 73 | 73 3a 3d 4d 73 67 49 61 |ntaddres|s:=MsgIa|
|00002f30| 64 64 72 28 29 0a 20 20 | 52 45 54 55 52 4e 20 52 |ddr(). |RETURN R|
|00002f40| 61 77 4b 65 79 43 6f 6e | 76 65 72 74 28 69 65 76 |awKeyCon|vert(iev|
|00002f50| 65 6e 74 2c 20 6b 62 75 | 66 66 65 72 2c 20 6b 62 |ent, kbu|ffer, kb|
|00002f60| 73 69 7a 65 2c 20 6b 6d | 61 70 29 0a 45 4e 44 50 |size, km|ap).ENDP|
|00002f70| 52 4f 43 0a 0a 2d 3e 20 | 70 72 69 6e 74 5f 71 75 |ROC..-> |print_qu|
|00002f80| 61 6c 69 66 69 65 72 73 | 28 29 20 2d 20 50 72 69 |alifiers|() - Pri|
|00002f90| 6e 74 20 6f 75 74 20 74 | 68 65 20 76 61 6c 75 65 |nt out t|he value|
|00002fa0| 73 20 66 6f 75 6e 64 20 | 69 6e 20 74 68 65 20 71 |s found |in the q|
|00002fb0| 75 61 6c 69 66 69 65 72 | 20 62 69 74 73 20 6f 66 |ualifier| bits of|
|00002fc0| 0a 2d 3e 20 74 68 65 20 | 6d 65 73 73 61 67 65 2e |.-> the |message.|
|00002fd0| 20 54 68 69 73 20 77 69 | 6c 6c 20 70 72 69 6e 74 | This wi|ll print|
|00002fe0| 20 6f 75 74 20 61 6c 6c | 20 6f 66 20 74 68 65 20 | out all| of the |
|00002ff0| 71 75 61 6c 69 66 69 65 | 72 20 62 69 74 73 20 73 |qualifie|r bits s|
|00003000| 00 00 00 08 00 00 04 00 | 00 00 00 07 00 00 01 e8 |........|........|
|00003010| 00 00 00 19 fa 72 5f de | 65 74 2e 0a 50 52 4f 43 |.....r_.|et..PROC|
|00003020| 20 70 72 69 6e 74 5f 71 | 75 61 6c 69 66 69 65 72 | print_q|ualifier|
|00003030| 73 28 71 75 61 6c 29 0a | 20 20 57 72 69 74 65 46 |s(qual).| WriteF|
|00003040| 28 27 51 75 61 6c 3a 20 | 27 29 0a 20 20 49 46 20 |('Qual: |'). IF |
|00003050| 71 75 61 6c 20 41 4e 44 | 20 49 45 51 55 41 4c 49 |qual AND| IEQUALI|
|00003060| 46 49 45 52 5f 4c 53 48 | 49 46 54 20 20 20 20 20 |FIER_LSH|IFT |
|00003070| 20 20 20 20 54 48 45 4e | 20 57 72 69 74 65 46 28 | THEN| WriteF(|
|00003080| 27 4c 53 68 66 74 2c 20 | 27 29 0a 20 20 49 46 20 |'LShft, |'). IF |
|00003090| 71 75 61 6c 20 41 4e 44 | 20 49 45 51 55 41 4c 49 |qual AND| IEQUALI|
|000030a0| 46 49 45 52 5f 52 53 48 | 49 46 54 20 20 20 20 20 |FIER_RSH|IFT |
|000030b0| 20 20 20 20 54 48 45 4e | 20 57 72 69 74 65 46 28 | THEN| WriteF(|
|000030c0| 27 52 53 68 66 74 2c 20 | 27 29 0a 20 20 49 46 20 |'RShft, |'). IF |
|000030d0| 71 75 61 6c 20 41 4e 44 | 20 49 45 51 55 41 4c 49 |qual AND| IEQUALI|
|000030e0| 46 49 45 52 5f 43 41 50 | 53 4c 4f 43 4b 20 20 20 |FIER_CAP|SLOCK |
|000030f0| 20 20 20 20 54 48 45 4e | 20 57 72 69 74 65 46 28 | THEN| WriteF(|
|00003100| 27 43 61 70 4c 6f 6b 2c | 20 27 29 0a 20 20 49 46 |'CapLok,| '). IF|
|00003110| 20 71 75 61 6c 20 41 4e | 44 20 49 45 51 55 41 4c | qual AN|D IEQUAL|
|00003120| 49 46 49 45 52 5f 43 4f | 4e 54 52 4f 4c 20 20 20 |IFIER_CO|NTROL |
|00003130| 20 20 20 20 20 54 48 45 | 4e 20 57 72 69 74 65 46 | THE|N WriteF|
|00003140| 28 27 43 74 72 6c 2c 20 | 27 29 0a 20 20 49 46 20 |('Ctrl, |'). IF |
|00003150| 71 75 61 6c 20 41 4e 44 | 20 49 45 51 55 41 4c 49 |qual AND| IEQUALI|
|00003160| 46 49 45 52 5f 4c 41 4c | 54 20 20 20 20 20 20 20 |FIER_LAL|T |
|00003170| 20 20 20 20 54 48 45 4e | 20 57 72 69 74 65 46 28 | THEN| WriteF(|
|00003180| 27 4c 41 6c 74 2c 20 27 | 29 0a 20 20 49 46 20 71 |'LAlt, '|). IF q|
|00003190| 75 61 6c 20 41 4e 44 20 | 49 45 51 55 41 4c 49 46 |ual AND |IEQUALIF|
|000031a0| 49 45 52 5f 52 41 4c 54 | 20 20 20 20 20 20 20 20 |IER_RALT| |
|000031b0| 20 20 20 54 48 45 4e 20 | 57 72 69 74 65 46 28 27 | THEN |WriteF('|
|000031c0| 52 41 6c 74 2c 20 27 29 | 0a 20 20 49 46 20 71 75 |RAlt, ')|. IF qu|
|000031d0| 61 6c 20 41 4e 44 20 49 | 45 51 55 41 4c 49 46 49 |al AND I|EQUALIFI|
|000031e0| 45 52 5f 4c 43 4f 4d 4d | 41 4e 44 20 20 20 20 20 |ER_LCOMM|AND |
|000031f0| 20 20 54 48 45 4e 20 57 | 72 69 74 65 46 28 27 4c | THEN W|riteF('L|
|00003200| 00 00 00 08 00 00 04 00 | 00 00 00 08 00 00 01 e8 |........|........|
|00003210| 00 00 00 1a d7 e5 c1 32 | 43 6d 64 2c 20 27 29 0a |.......2|Cmd, ').|
|00003220| 20 20 49 46 20 71 75 61 | 6c 20 41 4e 44 20 49 45 | IF qua|l AND IE|
|00003230| 51 55 41 4c 49 46 49 45 | 52 5f 52 43 4f 4d 4d 41 |QUALIFIE|R_RCOMMA|
|00003240| 4e 44 20 20 20 20 20 20 | 20 54 48 45 4e 20 57 72 |ND | THEN Wr|
|00003250| 69 74 65 46 28 27 52 43 | 6d 64 2c 20 27 29 0a 20 |iteF('RC|md, '). |
|00003260| 20 49 46 20 71 75 61 6c | 20 41 4e 44 20 49 45 51 | IF qual| AND IEQ|
|00003270| 55 41 4c 49 46 49 45 52 | 5f 4e 55 4d 45 52 49 43 |UALIFIER|_NUMERIC|
|00003280| 50 41 44 20 20 20 20 20 | 54 48 45 4e 20 57 72 69 |PAD |THEN Wri|
|00003290| 74 65 46 28 27 4e 75 6d | 50 61 64 2c 20 27 29 0a |teF('Num|Pad, ').|
|000032a0| 20 20 49 46 20 71 75 61 | 6c 20 41 4e 44 20 49 45 | IF qua|l AND IE|
|000032b0| 51 55 41 4c 49 46 49 45 | 52 5f 52 45 50 45 41 54 |QUALIFIE|R_REPEAT|
|000032c0| 20 20 20 20 20 20 20 20 | 20 54 48 45 4e 20 57 72 | | THEN Wr|
|000032d0| 69 74 65 46 28 27 52 70 | 74 2c 20 27 29 0a 20 20 |iteF('Rp|t, '). |
|000032e0| 49 46 20 71 75 61 6c 20 | 41 4e 44 20 49 45 51 55 |IF qual |AND IEQU|
|000032f0| 41 4c 49 46 49 45 52 5f | 49 4e 54 45 52 52 55 50 |ALIFIER_|INTERRUP|
|00003300| 54 20 20 20 20 20 20 54 | 48 45 4e 20 57 72 69 74 |T T|HEN Writ|
|00003310| 65 46 28 27 49 6e 74 72 | 70 74 2c 20 27 29 0a 20 |eF('Intr|pt, '). |
|00003320| 20 49 46 20 71 75 61 6c | 20 41 4e 44 20 49 45 51 | IF qual| AND IEQ|
|00003330| 55 41 4c 49 46 49 45 52 | 5f 4d 55 4c 54 49 42 52 |UALIFIER|_MULTIBR|
|00003340| 4f 41 44 43 41 53 54 20 | 54 48 45 4e 20 57 72 69 |OADCAST |THEN Wri|
|00003350| 74 65 46 28 27 4d 75 6c | 74 69 20 42 72 6f 61 64 |teF('Mul|ti Broad|
|00003360| 63 61 73 74 2c 20 27 29 | 0a 20 20 49 46 20 71 75 |cast, ')|. IF qu|
|00003370| 61 6c 20 41 4e 44 20 49 | 45 51 55 41 4c 49 46 49 |al AND I|EQUALIFI|
|00003380| 45 52 5f 4d 49 44 42 55 | 54 54 4f 4e 20 20 20 20 |ER_MIDBU|TTON |
|00003390| 20 20 54 48 45 4e 20 57 | 72 69 74 65 46 28 27 4d | THEN W|riteF('M|
|000033a0| 69 64 42 74 6e 2c 20 27 | 29 0a 20 20 49 46 20 71 |idBtn, '|). IF q|
|000033b0| 75 61 6c 20 41 4e 44 20 | 49 45 51 55 41 4c 49 46 |ual AND |IEQUALIF|
|000033c0| 49 45 52 5f 52 42 55 54 | 54 4f 4e 20 20 20 20 20 |IER_RBUT|TON |
|000033d0| 20 20 20 54 48 45 4e 20 | 57 72 69 74 65 46 28 27 | THEN |WriteF('|
|000033e0| 52 42 74 6e 2c 20 27 29 | 0a 20 20 49 46 20 71 75 |RBtn, ')|. IF qu|
|000033f0| 61 6c 20 41 4e 44 20 49 | 45 51 55 41 4c 49 46 49 |al AND I|EQUALIFI|
|00003400| 00 00 00 08 00 00 04 00 | 00 00 00 09 00 00 01 e8 |........|........|
|00003410| 00 00 00 1b 40 aa a7 b1 | 45 52 5f 4c 45 46 54 42 |....@...|ER_LEFTB|
|00003420| 55 54 54 4f 4e 20 20 20 | 20 20 54 48 45 4e 20 57 |UTTON | THEN W|
|00003430| 72 69 74 65 46 28 27 4c | 42 74 6e 2c 20 27 29 0a |riteF('L|Btn, ').|
|00003440| 20 20 49 46 20 71 75 61 | 6c 20 41 4e 44 20 49 45 | IF qua|l AND IE|
|00003450| 51 55 41 4c 49 46 49 45 | 52 5f 52 45 4c 41 54 49 |QUALIFIE|R_RELATI|
|00003460| 56 45 4d 4f 55 53 45 20 | 20 54 48 45 4e 20 57 72 |VEMOUSE | THEN Wr|
|00003470| 69 74 65 46 28 27 52 65 | 6c 4d 6f 75 73 65 2c 20 |iteF('Re|lMouse, |
|00003480| 27 29 0a 45 4e 44 50 52 | 4f 43 0a 0a 2d 3e 20 64 |').ENDPR|OC..-> d|
|00003490| 6f 4b 65 79 73 28 29 20 | 2d 20 53 68 6f 77 20 77 |oKeys() |- Show w|
|000034a0| 68 61 74 20 6b 65 79 73 | 20 77 65 72 65 20 70 72 |hat keys| were pr|
|000034b0| 65 73 73 65 64 2e 0a 50 | 52 4f 43 20 64 6f 4b 65 |essed..P|ROC doKe|
|000034c0| 79 73 28 69 65 76 65 6e | 74 2c 20 62 75 66 66 65 |ys(ieven|t, buffe|
|000034d0| 72 3a 50 54 52 20 54 4f | 20 4c 4f 4e 47 2c 20 62 |r:PTR TO| LONG, b|
|000034e0| 75 66 73 69 7a 65 3a 50 | 54 52 20 54 4f 20 4c 4f |ufsize:P|TR TO LO|
|000034f0| 4e 47 29 20 48 41 4e 44 | 4c 45 0a 20 20 44 45 46 |NG) HAND|LE. DEF|
|00003500| 20 63 68 61 72 5f 70 6f | 73 2c 20 6e 75 6d 63 68 | char_po|s, numch|
|00003510| 61 72 73 2c 20 72 65 61 | 6c 63 2c 20 63 0a 0a 20 |ars, rea|lc, c.. |
|00003520| 20 2d 3e 20 64 65 61 64 | 4b 65 79 43 6f 6e 76 65 | -> dead|KeyConve|
|00003530| 72 74 28 29 20 72 65 74 | 75 72 6e 73 20 2d 31 20 |rt() ret|urns -1 |
|00003540| 69 66 20 74 68 65 72 65 | 20 77 61 73 20 6e 6f 74 |if there| was not|
|00003550| 20 65 6e 6f 75 67 68 20 | 73 70 61 63 65 20 69 6e | enough |space in|
|00003560| 20 74 68 65 20 62 75 66 | 66 65 72 20 74 6f 0a 20 | the buf|fer to. |
|00003570| 20 2d 3e 20 63 6f 6e 76 | 65 72 74 20 74 68 65 20 | -> conv|ert the |
|00003580| 73 74 72 69 6e 67 2e 20 | 48 65 72 65 2c 20 74 68 |string. |Here, th|
|00003590| 65 20 72 6f 75 74 69 6e | 65 20 69 6e 63 72 65 61 |e routin|e increa|
|000035a0| 73 65 73 20 74 68 65 20 | 73 69 7a 65 20 6f 66 20 |ses the |size of |
|000035b0| 74 68 65 20 62 75 66 66 | 65 72 20 6f 6e 0a 20 20 |the buff|er on. |
|000035c0| 2d 3e 20 74 68 65 20 66 | 6c 79 2e 2e 2e 20 53 65 |-> the f|ly... Se|
|000035d0| 74 20 74 68 65 20 72 65 | 74 75 72 6e 20 63 6f 64 |t the re|turn cod|
|000035e0| 65 20 74 6f 20 46 41 4c | 53 45 20 6f 6e 20 66 61 |e to FAL|SE on fa|
|000035f0| 69 6c 75 72 65 2e 0a 20 | 20 6e 75 6d 63 68 61 72 |ilure.. | numchar|
|00003600| 00 00 00 08 00 00 04 00 | 00 00 00 0a 00 00 01 e8 |........|........|
|00003610| 00 00 00 1c 21 71 f7 4c | 73 3a 3d 64 65 61 64 4b |....!q.L|s:=deadK|
|00003620| 65 79 43 6f 6e 76 65 72 | 74 28 62 75 66 66 65 72 |eyConver|t(buffer|
|00003630| 5b 5d 2c 20 62 75 66 73 | 69 7a 65 5b 5d 2d 31 2c |[], bufs|ize[]-1,|
|00003640| 20 4e 49 4c 2c 20 69 65 | 76 65 6e 74 29 0a 20 20 | NIL, ie|vent). |
|00003650| 57 48 49 4c 45 20 28 6e | 75 6d 63 68 61 72 73 3d |WHILE (n|umchars=|
|00003660| 2d 31 29 20 41 4e 44 20 | 62 75 66 66 65 72 5b 5d |-1) AND |buffer[]|
|00003670| 0a 20 20 2d 3e 20 43 6f | 6e 76 65 72 73 69 6f 6e |. -> Co|nversion|
|00003680| 20 66 61 69 6c 65 64 2c | 20 62 75 66 66 65 72 20 | failed,| buffer |
|00003690| 74 6f 6f 20 73 6d 61 6c | 6c 2e 20 54 72 79 20 74 |too smal|l. Try t|
|000036a0| 6f 20 64 6f 75 62 6c 65 | 20 74 68 65 20 73 69 7a |o double| the siz|
|000036b0| 65 20 6f 66 20 74 68 65 | 20 62 75 66 66 65 72 2e |e of the| buffer.|
|000036c0| 0a 20 20 20 20 44 69 73 | 70 6f 73 65 28 62 75 66 |. Dis|pose(buf|
|000036d0| 66 65 72 5b 5d 29 0a 20 | 20 20 20 62 75 66 73 69 |fer[]). | bufsi|
|000036e0| 7a 65 5b 5d 3a 3d 62 75 | 66 73 69 7a 65 5b 5d 2a |ze[]:=bu|fsize[]*|
|000036f0| 32 0a 20 20 20 20 57 72 | 69 74 65 46 28 27 49 6e |2. Wr|iteF('In|
|00003700| 63 72 65 61 73 69 6e 67 | 20 62 75 66 66 65 72 20 |creasing| buffer |
|00003710| 73 69 7a 65 20 74 6f 20 | 5c 64 5c 6e 27 2c 20 62 |size to |\d\n', b|
|00003720| 75 66 73 69 7a 65 5b 5d | 29 0a 0a 20 20 20 20 62 |ufsize[]|).. b|
|00003730| 75 66 66 65 72 5b 5d 3a | 3d 4e 65 77 52 28 62 75 |uffer[]:|=NewR(bu|
|00003740| 66 73 69 7a 65 5b 5d 29 | 0a 20 20 20 20 6e 75 6d |fsize[])|. num|
|00003750| 63 68 61 72 73 3a 3d 64 | 65 61 64 4b 65 79 43 6f |chars:=d|eadKeyCo|
|00003760| 6e 76 65 72 74 28 62 75 | 66 66 65 72 5b 5d 2c 20 |nvert(bu|ffer[], |
|00003770| 62 75 66 73 69 7a 65 5b | 5d 2d 31 2c 20 4e 49 4c |bufsize[|]-1, NIL|
|00003780| 2c 20 69 65 76 65 6e 74 | 29 0a 20 20 45 4e 44 57 |, ievent|). ENDW|
|00003790| 48 49 4c 45 0a 0a 20 20 | 2d 3e 20 6e 75 6d 63 68 |HILE.. |-> numch|
|000037a0| 61 72 73 20 63 6f 6e 74 | 61 69 6e 73 20 74 68 65 |ars cont|ains the|
|000037b0| 20 6e 75 6d 62 65 72 20 | 6f 66 20 63 68 61 72 61 | number |of chara|
|000037c0| 63 74 65 72 73 20 70 6c | 61 63 65 64 20 77 69 74 |cters pl|aced wit|
|000037d0| 68 69 6e 20 74 68 65 20 | 62 75 66 66 65 72 2e 20 |hin the |buffer. |
|000037e0| 20 4b 65 79 0a 20 20 2d | 3e 20 75 70 20 65 76 65 | Key. -|> up eve|
|000037f0| 6e 74 73 20 61 6e 64 20 | 6b 65 79 20 73 65 71 75 |nts and |key sequ|
|00003800| 00 00 00 08 00 00 04 00 | 00 00 00 0b 00 00 01 e8 |........|........|
|00003810| 00 00 00 1d 71 17 80 05 | 65 6e 63 65 73 20 74 68 |....q...|ences th|
|00003820| 61 74 20 64 6f 20 6e 6f | 74 20 67 65 6e 65 72 61 |at do no|t genera|
|00003830| 74 65 20 61 6e 79 20 64 | 61 74 61 20 66 6f 72 20 |te any d|ata for |
|00003840| 74 68 65 20 70 72 6f 67 | 72 61 6d 0a 20 20 2d 3e |the prog|ram. ->|
|00003850| 20 28 6c 69 6b 65 20 64 | 65 61 64 6b 65 79 73 29 | (like d|eadkeys)|
|00003860| 20 77 69 6c 6c 20 72 65 | 74 75 72 6e 20 7a 65 72 | will re|turn zer|
|00003870| 6f 2e 20 20 53 70 65 63 | 69 61 6c 20 6b 65 79 73 |o. Spec|ial keys|
|00003880| 20 28 6c 69 6b 65 20 48 | 45 4c 50 2c 20 74 68 65 | (like H|ELP, the|
|00003890| 20 63 75 72 73 6f 72 0a | 20 20 2d 3e 20 6b 65 79 | cursor.| -> key|
|000038a0| 73 2c 20 46 4b 65 79 73 | 2c 20 65 74 63 2e 29 20 |s, FKeys|, etc.) |
|000038b0| 72 65 74 75 72 6e 20 6d | 75 6c 74 69 70 6c 65 20 |return m|ultiple |
|000038c0| 63 68 61 72 61 63 74 65 | 72 73 20 74 68 61 74 20 |characte|rs that |
|000038d0| 68 61 76 65 20 74 6f 20 | 74 68 65 6e 20 62 65 20 |have to |then be |
|000038e0| 70 61 72 73 65 64 0a 20 | 20 2d 3e 20 62 79 20 74 |parsed. | -> by t|
|000038f0| 68 65 20 61 70 70 6c 69 | 63 61 74 69 6f 6e 2e 0a |he appli|cation..|
|00003900| 0a 20 20 2d 3e 20 49 66 | 20 68 69 67 68 20 62 69 |. -> If| high bi|
|00003910| 74 20 73 65 74 2c 20 74 | 68 65 6e 20 74 68 69 73 |t set, t|hen this|
|00003920| 20 69 73 20 61 20 6b 65 | 79 20 75 70 20 6f 74 68 | is a ke|y up oth|
|00003930| 65 72 77 69 73 65 20 74 | 68 69 73 20 69 73 20 61 |erwise t|his is a|
|00003940| 20 6b 65 79 20 64 6f 77 | 6e 0a 20 20 49 46 20 4d | key dow|n. IF M|
|00003950| 73 67 43 6f 64 65 28 29 | 20 41 4e 44 20 24 38 30 |sgCode()| AND $80|
|00003960| 0a 20 20 20 20 57 72 69 | 74 65 46 28 27 4b 65 79 |. Wri|teF('Key|
|00003970| 20 55 70 3a 20 20 20 27 | 29 0a 20 20 45 4c 53 45 | Up: '|). ELSE|
|00003980| 0a 20 20 20 20 57 72 69 | 74 65 46 28 27 4b 65 79 |. Wri|teF('Key|
|00003990| 20 44 6f 77 6e 3a 20 27 | 29 0a 20 20 45 4e 44 49 | Down: '|). ENDI|
|000039a0| 46 0a 0a 20 20 70 72 69 | 6e 74 5f 71 75 61 6c 69 |F.. pri|nt_quali|
|000039b0| 66 69 65 72 73 28 4d 73 | 67 51 75 61 6c 69 66 69 |fiers(Ms|gQualifi|
|000039c0| 65 72 28 29 29 0a 20 20 | 57 72 69 74 65 46 28 27 |er()). |WriteF('|
|000039d0| 20 72 61 77 6b 65 79 20 | 23 5c 64 20 6d 61 70 73 | rawkey |#\d maps|
|000039e0| 20 74 6f 20 5c 64 20 41 | 53 43 49 49 20 63 68 61 | to \d A|SCII cha|
|000039f0| 72 61 63 74 65 72 5c 73 | 5c 6e 27 2c 0a 20 20 20 |racter\s|\n',. |
|00003a00| 00 00 00 08 00 00 04 00 | 00 00 00 0c 00 00 01 e8 |........|........|
|00003a10| 00 00 00 1e 8a ae ad 0c | 20 20 20 20 20 20 24 37 |........| $7|
|00003a20| 46 20 41 4e 44 20 4d 73 | 67 43 6f 64 65 28 29 2c |F AND Ms|gCode(),|
|00003a30| 20 6e 75 6d 63 68 61 72 | 73 2c 20 49 46 20 6e 75 | numchar|s, IF nu|
|00003a40| 6d 63 68 61 72 73 3c 3e | 31 20 54 48 45 4e 20 27 |mchars<>|1 THEN '|
|00003a50| 73 27 20 45 4c 53 45 20 | 27 27 29 0a 20 20 46 4f |s' ELSE |''). FO|
|00003a60| 52 20 63 68 61 72 5f 70 | 6f 73 3a 3d 30 20 54 4f |R char_p|os:=0 TO|
|00003a70| 20 6e 75 6d 63 68 61 72 | 73 2d 31 0a 20 20 20 20 | numchar|s-1. |
|00003a80| 72 65 61 6c 63 3a 3d 28 | 63 3a 3d 62 75 66 66 65 |realc:=(|c:=buffe|
|00003a90| 72 5b 5d 5b 63 68 61 72 | 5f 70 6f 73 5d 29 0a 20 |r[][char|_pos]). |
|00003aa0| 20 20 20 49 46 20 28 63 | 3c 3d 24 31 46 29 20 4f | IF (c|<=$1F) O|
|00003ab0| 52 20 28 28 63 3e 3d 24 | 38 30 29 20 41 4e 44 20 |R ((c>=$|80) AND |
|00003ac0| 28 63 3c 24 41 30 29 29 | 20 54 48 45 4e 20 63 3a |(c<$A0))| THEN c:|
|00003ad0| 3d 24 37 46 0a 20 20 20 | 20 57 72 69 74 65 46 28 |=$7F. | WriteF(|
|00003ae0| 27 20 20 5c 64 5b 33 5d | 20 28 24 5c 7a 5c 68 5b |' \d[3]| ($\z\h[|
|00003af0| 32 5d 29 20 3d 20 5c 63 | 5c 6e 27 2c 20 72 65 61 |2]) = \c|\n', rea|
|00003b00| 6c 63 2c 20 72 65 61 6c | 63 2c 20 63 29 0a 20 20 |lc, real|c, c). |
|00003b10| 45 4e 44 46 4f 52 0a 45 | 58 43 45 50 54 20 44 4f |ENDFOR.E|XCEPT DO|
|00003b20| 0a 20 20 52 45 54 55 52 | 4e 20 65 78 63 65 70 74 |. RETUR|N except|
|00003b30| 69 6f 6e 3d 45 52 52 5f | 4e 4f 4e 45 0a 45 4e 44 |ion=ERR_|NONE.END|
|00003b40| 50 52 4f 43 0a 0a 2d 3e | 20 70 72 6f 63 65 73 73 |PROC..->| process|
|00003b50| 5f 77 69 6e 64 6f 77 28 | 29 20 2d 20 53 69 6d 70 |_window(|) - Simp|
|00003b60| 6c 65 20 65 76 65 6e 74 | 20 6c 6f 6f 70 2e 20 20 |le event| loop. |
|00003b70| 4e 6f 74 65 20 74 68 61 | 74 20 74 68 65 20 6d 65 |Note tha|t the me|
|00003b80| 73 73 61 67 65 20 69 73 | 20 6e 6f 74 20 72 65 70 |ssage is| not rep|
|00003b90| 6c 69 65 64 0a 2d 3e 20 | 74 6f 20 75 6e 74 69 6c |lied.-> |to until|
|00003ba0| 20 74 68 65 20 65 6e 64 | 20 6f 66 20 74 68 65 20 | the end| of the |
|00003bb0| 6c 6f 6f 70 20 73 6f 20 | 74 68 61 74 20 69 74 20 |loop so |that it |
|00003bc0| 6d 61 79 20 62 65 20 75 | 73 65 64 20 69 6e 20 74 |may be u|sed in t|
|00003bd0| 68 65 20 64 6f 4b 65 79 | 73 28 29 20 63 61 6c 6c |he doKey|s() call|
|00003be0| 2e 0a 2d 3e 20 45 2d 4e | 6f 74 65 3a 20 77 65 20 |..-> E-N|ote: we |
|00003bf0| 75 73 65 20 57 61 69 74 | 49 4d 65 73 73 61 67 65 |use Wait|IMessage|
|00003c00| 00 00 00 08 00 00 04 00 | 00 00 00 0d 00 00 01 44 |........|.......D|
|00003c10| 00 00 00 00 da 73 c4 fd | 28 29 20 73 6f 20 61 20 |.....s..|() so a |
|00003c20| 6c 6f 74 20 6f 66 20 74 | 68 69 73 20 61 6e 64 20 |lot of t|his and |
|00003c30| 61 62 6f 76 65 20 69 73 | 20 73 69 6d 70 6c 69 66 |above is| simplif|
|00003c40| 69 65 64 0a 50 52 4f 43 | 20 70 72 6f 63 65 73 73 |ied.PROC| process|
|00003c50| 5f 77 69 6e 64 6f 77 28 | 77 69 6e 2c 20 69 65 76 |_window(|win, iev|
|00003c60| 65 6e 74 2c 20 62 75 66 | 66 65 72 2c 20 62 75 66 |ent, buf|fer, buf|
|00003c70| 73 69 7a 65 29 0a 20 20 | 44 45 46 20 67 6f 69 6e |size). |DEF goin|
|00003c80| 67 3d 54 52 55 45 2c 20 | 63 6c 61 73 73 0a 20 20 |g=TRUE, |class. |
|00003c90| 57 48 49 4c 45 20 67 6f | 69 6e 67 0a 20 20 20 20 |WHILE go|ing. |
|00003ca0| 63 6c 61 73 73 3a 3d 57 | 61 69 74 49 4d 65 73 73 |class:=W|aitIMess|
|00003cb0| 61 67 65 28 77 69 6e 29 | 0a 20 20 20 20 53 45 4c |age(win)|. SEL|
|00003cc0| 45 43 54 20 63 6c 61 73 | 73 0a 20 20 20 20 43 41 |ECT clas|s. CA|
|00003cd0| 53 45 20 49 44 43 4d 50 | 5f 43 4c 4f 53 45 57 49 |SE IDCMP|_CLOSEWI|
|00003ce0| 4e 44 4f 57 0a 20 20 20 | 20 20 20 67 6f 69 6e 67 |NDOW. | going|
|00003cf0| 3a 3d 46 41 4c 53 45 0a | 20 20 20 20 43 41 53 45 |:=FALSE.| CASE|
|00003d00| 20 49 44 43 4d 50 5f 52 | 41 57 4b 45 59 0a 20 20 | IDCMP_R|AWKEY. |
|00003d10| 20 20 20 20 67 6f 69 6e | 67 3a 3d 64 6f 4b 65 79 | goin|g:=doKey|
|00003d20| 73 28 69 65 76 65 6e 74 | 2c 20 62 75 66 66 65 72 |s(ievent|, buffer|
|00003d30| 2c 20 62 75 66 73 69 7a | 65 29 0a 20 20 20 20 45 |, bufsiz|e). E|
|00003d40| 4e 44 53 45 4c 45 43 54 | 0a 20 20 45 4e 44 57 48 |NDSELECT|. ENDWH|
|00003d50| 49 4c 45 0a 45 4e 44 50 | 52 4f 43 0a 53 69 6d 70 |ILE.ENDP|ROC.Simp|
|00003d60| 6c 65 20 65 76 65 6e 74 | 20 6c 6f 6f 70 2e 20 20 |le event| loop. |
|00003d70| 4e 6f 74 65 20 74 68 61 | 74 20 74 68 65 20 6d 65 |Note tha|t the me|
|00003d80| 73 73 61 67 65 20 69 73 | 20 6e 6f 74 20 72 65 70 |ssage is| not rep|
|00003d90| 6c 69 65 64 0a 2d 3e 20 | 74 6f 20 75 6e 74 69 6c |lied.-> |to until|
|00003da0| 20 74 68 65 20 65 6e 64 | 20 6f 66 20 74 68 65 20 | the end| of the |
|00003db0| 6c 6f 6f 70 20 73 6f 20 | 74 68 61 74 20 69 74 20 |loop so |that it |
|00003dc0| 6d 61 79 20 62 65 20 75 | 73 65 64 20 69 6e 20 74 |may be u|sed in t|
|00003dd0| 68 65 20 64 6f 4b 65 79 | 73 28 29 20 63 61 6c 6c |he doKey|s() call|
|00003de0| 2e 0a 2d 3e 20 45 2d 4e | 6f 74 65 3a 20 77 65 20 |..-> E-N|ote: we |
|00003df0| 75 73 65 20 57 61 69 74 | 49 4d 65 73 73 61 67 65 |use Wait|IMessage|
|00003e00| 00 00 00 08 00 00 04 01 | 00 00 00 01 00 00 01 e8 |........|........|
|00003e10| 00 00 00 20 90 7a af 0e | 2d 3e 20 6d 6f 75 73 65 |... .z..|-> mouse|
|00003e20| 74 65 73 74 2e 65 20 2d | 20 52 65 61 64 20 70 6f |test.e -| Read po|
|00003e30| 73 69 74 69 6f 6e 20 61 | 6e 64 20 62 75 74 74 6f |sition a|nd butto|
|00003e40| 6e 20 65 76 65 6e 74 73 | 20 66 72 6f 6d 20 74 68 |n events| from th|
|00003e50| 65 20 6d 6f 75 73 65 2e | 0a 0a 4f 50 54 20 4f 53 |e mouse.|..OPT OS|
|00003e60| 56 45 52 53 49 4f 4e 3d | 33 37 0a 0a 4d 4f 44 55 |VERSION=|37..MODU|
|00003e70| 4c 45 20 27 64 65 76 69 | 63 65 73 2f 69 6e 70 75 |LE 'devi|ces/inpu|
|00003e80| 74 65 76 65 6e 74 27 2c | 0a 20 20 20 20 20 20 20 |tevent',|. |
|00003e90| 27 65 78 65 63 2f 70 6f | 72 74 73 27 2c 0a 20 20 |'exec/po|rts',. |
|00003ea0| 20 20 20 20 20 27 67 72 | 61 70 68 69 63 73 2f 67 | 'gr|aphics/g|
|00003eb0| 66 78 62 61 73 65 27 2c | 0a 20 20 20 20 20 20 20 |fxbase',|. |
|00003ec0| 27 67 72 61 70 68 69 63 | 73 2f 72 61 73 74 70 6f |'graphic|s/rastpo|
|00003ed0| 72 74 27 2c 0a 20 20 20 | 20 20 20 20 27 67 72 61 |rt',. | 'gra|
|00003ee0| 70 68 69 63 73 2f 74 65 | 78 74 27 2c 0a 20 20 20 |phics/te|xt',. |
|00003ef0| 20 20 20 20 27 69 6e 74 | 75 69 74 69 6f 6e 2f 69 | 'int|uition/i|
|00003f00| 6e 74 75 69 74 69 6f 6e | 27 2c 0a 20 20 20 20 20 |ntuition|',. |
|00003f10| 20 20 27 69 6e 74 75 69 | 74 69 6f 6e 2f 73 63 72 | 'intui|tion/scr|
|00003f20| 65 65 6e 73 27 0a 0a 45 | 4e 55 4d 20 45 52 52 5f |eens'..E|NUM ERR_|
|00003f30| 4e 4f 4e 45 2c 20 45 52 | 52 5f 44 52 41 57 2c 20 |NONE, ER|R_DRAW, |
|00003f40| 45 52 52 5f 50 55 42 2c | 20 45 52 52 5f 57 49 4e |ERR_PUB,| ERR_WIN|
|00003f50| 0a 0a 52 41 49 53 45 20 | 45 52 52 5f 44 52 41 57 |..RAISE |ERR_DRAW|
|00003f60| 20 49 46 20 47 65 74 53 | 63 72 65 65 6e 44 72 61 | IF GetS|creenDra|
|00003f70| 77 49 6e 66 6f 28 29 3d | 4e 49 4c 2c 0a 20 20 20 |wInfo()=|NIL,. |
|00003f80| 20 20 20 45 52 52 5f 50 | 55 42 20 20 49 46 20 4c | ERR_P|UB IF L|
|00003f90| 6f 63 6b 50 75 62 53 63 | 72 65 65 6e 28 29 3d 4e |ockPubSc|reen()=N|
|00003fa0| 49 4c 2c 0a 20 20 20 20 | 20 20 45 52 52 5f 57 49 |IL,. | ERR_WI|
|00003fb0| 4e 20 20 49 46 20 4f 70 | 65 6e 57 69 6e 64 6f 77 |N IF Op|enWindow|
|00003fc0| 54 61 67 4c 69 73 74 28 | 29 3d 4e 49 4c 0a 0a 2d |TagList(|)=NIL..-|
|00003fd0| 3e 20 45 2d 4e 6f 74 65 | 3a 20 43 20 76 65 72 73 |> E-Note|: C vers|
|00003fe0| 69 6f 6e 20 73 68 6f 75 | 6c 64 20 75 73 65 20 74 |ion shou|ld use t|
|00003ff0| 68 69 73 20 66 6f 72 20 | 61 20 73 74 72 69 6e 67 |his for |a string|
|00004000| 00 00 00 08 00 00 04 01 | 00 00 00 02 00 00 01 e8 |........|........|
|00004010| 00 00 00 21 e9 e3 3a cd | 2e 2e 2e 0a 43 4f 4e 53 |...!..:.|....CONS|
|00004020| 54 20 42 55 46 53 49 5a | 45 3d 31 35 0a 0a 2d 3e |T BUFSIZ|E=15..->|
|00004030| 20 53 6f 6d 65 74 68 69 | 6e 67 20 74 6f 20 75 73 | Somethi|ng to us|
|00004040| 65 20 74 6f 20 74 72 61 | 63 6b 20 74 68 65 20 74 |e to tra|ck the t|
|00004050| 69 6d 65 20 62 65 74 77 | 65 65 6e 20 6d 65 73 73 |ime betw|een mess|
|00004060| 61 67 65 73 20 74 6f 20 | 74 65 73 74 20 66 6f 72 |ages to |test for|
|00004070| 0a 2d 3e 20 64 6f 75 62 | 6c 65 2d 63 6c 69 63 6b |.-> doub|le-click|
|00004080| 73 2e 0a 4f 42 4a 45 43 | 54 20 6d 79 54 69 6d 65 |s..OBJEC|T myTime|
|00004090| 56 61 6c 0a 20 20 6c 65 | 66 74 53 65 63 6f 6e 64 |Val. le|ftSecond|
|000040a0| 73 2c 20 6c 65 66 74 4d | 69 63 72 6f 73 0a 20 20 |s, leftM|icros. |
|000040b0| 72 69 67 68 74 53 65 63 | 6f 6e 64 73 2c 20 72 69 |rightSec|onds, ri|
|000040c0| 67 68 74 4d 69 63 72 6f | 73 0a 45 4e 44 4f 42 4a |ghtMicro|s.ENDOBJ|
|000040d0| 45 43 54 0a 0a 50 52 4f | 43 20 6d 61 69 6e 28 29 |ECT..PRO|C main()|
|000040e0| 20 48 41 4e 44 4c 45 0a | 20 20 44 45 46 20 77 69 | HANDLE.| DEF wi|
|000040f0| 6e 3d 4e 49 4c 3a 50 54 | 52 20 54 4f 20 77 69 6e |n=NIL:PT|R TO win|
|00004100| 64 6f 77 2c 20 73 63 72 | 3d 4e 49 4c 3a 50 54 52 |dow, scr|=NIL:PTR|
|00004110| 20 54 4f 20 73 63 72 65 | 65 6e 2c 0a 20 20 20 20 | TO scre|en,. |
|00004120| 20 20 64 72 5f 69 6e 66 | 6f 3d 4e 49 4c 3a 50 54 | dr_inf|o=NIL:PT|
|00004130| 52 20 54 4f 20 64 72 61 | 77 69 6e 66 6f 2c 20 77 |R TO dra|winfo, w|
|00004140| 69 64 74 68 2c 20 67 66 | 78 3a 50 54 52 20 54 4f |idth, gf|x:PTR TO|
|00004150| 20 67 66 78 62 61 73 65 | 0a 0a 20 20 2d 3e 20 4c | gfxbase|.. -> L|
|00004160| 6f 63 6b 20 74 68 65 20 | 64 65 66 61 75 6c 74 20 |ock the |default |
|00004170| 70 75 62 6c 69 63 20 73 | 63 72 65 65 6e 20 69 6e |public s|creen in|
|00004180| 20 6f 72 64 65 72 20 74 | 6f 20 72 65 61 64 20 69 | order t|o read i|
|00004190| 74 73 20 44 72 61 77 49 | 6e 66 6f 20 64 61 74 61 |ts DrawI|nfo data|
|000041a0| 0a 20 20 73 63 72 3a 3d | 4c 6f 63 6b 50 75 62 53 |. scr:=|LockPubS|
|000041b0| 63 72 65 65 6e 28 4e 49 | 4c 29 0a 0a 20 20 64 72 |creen(NI|L).. dr|
|000041c0| 5f 69 6e 66 6f 3a 3d 47 | 65 74 53 63 72 65 65 6e |_info:=G|etScreen|
|000041d0| 44 72 61 77 49 6e 66 6f | 28 73 63 72 29 0a 0a 20 |DrawInfo|(scr).. |
|000041e0| 20 2d 3e 20 55 73 65 20 | 77 69 64 65 72 20 6f 66 | -> Use |wider of|
|000041f0| 20 73 70 61 63 65 20 6e | 65 65 64 65 64 20 66 6f | space n|eeded fo|
|00004200| 00 00 00 08 00 00 04 01 | 00 00 00 03 00 00 01 e8 |........|........|
|00004210| 00 00 00 22 db fb a3 e7 | 72 20 6f 75 74 70 75 74 |..."....|r output|
|00004220| 20 28 31 38 20 63 68 61 | 72 73 20 61 6e 64 20 73 | (18 cha|rs and s|
|00004230| 70 61 63 65 73 29 20 6f | 72 20 74 69 74 6c 65 62 |paces) o|r titleb|
|00004240| 61 72 0a 20 20 2d 3e 20 | 74 65 78 74 20 70 6c 75 |ar. -> |text plu|
|00004250| 73 20 72 6f 6f 6d 20 66 | 6f 72 20 74 69 74 6c 65 |s room f|or title|
|00004260| 62 61 72 20 67 61 64 73 | 20 28 61 70 70 72 6f 78 |bar gads| (approx|
|00004270| 20 31 38 20 65 61 63 68 | 29 0a 20 20 2d 3e 20 45 | 18 each|). -> E|
|00004280| 2d 4e 6f 74 65 3a 20 67 | 65 74 20 74 68 65 20 72 |-Note: g|et the r|
|00004290| 69 67 68 74 20 74 79 70 | 65 20 66 6f 72 20 67 66 |ight typ|e for gf|
|000042a0| 78 62 61 73 65 0a 20 20 | 67 66 78 3a 3d 67 66 78 |xbase. |gfx:=gfx|
|000042b0| 62 61 73 65 0a 20 20 77 | 69 64 74 68 3a 3d 4d 61 |base. w|idth:=Ma|
|000042c0| 78 28 67 66 78 2e 64 65 | 66 61 75 6c 74 66 6f 6e |x(gfx.de|faultfon|
|000042d0| 74 2e 78 73 69 7a 65 20 | 2a 20 31 38 2c 0a 20 20 |t.xsize |* 18,. |
|000042e0| 20 20 20 20 20 20 20 20 | 20 20 20 28 31 38 2a 32 | | (18*2|
|000042f0| 29 2b 54 65 78 74 4c 65 | 6e 67 74 68 28 73 63 72 |)+TextLe|ngth(scr|
|00004300| 2e 72 61 73 74 70 6f 72 | 74 2c 20 27 4d 6f 75 73 |.rastpor|t, 'Mous|
|00004310| 65 54 65 73 74 27 2c 20 | 53 54 52 4c 45 4e 29 29 |eTest', |STRLEN))|
|00004320| 0a 0a 20 20 77 69 6e 3a | 3d 4f 70 65 6e 57 69 6e |.. win:|=OpenWin|
|00004330| 64 6f 77 54 61 67 4c 69 | 73 74 28 4e 49 4c 2c 0a |dowTagLi|st(NIL,.|
|00004340| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004350| 20 20 20 20 20 20 20 20 | 5b 57 41 5f 54 4f 50 2c | |[WA_TOP,|
|00004360| 20 20 20 20 32 30 2c 0a | 20 20 20 20 20 20 20 20 | 20,.| |
|00004370| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004380| 20 57 41 5f 4c 45 46 54 | 2c 20 20 20 31 30 30 2c | WA_LEFT|, 100,|
|00004390| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000043a0| 20 20 20 20 20 20 20 20 | 20 20 57 41 5f 49 4e 4e | | WA_INN|
|000043b0| 45 52 57 49 44 54 48 2c | 20 20 77 69 64 74 68 2c |ERWIDTH,| width,|
|000043c0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|000043d0| 20 20 20 20 20 20 20 20 | 20 20 57 41 5f 48 45 49 | | WA_HEI|
|000043e0| 47 48 54 2c 20 28 32 2a | 67 66 78 2e 64 65 66 61 |GHT, (2*|gfx.defa|
|000043f0| 75 6c 74 66 6f 6e 74 2e | 79 73 69 7a 65 29 2b 0a |ultfont.|ysize)+.|
|00004400| 00 00 00 08 00 00 04 01 | 00 00 00 04 00 00 01 e8 |........|........|
|00004410| 00 00 00 23 47 17 0c 00 | 20 20 20 20 20 20 20 20 |...#G...| |
|00004420| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004430| 20 20 20 20 20 20 20 20 | 20 20 20 20 73 63 72 2e | | scr.|
|00004440| 77 62 6f 72 74 6f 70 2b | 73 63 72 2e 66 6f 6e 74 |wbortop+|scr.font|
|00004450| 2e 79 73 69 7a 65 2b 31 | 2b 73 63 72 2e 77 62 6f |.ysize+1|+scr.wbo|
|00004460| 72 62 6f 74 74 6f 6d 2c | 0a 20 20 20 20 20 20 20 |rbottom,|. |
|00004470| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004480| 20 20 57 41 5f 46 4c 41 | 47 53 2c 20 57 46 4c 47 | WA_FLA|GS, WFLG|
|00004490| 5f 44 45 50 54 48 47 41 | 44 47 45 54 20 4f 52 20 |_DEPTHGA|DGET OR |
|000044a0| 57 46 4c 47 5f 43 4c 4f | 53 45 47 41 44 47 45 54 |WFLG_CLO|SEGADGET|
|000044b0| 20 4f 52 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | OR. | |
|000044c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000044d0| 20 20 20 20 20 20 20 20 | 20 57 46 4c 47 5f 41 43 | | WFLG_AC|
|000044e0| 54 49 56 41 54 45 20 20 | 4f 52 20 57 46 4c 47 5f |TIVATE |OR WFLG_|
|000044f0| 52 45 50 4f 52 54 4d 4f | 55 53 45 20 4f 52 0a 20 |REPORTMO|USE OR. |
|00004500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004510| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004520| 20 20 20 20 57 46 4c 47 | 5f 52 4d 42 54 52 41 50 | WFLG|_RMBTRAP|
|00004530| 20 20 20 4f 52 20 57 46 | 4c 47 5f 44 52 41 47 42 | OR WF|LG_DRAGB|
|00004540| 41 52 2c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |AR,. | |
|00004550| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 57 41 5f | | WA_|
|00004560| 49 44 43 4d 50 2c 20 49 | 44 43 4d 50 5f 43 4c 4f |IDCMP, I|DCMP_CLO|
|00004570| 53 45 57 49 4e 44 4f 57 | 20 4f 52 20 49 44 43 4d |SEWINDOW| OR IDCM|
|00004580| 50 5f 52 41 57 4b 45 59 | 20 4f 52 0a 20 20 20 20 |P_RAWKEY| OR. |
|00004590| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000045a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000045b0| 20 49 44 43 4d 50 5f 4d | 4f 55 53 45 4d 4f 56 45 | IDCMP_M|OUSEMOVE|
|000045c0| 20 4f 52 20 49 44 43 4d | 50 5f 4d 4f 55 53 45 42 | OR IDCM|P_MOUSEB|
|000045d0| 55 54 54 4f 4e 53 2c 0a | 20 20 20 20 20 20 20 20 |UTTONS,.| |
|000045e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000045f0| 20 57 41 5f 54 49 54 4c | 45 2c 20 27 4d 6f 75 73 | WA_TITL|E, 'Mous|
|00004600| 00 00 00 08 00 00 04 01 | 00 00 00 05 00 00 01 e8 |........|........|
|00004610| 00 00 00 24 86 f0 e6 9c | 65 54 65 73 74 27 2c 0a |...$....|eTest',.|
|00004620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004630| 20 20 20 20 20 20 20 20 | 20 57 41 5f 50 55 42 53 | | WA_PUBS|
|00004640| 43 52 45 45 4e 2c 20 73 | 63 72 2c 0a 20 20 20 20 |CREEN, s|cr,. |
|00004650| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004660| 20 20 20 20 20 4e 49 4c | 5d 29 0a 0a 20 20 57 72 | NIL|]).. Wr|
|00004670| 69 74 65 46 28 27 4d 6f | 6e 69 74 6f 72 73 20 74 |iteF('Mo|nitors t|
|00004680| 68 65 20 4d 6f 75 73 65 | 3a 5c 6e 27 29 0a 20 20 |he Mouse|:\n'). |
|00004690| 57 72 69 74 65 46 28 27 | 20 20 20 20 4d 6f 76 65 |WriteF('| Move|
|000046a0| 20 4d 6f 75 73 65 2c 20 | 43 6c 69 63 6b 20 61 6e | Mouse, |Click an|
|000046b0| 64 20 44 6f 75 62 6c 65 | 43 6c 69 63 6b 20 69 6e |d Double|Click in|
|000046c0| 20 57 69 6e 64 6f 77 73 | 5c 6e 27 29 0a 0a 20 20 | Windows|\n').. |
|000046d0| 53 65 74 41 50 65 6e 28 | 77 69 6e 2e 72 70 6f 72 |SetAPen(|win.rpor|
|000046e0| 74 2c 20 64 72 5f 69 6e | 66 6f 2e 70 65 6e 73 5b |t, dr_in|fo.pens[|
|000046f0| 54 45 58 54 50 45 4e 5d | 29 0a 20 20 53 65 74 42 |TEXTPEN]|). SetB|
|00004700| 50 65 6e 28 77 69 6e 2e | 72 70 6f 72 74 2c 20 64 |Pen(win.|rport, d|
|00004710| 72 5f 69 6e 66 6f 2e 70 | 65 6e 73 5b 42 41 43 4b |r_info.p|ens[BACK|
|00004720| 47 52 4f 55 4e 44 50 45 | 4e 5d 29 0a 20 20 53 65 |GROUNDPE|N]). Se|
|00004730| 74 44 72 4d 64 28 77 69 | 6e 2e 72 70 6f 72 74 2c |tDrMd(wi|n.rport,|
|00004740| 20 52 50 5f 4a 41 4d 32 | 29 0a 0a 20 20 70 72 6f | RP_JAM2|).. pro|
|00004750| 63 65 73 73 5f 77 69 6e | 64 6f 77 28 77 69 6e 29 |cess_win|dow(win)|
|00004760| 0a 0a 45 58 43 45 50 54 | 20 44 4f 0a 20 20 49 46 |..EXCEPT| DO. IF|
|00004770| 20 77 69 6e 20 54 48 45 | 4e 20 43 6c 6f 73 65 57 | win THE|N CloseW|
|00004780| 69 6e 64 6f 77 28 77 69 | 6e 29 0a 20 20 49 46 20 |indow(wi|n). IF |
|00004790| 64 72 5f 69 6e 66 6f 20 | 54 48 45 4e 20 46 72 65 |dr_info |THEN Fre|
|000047a0| 65 53 63 72 65 65 6e 44 | 72 61 77 49 6e 66 6f 28 |eScreenD|rawInfo(|
|000047b0| 73 63 72 2c 20 64 72 5f | 69 6e 66 6f 29 0a 20 20 |scr, dr_|info). |
|000047c0| 49 46 20 73 63 72 20 54 | 48 45 4e 20 55 6e 6c 6f |IF scr T|HEN Unlo|
|000047d0| 63 6b 50 75 62 53 63 72 | 65 65 6e 28 4e 49 4c 2c |ckPubScr|een(NIL,|
|000047e0| 20 73 63 72 29 0a 20 20 | 53 45 4c 45 43 54 20 65 | scr). |SELECT e|
|000047f0| 78 63 65 70 74 69 6f 6e | 0a 20 20 43 41 53 45 20 |xception|. CASE |
|00004800| 00 00 00 08 00 00 04 01 | 00 00 00 06 00 00 01 e8 |........|........|
|00004810| 00 00 00 25 9c d2 a3 23 | 45 52 52 5f 44 52 41 57 |...%...#|ERR_DRAW|
|00004820| 3b 20 57 72 69 74 65 46 | 28 27 45 72 72 6f 72 3a |; WriteF|('Error:|
|00004830| 20 46 61 69 6c 65 64 20 | 74 6f 20 67 65 74 20 44 | Failed |to get D|
|00004840| 72 61 77 49 6e 66 6f 20 | 66 6f 72 20 73 63 72 65 |rawInfo |for scre|
|00004850| 65 6e 5c 6e 27 29 0a 20 | 20 43 41 53 45 20 45 52 |en\n'). | CASE ER|
|00004860| 52 5f 50 55 42 3b 20 20 | 57 72 69 74 65 46 28 27 |R_PUB; |WriteF('|
|00004870| 45 72 72 6f 72 3a 20 46 | 61 69 6c 65 64 20 74 6f |Error: F|ailed to|
|00004880| 20 6c 6f 63 6b 20 70 75 | 62 6c 69 63 20 73 63 72 | lock pu|blic scr|
|00004890| 65 65 6e 5c 6e 27 29 0a | 20 20 43 41 53 45 20 45 |een\n').| CASE E|
|000048a0| 52 52 5f 57 49 4e 3b 20 | 20 57 72 69 74 65 46 28 |RR_WIN; | WriteF(|
|000048b0| 27 45 72 72 6f 72 3a 20 | 46 61 69 6c 65 64 20 74 |'Error: |Failed t|
|000048c0| 6f 20 6f 70 65 6e 20 77 | 69 6e 64 6f 77 5c 6e 27 |o open w|indow\n'|
|000048d0| 29 0a 20 20 45 4e 44 53 | 45 4c 45 43 54 0a 45 4e |). ENDS|ELECT.EN|
|000048e0| 44 50 52 4f 43 0a 0a 2d | 3e 20 70 72 6f 63 65 73 |DPROC..-|> proces|
|000048f0| 73 5f 77 69 6e 64 6f 77 | 28 29 20 2d 20 53 69 6d |s_window|() - Sim|
|00004900| 70 6c 65 20 6d 65 73 73 | 61 67 65 20 6c 6f 6f 70 |ple mess|age loop|
|00004910| 20 66 6f 72 20 70 72 6f | 63 65 73 73 69 6e 67 20 | for pro|cessing |
|00004920| 49 6e 74 75 69 4d 65 73 | 73 61 67 65 73 0a 50 52 |IntuiMes|sages.PR|
|00004930| 4f 43 20 70 72 6f 63 65 | 73 73 5f 77 69 6e 64 6f |OC proce|ss_windo|
|00004940| 77 28 77 69 6e 3a 50 54 | 52 20 54 4f 20 77 69 6e |w(win:PT|R TO win|
|00004950| 64 6f 77 29 0a 20 20 2d | 3e 20 45 2d 4e 6f 74 65 |dow). -|> E-Note|
|00004960| 3a 20 43 20 76 65 72 73 | 69 6f 6e 20 66 61 69 6c |: C vers|ion fail|
|00004970| 65 64 20 74 6f 20 75 73 | 65 20 42 55 46 53 49 5a |ed to us|e BUFSIZ|
|00004980| 45 21 0a 20 20 44 45 46 | 20 67 6f 69 6e 67 2c 20 |E!. DEF| going, |
|00004990| 6d 73 67 3a 50 54 52 20 | 54 4f 20 69 6e 74 75 69 |msg:PTR |TO intui|
|000049a0| 6d 65 73 73 61 67 65 2c | 20 63 6c 61 73 73 2c 20 |message,| class, |
|000049b0| 74 76 2c 20 70 72 74 5f | 62 75 66 66 5b 42 55 46 |tv, prt_|buff[BUF|
|000049c0| 53 49 5a 45 5d 3a 53 54 | 52 49 4e 47 2c 0a 20 20 |SIZE]:ST|RING,. |
|000049d0| 20 20 20 20 78 54 65 78 | 74 2c 20 79 54 65 78 74 | xTex|t, yText|
|000049e0| 20 20 2d 3e 20 50 6c 61 | 63 65 73 20 74 6f 20 70 | -> Pla|ces to p|
|000049f0| 6f 73 69 74 69 6f 6e 20 | 74 65 78 74 20 69 6e 20 |osition |text in |
|00004a00| 00 00 00 08 00 00 04 01 | 00 00 00 07 00 00 01 e8 |........|........|
|00004a10| 00 00 00 26 01 39 90 7b | 77 69 6e 64 6f 77 0a 0a |...&.9.{|window..|
|00004a20| 20 20 2d 3e 20 45 2d 4e | 6f 74 65 3a 20 67 6f 69 | -> E-N|ote: goi|
|00004a30| 6e 67 20 72 61 74 68 65 | 72 20 74 68 61 6e 20 64 |ng rathe|r than d|
|00004a40| 6f 6e 65 20 73 61 76 65 | 73 20 61 20 6c 6f 74 20 |one save|s a lot |
|00004a50| 6f 66 20 4e 6f 74 28 29 | 2d 69 6e 67 0a 20 20 67 |of Not()|-ing. g|
|00004a60| 6f 69 6e 67 3a 3d 54 52 | 55 45 0a 20 20 74 76 3a |oing:=TR|UE. tv:|
|00004a70| 3d 5b 30 2c 20 30 2c 20 | 30 2c 20 30 5d 3a 6d 79 |=[0, 0, |0, 0]:my|
|00004a80| 54 69 6d 65 56 61 6c 0a | 20 20 78 54 65 78 74 3a |TimeVal.| xText:|
|00004a90| 3d 77 69 6e 2e 62 6f 72 | 64 65 72 6c 65 66 74 2b |=win.bor|derleft+|
|00004aa0| 28 77 69 6e 2e 69 66 6f | 6e 74 2e 78 73 69 7a 65 |(win.ifo|nt.xsize|
|00004ab0| 2a 32 29 0a 20 20 79 54 | 65 78 74 3a 3d 77 69 6e |*2). yT|ext:=win|
|00004ac0| 2e 62 6f 72 64 65 72 74 | 6f 70 2b 33 2b 77 69 6e |.bordert|op+3+win|
|00004ad0| 2e 69 66 6f 6e 74 2e 62 | 61 73 65 6c 69 6e 65 0a |.ifont.b|aseline.|
|00004ae0| 0a 20 20 2d 3e 20 45 2d | 4e 6f 74 65 3a 20 77 65 |. -> E-|Note: we|
|00004af0| 20 63 61 6e 27 74 20 75 | 73 65 20 57 61 69 74 49 | can't u|se WaitI|
|00004b00| 4d 65 73 73 61 67 65 28 | 29 20 62 65 63 61 75 73 |Message(|) becaus|
|00004b10| 65 20 77 65 20 77 61 6e | 74 20 6d 6f 75 73 65 78 |e we wan|t mousex|
|00004b20| 2c 20 6d 6f 75 73 65 79 | 0a 20 20 57 48 49 4c 45 |, mousey|. WHILE|
|00004b30| 20 67 6f 69 6e 67 0a 20 | 20 20 20 57 61 69 74 28 | going. | Wait(|
|00004b40| 53 68 6c 28 31 2c 20 77 | 69 6e 2e 75 73 65 72 70 |Shl(1, w|in.userp|
|00004b50| 6f 72 74 2e 73 69 67 62 | 69 74 29 29 0a 20 20 20 |ort.sigb|it)). |
|00004b60| 20 57 48 49 4c 45 20 67 | 6f 69 6e 67 20 41 4e 44 | WHILE g|oing AND|
|00004b70| 20 28 6d 73 67 3a 3d 47 | 65 74 4d 73 67 28 77 69 | (msg:=G|etMsg(wi|
|00004b80| 6e 2e 75 73 65 72 70 6f | 72 74 29 29 0a 20 20 20 |n.userpo|rt)). |
|00004b90| 20 20 20 63 6c 61 73 73 | 3a 3d 6d 73 67 2e 63 6c | class|:=msg.cl|
|00004ba0| 61 73 73 0a 20 20 20 20 | 20 20 53 45 4c 45 43 54 |ass. | SELECT|
|00004bb0| 20 63 6c 61 73 73 0a 20 | 20 20 20 20 20 43 41 53 | class. | CAS|
|00004bc0| 45 20 49 44 43 4d 50 5f | 43 4c 4f 53 45 57 49 4e |E IDCMP_|CLOSEWIN|
|00004bd0| 44 4f 57 0a 20 20 20 20 | 20 20 20 20 67 6f 69 6e |DOW. | goin|
|00004be0| 67 3a 3d 46 41 4c 53 45 | 0a 0a 20 20 20 20 20 20 |g:=FALSE|.. |
|00004bf0| 2d 3e 20 4e 4f 54 45 20 | 4e 4f 54 45 20 4e 4f 54 |-> NOTE |NOTE NOT|
|00004c00| 00 00 00 08 00 00 04 01 | 00 00 00 08 00 00 01 e8 |........|........|
|00004c10| 00 00 00 27 07 91 5c 6a | 45 3a 20 20 49 66 20 74 |...'..\j|E: If t|
|00004c20| 68 65 20 6d 6f 75 73 65 | 20 71 75 65 75 65 20 62 |he mouse| queue b|
|00004c30| 61 63 6b 73 20 75 70 20 | 61 20 6c 6f 74 2c 20 49 |acks up |a lot, I|
|00004c40| 6e 74 75 69 74 69 6f 6e | 20 77 69 6c 6c 0a 20 20 |ntuition| will. |
|00004c50| 20 20 20 20 2d 3e 20 73 | 74 61 72 74 20 64 72 6f | -> s|tart dro|
|00004c60| 70 70 69 6e 67 20 4d 4f | 55 53 45 4d 4f 56 45 20 |pping MO|USEMOVE |
|00004c70| 6d 65 73 73 61 67 65 73 | 20 6f 66 66 20 74 68 65 |messages| off the|
|00004c80| 20 65 6e 64 20 75 6e 74 | 69 6c 20 74 68 65 20 71 | end unt|il the q|
|00004c90| 75 65 75 65 20 69 73 0a | 20 20 20 20 20 20 2d 3e |ueue is.| ->|
|00004ca0| 20 73 65 72 76 69 63 65 | 64 2e 20 20 54 68 69 73 | service|d. This|
|00004cb0| 20 6d 61 79 20 63 61 75 | 73 65 20 74 68 65 20 70 | may cau|se the p|
|00004cc0| 72 6f 67 72 61 6d 20 74 | 6f 20 6c 6f 73 65 20 73 |rogram t|o lose s|
|00004cd0| 6f 6d 65 20 6f 66 20 74 | 68 65 20 4d 4f 55 53 45 |ome of t|he MOUSE|
|00004ce0| 4d 4f 56 45 0a 20 20 20 | 20 20 20 2d 3e 20 65 76 |MOVE. | -> ev|
|00004cf0| 65 6e 74 73 20 61 74 20 | 74 68 65 20 65 6e 64 20 |ents at |the end |
|00004d00| 6f 66 20 74 68 65 20 73 | 74 72 65 61 6d 2e 0a 20 |of the s|tream.. |
|00004d10| 20 20 20 20 20 2d 3e 0a | 20 20 20 20 20 20 2d 3e | ->.| ->|
|00004d20| 20 4c 6f 6f 6b 20 69 6e | 20 74 68 65 20 77 69 6e | Look in| the win|
|00004d30| 64 6f 77 20 73 74 72 75 | 63 74 75 72 65 20 69 66 |dow stru|cture if|
|00004d40| 20 79 6f 75 20 6e 65 65 | 64 20 74 68 65 20 74 72 | you nee|d the tr|
|00004d50| 75 65 20 70 6f 73 69 74 | 69 6f 6e 20 6f 66 20 74 |ue posit|ion of t|
|00004d60| 68 65 0a 20 20 20 20 20 | 20 2d 3e 20 6d 6f 75 73 |he. | -> mous|
|00004d70| 65 20 70 6f 69 6e 74 65 | 72 20 61 74 20 61 6e 79 |e pointe|r at any|
|00004d80| 20 67 69 76 65 6e 20 74 | 69 6d 65 2e 20 20 4c 6f | given t|ime. Lo|
|00004d90| 6f 6b 20 69 6e 20 74 68 | 65 20 4d 4f 55 53 45 42 |ok in th|e MOUSEB|
|00004da0| 55 54 54 4f 4e 53 20 6d | 65 73 73 61 67 65 20 69 |UTTONS m|essage i|
|00004db0| 66 0a 20 20 20 20 20 20 | 2d 3e 20 79 6f 75 20 6e |f. |-> you n|
|00004dc0| 65 65 64 20 70 6f 73 69 | 74 69 6f 6e 20 77 68 65 |eed posi|tion whe|
|00004dd0| 6e 20 69 74 20 63 6c 69 | 63 6b 65 64 2e 20 20 41 |n it cli|cked. A|
|00004de0| 6e 20 61 6c 74 65 72 6e | 61 74 65 20 74 6f 20 74 |n altern|ate to t|
|00004df0| 68 69 73 20 70 72 6f 63 | 65 73 73 69 6e 67 0a 20 |his proc|essing. |
|00004e00| 00 00 00 08 00 00 04 01 | 00 00 00 09 00 00 01 e8 |........|........|
|00004e10| 00 00 00 28 25 1c 26 12 | 20 20 20 20 20 2d 3e 20 |...(%.&.| -> |
|00004e20| 77 6f 75 6c 64 20 62 65 | 20 74 6f 20 73 65 74 20 |would be| to set |
|00004e30| 61 20 66 6c 61 67 20 74 | 68 61 74 20 61 20 6d 6f |a flag t|hat a mo|
|00004e40| 75 73 65 6d 6f 76 65 20 | 65 76 65 6e 74 20 61 72 |usemove |event ar|
|00004e50| 72 69 76 65 64 2c 20 74 | 68 65 6e 20 70 72 69 6e |rived, t|hen prin|
|00004e60| 74 20 74 68 65 0a 20 20 | 20 20 20 20 2d 3e 20 70 |t the. | -> p|
|00004e70| 6f 73 69 74 69 6f 6e 20 | 6f 66 20 74 68 65 20 6d |osition |of the m|
|00004e80| 6f 75 73 65 20 6f 75 74 | 73 69 64 65 20 6f 66 20 |ouse out|side of |
|00004e90| 61 20 22 57 48 49 4c 45 | 20 47 65 74 4d 73 67 28 |a "WHILE| GetMsg(|
|00004ea0| 29 22 20 6c 6f 6f 70 2e | 20 20 54 68 69 73 20 61 |)" loop.| This a|
|00004eb0| 6c 6c 6f 77 73 0a 20 20 | 20 20 20 20 2d 3e 20 61 |llows. | -> a|
|00004ec0| 20 73 69 6e 67 6c 65 20 | 70 72 6f 63 65 73 73 69 | single |processi|
|00004ed0| 6e 67 20 63 61 6c 6c 20 | 66 6f 72 20 6d 61 6e 79 |ng call |for many|
|00004ee0| 20 6d 6f 75 73 65 20 65 | 76 65 6e 74 73 2c 20 77 | mouse e|vents, w|
|00004ef0| 68 69 63 68 20 73 70 65 | 65 64 73 20 75 70 0a 20 |hich spe|eds up. |
|00004f00| 20 20 20 20 20 2d 3e 20 | 70 72 6f 63 65 73 73 69 | -> |processi|
|00004f10| 6e 67 20 41 20 4c 4f 54 | 21 20 20 53 6f 6d 65 74 |ng A LOT|! Somet|
|00004f20| 68 69 6e 67 20 6c 69 6b | 65 3a 0a 20 20 20 20 20 |hing lik|e:. |
|00004f30| 20 2d 3e 0a 20 20 20 20 | 20 20 2d 3e 20 57 48 49 | ->. | -> WHI|
|00004f40| 4c 45 20 47 65 74 4d 73 | 67 28 29 0a 20 20 20 20 |LE GetMs|g(). |
|00004f50| 20 20 2d 3e 20 20 20 49 | 46 20 63 6c 61 73 73 3d | -> I|F class=|
|00004f60| 49 44 43 4d 50 5f 4d 4f | 55 53 45 4d 4f 56 45 20 |IDCMP_MO|USEMOVE |
|00004f70| 54 48 45 4e 20 6d 6f 75 | 73 65 5f 66 6c 61 67 3a |THEN mou|se_flag:|
|00004f80| 3d 20 54 52 55 45 0a 20 | 20 20 20 20 20 2d 3e 20 |= TRUE. | -> |
|00004f90| 20 20 20 52 65 70 6c 79 | 4d 73 67 28 29 20 20 2d | Reply|Msg() -|
|00004fa0| 3e 20 4e 4f 54 45 3a 20 | 63 6f 70 79 20 6f 75 74 |> NOTE: |copy out|
|00004fb0| 20 61 6c 6c 20 6e 65 65 | 64 65 64 20 66 69 65 6c | all nee|ded fiel|
|00004fc0| 64 73 20 66 69 72 73 74 | 20 21 0a 20 20 20 20 20 |ds first| !. |
|00004fd0| 20 2d 3e 20 45 4e 44 57 | 48 49 4c 45 0a 20 20 20 | -> ENDW|HILE. |
|00004fe0| 20 20 20 2d 3e 20 49 46 | 20 6d 6f 75 73 65 5f 66 | -> IF| mouse_f|
|00004ff0| 6c 61 67 0a 20 20 20 20 | 20 20 2d 3e 20 20 20 70 |lag. | -> p|
|00005000| 00 00 00 08 00 00 04 01 | 00 00 00 0a 00 00 01 e8 |........|........|
|00005010| 00 00 00 29 7a 4d cb 2a | 72 6f 63 65 73 73 5f 6d |...)zM.*|rocess_m|
|00005020| 6f 75 73 65 5f 65 76 65 | 6e 74 28 29 0a 20 20 20 |ouse_eve|nt(). |
|00005030| 20 20 20 2d 3e 20 20 20 | 6d 6f 75 73 65 5f 66 6c | -> |mouse_fl|
|00005040| 61 67 3a 3d 46 41 4c 53 | 45 0a 20 20 20 20 20 20 |ag:=FALS|E. |
|00005050| 2d 3e 20 45 4e 44 49 46 | 0a 20 20 20 20 20 20 2d |-> ENDIF|. -|
|00005060| 3e 0a 20 20 20 20 20 20 | 2d 3e 20 59 6f 75 20 63 |>. |-> You c|
|00005070| 61 6e 20 61 6c 73 6f 20 | 75 73 65 20 49 44 43 4d |an also |use IDCM|
|00005080| 50 5f 49 4e 54 55 49 54 | 49 43 4b 53 20 66 6f 72 |P_INTUIT|ICKS for|
|00005090| 20 73 6c 6f 77 65 72 20 | 70 61 63 65 64 20 6d 65 | slower |paced me|
|000050a0| 73 73 61 67 65 73 20 28 | 61 6c 6c 0a 20 20 20 20 |ssages (|all. |
|000050b0| 20 20 2d 3e 20 6d 65 73 | 73 61 67 65 73 20 68 61 | -> mes|sages ha|
|000050c0| 76 65 20 6d 6f 75 73 65 | 20 63 6f 6f 72 64 69 6e |ve mouse| coordin|
|000050d0| 61 74 65 73 2e 29 0a 20 | 20 20 20 20 20 43 41 53 |ates.). | CAS|
|000050e0| 45 20 49 44 43 4d 50 5f | 4d 4f 55 53 45 4d 4f 56 |E IDCMP_|MOUSEMOV|
|000050f0| 45 0a 09 2d 3e 20 53 68 | 6f 77 20 74 68 65 20 63 |E..-> Sh|ow the c|
|00005100| 75 72 72 65 6e 74 20 70 | 6f 73 69 74 69 6f 6e 20 |urrent p|osition |
|00005110| 6f 66 20 74 68 65 20 6d | 6f 75 73 65 20 72 65 6c |of the m|ouse rel|
|00005120| 61 74 69 76 65 20 74 6f | 20 74 68 65 20 75 70 70 |ative to| the upp|
|00005130| 65 72 20 6c 65 66 74 0a | 20 20 20 20 20 20 20 20 |er left.| |
|00005140| 2d 3e 20 68 61 6e 64 20 | 63 6f 72 6e 65 72 20 6f |-> hand |corner o|
|00005150| 66 20 6f 75 72 20 77 69 | 6e 64 6f 77 0a 09 4d 6f |f our wi|ndow..Mo|
|00005160| 76 65 28 77 69 6e 2e 72 | 70 6f 72 74 2c 20 78 54 |ve(win.r|port, xT|
|00005170| 65 78 74 2c 20 79 54 65 | 78 74 29 0a 09 53 74 72 |ext, yTe|xt)..Str|
|00005180| 69 6e 67 46 28 70 72 74 | 5f 62 75 66 66 2c 20 27 |ingF(prt|_buff, '|
|00005190| 58 3d 5c 64 5b 35 5d 20 | 59 3d 5c 64 5b 35 5d 27 |X=\d[5] |Y=\d[5]'|
|000051a0| 2c 20 6d 73 67 2e 6d 6f | 75 73 65 78 2c 20 6d 73 |, msg.mo|usex, ms|
|000051b0| 67 2e 6d 6f 75 73 65 79 | 29 0a 20 20 20 20 20 20 |g.mousey|). |
|000051c0| 20 20 54 65 78 74 28 77 | 69 6e 2e 72 70 6f 72 74 | Text(w|in.rport|
|000051d0| 2c 20 70 72 74 5f 62 75 | 66 66 2c 20 42 55 46 53 |, prt_bu|ff, BUFS|
|000051e0| 49 5a 45 29 0a 20 20 20 | 20 20 20 43 41 53 45 20 |IZE). | CASE |
|000051f0| 49 44 43 4d 50 5f 4d 4f | 55 53 45 42 55 54 54 4f |IDCMP_MO|USEBUTTO|
|00005200| 00 00 00 08 00 00 04 01 | 00 00 00 0b 00 00 01 e8 |........|........|
|00005210| 00 00 00 2a db 80 05 09 | 4e 53 0a 20 20 20 20 20 |...*....|NS. |
|00005220| 20 20 20 64 6f 42 75 74 | 74 6f 6e 73 28 6d 73 67 | doBut|tons(msg|
|00005230| 2c 20 74 76 29 0a 20 20 | 20 20 20 20 45 4e 44 53 |, tv). | ENDS|
|00005240| 45 4c 45 43 54 0a 20 20 | 20 20 20 20 52 65 70 6c |ELECT. | Repl|
|00005250| 79 4d 73 67 28 6d 73 67 | 29 0a 20 20 20 20 45 4e |yMsg(msg|). EN|
|00005260| 44 57 48 49 4c 45 0a 20 | 20 45 4e 44 57 48 49 4c |DWHILE. | ENDWHIL|
|00005270| 45 0a 45 4e 44 50 52 4f | 43 0a 0a 2d 3e 20 53 68 |E.ENDPRO|C..-> Sh|
|00005280| 6f 77 20 77 68 61 74 20 | 6d 6f 75 73 65 20 62 75 |ow what |mouse bu|
|00005290| 74 74 6f 6e 73 20 77 68 | 65 72 65 20 70 75 73 68 |ttons wh|ere push|
|000052a0| 65 64 0a 50 52 4f 43 20 | 64 6f 42 75 74 74 6f 6e |ed.PROC |doButton|
|000052b0| 73 28 6d 73 67 3a 50 54 | 52 20 54 4f 20 69 6e 74 |s(msg:PT|R TO int|
|000052c0| 75 69 6d 65 73 73 61 67 | 65 2c 20 74 76 3a 50 54 |uimessag|e, tv:PT|
|000052d0| 52 20 54 4f 20 6d 79 54 | 69 6d 65 56 61 6c 29 0a |R TO myT|imeVal).|
|000052e0| 20 20 44 45 46 20 63 6f | 64 65 0a 20 20 49 46 20 | DEF co|de. IF |
|000052f0| 6d 73 67 2e 71 75 61 6c | 69 66 69 65 72 20 41 4e |msg.qual|ifier AN|
|00005300| 44 20 28 49 45 51 55 41 | 4c 49 46 49 45 52 5f 4c |D (IEQUA|LIFIER_L|
|00005310| 53 48 49 46 54 20 4f 52 | 20 49 45 51 55 41 4c 49 |SHIFT OR| IEQUALI|
|00005320| 46 49 45 52 5f 52 53 48 | 49 46 54 29 0a 20 20 20 |FIER_RSH|IFT). |
|00005330| 20 57 72 69 74 65 46 28 | 27 53 68 69 66 74 20 27 | WriteF(|'Shift '|
|00005340| 29 0a 20 20 45 4e 44 49 | 46 0a 0a 20 20 63 6f 64 |). ENDI|F.. cod|
|00005350| 65 3a 3d 6d 73 67 2e 63 | 6f 64 65 0a 20 20 53 45 |e:=msg.c|ode. SE|
|00005360| 4c 45 43 54 20 63 6f 64 | 65 0a 20 20 43 41 53 45 |LECT cod|e. CASE|
|00005370| 20 53 45 4c 45 43 54 44 | 4f 57 4e 0a 20 20 20 20 | SELECTD|OWN. |
|00005380| 57 72 69 74 65 46 28 27 | 4c 65 66 74 20 42 75 74 |WriteF('|Left But|
|00005390| 74 6f 6e 20 44 6f 77 6e | 20 61 74 20 58 3d 5c 64 |ton Down| at X=\d|
|000053a0| 20 59 3d 5c 64 27 2c 20 | 6d 73 67 2e 6d 6f 75 73 | Y=\d', |msg.mous|
|000053b0| 65 78 2c 20 6d 73 67 2e | 6d 6f 75 73 65 79 29 0a |ex, msg.|mousey).|
|000053c0| 20 20 20 20 49 46 20 44 | 6f 75 62 6c 65 43 6c 69 | IF D|oubleCli|
|000053d0| 63 6b 28 74 76 2e 6c 65 | 66 74 53 65 63 6f 6e 64 |ck(tv.le|ftSecond|
|000053e0| 73 2c 20 74 76 2e 6c 65 | 66 74 4d 69 63 72 6f 73 |s, tv.le|ftMicros|
|000053f0| 2c 20 6d 73 67 2e 73 65 | 63 6f 6e 64 73 2c 20 6d |, msg.se|conds, m|
|00005400| 00 00 00 08 00 00 04 01 | 00 00 00 0c 00 00 01 e8 |........|........|
|00005410| 00 00 00 2b e0 d8 be 28 | 73 67 2e 6d 69 63 72 6f |...+...(|sg.micro|
|00005420| 73 29 0a 20 20 20 20 20 | 20 57 72 69 74 65 46 28 |s). | WriteF(|
|00005430| 27 20 44 6f 75 62 6c 65 | 43 6c 69 63 6b 21 27 29 |' Double|Click!')|
|00005440| 0a 20 20 20 20 45 4c 53 | 45 0a 20 20 20 20 20 20 |. ELS|E. |
|00005450| 74 76 2e 6c 65 66 74 53 | 65 63 6f 6e 64 73 3a 3d |tv.leftS|econds:=|
|00005460| 6d 73 67 2e 73 65 63 6f | 6e 64 73 0a 20 20 20 20 |msg.seco|nds. |
|00005470| 20 20 74 76 2e 6c 65 66 | 74 4d 69 63 72 6f 73 3a | tv.lef|tMicros:|
|00005480| 3d 6d 73 67 2e 6d 69 63 | 72 6f 73 0a 20 20 20 20 |=msg.mic|ros. |
|00005490| 20 20 74 76 2e 72 69 67 | 68 74 53 65 63 6f 6e 64 | tv.rig|htSecond|
|000054a0| 73 3a 3d 30 0a 20 20 20 | 20 20 20 74 76 2e 72 69 |s:=0. | tv.ri|
|000054b0| 67 68 74 4d 69 63 72 6f | 73 3a 3d 30 0a 20 20 20 |ghtMicro|s:=0. |
|000054c0| 20 45 4e 44 49 46 0a 20 | 20 43 41 53 45 20 53 45 | ENDIF. | CASE SE|
|000054d0| 4c 45 43 54 55 50 0a 20 | 20 20 20 57 72 69 74 65 |LECTUP. | Write|
|000054e0| 46 28 27 4c 65 66 74 20 | 42 75 74 74 6f 6e 20 55 |F('Left |Button U|
|000054f0| 70 20 20 20 61 74 20 58 | 3d 5c 64 20 59 3d 5c 64 |p at X|=\d Y=\d|
|00005500| 27 2c 20 6d 73 67 2e 6d | 6f 75 73 65 78 2c 20 6d |', msg.m|ousex, m|
|00005510| 73 67 2e 6d 6f 75 73 65 | 79 29 0a 20 20 43 41 53 |sg.mouse|y). CAS|
|00005520| 45 20 4d 45 4e 55 44 4f | 57 4e 0a 20 20 20 20 57 |E MENUDO|WN. W|
|00005530| 72 69 74 65 46 28 27 52 | 69 67 68 74 20 42 75 74 |riteF('R|ight But|
|00005540| 74 6f 6e 20 44 6f 77 6e | 20 61 74 20 58 3d 5c 64 |ton Down| at X=\d|
|00005550| 20 59 3d 5c 64 27 2c 20 | 6d 73 67 2e 6d 6f 75 73 | Y=\d', |msg.mous|
|00005560| 65 78 2c 20 6d 73 67 2e | 6d 6f 75 73 65 79 29 0a |ex, msg.|mousey).|
|00005570| 20 20 20 20 49 46 20 44 | 6f 75 62 6c 65 43 6c 69 | IF D|oubleCli|
|00005580| 63 6b 28 74 76 2e 72 69 | 67 68 74 53 65 63 6f 6e |ck(tv.ri|ghtSecon|
|00005590| 64 73 2c 20 74 76 2e 72 | 69 67 68 74 4d 69 63 72 |ds, tv.r|ightMicr|
|000055a0| 6f 73 2c 20 6d 73 67 2e | 73 65 63 6f 6e 64 73 2c |os, msg.|seconds,|
|000055b0| 20 6d 73 67 2e 6d 69 63 | 72 6f 73 29 0a 20 20 20 | msg.mic|ros). |
|000055c0| 20 20 20 57 72 69 74 65 | 46 28 27 20 44 6f 75 62 | Write|F(' Doub|
|000055d0| 6c 65 43 6c 69 63 6b 21 | 27 29 0a 20 20 20 20 45 |leClick!|'). E|
|000055e0| 4c 53 45 0a 20 20 20 20 | 20 20 74 76 2e 6c 65 66 |LSE. | tv.lef|
|000055f0| 74 53 65 63 6f 6e 64 73 | 3a 3d 30 0a 20 20 20 20 |tSeconds|:=0. |
|00005600| 00 00 00 08 00 00 04 01 | 00 00 00 0d 00 00 00 d7 |........|........|
|00005610| 00 00 00 00 36 e8 bf 50 | 20 20 74 76 2e 6c 65 66 |....6..P| tv.lef|
|00005620| 74 4d 69 63 72 6f 73 3a | 3d 30 0a 20 20 20 20 20 |tMicros:|=0. |
|00005630| 20 74 76 2e 72 69 67 68 | 74 53 65 63 6f 6e 64 73 | tv.righ|tSeconds|
|00005640| 3a 3d 6d 73 67 2e 73 65 | 63 6f 6e 64 73 0a 20 20 |:=msg.se|conds. |
|00005650| 20 20 20 20 74 76 2e 72 | 69 67 68 74 4d 69 63 72 | tv.r|ightMicr|
|00005660| 6f 73 3a 3d 6d 73 67 2e | 6d 69 63 72 6f 73 0a 20 |os:=msg.|micros. |
|00005670| 20 20 20 45 4e 44 49 46 | 0a 20 20 43 41 53 45 20 | ENDIF|. CASE |
|00005680| 4d 45 4e 55 55 50 0a 20 | 20 20 20 57 72 69 74 65 |MENUUP. | Write|
|00005690| 46 28 27 52 69 67 68 74 | 20 42 75 74 74 6f 6e 20 |F('Right| Button |
|000056a0| 55 70 20 20 20 61 74 20 | 58 3d 5c 64 20 59 3d 5c |Up at |X=\d Y=\|
|000056b0| 64 27 2c 20 6d 73 67 2e | 6d 6f 75 73 65 78 2c 20 |d', msg.|mousex, |
|000056c0| 6d 73 67 2e 6d 6f 75 73 | 65 79 29 0a 20 20 45 4e |msg.mous|ey). EN|
|000056d0| 44 53 45 4c 45 43 54 0a | 20 20 57 72 69 74 65 46 |DSELECT.| WriteF|
|000056e0| 28 27 5c 6e 27 29 0a 45 | 4e 44 50 52 4f 43 0a 55 |('\n').E|NDPROC.U|
|000056f0| 70 20 20 20 61 74 20 58 | 3d 5c 64 20 59 3d 5c 64 |p at X|=\d Y=\d|
|00005700| 27 2c 20 6d 73 67 2e 6d | 6f 75 73 65 78 2c 20 6d |', msg.m|ousex, m|
|00005710| 73 67 2e 6d 6f 75 73 65 | 79 29 0a 20 20 43 41 53 |sg.mouse|y). CAS|
|00005720| 45 20 4d 45 4e 55 44 4f | 57 4e 0a 20 20 20 20 57 |E MENUDO|WN. W|
|00005730| 72 69 74 65 46 28 27 52 | 69 67 68 74 20 42 75 74 |riteF('R|ight But|
|00005740| 74 6f 6e 20 44 6f 77 6e | 20 61 74 20 58 3d 5c 64 |ton Down| at X=\d|
|00005750| 20 59 3d 5c 64 27 2c 20 | 6d 73 67 2e 6d 6f 75 73 | Y=\d', |msg.mous|
|00005760| 65 78 2c 20 6d 73 67 2e | 6d 6f 75 73 65 79 29 0a |ex, msg.|mousey).|
|00005770| 20 20 20 20 49 46 20 44 | 6f 75 62 6c 65 43 6c 69 | IF D|oubleCli|
|00005780| 63 6b 28 74 76 2e 72 69 | 67 68 74 53 65 63 6f 6e |ck(tv.ri|ghtSecon|
|00005790| 64 73 2c 20 74 76 2e 72 | 69 67 68 74 4d 69 63 72 |ds, tv.r|ightMicr|
|000057a0| 6f 73 2c 20 6d 73 67 2e | 73 65 63 6f 6e 64 73 2c |os, msg.|seconds,|
|000057b0| 20 6d 73 67 2e 6d 69 63 | 72 6f 73 29 0a 20 20 20 | msg.mic|ros). |
|000057c0| 20 20 20 57 72 69 74 65 | 46 28 27 20 44 6f 75 62 | Write|F(' Doub|
|000057d0| 6c 65 43 6c 69 63 6b 21 | 27 29 0a 20 20 20 20 45 |leClick!|'). E|
|000057e0| 4c 53 45 0a 20 20 20 20 | 20 20 74 76 2e 6c 65 66 |LSE. | tv.lef|
|000057f0| 74 53 65 63 6f 6e 64 73 | 3a 3d 30 0a 20 20 20 20 |tSeconds|:=0. |
|00005800| 00 00 00 08 00 00 04 02 | 00 00 00 01 00 00 01 e8 |........|........|
|00005810| 00 00 00 2d 6d 72 42 7f | 2d 3e 20 63 75 73 74 6f |...-mrB.|-> custo|
|00005820| 6d 70 6f 69 6e 74 65 72 | 2e 63 20 2d 20 53 68 6f |mpointer|.c - Sho|
|00005830| 77 20 74 68 65 20 75 73 | 65 20 6f 66 20 61 20 63 |w the us|e of a c|
|00005840| 75 73 74 6f 6d 20 62 75 | 73 79 20 70 6f 69 6e 74 |ustom bu|sy point|
|00005850| 65 72 2c 20 61 73 20 77 | 65 6c 6c 20 61 73 20 75 |er, as w|ell as u|
|00005860| 73 69 6e 67 20 61 0a 2d | 3e 20 72 65 71 75 65 73 |sing a.-|> reques|
|00005870| 74 65 72 20 74 6f 20 62 | 6c 6f 63 6b 20 69 6e 70 |ter to b|lock inp|
|00005880| 75 74 20 74 6f 20 61 20 | 77 69 6e 64 6f 77 2e 0a |ut to a |window..|
|00005890| 0a 4f 50 54 20 4f 53 56 | 45 52 53 49 4f 4e 3d 33 |.OPT OSV|ERSION=3|
|000058a0| 37 20 20 2d 3e 20 45 2d | 4e 6f 74 65 3a 20 73 69 |7 -> E-|Note: si|
|000058b0| 6c 65 6e 74 6c 79 20 72 | 65 71 75 69 72 65 20 56 |lently r|equire V|
|000058c0| 33 37 0a 0a 4d 4f 44 55 | 4c 45 20 27 65 78 65 63 |37..MODU|LE 'exec|
|000058d0| 2f 6d 65 6d 6f 72 79 27 | 2c 0a 20 20 20 20 20 20 |/memory'|,. |
|000058e0| 20 27 69 6e 74 75 69 74 | 69 6f 6e 2f 69 6e 74 75 | 'intuit|ion/intu|
|000058f0| 69 74 69 6f 6e 27 0a 0a | 45 4e 55 4d 20 45 52 52 |ition'..|ENUM ERR|
|00005900| 5f 4e 4f 4e 45 2c 20 45 | 52 52 5f 57 49 4e 0a 0a |_NONE, E|RR_WIN..|
|00005910| 52 41 49 53 45 20 45 52 | 52 5f 57 49 4e 20 49 46 |RAISE ER|R_WIN IF|
|00005920| 20 4f 70 65 6e 57 69 6e | 64 6f 77 54 61 67 4c 69 | OpenWin|dowTagLi|
|00005930| 73 74 28 29 3d 4e 49 4c | 0a 0a 50 52 4f 43 20 6d |st()=NIL|..PROC m|
|00005940| 61 69 6e 28 29 20 48 41 | 4e 44 4c 45 0a 20 20 44 |ain() HA|NDLE. D|
|00005950| 45 46 20 77 69 6e 3d 4e | 49 4c 2c 20 6e 75 6c 6c |EF win=N|IL, null|
|00005960| 5f 72 65 71 75 65 73 74 | 3a 72 65 71 75 65 73 74 |_request|:request|
|00005970| 65 72 2c 20 77 61 69 74 | 50 6f 69 6e 74 65 72 0a |er, wait|Pointer.|
|00005980| 0a 20 20 2d 3e 20 54 68 | 65 20 77 69 6e 64 6f 77 |. -> Th|e window|
|00005990| 20 69 73 20 6f 70 65 6e | 65 64 20 61 73 20 61 63 | is open|ed as ac|
|000059a0| 74 69 76 65 20 28 57 41 | 5f 41 43 54 49 56 41 54 |tive (WA|_ACTIVAT|
|000059b0| 45 29 20 73 6f 20 74 68 | 61 74 20 74 68 65 20 62 |E) so th|at the b|
|000059c0| 75 73 79 20 70 6f 69 6e | 74 65 72 20 77 69 6c 6c |usy poin|ter will|
|000059d0| 0a 20 20 2d 3e 20 62 65 | 20 76 69 73 69 62 6c 65 |. -> be| visible|
|000059e0| 2e 20 20 49 66 20 74 68 | 65 20 77 69 6e 64 6f 77 |. If th|e window|
|000059f0| 20 77 61 73 20 6e 6f 74 | 20 61 63 74 69 76 65 2c | was not| active,|
|00005a00| 00 00 00 08 00 00 04 02 | 00 00 00 02 00 00 01 e8 |........|........|
|00005a10| 00 00 00 2e f8 c1 61 08 | 20 74 68 65 20 75 73 65 |......a.| the use|
|00005a20| 72 20 77 6f 75 6c 64 20 | 68 61 76 65 20 74 6f 20 |r would |have to |
|00005a30| 61 63 74 69 76 61 74 65 | 0a 20 20 2d 3e 20 69 74 |activate|. -> it|
|00005a40| 20 74 6f 20 73 65 65 20 | 74 68 65 20 63 68 61 6e | to see |the chan|
|00005a50| 67 65 20 69 6e 20 74 68 | 65 20 70 6f 69 6e 74 65 |ge in th|e pointe|
|00005a60| 72 2e 0a 20 20 77 69 6e | 3a 3d 4f 70 65 6e 57 69 |r.. win|:=OpenWi|
|00005a70| 6e 64 6f 77 54 61 67 4c | 69 73 74 28 4e 49 4c 2c |ndowTagL|ist(NIL,|
|00005a80| 20 5b 57 41 5f 41 43 54 | 49 56 41 54 45 2c 20 54 | [WA_ACT|IVATE, T|
|00005a90| 52 55 45 2c 20 4e 49 4c | 5d 29 0a 0a 20 20 2d 3e |RUE, NIL|]).. ->|
|00005aa0| 20 45 2d 4e 6f 74 65 3a | 20 74 68 65 20 64 61 74 | E-Note:| the dat|
|00005ab0| 61 20 69 73 20 72 65 61 | 6c 6c 79 20 61 20 6c 6f |a is rea|lly a lo|
|00005ac0| 74 20 6f 66 20 4c 4f 4e | 47 73 20 28 61 6e 64 20 |t of LON|Gs (and |
|00005ad0| 69 6e 20 43 68 69 70 20 | 6d 65 6d 6f 72 79 21 29 |in Chip |memory!)|
|00005ae0| 0a 20 20 77 61 69 74 50 | 6f 69 6e 74 65 72 3a 3d |. waitP|ointer:=|
|00005af0| 63 6f 70 79 4c 69 73 74 | 54 6f 43 68 69 70 28 5b |copyList|ToChip([|
|00005b00| 24 30 30 30 30 30 30 30 | 30 2c 20 20 20 2d 3e 20 |$0000000|0, -> |
|00005b10| 52 65 73 65 72 76 65 64 | 2c 20 6d 75 73 74 20 62 |Reserved|, must b|
|00005b20| 65 20 4e 49 4c 0a 20 20 | 20 20 20 20 20 20 20 20 |e NIL. | |
|00005b30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005b40| 20 20 20 20 20 24 30 34 | 30 30 30 37 43 30 2c 20 | $04|0007C0, |
|00005b50| 20 24 30 30 30 30 30 37 | 43 30 2c 20 20 24 30 31 | $000007|C0, $01|
|00005b60| 30 30 30 33 38 30 2c 20 | 20 24 30 30 30 30 30 37 |000380, | $000007|
|00005b70| 45 30 2c 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |E0,. | |
|00005b80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005b90| 20 20 20 24 30 37 43 30 | 31 46 46 38 2c 20 20 24 | $07C0|1FF8, $|
|00005ba0| 31 46 46 30 33 46 45 43 | 2c 20 20 24 33 46 46 38 |1FF03FEC|, $3FF8|
|00005bb0| 37 46 44 45 2c 20 20 24 | 33 46 46 38 37 46 42 45 |7FDE, $|3FF87FBE|
|00005bc0| 2c 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,. | |
|00005bd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005be0| 20 24 37 46 46 43 46 46 | 37 46 2c 20 20 24 37 45 | $7FFCFF|7F, $7E|
|00005bf0| 46 43 46 46 46 46 2c 20 | 20 24 37 46 46 43 46 46 |FCFFFF, | $7FFCFF|
|00005c00| 00 00 00 08 00 00 04 02 | 00 00 00 03 00 00 01 e8 |........|........|
|00005c10| 00 00 00 2f 9c de 8f 10 | 46 46 2c 20 20 24 33 46 |.../....|FF, $3F|
|00005c20| 46 38 37 46 46 45 2c 0a | 20 20 20 20 20 20 20 20 |F87FFE,.| |
|00005c30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005c40| 20 20 20 20 20 20 20 24 | 33 46 46 38 37 46 46 45 | $|3FF87FFE|
|00005c50| 2c 20 20 24 31 46 46 30 | 33 46 46 43 2c 20 20 24 |, $1FF0|3FFC, $|
|00005c60| 30 37 43 30 31 46 46 38 | 2c 20 20 24 30 30 30 30 |07C01FF8|, $0000|
|00005c70| 30 37 45 30 2c 0a 20 20 | 20 20 20 20 20 20 20 20 |07E0,. | |
|00005c80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005c90| 20 20 20 20 20 24 30 30 | 30 30 30 30 30 30 20 20 | $00|000000 |
|00005ca0| 20 20 2d 3e 20 52 65 73 | 65 72 76 65 64 2c 20 6d | -> Res|erved, m|
|00005cb0| 75 73 74 20 62 65 20 4e | 49 4c 0a 20 20 20 20 20 |ust be N|IL. |
|00005cc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005cd0| 20 20 20 20 20 20 20 20 | 20 5d 29 0a 0a 20 20 2d | | ]).. -|
|00005ce0| 3e 20 41 20 4e 55 4c 4c | 20 72 65 71 75 65 73 74 |> A NULL| request|
|00005cf0| 65 72 20 63 61 6e 20 62 | 65 20 75 73 65 64 20 74 |er can b|e used t|
|00005d00| 6f 20 62 6c 6f 63 6b 20 | 69 6e 70 75 74 20 69 6e |o block |input in|
|00005d10| 20 61 20 77 69 6e 64 6f | 77 20 77 69 74 68 6f 75 | a windo|w withou|
|00005d20| 74 20 61 6e 79 0a 20 20 | 2d 3e 20 69 6d 61 67 65 |t any. |-> image|
|00005d30| 72 79 20 70 72 6f 76 69 | 64 65 64 2e 0a 20 20 49 |ry provi|ded.. I|
|00005d40| 6e 69 74 52 65 71 75 65 | 73 74 65 72 28 6e 75 6c |nitReque|ster(nul|
|00005d50| 6c 5f 72 65 71 75 65 73 | 74 29 0a 0a 20 20 44 65 |l_reques|t).. De|
|00005d60| 6c 61 79 28 35 30 29 20 | 20 2d 3e 20 53 69 6d 75 |lay(50) | -> Simu|
|00005d70| 6c 61 74 65 20 61 63 74 | 69 76 69 74 79 20 69 6e |late act|ivity in|
|00005d80| 20 74 68 65 20 70 72 6f | 67 72 61 6d 0a 0a 20 20 | the pro|gram.. |
|00005d90| 2d 3e 20 50 75 74 20 75 | 70 20 74 68 65 20 72 65 |-> Put u|p the re|
|00005da0| 71 75 65 73 74 65 72 20 | 74 6f 20 62 6c 6f 63 6b |quester |to block|
|00005db0| 20 75 73 65 72 20 69 6e | 70 75 74 20 69 6e 20 74 | user in|put in t|
|00005dc0| 68 65 20 77 69 6e 64 6f | 77 2c 20 61 6e 64 20 73 |he windo|w, and s|
|00005dd0| 65 74 20 74 68 65 0a 20 | 20 2d 3e 20 70 6f 69 6e |et the. | -> poin|
|00005de0| 74 65 72 20 74 6f 20 74 | 68 65 20 62 75 73 79 20 |ter to t|he busy |
|00005df0| 70 6f 69 6e 74 65 72 2e | 0a 20 20 49 46 20 52 65 |pointer.|. IF Re|
|00005e00| 00 00 00 08 00 00 04 02 | 00 00 00 04 00 00 01 e8 |........|........|
|00005e10| 00 00 00 30 a8 49 af eb | 71 75 65 73 74 28 6e 75 |...0.I..|quest(nu|
|00005e20| 6c 6c 5f 72 65 71 75 65 | 73 74 2c 20 77 69 6e 29 |ll_reque|st, win)|
|00005e30| 0a 20 20 20 20 53 65 74 | 50 6f 69 6e 74 65 72 28 |. Set|Pointer(|
|00005e40| 77 69 6e 2c 20 77 61 69 | 74 50 6f 69 6e 74 65 72 |win, wai|tPointer|
|00005e50| 2c 20 31 36 2c 20 31 36 | 2c 20 2d 36 2c 20 30 29 |, 16, 16|, -6, 0)|
|00005e60| 0a 0a 20 20 20 20 44 65 | 6c 61 79 28 31 30 30 29 |.. De|lay(100)|
|00005e70| 20 20 2d 3e 20 53 69 6d | 75 6c 61 74 65 20 61 63 | -> Sim|ulate ac|
|00005e80| 74 69 76 69 74 79 20 69 | 6e 20 74 68 65 20 70 72 |tivity i|n the pr|
|00005e90| 6f 67 72 61 6d 0a 0a 20 | 20 20 20 2d 3e 20 43 6c |ogram.. | -> Cl|
|00005ea0| 65 61 72 20 74 68 65 20 | 70 6f 69 6e 74 65 72 20 |ear the |pointer |
|00005eb0| 28 77 68 69 63 68 20 72 | 65 73 65 74 73 20 74 68 |(which r|esets th|
|00005ec0| 65 20 77 69 6e 64 6f 77 | 20 74 6f 20 74 68 65 20 |e window| to the |
|00005ed0| 64 65 66 61 75 6c 74 20 | 70 6f 69 6e 74 65 72 29 |default |pointer)|
|00005ee0| 20 61 6e 64 0a 20 20 20 | 20 2d 3e 20 72 65 6d 6f | and. | -> remo|
|00005ef0| 76 65 20 74 68 65 20 72 | 65 71 75 65 73 74 65 72 |ve the r|equester|
|00005f00| 2e 0a 20 20 20 20 43 6c | 65 61 72 50 6f 69 6e 74 |.. Cl|earPoint|
|00005f10| 65 72 28 77 69 6e 29 0a | 20 20 20 20 45 6e 64 52 |er(win).| EndR|
|00005f20| 65 71 75 65 73 74 28 6e | 75 6c 6c 5f 72 65 71 75 |equest(n|ull_requ|
|00005f30| 65 73 74 2c 20 77 69 6e | 29 0a 20 20 45 4e 44 49 |est, win|). ENDI|
|00005f40| 46 0a 0a 20 20 44 65 6c | 61 79 28 31 30 30 29 20 |F.. Del|ay(100) |
|00005f50| 20 2d 3e 20 53 69 6d 75 | 6c 61 74 65 20 61 63 74 | -> Simu|late act|
|00005f60| 69 76 69 74 79 20 69 6e | 20 74 68 65 20 70 72 6f |ivity in| the pro|
|00005f70| 67 72 61 6d 0a 0a 45 58 | 43 45 50 54 20 44 4f 0a |gram..EX|CEPT DO.|
|00005f80| 20 20 49 46 20 77 69 6e | 20 54 48 45 4e 20 43 6c | IF win| THEN Cl|
|00005f90| 6f 73 65 57 69 6e 64 6f | 77 28 77 69 6e 29 0a 20 |oseWindo|w(win). |
|00005fa0| 20 2d 3e 20 45 2d 4e 6f | 74 65 3a 20 77 65 20 63 | -> E-No|te: we c|
|00005fb0| 61 6e 20 70 72 69 6e 74 | 20 61 20 6d 69 6e 69 6d |an print| a minim|
|00005fc0| 61 6c 20 65 72 72 6f 72 | 20 6d 65 73 73 61 67 65 |al error| message|
|00005fd0| 0a 20 20 53 45 4c 45 43 | 54 20 65 78 63 65 70 74 |. SELEC|T except|
|00005fe0| 69 6f 6e 0a 20 20 43 41 | 53 45 20 45 52 52 5f 57 |ion. CA|SE ERR_W|
|00005ff0| 49 4e 3b 20 57 72 69 74 | 65 46 28 27 45 72 72 6f |IN; Writ|eF('Erro|
|00006000| 00 00 00 08 00 00 04 02 | 00 00 00 05 00 00 01 4d |........|.......M|
|00006010| 00 00 00 00 cf e7 1d 66 | 72 3a 20 46 61 69 6c 65 |.......f|r: Faile|
|00006020| 64 20 74 6f 20 6f 70 65 | 6e 20 77 69 6e 64 6f 77 |d to ope|n window|
|00006030| 5c 6e 27 29 0a 20 20 43 | 41 53 45 20 22 4d 45 4d |\n'). C|ASE "MEM|
|00006040| 22 3b 20 20 20 57 72 69 | 74 65 46 28 27 45 72 72 |"; Wri|teF('Err|
|00006050| 6f 72 3a 20 52 61 6e 20 | 6f 75 74 20 6f 66 20 28 |or: Ran |out of (|
|00006060| 63 68 69 70 29 20 6d 65 | 6d 6f 72 79 5c 6e 27 29 |chip) me|mory\n')|
|00006070| 0a 20 20 45 4e 44 53 45 | 4c 45 43 54 0a 45 4e 44 |. ENDSE|LECT.END|
|00006080| 50 52 4f 43 0a 0a 2d 3e | 20 45 2d 4e 6f 74 65 3a |PROC..->| E-Note:|
|00006090| 20 67 65 74 20 73 6f 6d | 65 20 43 68 69 70 20 6d | get som|e Chip m|
|000060a0| 65 6d 6f 72 79 20 61 6e | 64 20 63 6f 70 79 20 6c |emory an|d copy l|
|000060b0| 69 73 74 20 28 71 75 69 | 63 6b 2c 20 73 69 6e 63 |ist (qui|ck, sinc|
|000060c0| 65 20 4c 4f 4e 47 20 61 | 6c 69 67 6e 65 64 29 0a |e LONG a|ligned).|
|000060d0| 50 52 4f 43 20 63 6f 70 | 79 4c 69 73 74 54 6f 43 |PROC cop|yListToC|
|000060e0| 68 69 70 28 64 61 74 61 | 29 0a 20 20 44 45 46 20 |hip(data|). DEF |
|000060f0| 73 69 7a 65 2c 20 6d 65 | 6d 0a 20 20 73 69 7a 65 |size, me|m. size|
|00006100| 3a 3d 4c 69 73 74 4c 65 | 6e 28 64 61 74 61 29 2a |:=ListLe|n(data)*|
|00006110| 53 49 5a 45 4f 46 20 4c | 4f 4e 47 0a 20 20 6d 65 |SIZEOF L|ONG. me|
|00006120| 6d 3a 3d 4e 65 77 4d 28 | 73 69 7a 65 2c 20 4d 45 |m:=NewM(|size, ME|
|00006130| 4d 46 5f 43 48 49 50 29 | 0a 20 20 43 6f 70 79 4d |MF_CHIP)|. CopyM|
|00006140| 65 6d 51 75 69 63 6b 28 | 64 61 74 61 2c 20 6d 65 |emQuick(|data, me|
|00006150| 6d 2c 20 73 69 7a 65 29 | 0a 45 4e 44 50 52 4f 43 |m, size)|.ENDPROC|
|00006160| 20 6d 65 6d 0a 20 69 6e | 20 74 68 65 20 70 72 6f | mem. in| the pro|
|00006170| 67 72 61 6d 0a 0a 45 58 | 43 45 50 54 20 44 4f 0a |gram..EX|CEPT DO.|
|00006180| 20 20 49 46 20 77 69 6e | 20 54 48 45 4e 20 43 6c | IF win| THEN Cl|
|00006190| 6f 73 65 57 69 6e 64 6f | 77 28 77 69 6e 29 0a 20 |oseWindo|w(win). |
|000061a0| 20 2d 3e 20 45 2d 4e 6f | 74 65 3a 20 77 65 20 63 | -> E-No|te: we c|
|000061b0| 61 6e 20 70 72 69 6e 74 | 20 61 20 6d 69 6e 69 6d |an print| a minim|
|000061c0| 61 6c 20 65 72 72 6f 72 | 20 6d 65 73 73 61 67 65 |al error| message|
|000061d0| 0a 20 20 53 45 4c 45 43 | 54 20 65 78 63 65 70 74 |. SELEC|T except|
|000061e0| 69 6f 6e 0a 20 20 43 41 | 53 45 20 45 52 52 5f 57 |ion. CA|SE ERR_W|
|000061f0| 49 4e 3b 20 57 72 69 74 | 65 46 28 27 45 72 72 6f |IN; Writ|eF('Erro|
|00006200| 00 00 00 08 00 00 04 03 | 00 00 00 01 00 00 01 e8 |........|........|
|00006210| 00 00 00 32 aa 0b 7b 9d | 2d 3e 20 73 69 6d 70 6c |...2..{.|-> simpl|
|00006220| 65 6d 65 6e 75 2e 65 3a | 20 48 6f 77 20 74 6f 20 |emenu.e:| How to |
|00006230| 75 73 65 20 74 68 65 20 | 6d 65 6e 75 20 73 79 73 |use the |menu sys|
|00006240| 74 65 6d 20 77 69 74 68 | 20 61 20 77 69 6e 64 6f |tem with| a windo|
|00006250| 77 20 75 6e 64 65 72 20 | 61 6c 6c 20 4f 53 20 76 |w under |all OS v|
|00006260| 65 72 73 69 6f 6e 73 2e | 0a 0a 4f 50 54 20 50 52 |ersions.|..OPT PR|
|00006270| 45 50 52 4f 43 45 53 53 | 0a 0a 4d 4f 44 55 4c 45 |EPROCESS|..MODULE|
|00006280| 20 27 67 72 61 70 68 69 | 63 73 2f 72 61 73 74 70 | 'graphi|cs/rastp|
|00006290| 6f 72 74 27 2c 0a 20 20 | 20 20 20 20 20 27 67 72 |ort',. | 'gr|
|000062a0| 61 70 68 69 63 73 2f 74 | 65 78 74 27 2c 0a 20 20 |aphics/t|ext',. |
|000062b0| 20 20 20 20 20 27 69 6e | 74 75 69 74 69 6f 6e 2f | 'in|tuition/|
|000062c0| 69 6e 74 75 69 74 69 6f | 6e 27 2c 0a 20 20 20 20 |intuitio|n',. |
|000062d0| 20 20 20 27 69 6e 74 75 | 69 74 69 6f 6e 2f 73 63 | 'intu|ition/sc|
|000062e0| 72 65 65 6e 73 27 0a 0a | 2d 3e 20 54 68 65 73 65 |reens'..|-> These|
|000062f0| 20 76 61 6c 75 65 73 20 | 61 72 65 20 62 61 73 65 | values |are base|
|00006300| 64 20 6f 6e 20 74 68 65 | 20 52 4f 4d 20 66 6f 6e |d on the| ROM fon|
|00006310| 74 20 54 6f 70 61 7a 38 | 2e 20 41 64 6a 75 73 74 |t Topaz8|. Adjust|
|00006320| 20 74 68 65 73 65 20 76 | 61 6c 75 65 73 20 74 6f | these v|alues to|
|00006330| 0a 2d 3e 20 63 6f 72 72 | 65 63 74 6c 79 20 68 61 |.-> corr|ectly ha|
|00006340| 6e 64 6c 65 20 74 68 65 | 20 73 63 72 65 65 6e 27 |ndle the| screen'|
|00006350| 73 20 63 75 72 72 65 6e | 74 20 66 6f 6e 74 2e 0a |s curren|t font..|
|00006360| 43 4f 4e 53 54 20 4d 45 | 4e 57 49 44 54 48 3d 35 |CONST ME|NWIDTH=5|
|00006370| 36 2b 38 2c 20 2d 3e 20 | 4c 6f 6e 67 65 73 74 20 |6+8, -> |Longest |
|00006380| 6d 65 6e 75 20 69 74 65 | 6d 20 6e 61 6d 65 20 2a |menu ite|m name *|
|00006390| 20 66 6f 6e 74 20 77 69 | 64 74 68 20 2b 20 38 20 | font wi|dth + 8 |
|000063a0| 70 69 78 65 6c 73 20 66 | 6f 72 20 74 72 69 6d 0a |pixels f|or trim.|
|000063b0| 20 20 20 20 20 20 4d 45 | 4e 48 45 49 47 48 54 3d | ME|NHEIGHT=|
|000063c0| 31 30 20 20 20 2d 3e 20 | 46 6f 6e 74 20 68 65 69 |10 -> |Font hei|
|000063d0| 67 68 74 20 2b 20 32 20 | 70 69 78 65 6c 73 0a 0a |ght + 2 |pixels..|
|000063e0| 2d 3e 20 57 65 20 6f 6e | 6c 79 20 75 73 65 20 61 |-> We on|ly use a|
|000063f0| 20 73 69 6e 67 6c 65 20 | 6d 65 6e 75 2c 20 62 75 | single |menu, bu|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.