home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: ARJ Archive
(archive/arj).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| ARJ Archive (archive/arj)
| magic
| Supported |
100%
| file
| ARJ archive data, v6, slash-switched, created 22 jul 1980+17, original name: TSRDEMO.ARJ, os: MS-DOS
| default
| |
99%
| file
| data
| default
| |
66%
| TrID
| ARJ compressed archive (standard)
| default
| |
33%
| TrID
| ARJ compressed archive
| default
| |
100%
| dearkID
| deark: arj (ARJ)
| default
| |
100%
| siegfried
| fmt/610 ARJ File Format
| default
| |
100%
| lsar
| ARJ
| default
| |
100%
| gt2
| ARJ Archiv gefunden (Auflistung ist deaktiviert)
| default
| |
100%
| detectItEasy
| Archive: ARJ(6)
| default
| |
100%
| binwalkID
| ARJ archive data, header size: 132, version 6, minimum version to extract: 1, slash-switched, compression method: stored, file type: comment header, original name: "TSRDEMO.ARJ", original file date: 1988-08-03 03:31:28, compressed file size: 586582288, uncompressed file size: 0, os: MS-DOS
| default
| |
100%
| xdgMime
| application/x-arj
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 60 ea 84 00 1e 06 01 00 | 10 00 02 10 10 89 f6 22 |`.......|......."|
|00000010| 10 89 f6 22 00 00 00 00 | 00 00 00 00 00 00 00 00 |..."....|........|
|00000020| 00 00 54 53 52 44 45 4d | 4f 2e 41 52 4a 00 0a 20 |..TSRDEM|O.ARJ.. |
|00000030| 20 20 20 41 72 63 68 69 | 76 65 20 46 72 6f 6d 0a | Archi|ve From.|
|00000040| 20 48 20 41 20 43 20 4b | 20 45 20 52 27 73 20 20 | H A C K| E R's |
|00000050| 20 43 20 44 0a 20 20 20 | 20 20 43 72 65 61 74 65 | C D. | Create|
|00000060| 64 20 42 79 0a 20 20 57 | 68 69 74 65 20 45 61 67 |d By. W|hite Eag|
|00000070| 6c 65 20 5b 52 43 44 5d | 0a 20 20 20 20 20 20 20 |le [RCD]|. |
|00000080| 20 31 39 39 37 0a 0a 00 | 60 fe 92 71 00 00 60 ea | 1997...|`..q..`.|
|00000090| 2c 00 1e 06 01 00 10 00 | 00 10 24 3d 8a 00 6e b1 |,.......|..$=..n.|
|000000a0| 00 00 6e b1 00 00 22 aa | 7a 38 00 00 20 00 00 00 |..n...".|z8.. ...|
|000000b0| 54 53 52 44 45 4d 4f 32 | 2e 41 53 4d 00 00 7a a1 |TSRDEMO2|.ASM..z.|
|000000c0| f0 63 00 00 3b 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.c..;===|========|
|000000d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000110| 3d 3d 3d 0d 0a 3b 20 54 | 53 52 44 45 4d 4f 32 2e |===..; T|SRDEMO2.|
|00000120| 41 53 4d 0d 0a 3b 20 54 | 68 6f 6d 61 73 20 42 72 |ASM..; T|homas Br|
|00000130| 61 6e 64 65 6e 62 6f 72 | 67 0d 0a 3b 20 38 37 2e |andenbor|g..; 87.|
|00000140| 30 32 2e 31 31 0d 0a 3b | 0d 0a 3b 20 53 61 6d 70 |02.11..;|..; Samp|
|00000150| 6c 65 20 64 65 6d 6f 6e | 73 74 72 61 74 69 6f 6e |le demon|stration|
|00000160| 20 6f 66 20 61 20 73 61 | 66 65 20 61 70 70 72 6f | of a sa|fe appro|
|00000170| 61 63 68 20 66 6f 72 20 | 77 72 69 74 69 6e 67 20 |ach for |writing |
|00000180| 54 53 52 20 70 72 6f 67 | 72 61 6d 6d 65 73 2e 0d |TSR prog|rammes..|
|00000190| 0a 3b 0d 0a 3b 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.;..;---|--------|
|000001a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001e0| 2d 2d 2d 0d 0a 3b 20 43 | 6f 70 79 72 69 67 68 74 |---..; C|opyright|
|000001f0| 20 31 39 38 37 20 62 79 | 20 54 68 6f 6d 61 73 20 | 1987 by| Thomas |
|00000200| 42 72 61 6e 64 65 6e 62 | 6f 72 67 2e 20 41 6c 6c |Brandenb|org. All|
|00000210| 20 52 69 67 68 74 73 20 | 52 65 73 65 72 76 65 64 | Rights |Reserved|
|00000220| 0d 0a 3b 20 57 72 69 74 | 74 65 6e 20 66 6f 72 20 |..; Writ|ten for |
|00000230| 75 70 6c 6f 61 64 69 6e | 67 20 74 6f 20 43 6f 6d |uploadin|g to Com|
|00000240| 70 75 73 65 72 76 65 20 | 46 6f 72 75 6d 73 20 62 |puserve |Forums b|
|00000250| 79 0d 0a 3b 20 0d 0a 3b | 09 54 68 6f 6d 61 73 20 |y..; ..;|.Thomas |
|00000260| 42 72 61 6e 64 65 6e 62 | 6f 72 67 0d 0a 3b 09 4c |Brandenb|org..;.L|
|00000270| 75 6e 64 62 79 65 73 67 | 61 64 65 20 31 31 0d 0a |undbyesg|ade 11..|
|00000280| 3b 09 44 4b 2d 38 30 30 | 30 20 41 61 72 68 75 73 |;.DK-800|0 Aarhus|
|00000290| 20 43 0d 0a 3b 09 44 45 | 4e 4d 41 52 4b 0d 0a 3b | C..;.DE|NMARK..;|
|000002a0| 0d 0a 3b 20 54 68 69 73 | 20 63 6f 64 65 20 69 73 |..; This| code is|
|000002b0| 20 69 6e 74 65 6e 64 65 | 64 20 61 73 20 61 20 72 | intende|d as a r|
|000002c0| 65 66 65 72 65 6e 63 65 | 20 74 6f 20 75 73 65 72 |eference| to user|
|000002d0| 73 20 6f 6e 20 43 6f 6d | 70 75 73 65 72 76 65 20 |s on Com|puserve |
|000002e0| 46 6f 72 75 6d 73 0d 0a | 3b 20 6f 6e 20 68 6f 77 |Forums..|; on how|
|000002f0| 20 74 6f 20 77 72 69 74 | 65 20 54 65 72 6d 69 6e | to writ|e Termin|
|00000300| 61 74 65 2d 41 6e 64 2d | 53 74 61 79 20 72 65 73 |ate-And-|Stay res|
|00000310| 69 64 65 6e 74 20 70 72 | 6f 67 72 61 6d 6d 65 73 |ident pr|ogrammes|
|00000320| 20 66 6f 72 20 50 65 72 | 73 6f 6e 61 6c 0d 0a 3b | for Per|sonal..;|
|00000330| 20 43 75 6d 70 75 74 65 | 72 73 20 72 75 6e 6e 69 | Cumpute|rs runni|
|00000340| 6e 67 20 75 6e 64 65 72 | 20 44 4f 53 20 76 65 72 |ng under| DOS ver|
|00000350| 73 69 6f 6e 73 20 32 2e | 30 30 20 61 6e 64 20 6e |sions 2.|00 and n|
|00000360| 65 77 65 72 2e 0d 0a 3b | 0d 0a 3b 20 54 68 65 20 |ewer...;|..; The |
|00000370| 63 6f 64 65 20 69 73 20 | 6e 6f 74 20 70 61 72 74 |code is |not part|
|00000380| 20 6f 66 20 61 6e 79 20 | 70 72 6f 70 72 69 65 74 | of any |propriet|
|00000390| 61 72 79 20 70 72 6f 64 | 75 63 74 2c 20 62 75 74 |ary prod|uct, but|
|000003a0| 20 69 73 20 72 61 74 68 | 65 72 20 61 0d 0a 3b 20 | is rath|er a..; |
|000003b0| 64 65 6d 6f 6e 73 74 72 | 61 74 69 6f 6e 20 6f 66 |demonstr|ation of|
|000003c0| 20 73 75 63 68 20 74 65 | 63 68 6e 69 71 75 65 73 | such te|chniques|
|000003d0| 20 74 68 61 74 20 6d 61 | 79 20 62 65 20 75 73 65 | that ma|y be use|
|000003e0| 64 20 74 6f 20 77 72 69 | 74 65 20 73 61 66 65 20 |d to wri|te safe |
|000003f0| 54 53 52 0d 0a 3b 20 70 | 72 6f 67 72 61 6d 6d 65 |TSR..; p|rogramme|
|00000400| 73 2e 0d 0a 3b 0d 0a 3b | 20 41 6c 6c 20 6f 72 20 |s...;..;| All or |
|00000410| 70 61 72 74 20 6f 66 20 | 69 74 20 6d 61 79 2c 20 |part of |it may, |
|00000420| 68 6f 77 65 76 65 72 2c | 20 62 65 20 75 73 65 64 |however,| be used|
|00000430| 20 69 6e 20 6f 74 68 65 | 72 20 73 6f 66 74 77 61 | in othe|r softwa|
|00000440| 72 65 20 70 72 6f 64 75 | 63 74 73 0d 0a 3b 20 6f |re produ|cts..; o|
|00000450| 72 20 6f 74 68 65 72 77 | 69 73 65 20 64 69 73 74 |r otherw|ise dist|
|00000460| 72 69 62 75 74 65 64 20 | 61 73 73 75 6d 69 6e 67 |ributed |assuming|
|00000470| 20 74 68 65 20 63 6f 70 | 79 72 69 67 68 74 20 68 | the cop|yright h|
|00000480| 6f 6c 64 65 72 73 20 4e | 61 6d 65 20 26 20 41 64 |olders N|ame & Ad|
|00000490| 64 72 65 73 73 0d 0a 3b | 20 61 73 20 6c 69 73 74 |dress..;| as list|
|000004a0| 65 64 20 61 62 6f 76 65 | 20 61 72 65 20 69 6e 63 |ed above| are inc|
|000004b0| 6c 75 64 65 64 20 63 6c | 65 61 72 6c 79 20 61 6e |luded cl|early an|
|000004c0| 64 20 76 69 73 69 62 6c | 79 20 69 6e 20 74 68 65 |d visibl|y in the|
|000004d0| 20 64 6f 63 75 6d 65 6e | 74 61 74 69 6f 6e 0d 0a | documen|tation..|
|000004e0| 3b 20 66 6f 72 20 73 75 | 63 68 20 70 72 6f 64 75 |; for su|ch produ|
|000004f0| 63 74 2e 0d 0a 3b 0d 0a | 3b 20 54 68 65 20 63 6f |ct...;..|; The co|
|00000500| 70 79 72 69 67 68 74 20 | 68 6f 6c 64 65 72 20 6f |pyright |holder o|
|00000510| 66 66 65 72 73 20 6e 6f | 20 77 61 72 72 61 6e 74 |ffers no| warrant|
|00000520| 79 20 77 69 74 68 20 74 | 68 69 73 20 63 6f 64 65 |y with t|his code|
|00000530| 20 77 68 61 74 73 6f 65 | 76 65 72 2c 0d 0a 3b 20 | whatsoe|ver,..; |
|00000540| 69 6e 63 6c 75 64 69 6e | 67 20 69 74 73 20 66 69 |includin|g its fi|
|00000550| 74 6e 65 73 73 20 66 6f | 72 20 61 6e 79 20 70 61 |tness fo|r any pa|
|00000560| 72 74 69 63 75 6c 61 72 | 20 70 75 72 70 6f 73 65 |rticular| purpose|
|00000570| 2e 20 4e 65 69 74 68 65 | 72 20 73 68 61 6c 6c 20 |. Neithe|r shall |
|00000580| 68 65 0d 0a 3b 20 62 65 | 20 6c 69 61 62 6c 65 20 |he..; be| liable |
|00000590| 66 6f 72 20 64 61 6d 61 | 67 65 73 20 6f 66 20 61 |for dama|ges of a|
|000005a0| 6e 79 20 6b 69 6e 64 20 | 74 68 61 74 20 6d 61 79 |ny kind |that may|
|000005b0| 20 61 72 69 73 65 20 66 | 72 6f 6d 20 69 74 73 20 | arise f|rom its |
|000005c0| 75 73 65 2e 0d 0a 3b 0d | 0a 3b 0d 0a 3b 20 49 46 |use...;.|.;..; IF|
|000005d0| 20 59 4f 55 20 54 48 49 | 4e 4b 20 54 48 49 53 20 | YOU THI|NK THIS |
|000005e0| 43 4f 44 45 20 49 53 20 | 55 53 45 46 55 4c 3a 0d |CODE IS |USEFUL:.|
|000005f0| 0a 3b 0d 0a 3b 20 49 66 | 20 79 6f 75 20 74 68 69 |.;..; If| you thi|
|00000600| 6e 6b 20 74 68 69 73 20 | 63 6f 64 65 20 68 61 73 |nk this |code has|
|00000610| 20 68 61 64 20 73 6f 6d | 65 20 76 61 6c 75 65 20 | had som|e value |
|00000620| 74 6f 20 79 6f 75 2c 20 | 61 6e 64 20 69 6e 20 70 |to you, |and in p|
|00000630| 61 72 74 69 63 75 6c 61 | 72 0d 0a 3b 20 69 66 20 |articula|r..; if |
|00000640| 79 6f 75 20 63 6f 6e 73 | 69 64 65 72 20 75 73 69 |you cons|ider usi|
|00000650| 6e 67 20 61 6c 6c 20 6f | 72 20 70 61 72 74 73 20 |ng all o|r parts |
|00000660| 6f 66 20 69 74 20 69 6e | 20 79 6f 75 72 20 6f 77 |of it in| your ow|
|00000670| 6e 20 70 72 6f 64 75 63 | 74 2c 20 79 6f 75 0d 0a |n produc|t, you..|
|00000680| 3b 20 6d 61 79 20 77 61 | 6e 74 20 74 6f 20 63 6f |; may wa|nt to co|
|00000690| 6e 73 69 64 65 72 20 61 | 20 73 6d 61 6c 6c 65 72 |nsider a| smaller|
|000006a0| 20 6f 72 20 6c 61 72 67 | 65 72 20 64 6f 6e 61 74 | or larg|er donat|
|000006b0| 69 6f 6e 20 74 6f 20 74 | 68 65 20 61 75 74 68 6f |ion to t|he autho|
|000006c0| 72 0d 0a 3b 20 28 4e 61 | 6d 65 20 26 20 41 64 64 |r..; (Na|me & Add|
|000006d0| 72 65 73 73 20 61 62 6f | 76 65 29 20 77 68 6f 20 |ress abo|ve) who |
|000006e0| 73 70 65 6e 64 20 68 69 | 73 20 6c 61 74 65 20 6e |spend hi|s late n|
|000006f0| 69 67 68 74 20 68 6f 75 | 72 73 20 70 75 74 74 69 |ight hou|rs putti|
|00000700| 6e 67 0d 0a 3b 20 69 74 | 20 74 6f 67 65 74 68 65 |ng..; it| togethe|
|00000710| 72 2e 0d 0a 3b 0d 0a 3b | 20 41 73 20 74 6f 20 74 |r...;..;| As to t|
|00000720| 68 65 20 73 69 7a 65 20 | 6f 66 20 61 20 73 75 63 |he size |of a suc|
|00000730| 68 20 64 6f 6e 61 74 69 | 6f 6e 20 74 68 69 73 20 |h donati|on this |
|00000740| 69 73 20 65 6e 74 69 72 | 65 6c 79 20 75 70 20 74 |is entir|ely up t|
|00000750| 6f 20 79 6f 75 72 20 6f | 77 6e 0d 0a 3b 20 6a 75 |o your o|wn..; ju|
|00000760| 64 67 65 6d 65 6e 74 2e | 20 49 74 20 69 73 20 73 |dgement.| It is s|
|00000770| 75 67 67 65 73 74 65 64 | 20 74 68 61 74 20 79 6f |uggested| that yo|
|00000780| 75 20 73 69 6d 70 6c 79 | 20 63 6f 6e 73 69 64 65 |u simply| conside|
|00000790| 72 20 74 68 65 20 76 61 | 6c 75 65 20 74 68 69 73 |r the va|lue this|
|000007a0| 0d 0a 3b 20 63 6f 64 65 | 20 68 61 73 20 68 61 64 |..; code| has had|
|000007b0| 20 74 6f 20 79 6f 75 2c | 20 74 68 65 20 74 69 6d | to you,| the tim|
|000007c0| 65 20 79 6f 75 20 73 61 | 76 65 64 20 6e 6f 74 20 |e you sa|ved not |
|000007d0| 68 61 76 69 6e 67 20 74 | 6f 20 77 72 69 74 65 20 |having t|o write |
|000007e0| 69 74 20 79 6f 75 72 0d | 0a 3b 20 73 65 6c 66 2e |it your.|.; self.|
|000007f0| 2e 2e 20 74 68 61 74 20 | 73 68 6f 75 6c 64 20 68 |.. that |should h|
|00000800| 65 6c 70 20 79 6f 75 20 | 64 65 74 65 72 6d 69 6e |elp you |determin|
|00000810| 65 20 74 68 65 20 72 69 | 67 68 74 20 61 6d 6f 75 |e the ri|ght amou|
|00000820| 6e 74 2e 0d 0a 3b 0d 0a | 3b 20 50 6c 65 61 73 65 |nt...;..|; Please|
|00000830| 20 6e 6f 74 69 63 65 20 | 74 68 61 74 20 73 75 63 | notice |that suc|
|00000840| 68 20 64 6f 6e 61 74 69 | 6f 6e 73 20 61 72 65 20 |h donati|ons are |
|00000850| 61 6e 20 65 6e 74 69 72 | 65 6c 79 20 76 6f 6c 75 |an entir|ely volu|
|00000860| 6e 74 61 72 79 20 63 6f | 6e 74 72 69 62 75 74 69 |ntary co|ntributi|
|00000870| 6f 6e 2e 0d 0a 3b 20 54 | 68 69 73 20 68 6f 6c 64 |on...; T|his hold|
|00000880| 73 20 74 72 75 65 20 77 | 68 61 74 65 76 65 72 20 |s true w|hatever |
|00000890| 79 6f 75 72 20 70 75 72 | 70 6f 73 65 20 69 73 20 |your pur|pose is |
|000008a0| 66 6f 72 20 75 73 69 6e | 67 20 74 68 69 73 20 63 |for usin|g this c|
|000008b0| 6f 64 65 2c 20 61 6e 64 | 20 77 68 61 74 65 76 65 |ode, and| whateve|
|000008c0| 72 0d 0a 3b 20 74 68 65 | 20 74 79 70 65 20 6f 66 |r..; the| type of|
|000008d0| 20 70 72 6f 64 75 63 74 | 20 61 6e 64 20 64 69 73 | product| and dis|
|000008e0| 74 72 69 62 75 74 69 6f | 6e 20 79 6f 75 20 77 6f |tributio|n you wo|
|000008f0| 72 6b 20 77 69 74 68 2e | 20 54 68 65 20 61 75 74 |rk with.| The aut|
|00000900| 68 6f 72 20 68 61 73 20 | 6e 6f 74 68 69 6e 67 0d |hor has |nothing.|
|00000910| 0a 3b 20 61 67 61 69 6e | 73 74 20 63 6f 6d 6d 65 |.; again|st comme|
|00000920| 72 63 69 61 6c 20 73 6f | 66 74 77 61 72 65 20 64 |rcial so|ftware d|
|00000930| 69 73 74 72 69 62 75 74 | 69 6f 6e 20 61 6e 64 20 |istribut|ion and |
|00000940| 64 6f 65 73 20 6e 6f 74 | 20 68 61 76 65 20 61 6e |does not| have an|
|00000950| 79 20 72 65 61 73 6f 6e | 0d 0a 3b 20 74 6f 20 72 |y reason|..; to r|
|00000960| 65 73 74 72 69 63 74 20 | 64 65 76 65 6c 6f 70 65 |estrict |develope|
|00000970| 72 73 20 6f 66 20 63 6f | 6d 6d 65 72 63 69 61 6c |rs of co|mmercial|
|00000980| 20 70 72 6f 64 75 63 74 | 73 20 69 6e 20 74 68 65 | product|s in the|
|00000990| 69 72 20 75 73 65 20 6f | 66 20 74 68 69 73 20 63 |ir use o|f this c|
|000009a0| 6f 64 65 2e 0d 0a 3b 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ode...;-|--------|
|000009b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009f0| 2d 2d 2d 2d 2d 0d 0a 3b | 20 43 4f 4d 50 49 4c 49 |-----..;| COMPILI|
|00000a00| 4e 47 3a 09 6d 61 73 6d | 20 74 73 72 64 65 6d 6f |NG:.masm| tsrdemo|
|00000a10| 32 3b 0d 0a 3b 20 4c 49 | 4e 4b 49 4e 47 3a 09 6c |2;..; LI|NKING:.l|
|00000a20| 69 6e 6b 20 74 73 72 64 | 65 6d 6f 32 3b 0d 0a 3b |ink tsrd|emo2;..;|
|00000a30| 20 09 09 65 78 65 32 62 | 69 6e 20 74 73 72 64 65 | ..exe2b|in tsrde|
|00000a40| 6d 6f 32 20 74 73 72 64 | 65 6d 6f 32 2e 63 6f 6d |mo2 tsrd|emo2.com|
|00000a50| 0d 0a 3b 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..;-----|--------|
|00000a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000aa0| 2d 0d 0a 3b 20 52 65 76 | 69 73 69 6f 6e 73 0d 0a |-..; Rev|isions..|
|00000ab0| 3b 20 42 72 61 6e 64 65 | 6e 62 6f 72 67 20 38 37 |; Brande|nborg 87|
|00000ac0| 2e 30 32 2e 31 34 09 41 | 64 64 65 64 20 63 6f 70 |.02.14.A|dded cop|
|00000ad0| 79 72 69 67 68 74 20 6e | 6f 74 69 63 65 20 26 20 |yright n|otice & |
|00000ae0| 63 68 65 63 6b 65 64 20 | 63 6f 6d 6d 65 6e 74 73 |checked |comments|
|00000af0| 0d 0a 3b 20 42 72 61 6e | 64 65 6e 62 6f 72 67 20 |..; Bran|denborg |
|00000b00| 38 37 2e 30 32 2e 31 37 | 09 41 64 64 65 64 20 66 |87.02.17|.Added f|
|00000b10| 75 6c 6c 20 41 58 20 76 | 61 6c 75 65 20 69 6e 20 |ull AX v|alue in |
|00000b20| 53 65 74 20 45 78 74 20 | 45 72 72 20 63 61 6c 6c |Set Ext |Err call|
|00000b30| 0d 0a 3b 20 42 72 61 6e | 64 65 6e 62 6f 72 67 20 |..; Bran|denborg |
|00000b40| 38 37 2e 30 32 2e 32 35 | 09 57 65 6e 74 20 74 68 |87.02.25|.Went th|
|00000b50| 72 6f 75 67 68 20 74 6f | 20 6f 70 74 69 6d 69 7a |rough to| optimiz|
|00000b60| 65 20 74 68 69 6e 67 73 | 0d 0a 3b 20 42 72 61 6e |e things|..; Bran|
|00000b70| 64 65 6e 62 6f 72 67 20 | 38 37 2e 30 32 2e 32 38 |denborg |87.02.28|
|00000b80| 09 41 64 64 65 64 20 61 | 75 74 6f 20 49 4e 54 32 |.Added a|uto INT2|
|00000b90| 38 20 69 6e 76 6f 63 61 | 74 69 6f 6e 20 69 6e 20 |8 invoca|tion in |
|00000ba0| 49 4e 54 31 36 20 68 61 | 6e 64 6c 65 72 0d 0a 3b |INT16 ha|ndler..;|
|00000bb0| 20 42 72 61 6e 64 65 6e | 62 6f 72 67 20 38 37 2e | Branden|borg 87.|
|00000bc0| 30 33 2e 30 31 09 41 64 | 64 65 64 20 49 4e 54 32 |03.01.Ad|ded INT2|
|00000bd0| 31 20 66 69 6c 74 65 72 | 20 66 6f 72 20 72 65 63 |1 filter| for rec|
|00000be0| 75 72 73 69 6f 6e 20 6f | 6e 74 6f 20 63 6f 6e 73 |ursion o|nto cons|
|00000bf0| 6f 6c 65 20 73 74 61 63 | 6b 0d 0a 3b 20 42 72 61 |ole stac|k..; Bra|
|00000c00| 6e 64 65 6e 62 6f 72 67 | 20 38 37 2e 30 33 2e 30 |ndenborg| 87.03.0|
|00000c10| 32 09 46 69 6e 61 6c 20 | 63 6c 65 61 6e 75 70 20 |2.Final |cleanup |
|00000c20| 6f 66 20 63 6f 6d 6d 65 | 6e 74 73 20 65 74 63 2e |of comme|nts etc.|
|00000c30| 0d 0a 3b 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..;=====|========|
|00000c40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c80| 3d 0d 0a 0d 0a 3b 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |=....;==|========|
|00000c90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ca0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000cb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000cc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000cd0| 3d 3d 3d 3d 0d 0a 3b 20 | 44 45 46 49 4e 45 20 42 |====..; |DEFINE B|
|00000ce0| 49 4f 53 20 44 41 54 41 | 20 53 45 47 4d 45 4e 54 |IOS DATA| SEGMENT|
|00000cf0| 20 4f 46 46 53 45 54 53 | 0d 0a 3b 3d 3d 3d 3d 3d | OFFSETS|..;=====|
|00000d00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000d10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000d20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000d30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000d40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 0d 0a 42 69 6f |========|=....Bio|
|00000d50| 73 44 61 74 61 09 73 65 | 67 6d 65 6e 74 20 61 74 |sData.se|gment at|
|00000d60| 20 34 30 68 0d 0a 09 09 | 6f 72 67 09 31 37 68 0d | 40h....|org.17h.|
|00000d70| 0a 4b 62 46 6c 61 67 09 | 09 6c 61 62 65 6c 09 62 |.KbFlag.|.label.b|
|00000d80| 79 74 65 09 09 3b 63 75 | 72 72 65 6e 74 20 73 68 |yte..;cu|rrent sh|
|00000d90| 69 66 74 20 73 74 61 74 | 75 73 20 62 69 74 73 0d |ift stat|us bits.|
|00000da0| 0a 09 09 6f 72 67 09 31 | 38 68 0d 0a 4b 62 46 6c |...org.1|8h..KbFl|
|00000db0| 61 67 31 09 09 6c 61 62 | 65 6c 09 62 79 74 65 09 |ag1..lab|el.byte.|
|00000dc0| 09 3b 63 75 72 72 65 6e | 74 20 6b 65 79 20 73 74 |.;curren|t key st|
|00000dd0| 61 74 75 73 20 6f 66 20 | 74 6f 67 67 6c 65 20 6b |atus of |toggle k|
|00000de0| 65 79 73 0d 0a 42 69 6f | 73 44 61 74 61 09 65 6e |eys..Bio|sData.en|
|00000df0| 64 73 0d 0a 0d 0a 3b 3d | 3d 3d 3d 3d 3d 3d 3d 3d |ds....;=|========|
|00000e00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e40| 3d 3d 3d 3d 3d 0d 0a 3b | 20 44 45 46 49 4e 45 20 |=====..;| DEFINE |
|00000e50| 4f 46 46 53 45 54 53 20 | 57 49 54 48 49 4e 20 42 |OFFSETS |WITHIN B|
|00000e60| 49 4f 53 20 45 58 54 52 | 41 20 44 41 54 41 20 53 |IOS EXTR|A DATA S|
|00000e70| 45 47 4d 45 4e 54 0d 0a | 3b 3d 3d 3d 3d 3d 3d 3d |EGMENT..|;=======|
|00000e80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ea0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000eb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ec0| 3d 3d 3d 3d 3d 3d 3d 0d | 0a 0d 0a 42 69 6f 73 58 |=======.|...BiosX|
|00000ed0| 58 09 09 73 65 67 6d 65 | 6e 74 20 61 74 20 35 30 |X..segme|nt at 50|
|00000ee0| 68 0d 0a 09 09 6f 72 67 | 09 30 0d 0a 53 74 61 74 |h....org|.0..Stat|
|00000ef0| 75 73 42 79 74 65 09 6c | 61 62 65 6c 09 62 79 74 |usByte.l|abel.byt|
|00000f00| 65 09 09 3b 50 72 74 53 | 63 20 73 74 61 74 75 73 |e..;PrtS|c status|
|00000f10| 0d 0a 42 69 6f 73 58 58 | 09 09 65 6e 64 73 0d 0a |..BiosXX|..ends..|
|00000f20| 0d 0a 45 72 72 50 72 74 | 53 63 09 65 71 75 09 2d |..ErrPrt|Sc.equ.-|
|00000f30| 31 09 09 3b 65 72 72 20 | 64 75 72 69 6e 67 20 6c |1..;err |during l|
|00000f40| 61 73 74 20 50 72 74 53 | 63 0d 0a 49 6e 50 72 74 |ast PrtS|c..InPrt|
|00000f50| 53 63 09 09 65 71 75 09 | 31 09 09 3b 50 72 74 53 |Sc..equ.|1..;PrtS|
|00000f60| 63 20 69 6e 20 70 72 6f | 67 72 65 73 73 0d 0a 0d |c in pro|gress...|
|00000f70| 0a 3b 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.;======|========|
|00000f80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000f90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fa0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fc0| 0d 0a 3b 20 44 45 46 49 | 4e 45 20 4f 46 46 53 45 |..; DEFI|NE OFFSE|
|00000fd0| 54 53 20 57 49 54 48 49 | 4e 20 4f 55 52 20 50 53 |TS WITHI|N OUR PS|
|00000fe0| 50 0d 0a 3b 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |P..;====|========|
|00000ff0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001000| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001030| 3d 3d 0d 0a 0d 0a 43 73 | 65 67 09 09 73 65 67 6d |==....Cs|eg..segm|
|00001040| 65 6e 74 20 62 79 74 65 | 20 70 75 62 6c 69 63 0d |ent byte| public.|
|00001050| 0a 09 09 6f 72 67 09 32 | 0d 0a 54 6f 70 53 65 67 |...org.2|..TopSeg|
|00001060| 09 09 6c 61 62 65 6c 09 | 77 6f 72 64 09 09 3b 6c |..label.|word..;l|
|00001070| 61 73 74 20 73 65 67 20 | 69 6e 20 61 6c 6c 6f 63 |ast seg |in alloc|
|00001080| 20 62 6c 6f 63 6b 0d 0a | 09 09 6f 72 67 09 32 63 | block..|..org.2c|
|00001090| 68 0d 0a 45 6e 76 53 65 | 67 09 09 6c 61 62 65 6c |h..EnvSe|g..label|
|000010a0| 09 77 6f 72 64 09 09 3b | 73 65 67 20 6f 66 20 6f |.word..;|seg of o|
|000010b0| 75 72 20 65 6e 76 69 72 | 6f 6e 6d 65 6e 74 20 63 |ur envir|onment c|
|000010c0| 6f 70 79 0d 0a 43 73 65 | 67 09 09 65 6e 64 73 0d |opy..Cse|g..ends.|
|000010d0| 0a 0d 0a 3b 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |...;====|========|
|000010e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000010f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001120| 3d 3d 0d 0a 3b 20 44 4f | 53 20 43 4f 4d 2d 46 49 |==..; DO|S COM-FI|
|00001130| 4c 45 20 45 4e 54 52 59 | 20 50 4f 49 4e 54 0d 0a |LE ENTRY| POINT..|
|00001140| 3b 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |;=======|========|
|00001150| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001160| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001170| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001180| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00001190| 0a 0d 0a 43 73 65 67 09 | 09 73 65 67 6d 65 6e 74 |...Cseg.|.segment|
|000011a0| 20 70 75 62 6c 69 63 20 | 62 79 74 65 0d 0a 09 09 | public |byte....|
|000011b0| 61 73 73 75 6d 65 09 63 | 73 3a 43 73 65 67 2c 20 |assume.c|s:Cseg, |
|000011c0| 64 73 3a 6e 6f 74 68 69 | 6e 67 2c 20 65 73 3a 6e |ds:nothi|ng, es:n|
|000011d0| 6f 74 68 69 6e 67 2c 20 | 73 73 3a 6e 6f 74 68 69 |othing, |ss:nothi|
|000011e0| 6e 67 0d 0a 09 09 6f 72 | 67 09 31 30 30 68 0d 0a |ng....or|g.100h..|
|000011f0| 43 6f 6d 45 6e 74 72 79 | 3a 09 6a 6d 70 09 49 6e |ComEntry|:.jmp.In|
|00001200| 69 74 09 09 3b 4a 4d 50 | 20 74 6f 20 69 6e 69 74 |it..;JMP| to init|
|00001210| 20 61 74 20 62 6f 74 74 | 6f 6d 20 6f 66 20 73 65 | at bott|om of se|
|00001220| 67 0d 0a 0d 0a 3b 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |g....;==|========|
|00001230| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001240| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001250| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001260| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001270| 3d 3d 3d 3d 0d 0a 3b 20 | 49 44 45 4e 54 49 46 49 |====..; |IDENTIFI|
|00001280| 43 41 54 49 4f 4e 20 43 | 4f 44 45 53 20 46 4f 52 |CATION C|ODES FOR|
|00001290| 20 54 48 49 53 20 54 53 | 52 20 28 4d 55 53 54 20 | THIS TS|R (MUST |
|000012a0| 42 45 20 55 4e 49 51 55 | 45 20 46 4f 52 20 45 41 |BE UNIQU|E FOR EA|
|000012b0| 43 48 20 43 4f 2d 45 58 | 49 53 54 49 4e 47 20 54 |CH CO-EX|ISTING T|
|000012c0| 53 52 29 0d 0a 3b 20 48 | 49 47 48 20 42 59 54 45 |SR)..; H|IGH BYTE|
|000012d0| 20 4f 46 20 47 65 74 49 | 64 20 4d 55 53 54 20 4e | OF GetI|d MUST N|
|000012e0| 4f 54 20 4d 41 54 43 48 | 20 41 4e 59 20 41 48 20 |OT MATCH| ANY AH |
|000012f0| 52 45 51 55 45 53 54 20 | 43 4f 44 45 53 20 46 4f |REQUEST |CODES FO|
|00001300| 52 20 49 4e 54 31 36 48 | 2e 0d 0a 3b 3d 3d 3d 3d |R INT16H|...;====|
|00001310| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001320| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001330| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001340| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001350| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0a 0d 0a 47 65 |========|==....Ge|
|00001360| 74 49 64 09 09 65 71 75 | 09 27 74 63 27 09 09 09 |tId..equ|.'tc'...|
|00001370| 3b 49 4e 54 31 36 68 20 | 41 58 20 76 61 6c 20 74 |;INT16h |AX val t|
|00001380| 6f 20 67 65 74 20 4d 79 | 49 64 0d 0a 4d 79 49 64 |o get My|Id..MyId|
|00001390| 09 09 65 71 75 09 27 54 | 43 27 09 09 09 3b 49 44 |..equ.'T|C'...;ID|
|000013a0| 20 6f 66 20 74 68 69 73 | 20 54 53 52 0d 0a 0d 0a | of this| TSR....|
|000013b0| 3b 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |;=======|========|
|000013c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000013d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000013e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000013f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00001400| 0a 3b 20 46 4c 41 47 53 | 20 41 4e 44 20 50 54 52 |.; FLAGS| AND PTR|
|00001410| 53 20 46 4f 52 20 52 45 | 53 49 44 45 4e 54 20 48 |S FOR RE|SIDENT H|
|00001420| 41 4e 44 4c 49 4e 47 0d | 0a 3b 3d 3d 3d 3d 3d 3d |ANDLING.|.;======|
|00001430| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001440| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001450| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001460| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001470| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 0a 0d 0a 54 73 72 4d |========|....TsrM|
|00001480| 6f 64 65 09 09 64 62 09 | 30 09 09 09 3b 62 69 74 |ode..db.|0...;bit|
|00001490| 73 20 66 6f 72 20 76 61 | 72 69 6f 75 73 20 6d 6f |s for va|rious mo|
|000014a0| 64 65 73 0d 0a 49 6e 49 | 6e 74 30 38 09 09 65 71 |des..InI|nt08..eq|
|000014b0| 75 09 31 20 53 48 4c 20 | 30 09 09 09 3b 74 69 6d |u.1 SHL |0...;tim|
|000014c0| 65 72 30 20 74 69 63 6b | 20 68 61 6e 64 6c 65 72 |er0 tick| handler|
|000014d0| 0d 0a 49 6e 49 6e 74 30 | 39 09 09 65 71 75 09 31 |..InInt0|9..equ.1|
|000014e0| 20 53 48 4c 20 31 09 09 | 09 3b 6b 65 79 62 6f 61 | SHL 1..|.;keyboa|
|000014f0| 72 64 20 68 61 6e 64 6c | 65 72 0d 0a 49 6e 49 6e |rd handl|er..InIn|
|00001500| 74 31 33 09 09 65 71 75 | 09 31 20 53 48 4c 20 32 |t13..equ|.1 SHL 2|
|00001510| 09 09 09 3b 42 49 4f 53 | 20 64 69 73 6b 20 49 2f |...;BIOS| disk I/|
|00001520| 4f 0d 0a 49 6e 49 6e 74 | 32 38 09 09 65 71 75 09 |O..InInt|28..equ.|
|00001530| 31 20 53 48 4c 20 33 09 | 09 09 3b 49 4e 54 32 38 |1 SHL 3.|..;INT28|
|00001540| 20 68 61 6e 64 6c 65 72 | 0d 0a 49 6e 32 38 43 61 | handler|..In28Ca|
|00001550| 6c 6c 09 65 71 75 09 31 | 20 53 48 4c 20 34 09 09 |ll.equ.1| SHL 4..|
|00001560| 09 3b 77 65 20 68 61 76 | 65 20 69 73 73 75 65 64 |.;we hav|e issued|
|00001570| 20 49 4e 54 32 38 0d 0a | 49 6e 50 6f 70 75 70 09 | INT28..|InPopup.|
|00001580| 09 65 71 75 09 31 20 53 | 48 4c 20 35 09 09 09 3b |.equ.1 S|HL 5...;|
|00001590| 70 6f 70 75 70 20 72 6f | 75 74 69 6e 65 20 61 63 |popup ro|utine ac|
|000015a0| 74 69 76 61 74 65 64 0d | 0a 4e 65 77 44 6f 73 09 |tivated.|.NewDos.|
|000015b0| 09 65 71 75 09 31 20 53 | 48 4c 20 36 09 09 09 3b |.equ.1 S|HL 6...;|
|000015c0| 44 4f 53 20 32 2e 78 20 | 69 6e 20 75 73 65 0d 0a |DOS 2.x |in use..|
|000015d0| 49 6e 44 6f 73 43 6c 72 | 09 65 71 75 09 31 20 53 |InDosClr|.equ.1 S|
|000015e0| 48 4c 20 37 09 09 09 3b | 49 6e 44 6f 73 3d 30 20 |HL 7...;|InDos=0 |
|000015f0| 61 74 20 70 6f 70 75 70 | 20 74 69 6d 65 0d 0a 0d |at popup| time...|
|00001600| 0a 4b 65 79 4d 6f 64 65 | 09 09 64 62 09 30 09 09 |.KeyMode|..db.0..|
|00001610| 09 3b 62 69 74 73 20 66 | 6f 72 20 68 6f 74 6b 65 |.;bits f|or hotke|
|00001620| 79 20 73 74 61 74 75 73 | 0d 0a 48 6f 74 49 73 53 |y status|..HotIsS|
|00001630| 68 69 66 74 09 65 71 75 | 09 31 20 53 48 4c 20 30 |hift.equ|.1 SHL 0|
|00001640| 09 09 09 3b 68 6f 74 6b | 65 79 20 69 73 20 73 68 |...;hotk|ey is sh|
|00001650| 69 66 74 20 73 74 61 74 | 65 0d 0a 49 6e 48 6f 74 |ift stat|e..InHot|
|00001660| 4d 61 74 63 68 09 65 71 | 75 09 31 20 53 48 4c 20 |Match.eq|u.1 SHL |
|00001670| 31 09 09 09 3b 73 6f 20 | 66 61 72 20 6b 65 79 73 |1...;so |far keys|
|00001680| 20 6d 61 74 63 68 20 68 | 6f 74 6b 65 79 20 73 65 | match h|otkey se|
|00001690| 71 0d 0a 48 6f 74 4b 65 | 79 4f 6e 09 65 71 75 09 |q..HotKe|yOn.equ.|
|000016a0| 31 20 53 48 4c 20 32 09 | 09 09 3b 66 75 6c 6c 20 |1 SHL 2.|..;full |
|000016b0| 68 6f 74 6b 65 79 20 70 | 72 65 73 73 65 64 0d 0a |hotkey p|ressed..|
|000016c0| 0d 0a 49 6e 44 6f 73 50 | 74 72 09 6c 61 62 65 6c |..InDosP|tr.label|
|000016d0| 09 64 77 6f 72 64 09 09 | 09 3b 73 65 67 3a 6f 66 |.dword..|.;seg:of|
|000016e0| 66 20 6f 66 20 49 6e 44 | 6f 73 20 66 6c 61 67 0d |f of InD|os flag.|
|000016f0| 0a 49 6e 44 6f 73 4f 66 | 66 09 64 77 09 30 0d 0a |.InDosOf|f.dw.0..|
|00001700| 49 6e 44 6f 73 53 65 67 | 09 64 77 09 30 0d 0a 0d |InDosSeg|.dw.0...|
|00001710| 0a 43 72 69 74 45 72 72 | 50 74 72 09 6c 61 62 65 |.CritErr|Ptr.labe|
|00001720| 6c 09 64 77 6f 72 64 09 | 09 09 3b 73 65 67 3a 6f |l.dword.|..;seg:o|
|00001730| 66 66 20 6f 66 20 43 72 | 69 74 45 72 72 20 66 6c |ff of Cr|itErr fl|
|00001740| 61 67 0d 0a 43 72 69 74 | 45 72 72 4f 66 66 09 64 |ag..Crit|ErrOff.d|
|00001750| 77 09 30 0d 0a 43 72 69 | 74 45 72 72 53 65 67 09 |w.0..Cri|tErrSeg.|
|00001760| 64 77 09 30 0d 0a 0d 0a | 3b 3d 3d 3d 3d 3d 3d 3d |dw.0....|;=======|
|00001770| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001780| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001790| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017b0| 3d 3d 3d 3d 3d 3d 3d 0d | 0a 3b 20 44 41 54 41 20 |=======.|.; DATA |
|000017c0| 46 4f 52 20 49 4e 54 30 | 39 48 20 48 41 4e 44 4c |FOR INT0|9H HANDL|
|000017d0| 45 52 20 54 4f 20 43 48 | 45 43 4b 20 46 4f 52 20 |ER TO CH|ECK FOR |
|000017e0| 48 4f 54 4b 45 59 20 43 | 4f 4d 42 49 4e 41 54 49 |HOTKEY C|OMBINATI|
|000017f0| 4f 4e 0d 0a 3b 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |ON..;===|========|
|00001800| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001810| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001820| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001830| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001840| 3d 3d 3d 0d 0a 0d 0a 3b | 20 2d 2d 2d 2d 2d 2d 2d |===....;| -------|
|00001850| 2d 2d 2d 2d 2d 09 45 51 | 55 27 53 20 46 4f 52 20 |-----.EQ|U'S FOR |
|00001860| 42 49 54 20 53 48 49 46 | 54 53 20 57 49 54 48 49 |BIT SHIF|TS WITHI|
|00001870| 4e 20 4b 45 59 42 4f 41 | 52 44 20 46 4c 41 47 53 |N KEYBOA|RD FLAGS|
|00001880| 0d 0a 0d 0a 49 6e 73 53 | 74 61 74 65 09 65 71 75 |....InsS|tate.equ|
|00001890| 09 38 30 68 0d 0a 43 61 | 70 73 53 74 61 74 65 09 |.80h..Ca|psState.|
|000018a0| 65 71 75 09 34 30 68 0d | 0a 4e 75 6d 53 74 61 74 |equ.40h.|.NumStat|
|000018b0| 65 09 65 71 75 09 32 30 | 68 0d 0a 53 63 72 6f 6c |e.equ.20|h..Scrol|
|000018c0| 6c 53 74 61 74 65 09 65 | 71 75 09 31 30 68 0d 0a |lState.e|qu.10h..|
|000018d0| 41 6c 74 53 68 69 66 74 | 09 65 71 75 09 30 38 68 |AltShift|.equ.08h|
|000018e0| 0d 0a 43 74 6c 53 68 69 | 66 74 09 65 71 75 09 30 |..CtlShi|ft.equ.0|
|000018f0| 34 68 0d 0a 4c 65 66 74 | 53 68 69 66 74 09 65 71 |4h..Left|Shift.eq|
|00001900| 75 09 30 32 68 0d 0a 52 | 69 67 68 74 53 68 69 66 |u.02h..R|ightShif|
|00001910| 74 09 65 71 75 09 30 31 | 68 0d 0a 0d 0a 49 6e 73 |t.equ.01|h....Ins|
|00001920| 53 68 69 66 74 09 65 71 | 75 09 38 30 68 0d 0a 43 |Shift.eq|u.80h..C|
|00001930| 61 70 73 53 68 69 66 74 | 09 65 71 75 09 34 30 68 |apsShift|.equ.40h|
|00001940| 0d 0a 4e 75 6d 53 68 69 | 66 74 09 65 71 75 09 32 |..NumShi|ft.equ.2|
|00001950| 30 68 0d 0a 53 63 72 6f | 6c 6c 53 68 69 66 74 09 |0h..Scro|llShift.|
|00001960| 65 71 75 09 31 30 68 0d | 0a 48 6f 6c 64 53 74 61 |equ.10h.|.HoldSta|
|00001970| 74 65 09 65 71 75 09 30 | 38 68 0d 0a 0d 0a 3b 20 |te.equ.0|8h....; |
|00001980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 09 53 43 41 |--------|----.SCA|
|00001990| 4e 20 43 4f 44 45 53 20 | 46 4f 52 20 56 41 52 49 |N CODES |FOR VARI|
|000019a0| 4f 55 53 20 53 48 49 46 | 54 20 4b 45 59 53 0d 0a |OUS SHIF|T KEYS..|
|000019b0| 0d 0a 4c 65 66 74 44 6f | 77 6e 09 65 71 75 09 34 |..LeftDo|wn.equ.4|
|000019c0| 32 09 09 09 3b 73 63 61 | 6e 20 63 6f 64 65 20 6f |2...;sca|n code o|
|000019d0| 66 20 6c 65 66 74 20 73 | 68 69 66 74 20 6b 65 79 |f left s|hift key|
|000019e0| 0d 0a 4c 65 66 74 55 70 | 09 09 65 71 75 09 4c 65 |..LeftUp|..equ.Le|
|000019f0| 66 74 44 6f 77 6e 20 4f | 52 20 38 30 68 0d 0a 52 |ftDown O|R 80h..R|
|00001a00| 69 67 68 74 44 6f 77 6e | 09 65 71 75 09 35 34 09 |ightDown|.equ.54.|
|00001a10| 09 09 3b 73 63 61 6e 20 | 63 6f 64 65 20 6f 66 20 |..;scan |code of |
|00001a20| 72 69 67 68 74 20 73 68 | 69 66 74 20 6b 65 79 0d |right sh|ift key.|
|00001a30| 0a 52 69 67 68 74 55 70 | 09 09 65 71 75 09 52 69 |.RightUp|..equ.Ri|
|00001a40| 67 68 74 44 6f 77 6e 20 | 4f 52 20 38 30 68 0d 0a |ghtDown |OR 80h..|
|00001a50| 41 6c 74 44 6f 77 6e 09 | 09 65 71 75 09 35 36 09 |AltDown.|.equ.56.|
|00001a60| 09 09 3b 73 63 61 6e 20 | 63 6f 64 65 20 6f 66 20 |..;scan |code of |
|00001a70| 61 6c 74 20 6b 65 79 0d | 0a 41 6c 74 55 70 09 09 |alt key.|.AltUp..|
|00001a80| 65 71 75 09 41 6c 74 44 | 6f 77 6e 20 4f 52 20 38 |equ.AltD|own OR 8|
|00001a90| 30 68 0d 0a 43 74 6c 44 | 6f 77 6e 09 09 65 71 75 |0h..CtlD|own..equ|
|00001aa0| 09 32 39 09 09 09 3b 73 | 63 61 6e 20 63 6f 64 65 |.29...;s|can code|
|00001ab0| 20 6f 66 20 63 74 72 6c | 20 6b 65 79 0d 0a 43 74 | of ctrl| key..Ct|
|00001ac0| 6c 55 70 09 09 65 71 75 | 09 43 74 6c 44 6f 77 6e |lUp..equ|.CtlDown|
|00001ad0| 20 4f 52 20 38 30 68 0d | 0a 0d 0a 3b 20 2d 2d 2d | OR 80h.|...; ---|
|00001ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 09 4d 49 53 43 20 4b |--------|-.MISC K|
|00001af0| 45 59 42 4f 41 52 44 20 | 44 41 54 41 0d 0a 0d 0a |EYBOARD |DATA....|
|00001b00| 4b 62 44 61 74 61 09 09 | 65 71 75 09 36 30 68 09 |KbData..|equ.60h.|
|00001b10| 09 09 3b 6b 65 79 62 6f | 61 72 64 20 64 61 74 61 |..;keybo|ard data|
|00001b20| 20 69 6e 70 75 74 0d 0a | 0d 0a 3b 3d 3d 3d 3d 3d | input..|..;=====|
|00001b30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001b70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 3b 20 54 4f 20 |========|=..; TO |
|00001b80| 55 53 45 20 41 20 53 48 | 49 46 54 20 4b 45 59 20 |USE A SH|IFT KEY |
|00001b90| 43 4f 4d 42 49 4e 41 54 | 49 4f 4e 20 41 53 20 48 |COMBINAT|ION AS H|
|00001ba0| 4f 54 20 4b 45 59 3a 0d | 0a 3b 20 20 2d 09 53 45 |OT KEY:.|.; -.SE|
|00001bb0| 54 20 54 48 45 20 46 4c | 41 47 20 48 6f 74 49 73 |T THE FL|AG HotIs|
|00001bc0| 53 68 69 66 74 20 49 4e | 20 4b 65 79 4d 6f 64 65 |Shift IN| KeyMode|
|00001bd0| 0d 0a 3b 20 20 2d 09 44 | 45 46 49 4e 45 20 54 48 |..; -.D|EFINE TH|
|00001be0| 45 20 53 48 49 46 54 20 | 53 54 41 54 55 53 20 42 |E SHIFT |STATUS B|
|00001bf0| 49 54 53 20 49 4e 20 54 | 48 45 20 56 41 52 49 41 |ITS IN T|HE VARIA|
|00001c00| 42 4c 45 20 48 6f 74 4b | 65 79 53 68 69 66 74 0d |BLE HotK|eyShift.|
|00001c10| 0a 3b 0d 0a 3b 20 54 4f | 20 55 53 45 20 41 20 53 |.;..; TO| USE A S|
|00001c20| 45 52 49 45 53 20 4f 46 | 20 53 43 41 4e 20 43 4f |ERIES OF| SCAN CO|
|00001c30| 44 45 53 20 41 53 20 48 | 4f 54 20 4b 45 59 3a 0d |DES AS H|OT KEY:.|
|00001c40| 0a 3b 09 43 4c 45 41 52 | 20 54 48 45 20 46 4c 41 |.;.CLEAR| THE FLA|
|00001c50| 47 20 48 6f 74 49 73 53 | 68 69 66 74 20 49 4e 20 |G HotIsS|hift IN |
|00001c60| 4b 65 79 4d 6f 64 65 0d | 0a 3b 20 20 2d 09 49 4e |KeyMode.|.; -.IN|
|00001c70| 53 45 52 54 20 54 48 45 | 20 4d 41 4b 45 20 41 4e |SERT THE| MAKE AN|
|00001c80| 44 20 42 52 45 41 4b 20 | 53 43 41 4e 20 43 4f 44 |D BREAK |SCAN COD|
|00001c90| 45 53 20 49 4e 20 54 48 | 45 20 48 6f 74 4b 65 79 |ES IN TH|E HotKey|
|00001ca0| 53 65 71 20 53 54 52 49 | 4e 47 0d 0a 3b 09 4e 4f |Seq STRI|NG..;.NO|
|00001cb0| 54 45 3a 09 57 49 54 48 | 20 54 48 49 53 20 44 45 |TE:.WITH| THIS DE|
|00001cc0| 4d 4f 20 49 4d 50 4c 45 | 4d 45 4e 54 41 54 49 4f |MO IMPLE|MENTATIO|
|00001cd0| 4e 20 59 4f 55 20 53 48 | 4f 55 4c 44 20 4e 4f 54 |N YOU SH|OULD NOT|
|00001ce0| 20 55 53 45 20 41 20 48 | 4f 54 20 4b 45 59 0d 0a | USE A H|OT KEY..|
|00001cf0| 3b 09 09 53 45 51 55 45 | 4e 43 45 20 57 48 49 43 |;..SEQUE|NCE WHIC|
|00001d00| 48 20 50 52 4f 44 55 43 | 45 53 20 41 20 4b 45 59 |H PRODUC|ES A KEY|
|00001d10| 20 49 4e 20 54 48 45 20 | 42 49 4f 53 20 4b 45 59 | IN THE |BIOS KEY|
|00001d20| 42 4f 41 52 44 20 51 55 | 45 55 45 2c 0d 0a 3b 09 |BOARD QU|EUE,..;.|
|00001d30| 09 53 49 4e 43 45 20 54 | 48 45 20 4b 45 59 20 49 |.SINCE T|HE KEY I|
|00001d40| 53 20 4e 4f 54 20 52 45 | 4d 4f 56 45 44 20 42 45 |S NOT RE|MOVED BE|
|00001d50| 46 4f 52 45 20 43 41 4c | 4c 49 4e 47 20 54 48 45 |FORE CAL|LING THE|
|00001d60| 20 50 4f 50 55 50 20 52 | 4f 55 54 49 4e 45 2e 0d | POPUP R|OUTINE..|
|00001d70| 0a 3b 0d 0a 3b 20 4e 4f | 54 45 3a 09 48 4f 54 4b |.;..; NO|TE:.HOTK|
|00001d80| 45 59 20 54 59 50 45 20 | 41 4e 44 20 43 4f 4e 54 |EY TYPE |AND CONT|
|00001d90| 45 4e 54 53 20 4f 46 20 | 48 4f 54 4b 45 59 20 56 |ENTS OF |HOTKEY V|
|00001da0| 41 52 49 41 42 4c 45 53 | 20 4d 41 59 20 42 45 20 |ARIABLES| MAY BE |
|00001db0| 43 48 41 4e 47 45 44 20 | 41 54 20 52 55 4e 20 54 |CHANGED |AT RUN T|
|00001dc0| 49 4d 45 0d 0a 3b 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |IME..;==|========|
|00001dd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001de0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001df0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001e00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001e10| 3d 3d 3d 3d 0d 0a 0d 0a | 48 6f 74 4b 65 79 53 68 |====....|HotKeySh|
|00001e20| 69 66 74 09 64 62 09 4c | 65 66 74 53 68 69 66 74 |ift.db.L|eftShift|
|00001e30| 20 4f 52 20 52 69 67 68 | 74 53 68 69 66 74 09 3b | OR Righ|tShift.;|
|00001e40| 73 68 69 66 74 20 73 74 | 61 74 65 20 49 46 20 48 |shift st|ate IF H|
|00001e50| 6f 74 49 73 53 68 69 66 | 74 3d 46 46 0d 0a 0d 0a |otIsShif|t=FF....|
|00001e60| 48 6f 74 4b 65 79 53 65 | 71 09 64 62 09 4c 65 66 |HotKeySe|q.db.Lef|
|00001e70| 74 44 6f 77 6e 2c 4c 65 | 66 74 55 70 2c 4c 65 66 |tDown,Le|ftUp,Lef|
|00001e80| 74 44 6f 77 6e 2c 4c 65 | 66 74 55 70 0d 0a 48 6f |tDown,Le|ftUp..Ho|
|00001e90| 74 4b 65 79 4c 65 6e 09 | 65 71 75 09 24 2d 48 6f |tKeyLen.|equ.$-Ho|
|00001ea0| 74 4b 65 79 53 65 71 0d | 0a 48 6f 74 49 6e 64 65 |tKeySeq.|.HotInde|
|00001eb0| 78 09 64 62 09 30 09 09 | 09 3b 23 20 6b 65 79 20 |x.db.0..|.;# key |
|00001ec0| 69 6e 20 73 65 71 20 74 | 6f 20 63 6f 6d 70 61 72 |in seq t|o compar|
|00001ed0| 65 20 6e 65 78 74 0d 0a | 42 65 74 77 65 65 6e 4b |e next..|BetweenK|
|00001ee0| 65 79 73 09 64 62 09 30 | 09 09 09 3b 74 69 6d 65 |eys.db.0|...;time|
|00001ef0| 6f 75 74 20 63 6f 75 6e | 74 20 62 65 74 77 65 65 |out coun|t betwee|
|00001f00| 6e 20 6b 65 79 73 0d 0a | 4b 65 79 54 69 6d 65 4f |n keys..|KeyTimeO|
|00001f10| 75 74 09 65 71 75 09 31 | 30 09 09 09 3b 6d 6f 72 |ut.equ.1|0...;mor|
|00001f20| 65 20 74 69 63 6b 73 20 | 6d 65 61 6e 73 20 6e 6f |e ticks |means no|
|00001f30| 74 20 61 20 68 6f 74 6b | 65 79 0d 0a 0d 0a 3b 3d |t a hotk|ey....;=|
|00001f40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 0a 3b |========|=====..;|
|00001f90| 20 44 41 54 41 20 46 4f | 52 20 49 4e 54 30 38 48 | DATA FO|R INT08H|
|00001fa0| 20 48 41 4e 44 4c 45 52 | 20 54 4f 20 43 48 45 43 | HANDLER| TO CHEC|
|00001fb0| 4b 20 46 4f 52 20 50 4f | 50 55 50 0d 0a 3b 3d 3d |K FOR PO|PUP..;==|
|00001fc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001fd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001fe0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001ff0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002000| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 0d 0a 0d 0a |========|====....|
|00002010| 53 61 66 65 57 61 69 74 | 09 64 62 09 30 09 09 09 |SafeWait|.db.0...|
|00002020| 3b 63 6f 75 6e 74 2d 64 | 6f 77 6e 20 66 6f 72 20 |;count-d|own for |
|00002030| 73 61 66 65 20 70 6f 70 | 75 70 0d 0a 4d 61 78 57 |safe pop|up..MaxW|
|00002040| 61 69 74 09 09 65 71 75 | 09 38 09 09 09 3b 77 61 |ait..equ|.8...;wa|
|00002050| 69 74 20 6e 6f 20 6d 6f | 72 65 20 38 2f 31 38 20 |it no mo|re 8/18 |
|00002060| 73 65 63 0d 0a 0d 0a 3b | 3d 3d 3d 3d 3d 3d 3d 3d |sec....;|========|
|00002070| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002080| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000020a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000020b0| 3d 3d 3d 3d 3d 3d 0d 0a | 3b 20 50 52 4f 43 45 53 |======..|; PROCES|
|000020c0| 53 20 26 20 53 59 53 54 | 45 4d 20 44 41 54 41 0d |S & SYST|EM DATA.|
|000020d0| 0a 3b 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.;======|========|
|000020e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000020f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002120| 0d 0a 0d 0a 4f 75 72 53 | 53 09 09 64 77 09 30 09 |....OurS|S..dw.0.|
|00002130| 09 09 3b 73 74 61 63 6b | 20 66 6f 72 20 70 6f 70 |..;stack| for pop|
|00002140| 75 70 20 72 6f 75 74 69 | 6e 65 0d 0a 4f 75 72 53 |up routi|ne..OurS|
|00002150| 50 09 09 64 77 09 30 0d | 0a 53 74 61 63 6b 53 69 |P..dw.0.|.StackSi|
|00002160| 7a 65 09 65 71 75 09 35 | 31 32 09 09 09 3b 62 79 |ze.equ.5|12...;by|
|00002170| 74 65 73 20 74 6f 20 72 | 65 73 65 72 76 65 20 66 |tes to r|eserve f|
|00002180| 6f 72 20 73 74 61 63 6b | 0d 0a 0d 0a 4f 6c 64 53 |or stack|....OldS|
|00002190| 53 09 09 64 77 09 30 09 | 09 09 3b 6f 6c 64 20 73 |S..dw.0.|..;old s|
|000021a0| 74 61 63 6b 20 73 65 67 | 0d 0a 4f 6c 64 53 50 09 |tack seg|..OldSP.|
|000021b0| 09 64 77 09 30 09 09 09 | 3b 6f 6c 64 20 73 74 61 |.dw.0...|;old sta|
|000021c0| 63 6b 20 6f 66 66 0d 0a | 0d 0a 4f 75 72 50 53 50 |ck off..|..OurPSP|
|000021d0| 09 09 64 77 09 30 09 09 | 09 3b 6f 75 72 20 50 53 |..dw.0..|.;our PS|
|000021e0| 50 20 73 65 67 0d 0a 4f | 6c 64 50 53 50 09 09 64 |P seg..O|ldPSP..d|
|000021f0| 77 09 30 09 09 09 3b 6f | 6c 64 20 50 53 50 20 73 |w.0...;o|ld PSP s|
|00002200| 65 67 0d 0a 0d 0a 4f 6c | 64 44 54 41 09 09 6c 61 |eg....Ol|dDTA..la|
|00002210| 62 65 6c 09 64 77 6f 72 | 64 09 09 09 3b 73 65 67 |bel.dwor|d...;seg|
|00002220| 3a 6f 66 66 20 6f 66 20 | 6f 6c 64 20 44 54 41 20 |:off of |old DTA |
|00002230| 61 72 65 61 0d 0a 4f 6c | 64 44 54 41 4f 66 66 09 |area..Ol|dDTAOff.|
|00002240| 64 77 09 30 0d 0a 4f 6c | 64 44 54 41 53 65 67 09 |dw.0..Ol|dDTASeg.|
|00002250| 64 77 09 30 0d 0a 0d 0a | 4f 75 72 44 54 41 09 09 |dw.0....|OurDTA..|
|00002260| 6c 61 62 65 6c 09 64 77 | 6f 72 64 09 09 09 3b 73 |label.dw|ord...;s|
|00002270| 65 67 3a 6f 66 66 20 6f | 66 20 6f 75 72 20 44 54 |eg:off o|f our DT|
|00002280| 41 0d 0a 4f 75 72 44 54 | 41 4f 66 66 09 64 77 09 |A..OurDT|AOff.dw.|
|00002290| 30 0d 0a 4f 75 72 44 54 | 41 53 65 67 09 64 77 09 |0..OurDT|ASeg.dw.|
|000022a0| 30 0d 0a 0d 0a 4f 6c 64 | 42 72 65 61 6b 09 64 62 |0....Old|Break.db|
|000022b0| 09 30 09 09 09 3b 6f 6c | 64 20 63 74 72 6c 2d 62 |.0...;ol|d ctrl-b|
|000022c0| 72 65 61 6b 20 73 74 61 | 74 65 0d 0a 4f 6c 64 45 |reak sta|te..OldE|
|000022d0| 78 74 45 72 72 09 64 77 | 09 33 20 64 75 70 20 28 |xtErr.dw|.3 dup (|
|000022e0| 30 29 09 09 3b 41 58 2c | 42 58 2c 43 58 20 6f 66 |0)..;AX,|BX,CX of|
|000022f0| 20 65 78 74 20 65 72 72 | 0d 0a 0d 0a 3b 3d 3d 3d | ext err|....;===|
|00002300| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002310| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002320| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002330| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002340| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0a 3b 20 4c |========|===..; L|
|00002350| 4f 43 41 54 49 4f 4e 53 | 20 46 4f 52 20 53 41 56 |OCATIONS| FOR SAV|
|00002360| 45 44 20 49 4e 54 45 52 | 52 55 50 54 20 56 45 43 |ED INTER|RUPT VEC|
|00002370| 54 4f 52 53 0d 0a 3b 3d | 3d 3d 3d 3d 3d 3d 3d 3d |TORS..;=|========|
|00002380| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002390| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023c0| 3d 3d 3d 3d 3d 0d 0a 0d | 0a 4f 6c 64 49 6e 74 30 |=====...|.OldInt0|
|000023d0| 38 09 6c 61 62 65 6c 09 | 64 77 6f 72 64 09 09 09 |8.label.|dword...|
|000023e0| 3b 54 69 6d 65 72 30 20 | 6c 6f 61 64 65 64 20 62 |;Timer0 |loaded b|
|000023f0| 65 66 6f 72 65 20 74 68 | 69 73 0d 0a 4f 6c 64 49 |efore th|is..OldI|
|00002400| 6e 74 30 38 4f 66 66 09 | 64 77 09 30 0d 0a 4f 6c |nt08Off.|dw.0..Ol|
|00002410| 64 49 6e 74 30 38 53 65 | 67 09 64 77 09 30 0d 0a |dInt08Se|g.dw.0..|
|00002420| 0d 0a 4f 6c 64 49 6e 74 | 30 39 09 6c 61 62 65 6c |..OldInt|09.label|
|00002430| 09 64 77 6f 72 64 09 09 | 09 3b 4b 62 20 68 61 6e |.dword..|.;Kb han|
|00002440| 64 6c 65 72 20 6c 6f 61 | 64 64 65 20 62 65 66 6f |dler loa|dde befo|
|00002450| 72 65 20 74 68 69 73 0d | 0a 4f 6c 64 49 6e 74 30 |re this.|.OldInt0|
|00002460| 39 4f 66 66 09 64 77 09 | 30 0d 0a 4f 6c 64 49 6e |9Off.dw.|0..OldIn|
|00002470| 74 30 39 53 65 67 09 64 | 77 09 30 0d 0a 0d 0a 4f |t09Seg.d|w.0....O|
|00002480| 6c 64 49 6e 74 31 33 09 | 6c 61 62 65 6c 09 64 77 |ldInt13.|label.dw|
|00002490| 6f 72 64 09 09 09 3b 42 | 49 4f 53 20 64 69 73 6b |ord...;B|IOS disk|
|000024a0| 65 74 74 65 20 49 2f 4f | 0d 0a 4f 6c 64 49 6e 74 |ette I/O|..OldInt|
|000024b0| 31 33 4f 66 66 09 64 77 | 09 30 0d 0a 4f 6c 64 49 |13Off.dw|.0..OldI|
|000024c0| 6e 74 31 33 53 65 67 09 | 64 77 09 30 0d 0a 0d 0a |nt13Seg.|dw.0....|
|000024d0| 4f 6c 64 49 6e 74 31 36 | 09 6c 61 62 65 6c 09 64 |OldInt16|.label.d|
|000024e0| 77 6f 72 64 09 09 09 3b | 42 49 4f 53 20 6b 62 20 |word...;|BIOS kb |
|000024f0| 51 2d 68 61 6e 64 6c 65 | 72 0d 0a 4f 6c 64 49 6e |Q-handle|r..OldIn|
|00002500| 74 31 36 4f 66 66 09 64 | 77 09 30 0d 0a 4f 6c 64 |t16Off.d|w.0..Old|
|00002510| 49 6e 74 31 36 53 65 67 | 09 64 77 09 30 0d 0a 0d |Int16Seg|.dw.0...|
|00002520| 0a 4f 6c 64 49 6e 74 31 | 42 09 6c 61 62 65 6c 09 |.OldInt1|B.label.|
|00002530| 64 77 6f 72 64 09 09 09 | 3b 5e 62 72 65 61 6b 20 |dword...|;^break |
|00002540| 6f 66 20 70 72 6f 63 65 | 73 73 20 77 65 20 73 74 |of proce|ss we st|
|00002550| 65 61 6c 0d 0a 4f 6c 64 | 49 6e 74 31 42 4f 66 66 |eal..Old|Int1BOff|
|00002560| 09 64 77 09 30 0d 0a 4f | 6c 64 49 6e 74 31 42 53 |.dw.0..O|ldInt1BS|
|00002570| 65 67 09 64 77 09 30 0d | 0a 0d 0a 4f 6c 64 49 6e |eg.dw.0.|...OldIn|
|00002580| 74 31 43 09 6c 61 62 65 | 6c 09 64 77 6f 72 64 09 |t1C.labe|l.dword.|
|00002590| 09 09 3b 74 69 6d 65 72 | 20 74 69 63 6b 20 6f 66 |..;timer| tick of|
|000025a0| 20 70 72 6f 63 65 73 73 | 20 77 65 20 73 74 65 61 | process| we stea|
|000025b0| 6c 0d 0a 4f 6c 64 49 6e | 74 31 43 4f 66 66 09 64 |l..OldIn|t1COff.d|
|000025c0| 77 09 30 0d 0a 4f 6c 64 | 49 6e 74 31 43 53 65 67 |w.0..Old|Int1CSeg|
|000025d0| 09 64 77 09 30 0d 0a 0d | 0a 4f 6c 64 49 6e 74 32 |.dw.0...|.OldInt2|
|000025e0| 31 09 6c 61 62 65 6c 09 | 64 77 6f 72 64 09 09 09 |1.label.|dword...|
|000025f0| 3b 44 4f 53 20 66 75 6e | 63 74 69 6f 6e 20 64 69 |;DOS fun|ction di|
|00002600| 73 70 61 74 63 68 65 72 | 0d 0a 4f 6c 64 49 6e 74 |spatcher|..OldInt|
|00002610| 32 31 4f 66 66 09 64 77 | 09 30 0d 0a 4f 6c 64 49 |21Off.dw|.0..OldI|
|00002620| 6e 74 32 31 53 65 67 09 | 64 77 09 30 0d 0a 0d 0a |nt21Seg.|dw.0....|
|00002630| 4f 6c 64 49 6e 74 32 33 | 09 6c 61 62 65 6c 09 64 |OldInt23|.label.d|
|00002640| 77 6f 72 64 09 09 09 3b | 5e 43 20 6f 66 20 70 72 |word...;|^C of pr|
|00002650| 6f 63 65 73 73 20 77 65 | 20 73 74 65 61 6c 0d 0a |ocess we| steal..|
|00002660| 4f 6c 64 49 6e 74 32 33 | 4f 66 66 09 64 77 09 30 |OldInt23|Off.dw.0|
|00002670| 0d 0a 4f 6c 64 49 6e 74 | 32 33 53 65 67 09 64 77 |..OldInt|23Seg.dw|
|00002680| 09 30 0d 0a 0d 0a 4f 6c | 64 49 6e 74 32 34 09 6c |.0....Ol|dInt24.l|
|00002690| 61 62 65 6c 09 64 77 6f | 72 64 09 09 09 3b 63 72 |abel.dwo|rd...;cr|
|000026a0| 69 74 20 65 72 72 20 6f | 66 20 70 72 6f 63 65 73 |it err o|f proces|
|000026b0| 73 20 77 65 20 73 74 65 | 61 6c 0d 0a 4f 6c 64 49 |s we ste|al..OldI|
|000026c0| 6e 74 32 34 4f 66 66 09 | 64 77 09 30 0d 0a 4f 6c |nt24Off.|dw.0..Ol|
|000026d0| 64 49 6e 74 32 34 53 65 | 67 09 64 77 09 30 0d 0a |dInt24Se|g.dw.0..|
|000026e0| 0d 0a 4f 6c 64 49 6e 74 | 32 38 09 6c 61 62 65 6c |..OldInt|28.label|
|000026f0| 09 64 77 6f 72 64 09 09 | 09 3b 44 4f 53 20 69 64 |.dword..|.;DOS id|
|00002700| 6c 65 73 20 6c 6f 61 64 | 65 64 20 62 65 66 6f 72 |les load|ed befor|
|00002710| 65 20 74 68 69 73 0d 0a | 4f 6c 64 49 6e 74 32 38 |e this..|OldInt28|
|00002720| 4f 66 66 09 64 77 09 30 | 0d 0a 4f 6c 64 49 6e 74 |Off.dw.0|..OldInt|
|00002730| 32 38 53 65 67 09 64 77 | 09 30 0d 0a 0d 0a 3b 3d |28Seg.dw|.0....;=|
|00002740| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002750| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002760| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002770| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002780| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 0a 3b |========|=====..;|
|00002790| 20 53 50 45 41 4b 45 52 | 2f 54 4f 4e 45 20 47 45 | SPEAKER|/TONE GE|
|000027a0| 4e 45 52 41 54 49 4f 4e | 20 44 41 54 41 0d 0a 3b |NERATION| DATA..;|
|000027b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000027c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000027d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000027e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000027f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0a |========|======..|
|00002800| 0d 0a 50 42 30 70 6f 72 | 74 09 09 65 71 75 09 36 |..PB0por|t..equ.6|
|00002810| 31 68 09 09 09 3b 70 6f | 72 74 20 66 6f 72 20 73 |1h...;po|rt for s|
|00002820| 70 65 61 6b 65 72 20 62 | 69 74 0d 0a 45 72 72 4c |peaker b|it..ErrL|
|00002830| 65 6e 31 09 09 65 71 75 | 09 31 30 09 09 09 3b 23 |en1..equ|.10...;#|
|00002840| 20 6f 75 74 65 72 20 65 | 72 72 20 62 65 65 70 20 | outer e|rr beep |
|00002850| 63 79 63 6c 65 73 0d 0a | 45 72 72 4c 65 6e 32 09 |cycles..|ErrLen2.|
|00002860| 09 65 71 75 09 38 30 09 | 09 09 3b 23 20 69 6e 6e |.equ.80.|..;# inn|
|00002870| 65 72 20 65 72 72 20 62 | 65 65 70 20 63 79 63 6c |er err b|eep cycl|
|00002880| 65 73 0d 0a 45 72 72 4c | 6f 77 09 09 65 71 75 09 |es..ErrL|ow..equ.|
|00002890| 31 30 30 09 09 09 3b 6c | 6f 77 20 74 6f 6e 65 20 |100...;l|ow tone |
|000028a0| 77 61 69 74 20 69 6e 20 | 65 72 72 20 62 65 65 70 |wait in |err beep|
|000028b0| 0d 0a 45 72 72 48 69 09 | 09 65 71 75 09 34 30 09 |..ErrHi.|.equ.40.|
|000028c0| 09 09 3b 68 69 20 74 6f | 6e 65 20 77 61 69 74 20 |..;hi to|ne wait |
|000028d0| 69 6e 20 65 72 72 20 62 | 65 65 70 0d 0a 0d 0a 3b |in err b|eep....;|
|000028e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000028f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002900| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002910| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002920| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0a |========|======..|
|00002930| 3b 20 45 72 72 42 65 65 | 70 20 2d 20 50 52 4f 44 |; ErrBee|p - PROD|
|00002940| 55 43 45 20 45 52 52 4f | 52 2d 49 4e 44 49 43 41 |UCE ERRO|R-INDICA|
|00002950| 54 49 4e 47 20 53 4f 55 | 4e 44 20 4f 4e 20 53 50 |TING SOU|ND ON SP|
|00002960| 45 41 4b 45 52 0d 0a 3b | 3d 3d 3d 3d 3d 3d 3d 3d |EAKER..;|========|
|00002970| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002980| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002990| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000029a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000029b0| 3d 3d 3d 3d 3d 3d 0d 0a | 0d 0a 45 72 72 42 65 65 |======..|..ErrBee|
|000029c0| 70 09 09 70 72 6f 63 09 | 6e 65 61 72 0d 0a 09 09 |p..proc.|near....|
|000029d0| 61 73 73 75 6d 65 09 64 | 73 3a 6e 6f 74 68 69 6e |assume.d|s:nothin|
|000029e0| 67 2c 20 65 73 3a 6e 6f | 74 68 69 6e 67 2c 20 73 |g, es:no|thing, s|
|000029f0| 73 3a 6e 6f 74 68 69 6e | 67 0d 0a 0d 0a 09 09 70 |s:nothin|g......p|
|00002a00| 75 73 68 09 61 78 09 09 | 09 3b 73 61 76 65 20 72 |ush.ax..|.;save r|
|00002a10| 65 67 73 20 75 73 65 64 | 0d 0a 09 09 70 75 73 68 |egs used|....push|
|00002a20| 09 62 78 0d 0a 09 09 70 | 75 73 68 09 63 78 0d 0a |.bx....p|ush.cx..|
|00002a30| 09 09 70 75 73 68 09 64 | 78 0d 0a 0d 0a 09 09 6d |..push.d|x......m|
|00002a40| 6f 76 09 63 78 2c 45 72 | 72 4c 65 6e 31 09 09 3b |ov.cx,Er|rLen1..;|
|00002a50| 23 20 6d 69 78 2d 63 79 | 63 6c 65 73 20 66 6f 72 |# mix-cy|cles for|
|00002a60| 20 62 65 65 70 0d 0a 0d | 0a 45 72 72 42 65 65 70 | beep...|.ErrBeep|
|00002a70| 31 3a 09 6d 6f 76 09 64 | 78 2c 45 72 72 4c 6f 77 |1:.mov.d|x,ErrLow|
|00002a80| 09 09 3b 77 61 69 74 20 | 74 69 6d 65 20 66 6f 72 |..;wait |time for|
|00002a90| 20 68 61 6c 66 2d 63 79 | 63 6c 65 0d 0a 09 09 6d | half-cy|cle....m|
|00002aa0| 6f 76 09 62 78 2c 45 72 | 72 4c 65 6e 32 09 09 3b |ov.bx,Er|rLen2..;|
|00002ab0| 6c 65 6e 20 6f 66 20 6f | 6e 65 20 74 6f 6e 65 0d |len of o|ne tone.|
|00002ac0| 0a 09 09 63 61 6c 6c 09 | 44 6f 54 6f 6e 65 09 09 |...call.|DoTone..|
|00002ad0| 09 3b 6f 75 74 70 75 74 | 20 6c 6f 77 20 65 72 72 |.;output| low err|
|00002ae0| 20 74 6f 6e 65 0d 0a 09 | 09 6d 6f 76 09 64 78 2c | tone...|.mov.dx,|
|00002af0| 45 72 72 48 69 09 09 3b | 77 61 69 74 20 74 69 6d |ErrHi..;|wait tim|
|00002b00| 65 20 66 6f 72 20 68 61 | 6c 66 2d 63 79 63 6c 65 |e for ha|lf-cycle|
|00002b10| 0d 0a 09 09 6d 6f 76 09 | 62 78 2c 45 72 72 4c 65 |....mov.|bx,ErrLe|
|00002b20| 6e 32 09 09 3b 6c 65 6e | 20 6f 66 20 6f 6e 65 20 |n2..;len| of one |
|00002b30| 74 6f 6e 65 0d 0a 09 09 | 63 61 6c 6c 09 44 6f 54 |tone....|call.DoT|
|00002b40| 6f 6e 65 09 09 09 3b 6f | 75 74 70 75 74 20 6c 6f |one...;o|utput lo|
|00002b50| 77 20 65 72 72 20 74 6f | 6e 65 0d 0a 0d 0a 09 09 |w err to|ne......|
|00002b60| 6c 6f 6f 70 09 45 72 72 | 42 65 65 70 31 09 09 3b |loop.Err|Beep1..;|
|00002b70| 6c 6f 6f 70 20 66 6f 72 | 20 73 6f 6d 65 20 74 69 |loop for| some ti|
|00002b80| 6d 65 0d 0a 0d 0a 09 09 | 70 6f 70 09 64 78 0d 0a |me......|pop.dx..|
|00002b90| 09 09 70 6f 70 09 63 78 | 09 09 09 3b 72 65 73 74 |..pop.cx|...;rest|
|00002ba0| 6f 72 65 20 72 65 67 73 | 0d 0a 09 09 70 6f 70 09 |ore regs|....pop.|
|00002bb0| 62 78 0d 0a 09 09 70 6f | 70 09 61 78 0d 0a 09 09 |bx....po|p.ax....|
|00002bc0| 72 65 74 0d 0a 45 72 72 | 42 65 65 70 09 09 65 6e |ret..Err|Beep..en|
|00002bd0| 64 70 0d 0a 0d 0a 3b 3d | 3d 3d 3d 3d 3d 3d 3d 3d |dp....;=|========|
|00002be0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002bf0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002c20| 3d 3d 3d 3d 3d 0d 0a 3b | 20 44 6f 54 6f 6e 65 20 |=====..;| DoTone |
|00002c30| 2d 20 4f 55 54 50 55 54 | 20 4f 4e 45 20 54 4f 4e |- OUTPUT| ONE TON|
|00002c40| 45 20 4f 4e 20 54 48 45 | 20 53 50 45 41 4b 45 52 |E ON THE| SPEAKER|
|00002c50| 0d 0a 3b 0d 0a 3b 20 49 | 4e 50 55 54 3a 09 44 58 |..;..; I|NPUT:.DX|
|00002c60| 3a 09 4c 4f 4f 50 20 57 | 41 49 54 20 54 49 4d 45 |:.LOOP W|AIT TIME|
|00002c70| 20 46 4f 52 20 48 41 4c | 46 20 43 59 43 4c 45 20 | FOR HAL|F CYCLE |
|00002c80| 49 4e 20 54 4f 4e 45 0d | 0a 3b 09 09 42 58 3a 09 |IN TONE.|.;..BX:.|
|00002c90| 4e 55 4d 42 45 52 20 4f | 46 20 43 59 43 4c 45 53 |NUMBER O|F CYCLES|
|00002ca0| 20 46 4f 52 20 54 4f 4e | 45 20 44 55 52 41 54 49 | FOR TON|E DURATI|
|00002cb0| 4f 4e 0d 0a 3b 20 4f 55 | 54 50 55 54 3a 09 4e 4f |ON..; OU|TPUT:.NO|
|00002cc0| 4e 45 0d 0a 3b 20 52 45 | 47 53 3a 09 09 41 4c 4c |NE..; RE|GS:..ALL|
|00002cd0| 20 50 52 45 53 45 52 56 | 45 44 0d 0a 3b 3d 3d 3d | PRESERV|ED..;===|
|00002ce0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002cf0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002d00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002d10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002d20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0a 0d 0a 44 |========|===....D|
|00002d30| 6f 54 6f 6e 65 09 09 70 | 72 6f 63 09 6e 65 61 72 |oTone..p|roc.near|
|00002d40| 0d 0a 09 09 61 73 73 75 | 6d 65 09 64 73 3a 6e 6f |....assu|me.ds:no|
|00002d50| 74 68 69 6e 67 2c 20 65 | 73 3a 6e 6f 74 68 69 6e |thing, e|s:nothin|
|00002d60| 67 2c 20 73 73 3a 6e 6f | 74 68 69 6e 67 0d 0a 0d |g, ss:no|thing...|
|00002d70| 0a 09 09 70 75 73 68 09 | 61 78 09 09 09 3b 73 61 |...push.|ax...;sa|
|00002d80| 76 65 20 72 65 67 73 20 | 75 73 65 64 0d 0a 09 09 |ve regs |used....|
|00002d90| 70 75 73 68 09 62 78 0d | 0a 09 09 70 75 73 68 09 |push.bx.|...push.|
|00002da0| 63 78 0d 0a 09 09 69 6e | 09 61 6c 2c 50 42 30 70 |cx....in|.al,PB0p|
|00002db0| 6f 72 74 09 09 3b 67 65 | 74 20 50 42 30 20 72 65 |ort..;ge|t PB0 re|
|00002dc0| 67 20 70 61 74 74 65 72 | 6e 0d 0a 09 09 6d 6f 76 |g patter|n....mov|
|00002dd0| 09 61 68 2c 61 6c 09 09 | 09 3b 73 61 76 65 20 69 |.ah,al..|.;save i|
|00002de0| 74 0d 0a 0d 0a 44 6f 54 | 6f 6e 65 31 3a 09 61 6e |t....DoT|one1:.an|
|00002df0| 64 09 61 6c 2c 30 66 63 | 68 09 09 09 3b 6d 61 73 |d.al,0fc|h...;mas|
|00002e00| 6b 20 6f 66 66 20 73 70 | 65 61 6b 65 72 20 62 69 |k off sp|eaker bi|
|00002e10| 74 0d 0a 09 09 6f 75 74 | 09 50 42 30 70 6f 72 74 |t....out|.PB0port|
|00002e20| 2c 61 6c 09 09 3b 70 75 | 6c 6c 21 0d 0a 09 09 6d |,al..;pu|ll!....m|
|00002e30| 6f 76 09 63 78 2c 64 78 | 09 09 09 3b 68 61 6c 66 |ov.cx,dx|...;half|
|00002e40| 20 63 79 63 6c 65 20 69 | 6e 20 63 6f 75 6e 74 65 | cycle i|n counte|
|00002e50| 72 0d 0a 44 6f 54 6f 6e | 65 32 3a 09 6c 6f 6f 70 |r..DoTon|e2:.loop|
|00002e60| 09 44 6f 54 6f 6e 65 32 | 09 09 09 3b 6c 65 61 76 |.DoTone2|...;leav|
|00002e70| 65 20 74 68 65 72 65 20 | 66 6f 72 20 68 61 6c 66 |e there |for half|
|00002e80| 20 61 20 63 79 63 6c 65 | 0d 0a 09 09 6f 72 09 61 | a cycle|....or.a|
|00002e90| 6c 2c 32 09 09 09 3b 74 | 75 72 6e 20 6f 6e 20 73 |l,2...;t|urn on s|
|00002ea0| 70 65 61 6b 65 72 20 62 | 69 74 0d 0a 09 09 6f 75 |peaker b|it....ou|
|00002eb0| 74 09 50 42 30 70 6f 72 | 74 2c 61 6c 09 09 3b 70 |t.PB0por|t,al..;p|
|00002ec0| 75 73 68 21 0d 0a 09 09 | 6d 6f 76 09 63 78 2c 64 |ush!....|mov.cx,d|
|00002ed0| 78 09 09 09 3b 68 61 6c | 66 20 63 79 63 6c 65 20 |x...;hal|f cycle |
|00002ee0| 69 6e 20 63 6f 75 6e 74 | 65 72 0d 0a 44 6f 54 6f |in count|er..DoTo|
|00002ef0| 6e 65 33 3a 09 6c 6f 6f | 70 09 44 6f 54 6f 6e 65 |ne3:.loo|p.DoTone|
|00002f00| 33 09 09 09 3b 6c 65 61 | 76 65 20 74 68 65 72 65 |3...;lea|ve there|
|00002f10| 20 66 6f 72 20 68 61 6c | 66 20 61 20 63 79 63 6c | for hal|f a cycl|
|00002f20| 65 0d 0a 0d 0a 09 09 64 | 65 63 09 62 78 09 09 09 |e......d|ec.bx...|
|00002f30| 3b 63 6f 75 6e 74 20 64 | 6f 77 6e 20 74 6f 6e 65 |;count d|own tone|
|00002f40| 20 64 75 72 61 74 69 6f | 6e 0d 0a 09 09 6a 6e 7a | duratio|n....jnz|
|00002f50| 09 44 6f 54 6f 6e 65 31 | 09 09 09 3b 67 6f 20 74 |.DoTone1|...;go t|
|00002f60| 68 72 6f 75 67 68 20 66 | 75 6c 6c 20 74 6f 6e 65 |hrough f|ull tone|
|00002f70| 0d 0a 0d 0a 09 09 6d 6f | 76 09 61 6c 2c 61 68 09 |......mo|v.al,ah.|
|00002f80| 09 09 3b 41 4c 3d 6f 72 | 69 67 69 6e 61 6c 20 50 |..;AL=or|iginal P|
|00002f90| 42 30 20 72 65 67 20 76 | 61 6c 75 65 0d 0a 09 09 |B0 reg v|alue....|
|00002fa0| 6f 75 74 09 50 42 30 70 | 6f 72 74 2c 61 6c 09 09 |out.PB0p|ort,al..|
|00002fb0| 3b 72 65 73 74 6f 72 65 | 0d 0a 0d 0a 09 09 70 6f |;restore|......po|
|00002fc0| 70 09 63 78 09 09 09 3b | 72 65 73 74 6f 72 65 20 |p.cx...;|restore |
|00002fd0| 72 65 67 73 0d 0a 09 09 | 70 6f 70 09 62 78 0d 0a |regs....|pop.bx..|
|00002fe0| 09 09 70 6f 70 09 61 78 | 0d 0a 09 09 72 65 74 0d |..pop.ax|....ret.|
|00002ff0| 0a 44 6f 54 6f 6e 65 09 | 09 65 6e 64 70 0d 0a 0d |.DoTone.|.endp...|
|00003000| 0a 3b 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.;======|========|
|00003010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003050| 0d 0a 3b 20 54 65 73 74 | 53 61 66 65 20 2d 20 43 |..; Test|Safe - C|
|00003060| 48 45 43 4b 20 49 46 20 | 54 48 49 53 20 49 53 20 |HECK IF |THIS IS |
|00003070| 41 20 53 41 46 45 20 54 | 49 4d 45 20 54 4f 20 44 |A SAFE T|IME TO D|
|00003080| 4f 20 41 20 50 4f 50 20 | 55 50 0d 0a 3b 20 0d 0a |O A POP |UP..; ..|
|00003090| 3b 20 52 45 54 55 52 4e | 20 43 4c 43 20 49 46 20 |; RETURN| CLC IF |
|000030a0| 53 41 46 45 20 54 4f 20 | 50 4f 50 20 55 50 2c 20 |SAFE TO |POP UP, |
|000030b0| 43 59 20 49 46 20 4e 4f | 54 20 53 41 46 45 2e 0d |CY IF NO|T SAFE..|
|000030c0| 0a 3b 0d 0a 3b 20 43 48 | 45 43 4b 20 49 46 20 41 |.;..; CH|ECK IF A|
|000030d0| 4e 59 20 49 4e 54 73 20 | 41 52 45 20 49 4e 20 43 |NY INTs |ARE IN C|
|000030e0| 52 49 54 49 43 41 4c 20 | 41 52 45 41 53 20 28 49 |RITICAL |AREAS (I|
|000030f0| 6e 49 6e 74 30 39 20 26 | 20 49 6e 49 6e 74 31 33 |nInt09 &| InInt13|
|00003100| 29 0d 0a 3b 20 43 48 45 | 43 4b 20 49 46 20 57 45 |)..; CHE|CK IF WE|
|00003110| 20 41 52 45 20 49 4e 20 | 41 4e 20 4f 55 52 20 4f | ARE IN |AN OUR O|
|00003120| 57 4e 20 49 4e 54 32 38 | 20 43 41 4c 4c 20 28 49 |WN INT28| CALL (I|
|00003130| 6e 32 38 43 61 6c 6c 29 | 0d 0a 3b 20 43 48 45 43 |n28Call)|..; CHEC|
|00003140| 4b 20 38 32 35 39 41 20 | 50 49 43 20 49 53 52 20 |K 8259A |PIC ISR |
|00003150| 52 45 47 49 53 54 45 52 | 20 46 4f 52 20 4d 49 53 |REGISTER| FOR MIS|
|00003160| 53 49 4e 47 20 45 4f 49 | 73 0d 0a 3b 20 43 48 45 |SING EOI|s..; CHE|
|00003170| 43 4b 20 49 46 20 44 4f | 53 20 49 53 20 53 54 41 |CK IF DO|S IS STA|
|00003180| 42 4c 45 20 46 4f 52 20 | 50 4f 50 20 55 50 0d 0a |BLE FOR |POP UP..|
|00003190| 3b 20 43 48 45 43 4b 20 | 49 46 20 41 20 50 52 49 |; CHECK |IF A PRI|
|000031a0| 4e 54 20 53 43 52 45 45 | 4e 20 49 53 20 49 4e 20 |NT SCREE|N IS IN |
|000031b0| 50 52 4f 47 52 45 53 53 | 0d 0a 3b 3d 3d 3d 3d 3d |PROGRESS|..;=====|
|000031c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000031f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003200| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 0d 0a 54 65 73 |========|=....Tes|
|00003210| 74 53 61 66 65 09 70 72 | 6f 63 09 6e 65 61 72 0d |tSafe.pr|oc.near.|
|00003220| 0a 09 09 61 73 73 75 6d | 65 09 64 73 3a 6e 6f 74 |...assum|e.ds:not|
|00003230| 68 69 6e 67 2c 20 65 73 | 3a 6e 6f 74 68 69 6e 67 |hing, es|:nothing|
|00003240| 0d 0a 0d 0a 09 09 70 75 | 73 68 09 61 78 09 09 09 |......pu|sh.ax...|
|00003250| 3b 73 61 76 65 20 72 65 | 67 73 20 75 73 65 64 0d |;save re|gs used.|
|00003260| 0a 09 09 70 75 73 68 09 | 62 78 0d 0a 09 09 70 75 |...push.|bx....pu|
|00003270| 73 68 09 64 73 0d 0a 0d | 0a 3b 20 2d 2d 2d 2d 2d |sh.ds...|.; -----|
|00003280| 2d 2d 2d 2d 2d 2d 2d 09 | 43 48 45 43 4b 20 49 4e |-------.|CHECK IN|
|00003290| 54 73 20 54 4f 20 53 45 | 45 20 49 46 20 54 48 45 |Ts TO SE|E IF THE|
|000032a0| 59 20 57 45 52 45 20 49 | 4e 54 45 52 52 55 50 54 |Y WERE I|NTERRUPT|
|000032b0| 45 44 20 41 54 20 42 41 | 44 20 54 49 4d 45 53 0d |ED AT BA|D TIMES.|
|000032c0| 0a 0d 0a 09 09 74 65 73 | 74 09 54 73 72 4d 6f 64 |.....tes|t.TsrMod|
|000032d0| 65 2c 49 6e 49 6e 74 30 | 39 20 4f 52 20 49 6e 49 |e,InInt0|9 OR InI|
|000032e0| 6e 74 31 33 20 4f 52 20 | 49 6e 32 38 43 61 6c 6c |nt13 OR |In28Call|
|000032f0| 0d 0a 09 09 6a 6e 7a 09 | 4e 6f 74 53 61 66 65 09 |....jnz.|NotSafe.|
|00003300| 09 09 3b 6a 75 6d 70 20 | 69 66 20 61 6e 79 20 49 |..;jump |if any I|
|00003310| 4e 54 73 20 61 72 65 20 | 63 68 6f 70 70 65 64 0d |NTs are |chopped.|
|00003320| 0a 0d 0a 3b 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...; ---|--------|
|00003330| 2d 09 43 48 45 43 4b 20 | 54 48 45 20 38 32 35 39 |-.CHECK |THE 8259|
|00003340| 41 20 50 49 43 20 49 53 | 52 20 52 45 47 49 53 54 |A PIC IS|R REGIST|
|00003350| 45 52 20 46 4f 52 20 4e | 4f 4e 2d 45 4f 49 65 64 |ER FOR N|ON-EOIed|
|00003360| 20 48 57 20 49 4e 54 73 | 0d 0a 0d 0a 09 09 6d 6f | HW INTs|......mo|
|00003370| 76 09 61 6c 2c 30 30 30 | 30 31 30 31 31 62 09 09 |v.al,000|01011b..|
|00003380| 3b 74 65 6c 6c 20 38 32 | 35 39 41 20 77 65 20 77 |;tell 82|59A we w|
|00003390| 61 6e 74 20 74 68 65 20 | 49 53 52 0d 0a 09 09 6f |ant the |ISR....o|
|000033a0| 75 74 09 32 30 68 2c 61 | 6c 09 09 09 3b 38 32 35 |ut.20h,a|l...;825|
|000033b0| 39 41 20 63 6f 6d 6d 61 | 6e 64 20 72 65 67 0d 0a |9A comma|nd reg..|
|000033c0| 09 09 6e 6f 70 0d 0a 09 | 09 6e 6f 70 0d 0a 09 09 |..nop...|.nop....|
|000033d0| 6e 6f 70 09 09 09 09 3b | 6e 6f 77 2c 20 49 53 52 |nop....;|now, ISR|
|000033e0| 20 73 68 6f 75 6c 64 20 | 62 65 20 72 65 61 64 79 | should |be ready|
|000033f0| 0d 0a 09 09 69 6e 09 61 | 6c 2c 32 30 68 09 09 09 |....in.a|l,20h...|
|00003400| 3b 41 4c 3d 6d 61 73 6b | 20 6f 66 20 61 63 74 69 |;AL=mask| of acti|
|00003410| 76 65 20 49 4e 54 73 0d | 0a 09 09 6f 72 09 61 6c |ve INTs.|...or.al|
|00003420| 2c 61 6c 09 09 09 3b 74 | 65 73 74 20 61 6c 6c 20 |,al...;t|est all |
|00003430| 28 49 52 51 30 20 2a 64 | 69 64 2a 20 45 4f 49 29 |(IRQ0 *d|id* EOI)|
|00003440| 0d 0a 09 09 6a 6e 7a 09 | 4e 6f 74 53 61 66 65 09 |....jnz.|NotSafe.|
|00003450| 09 09 3b 6a 75 6d 70 20 | 69 66 20 61 63 74 69 76 |..;jump |if activ|
|00003460| 65 20 49 4e 54 73 0d 0a | 0d 0a 3b 20 2d 2d 2d 2d |e INTs..|..; ----|
|00003470| 2d 2d 2d 2d 2d 2d 2d 2d | 09 4e 4f 57 2c 20 45 4e |--------|.NOW, EN|
|00003480| 53 55 52 45 20 54 48 41 | 54 20 44 4f 53 20 57 41 |SURE THA|T DOS WA|
|00003490| 53 20 4e 4f 54 20 49 4e | 54 45 52 52 55 50 54 45 |S NOT IN|TERRUPTE|
|000034a0| 44 0d 0a 0d 0a 09 09 61 | 73 73 75 6d 65 09 64 73 |D......a|ssume.ds|
|000034b0| 3a 6e 6f 74 68 69 6e 67 | 0d 0a 0d 0a 09 09 6c 64 |:nothing|......ld|
|000034c0| 73 09 62 78 2c 49 6e 44 | 6f 73 50 74 72 09 09 3b |s.bx,InD|osPtr..;|
|000034d0| 6e 6f 77 2c 20 44 53 3a | 42 58 3d 49 6e 44 6f 73 |now, DS:|BX=InDos|
|000034e0| 0d 0a 09 09 6d 6f 76 09 | 61 6c 2c 62 79 74 65 20 |....mov.|al,byte |
|000034f0| 70 74 72 20 5b 62 78 5d | 09 3b 67 65 74 20 49 6e |ptr [bx]|.;get In|
|00003500| 44 6f 73 20 74 6f 20 41 | 4c 0d 0a 09 09 6c 64 73 |Dos to A|L....lds|
|00003510| 09 62 78 2c 43 72 69 74 | 45 72 72 50 74 72 09 09 |.bx,Crit|ErrPtr..|
|00003520| 3b 6e 6f 77 2c 20 44 53 | 3a 42 58 3d 43 72 69 74 |;now, DS|:BX=Crit|
|00003530| 45 72 72 0d 0a 09 09 6f | 72 09 61 6c 2c 62 79 74 |Err....o|r.al,byt|
|00003540| 65 20 70 74 72 20 5b 62 | 78 5d 09 3b 62 6f 74 68 |e ptr [b|x].;both|
|00003550| 20 66 6c 61 67 73 20 7a | 65 72 6f 3f 0d 0a 09 09 | flags z|ero?....|
|00003560| 6a 7a 09 44 6f 73 53 61 | 66 65 09 09 09 3b 59 45 |jz.DosSa|fe...;YE|
|00003570| 53 20 2d 20 44 4f 53 20 | 69 73 20 72 65 61 6c 6c |S - DOS |is reall|
|00003580| 79 20 69 64 6c 65 0d 0a | 09 09 74 65 73 74 09 54 |y idle..|..test.T|
|00003590| 73 72 4d 6f 64 65 2c 49 | 6e 49 6e 74 32 38 09 09 |srMode,I|nInt28..|
|000035a0| 3b 69 73 20 74 68 69 73 | 20 61 6e 20 49 4e 54 32 |;is this| an INT2|
|000035b0| 38 68 0d 0a 09 09 6a 7a | 09 4e 6f 74 53 61 66 65 |8h....jz|.NotSafe|
|000035c0| 09 09 09 3b 4e 4f 20 2d | 20 6e 6f 74 20 73 61 66 |...;NO -| not saf|
|000035d0| 65 2c 20 73 68 6f 75 6c | 64 20 62 65 20 69 64 6c |e, shoul|d be idl|
|000035e0| 65 0d 0a 09 09 63 6d 70 | 09 61 6c 2c 31 09 09 09 |e....cmp|.al,1...|
|000035f0| 3b 59 45 53 20 2d 20 6f | 6e 65 20 49 6e 44 6f 73 |;YES - o|ne InDos|
|00003600| 20 65 6e 74 72 79 20 6f | 6e 6c 79 3f 0d 0a 09 09 | entry o|nly?....|
|00003610| 6a 61 09 4e 6f 74 53 61 | 66 65 09 09 09 3b 4e 4f |ja.NotSa|fe...;NO|
|00003620| 20 2d 20 6a 75 6d 70 20 | 69 66 20 6d 6f 72 65 20 | - jump |if more |
|00003630| 74 68 61 6e 20 6f 6e 65 | 0d 0a 44 6f 73 53 61 66 |than one|..DosSaf|
|00003640| 65 3a 0d 0a 0d 0a 3b 20 | 2d 2d 2d 2d 2d 2d 2d 2d |e:....; |--------|
|00003650| 2d 2d 2d 2d 09 43 48 45 | 43 4b 20 54 4f 20 53 45 |----.CHE|CK TO SE|
|00003660| 45 20 49 46 20 41 20 50 | 52 49 4e 54 20 53 43 52 |E IF A P|RINT SCR|
|00003670| 45 45 4e 20 49 53 20 49 | 4e 20 50 52 4f 47 52 45 |EEN IS I|N PROGRE|
|00003680| 53 53 0d 0a 0d 0a 09 09 | 6d 6f 76 09 61 78 2c 42 |SS......|mov.ax,B|
|00003690| 69 6f 73 58 58 0d 0a 09 | 09 6d 6f 76 09 64 73 2c |iosXX...|.mov.ds,|
|000036a0| 61 78 09 09 09 3b 6d 6f | 76 65 20 44 53 20 74 6f |ax...;mo|ve DS to|
|000036b0| 20 42 49 4f 53 20 65 78 | 74 72 61 20 64 61 74 61 | BIOS ex|tra data|
|000036c0| 20 73 65 67 0d 0a 09 09 | 61 73 73 75 6d 65 09 64 | seg....|assume.d|
|000036d0| 73 3a 42 69 6f 73 58 58 | 0d 0a 0d 0a 09 09 63 6d |s:BiosXX|......cm|
|000036e0| 70 09 53 74 61 74 75 73 | 42 79 74 65 2c 49 6e 50 |p.Status|Byte,InP|
|000036f0| 72 74 53 63 09 3b 70 72 | 69 6e 74 20 73 63 72 65 |rtSc.;pr|int scre|
|00003700| 65 6e 20 69 6e 20 70 72 | 6f 67 72 65 73 73 3f 0d |en in pr|ogress?.|
|00003710| 0a 09 09 6a 65 09 4e 6f | 74 53 61 66 65 09 09 09 |...je.No|tSafe...|
|00003720| 3b 59 45 53 20 2d 20 6a | 75 6d 70 20 69 66 20 70 |;YES - j|ump if p|
|00003730| 72 74 73 63 0d 0a 0d 0a | 3b 20 2d 2d 2d 2d 2d 2d |rtsc....|; ------|
|00003740| 2d 2d 2d 2d 2d 2d 09 53 | 45 45 4d 53 20 54 4f 20 |------.S|EEMS TO |
|00003750| 42 45 20 41 20 53 41 46 | 45 20 54 49 4d 45 20 46 |BE A SAF|E TIME F|
|00003760| 4f 52 20 50 4f 50 55 50 | 0d 0a 0d 0a 49 73 53 61 |OR POPUP|....IsSa|
|00003770| 66 65 3a 09 09 63 6c 63 | 09 09 09 09 3b 43 4c 43 |fe:..clc|....;CLC|
|00003780| 3d 73 61 66 65 20 74 6f | 20 70 6f 70 75 70 0d 0a |=safe to| popup..|
|00003790| 09 09 6a 6d 70 09 73 68 | 6f 72 74 20 45 78 69 74 |..jmp.sh|ort Exit|
|000037a0| 53 61 66 65 09 09 3b 65 | 6e 64 20 74 68 69 73 20 |Safe..;e|nd this |
|000037b0| 74 68 65 6e 0d 0a 0d 0a | 3b 20 2d 2d 2d 2d 2d 2d |then....|; ------|
|000037c0| 2d 2d 2d 2d 2d 2d 09 41 | 50 50 41 52 45 4e 54 4c |------.A|PPARENTL|
|000037d0| 59 20 54 48 49 53 20 49 | 53 20 4a 55 53 54 20 4e |Y THIS I|S JUST N|
|000037e0| 4f 54 20 54 48 45 20 54 | 49 4d 45 20 54 4f 20 44 |OT THE T|IME TO D|
|000037f0| 4f 20 41 20 50 4f 50 55 | 50 0d 0a 0d 0a 4e 6f 74 |O A POPU|P....Not|
|00003800| 53 61 66 65 3a 09 73 74 | 63 09 09 09 09 3b 43 59 |Safe:.st|c....;CY|
|00003810| 3d 64 6f 6e 27 74 20 70 | 6f 70 75 70 20 6e 6f 77 |=don't p|opup now|
|00003820| 0d 0a 0d 0a 3b 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |....; --|--------|
|00003830| 2d 2d 09 52 45 54 55 52 | 4e 20 54 4f 20 43 41 4c |--.RETUR|N TO CAL|
|00003840| 4c 45 52 20 57 49 54 48 | 20 43 41 52 52 59 20 53 |LER WITH| CARRY S|
|00003850| 45 54 2f 43 4c 45 41 52 | 0d 0a 0d 0a 45 78 69 74 |ET/CLEAR|....Exit|
|00003860| 53 61 66 65 3a 09 70 6f | 70 09 64 73 09 09 09 3b |Safe:.po|p.ds...;|
|00003870| 72 65 73 74 6f 72 65 20 | 72 65 67 73 0d 0a 09 09 |restore |regs....|
|00003880| 70 6f 70 09 62 78 0d 0a | 09 09 70 6f 70 09 61 78 |pop.bx..|..pop.ax|
|00003890| 0d 0a 09 09 72 65 74 0d | 0a 54 65 73 74 53 61 66 |....ret.|.TestSaf|
|000038a0| 65 09 65 6e 64 70 0d 0a | 0d 0a 3b 3d 3d 3d 3d 3d |e.endp..|..;=====|
|000038b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000038c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000038d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000038e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000038f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 3b 20 4f 75 72 |========|=..; Our|
|00003900| 49 6e 74 30 38 20 2d 20 | 54 53 52 20 49 4e 54 30 |Int08 - |TSR INT0|
|00003910| 38 48 20 48 41 4e 44 4c | 45 52 20 54 4f 20 57 41 |8H HANDL|ER TO WA|
|00003920| 54 43 48 20 46 4f 52 20 | 48 4f 54 4b 45 59 20 41 |TCH FOR |HOTKEY A|
|00003930| 4e 44 20 53 41 46 45 20 | 50 4f 50 55 50 20 54 49 |ND SAFE |POPUP TI|
|00003940| 4d 45 53 0d 0a 3b 0d 0a | 3b 20 43 41 4c 4c 20 4f |MES..;..|; CALL O|
|00003950| 6c 64 49 6e 74 30 38 0d | 0a 3b 20 43 48 45 43 4b |ldInt08.|.; CHECK|
|00003960| 20 46 4f 52 20 52 45 2d | 45 4e 54 52 41 4e 43 45 | FOR RE-|ENTRANCE|
|00003970| 20 49 4e 54 4f 20 43 52 | 49 54 49 43 41 4c 20 49 | INTO CR|ITICAL I|
|00003980| 4e 54 30 38 20 43 4f 44 | 45 0d 0a 3b 20 53 45 54 |NT08 COD|E..; SET|
|00003990| 20 49 6e 49 6e 74 30 38 | 20 46 4c 41 47 0d 0a 3b | InInt08| FLAG..;|
|000039a0| 20 43 48 45 43 4b 20 46 | 4f 52 20 54 49 4d 45 4f | CHECK F|OR TIMEO|
|000039b0| 55 54 20 42 45 54 57 45 | 45 4e 20 4b 45 59 53 20 |UT BETWE|EN KEYS |
|000039c0| 49 4e 20 48 4f 54 4b 45 | 59 20 53 45 51 55 45 4e |IN HOTKE|Y SEQUEN|
|000039d0| 43 45 0d 0a 3b 20 43 48 | 45 43 4b 20 49 46 20 48 |CE..; CH|ECK IF H|
|000039e0| 4f 54 4b 45 59 20 57 41 | 53 20 50 52 45 53 53 45 |OTKEY WA|S PRESSE|
|000039f0| 44 0d 0a 3b 20 43 48 45 | 43 4b 20 49 46 20 41 4c |D..; CHE|CK IF AL|
|00003a00| 52 45 41 44 59 20 49 6e | 50 6f 70 75 70 20 4f 52 |READY In|Popup OR|
|00003a10| 20 49 6e 49 6e 74 32 38 | 0d 0a 3b 20 43 48 45 43 | InInt28|..; CHEC|
|00003a20| 4b 20 49 46 20 53 41 46 | 45 20 54 49 4d 45 20 46 |K IF SAF|E TIME F|
|00003a30| 4f 52 20 53 59 53 54 45 | 4d 20 54 4f 20 50 4f 50 |OR SYSTE|M TO POP|
|00003a40| 55 50 0d 0a 3b 20 55 50 | 44 41 54 45 20 46 4c 41 |UP..; UP|DATE FLA|
|00003a50| 47 53 20 41 4e 44 20 43 | 41 4c 4c 20 50 4f 50 55 |GS AND C|ALL POPU|
|00003a60| 50 20 49 46 20 53 41 46 | 45 0d 0a 3b 20 47 49 56 |P IF SAF|E..; GIV|
|00003a70| 45 20 45 52 52 4f 52 20 | 42 45 45 50 20 49 46 20 |E ERROR |BEEP IF |
|00003a80| 50 4f 50 55 50 20 57 41 | 53 20 55 4e 53 41 46 45 |POPUP WA|S UNSAFE|
|00003a90| 20 46 4f 52 20 41 20 4c | 4f 4e 47 20 54 49 4d 45 | FOR A L|ONG TIME|
|00003aa0| 0d 0a 3b 20 52 45 53 45 | 54 20 49 6e 49 6e 74 30 |..; RESE|T InInt0|
|00003ab0| 38 20 46 4c 41 47 0d 0a | 3b 20 44 4f 20 49 52 45 |8 FLAG..|; DO IRE|
|00003ac0| 54 0d 0a 3b 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |T..;====|========|
|00003ad0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003ae0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003af0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003b00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003b10| 3d 3d 0d 0a 0d 0a 3b 20 | 2d 2d 2d 2d 2d 2d 2d 2d |==....; |--------|
|00003b20| 2d 2d 2d 2d 09 4e 45 41 | 52 20 4a 55 4d 50 20 44 |----.NEA|R JUMP D|
|00003b30| 45 53 54 49 4e 41 54 49 | 4f 4e 20 46 4f 52 20 46 |ESTINATI|ON FOR F|
|00003b40| 41 53 54 20 49 52 45 54 | 27 53 0d 0a 0d 0a 45 78 |AST IRET|'S....Ex|
|00003b50| 69 74 30 38 3a 09 09 69 | 72 65 74 09 09 09 09 3b |it08:..i|ret....;|
|00003b60| 49 52 45 54 20 28 21 29 | 0d 0a 0d 0a 3b 20 2d 2d |IRET (!)|....; --|
|00003b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 09 41 43 54 55 41 |--------|--.ACTUA|
|00003b80| 4c 20 49 4e 54 30 38 20 | 45 4e 54 52 59 20 50 4f |L INT08 |ENTRY PO|
|00003b90| 49 4e 54 0d 0a 0d 0a 4f | 75 72 49 6e 74 30 38 09 |INT....O|urInt08.|
|00003ba0| 70 72 6f 63 09 66 61 72 | 0d 0a 09 09 61 73 73 75 |proc.far|....assu|
|00003bb0| 6d 65 09 64 73 3a 6e 6f | 74 68 69 6e 67 2c 20 65 |me.ds:no|thing, e|
|00003bc0| 73 3a 6e 6f 74 68 69 6e | 67 2c 20 73 73 3a 6e 6f |s:nothin|g, ss:no|
|00003bd0| 74 68 69 6e 67 0d 0a 0d | 0a 09 09 70 75 73 68 66 |thing...|...pushf|
|00003be0| 09 09 09 09 3b 73 69 6d | 75 6c 61 74 65 20 49 4e |....;sim|ulate IN|
|00003bf0| 54 30 38 0d 0a 09 09 63 | 6c 69 09 09 09 09 3b 69 |T08....c|li....;i|
|00003c00| 6e 20 63 61 73 65 20 6f | 74 68 65 72 73 20 66 6f |n case o|thers fo|
|00003c10| 72 67 6f 74 20 69 74 0d | 0a 09 09 63 61 6c 6c 09 |rgot it.|...call.|
|00003c20| 4f 6c 64 49 6e 74 30 38 | 09 09 3b 63 61 6c 6c 20 |OldInt08|..;call |
|00003c30| 54 53 52 73 20 6c 6f 61 | 64 65 64 20 62 65 66 6f |TSRs loa|ded befo|
|00003c40| 72 65 20 75 73 0d 0a 0d | 0a 3b 20 2d 2d 2d 2d 2d |re us...|.; -----|
|00003c50| 2d 2d 2d 2d 2d 2d 2d 09 | 45 4e 53 55 52 45 20 4e |-------.|ENSURE N|
|00003c60| 4f 20 52 45 43 55 52 53 | 49 4f 4e 20 49 4e 54 4f |O RECURS|ION INTO|
|00003c70| 20 43 52 49 54 49 43 41 | 4c 20 49 4e 54 30 38 20 | CRITICA|L INT08 |
|00003c80| 43 4f 44 45 0d 0a 0d 0a | 09 09 73 74 69 09 09 09 |CODE....|..sti...|
|00003c90| 09 3b 77 65 27 6c 6c 20 | 6d 61 6e 61 67 65 20 49 |.;we'll |manage I|
|00003ca0| 4e 54 73 0d 0a 0d 0a 09 | 09 74 65 73 74 09 54 73 |NTs.....|.test.Ts|
|00003cb0| 72 4d 6f 64 65 2c 49 6e | 49 6e 74 30 38 09 09 3b |rMode,In|Int08..;|
|00003cc0| 61 6c 72 65 61 64 79 20 | 69 6e 20 68 65 72 65 20 |already |in here |
|00003cd0| 73 6f 6d 65 77 68 65 72 | 65 3f 0d 0a 09 09 6a 6e |somewher|e?....jn|
|00003ce0| 7a 09 45 78 69 74 30 38 | 09 09 09 3b 59 45 53 20 |z.Exit08|...;YES |
|00003cf0| 2d 20 64 6f 6e 27 74 20 | 72 65 2d 65 6e 74 65 72 |- don't |re-enter|
|00003d00| 0d 0a 09 09 6f 72 09 54 | 73 72 4d 6f 64 65 2c 49 |....or.T|srMode,I|
|00003d10| 6e 49 6e 74 30 38 09 09 | 3b 74 65 6c 6c 20 70 65 |nInt08..|;tell pe|
|00003d20| 6f 70 6c 65 20 77 65 20 | 61 72 65 20 68 65 72 65 |ople we |are here|
|00003d30| 0d 0a 0d 0a 09 09 70 75 | 73 68 09 61 78 09 09 09 |......pu|sh.ax...|
|00003d40| 3b 6e 65 65 64 20 61 20 | 66 65 77 20 72 65 67 73 |;need a |few regs|
|00003d50| 20 69 6e 20 74 68 69 73 | 20 63 6f 64 65 0d 0a 0d | in this| code...|
|00003d60| 0a 3b 20 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 09 |.; -----|-------.|
|00003d70| 43 4f 55 4e 54 20 44 4f | 57 4e 20 54 49 4d 45 2d |COUNT DO|WN TIME-|
|00003d80| 4f 55 54 20 42 45 54 57 | 45 45 4e 20 4b 45 59 53 |OUT BETW|EEN KEYS|
|00003d90| 20 49 4e 20 48 4f 54 4b | 45 59 20 53 45 51 55 45 | IN HOTK|EY SEQUE|
|00003da0| 4e 43 45 0d 0a 0d 0a 09 | 09 74 65 73 74 09 4b 65 |NCE.....|.test.Ke|
|00003db0| 79 4d 6f 64 65 2c 49 6e | 48 6f 74 4d 61 74 63 68 |yMode,In|HotMatch|
|00003dc0| 09 3b 61 72 65 20 77 65 | 20 69 6e 20 61 20 6b 65 |.;are we| in a ke|
|00003dd0| 79 20 6d 61 74 63 68 3f | 0d 0a 09 09 6a 7a 09 54 |y match?|....jz.T|
|00003de0| 65 73 74 48 6f 74 30 38 | 09 09 3b 4e 4f 20 2d 20 |estHot08|..;NO - |
|00003df0| 64 6f 6e 27 74 20 63 61 | 72 65 20 74 68 65 6e 0d |don't ca|re then.|
|00003e00| 0a 09 09 64 65 63 09 42 | 65 74 77 65 65 6e 4b 65 |...dec.B|etweenKe|
|00003e10| 79 73 09 09 3b 63 6f 75 | 6e 74 20 64 6f 77 6e 20 |ys..;cou|nt down |
|00003e20| 74 69 6d 65 6f 75 74 20 | 76 61 6c 0d 0a 09 09 6a |timeout |val....j|
|00003e30| 6e 7a 09 54 65 73 74 48 | 6f 74 30 38 09 09 3b 6a |nz.TestH|ot08..;j|
|00003e40| 75 6d 70 20 69 66 20 6e | 6f 20 74 69 6d 65 6f 75 |ump if n|o timeou|
|00003e50| 74 20 79 65 74 0d 0a 09 | 09 6d 6f 76 09 48 6f 74 |t yet...|.mov.Hot|
|00003e60| 49 6e 64 65 78 2c 30 09 | 09 3b 73 74 61 72 74 20 |Index,0.|.;start |
|00003e70| 6d 61 74 63 68 20 66 72 | 6f 6d 20 62 65 67 69 6e |match fr|om begin|
|00003e80| 6e 69 6e 67 0d 0a 09 09 | 61 6e 64 09 4b 65 79 4d |ning....|and.KeyM|
|00003e90| 6f 64 65 2c 6e 6f 74 20 | 49 6e 48 6f 74 4d 61 74 |ode,not |InHotMat|
|00003ea0| 63 68 09 3b 6a 75 73 74 | 20 73 6f 20 77 65 20 6b |ch.;just| so we k|
|00003eb0| 6e 6f 77 20 69 74 20 6e | 65 78 74 20 74 69 6d 65 |now it n|ext time|
|00003ec0| 0d 0a 0d 0a 3b 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |....; --|--------|
|00003ed0| 2d 2d 09 43 48 45 43 4b | 20 46 4f 52 20 50 4f 53 |--.CHECK| FOR POS|
|00003ee0| 53 49 42 4c 45 20 50 4f | 50 55 50 20 41 43 54 49 |SIBLE PO|PUP ACTI|
|00003ef0| 4f 4e 53 0d 0a 0d 0a 54 | 65 73 74 48 6f 74 30 38 |ONS....T|estHot08|
|00003f00| 3a 09 74 65 73 74 09 4b | 65 79 4d 6f 64 65 2c 48 |:.test.K|eyMode,H|
|00003f10| 6f 74 4b 65 79 4f 6e 09 | 3b 68 61 73 20 68 6f 74 |otKeyOn.|;has hot|
|00003f20| 6b 65 79 20 62 65 65 6e | 20 70 72 65 73 73 65 64 |key been| pressed|
|00003f30| 3f 0d 0a 09 09 6a 7a 09 | 45 78 69 74 49 6e 74 30 |?....jz.|ExitInt0|
|00003f40| 38 09 09 3b 4e 4f 20 2d | 20 6a 75 6d 70 20 69 66 |8..;NO -| jump if|
|00003f50| 20 6e 6f 20 66 75 6e 20 | 68 65 72 65 0d 0a 0d 0a | no fun |here....|
|00003f60| 09 09 74 65 73 74 09 54 | 73 72 4d 6f 64 65 2c 49 |..test.T|srMode,I|
|00003f70| 6e 49 6e 74 32 38 20 4f | 52 20 49 6e 50 6f 70 75 |nInt28 O|R InPopu|
|00003f80| 70 0d 0a 09 09 6a 6e 7a | 09 45 78 69 74 49 6e 74 |p....jnz|.ExitInt|
|00003f90| 30 38 09 09 3b 6a 6d 70 | 20 69 66 20 6e 6f 74 20 |08..;jmp| if not |
|00003fa0| 61 6c 72 20 69 6e 20 62 | 75 73 69 6e 65 73 73 0d |alr in b|usiness.|
|00003fb0| 0a 0d 0a 3b 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...; ---|--------|
|00003fc0| 2d 09 48 4f 54 4b 45 59 | 20 50 52 45 53 53 45 44 |-.HOTKEY| PRESSED|
|00003fd0| 2c 20 43 48 45 43 4b 20 | 54 4f 20 53 45 45 20 49 |, CHECK |TO SEE I|
|00003fe0| 46 20 49 54 20 49 53 20 | 53 41 46 45 20 54 4f 20 |F IT IS |SAFE TO |
|00003ff0| 50 4f 50 55 50 0d 0a 0d | 0a 09 09 63 6d 70 09 53 |POPUP...|...cmp.S|
|00004000| 61 66 65 57 61 69 74 2c | 30 09 09 3b 66 69 72 73 |afeWait,|0..;firs|
|00004010| 74 20 74 69 6d 65 20 77 | 65 20 66 69 6e 64 20 68 |t time w|e find h|
|00004020| 6f 74 6b 65 79 3f 0d 0a | 09 09 6a 61 09 54 65 73 |otkey?..|..ja.Tes|
|00004030| 74 53 61 66 65 30 38 09 | 09 3b 4e 4f 20 2d 20 77 |tSafe08.|.;NO - w|
|00004040| 61 69 74 20 68 61 73 20 | 61 6c 72 20 62 65 65 6e |ait has |alr been|
|00004050| 20 73 65 74 0d 0a 09 09 | 6d 6f 76 09 53 61 66 65 | set....|mov.Safe|
|00004060| 57 61 69 74 2c 4d 61 78 | 57 61 69 74 09 3b 23 20 |Wait,Max|Wait.;# |
|00004070| 74 69 63 6b 73 20 74 6f | 20 77 61 69 74 20 61 74 |ticks to| wait at|
|00004080| 20 6d 6f 73 74 0d 0a 0d | 0a 54 65 73 74 53 61 66 | most...|.TestSaf|
|00004090| 65 30 38 3a 09 63 61 6c | 6c 09 54 65 73 74 53 61 |e08:.cal|l.TestSa|
|000040a0| 66 65 09 09 3b 6e 6f 77 | 2c 20 43 59 20 63 6c 65 |fe..;now|, CY cle|
|000040b0| 61 72 20 69 66 20 70 6f | 70 75 70 20 69 73 20 73 |ar if po|pup is s|
|000040c0| 61 66 65 0d 0a 09 09 6a | 63 09 4e 6f 74 53 61 66 |afe....j|c.NotSaf|
|000040d0| 65 30 38 09 09 3b 6a 75 | 6d 70 20 69 66 20 70 6f |e08..;ju|mp if po|
|000040e0| 70 75 70 20 69 73 20 62 | 61 64 20 69 64 65 61 0d |pup is b|ad idea.|
|000040f0| 0a 0d 0a 3b 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...; ---|--------|
|00004100| 2d 09 53 45 45 4d 53 20 | 53 41 46 45 20 54 4f 20 |-.SEEMS |SAFE TO |
|00004110| 50 4f 50 55 50 20 41 54 | 20 54 48 49 53 20 54 49 |POPUP AT| THIS TI|
|00004120| 4d 45 2c 20 53 4f 20 44 | 4f 21 0d 0a 0d 0a 09 09 |ME, SO D|O!......|
|00004130| 78 6f 72 09 61 6c 2c 61 | 6c 09 09 09 3b 66 61 73 |xor.al,a|l...;fas|
|00004140| 74 20 7a 65 72 6f 0d 0a | 09 09 6d 6f 76 09 53 61 |t zero..|..mov.Sa|
|00004150| 66 65 57 61 69 74 2c 61 | 6c 09 09 3b 64 6f 6e 27 |feWait,a|l..;don'|
|00004160| 74 20 63 6f 75 6e 74 20 | 61 6e 79 20 6d 6f 72 65 |t count |any more|
|00004170| 0d 0a 09 09 61 6e 64 09 | 4b 65 79 4d 6f 64 65 2c |....and.|KeyMode,|
|00004180| 6e 6f 74 20 48 6f 74 4b | 65 79 4f 6e 09 3b 63 6c |not HotK|eyOn.;cl|
|00004190| 65 61 72 20 68 6f 74 6b | 65 79 20 73 74 61 74 75 |ear hotk|ey statu|
|000041a0| 73 0d 0a 09 09 6f 72 09 | 54 73 72 4d 6f 64 65 2c |s....or.|TsrMode,|
|000041b0| 49 6e 50 6f 70 75 70 09 | 09 3b 74 65 6c 6c 27 65 |InPopup.|.;tell'e|
|000041c0| 6d 20 77 65 20 65 6e 74 | 65 72 20 70 6f 70 75 70 |m we ent|er popup|
|000041d0| 20 72 6f 75 74 69 6e 65 | 0d 0a 09 09 61 6e 64 09 | routine|....and.|
|000041e0| 54 73 72 4d 6f 64 65 2c | 6e 6f 74 20 49 6e 49 6e |TsrMode,|not InIn|
|000041f0| 74 30 38 09 3b 4f 4b 20 | 74 6f 20 65 6e 74 65 72 |t08.;OK |to enter|
|00004200| 20 63 72 69 74 69 63 61 | 6c 20 49 4e 54 30 38 0d | critica|l INT08.|
|00004210| 0a 09 09 63 61 6c 6c 09 | 49 6e 69 74 50 6f 70 75 |...call.|InitPopu|
|00004220| 70 09 09 3b 64 6f 20 61 | 63 74 75 61 6c 20 70 6f |p..;do a|ctual po|
|00004230| 70 75 70 0d 0a 09 09 6f | 72 09 54 73 72 4d 6f 64 |pup....o|r.TsrMod|
|00004240| 65 2c 49 6e 49 6e 74 30 | 38 09 09 3b 62 61 63 6b |e,InInt0|8..;back|
|00004250| 20 69 6e 20 49 4e 54 30 | 38 20 63 6f 64 65 20 68 | in INT0|8 code h|
|00004260| 65 72 65 0d 0a 09 09 61 | 6e 64 09 54 73 72 4d 6f |ere....a|nd.TsrMo|
|00004270| 64 65 2c 6e 6f 74 20 49 | 6e 50 6f 70 75 70 09 3b |de,not I|nPopup.;|
|00004280| 6e 6f 74 20 69 6e 20 70 | 6f 70 75 70 20 63 6f 64 |not in p|opup cod|
|00004290| 65 20 61 6e 79 20 6d 6f | 72 65 0d 0a 09 09 6d 6f |e any mo|re....mo|
|000042a0| 76 09 53 61 66 65 57 61 | 69 74 2c 61 6c 09 09 3b |v.SafeWa|it,al..;|
|000042b0| 69 6e 20 63 61 73 65 20 | 6f 66 20 68 6f 74 6b 65 |in case |of hotke|
|000042c0| 79 20 64 75 72 69 6e 67 | 20 70 6f 70 75 70 0d 0a |y during| popup..|
|000042d0| 09 09 61 6e 64 09 4b 65 | 79 4d 6f 64 65 2c 6e 6f |..and.Ke|yMode,no|
|000042e0| 74 20 48 6f 74 4b 65 79 | 4f 6e 09 3b 63 6c 65 61 |t HotKey|On.;clea|
|000042f0| 72 20 68 6f 74 6b 65 79 | 20 73 74 61 74 75 73 0d |r hotkey| status.|
|00004300| 0a 0d 0a 09 09 6a 6d 70 | 09 73 68 6f 72 74 20 45 |.....jmp|.short E|
|00004310| 78 69 74 49 6e 74 30 38 | 09 09 3b 66 69 6e 61 6c |xitInt08|..;final|
|00004320| 6c 79 20 64 6f 6e 65 0d | 0a 0d 0a 3b 20 2d 2d 2d |ly done.|...; ---|
|00004330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 09 55 4e 53 41 46 45 |--------|-.UNSAFE|
|00004340| 20 50 4f 50 55 50 20 54 | 49 4d 45 2c 20 43 4f 55 | POPUP T|IME, COU|
|00004350| 4e 54 20 44 4f 57 4e 20 | 53 61 66 65 57 61 69 74 |NT DOWN |SafeWait|
|00004360| 0d 0a 0d 0a 4e 6f 74 53 | 61 66 65 30 38 3a 09 64 |....NotS|afe08:.d|
|00004370| 65 63 09 53 61 66 65 57 | 61 69 74 09 09 3b 63 6f |ec.SafeW|ait..;co|
|00004380| 75 6e 74 20 64 6f 77 6e | 20 77 61 69 74 65 72 0d |unt down| waiter.|
|00004390| 0a 09 09 6a 6e 7a 09 45 | 78 69 74 49 6e 74 30 38 |...jnz.E|xitInt08|
|000043a0| 20 09 09 3b 6a 75 6d 70 | 20 69 66 20 73 74 69 6c | ..;jump| if stil|
|000043b0| 6c 20 6e 6f 20 74 69 6d | 65 6f 75 74 0d 0a 0d 0a |l no tim|eout....|
|000043c0| 3b 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 09 4e |; ------|------.N|
|000043d0| 4f 20 53 41 46 45 20 54 | 49 4d 45 53 20 46 4f 55 |O SAFE T|IMES FOU|
|000043e0| 4e 44 20 46 4f 52 20 51 | 55 49 54 45 20 53 4f 4d |ND FOR Q|UITE SOM|
|000043f0| 45 20 54 49 4d 45 2c 20 | 45 52 52 4f 52 0d 0a 0d |E TIME, |ERROR...|
|00004400| 0a 09 09 61 6e 64 09 4b | 65 79 4d 6f 64 65 2c 6e |...and.K|eyMode,n|
|00004410| 6f 74 20 48 6f 74 4b 65 | 79 4f 6e 09 3b 6d 69 67 |ot HotKe|yOn.;mig|
|00004420| 68 74 20 61 73 20 77 65 | 6c 6c 20 63 6c 65 61 72 |ht as we|ll clear|
|00004430| 20 68 6f 74 6b 65 79 0d | 0a 09 09 63 61 6c 6c 09 | hotkey.|...call.|
|00004440| 45 72 72 42 65 65 70 09 | 09 09 3b 64 6f 20 61 6e |ErrBeep.|..;do an|
|00004450| 20 65 72 72 6f 72 20 62 | 65 65 70 0d 0a 0d 0a 3b | error b|eep....;|
|00004460| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 09 4e 4f | -------|-----.NO|
|00004470| 52 4d 41 4c 20 49 4e 54 | 30 38 48 20 45 58 49 54 |RMAL INT|08H EXIT|
|00004480| 2c 20 52 45 53 45 54 20 | 49 6e 49 6e 74 30 38 0d |, RESET |InInt08.|
|00004490| 0a 0d 0a 45 78 69 74 49 | 6e 74 30 38 3a 09 70 6f |...ExitI|nt08:.po|
|000044a0| 70 09 61 78 09 09 09 3b | 72 65 73 74 6f 72 65 20 |p.ax...;|restore |
|000044b0| 72 65 67 73 20 75 73 65 | 64 0d 0a 09 09 61 6e 64 |regs use|d....and|
|000044c0| 09 54 73 72 4d 6f 64 65 | 2c 6e 6f 74 20 49 6e 49 |.TsrMode|,not InI|
|000044d0| 6e 74 30 38 09 3b 63 6c | 65 61 72 20 74 68 61 74 |nt08.;cl|ear that|
|000044e0| 20 66 6c 61 67 0d 0a 09 | 09 69 72 65 74 09 09 09 | flag...|.iret...|
|000044f0| 09 3b 73 74 72 61 69 67 | 68 74 20 62 61 63 6b 0d |.;straig|ht back.|
|00004500| 0a 4f 75 72 49 6e 74 30 | 38 09 65 6e 64 70 0d 0a |.OurInt0|8.endp..|
|00004510| 0d 0a 3b 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..;=====|========|
|00004520| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004530| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004540| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004550| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004560| 3d 0d 0a 3b 20 4f 75 72 | 49 6e 74 30 39 20 2d 20 |=..; Our|Int09 - |
|00004570| 54 53 52 20 49 4e 54 30 | 39 48 20 48 41 4e 44 4c |TSR INT0|9H HANDL|
|00004580| 45 52 20 54 4f 20 57 41 | 54 43 48 20 46 4f 52 20 |ER TO WA|TCH FOR |
|00004590| 48 4f 54 4b 45 59 0d 0a | 3b 0d 0a 3b 20 53 41 56 |HOTKEY..|;..; SAV|
|000045a0| 45 20 53 43 41 4e 20 43 | 4f 44 45 0d 0a 3b 20 43 |E SCAN C|ODE..; C|
|000045b0| 41 4c 4c 20 4f 6c 64 49 | 6e 74 30 39 0d 0a 3b 20 |ALL OldI|nt09..; |
|000045c0| 43 48 45 43 4b 20 46 4f | 52 20 52 45 43 55 52 53 |CHECK FO|R RECURS|
|000045d0| 49 4f 4e 20 49 4e 54 4f | 20 43 52 49 54 49 43 41 |ION INTO| CRITICA|
|000045e0| 4c 20 49 4e 54 30 39 20 | 43 4f 44 45 0d 0a 3b 20 |L INT09 |CODE..; |
|000045f0| 53 45 54 20 49 6e 49 6e | 74 30 39 20 46 4c 41 47 |SET InIn|t09 FLAG|
|00004600| 0d 0a 3b 20 43 48 45 43 | 4b 20 49 46 20 48 4f 54 |..; CHEC|K IF HOT|
|00004610| 4b 45 59 20 41 4c 52 45 | 41 44 59 20 53 45 54 0d |KEY ALRE|ADY SET.|
|00004620| 0a 3b 20 44 45 54 45 52 | 4d 49 4e 45 20 48 4f 54 |.; DETER|MINE HOT|
|00004630| 4b 45 59 20 54 59 50 45 | 20 28 53 48 49 46 54 20 |KEY TYPE| (SHIFT |
|00004640| 53 54 41 54 45 20 4f 52 | 20 4b 45 59 20 53 45 51 |STATE OR| KEY SEQ|
|00004650| 45 4e 43 45 29 0d 0a 3b | 20 43 48 45 43 4b 20 53 |ENCE)..;| CHECK S|
|00004660| 48 49 46 54 20 53 54 41 | 54 45 20 49 46 20 48 6f |HIFT STA|TE IF Ho|
|00004670| 74 49 73 53 68 69 66 74 | 0d 0a 3b 20 43 4f 4d 50 |tIsShift|..; COMP|
|00004680| 41 52 45 20 46 4f 52 20 | 4b 45 59 20 4d 41 54 43 |ARE FOR |KEY MATC|
|00004690| 48 20 49 46 20 28 4e 4f | 54 20 48 6f 74 49 73 53 |H IF (NO|T HotIsS|
|000046a0| 68 69 66 74 29 0d 0a 3b | 20 53 45 54 20 48 6f 74 |hift)..;| SET Hot|
|000046b0| 4b 65 79 4f 6e 20 49 46 | 20 48 4f 54 4b 45 59 20 |KeyOn IF| HOTKEY |
|000046c0| 50 52 45 53 53 45 44 0d | 0a 3b 20 52 45 53 45 54 |PRESSED.|.; RESET|
|000046d0| 20 49 6e 49 6e 74 30 39 | 20 46 4c 41 47 0d 0a 3b | InInt09| FLAG..;|
|000046e0| 20 44 4f 20 49 52 45 54 | 0d 0a 3b 3d 3d 3d 3d 3d | DO IRET|..;=====|
|000046f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004700| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004710| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004720| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004730| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 0d 0a 3b 20 2d |========|=....; -|
|00004740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 09 4e 45 41 52 |--------|---.NEAR|
|00004750| 20 4a 55 4d 50 20 44 45 | 53 54 49 4e 41 54 49 4f | JUMP DE|STINATIO|
|00004760| 4e 20 46 4f 52 20 45 41 | 52 4c 59 20 45 58 49 54 |N FOR EA|RLY EXIT|
|00004770| 53 0d 0a 0d 0a 45 78 69 | 74 30 39 3a 09 09 70 6f |S....Exi|t09:..po|
|00004780| 70 09 62 78 09 09 09 3b | 72 65 73 74 6f 72 65 20 |p.bx...;|restore |
|00004790| 72 65 67 73 0d 0a 09 09 | 70 6f 70 09 61 78 0d 0a |regs....|pop.ax..|
|000047a0| 09 09 69 72 65 74 09 09 | 09 09 3b 66 6c 61 67 73 |..iret..|..;flags|
|000047b0| 20 72 65 73 74 6f 72 65 | 64 20 66 72 6f 6d 20 73 | restore|d from s|
|000047c0| 74 61 63 6b 0d 0a 0d 0a | 3b 20 2d 2d 2d 2d 2d 2d |tack....|; ------|
|000047d0| 2d 2d 2d 2d 2d 2d 09 41 | 43 54 55 41 4c 20 49 4e |------.A|CTUAL IN|
|000047e0| 54 30 39 20 45 4e 54 52 | 59 20 50 4f 49 4e 54 0d |T09 ENTR|Y POINT.|
|000047f0| 0a 0d 0a 4f 75 72 49 6e | 74 30 39 09 70 72 6f 63 |...OurIn|t09.proc|
|00004800| 09 66 61 72 0d 0a 09 09 | 61 73 73 75 6d 65 09 64 |.far....|assume.d|
|00004810| 73 3a 6e 6f 74 68 69 6e | 67 2c 20 65 73 3a 6e 6f |s:nothin|g, es:no|
|00004820| 74 68 69 6e 67 2c 20 73 | 73 3a 6e 6f 74 68 69 6e |thing, s|s:nothin|
|00004830| 67 0d 0a 0d 0a 09 09 70 | 75 73 68 09 61 78 09 09 |g......p|ush.ax..|
|00004840| 09 3b 73 61 76 65 20 72 | 65 67 73 20 75 73 65 64 |.;save r|egs used|
|00004850| 0d 0a 09 09 70 75 73 68 | 09 62 78 0d 0a 0d 0a 3b |....push|.bx....;|
|00004860| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 09 52 45 | -------|-----.RE|
|00004870| 41 44 20 53 43 41 4e 20 | 43 4f 44 45 2c 20 49 4e |AD SCAN |CODE, IN|
|00004880| 20 43 41 53 45 20 53 45 | 51 55 45 4e 43 45 20 4d | CASE SE|QUENCE M|
|00004890| 41 54 43 48 49 4e 47 20 | 53 45 4c 45 43 54 45 44 |ATCHING |SELECTED|
|000048a0| 0d 0a 0d 0a 09 09 69 6e | 09 61 6c 2c 4b 62 44 61 |......in|.al,KbDa|
|000048b0| 74 61 09 09 3b 41 6c 3d | 6b 65 79 2c 20 70 72 65 |ta..;Al=|key, pre|
|000048c0| 73 65 72 76 65 64 20 62 | 79 20 42 49 4f 53 0d 0a |served b|y BIOS..|
|000048d0| 0d 0a 3b 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..; ----|--------|
|000048e0| 09 43 41 4c 4c 20 42 49 | 4f 53 20 54 4f 20 50 45 |.CALL BI|OS TO PE|
|000048f0| 52 46 4f 52 4d 20 49 54 | 27 53 20 44 55 54 49 45 |RFORM IT|'S DUTIE|
|00004900| 53 0d 0a 0d 0a 09 09 70 | 75 73 68 66 09 09 09 09 |S......p|ushf....|
|00004910| 3b 73 69 6d 75 6c 61 74 | 65 20 49 4e 54 20 28 43 |;simulat|e INT (C|
|00004920| 4c 49 20 61 6c 72 20 73 | 65 74 29 0d 0a 09 09 63 |LI alr s|et)....c|
|00004930| 6c 69 09 09 09 09 3b 69 | 6e 20 63 61 73 65 20 6f |li....;i|n case o|
|00004940| 74 68 65 72 73 20 66 6f | 72 67 6f 74 20 69 74 0d |thers fo|rgot it.|
|00004950| 0a 09 09 63 61 6c 6c 09 | 4f 6c 64 49 6e 74 30 39 |...call.|OldInt09|
|00004960| 09 09 3b 63 61 6c 6c 20 | 42 49 4f 53 2f 65 61 72 |..;call |BIOS/ear|
|00004970| 6c 69 65 72 20 54 53 52 | 73 0d 0a 0d 0a 3b 20 2d |lier TSR|s....; -|
|00004980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 09 45 4e 53 55 |--------|---.ENSU|
|00004990| 52 45 20 4e 4f 20 52 45 | 43 55 52 53 49 4f 4e 20 |RE NO RE|CURSION |
|000049a0| 49 4e 54 4f 20 43 52 49 | 54 49 43 41 4c 20 49 4e |INTO CRI|TICAL IN|
|000049b0| 54 30 39 20 43 4f 44 45 | 0d 0a 0d 0a 09 09 73 74 |T09 CODE|......st|
|000049c0| 69 09 09 09 09 3b 77 65 | 27 6c 6c 20 6d 61 6e 61 |i....;we|'ll mana|
|000049d0| 67 65 20 49 4e 54 73 0d | 0a 0d 0a 09 09 74 65 73 |ge INTs.|.....tes|
|000049e0| 74 09 54 73 72 4d 6f 64 | 65 2c 49 6e 49 6e 74 30 |t.TsrMod|e,InInt0|
|000049f0| 39 09 09 3b 61 6c 72 20 | 69 6e 20 62 75 73 69 6e |9..;alr |in busin|
|00004a00| 65 73 73 3f 0d 0a 09 09 | 6a 6e 7a 09 45 78 69 74 |ess?....|jnz.Exit|
|00004a10| 30 39 09 09 09 3b 59 45 | 53 20 2d 20 73 6b 69 70 |09...;YE|S - skip|
|00004a20| 20 74 65 73 74 20 74 69 | 6c 6c 20 63 6c 65 61 72 | test ti|ll clear|
|00004a30| 0d 0a 09 09 6f 72 09 54 | 73 72 4d 6f 64 65 2c 49 |....or.T|srMode,I|
|00004a40| 6e 49 6e 74 30 39 09 09 | 3b 74 65 6c 6c 20 74 68 |nInt09..|;tell th|
|00004a50| 65 6d 20 77 65 20 61 72 | 72 69 76 65 64 20 68 65 |em we ar|rived he|
|00004a60| 72 65 0d 0a 0d 0a 3b 20 | 2d 2d 2d 2d 2d 2d 2d 2d |re....; |--------|
|00004a70| 2d 2d 2d 2d 09 44 45 54 | 45 52 4d 49 4e 45 20 48 |----.DET|ERMINE H|
|00004a80| 4f 54 20 4b 45 59 20 54 | 59 50 45 20 53 45 4c 45 |OT KEY T|YPE SELE|
|00004a90| 43 54 45 44 0d 0a 0d 0a | 09 09 74 65 73 74 09 4b |CTED....|..test.K|
|00004aa0| 65 79 4d 6f 64 65 2c 48 | 6f 74 4b 65 79 4f 6e 09 |eyMode,H|otKeyOn.|
|00004ab0| 3b 61 6c 72 65 61 64 79 | 20 68 6f 74 6b 65 79 20 |;already| hotkey |
|00004ac0| 74 68 65 72 65 3f 0d 0a | 09 09 6a 6e 7a 09 45 78 |there?..|..jnz.Ex|
|00004ad0| 69 74 49 6e 74 30 39 09 | 09 3b 59 45 53 20 2d 20 |itInt09.|.;YES - |
|00004ae0| 6e 6f 20 64 6f 75 62 6c | 65 20 68 6f 74 6b 65 79 |no doubl|e hotkey|
|00004af0| 73 20 68 65 72 65 0d 0a | 0d 0a 09 09 74 65 73 74 |s here..|....test|
|00004b00| 09 4b 65 79 4d 6f 64 65 | 2c 48 6f 74 49 73 53 68 |.KeyMode|,HotIsSh|
|00004b10| 69 66 74 09 3b 73 68 69 | 66 74 20 73 74 61 74 65 |ift.;shi|ft state|
|00004b20| 20 74 79 70 65 20 68 6f | 74 6b 65 79 3f 0d 0a 09 | type ho|tkey?...|
|00004b30| 09 6a 7a 09 43 6f 6d 70 | 53 65 71 30 39 09 09 3b |.jz.Comp|Seq09..;|
|00004b40| 4e 4f 20 2d 20 67 6f 20 | 63 6f 6d 70 61 72 65 20 |NO - go |compare |
|00004b50| 73 65 71 75 65 6e 63 65 | 0d 0a 0d 0a 3b 20 2d 2d |sequence|....; --|
|00004b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 09 43 4f 4d 50 41 |--------|--.COMPA|
|00004b70| 52 45 20 43 55 52 52 45 | 4e 54 20 53 48 49 46 54 |RE CURRE|NT SHIFT|
|00004b80| 20 53 54 41 54 55 53 20 | 41 47 41 49 4e 53 54 20 | STATUS |AGAINST |
|00004b90| 48 4f 54 4b 45 59 0d 0a | 0d 0a 09 09 70 75 73 68 |HOTKEY..|....push|
|00004ba0| 09 64 73 09 09 09 3b 73 | 61 76 65 20 63 75 72 72 |.ds...;s|ave curr|
|00004bb0| 65 6e 74 20 64 73 0d 0a | 09 09 6d 6f 76 09 61 78 |ent ds..|..mov.ax|
|00004bc0| 2c 42 69 6f 73 44 61 74 | 61 09 09 3b 6d 6f 76 65 |,BiosDat|a..;move|
|00004bd0| 20 44 53 20 74 6f 20 42 | 49 4f 53 20 64 61 74 61 | DS to B|IOS data|
|00004be0| 20 73 65 67 0d 0a 09 09 | 6d 6f 76 09 64 73 2c 61 | seg....|mov.ds,a|
|00004bf0| 78 09 09 09 3b 44 53 20 | 63 61 6e 20 6e 6f 77 20 |x...;DS |can now |
|00004c00| 61 63 63 65 73 73 20 6b | 65 79 62 20 76 61 72 73 |access k|eyb vars|
|00004c10| 0d 0a 09 09 61 73 73 75 | 6d 65 09 64 73 3a 42 69 |....assu|me.ds:Bi|
|00004c20| 6f 73 44 61 74 61 09 09 | 3b 74 65 6c 6c 20 4d 41 |osData..|;tell MA|
|00004c30| 53 4d 20 61 62 6f 75 74 | 20 6f 75 72 20 44 53 0d |SM about| our DS.|
|00004c40| 0a 09 09 6d 6f 76 09 61 | 6c 2c 4b 62 46 6c 61 67 |...mov.a|l,KbFlag|
|00004c50| 09 09 3b 67 65 74 20 42 | 49 4f 53 20 73 68 69 66 |..;get B|IOS shif|
|00004c60| 74 20 73 74 61 74 65 20 | 62 69 74 73 0d 0a 09 09 |t state |bits....|
|00004c70| 70 6f 70 09 64 73 09 09 | 09 3b 72 65 73 74 6f 72 |pop.ds..|.;restor|
|00004c80| 65 0d 0a 09 09 61 73 73 | 75 6d 65 09 64 73 3a 6e |e....ass|ume.ds:n|
|00004c90| 6f 74 68 69 6e 67 09 09 | 3b 6c 61 73 74 20 74 68 |othing..|;last th|
|00004ca0| 69 6e 67 20 77 65 20 6b | 6e 6f 77 20 61 62 6f 75 |ing we k|now abou|
|00004cb0| 74 20 68 69 6d 0d 0a 0d | 0a 09 09 61 6e 64 09 61 |t him...|...and.a|
|00004cc0| 6c 2c 48 6f 74 4b 65 79 | 53 68 69 66 74 09 09 3b |l,HotKey|Shift..;|
|00004cd0| 69 73 6f 6c 61 74 65 20 | 72 65 6c 65 76 61 6e 74 |isolate |relevant|
|00004ce0| 20 62 69 74 73 0d 0a 09 | 09 63 6d 70 09 61 6c 2c | bits...|.cmp.al,|
|00004cf0| 48 6f 74 4b 65 79 53 68 | 69 66 74 09 09 3b 6f 75 |HotKeySh|ift..;ou|
|00004d00| 72 20 73 68 69 66 74 20 | 73 74 61 74 65 20 69 6e |r shift |state in|
|00004d10| 20 65 66 66 65 63 74 3f | 0d 0a 09 09 6a 6e 65 09 | effect?|....jne.|
|00004d20| 45 78 69 74 49 6e 74 30 | 39 09 09 3b 4e 4f 20 2d |ExitInt0|9..;NO -|
|00004d30| 20 6e 6f 74 20 74 68 61 | 74 20 73 68 69 66 74 20 | not tha|t shift |
|00004d40| 73 74 61 74 65 0d 0a 09 | 09 6f 72 09 4b 65 79 4d |state...|.or.KeyM|
|00004d50| 6f 64 65 2c 48 6f 74 4b | 65 79 4f 6e 09 3b 59 45 |ode,HotK|eyOn.;YE|
|00004d60| 53 20 2d 20 66 6c 61 67 | 20 68 6f 74 6b 65 79 0d |S - flag| hotkey.|
|00004d70| 0a 09 09 6a 6d 70 09 73 | 68 6f 72 74 20 45 78 69 |...jmp.s|hort Exi|
|00004d80| 74 49 6e 74 30 39 09 09 | 3b 6e 6f 77 20 77 65 20 |tInt09..|;now we |
|00004d90| 63 61 6e 20 62 65 20 70 | 72 6f 75 64 20 74 6f 20 |can be p|roud to |
|00004da0| 6c 65 61 76 65 0d 0a 0d | 0a 3b 20 2d 2d 2d 2d 2d |leave...|.; -----|
|00004db0| 2d 2d 2d 2d 2d 2d 2d 09 | 4d 41 54 43 48 20 4b 45 |-------.|MATCH KE|
|00004dc0| 59 20 49 4e 20 53 43 41 | 4e 20 43 4f 44 45 20 53 |Y IN SCA|N CODE S|
|00004dd0| 45 51 55 45 4e 43 45 0d | 0a 0d 0a 43 6f 6d 70 53 |EQUENCE.|...CompS|
|00004de0| 65 71 30 39 3a 09 6d 6f | 76 09 62 6c 2c 48 6f 74 |eq09:.mo|v.bl,Hot|
|00004df0| 49 6e 64 65 78 09 09 3b | 6e 65 78 74 20 73 63 61 |Index..;|next sca|
|00004e00| 6e 20 63 6f 64 65 20 74 | 6f 20 6d 61 74 63 68 0d |n code t|o match.|
|00004e10| 0a 09 09 78 6f 72 09 62 | 68 2c 62 68 09 09 09 3b |...xor.b|h,bh...;|
|00004e20| 6d 75 73 74 20 62 65 20 | 77 6f 72 64 0d 0a 09 09 |must be |word....|
|00004e30| 63 6d 70 09 61 6c 2c 48 | 6f 74 4b 65 79 53 65 71 |cmp.al,H|otKeySeq|
|00004e40| 5b 62 78 5d 09 3b 64 6f | 65 73 20 6b 65 79 20 6d |[bx].;do|es key m|
|00004e50| 61 74 63 68 3f 0d 0a 09 | 09 6a 65 09 48 6f 74 4d |atch?...|.je.HotM|
|00004e60| 61 74 63 68 30 39 09 09 | 3b 59 45 53 20 2d 20 6a |atch09..|;YES - j|
|00004e70| 75 6d 70 20 69 66 20 6d | 61 74 63 68 0d 0a 09 09 |ump if m|atch....|
|00004e80| 6d 6f 76 09 48 6f 74 49 | 6e 64 65 78 2c 62 68 09 |mov.HotI|ndex,bh.|
|00004e90| 09 3b 73 65 61 72 63 68 | 20 66 72 6f 6d 20 73 74 |.;search| from st|
|00004ea0| 61 72 74 20 6e 65 78 74 | 20 74 69 6d 65 0d 0a 09 |art next| time...|
|00004eb0| 09 61 6e 64 09 4b 65 79 | 4d 6f 64 65 2c 6e 6f 74 |.and.Key|Mode,not|
|00004ec0| 20 49 6e 48 6f 74 4d 61 | 74 63 68 09 3b 63 75 72 | InHotMa|tch.;cur|
|00004ed0| 72 65 6e 74 20 6e 6f 20 | 6d 61 74 63 68 0d 0a 09 |rent no |match...|
|00004ee0| 09 6a 6d 70 09 73 68 6f | 72 74 20 45 78 69 74 49 |.jmp.sho|rt ExitI|
|00004ef0| 6e 74 30 39 09 09 3b 6e | 6f 77 20 65 6e 64 20 74 |nt09..;n|ow end t|
|00004f00| 68 69 73 0d 0a 0d 0a 3b | 20 2d 2d 2d 2d 2d 2d 2d |his....;| -------|
|00004f10| 2d 2d 2d 2d 2d 09 4b 45 | 59 20 4d 41 43 54 48 45 |-----.KE|Y MACTHE|
|00004f20| 44 20 4e 45 58 54 20 53 | 43 41 4e 20 43 4f 44 45 |D NEXT S|CAN CODE|
|00004f30| 20 49 4e 20 48 6f 74 4b | 65 79 53 65 71 0d 0a 0d | IN HotK|eySeq...|
|00004f40| 0a 48 6f 74 4d 61 74 63 | 68 30 39 3a 09 69 6e 63 |.HotMatc|h09:.inc|
|00004f50| 09 62 6c 09 09 09 3b 6e | 65 77 20 63 6f 64 65 20 |.bl...;n|ew code |
|00004f60| 61 74 20 6e 65 78 74 20 | 70 61 73 73 0d 0a 09 09 |at next |pass....|
|00004f70| 63 6d 70 09 62 6c 2c 48 | 6f 74 4b 65 79 4c 65 6e |cmp.bl,H|otKeyLen|
|00004f80| 09 09 3b 64 69 64 20 77 | 65 20 6d 61 74 63 68 20 |..;did w|e match |
|00004f90| 77 68 6f 6c 65 20 73 65 | 71 75 65 6e 63 65 3f 0d |whole se|quence?.|
|00004fa0| 0a 09 09 6a 61 65 09 48 | 6f 74 48 69 74 30 39 20 |...jae.H|otHit09 |
|00004fb0| 09 09 3b 59 45 53 20 2d | 20 6a 75 6d 70 20 69 66 |..;YES -| jump if|
|00004fc0| 20 66 75 6c 6c 20 73 65 | 71 75 65 6e 63 65 0d 0a | full se|quence..|
|00004fd0| 09 09 6d 6f 76 09 48 6f | 74 49 6e 64 65 78 2c 62 |..mov.Ho|tIndex,b|
|00004fe0| 6c 09 09 3b 4e 4f 20 2d | 20 73 61 76 65 20 6e 65 |l..;NO -| save ne|
|00004ff0| 77 20 63 6f 75 6e 74 0d | 0a 09 09 6d 6f 76 09 42 |w count.|...mov.B|
|00005000| 65 74 77 65 65 6e 4b 65 | 79 73 2c 4b 65 79 54 69 |etweenKe|ys,KeyTi|
|00005010| 6d 65 4f 75 74 09 3b 72 | 65 73 65 74 20 63 6f 75 |meOut.;r|eset cou|
|00005020| 6e 74 65 72 20 62 65 74 | 77 65 65 6e 20 6b 65 79 |nter bet|ween key|
|00005030| 73 0d 0a 09 09 6f 72 09 | 4b 65 79 4d 6f 64 65 2c |s....or.|KeyMode,|
|00005040| 49 6e 48 6f 74 4d 61 74 | 63 68 09 3b 77 65 20 61 |InHotMat|ch.;we a|
|00005050| 72 65 20 69 6e 20 61 20 | 6d 61 74 63 68 20 6e 6f |re in a |match no|
|00005060| 77 0d 0a 09 09 6a 6d 70 | 09 73 68 6f 72 74 20 45 |w....jmp|.short E|
|00005070| 78 69 74 49 6e 74 30 39 | 09 09 3b 74 69 6d 65 20 |xitInt09|..;time |
|00005080| 74 6f 20 65 6e 64 20 74 | 68 69 73 0d 0a 0d 0a 3b |to end t|his....;|
|00005090| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 09 4b 45 | -------|-----.KE|
|000050a0| 59 20 4d 41 54 43 48 45 | 44 20 41 4c 4c 20 53 43 |Y MATCHE|D ALL SC|
|000050b0| 41 4e 20 43 4f 44 45 53 | 20 49 4e 20 48 4f 54 4b |AN CODES| IN HOTK|
|000050c0| 45 59 20 53 45 51 55 45 | 4e 43 45 0d 0a 0d 0a 48 |EY SEQUE|NCE....H|
|000050d0| 6f 74 48 69 74 30 39 3a | 09 6f 72 09 4b 65 79 4d |otHit09:|.or.KeyM|
|000050e0| 6f 64 65 2c 48 6f 74 4b | 65 79 4f 6e 09 3b 73 61 |ode,HotK|eyOn.;sa|
|000050f0| 79 20 68 6f 74 6b 65 79 | 20 77 61 73 20 70 72 65 |y hotkey| was pre|
|00005100| 73 73 65 64 0d 0a 09 09 | 6d 6f 76 09 48 6f 74 49 |ssed....|mov.HotI|
|00005110| 6e 64 65 78 2c 62 68 09 | 09 3b 6d 61 74 63 68 20 |ndex,bh.|.;match |
|00005120| 31 73 74 20 63 6f 64 65 | 20 6e 65 78 74 20 74 69 |1st code| next ti|
|00005130| 6d 65 0d 0a 09 09 61 6e | 64 09 4b 65 79 4d 6f 64 |me....an|d.KeyMod|
|00005140| 65 2c 6e 6f 74 20 49 6e | 48 6f 74 4d 61 74 63 68 |e,not In|HotMatch|
|00005150| 09 3b 74 68 61 74 27 73 | 20 74 68 65 20 65 6e 64 |.;that's| the end|
|00005160| 20 6f 66 20 61 20 6d 61 | 74 63 68 0d 0a 0d 0a 3b | of a ma|tch....;|
|00005170| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 09 45 58 | -------|-----.EX|
|00005180| 49 54 20 46 52 4f 4d 20 | 49 4e 54 30 39 48 2c 20 |IT FROM |INT09H, |
|00005190| 52 45 53 45 54 20 49 6e | 49 6e 74 30 39 20 46 4c |RESET In|Int09 FL|
|000051a0| 41 47 0d 0a 0d 0a 45 78 | 69 74 49 6e 74 30 39 3a |AG....Ex|itInt09:|
|000051b0| 09 61 6e 64 09 54 73 72 | 4d 6f 64 65 2c 6e 6f 74 |.and.Tsr|Mode,not|
|000051c0| 20 49 6e 49 6e 74 30 39 | 09 3b 74 65 6c 6c 27 65 | InInt09|.;tell'e|
|000051d0| 6d 20 77 65 20 6c 65 66 | 74 20 74 68 69 73 20 63 |m we lef|t this c|
|000051e0| 6f 64 65 0d 0a 09 09 70 | 6f 70 09 62 78 09 09 09 |ode....p|op.bx...|
|000051f0| 3b 72 65 73 74 6f 72 65 | 20 72 65 67 73 0d 0a 09 |;restore| regs...|
|00005200| 09 70 6f 70 09 61 78 0d | 0a 09 09 69 72 65 74 09 |.pop.ax.|...iret.|
|00005210| 09 09 09 3b 66 6c 61 67 | 73 20 72 65 73 74 6f 72 |...;flag|s restor|
|00005220| 65 64 20 66 72 6f 6d 20 | 73 74 61 63 6b 0d 0a 4f |ed from |stack..O|
|00005230| 75 72 49 6e 74 30 39 09 | 65 6e 64 70 0d 0a 0d 0a |urInt09.|endp....|
|00005240| 3b 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |;=======|========|
|00005250| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005260| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005270| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005280| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00005290| 0a 3b 20 4f 75 72 49 6e | 74 31 33 20 2d 20 53 45 |.; OurIn|t13 - SE|
|000052a0| 54 20 49 6e 49 6e 74 31 | 33 20 46 4c 41 47 20 54 |T InInt1|3 FLAG T|
|000052b0| 4f 20 53 41 59 20 54 48 | 41 54 20 57 45 20 41 52 |O SAY TH|AT WE AR|
|000052c0| 45 20 49 4e 20 41 4e 20 | 49 4e 54 31 33 48 0d 0a |E IN AN |INT13H..|
|000052d0| 3b 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |;=======|========|
|000052e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000052f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005300| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005310| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00005320| 0a 0d 0a 4f 75 72 49 6e | 74 31 33 09 70 72 6f 63 |...OurIn|t13.proc|
|00005330| 09 66 61 72 0d 0a 09 09 | 61 73 73 75 6d 65 09 64 |.far....|assume.d|
|00005340| 73 3a 6e 6f 74 68 69 6e | 67 2c 20 65 73 3a 6e 6f |s:nothin|g, es:no|
|00005350| 74 68 69 6e 67 2c 20 73 | 73 3a 6e 6f 74 68 69 6e |thing, s|s:nothin|
|00005360| 67 0d 0a 0d 0a 09 09 70 | 75 73 68 66 09 09 09 09 |g......p|ushf....|
|00005370| 3b 73 61 76 65 20 66 6c | 61 67 73 20 77 65 20 75 |;save fl|ags we u|
|00005380| 73 65 0d 0a 09 09 6f 72 | 09 54 73 72 4d 6f 64 65 |se....or|.TsrMode|
|00005390| 2c 49 6e 49 6e 74 31 33 | 09 09 3b 72 65 6d 65 6d |,InInt13|..;remem|
|000053a0| 62 65 72 20 77 65 20 61 | 72 65 20 69 6e 20 42 49 |ber we a|re in BI|
|000053b0| 4f 53 20 6e 6f 77 0d 0a | 09 09 70 6f 70 66 09 09 |OS now..|..popf..|
|000053c0| 09 09 3b 72 65 73 74 6f | 72 65 20 66 6c 61 67 73 |..;resto|re flags|
|000053d0| 0d 0a 0d 0a 09 09 70 75 | 73 68 66 09 09 09 09 3b |......pu|shf....;|
|000053e0| 73 69 6d 75 6c 61 74 65 | 20 49 4e 54 31 33 0d 0a |simulate| INT13..|
|000053f0| 09 09 63 6c 69 09 09 09 | 09 3b 6a 75 73 74 20 69 |..cli...|.;just i|
|00005400| 6e 20 63 61 73 65 20 6f | 74 68 65 72 73 20 66 6f |n case o|thers fo|
|00005410| 72 67 6f 74 0d 0a 09 09 | 63 61 6c 6c 09 4f 6c 64 |rgot....|call.Old|
|00005420| 49 6e 74 31 33 09 09 3b | 6c 65 74 20 42 49 4f 53 |Int13..;|let BIOS|
|00005430| 20 68 61 6e 64 6c 65 20 | 69 74 20 61 6c 6c 0d 0a | handle |it all..|
|00005440| 0d 0a 09 09 70 75 73 68 | 66 09 09 09 09 3b 42 49 |....push|f....;BI|
|00005450| 4f 53 20 75 73 65 73 20 | 66 6c 61 67 20 72 65 74 |OS uses |flag ret|
|00005460| 75 72 6e 0d 0a 09 09 61 | 6e 64 09 54 73 72 4d 6f |urn....a|nd.TsrMo|
|00005470| 64 65 2c 20 6e 6f 74 20 | 49 6e 49 6e 74 31 33 09 |de, not |InInt13.|
|00005480| 3b 74 65 6c 6c 20 70 65 | 6f 70 6c 65 20 77 65 20 |;tell pe|ople we |
|00005490| 6c 65 66 74 20 49 4e 54 | 31 33 68 0d 0a 09 09 70 |left INT|13h....p|
|000054a0| 6f 70 66 0d 0a 0d 0a 09 | 09 72 65 74 09 32 09 09 |opf.....|.ret.2..|
|000054b0| 09 3b 74 68 72 6f 77 20 | 66 6c 61 67 73 20 6f 66 |.;throw |flags of|
|000054c0| 66 20 73 74 61 63 6b 0d | 0a 4f 75 72 49 6e 74 31 |f stack.|.OurInt1|
|000054d0| 33 09 65 6e 64 70 0d 0a | 0d 0a 3b 3d 3d 3d 3d 3d |3.endp..|..;=====|
|000054e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000054f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005500| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005510| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00005520| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 3b 20 4f 75 72 |========|=..; Our|
|00005530| 49 6e 74 31 36 20 2d 20 | 54 53 52 20 49 4e 54 31 |Int16 - |TSR INT1|
|00005540| 36 48 20 48 41 4e 44 4c | 45 52 2c 20 49 4e 54 32 |6H HANDL|ER, INT2|
|00005550| 38 20 43 48 41 49 4e 20 | 49 4e 54 45 52 46 41 43 |8 CHAIN |INTERFAC|
|00005560| 45 0d 0a 3b 0d 0a 3b 20 | 49 4e 50 55 54 3a 09 41 |E..;..; |INPUT:.A|
|00005570| 58 20 3d 20 47 65 74 49 | 64 0d 0a 3b 20 4f 55 54 |X = GetI|d..; OUT|
|00005580| 50 55 54 3a 09 41 58 20 | 3d 20 4d 79 49 64 0d 0a |PUT:.AX |= MyId..|
|00005590| 3b 20 52 45 47 53 3a 09 | 09 41 58 20 4c 4f 53 54 |; REGS:.|.AX LOST|
|000055a0| 2c 20 41 4c 4c 20 4f 54 | 48 45 52 53 20 50 52 45 |, ALL OT|HERS PRE|
|000055b0| 53 45 52 56 45 44 0d 0a | 3b 20 44 45 53 43 52 49 |SERVED..|; DESCRI|
|000055c0| 50 54 49 4f 4e 3a 09 44 | 45 54 45 52 4d 49 4e 45 |PTION:.D|ETERMINE|
|000055d0| 20 49 46 20 54 53 52 20 | 57 49 54 48 20 54 48 49 | IF TSR |WITH THI|
|000055e0| 53 20 49 44 20 49 53 20 | 41 4c 52 45 41 44 59 20 |S ID IS |ALREADY |
|000055f0| 49 4e 20 4d 45 4d 4f 52 | 59 0d 0a 3b 0d 0a 3b 20 |IN MEMOR|Y..;..; |
|00005600| 49 4e 50 55 54 3a 09 41 | 48 20 3d 20 30 30 0d 0a |INPUT:.A|H = 00..|
|00005610| 3b 20 4f 55 54 50 55 54 | 3a 09 41 58 20 3d 20 4e |; OUTPUT|:.AX = N|
|00005620| 45 58 54 20 4b 45 59 20 | 46 52 4f 4d 20 42 55 46 |EXT KEY |FROM BUF|
|00005630| 46 45 52 0d 0a 3b 20 52 | 45 47 53 3b 09 09 41 58 |FER..; R|EGS;..AX|
|00005640| 20 4c 4f 53 54 2c 20 41 | 4c 4c 20 4f 54 48 45 52 | LOST, A|LL OTHER|
|00005650| 53 20 50 52 45 53 45 52 | 56 45 44 0d 0a 3b 20 44 |S PRESER|VED..; D|
|00005660| 45 53 43 52 49 50 54 49 | 4f 4e 3a 09 52 45 54 55 |ESCRIPTI|ON:.RETU|
|00005670| 52 4e 20 41 20 4b 45 59 | 20 46 52 4f 4d 20 4b 45 |RN A KEY| FROM KE|
|00005680| 59 42 4f 41 52 44 20 42 | 55 46 46 45 52 2c 20 57 |YBOARD B|UFFER, W|
|00005690| 41 49 54 20 54 49 4c 4c | 20 4b 45 59 20 49 53 20 |AIT TILL| KEY IS |
|000056a0| 50 52 45 53 53 45 44 0d | 0a 3b 0d 0a 3b 20 49 4e |PRESSED.|.;..; IN|
|000056b0| 50 55 54 3a 09 41 48 20 | 3d 20 30 32 0d 0a 3b 20 |PUT:.AH |= 02..; |
|000056c0| 4f 55 54 50 55 54 3a 09 | 41 58 20 3d 20 4b 45 59 |OUTPUT:.|AX = KEY|
|000056d0| 20 46 52 4f 4d 20 42 55 | 46 46 45 52 20 49 4e 20 | FROM BU|FFER IN |
|000056e0| 41 4e 59 0d 0a 3b 09 09 | 5a 46 20 3d 20 4e 4f 20 |ANY..;..|ZF = NO |
|000056f0| 4b 45 59 53 20 49 4e 20 | 42 55 46 46 45 52 20 28 |KEYS IN |BUFFER (|
|00005700| 41 58 20 50 52 45 53 45 | 52 56 45 44 29 0d 0a 3b |AX PRESE|RVED)..;|
|00005710| 09 09 4e 5a 20 3d 20 4b | 45 59 20 49 4e 20 42 55 |..NZ = K|EY IN BU|
|00005720| 46 46 45 52 20 28 52 45 | 54 55 52 4e 45 44 20 49 |FFER (RE|TURNED I|
|00005730| 4e 20 41 58 2c 20 4b 45 | 59 20 53 54 49 4c 4c 20 |N AX, KE|Y STILL |
|00005740| 49 4e 20 42 55 46 46 45 | 52 29 0d 0a 3b 20 44 45 |IN BUFFE|R)..; DE|
|00005750| 53 43 52 49 50 54 49 4f | 4e 3a 09 43 48 45 43 4b |SCRIPTIO|N:.CHECK|
|00005760| 20 42 55 46 46 45 52 20 | 46 4f 52 20 41 4e 59 20 | BUFFER |FOR ANY |
|00005770| 50 45 4e 44 49 4e 47 20 | 4b 45 59 53 2c 20 52 45 |PENDING |KEYS, RE|
|00005780| 54 55 52 4e 20 4b 45 59 | 20 49 46 20 41 4e 59 0d |TURN KEY| IF ANY.|
|00005790| 0a 3b 0d 0a 3b 20 4e 4f | 54 45 3a 09 41 4c 4c 20 |.;..; NO|TE:.ALL |
|000057a0| 4f 54 48 45 52 20 41 58 | 20 52 45 51 55 45 53 54 |OTHER AX| REQUEST|
|000057b0| 20 43 4f 44 45 53 20 41 | 52 45 20 50 41 53 53 45 | CODES A|RE PASSE|
|000057c0| 44 20 4f 4e 20 54 4f 20 | 42 49 4f 53 20 49 4e 54 |D ON TO |BIOS INT|
|000057d0| 31 36 48 20 48 41 4e 44 | 4c 45 52 2e 0d 0a 3b 0d |16H HAND|LER...;.|
|000057e0| 0a 3b 20 4e 4f 54 45 3a | 09 44 55 52 49 4e 47 20 |.; NOTE:|.DURING |
|000057f0| 49 4e 54 32 38 20 50 4f | 50 55 50 20 28 49 6e 50 |INT28 PO|PUP (InP|
|00005800| 6f 70 75 70 20 41 4e 44 | 20 4e 4f 54 20 49 6e 44 |opup AND| NOT InD|
|00005810| 6f 73 43 6c 72 29 20 46 | 55 4e 43 54 49 4f 4e 53 |osClr) F|UNCTIONS|
|00005820| 20 41 48 3d 30 20 41 4e | 44 0d 0a 3b 09 41 48 3d | AH=0 AN|D..;.AH=|
|00005830| 31 20 57 49 4c 4c 20 49 | 53 53 55 45 20 49 4e 54 |1 WILL I|SSUE INT|
|00005840| 32 38 2c 20 55 4e 4c 45 | 53 53 20 49 6e 44 6f 73 |28, UNLE|SS InDos|
|00005850| 20 48 41 53 20 46 52 4f | 4d 20 56 41 4c 55 45 20 | HAS FRO|M VALUE |
|00005860| 41 54 20 50 4f 50 55 50 | 20 4f 52 0d 0a 3b 09 43 |AT POPUP| OR..;.C|
|00005870| 72 69 74 45 72 72 20 48 | 41 53 20 42 45 45 4e 20 |ritErr H|AS BEEN |
|00005880| 53 45 54 2e 0d 0a 3b 3d | 3d 3d 3d 3d 3d 3d 3d 3d |SET...;=|========|
|00005890| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000058a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000058b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000058c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000058d0| 3d 3d 3d 3d 3d 0d 0a 0d | 0a 4f 75 72 49 6e 74 31 |=====...|.OurInt1|
|000058e0| 36 09 70 72 6f 63 09 66 | 61 72 0d 0a 09 09 61 73 |6.proc.f|ar....as|
|000058f0| 73 75 6d 65 09 64 73 3a | 6e 6f 74 68 69 6e 67 2c |sume.ds:|nothing,|
|00005900| 20 65 73 3a 6e 6f 74 68 | 69 6e 67 2c 20 73 73 3a | es:noth|ing, ss:|
|00005910| 6e 6f 74 68 69 6e 67 0d | 0a 0d 0a 09 09 73 74 69 |nothing.|.....sti|
|00005920| 09 09 09 09 3b 77 65 27 | 6c 6c 20 6d 61 6e 61 67 |....;we'|ll manag|
|00005930| 65 20 49 4e 54 73 0d 0a | 09 09 70 75 73 68 66 09 |e INTs..|..pushf.|
|00005940| 09 09 09 3b 73 61 76 65 | 20 63 61 6c 6c 65 72 73 |...;save| callers|
|00005950| 20 66 6c 61 67 73 0d 0a | 09 09 63 6d 70 09 61 78 | flags..|..cmp.ax|
|00005960| 2c 47 65 74 49 64 09 09 | 3b 72 65 74 75 72 6e 20 |,GetId..|;return |
|00005970| 49 44 20 72 65 71 75 65 | 73 74 3f 0d 0a 09 09 6a |ID reque|st?....j|
|00005980| 6e 65 09 4e 6f 74 49 64 | 31 36 09 09 09 3b 4e 4f |ne.NotId|16...;NO|
|00005990| 20 2d 20 6a 75 6d 70 20 | 69 66 20 6e 6f 74 0d 0a | - jump |if not..|
|000059a0| 0d 0a 3b 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..; ----|--------|
|000059b0| 09 54 53 52 20 44 49 41 | 47 4e 4f 53 54 49 43 20 |.TSR DIA|GNOSTIC |
|000059c0| 52 45 51 55 45 53 54 2c | 20 52 45 54 55 52 4e 20 |REQUEST,| RETURN |
|000059d0| 53 50 45 43 49 41 4c 20 | 56 41 4c 55 45 20 54 4f |SPECIAL |VALUE TO|
|000059e0| 20 53 41 59 20 57 45 20 | 41 52 45 20 48 45 52 45 | SAY WE |ARE HERE|
|000059f0| 0d 0a 0d 0a 09 09 6d 6f | 76 09 61 78 2c 4d 79 49 |......mo|v.ax,MyI|
|00005a00| 64 09 09 09 3b 49 44 20 | 76 61 6c 20 72 65 74 75 |d...;ID |val retu|
|00005a10| 72 6e 65 64 20 69 6e 20 | 41 58 0d 0a 09 09 70 6f |rned in |AX....po|
|00005a20| 70 66 09 09 09 09 3b 72 | 65 73 74 6f 72 65 20 66 |pf....;r|estore f|
|00005a30| 6c 61 67 73 0d 0a 09 09 | 69 72 65 74 09 09 09 09 |lags....|iret....|
|00005a40| 3b 72 65 74 75 72 6e 20 | 74 6f 20 63 61 6c 6c 65 |;return |to calle|
|00005a50| 72 0d 0a 0d 0a 3b 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d |r....; -|--------|
|00005a60| 2d 2d 2d 09 50 41 53 53 | 20 43 4f 4e 54 52 4f 4c |---.PASS| CONTROL|
|00005a70| 20 54 4f 20 42 49 4f 53 | 2c 20 46 4c 41 47 53 20 | TO BIOS|, FLAGS |
|00005a80| 4f 4e 20 53 54 41 43 4b | 0d 0a 0d 0a 47 6f 42 69 |ON STACK|....GoBi|
|00005a90| 6f 73 31 36 3a 09 70 6f | 70 66 09 09 09 09 3b 72 |os16:.po|pf....;r|
|00005aa0| 65 73 74 6f 72 65 20 66 | 6c 61 67 73 20 61 74 20 |estore f|lags at |
|00005ab0| 49 4e 54 20 74 69 6d 65 | 0d 0a 09 09 6a 6d 70 09 |INT time|....jmp.|
|00005ac0| 4f 6c 64 49 6e 74 31 36 | 09 09 3b 63 6f 6e 74 69 |OldInt16|..;conti|
|00005ad0| 6e 75 65 20 69 6e 20 74 | 68 65 20 77 6f 6f 64 73 |nue in t|he woods|
|00005ae0| 0d 0a 0d 0a 3b 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |....; --|--------|
|00005af0| 2d 2d 09 52 45 47 55 4c | 41 52 20 42 49 4f 53 20 |--.REGUL|AR BIOS |
|00005b00| 49 4e 54 31 36 20 52 45 | 51 55 45 53 54 2c 20 43 |INT16 RE|QUEST, C|
|00005b10| 48 45 43 4b 20 46 4f 52 | 20 41 4e 59 20 46 41 4e |HECK FOR| ANY FAN|
|00005b20| 43 59 20 41 43 54 49 4f | 4e 53 0d 0a 0d 0a 4e 6f |CY ACTIO|NS....No|
|00005b30| 74 49 64 31 36 3a 09 74 | 65 73 74 09 54 73 72 4d |tId16:.t|est.TsrM|
|00005b40| 6f 64 65 2c 49 6e 50 6f | 70 75 70 09 09 3b 61 72 |ode,InPo|pup..;ar|
|00005b50| 65 20 77 65 20 69 6e 20 | 61 20 70 6f 70 75 70 3f |e we in |a popup?|
|00005b60| 0d 0a 09 09 6a 7a 09 47 | 6f 42 69 6f 73 31 36 09 |....jz.G|oBios16.|
|00005b70| 09 3b 4e 4f 20 2d 20 6c | 65 61 76 65 20 72 65 73 |.;NO - l|eave res|
|00005b80| 74 20 77 69 74 68 20 42 | 49 4f 53 0d 0a 09 09 74 |t with B|IOS....t|
|00005b90| 65 73 74 09 54 73 72 4d | 6f 64 65 2c 49 6e 44 6f |est.TsrM|ode,InDo|
|00005ba0| 73 43 6c 72 09 3b 49 6e | 44 6f 73 20 63 6c 65 61 |sClr.;In|Dos clea|
|00005bb0| 72 20 61 74 20 70 6f 70 | 75 70 3f 0d 0a 09 09 6a |r at pop|up?....j|
|00005bc0| 6e 7a 09 47 6f 42 69 6f | 73 31 36 09 09 3b 59 45 |nz.GoBio|s16..;YE|
|00005bd0| 53 20 2d 20 6e 6f 20 6e | 65 65 64 20 74 6f 20 73 |S - no n|eed to s|
|00005be0| 69 67 6e 61 6c 20 49 4e | 54 32 38 0d 0a 0d 0a 09 |ignal IN|T28.....|
|00005bf0| 09 70 6f 70 66 09 09 09 | 09 3b 72 65 73 74 6f 72 |.popf...|.;restor|
|00005c00| 65 20 6f 72 69 67 69 6e | 61 6c 20 66 6c 61 67 73 |e origin|al flags|
|00005c10| 0d 0a 09 09 70 75 73 68 | 09 62 78 09 09 09 3b 77 |....push|.bx...;w|
|00005c20| 65 20 6e 65 65 64 20 61 | 20 66 65 77 20 72 65 67 |e need a| few reg|
|00005c30| 73 20 68 65 72 65 0d 0a | 09 09 70 75 73 68 09 63 |s here..|..push.c|
|00005c40| 78 0d 0a 09 09 70 75 73 | 68 09 73 69 0d 0a 09 09 |x....pus|h.si....|
|00005c50| 70 75 73 68 09 64 73 0d | 0a 09 09 70 75 73 68 66 |push.ds.|...pushf|
|00005c60| 09 09 09 09 3b 6f 72 69 | 67 69 6e 61 6c 20 66 6c |....;ori|ginal fl|
|00005c70| 61 67 73 20 62 61 63 6b | 20 6f 6e 20 73 74 61 63 |ags back| on stac|
|00005c80| 6b 0d 0a 0d 0a 3b 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d |k....; -|--------|
|00005c90| 2d 2d 2d 09 47 45 54 20 | 52 45 51 55 45 53 54 20 |---.GET |REQUEST |
|00005ca0| 43 4f 44 45 20 54 4f 20 | 42 48 20 45 4e 48 41 4e |CODE TO |BH ENHAN|
|00005cb0| 43 45 44 20 42 49 54 20 | 54 4f 20 42 4c 0d 0a 0d |CED BIT |TO BL...|
|00005cc0| 0a 09 09 6d 6f 76 09 62 | 68 2c 61 68 09 09 09 3b |...mov.b|h,ah...;|
|00005cd0| 42 48 3d 66 75 6e 63 74 | 69 6f 6e 20 72 65 71 75 |BH=funct|ion requ|
|00005ce0| 65 73 74 20 63 6f 64 65 | 0d 0a 09 09 61 6e 64 09 |est code|....and.|
|00005cf0| 62 68 2c 6e 6f 74 20 31 | 30 68 09 09 3b 7a 61 70 |bh,not 1|0h..;zap|
|00005d00| 20 65 6e 68 61 6e 63 65 | 64 20 6b 79 62 64 20 62 | enhance|d kybd b|
|00005d10| 69 74 0d 0a 09 09 63 6d | 70 09 62 68 2c 31 09 09 |it....cm|p.bh,1..|
|00005d20| 09 3b 61 6e 79 20 66 75 | 6e 63 74 69 6f 6e 20 61 |.;any fu|nction a|
|00005d30| 62 6f 76 65 20 31 3f 0d | 0a 09 09 6a 61 09 45 78 |bove 1?.|...ja.Ex|
|00005d40| 69 74 42 69 6f 73 31 36 | 09 09 3b 59 45 53 20 2d |itBios16|..;YES -|
|00005d50| 20 6c 65 61 76 65 20 72 | 65 73 74 20 77 69 74 68 | leave r|est with|
|00005d60| 20 42 49 4f 53 0d 0a 0d | 0a 09 09 6d 6f 76 09 62 | BIOS...|...mov.b|
|00005d70| 6c 2c 61 68 09 09 09 3b | 42 4c 20 75 73 65 64 20 |l,ah...;|BL used |
|00005d80| 66 6f 72 20 65 6e 68 61 | 6e 63 65 64 20 62 69 74 |for enha|nced bit|
|00005d90| 0d 0a 09 09 61 6e 64 09 | 62 6c 2c 31 30 68 09 09 |....and.|bl,10h..|
|00005da0| 09 3b 42 4c 3d 76 61 6c | 75 65 20 6f 66 20 65 6e |.;BL=val|ue of en|
|00005db0| 68 61 6e 63 65 64 20 62 | 69 74 0d 0a 0d 0a 3b 20 |hanced b|it....; |
|00005dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 09 47 45 54 |--------|----.GET|
|00005dd0| 20 49 6e 44 6f 73 20 54 | 6f 20 43 4c 2c 20 43 72 | InDos T|o CL, Cr|
|00005de0| 69 74 45 72 72 20 74 6f | 20 43 48 2c 20 53 45 54 |itErr to| CH, SET|
|00005df0| 55 50 20 52 45 47 53 0d | 0a 0d 0a 09 09 61 73 73 |UP REGS.|.....ass|
|00005e00| 75 6d 65 09 64 73 3a 6e | 6f 74 68 69 6e 67 0d 0a |ume.ds:n|othing..|
|00005e10| 0d 0a 09 09 6c 64 73 09 | 73 69 2c 49 6e 44 6f 73 |....lds.|si,InDos|
|00005e20| 50 74 72 09 09 3b 44 53 | 3a 5b 53 49 5d 3d 49 6e |Ptr..;DS|:[SI]=In|
|00005e30| 44 6f 73 0d 0a 09 09 6d | 6f 76 09 63 6c 2c 62 79 |Dos....m|ov.cl,by|
|00005e40| 74 65 20 70 74 72 20 5b | 73 69 5d 09 3b 43 4c 3d |te ptr [|si].;CL=|
|00005e50| 49 6e 44 6f 73 20 76 61 | 6c 75 65 0d 0a 09 09 6c |InDos va|lue....l|
|00005e60| 64 73 09 73 69 2c 43 72 | 69 74 45 72 72 50 74 72 |ds.si,Cr|itErrPtr|
|00005e70| 09 09 3b 45 53 3a 5b 53 | 49 5d 3d 43 72 69 74 45 |..;ES:[S|I]=CritE|
|00005e80| 72 72 0d 0a 09 09 6d 6f | 76 09 63 68 2c 62 79 74 |rr....mo|v.ch,byt|
|00005e90| 65 20 70 74 72 20 5b 73 | 69 5d 09 3b 43 48 3d 43 |e ptr [s|i].;CH=C|
|00005ea0| 72 69 74 45 72 72 20 76 | 61 6c 75 65 0d 0a 0d 0a |ritErr v|alue....|
|00005eb0| 09 09 6d 6f 76 09 73 69 | 2c 61 78 09 09 09 3b 73 |..mov.si|,ax...;s|
|00005ec0| 61 76 65 20 41 58 20 63 | 61 6c 6c 20 76 61 6c 75 |ave AX c|all valu|
|00005ed0| 65 0d 0a 0d 0a 09 09 6d | 6f 76 09 61 78 2c 63 73 |e......m|ov.ax,cs|
|00005ee0| 09 09 09 3b 6d 6f 76 65 | 20 44 53 20 68 65 72 65 |...;move| DS here|
|00005ef0| 2c 20 6e 6f 77 20 77 65 | 20 67 6f 74 20 69 74 0d |, now we| got it.|
|00005f00| 0a 09 09 6d 6f 76 09 64 | 73 2c 61 78 0d 0a 09 09 |...mov.d|s,ax....|
|00005f10| 61 73 73 75 6d 65 09 64 | 73 3a 43 73 65 67 09 09 |assume.d|s:Cseg..|
|00005f20| 09 3b 65 76 65 72 79 62 | 6f 64 79 20 73 68 6f 75 |.;everyb|ody shou|
|00005f30| 6c 64 20 6b 6e 6f 77 0d | 0a 0d 0a 3b 20 2d 2d 2d |ld know.|...; ---|
|00005f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 09 43 48 45 43 4b 20 |--------|-.CHECK |
|00005f50| 4b 45 59 42 4f 41 52 44 | 20 42 55 46 46 45 52 2c |KEYBOARD| BUFFER,|
|00005f60| 20 4f 52 49 47 49 4e 41 | 4c 20 46 4c 41 47 53 20 | ORIGINA|L FLAGS |
|00005f70| 4f 4e 20 53 54 41 43 4b | 0d 0a 0d 0a 57 61 69 74 |ON STACK|....Wait|
|00005f80| 31 36 3a 09 09 6d 6f 76 | 09 61 68 2c 31 09 09 09 |16:..mov|.ah,1...|
|00005f90| 3b 41 48 3d 31 3d 74 65 | 73 74 20 62 75 66 66 65 |;AH=1=te|st buffe|
|00005fa0| 72 20 73 74 61 74 75 73 | 0d 0a 09 09 6f 72 09 61 |r status|....or.a|
|00005fb0| 68 2c 62 6c 09 09 09 3b | 6d 61 69 6e 74 61 69 6e |h,bl...;|maintain|
|00005fc0| 20 65 6e 68 61 6e 63 65 | 64 20 62 69 74 20 76 61 | enhance|d bit va|
|00005fd0| 6c 75 65 0d 0a 0d 0a 09 | 09 70 6f 70 66 09 09 09 |lue.....|.popf...|
|00005fe0| 09 3b 72 65 73 74 6f 72 | 65 20 6f 72 69 67 69 6e |.;restor|e origin|
|00005ff0| 61 6c 20 66 6c 61 67 73 | 0d 0a 09 09 70 75 73 68 |al flags|....push|
|00006000| 66 09 09 09 09 3b 73 69 | 6d 75 6c 61 74 65 20 49 |f....;si|mulate I|
|00006010| 4e 54 0d 0a 09 09 63 6c | 69 09 09 09 09 3b 69 6e |NT....cl|i....;in|
|00006020| 20 63 61 73 65 20 6f 74 | 68 65 72 73 20 66 6f 72 | case ot|hers for|
|00006030| 67 6f 74 0d 0a 09 09 63 | 61 6c 6c 09 4f 6c 64 49 |got....c|all.OldI|
|00006040| 6e 74 31 36 09 09 3b 6e | 6f 77 2c 20 5a 46 20 73 |nt16..;n|ow, ZF s|
|00006050| 65 74 20 69 66 20 6e 6f | 20 6b 65 79 73 0d 0a 09 |et if no| keys...|
|00006060| 09 70 75 73 68 66 09 09 | 09 09 3b 73 61 76 65 20 |.pushf..|..;save |
|00006070| 72 65 73 75 6c 74 20 66 | 6c 61 67 73 0d 0a 09 09 |result f|lags....|
|00006080| 6a 6e 7a 09 54 65 73 74 | 53 6b 69 70 31 36 09 09 |jnz.Test|Skip16..|
|00006090| 3b 6a 75 6d 70 20 69 66 | 20 61 20 6b 65 79 20 77 |;jump if| a key w|
|000060a0| 61 73 20 66 6f 75 6e 64 | 0d 0a 0d 0a 3b 20 2d 2d |as found|....; --|
|000060b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 09 4e 4f 20 4b 45 |--------|--.NO KE|
|000060c0| 59 20 46 4f 55 4e 44 2c | 20 43 41 4c 4c 20 49 4e |Y FOUND,| CALL IN|
|000060d0| 54 32 38 20 49 46 20 44 | 4f 53 20 49 6e 44 6f 73 |T28 IF D|OS InDos|
|000060e0| 20 41 4c 4c 4f 57 53 0d | 0a 0d 0a 09 09 63 6d 70 | ALLOWS.|.....cmp|
|000060f0| 09 63 78 2c 30 30 30 31 | 68 09 09 3b 43 72 69 74 |.cx,0001|h..;Crit|
|00006100| 45 72 72 3d 30 2c 20 49 | 6e 44 6f 73 3d 31 20 3f |Err=0, I|nDos=1 ?|
|00006110| 0d 0a 09 09 6a 6e 65 09 | 4e 65 78 74 4b 65 79 31 |....jne.|NextKey1|
|00006120| 36 09 09 3b 4e 4f 20 2d | 20 77 61 69 74 20 66 6f |6..;NO -| wait fo|
|00006130| 72 20 6e 65 78 74 20 6b | 65 79 0d 0a 09 09 6f 72 |r next k|ey....or|
|00006140| 09 54 73 72 4d 6f 64 65 | 2c 49 6e 32 38 43 61 6c |.TsrMode|,In28Cal|
|00006150| 6c 09 3b 74 65 6c 6c 20 | 70 65 6f 70 6c 65 20 77 |l.;tell |people w|
|00006160| 65 20 63 61 6c 6c 65 64 | 20 74 68 69 73 20 49 4e |e called| this IN|
|00006170| 54 0d 0a 09 09 69 6e 74 | 09 32 38 68 09 09 09 3b |T....int|.28h...;|
|00006180| 6e 6f 77 20 74 61 6b 65 | 20 79 6f 75 72 20 63 68 |now take| your ch|
|00006190| 61 6e 63 65 0d 0a 09 09 | 61 6e 64 09 54 73 72 4d |ance....|and.TsrM|
|000061a0| 6f 64 65 2c 6e 6f 74 20 | 49 6e 32 38 43 61 6c 6c |ode,not |In28Call|
|000061b0| 09 3b 65 6e 64 20 6f 66 | 20 74 68 61 74 20 63 61 |.;end of| that ca|
|000061c0| 6c 6c 0d 0a 0d 0a 3b 20 | 2d 2d 2d 2d 2d 2d 2d 2d |ll....; |--------|
|000061d0| 2d 2d 2d 2d 09 54 45 53 | 54 20 42 55 46 46 45 52 |----.TES|T BUFFER|
|000061e0| 20 41 47 41 49 4e 20 49 | 46 20 49 4e 54 31 36 2e | AGAIN I|F INT16.|
|000061f0| 30 30 2c 20 49 52 45 54 | 20 49 46 20 49 4e 54 31 |00, IRET| IF INT1|
|00006200| 36 2e 30 31 0d 0a 0d 0a | 4e 65 78 74 4b 65 79 31 |6.01....|NextKey1|
|00006210| 36 3a 09 6f 72 09 62 68 | 2c 62 68 09 09 09 3b 69 |6:.or.bh|,bh...;i|
|00006220| 73 20 74 68 69 73 20 61 | 20 77 61 69 74 20 66 6f |s this a| wait fo|
|00006230| 72 20 6b 65 79 3f 0d 0a | 09 09 6a 7a 09 57 61 69 |r key?..|..jz.Wai|
|00006240| 74 31 36 09 09 09 3b 59 | 45 53 20 2d 20 74 68 65 |t16...;Y|ES - the|
|00006250| 6e 20 67 6f 20 77 61 69 | 74 20 66 6f 72 20 69 74 |n go wai|t for it|
|00006260| 21 0d 0a 09 09 6d 6f 76 | 09 61 78 2c 73 69 09 09 |!....mov|.ax,si..|
|00006270| 09 3b 72 65 73 74 6f 72 | 65 20 6f 72 69 67 69 6e |.;restor|e origin|
|00006280| 61 6c 20 41 58 20 63 6f | 6e 74 65 6e 74 73 0d 0a |al AX co|ntents..|
|00006290| 09 09 6a 6d 70 09 73 68 | 6f 72 74 20 45 78 69 74 |..jmp.sh|ort Exit|
|000062a0| 31 36 09 09 3b 4e 4f 20 | 2d 20 65 78 69 74 20 77 |16..;NO |- exit w|
|000062b0| 69 74 68 20 73 74 61 74 | 75 73 20 77 65 20 67 6f |ith stat|us we go|
|000062c0| 74 0d 0a 0d 0a 3b 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d |t....; -|--------|
|000062d0| 2d 2d 2d 09 4b 45 59 20 | 49 4e 20 42 55 46 46 45 |---.KEY |IN BUFFE|
|000062e0| 52 2c 20 49 46 20 43 54 | 52 4c 2d 43 20 57 45 20 |R, IF CT|RL-C WE |
|000062f0| 4d 41 59 20 48 41 56 45 | 20 54 4f 20 53 4b 49 50 |MAY HAVE| TO SKIP|
|00006300| 20 49 54 2c 20 46 4c 41 | 47 53 20 4f 4e 20 53 54 | IT, FLA|GS ON ST|
|00006310| 41 43 4b 0d 0a 0d 0a 54 | 65 73 74 53 6b 69 70 31 |ACK....T|estSkip1|
|00006320| 36 3a 09 63 6d 70 09 61 | 6c 2c 33 09 09 09 3b 69 |6:.cmp.a|l,3...;i|
|00006330| 73 20 74 68 69 73 20 43 | 74 72 6c 2d 43 3f 0d 0a |s this C|trl-C?..|
|00006340| 09 09 6a 6e 65 09 54 65 | 73 74 45 78 69 74 31 36 |..jne.Te|stExit16|
|00006350| 09 09 3b 4e 4f 20 2d 20 | 64 65 74 65 72 6d 69 6e |..;NO - |determin|
|00006360| 65 20 65 78 69 74 20 6d | 65 74 68 6f 64 0d 0a 09 |e exit m|ethod...|
|00006370| 09 74 65 73 74 09 63 78 | 2c 6e 6f 74 20 30 30 30 |.test.cx|,not 000|
|00006380| 31 68 09 09 3b 61 6e 79 | 74 68 69 6e 67 20 62 75 |1h..;any|thing bu|
|00006390| 74 20 49 6e 44 6f 73 3d | 31 3f 0d 0a 09 09 6a 7a |t InDos=|1?....jz|
|000063a0| 09 54 65 73 74 45 78 69 | 74 31 36 09 09 3b 4e 4f |.TestExi|t16..;NO|
|000063b0| 20 2d 20 64 65 74 65 72 | 6d 69 6e 65 20 65 78 69 | - deter|mine exi|
|000063c0| 74 20 6d 65 74 68 6f 64 | 0d 0a 0d 0a 3b 20 2d 2d |t method|....; --|
|000063d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 09 53 4b 49 50 20 |--------|--.SKIP |
|000063e0| 43 54 52 4c 2d 43 20 49 | 4e 20 4b 45 59 42 4f 41 |CTRL-C I|N KEYBOA|
|000063f0| 52 44 20 42 55 46 46 45 | 52 0d 0a 0d 0a 09 09 6d |RD BUFFE|R......m|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.