home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: LBR Archive
(archive/lbr).
You can browse this item here: slib2.lbr
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| LBR Archive (archive/lbr)
| magic
| Supported |
1%
| dexvert
| Micro Focus COBOL library (other/microFocusCobolLibrary)
| ext
| Unsupported |
1%
| dexvert
| Micro Focus COBOL Library (other/microFocusCOBOLLibrary)
| ext
| Unsupported |
100%
| file
| LBR archive data
| default
| |
99%
| file
| data
| default
| |
87%
| TrID
| LU library
| default
| |
12%
| TrID
| C64 Hires bitmap
| default (weak)
| |
100%
| lsar
| LBR
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 20 20 20 20 20 20 20 | 20 20 20 20 00 00 12 00 |. | ....|
|00000010| 77 99 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |w.......|........|
|00000020| 00 53 45 4e 20 20 20 20 | 20 5a 38 30 12 00 02 00 |.SEN | Z80....|
|00000030| da f5 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 53 45 50 52 49 4e 54 | 20 5a 38 30 14 00 04 00 |.SEPRINT| Z80....|
|00000050| e8 50 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.P......|........|
|00000060| 00 53 45 50 53 54 52 20 | 20 5a 38 30 18 00 0f 00 |.SEPSTR | Z80....|
|00000070| a5 5e 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.^......|........|
|00000080| 00 53 45 56 41 4c 20 20 | 20 5a 38 30 27 00 18 00 |.SEVAL | Z80'...|
|00000090| 53 ef 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |S.......|........|
|000000a0| 00 53 45 56 41 4c 31 20 | 20 5a 38 30 3f 00 0a 00 |.SEVAL1 | Z80?...|
|000000b0| 82 85 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| 00 53 45 56 41 4c 32 20 | 20 5a 38 30 49 00 0c 00 |.SEVAL2 | Z80I...|
|000000d0| 75 41 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |uA......|........|
|000000e0| 00 53 45 56 41 4c 33 20 | 20 5a 38 30 55 00 09 00 |.SEVAL3 | Z80U...|
|000000f0| 80 3c 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.<......|........|
|00000100| 00 53 45 56 41 4c 34 20 | 20 5a 38 30 5e 00 08 00 |.SEVAL4 | Z80^...|
|00000110| 41 72 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |Ar......|........|
|00000120| 00 53 46 41 50 50 45 4e | 44 5a 38 30 66 00 18 00 |.SFAPPEN|DZ80f...|
|00000130| 8d 58 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.X......|........|
|00000140| 00 53 46 43 4c 4f 53 45 | 20 5a 38 30 7e 00 04 00 |.SFCLOSE| Z80~...|
|00000150| 7e fa 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |~.......|........|
|00000160| 00 53 46 44 45 4c 45 54 | 45 5a 38 30 82 00 03 00 |.SFDELET|EZ80....|
|00000170| c9 f0 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000180| 00 53 46 45 58 49 53 54 | 20 5a 38 30 85 00 04 00 |.SFEXIST| Z80....|
|00000190| af 1b 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| 00 53 46 49 4c 45 49 4f | 20 5a 38 30 89 00 56 00 |.SFILEIO| Z80..V.|
|000001b0| 44 ea 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |D.......|........|
|000001c0| 00 53 46 49 4c 4c 20 20 | 20 5a 38 30 df 00 0a 00 |.SFILL | Z80....|
|000001d0| c8 f8 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001e0| 00 53 46 4d 41 4b 45 20 | 20 5a 38 30 e9 00 04 00 |.SFMAKE | Z80....|
|000001f0| d8 93 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000200| 00 53 46 4e 41 4d 45 20 | 20 5a 38 30 ed 00 27 00 |.SFNAME | Z80..'.|
|00000210| 6d 1c 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |m.......|........|
|00000220| 00 53 46 4f 50 45 4e 20 | 20 5a 38 30 14 01 0a 00 |.SFOPEN | Z80....|
|00000230| 5e 52 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |^R......|........|
|00000240| 00 53 46 52 45 41 44 20 | 20 5a 38 30 1e 01 04 00 |.SFREAD | Z80....|
|00000250| b9 93 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000260| 00 53 46 52 45 4e 41 4d | 45 5a 38 30 22 01 0c 00 |.SFRENAM|EZ80"...|
|00000270| b3 92 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000280| 00 53 46 53 49 5a 45 20 | 20 5a 38 30 2e 01 0c 00 |.SFSIZE | Z80....|
|00000290| 44 f0 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |D.......|........|
|000002a0| 00 53 46 57 52 49 54 45 | 20 5a 38 30 3a 01 04 00 |.SFWRITE| Z80:...|
|000002b0| a5 26 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.&......|........|
|000002c0| 00 53 46 58 49 4f 20 20 | 20 5a 38 30 3e 01 65 00 |.SFXIO | Z80>.e.|
|000002d0| be 5c 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.\......|........|
|000002e0| 00 53 46 59 49 4f 20 20 | 20 5a 38 30 a3 01 71 00 |.SFYIO | Z80..q.|
|000002f0| af 1b 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000300| 00 53 47 46 41 20 20 20 | 20 5a 38 30 14 02 14 00 |.SGFA | Z80....|
|00000310| f1 1a 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000320| 00 53 47 52 52 20 20 20 | 20 5a 38 30 28 02 0d 00 |.SGRR | Z80(...|
|00000330| f1 34 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.4......|........|
|00000340| 00 53 47 52 52 31 20 20 | 20 5a 38 30 35 02 0c 00 |.SGRR1 | Z805...|
|00000350| 1d 32 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.2......|........|
|00000360| 00 53 47 55 41 20 20 20 | 20 5a 38 30 41 02 05 00 |.SGUA | Z80A...|
|00000370| a2 2f 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |./......|........|
|00000380| 00 53 48 43 41 53 31 20 | 20 5a 38 30 46 02 11 00 |.SHCAS1 | Z80F...|
|00000390| 6c e1 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |l.......|........|
|000003a0| 00 53 48 43 41 53 32 20 | 20 5a 38 30 57 02 12 00 |.SHCAS2 | Z80W...|
|000003b0| 94 c4 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000003c0| 00 53 48 43 41 53 33 20 | 20 5a 38 30 69 02 14 00 |.SHCAS3 | Z80i...|
|000003d0| 24 3b 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |$;......|........|
|000003e0| 00 53 48 44 52 20 20 20 | 20 5a 38 30 7d 02 01 00 |.SHDR | Z80}...|
|000003f0| 52 78 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |Rx......|........|
|00000400| 00 53 48 47 4f 31 20 20 | 20 5a 38 30 7e 02 08 00 |.SHGO1 | Z80~...|
|00000410| fe dd 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000420| 00 53 48 47 4f 32 20 20 | 20 5a 38 30 86 02 09 00 |.SHGO2 | Z80....|
|00000430| 69 8f 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |i.......|........|
|00000440| 00 53 48 49 46 31 20 20 | 20 5a 38 30 8f 02 0a 00 |.SHIF1 | Z80....|
|00000450| cb 2b 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.+......|........|
|00000460| 00 53 48 49 46 32 20 20 | 20 5a 38 30 99 02 0a 00 |.SHIF2 | Z80....|
|00000470| 21 4b 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |!K......|........|
|00000480| 00 53 49 4e 49 54 46 43 | 42 5a 38 30 a3 02 07 00 |.SINITFC|BZ80....|
|00000490| 56 ec 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |V.......|........|
|000004a0| 00 53 49 4e 4c 49 4e 45 | 20 5a 38 30 aa 02 2d 00 |.SINLINE| Z80..-.|
|000004b0| b9 de 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000004c0| 00 53 49 4e 53 54 52 20 | 20 5a 38 30 d7 02 0c 00 |.SINSTR | Z80....|
|000004d0| 8b f5 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000004e0| 00 53 49 53 41 4c 4e 55 | 4d 5a 38 30 e3 02 05 00 |.SISALNU|MZ80....|
|000004f0| 55 51 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |UQ......|........|
|00000500| 00 53 49 53 41 4c 50 48 | 41 5a 38 30 e8 02 06 00 |.SISALPH|AZ80....|
|00000510| d3 6f 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.o......|........|
|00000520| 00 53 49 53 43 54 52 4c | 20 5a 38 30 ee 02 05 00 |.SISCTRL| Z80....|
|00000530| ce 0f 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000540| 00 53 49 53 44 49 47 49 | 54 5a 38 30 f3 02 05 00 |.SISDIGI|TZ80....|
|00000550| 3a ea 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |:.......|........|
|00000560| 00 53 49 53 47 52 41 50 | 48 5a 38 30 f8 02 05 00 |.SISGRAP|HZ80....|
|00000570| 0a 8c 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000580| 00 53 49 53 48 45 58 20 | 20 5a 38 30 fd 02 06 00 |.SISHEX | Z80....|
|00000590| c1 bd 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000005a0| 00 53 49 53 50 52 49 4e | 54 5a 38 30 03 03 05 00 |.SISPRIN|TZ80....|
|000005b0| de 7a 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.z......|........|
|000005c0| 00 53 49 53 50 55 4e 20 | 20 5a 38 30 08 03 08 00 |.SISPUN | Z80....|
|000005d0| db d7 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000005e0| 00 53 49 53 53 50 20 20 | 20 5a 38 30 10 03 08 00 |.SISSP | Z80....|
|000005f0| 65 ee 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |e.......|........|
|00000600| 00 53 4c 41 32 48 43 20 | 20 5a 38 30 18 03 06 00 |.SLA2HC | Z80....|
|00000610| 10 9b 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000620| 00 53 4c 41 44 43 20 20 | 20 5a 38 30 1e 03 0b 00 |.SLADC | Z80....|
|00000630| 5f f2 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |_.......|........|
|00000640| 00 53 4c 41 46 44 43 20 | 20 5a 38 30 29 03 09 00 |.SLAFDC | Z80)...|
|00000650| e8 d6 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000660| 00 53 4c 43 52 4c 46 20 | 20 5a 38 30 32 03 06 00 |.SLCRLF | Z802...|
|00000670| 18 fc 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000680| 00 53 4c 46 4e 31 20 20 | 20 5a 38 30 38 03 05 00 |.SLFN1 | Z808...|
|00000690| 01 5b 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.[......|........|
|000006a0| 00 53 4c 46 4e 32 20 20 | 20 5a 38 30 3d 03 05 00 |.SLFN2 | Z80=...|
|000006b0| 76 97 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |v.......|........|
|000006c0| 00 53 4c 46 4e 33 20 20 | 20 5a 38 30 42 03 08 00 |.SLFN3 | Z80B...|
|000006d0| cf 8a 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000006e0| 00 53 4c 48 4c 34 48 43 | 20 5a 38 30 4a 03 04 00 |.SLHL4HC| Z80J...|
|000006f0| 62 ac 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |b.......|........|
|00000700| 00 53 4c 48 4c 35 44 43 | 20 5a 38 30 4e 03 0d 00 |.SLHL5DC| Z80N...|
|00000710| cb 8a 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000720| 00 53 4c 48 4c 46 44 43 | 20 5a 38 30 5b 03 0c 00 |.SLHLFDC| Z80[...|
|00000730| d7 54 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.T......|........|
|00000740| 00 53 4c 4f 55 54 20 20 | 20 5a 38 30 67 03 07 00 |.SLOUT | Z80g...|
|00000750| 2a 5c 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |*\......|........|
|00000760| 00 53 4c 50 52 49 4e 54 | 20 5a 38 30 6e 03 04 00 |.SLPRINT| Z80n...|
|00000770| 99 ac 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000780| 00 53 4c 50 53 54 52 20 | 20 5a 38 30 72 03 0e 00 |.SLPSTR | Z80r...|
|00000790| 38 a6 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |8.......|........|
|000007a0| 00 53 4c 55 43 4c 4f 53 | 45 5a 38 30 80 03 05 00 |.SLUCLOS|EZ80....|
|000007b0| 11 14 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000007c0| 00 53 4c 55 44 49 52 20 | 20 5a 38 30 85 03 1c 00 |.SLUDIR | Z80....|
|000007d0| 8c fe 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000007e0| 00 53 4c 55 49 4e 49 54 | 20 5a 38 30 a1 03 12 00 |.SLUINIT| Z80....|
|000007f0| 99 dd 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000800| 00 53 4c 55 4f 50 45 4e | 20 5a 38 30 b3 03 16 00 |.SLUOPEN| Z80....|
|00000810| d6 8e 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000820| 00 53 4c 55 52 45 41 44 | 20 5a 38 30 c9 03 09 00 |.SLUREAD| Z80....|
|00000830| 73 50 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |sP......|........|
|00000840| ff 20 20 20 20 20 20 20 | 20 20 20 20 00 00 00 00 |. | ....|
|00000850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000860| ff 20 20 20 20 20 20 20 | 20 20 20 20 00 00 00 00 |. | ....|
|00000870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000880| ff 20 20 20 20 20 20 20 | 20 20 20 20 00 00 00 00 |. | ....|
|00000890| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000008a0| ff 20 20 20 20 20 20 20 | 20 20 20 20 00 00 00 00 |. | ....|
|000008b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000008c0| ff 20 20 20 20 20 20 20 | 20 20 20 20 00 00 00 00 |. | ....|
|000008d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000008e0| ff 20 20 20 20 20 20 20 | 20 20 20 20 00 00 00 00 |. | ....|
|000008f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000900| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00000910| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 4e 0d 0a 3b |le Name:| SEN..;|
|00000920| 20 41 75 74 68 6f 72 3a | 20 20 52 69 63 68 61 72 | Author:| Richar|
|00000930| 64 20 43 6f 6e 6e 0d 0a | 3b 20 53 59 53 4c 49 42 |d Conn..|; SYSLIB|
|00000940| 20 56 65 72 73 69 6f 6e | 20 4e 75 6d 62 65 72 3a | Version| Number:|
|00000950| 20 20 33 2e 36 0d 0a 3b | 20 4d 6f 64 75 6c 65 20 | 3.6..;| Module |
|00000960| 56 65 72 73 69 6f 6e 20 | 4e 75 6d 62 65 72 3a 20 |Version |Number: |
|00000970| 20 31 2e 31 0d 0a 0d 0a | 09 70 75 62 6c 69 63 09 | 1.1....|.public.|
|00000980| 65 6e 0d 0a 0d 0a 3b 0d | 0a 3b 20 20 45 4e 20 2d |en....;.|.; EN -|
|00000990| 2d 20 0d 0a 3b 09 45 58 | 43 48 41 4e 47 45 20 4e |- ..;.EX|CHANGE N|
|000009a0| 59 42 42 4c 45 53 20 4f | 46 20 52 45 47 20 41 0d |YBBLES O|F REG A.|
|000009b0| 0a 3b 0d 0a 45 4e 3a 0d | 0a 09 52 4c 43 41 09 09 |.;..EN:.|..RLCA..|
|000009c0| 3b 20 34 20 52 4f 54 41 | 54 45 53 0d 0a 09 52 4c |; 4 ROTA|TES...RL|
|000009d0| 43 41 0d 0a 09 52 4c 43 | 41 0d 0a 09 52 4c 43 41 |CA...RLC|A...RLCA|
|000009e0| 0d 0a 09 52 45 54 0d 0a | 0d 0a 09 45 4e 44 0d 0a |...RET..|...END..|
|000009f0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00000a00| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00000a10| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 50 52 49 4e |le Name:| SEPRIN|
|00000a20| 54 0d 0a 3b 20 41 75 74 | 68 6f 72 3a 20 20 52 69 |T..; Aut|hor: Ri|
|00000a30| 63 68 61 72 64 20 43 6f | 6e 6e 0d 0a 3b 20 53 59 |chard Co|nn..; SY|
|00000a40| 53 4c 49 42 20 56 65 72 | 73 69 6f 6e 20 4e 75 6d |SLIB Ver|sion Num|
|00000a50| 62 65 72 3a 20 20 33 2e | 36 0d 0a 3b 20 4d 6f 64 |ber: 3.|6..; Mod|
|00000a60| 75 6c 65 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |ule Vers|ion Numb|
|00000a70| 65 72 3a 20 20 31 2e 31 | 0d 0a 0d 0a 09 70 75 62 |er: 1.1|.....pub|
|00000a80| 6c 69 63 09 65 70 72 69 | 6e 74 0d 0a 0d 0a 3b 0d |lic.epri|nt....;.|
|00000a90| 0a 3b 20 20 45 50 52 49 | 4e 54 20 2d 2d 20 0d 0a |.; EPRI|NT -- ..|
|00000aa0| 3b 09 50 52 49 4e 54 20 | 53 54 52 49 4e 47 20 50 |;.PRINT |STRING P|
|00000ab0| 54 45 44 20 54 4f 20 42 | 59 20 52 45 54 20 41 44 |TED TO B|Y RET AD|
|00000ac0| 52 20 55 4e 54 49 4c 20 | 42 49 4e 41 52 59 20 30 |R UNTIL |BINARY 0|
|00000ad0| 20 45 4e 43 4f 55 4e 54 | 45 52 45 44 0d 0a 3b 09 | ENCOUNT|ERED..;.|
|00000ae0| 41 46 46 45 43 54 20 4e | 4f 20 52 45 47 49 53 54 |AFFECT N|O REGIST|
|00000af0| 45 52 53 20 4f 52 20 46 | 4c 41 47 53 3b 20 55 4e |ERS OR F|LAGS; UN|
|00000b00| 4c 49 4b 45 20 50 52 49 | 4e 54 2c 20 45 50 52 49 |LIKE PRI|NT, EPRI|
|00000b10| 4e 54 20 44 4f 45 53 20 | 4e 4f 54 0d 0a 3b 09 50 |NT DOES |NOT..;.P|
|00000b20| 45 52 46 4f 52 4d 20 43 | 4f 4e 54 52 4f 4c 20 43 |ERFORM C|ONTROL C|
|00000b30| 48 41 52 41 43 54 45 52 | 20 49 4e 54 45 52 50 52 |HARACTER| INTERPR|
|00000b40| 45 54 41 54 49 4f 4e 0d | 0a 3b 0d 0a 09 45 58 54 |ETATION.|.;...EXT|
|00000b50| 09 45 50 53 54 52 0d 0a | 0d 0a 45 50 52 49 4e 54 |.EPSTR..|..EPRINT|
|00000b60| 3a 0d 0a 09 45 58 09 28 | 53 50 29 2c 48 4c 09 3b |:...EX.(|SP),HL.;|
|00000b70| 20 48 4c 3d 41 44 52 2c | 20 4f 4c 44 20 48 4c 20 | HL=ADR,| OLD HL |
|00000b80| 4f 4e 20 53 54 41 43 4b | 0d 0a 09 43 41 4c 4c 09 |ON STACK|...CALL.|
|00000b90| 45 50 53 54 52 09 3b 20 | 50 52 49 4e 54 20 53 54 |EPSTR.; |PRINT ST|
|00000ba0| 52 49 4e 47 20 50 54 45 | 44 20 54 4f 20 42 59 20 |RING PTE|D TO BY |
|00000bb0| 48 4c 0d 0a 09 45 58 09 | 28 53 50 29 2c 48 4c 09 |HL...EX.|(SP),HL.|
|00000bc0| 3b 20 52 45 53 54 4f 52 | 45 20 48 4c 20 41 4e 44 |; RESTOR|E HL AND|
|00000bd0| 20 4e 45 57 20 52 45 54 | 20 41 44 52 0d 0a 09 52 | NEW RET| ADR...R|
|00000be0| 45 54 0d 0a 0d 0a 09 45 | 4e 44 0d 0a 1a 1a 1a 1a |ET.....E|ND......|
|00000bf0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00000c00| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00000c10| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 50 53 54 52 |le Name:| SEPSTR|
|00000c20| 0d 0a 3b 20 41 75 74 68 | 6f 72 3a 20 20 52 69 63 |..; Auth|or: Ric|
|00000c30| 68 61 72 64 20 43 6f 6e | 6e 0d 0a 3b 20 53 59 53 |hard Con|n..; SYS|
|00000c40| 4c 49 42 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |LIB Vers|ion Numb|
|00000c50| 65 72 3a 20 20 33 2e 36 | 0d 0a 3b 20 4d 6f 64 75 |er: 3.6|..; Modu|
|00000c60| 6c 65 20 56 65 72 73 69 | 6f 6e 20 4e 75 6d 62 65 |le Versi|on Numbe|
|00000c70| 72 3a 20 20 31 2e 31 0d | 0a 0d 0a 09 70 75 62 6c |r: 1.1.|....publ|
|00000c80| 69 63 09 65 70 73 74 72 | 0d 0a 0d 0a 3b 0d 0a 3b |ic.epstr|....;..;|
|00000c90| 20 20 45 50 53 54 52 20 | 2d 2d 20 0d 0a 3b 09 50 | EPSTR |-- ..;.P|
|00000ca0| 52 49 4e 54 20 53 54 52 | 49 4e 47 20 50 54 45 44 |RINT STR|ING PTED|
|00000cb0| 20 54 4f 20 42 59 20 48 | 4c 0d 0a 3b 09 41 46 46 | TO BY H|L..;.AFF|
|00000cc0| 45 43 54 20 4f 4e 4c 59 | 20 48 4c 20 2d 2d 20 57 |ECT ONLY| HL -- W|
|00000cd0| 48 45 4e 20 44 4f 4e 45 | 2c 20 48 4c 20 50 54 53 |HEN DONE|, HL PTS|
|00000ce0| 20 54 4f 20 42 59 54 45 | 20 41 46 54 45 52 20 53 | TO BYTE| AFTER S|
|00000cf0| 54 52 49 4e 47 0d 0a 3b | 09 50 45 52 46 4f 52 4d |TRING..;|.PERFORM|
|00000d00| 20 4e 4f 20 43 4f 4e 54 | 52 4f 4c 20 43 48 41 52 | NO CONT|ROL CHAR|
|00000d10| 41 43 54 45 52 20 45 58 | 50 41 4e 53 49 4f 4e 20 |ACTER EX|PANSION |
|00000d20| 45 58 43 45 50 54 20 46 | 4f 52 20 3c 54 41 42 3e |EXCEPT F|OR <TAB>|
|00000d30| 0d 0a 3b 09 49 4e 54 45 | 52 50 52 45 54 20 3c 43 |..;.INTE|RPRET <C|
|00000d40| 52 3e 2c 20 3c 4c 46 3e | 2c 20 3c 42 45 4c 3e 2c |R>, <LF>|, <BEL>,|
|00000d50| 20 3c 42 53 3e 0d 0a 3b | 0d 0a 09 45 58 54 09 43 | <BS>..;|...EXT.C|
|00000d60| 4f 55 54 0d 0a 0d 0a 45 | 50 53 54 52 3a 0d 0a 09 |OUT....E|PSTR:...|
|00000d70| 50 55 53 48 09 44 45 09 | 3b 20 53 41 56 45 20 52 |PUSH.DE.|; SAVE R|
|00000d80| 45 47 53 0d 0a 09 50 55 | 53 48 09 42 43 0d 0a 09 |EGS...PU|SH.BC...|
|00000d90| 50 55 53 48 09 41 46 09 | 3b 20 53 41 56 45 20 52 |PUSH.AF.|; SAVE R|
|00000da0| 45 47 20 41 20 41 4e 44 | 20 46 4c 41 47 53 0d 0a |EG A AND| FLAGS..|
|00000db0| 09 4c 44 09 43 2c 30 09 | 3b 20 53 45 54 20 50 4f |.LD.C,0.|; SET PO|
|00000dc0| 53 49 54 49 4f 4e 20 43 | 4f 55 4e 54 0d 0a 50 53 |SITION C|OUNT..PS|
|00000dd0| 4c 3a 09 4c 44 09 41 2c | 28 48 4c 29 09 3b 20 47 |L:.LD.A,|(HL).; G|
|00000de0| 45 54 20 42 59 54 45 0d | 0a 09 49 4e 43 09 48 4c |ET BYTE.|..INC.HL|
|00000df0| 09 3b 20 50 54 20 54 4f | 20 4e 45 58 54 0d 0a 09 |.; PT TO| NEXT...|
|00000e00| 4f 52 09 41 09 3b 20 30 | 3d 44 4f 4e 45 0d 0a 09 |OR.A.; 0|=DONE...|
|00000e10| 4a 50 09 5a 2c 50 53 44 | 0d 0a 09 43 50 09 54 41 |JP.Z,PSD|...CP.TA|
|00000e20| 42 09 3b 20 45 58 50 41 | 4e 44 20 3c 54 41 42 3e |B.; EXPA|ND <TAB>|
|00000e30| 0d 0a 09 4a 50 09 5a 2c | 50 53 54 0d 0a 3b 0d 0a |...JP.Z,|PST..;..|
|00000e40| 3b 20 20 50 52 49 4e 54 | 20 43 48 41 52 0d 0a 3b |; PRINT| CHAR..;|
|00000e50| 0d 0a 09 49 4e 43 09 43 | 09 3b 20 49 4e 43 52 20 |...INC.C|.; INCR |
|00000e60| 50 4f 53 49 54 49 4f 4e | 0d 0a 09 43 41 4c 4c 09 |POSITION|...CALL.|
|00000e70| 43 4f 55 54 09 3b 20 50 | 52 49 4e 54 20 49 54 20 |COUT.; P|RINT IT |
|00000e80| 4f 4e 20 43 4f 4e 3a 0d | 0a 09 43 50 09 43 52 09 |ON CON:.|..CP.CR.|
|00000e90| 3b 20 43 48 45 43 4b 20 | 46 4f 52 20 3c 43 52 3e |; CHECK |FOR <CR>|
|00000ea0| 0d 0a 09 4a 50 09 5a 2c | 50 43 52 0d 0a 09 43 50 |...JP.Z,|PCR...CP|
|00000eb0| 09 4c 46 09 3b 20 43 48 | 45 43 4b 20 46 4f 52 20 |.LF.; CH|ECK FOR |
|00000ec0| 3c 4c 46 3e 0d 0a 09 4a | 50 09 5a 2c 50 4c 46 0d |<LF>...J|P.Z,PLF.|
|00000ed0| 0a 09 43 50 09 42 45 4c | 09 3b 20 43 48 45 43 4b |..CP.BEL|.; CHECK|
|00000ee0| 20 46 4f 52 20 3c 42 45 | 4c 3e 0d 0a 09 4a 50 09 | FOR <BE|L>...JP.|
|00000ef0| 5a 2c 50 4c 46 0d 0a 09 | 43 50 09 42 53 09 3b 20 |Z,PLF...|CP.BS.; |
|00000f00| 43 48 45 43 4b 20 46 4f | 52 20 3c 42 53 3e 0d 0a |CHECK FO|R <BS>..|
|00000f10| 09 4a 50 09 5a 2c 50 42 | 53 0d 0a 09 4a 50 09 50 |.JP.Z,PB|S...JP.P|
|00000f20| 53 4c 0d 0a 3b 0d 0a 3b | 20 20 3c 43 52 3e 20 2d |SL..;..;| <CR> -|
|00000f30| 2d 20 52 45 53 45 54 20 | 50 4f 53 49 54 49 4f 4e |- RESET |POSITION|
|00000f40| 20 43 4f 55 4e 54 0d 0a | 3b 0d 0a 50 43 52 3a 09 | COUNT..|;..PCR:.|
|00000f50| 4c 44 09 43 2c 30 09 3b | 20 52 45 53 45 54 0d 0a |LD.C,0.;| RESET..|
|00000f60| 09 4a 50 09 50 53 4c 0d | 0a 3b 0d 0a 3b 20 20 3c |.JP.PSL.|.;..; <|
|00000f70| 4c 46 3e 2c 20 3c 42 45 | 4c 3e 2c 20 3c 4e 55 4c |LF>, <BE|L>, <NUL|
|00000f80| 4c 3e 20 2d 2d 20 43 55 | 52 53 4f 52 20 44 49 44 |L> -- CU|RSOR DID|
|00000f90| 4e 27 54 20 41 44 56 41 | 4e 43 45 0d 0a 3b 0d 0a |N'T ADVA|NCE..;..|
|00000fa0| 50 4c 46 3a 09 44 45 43 | 09 43 09 3b 20 42 41 43 |PLF:.DEC|.C.; BAC|
|00000fb0| 4b 20 55 50 20 43 4f 55 | 4e 54 20 42 59 20 31 0d |K UP COU|NT BY 1.|
|00000fc0| 0a 09 4a 50 09 50 53 4c | 0d 0a 3b 0d 0a 3b 20 20 |..JP.PSL|..;..; |
|00000fd0| 3c 42 53 3e 20 2d 2d 20 | 43 55 52 53 4f 52 20 57 |<BS> -- |CURSOR W|
|00000fe0| 45 4e 54 20 42 41 43 4b | 57 41 52 44 2c 20 4d 41 |ENT BACK|WARD, MA|
|00000ff0| 59 42 45 0d 0a 3b 0d 0a | 50 42 53 3a 09 4c 44 09 |YBE..;..|PBS:.LD.|
|00001000| 41 2c 43 09 3b 20 43 48 | 45 43 4b 20 46 4f 52 20 |A,C.; CH|ECK FOR |
|00001010| 5a 45 52 4f 0d 0a 09 4f | 52 09 41 0d 0a 09 4a 50 |ZERO...O|R.A...JP|
|00001020| 09 5a 2c 50 53 4c 0d 0a | 09 44 45 43 09 43 09 3b |.Z,PSL..|.DEC.C.;|
|00001030| 20 42 41 43 4b 20 55 50 | 20 43 4f 55 4e 54 20 42 | BACK UP| COUNT B|
|00001040| 59 20 32 0d 0a 09 44 45 | 43 09 43 0d 0a 09 4a 50 |Y 2...DE|C.C...JP|
|00001050| 09 50 53 4c 0d 0a 3b 0d | 0a 3b 20 20 45 58 50 41 |.PSL..;.|.; EXPA|
|00001060| 4e 44 20 3c 54 41 42 3e | 0d 0a 3b 0d 0a 50 53 54 |ND <TAB>|..;..PST|
|00001070| 3a 09 4c 44 09 41 2c 43 | 09 3b 20 47 45 54 20 43 |:.LD.A,C|.; GET C|
|00001080| 4f 55 4e 54 0d 0a 09 41 | 4e 44 09 37 09 3b 20 4d |OUNT...A|ND.7.; M|
|00001090| 41 53 4b 20 46 4f 52 20 | 53 55 42 20 46 52 4f 4d |ASK FOR |SUB FROM|
|000010a0| 20 38 0d 0a 09 4c 44 09 | 42 2c 41 09 3b 20 53 54 | 8...LD.|B,A.; ST|
|000010b0| 4f 52 45 20 54 45 4d 50 | 4f 52 41 52 49 4c 59 0d |ORE TEMP|ORARILY.|
|000010c0| 0a 09 4c 44 09 41 2c 38 | 09 3b 20 53 55 42 54 52 |..LD.A,8|.; SUBTR|
|000010d0| 41 43 54 20 46 52 4f 4d | 20 38 20 46 4f 52 20 3c |ACT FROM| 8 FOR <|
|000010e0| 53 50 3e 20 43 4f 55 4e | 54 0d 0a 09 53 55 42 09 |SP> COUN|T...SUB.|
|000010f0| 42 0d 0a 09 4c 44 09 42 | 2c 41 09 3b 20 43 4f 55 |B...LD.B|,A.; COU|
|00001100| 4e 54 20 49 4e 20 42 0d | 0a 09 41 44 44 09 41 2c |NT IN B.|..ADD.A,|
|00001110| 43 09 3b 20 41 44 44 20 | 54 4f 20 50 4f 53 49 54 |C.; ADD |TO POSIT|
|00001120| 49 4f 4e 20 43 4f 55 4e | 54 0d 0a 09 4c 44 09 43 |ION COUN|T...LD.C|
|00001130| 2c 41 0d 0a 09 4c 44 09 | 41 2c 27 20 27 09 3b 20 |,A...LD.|A,' '.; |
|00001140| 50 52 49 4e 54 20 3c 53 | 50 3e 0d 0a 50 53 54 4c |PRINT <S|P>..PSTL|
|00001150| 3a 09 43 41 4c 4c 09 43 | 4f 55 54 0d 0a 09 44 45 |:.CALL.C|OUT...DE|
|00001160| 43 09 42 09 3b 20 43 4f | 55 4e 54 20 44 4f 57 4e |C.B.; CO|UNT DOWN|
|00001170| 0d 0a 09 4a 50 09 4e 5a | 2c 50 53 54 4c 0d 0a 09 |...JP.NZ|,PSTL...|
|00001180| 4a 50 09 50 53 4c 0d 0a | 3b 0d 0a 3b 20 20 45 50 |JP.PSL..|;..; EP|
|00001190| 53 54 52 20 44 4f 4e 45 | 0d 0a 3b 0d 0a 50 53 44 |STR DONE|..;..PSD|
|000011a0| 3a 09 50 4f 50 09 41 46 | 09 3b 20 52 45 53 54 4f |:.POP.AF|.; RESTO|
|000011b0| 52 45 20 52 45 47 20 41 | 20 41 4e 44 20 46 4c 41 |RE REG A| AND FLA|
|000011c0| 47 53 0d 0a 09 50 4f 50 | 09 42 43 09 3b 20 52 45 |GS...POP|.BC.; RE|
|000011d0| 53 54 4f 52 45 20 52 45 | 47 53 0d 0a 09 50 4f 50 |STORE RE|GS...POP|
|000011e0| 09 44 45 0d 0a 09 52 45 | 54 0d 0a 0d 0a 3b 0d 0a |.DE...RE|T....;..|
|000011f0| 3b 20 20 41 53 43 49 49 | 20 53 50 45 43 49 41 4c |; ASCII| SPECIAL|
|00001200| 20 43 48 41 52 41 43 54 | 45 52 20 45 51 55 41 54 | CHARACT|ER EQUAT|
|00001210| 45 53 0d 0a 3b 0d 0a 4e | 55 4c 4c 09 45 51 55 09 |ES..;..N|ULL.EQU.|
|00001220| 20 30 09 3b 20 4e 55 4c | 4c 0d 0a 42 45 4c 09 45 | 0.; NUL|L..BEL.E|
|00001230| 51 55 09 20 37 09 3b 20 | 42 45 4c 4c 0d 0a 42 53 |QU. 7.; |BELL..BS|
|00001240| 09 45 51 55 09 20 38 09 | 3b 20 42 41 43 4b 53 50 |.EQU. 8.|; BACKSP|
|00001250| 41 43 45 0d 0a 54 41 42 | 09 45 51 55 09 20 39 09 |ACE..TAB|.EQU. 9.|
|00001260| 3b 20 54 41 42 0d 0a 4c | 46 09 45 51 55 09 31 30 |; TAB..L|F.EQU.10|
|00001270| 09 3b 20 4c 49 4e 45 20 | 46 45 45 44 0d 0a 43 52 |.; LINE |FEED..CR|
|00001280| 09 45 51 55 09 31 33 09 | 3b 20 43 41 52 52 49 41 |.EQU.13.|; CARRIA|
|00001290| 47 45 20 52 45 54 55 52 | 4e 0d 0a 43 54 52 4c 52 |GE RETUR|N..CTRLR|
|000012a0| 09 45 51 55 09 27 52 27 | 2d 34 30 48 09 3b 20 43 |.EQU.'R'|-40H.; C|
|000012b0| 54 52 4c 2d 52 0d 0a 43 | 54 52 4c 55 09 45 51 55 |TRL-R..C|TRLU.EQU|
|000012c0| 09 27 55 27 2d 34 30 48 | 09 3b 20 43 54 52 4c 2d |.'U'-40H|.; CTRL-|
|000012d0| 55 0d 0a 43 54 52 4c 58 | 09 45 51 55 09 27 58 27 |U..CTRLX|.EQU.'X'|
|000012e0| 2d 34 30 48 09 3b 20 43 | 54 52 4c 2d 58 0d 0a 44 |-40H.; C|TRL-X..D|
|000012f0| 45 4c 09 45 51 55 09 37 | 46 48 09 3b 20 44 45 4c |EL.EQU.7|FH.; DEL|
|00001300| 45 54 45 20 43 48 41 52 | 0d 0a 0d 0a 09 45 4e 44 |ETE CHAR|.....END|
|00001310| 0d 0a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001320| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001330| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001340| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001350| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001360| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001370| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001380| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00001390| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 56 41 4c 0d |le Name:| SEVAL.|
|000013a0| 0a 3b 20 41 75 74 68 6f | 72 3a 20 20 52 69 63 68 |.; Autho|r: Rich|
|000013b0| 61 72 64 20 43 6f 6e 6e | 0d 0a 3b 20 53 59 53 4c |ard Conn|..; SYSL|
|000013c0| 49 42 20 56 65 72 73 69 | 6f 6e 20 4e 75 6d 62 65 |IB Versi|on Numbe|
|000013d0| 72 3a 20 20 33 2e 36 0d | 0a 3b 20 4d 6f 64 75 6c |r: 3.6.|.; Modul|
|000013e0| 65 20 56 65 72 73 69 6f | 6e 20 4e 75 6d 62 65 72 |e Versio|n Number|
|000013f0| 3a 20 20 31 2e 31 0d 0a | 0d 0a 09 70 75 62 6c 69 |: 1.1..|...publi|
|00001400| 63 09 65 76 61 6c 0d 0a | 0d 0a 3b 0d 0a 3b 20 20 |c.eval..|..;..; |
|00001410| 45 56 41 4c 20 2d 2d 0d | 0a 3b 09 4f 6e 20 69 6e |EVAL --.|.;.On in|
|00001420| 70 75 74 2c 20 48 4c 20 | 70 6f 69 6e 74 73 20 74 |put, HL |points t|
|00001430| 6f 20 61 20 73 74 72 69 | 6e 67 20 6f 66 20 41 53 |o a stri|ng of AS|
|00001440| 43 49 49 20 62 69 6e 61 | 72 79 2c 20 6f 63 74 61 |CII bina|ry, octa|
|00001450| 6c 2c 20 64 65 63 69 6d | 61 6c 2c 0d 0a 3b 20 6f |l, decim|al,..; o|
|00001460| 72 20 68 65 78 61 64 65 | 63 69 6d 61 6c 20 63 68 |r hexade|cimal ch|
|00001470| 61 72 61 63 74 65 72 73 | 20 74 6f 20 63 6f 6e 76 |aracters| to conv|
|00001480| 65 72 74 20 74 6f 20 62 | 69 6e 61 72 79 3b 20 74 |ert to b|inary; t|
|00001490| 68 69 73 20 73 74 72 69 | 6e 67 20 6d 61 79 20 74 |his stri|ng may t|
|000014a0| 61 6b 65 0d 0a 3b 20 61 | 6e 79 20 6f 66 20 74 68 |ake..; a|ny of th|
|000014b0| 65 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 66 6f 72 6d |e follow|ing form|
|000014c0| 73 20 2d 2d 0d 0a 3b 0d | 0a 3b 09 62 62 62 62 62 |s --..;.|.;.bbbbb|
|000014d0| 62 62 62 62 62 62 62 62 | 62 62 62 42 20 2d 2d 20 |bbbbbbbb|bbbB -- |
|000014e0| 62 3d 30 20 6f 72 20 62 | 3d 31 3b 20 62 69 6e 61 |b=0 or b|=1; bina|
|000014f0| 72 79 20 73 74 72 69 6e | 67 0d 0a 3b 09 74 74 74 |ry strin|g..;.ttt|
|00001500| 74 74 20 6f 72 20 74 74 | 74 74 74 44 20 2d 2d 20 |tt or tt|tttD -- |
|00001510| 30 3c 3d 20 74 20 3c 3d | 20 39 3b 20 64 65 63 69 |0<= t <=| 9; deci|
|00001520| 6d 61 6c 20 73 74 72 69 | 6e 67 0d 0a 3b 09 68 68 |mal stri|ng..;.hh|
|00001530| 68 68 48 20 6f 72 20 68 | 68 68 68 58 20 2d 2d 20 |hhH or h|hhhX -- |
|00001540| 30 3c 3d 20 68 20 3c 3d | 20 46 3b 20 68 65 78 61 |0<= h <=| F; hexa|
|00001550| 64 65 63 69 6d 61 6c 20 | 73 74 72 69 6e 67 0d 0a |decimal |string..|
|00001560| 3b 09 6f 6f 6f 6f 6f 6f | 6f 4f 20 6f 72 20 6f 6f |;.oooooo|oO or oo|
|00001570| 6f 6f 6f 6f 6f 51 20 2d | 2d 20 30 3c 3d 20 6f 20 |oooooQ -|- 0<= o |
|00001580| 3c 3d 37 3b 20 6f 63 74 | 61 6c 20 73 74 72 69 6e |<=7; oct|al strin|
|00001590| 67 0d 0a 3b 0d 0a 3b 09 | 4f 6e 20 72 65 74 75 72 |g..;..;.|On retur|
|000015a0| 6e 2c 20 44 45 20 3d 20 | 76 61 6c 75 65 2c 20 48 |n, DE = |value, H|
|000015b0| 4c 20 70 6f 69 6e 74 73 | 20 74 6f 20 6e 65 78 74 |L points| to next|
|000015c0| 20 62 79 74 65 20 61 66 | 74 65 72 0d 0a 3b 20 73 | byte af|ter..; s|
|000015d0| 74 72 69 6e 67 2c 20 41 | 3d 45 3b 20 42 43 20 69 |tring, A|=E; BC i|
|000015e0| 73 20 6e 6f 74 20 61 66 | 66 65 63 74 65 64 2e 0d |s not af|fected..|
|000015f0| 0a 3b 09 4f 6e 20 72 65 | 74 75 72 6e 2c 20 43 41 |.;.On re|turn, CA|
|00001600| 52 52 59 20 53 65 74 20 | 6d 65 61 6e 73 20 65 72 |RRY Set |means er|
|00001610| 72 6f 72 2c 20 61 6e 64 | 20 48 4c 20 70 74 73 20 |ror, and| HL pts |
|00001620| 74 6f 20 62 79 74 65 20 | 61 66 74 65 72 20 65 72 |to byte |after er|
|00001630| 72 6f 72 0d 0a 3b 0d 0a | 0d 0a 09 45 58 54 09 43 |ror..;..|...EXT.C|
|00001640| 41 50 53 09 3b 20 43 41 | 50 49 54 41 4c 49 5a 41 |APS.; CA|PITALIZA|
|00001650| 54 49 4f 4e 20 52 4f 55 | 54 49 4e 45 0d 0a 09 45 |TION ROU|TINE...E|
|00001660| 58 54 09 45 56 41 4c 31 | 36 09 3b 20 43 4f 4e 56 |XT.EVAL1|6.; CONV|
|00001670| 45 52 54 20 48 45 58 20 | 53 54 52 49 4e 47 0d 0a |ERT HEX |STRING..|
|00001680| 09 45 58 54 09 45 56 41 | 4c 31 30 09 3b 20 43 4f |.EXT.EVA|L10.; CO|
|00001690| 4e 56 45 52 54 20 44 45 | 43 20 53 54 52 49 4e 47 |NVERT DE|C STRING|
|000016a0| 0d 0a 09 45 58 54 09 45 | 56 41 4c 38 09 3b 20 43 |...EXT.E|VAL8.; C|
|000016b0| 4f 4e 56 45 52 54 20 4f | 43 54 20 53 54 52 49 4e |ONVERT O|CT STRIN|
|000016c0| 47 0d 0a 09 45 58 54 09 | 45 56 41 4c 32 09 3b 20 |G...EXT.|EVAL2.; |
|000016d0| 43 4f 4e 56 45 52 54 20 | 42 49 4e 20 53 54 52 49 |CONVERT |BIN STRI|
|000016e0| 4e 47 0d 0a 0d 0a 45 56 | 41 4c 3a 0d 0a 09 50 55 |NG....EV|AL:...PU|
|000016f0| 53 48 09 42 43 09 3b 20 | 53 41 56 45 20 42 43 0d |SH.BC.; |SAVE BC.|
|00001700| 0a 09 50 55 53 48 09 48 | 4c 09 3b 20 53 41 56 45 |..PUSH.H|L.; SAVE|
|00001710| 20 50 54 52 20 54 4f 20 | 31 53 54 20 43 48 41 52 | PTR TO |1ST CHAR|
|00001720| 0d 0a 09 58 4f 52 09 41 | 09 3b 20 41 3d 30 0d 0a |...XOR.A|.; A=0..|
|00001730| 09 4c 44 09 28 43 46 4c | 41 47 29 2c 41 09 3b 20 |.LD.(CFL|AG),A.; |
|00001740| 53 45 54 20 43 48 41 52 | 41 43 54 45 52 20 46 4f |SET CHAR|ACTER FO|
|00001750| 55 4e 44 20 46 4c 41 47 | 20 54 4f 20 4e 55 4c 4c |UND FLAG| TO NULL|
|00001760| 0d 0a 0d 0a 3b 20 20 46 | 69 6e 64 20 65 6e 64 20 |....; F|ind end |
|00001770| 6f 66 20 73 74 72 69 6e | 67 0d 0a 46 45 4e 44 3a |of strin|g..FEND:|
|00001780| 0d 0a 09 4c 44 09 41 2c | 28 48 4c 29 09 3b 20 47 |...LD.A,|(HL).; G|
|00001790| 45 54 20 42 59 54 45 0d | 0a 09 43 41 4c 4c 09 43 |ET BYTE.|..CALL.C|
|000017a0| 41 50 53 09 3b 20 43 41 | 50 49 54 41 4c 49 5a 45 |APS.; CA|PITALIZE|
|000017b0| 0d 0a 09 53 55 42 09 27 | 30 27 09 3b 20 41 53 53 |...SUB.'|0'.; ASS|
|000017c0| 55 4d 45 20 48 45 58 0d | 0a 09 4a 50 09 43 2c 46 |UME HEX.|..JP.C,F|
|000017d0| 45 44 4f 4e 45 09 3b 20 | 44 4f 4e 45 0d 0a 09 43 |EDONE.; |DONE...C|
|000017e0| 50 09 31 30 09 3b 20 30 | 2d 39 3f 0d 0a 09 4a 50 |P.10.; 0|-9?...JP|
|000017f0| 09 43 2c 46 45 43 4f 4e | 54 09 3b 20 43 4f 4e 54 |.C,FECON|T.; CONT|
|00001800| 49 4e 55 45 0d 0a 09 53 | 55 42 09 37 0d 0a 09 43 |INUE...S|UB.7...C|
|00001810| 50 09 31 36 09 3b 20 41 | 2d 46 3f 0d 0a 09 4a 50 |P.16.; A|-F?...JP|
|00001820| 09 4e 43 2c 46 45 44 4f | 4e 45 0d 0a 0d 0a 3b 20 |.NC,FEDO|NE....; |
|00001830| 20 44 69 67 69 74 20 66 | 6f 75 6e 64 20 2d 2d 20 | Digit f|ound -- |
|00001840| 73 65 74 20 66 6c 61 67 | 20 61 6e 64 20 70 6f 69 |set flag| and poi|
|00001850| 6e 74 20 74 6f 20 6e 65 | 78 74 0d 0a 46 45 43 4f |nt to ne|xt..FECO|
|00001860| 4e 54 3a 0d 0a 09 4c 44 | 09 41 2c 31 09 3b 20 47 |NT:...LD|.A,1.; G|
|00001870| 45 54 20 41 20 31 0d 0a | 09 4c 44 09 28 43 46 4c |ET A 1..|.LD.(CFL|
|00001880| 41 47 29 2c 41 09 3b 20 | 53 45 54 20 46 4c 41 47 |AG),A.; |SET FLAG|
|00001890| 0d 0a 09 49 4e 43 09 48 | 4c 09 3b 20 50 54 20 54 |...INC.H|L.; PT T|
|000018a0| 4f 20 4e 45 58 54 0d 0a | 09 4a 50 09 46 45 4e 44 |O NEXT..|.JP.FEND|
|000018b0| 0d 0a 0d 0a 3b 20 20 46 | 6f 75 6e 64 20 65 6e 64 |....; F|ound end|
|000018c0| 20 6f 66 20 73 74 72 69 | 6e 67 0d 0a 46 45 44 4f | of stri|ng..FEDO|
|000018d0| 4e 45 3a 0d 0a 09 4c 44 | 09 41 2c 28 48 4c 29 09 |NE:...LD|.A,(HL).|
|000018e0| 3b 20 47 45 54 20 4f 46 | 46 45 4e 44 49 4e 47 20 |; GET OF|FENDING |
|000018f0| 43 48 41 52 0d 0a 09 43 | 41 4c 4c 09 43 41 50 53 |CHAR...C|ALL.CAPS|
|00001900| 09 3b 20 43 41 50 49 54 | 41 4c 49 5a 45 0d 0a 09 |.; CAPIT|ALIZE...|
|00001910| 4c 44 09 43 2c 41 0d 0a | 09 44 45 43 09 48 4c 09 |LD.C,A..|.DEC.HL.|
|00001920| 3b 20 47 45 54 20 50 52 | 45 56 49 4f 55 53 20 43 |; GET PR|EVIOUS C|
|00001930| 48 41 52 20 28 50 4f 53 | 53 49 42 4c 59 20 42 49 |HAR (POS|SIBLY BI|
|00001940| 4e 41 52 59 20 4f 52 20 | 44 45 43 29 0d 0a 09 4c |NARY OR |DEC)...L|
|00001950| 44 09 41 2c 28 48 4c 29 | 09 3b 20 47 45 54 20 49 |D.A,(HL)|.; GET I|
|00001960| 54 0d 0a 09 43 41 4c 4c | 09 43 41 50 53 09 3b 20 |T...CALL|.CAPS.; |
|00001970| 43 41 50 49 54 41 4c 49 | 5a 45 0d 0a 09 4c 44 09 |CAPITALI|ZE...LD.|
|00001980| 42 2c 41 0d 0a 09 50 4f | 50 09 48 4c 09 3b 20 52 |B,A...PO|P.HL.; R|
|00001990| 45 53 54 4f 52 45 20 50 | 4f 49 4e 54 45 52 20 54 |ESTORE P|OINTER T|
|000019a0| 4f 20 31 53 54 20 43 48 | 41 52 20 49 4e 20 53 54 |O 1ST CH|AR IN ST|
|000019b0| 52 49 4e 47 0d 0a 09 4c | 44 09 44 45 2c 30 09 3b |RING...L|D.DE,0.;|
|000019c0| 20 53 45 54 20 5a 45 52 | 4f 20 56 41 4c 55 45 20 | SET ZER|O VALUE |
|000019d0| 28 45 52 52 4f 52 20 45 | 58 49 54 29 0d 0a 09 4c |(ERROR E|XIT)...L|
|000019e0| 44 09 41 2c 28 43 46 4c | 41 47 29 09 3b 20 41 4e |D.A,(CFL|AG).; AN|
|000019f0| 59 20 43 48 41 52 53 3f | 0d 0a 09 4a 50 09 5a 2c |Y CHARS?|...JP.Z,|
|00001a00| 44 4f 4e 45 09 3b 20 44 | 4f 4e 45 20 49 46 20 4e |DONE.; D|ONE IF N|
|00001a10| 4f 4e 45 0d 0a 0d 0a 3b | 20 20 44 65 74 65 72 6d |ONE....;| Determ|
|00001a20| 69 6e 65 20 74 79 70 65 | 20 6f 66 20 73 74 72 69 |ine type| of stri|
|00001a30| 6e 67 20 28 48 2c 58 3d | 68 65 78 3b 20 4f 2c 51 |ng (H,X=|hex; O,Q|
|00001a40| 3d 6f 63 74 3b 20 42 3d | 62 69 6e 3b 20 44 2c 6f |=oct; B=|bin; D,o|
|00001a50| 74 68 65 72 3d 64 65 63 | 29 0d 0a 09 4c 44 09 41 |ther=dec|)...LD.A|
|00001a60| 2c 43 09 3b 20 47 45 54 | 20 54 45 52 4d 49 4e 41 |,C.; GET| TERMINA|
|00001a70| 54 49 4e 47 20 43 48 41 | 52 0d 0a 09 43 50 09 27 |TING CHA|R...CP.'|
|00001a80| 48 27 09 3b 20 48 45 58 | 0d 0a 09 4a 50 09 5a 2c |H'.; HEX|...JP.Z,|
|00001a90| 45 48 45 58 0d 0a 09 43 | 50 09 27 58 27 0d 0a 09 |EHEX...C|P.'X'...|
|00001aa0| 4a 50 09 5a 2c 45 48 45 | 58 0d 0a 09 43 50 09 27 |JP.Z,EHE|X...CP.'|
|00001ab0| 4f 27 09 3b 20 4f 43 54 | 41 4c 0d 0a 09 4a 50 09 |O'.; OCT|AL...JP.|
|00001ac0| 5a 2c 45 4f 43 54 0d 0a | 09 43 50 09 27 51 27 0d |Z,EOCT..|.CP.'Q'.|
|00001ad0| 0a 09 4a 50 09 5a 2c 45 | 4f 43 54 0d 0a 09 4c 44 |..JP.Z,E|OCT...LD|
|00001ae0| 09 41 2c 42 09 3b 20 47 | 45 54 20 50 52 45 56 49 |.A,B.; G|ET PREVI|
|00001af0| 4f 55 53 20 43 48 41 52 | 20 46 4f 52 20 42 49 4e |OUS CHAR| FOR BIN|
|00001b00| 41 52 59 20 43 48 45 43 | 4b 0d 0a 09 43 50 09 27 |ARY CHEC|K...CP.'|
|00001b10| 42 27 09 3b 20 42 49 4e | 41 52 59 3f 0d 0a 09 4a |B'.; BIN|ARY?...J|
|00001b20| 50 09 5a 2c 45 42 49 4e | 0d 0a 0d 0a 3b 20 20 45 |P.Z,EBIN|....; E|
|00001b30| 76 61 6c 75 61 74 65 20 | 73 74 72 69 6e 67 20 61 |valuate |string a|
|00001b40| 73 20 64 65 63 69 6d 61 | 6c 0d 0a 09 43 41 4c 4c |s decima|l...CALL|
|00001b50| 09 45 56 41 4c 31 30 09 | 3b 20 45 56 41 4c 55 41 |.EVAL10.|; EVALUA|
|00001b60| 54 45 20 41 53 20 44 45 | 43 49 4d 41 4c 0d 0a 09 |TE AS DE|CIMAL...|
|00001b70| 4c 44 09 41 2c 28 48 4c | 29 09 3b 20 4d 41 59 20 |LD.A,(HL|).; MAY |
|00001b80| 50 54 20 54 4f 20 44 0d | 0a 09 43 41 4c 4c 09 43 |PT TO D.|..CALL.C|
|00001b90| 41 50 53 0d 0a 09 43 50 | 09 27 44 27 09 3b 20 49 |APS...CP|.'D'.; I|
|00001ba0| 4e 43 52 20 48 4c 20 49 | 46 20 53 4f 0d 0a 09 4a |NCR HL I|F SO...J|
|00001bb0| 50 09 4e 5a 2c 44 4f 4e | 45 0d 0a 09 49 4e 43 09 |P.NZ,DON|E...INC.|
|00001bc0| 48 4c 09 3b 20 50 54 20 | 54 4f 20 4e 45 58 54 0d |HL.; PT |TO NEXT.|
|00001bd0| 0a 09 4a 50 09 44 4f 4e | 45 0d 0a 0d 0a 3b 20 20 |..JP.DON|E....; |
|00001be0| 45 76 61 6c 75 61 74 65 | 20 73 74 72 69 6e 67 20 |Evaluate| string |
|00001bf0| 61 73 20 68 65 78 61 64 | 65 63 69 6d 61 6c 0d 0a |as hexad|ecimal..|
|00001c00| 45 48 45 58 3a 0d 0a 09 | 43 41 4c 4c 09 45 56 41 |EHEX:...|CALL.EVA|
|00001c10| 4c 31 36 09 3b 20 45 56 | 41 55 41 54 45 20 41 53 |L16.; EV|AUATE AS|
|00001c20| 20 48 45 58 41 44 45 43 | 49 4d 41 4c 0d 0a 09 4c | HEXADEC|IMAL...L|
|00001c30| 44 09 41 2c 28 48 4c 29 | 09 3b 20 4d 55 53 54 20 |D.A,(HL)|.; MUST |
|00001c40| 50 54 20 54 4f 20 48 20 | 4f 52 20 58 0d 0a 09 43 |PT TO H |OR X...C|
|00001c50| 41 4c 4c 09 43 41 50 53 | 0d 0a 09 49 4e 43 09 48 |ALL.CAPS|...INC.H|
|00001c60| 4c 09 3b 20 50 54 20 54 | 4f 20 4e 45 58 54 0d 0a |L.; PT T|O NEXT..|
|00001c70| 09 43 50 09 27 48 27 0d | 0a 09 4a 50 09 5a 2c 44 |.CP.'H'.|..JP.Z,D|
|00001c80| 4f 4e 45 0d 0a 09 43 50 | 09 27 58 27 0d 0a 09 4a |ONE...CP|.'X'...J|
|00001c90| 50 09 5a 2c 44 4f 4e 45 | 0d 0a 0d 0a 3b 20 20 53 |P.Z,DONE|....; S|
|00001ca0| 74 72 69 6e 67 20 45 72 | 72 6f 72 20 2d 2d 20 73 |tring Er|ror -- s|
|00001cb0| 65 74 20 66 6c 61 67 0d | 0a 45 52 52 4f 52 3a 0d |et flag.|.ERROR:.|
|00001cc0| 0a 09 4c 44 09 41 2c 45 | 09 3b 20 4c 4f 57 2d 4f |..LD.A,E|.; LOW-O|
|00001cd0| 52 44 45 52 20 49 4e 20 | 41 0d 0a 09 53 43 46 09 |RDER IN |A...SCF.|
|00001ce0| 09 3b 20 53 45 54 20 43 | 41 52 52 59 20 46 4c 41 |.; SET C|ARRY FLA|
|00001cf0| 47 20 46 4f 52 20 45 52 | 52 4f 52 0d 0a 09 50 4f |G FOR ER|ROR...PO|
|00001d00| 50 09 42 43 09 3b 20 52 | 45 53 54 4f 52 45 20 42 |P.BC.; R|ESTORE B|
|00001d10| 43 0d 0a 09 52 45 54 0d | 0a 0d 0a 3b 20 20 45 76 |C...RET.|...; Ev|
|00001d20| 61 6c 75 61 74 65 20 73 | 74 72 69 6e 67 20 61 73 |aluate s|tring as|
|00001d30| 20 6f 63 74 61 6c 0d 0a | 45 4f 43 54 3a 0d 0a 09 | octal..|EOCT:...|
|00001d40| 43 41 4c 4c 09 45 56 41 | 4c 38 09 3b 20 45 56 41 |CALL.EVA|L8.; EVA|
|00001d50| 4c 55 41 54 45 20 41 53 | 20 4f 43 54 41 4c 0d 0a |LUATE AS| OCTAL..|
|00001d60| 09 4c 44 09 41 2c 28 48 | 4c 29 09 3b 20 4d 55 53 |.LD.A,(H|L).; MUS|
|00001d70| 54 20 50 54 20 54 4f 20 | 4f 20 4f 52 20 51 0d 0a |T PT TO |O OR Q..|
|00001d80| 09 43 41 4c 4c 09 43 41 | 50 53 0d 0a 09 49 4e 43 |.CALL.CA|PS...INC|
|00001d90| 09 48 4c 09 3b 20 50 54 | 20 54 4f 20 4e 45 58 54 |.HL.; PT| TO NEXT|
|00001da0| 0d 0a 09 43 50 09 27 4f | 27 0d 0a 09 4a 50 09 5a |...CP.'O|'...JP.Z|
|00001db0| 2c 44 4f 4e 45 0d 0a 09 | 43 50 09 27 51 27 0d 0a |,DONE...|CP.'Q'..|
|00001dc0| 09 4a 50 09 5a 2c 44 4f | 4e 45 0d 0a 09 4a 50 09 |.JP.Z,DO|NE...JP.|
|00001dd0| 45 52 52 4f 52 09 3b 20 | 45 52 52 4f 52 20 4f 54 |ERROR.; |ERROR OT|
|00001de0| 48 45 52 57 49 53 45 0d | 0a 0d 0a 3b 20 20 46 6c |HERWISE.|...; Fl|
|00001df0| 61 67 20 62 75 66 66 65 | 72 0d 0a 43 46 4c 41 47 |ag buffe|r..CFLAG|
|00001e00| 3a 09 44 53 09 31 09 3b | 20 30 20 49 46 20 4e 4f |:.DS.1.;| 0 IF NO|
|00001e10| 20 43 48 41 52 53 20 49 | 4e 20 53 54 52 49 4e 47 | CHARS I|N STRING|
|00001e20| 2c 20 31 20 4f 54 48 45 | 52 57 49 53 45 0d 0a 0d |, 1 OTHE|RWISE...|
|00001e30| 0a 3b 20 20 45 76 61 6c | 75 61 74 65 20 73 74 72 |.; Eval|uate str|
|00001e40| 69 6e 67 20 61 73 20 62 | 69 6e 61 72 79 0d 0a 45 |ing as b|inary..E|
|00001e50| 42 49 4e 3a 0d 0a 09 43 | 41 4c 4c 09 45 56 41 4c |BIN:...C|ALL.EVAL|
|00001e60| 32 09 3b 20 45 56 41 4c | 55 41 54 45 20 41 53 20 |2.; EVAL|UATE AS |
|00001e70| 42 49 4e 41 52 59 0d 0a | 09 4c 44 09 41 2c 28 48 |BINARY..|.LD.A,(H|
|00001e80| 4c 29 09 3b 20 4d 55 53 | 54 20 50 54 20 54 4f 20 |L).; MUS|T PT TO |
|00001e90| 42 0d 0a 09 43 41 4c 4c | 09 43 41 50 53 0d 0a 09 |B...CALL|.CAPS...|
|00001ea0| 49 4e 43 09 48 4c 09 3b | 20 50 54 20 54 4f 20 4e |INC.HL.;| PT TO N|
|00001eb0| 45 58 54 0d 0a 09 43 50 | 09 27 42 27 0d 0a 09 4a |EXT...CP|.'B'...J|
|00001ec0| 50 09 4e 5a 2c 45 52 52 | 4f 52 0d 0a 0d 0a 3b 20 |P.NZ,ERR|OR....; |
|00001ed0| 20 44 6f 6e 65 20 77 69 | 74 68 20 65 76 61 6c 75 | Done wi|th evalu|
|00001ee0| 61 74 69 6f 6e 20 2d 2d | 20 6e 6f 20 65 72 72 6f |ation --| no erro|
|00001ef0| 72 0d 0a 44 4f 4e 45 3a | 0d 0a 09 4c 44 09 41 2c |r..DONE:|...LD.A,|
|00001f00| 45 09 3b 20 4c 4f 57 2d | 4f 52 44 45 52 20 49 4e |E.; LOW-|ORDER IN|
|00001f10| 20 41 0d 0a 09 4f 52 09 | 41 09 3b 20 43 4c 45 41 | A...OR.|A.; CLEA|
|00001f20| 52 20 43 41 52 52 59 20 | 46 4c 41 47 0d 0a 09 50 |R CARRY |FLAG...P|
|00001f30| 4f 50 09 42 43 09 3b 20 | 52 45 53 54 4f 52 45 20 |OP.BC.; |RESTORE |
|00001f40| 42 43 0d 0a 09 52 45 54 | 0d 0a 0d 0a 09 45 4e 44 |BC...RET|.....END|
|00001f50| 0d 0a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001f60| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001f70| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00001f80| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00001f90| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 56 41 4c 31 |le Name:| SEVAL1|
|00001fa0| 0d 0a 3b 20 41 75 74 68 | 6f 72 3a 20 20 52 69 63 |..; Auth|or: Ric|
|00001fb0| 68 61 72 64 20 43 6f 6e | 6e 0d 0a 3b 20 53 59 53 |hard Con|n..; SYS|
|00001fc0| 4c 49 42 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |LIB Vers|ion Numb|
|00001fd0| 65 72 3a 20 20 33 2e 36 | 0d 0a 3b 20 4d 6f 64 75 |er: 3.6|..; Modu|
|00001fe0| 6c 65 20 56 65 72 73 69 | 6f 6e 20 4e 75 6d 62 65 |le Versi|on Numbe|
|00001ff0| 72 3a 20 20 31 2e 31 0d | 0a 0d 0a 09 70 75 62 6c |r: 1.1.|....publ|
|00002000| 69 63 09 65 76 61 6c 31 | 30 0d 0a 0d 0a 3b 0d 0a |ic.eval1|0....;..|
|00002010| 3b 20 20 45 56 41 4c 31 | 30 20 2d 2d 0d 0a 3b 09 |; EVAL1|0 --..;.|
|00002020| 43 6f 6e 76 65 72 74 20 | 74 68 65 20 73 74 72 69 |Convert |the stri|
|00002030| 6e 67 20 6f 66 20 41 53 | 43 49 49 20 64 65 63 69 |ng of AS|CII deci|
|00002040| 6d 61 6c 20 64 69 67 69 | 74 73 20 70 6f 69 6e 74 |mal digi|ts point|
|00002050| 65 64 20 74 6f 20 62 79 | 20 48 4c 0d 0a 3b 20 69 |ed to by| HL..; i|
|00002060| 6e 74 6f 20 61 20 62 69 | 6e 61 72 79 20 76 61 6c |nto a bi|nary val|
|00002070| 75 65 3b 20 73 74 72 69 | 6e 67 20 69 73 20 63 6f |ue; stri|ng is co|
|00002080| 6e 76 65 72 74 65 64 20 | 75 6e 74 69 6c 20 69 6e |nverted |until in|
|00002090| 76 61 6c 69 64 20 64 69 | 67 69 74 20 69 73 0d 0a |valid di|git is..|
|000020a0| 3b 20 65 6e 63 6f 75 6e | 74 65 72 65 64 2e 0d 0a |; encoun|tered...|
|000020b0| 3b 09 4f 6e 20 72 65 74 | 75 72 6e 2c 20 48 4c 20 |;.On ret|urn, HL |
|000020c0| 70 6f 69 6e 74 73 20 74 | 6f 20 65 72 72 6f 72 20 |points t|o error |
|000020d0| 63 68 61 72 61 63 74 65 | 72 2c 20 44 45 3d 76 61 |characte|r, DE=va|
|000020e0| 6c 75 65 2c 20 41 3d 45 | 20 28 6c 6f 77 0d 0a 3b |lue, A=E| (low..;|
|000020f0| 20 6f 72 64 65 72 20 38 | 20 62 69 74 73 20 6f 66 | order 8| bits of|
|00002100| 20 76 61 6c 75 65 29 2e | 20 20 42 43 20 6e 6f 74 | value).| BC not|
|00002110| 20 61 66 66 65 63 74 65 | 64 2e 0d 0a 3b 0d 0a 45 | affecte|d...;..E|
|00002120| 56 41 4c 31 30 3a 0d 0a | 09 50 55 53 48 09 42 43 |VAL10:..|.PUSH.BC|
|00002130| 09 3b 20 53 41 56 45 20 | 42 43 0d 0a 09 4c 44 09 |.; SAVE |BC...LD.|
|00002140| 44 45 2c 30 09 3b 20 53 | 45 54 20 44 45 3d 30 20 |DE,0.; S|ET DE=0 |
|00002150| 49 4e 49 54 49 41 4c 4c | 59 0d 0a 0d 0a 3b 20 20 |INITIALL|Y....; |
|00002160| 47 65 74 20 6e 65 78 74 | 20 64 69 67 69 74 20 61 |Get next| digit a|
|00002170| 6e 64 20 63 68 65 63 6b | 20 66 6f 72 20 27 30 27 |nd check| for '0'|
|00002180| 20 2d 20 27 39 27 0d 0a | 45 31 30 4c 3a 0d 0a 09 | - '9'..|E10L:...|
|00002190| 4c 44 09 41 2c 28 48 4c | 29 09 3b 20 47 45 54 20 |LD.A,(HL|).; GET |
|000021a0| 42 59 54 45 0d 0a 09 43 | 50 09 27 30 27 09 3b 20 |BYTE...C|P.'0'.; |
|000021b0| 43 48 45 43 4b 20 46 4f | 52 20 52 41 4e 47 45 0d |CHECK FO|R RANGE.|
|000021c0| 0a 09 4a 50 09 43 2c 44 | 4f 4e 45 0d 0a 09 53 55 |..JP.C,D|ONE...SU|
|000021d0| 42 09 27 30 27 09 3b 20 | 43 4f 4e 56 45 52 54 20 |B.'0'.; |CONVERT |
|000021e0| 54 4f 20 42 49 4e 41 52 | 59 0d 0a 09 43 50 09 31 |TO BINAR|Y...CP.1|
|000021f0| 30 09 3b 20 43 48 45 43 | 4b 20 46 4f 52 20 52 41 |0.; CHEC|K FOR RA|
|00002200| 4e 47 45 0d 0a 09 4a 50 | 09 4e 43 2c 44 4f 4e 45 |NGE...JP|.NC,DONE|
|00002210| 0d 0a 0d 0a 09 50 55 53 | 48 09 41 46 09 3b 20 53 |.....PUS|H.AF.; S|
|00002220| 41 56 45 20 56 41 4c 55 | 45 0d 0a 0d 0a 3b 20 20 |AVE VALU|E....; |
|00002230| 4d 75 6c 74 69 70 6c 79 | 20 44 45 20 62 79 20 31 |Multiply| DE by 1|
|00002240| 30 0d 0a 4d 55 4c 31 30 | 3a 0d 0a 09 50 55 53 48 |0..MUL10|:...PUSH|
|00002250| 09 48 4c 09 3b 20 53 41 | 56 45 20 48 4c 0d 0a 09 |.HL.; SA|VE HL...|
|00002260| 4c 44 09 48 2c 44 09 3b | 20 48 4c 3d 44 45 0d 0a |LD.H,D.;| HL=DE..|
|00002270| 09 4c 44 09 4c 2c 45 0d | 0a 09 41 44 44 09 48 4c |.LD.L,E.|..ADD.HL|
|00002280| 2c 48 4c 09 3b 20 2a 32 | 0d 0a 09 41 44 44 09 48 |,HL.; *2|...ADD.H|
|00002290| 4c 2c 48 4c 09 3b 20 2a | 34 0d 0a 09 41 44 44 09 |L,HL.; *|4...ADD.|
|000022a0| 48 4c 2c 44 45 09 3b 20 | 2a 35 0d 0a 09 41 44 44 |HL,DE.; |*5...ADD|
|000022b0| 09 48 4c 2c 48 4c 09 3b | 20 2a 31 30 0d 0a 09 45 |.HL,HL.;| *10...E|
|000022c0| 58 09 44 45 2c 48 4c 0d | 0a 09 50 4f 50 09 48 4c |X.DE,HL.|..POP.HL|
|000022d0| 09 3b 20 52 45 53 54 4f | 52 45 20 48 4c 0d 0a 0d |.; RESTO|RE HL...|
|000022e0| 0a 3b 20 20 41 64 64 20 | 69 6e 20 41 0d 0a 09 50 |.; Add |in A...P|
|000022f0| 4f 50 09 41 46 09 3b 20 | 47 45 54 20 4c 41 54 45 |OP.AF.; |GET LATE|
|00002300| 53 54 20 44 49 47 49 54 | 0d 0a 09 41 44 44 09 41 |ST DIGIT|...ADD.A|
|00002310| 2c 45 09 3b 20 41 3d 41 | 2b 45 0d 0a 09 4c 44 09 |,E.; A=A|+E...LD.|
|00002320| 45 2c 41 0d 0a 09 4c 44 | 09 41 2c 44 09 3b 20 41 |E,A...LD|.A,D.; A|
|00002330| 44 44 20 54 4f 20 44 20 | 49 46 20 4e 45 43 45 53 |DD TO D |IF NECES|
|00002340| 53 41 52 59 0d 0a 09 41 | 44 43 09 41 2c 30 0d 0a |SARY...A|DC.A,0..|
|00002350| 09 4c 44 09 44 2c 41 09 | 3b 20 53 54 4f 52 45 20 |.LD.D,A.|; STORE |
|00002360| 52 45 53 55 4c 54 0d 0a | 0d 0a 3b 20 20 43 6f 6e |RESULT..|..; Con|
|00002370| 74 69 6e 75 65 0d 0a 09 | 49 4e 43 09 48 4c 09 3b |tinue...|INC.HL.;|
|00002380| 20 50 54 20 54 4f 20 4e | 45 58 54 20 43 48 41 52 | PT TO N|EXT CHAR|
|00002390| 41 43 54 45 52 0d 0a 09 | 4a 50 09 45 31 30 4c 0d |ACTER...|JP.E10L.|
|000023a0| 0a 0d 0a 3b 20 20 44 6f | 6e 65 20 2d 2d 20 52 65 |...; Do|ne -- Re|
|000023b0| 73 75 6c 74 20 61 6c 72 | 65 61 64 79 20 69 6e 20 |sult alr|eady in |
|000023c0| 44 45 3b 20 53 65 74 20 | 41 3d 45 0d 0a 44 4f 4e |DE; Set |A=E..DON|
|000023d0| 45 3a 0d 0a 09 4c 44 09 | 41 2c 45 09 3b 20 41 3d |E:...LD.|A,E.; A=|
|000023e0| 45 0d 0a 09 50 4f 50 09 | 42 43 09 3b 20 52 45 53 |E...POP.|BC.; RES|
|000023f0| 54 4f 52 45 20 42 43 0d | 0a 0d 0a 09 52 45 54 0d |TORE BC.|....RET.|
|00002400| 0a 0d 0a 09 45 4e 44 0d | 0a 1a 1a 1a 1a 1a 1a 1a |....END.|........|
|00002410| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002420| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002430| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002440| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002450| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002460| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002470| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002480| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00002490| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 56 41 4c 32 |le Name:| SEVAL2|
|000024a0| 0d 0a 3b 20 41 75 74 68 | 6f 72 3a 20 20 52 69 63 |..; Auth|or: Ric|
|000024b0| 68 61 72 64 20 43 6f 6e | 6e 0d 0a 3b 20 53 59 53 |hard Con|n..; SYS|
|000024c0| 4c 49 42 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |LIB Vers|ion Numb|
|000024d0| 65 72 3a 20 20 33 2e 36 | 0d 0a 3b 20 4d 6f 64 75 |er: 3.6|..; Modu|
|000024e0| 6c 65 20 56 65 72 73 69 | 6f 6e 20 4e 75 6d 62 65 |le Versi|on Numbe|
|000024f0| 72 3a 20 20 31 2e 31 0d | 0a 0d 0a 09 70 75 62 6c |r: 1.1.|....publ|
|00002500| 69 63 09 65 76 61 6c 31 | 36 0d 0a 0d 0a 3b 0d 0a |ic.eval1|6....;..|
|00002510| 3b 20 20 45 56 41 4c 31 | 36 20 2d 2d 0d 0a 3b 09 |; EVAL1|6 --..;.|
|00002520| 43 6f 6e 76 65 72 74 20 | 74 68 65 20 73 74 72 69 |Convert |the stri|
|00002530| 6e 67 20 6f 66 20 41 53 | 43 49 49 20 68 65 78 61 |ng of AS|CII hexa|
|00002540| 64 65 63 69 6d 61 6c 20 | 64 69 67 69 74 73 20 70 |decimal |digits p|
|00002550| 6f 69 6e 74 65 64 20 74 | 6f 20 62 79 20 48 4c 0d |ointed t|o by HL.|
|00002560| 0a 3b 20 69 6e 74 6f 20 | 61 20 62 69 6e 61 72 79 |.; into |a binary|
|00002570| 20 76 61 6c 75 65 3b 20 | 73 74 72 69 6e 67 20 69 | value; |string i|
|00002580| 73 20 63 6f 6e 76 65 72 | 74 65 64 20 75 6e 74 69 |s conver|ted unti|
|00002590| 6c 20 69 6e 76 61 6c 69 | 64 20 64 69 67 69 74 20 |l invali|d digit |
|000025a0| 69 73 0d 0a 3b 20 65 6e | 63 6f 75 6e 74 65 72 65 |is..; en|countere|
|000025b0| 64 2e 0d 0a 3b 09 4f 6e | 20 72 65 74 75 72 6e 2c |d...;.On| return,|
|000025c0| 20 48 4c 20 70 6f 69 6e | 74 73 20 74 6f 20 65 72 | HL poin|ts to er|
|000025d0| 72 6f 72 20 63 68 61 72 | 61 63 74 65 72 2c 20 44 |ror char|acter, D|
|000025e0| 45 3d 76 61 6c 75 65 2c | 20 41 3d 45 20 28 6c 6f |E=value,| A=E (lo|
|000025f0| 77 0d 0a 3b 20 6f 72 64 | 65 72 20 38 20 62 69 74 |w..; ord|er 8 bit|
|00002600| 73 20 6f 66 20 76 61 6c | 75 65 29 2e 20 20 42 43 |s of val|ue). BC|
|00002610| 20 6e 6f 74 20 61 66 66 | 65 63 74 65 64 2e 0d 0a | not aff|ected...|
|00002620| 3b 0d 0a 0d 0a 09 45 58 | 54 09 43 41 50 53 09 3b |;.....EX|T.CAPS.;|
|00002630| 20 43 41 50 49 54 41 4c | 49 5a 41 54 49 4f 4e 20 | CAPITAL|IZATION |
|00002640| 52 4f 55 54 49 4e 45 0d | 0a 0d 0a 45 56 41 4c 31 |ROUTINE.|...EVAL1|
|00002650| 36 3a 0d 0a 09 50 55 53 | 48 09 42 43 09 3b 20 53 |6:...PUS|H.BC.; S|
|00002660| 41 56 45 20 42 43 0d 0a | 09 4c 44 09 44 45 2c 30 |AVE BC..|.LD.DE,0|
|00002670| 09 3b 20 53 45 54 20 44 | 45 3d 30 20 49 4e 49 54 |.; SET D|E=0 INIT|
|00002680| 49 41 4c 4c 59 0d 0a 0d | 0a 3b 20 20 47 65 74 20 |IALLY...|.; Get |
|00002690| 6e 65 78 74 20 64 69 67 | 69 74 20 61 6e 64 20 63 |next dig|it and c|
|000026a0| 68 65 63 6b 20 66 6f 72 | 20 27 30 27 20 2d 20 27 |heck for| '0' - '|
|000026b0| 39 27 0d 0a 45 31 36 4c | 3a 0d 0a 09 4c 44 09 41 |9'..E16L|:...LD.A|
|000026c0| 2c 28 48 4c 29 09 3b 20 | 47 45 54 20 42 59 54 45 |,(HL).; |GET BYTE|
|000026d0| 0d 0a 09 43 41 4c 4c 09 | 43 41 50 53 09 3b 20 43 |...CALL.|CAPS.; C|
|000026e0| 41 50 49 54 41 4c 49 5a | 45 0d 0a 09 43 50 09 27 |APITALIZ|E...CP.'|
|000026f0| 30 27 09 3b 20 43 48 45 | 43 4b 20 46 4f 52 20 52 |0'.; CHE|CK FOR R|
|00002700| 41 4e 47 45 0d 0a 09 4a | 50 09 43 2c 44 4f 4e 45 |ANGE...J|P.C,DONE|
|00002710| 0d 0a 09 43 50 09 27 46 | 27 2b 31 09 3b 20 43 48 |...CP.'F|'+1.; CH|
|00002720| 45 43 4b 20 46 4f 52 20 | 52 41 4e 47 45 0d 0a 09 |ECK FOR |RANGE...|
|00002730| 4a 50 09 4e 43 2c 44 4f | 4e 45 0d 0a 09 43 50 09 |JP.NC,DO|NE...CP.|
|00002740| 27 39 27 2b 31 09 3b 20 | 43 48 45 43 4b 20 46 4f |'9'+1.; |CHECK FO|
|00002750| 52 20 30 2d 39 0d 0a 09 | 4a 50 09 43 2c 50 52 4f |R 0-9...|JP.C,PRO|
|00002760| 44 45 43 0d 0a 09 43 50 | 09 27 41 27 09 3b 20 43 |DEC...CP|.'A'.; C|
|00002770| 48 45 43 4b 20 46 4f 52 | 20 4f 55 54 20 4f 46 20 |HECK FOR| OUT OF |
|00002780| 52 41 4e 47 45 0d 0a 09 | 4a 50 09 43 2c 44 4f 4e |RANGE...|JP.C,DON|
|00002790| 45 0d 0a 50 52 4f 44 45 | 43 3a 0d 0a 09 53 55 42 |E..PRODE|C:...SUB|
|000027a0| 09 27 30 27 09 3b 20 43 | 4f 4e 56 45 52 54 20 54 |.'0'.; C|ONVERT T|
|000027b0| 4f 20 42 49 4e 41 52 59 | 0d 0a 09 43 50 09 31 30 |O BINARY|...CP.10|
|000027c0| 0d 0a 09 4a 50 09 43 2c | 50 52 4f 43 0d 0a 09 53 |...JP.C,|PROC...S|
|000027d0| 55 42 09 37 09 3b 20 41 | 44 4a 55 53 54 20 46 4f |UB.7.; A|DJUST FO|
|000027e0| 52 20 27 41 27 2d 27 46 | 27 0d 0a 0d 0a 3b 20 20 |R 'A'-'F|'....; |
|000027f0| 50 72 6f 63 65 65 64 20 | 77 69 74 68 20 70 72 6f |Proceed |with pro|
|00002800| 63 65 73 73 69 6e 67 0d | 0a 50 52 4f 43 3a 0d 0a |cessing.|.PROC:..|
|00002810| 09 50 55 53 48 09 41 46 | 09 3b 20 53 41 56 45 20 |.PUSH.AF|.; SAVE |
|00002820| 56 41 4c 55 45 0d 0a 0d | 0a 3b 20 20 4d 75 6c 74 |VALUE...|.; Mult|
|00002830| 69 70 6c 79 20 44 45 20 | 62 79 20 31 36 0d 0a 4d |iply DE |by 16..M|
|00002840| 55 4c 31 36 3a 0d 0a 09 | 50 55 53 48 09 48 4c 09 |UL16:...|PUSH.HL.|
|00002850| 3b 20 53 41 56 45 20 48 | 4c 0d 0a 09 4c 44 09 48 |; SAVE H|L...LD.H|
|00002860| 4c 2c 30 09 3b 20 41 43 | 43 3d 30 0d 0a 09 4c 44 |L,0.; AC|C=0...LD|
|00002870| 09 42 2c 31 36 09 3b 20 | 31 36 20 4c 4f 4f 50 53 |.B,16.; |16 LOOPS|
|00002880| 0d 0a 4d 55 4c 31 36 4c | 3a 0d 0a 09 41 44 44 09 |..MUL16L|:...ADD.|
|00002890| 48 4c 2c 44 45 09 3b 20 | 48 4c 3d 48 4c 2b 44 45 |HL,DE.; |HL=HL+DE|
|000028a0| 0d 0a 09 44 45 43 09 42 | 09 3b 20 43 4f 55 4e 54 |...DEC.B|.; COUNT|
|000028b0| 20 44 4f 57 4e 0d 0a 09 | 4a 50 09 4e 5a 2c 4d 55 | DOWN...|JP.NZ,MU|
|000028c0| 4c 31 36 4c 0d 0a 09 4c | 44 09 44 2c 48 09 3b 20 |L16L...L|D.D,H.; |
|000028d0| 4e 45 57 20 44 45 0d 0a | 09 4c 44 09 45 2c 4c 0d |NEW DE..|.LD.E,L.|
|000028e0| 0a 09 50 4f 50 09 48 4c | 09 3b 20 52 45 53 54 4f |..POP.HL|.; RESTO|
|000028f0| 52 45 20 48 4c 0d 0a 0d | 0a 3b 20 20 41 64 64 20 |RE HL...|.; Add |
|00002900| 69 6e 20 41 0d 0a 09 50 | 4f 50 09 41 46 09 3b 20 |in A...P|OP.AF.; |
|00002910| 47 45 54 20 4c 41 54 45 | 53 54 20 44 49 47 49 54 |GET LATE|ST DIGIT|
|00002920| 0d 0a 09 41 44 44 09 41 | 2c 45 09 3b 20 41 3d 41 |...ADD.A|,E.; A=A|
|00002930| 2b 45 0d 0a 09 4c 44 09 | 45 2c 41 0d 0a 09 4c 44 |+E...LD.|E,A...LD|
|00002940| 09 41 2c 44 09 3b 20 41 | 44 44 20 54 4f 20 44 20 |.A,D.; A|DD TO D |
|00002950| 49 46 20 4e 45 43 45 53 | 53 41 52 59 0d 0a 09 41 |IF NECES|SARY...A|
|00002960| 44 43 09 30 0d 0a 0d 0a | 3b 20 20 43 6f 6e 74 69 |DC.0....|; Conti|
|00002970| 6e 75 65 0d 0a 09 49 4e | 43 09 48 4c 09 3b 20 50 |nue...IN|C.HL.; P|
|00002980| 54 20 54 4f 20 4e 45 58 | 54 20 43 48 41 52 41 43 |T TO NEX|T CHARAC|
|00002990| 54 45 52 0d 0a 09 4a 50 | 09 45 31 36 4c 0d 0a 0d |TER...JP|.E16L...|
|000029a0| 0a 3b 20 20 44 6f 6e 65 | 20 2d 2d 20 52 65 73 75 |.; Done| -- Resu|
|000029b0| 6c 74 20 61 6c 72 65 61 | 64 79 20 69 6e 20 44 45 |lt alrea|dy in DE|
|000029c0| 3b 20 53 65 74 20 41 3d | 45 0d 0a 44 4f 4e 45 3a |; Set A=|E..DONE:|
|000029d0| 0d 0a 09 4c 44 09 41 2c | 45 09 3b 20 41 3d 45 0d |...LD.A,|E.; A=E.|
|000029e0| 0a 09 50 4f 50 09 42 43 | 09 3b 20 52 45 53 54 4f |..POP.BC|.; RESTO|
|000029f0| 52 45 20 42 43 0d 0a 0d | 0a 09 52 45 54 0d 0a 0d |RE BC...|..RET...|
|00002a00| 0a 09 45 4e 44 0d 0a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |..END...|........|
|00002a10| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002a20| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002a30| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002a40| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002a50| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002a60| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002a70| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002a80| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00002a90| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 56 41 4c 33 |le Name:| SEVAL3|
|00002aa0| 0d 0a 3b 20 41 75 74 68 | 6f 72 3a 20 20 52 69 63 |..; Auth|or: Ric|
|00002ab0| 68 61 72 64 20 43 6f 6e | 6e 0d 0a 3b 20 53 59 53 |hard Con|n..; SYS|
|00002ac0| 4c 49 42 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |LIB Vers|ion Numb|
|00002ad0| 65 72 3a 20 20 33 2e 36 | 0d 0a 3b 20 4d 6f 64 75 |er: 3.6|..; Modu|
|00002ae0| 6c 65 20 56 65 72 73 69 | 6f 6e 20 4e 75 6d 62 65 |le Versi|on Numbe|
|00002af0| 72 3a 20 20 31 2e 31 0d | 0a 0d 0a 09 70 75 62 6c |r: 1.1.|....publ|
|00002b00| 69 63 09 65 76 61 6c 38 | 0d 0a 0d 0a 3b 0d 0a 3b |ic.eval8|....;..;|
|00002b10| 20 20 45 56 41 4c 38 20 | 2d 2d 0d 0a 3b 09 43 6f | EVAL8 |--..;.Co|
|00002b20| 6e 76 65 72 74 20 74 68 | 65 20 73 74 72 69 6e 67 |nvert th|e string|
|00002b30| 20 6f 66 20 41 53 43 49 | 49 20 6f 63 74 61 6c 20 | of ASCI|I octal |
|00002b40| 64 69 67 69 74 73 20 70 | 6f 69 6e 74 65 64 20 74 |digits p|ointed t|
|00002b50| 6f 20 62 79 20 48 4c 0d | 0a 3b 20 69 6e 74 6f 20 |o by HL.|.; into |
|00002b60| 61 20 62 69 6e 61 72 79 | 20 76 61 6c 75 65 3b 20 |a binary| value; |
|00002b70| 73 74 72 69 6e 67 20 69 | 73 20 63 6f 6e 76 65 72 |string i|s conver|
|00002b80| 74 65 64 20 75 6e 74 69 | 6c 20 69 6e 76 61 6c 69 |ted unti|l invali|
|00002b90| 64 20 64 69 67 69 74 20 | 69 73 0d 0a 3b 20 65 6e |d digit |is..; en|
|00002ba0| 63 6f 75 6e 74 65 72 65 | 64 2e 0d 0a 3b 09 4f 6e |countere|d...;.On|
|00002bb0| 20 72 65 74 75 72 6e 2c | 20 48 4c 20 70 6f 69 6e | return,| HL poin|
|00002bc0| 74 73 20 74 6f 20 65 72 | 72 6f 72 20 63 68 61 72 |ts to er|ror char|
|00002bd0| 61 63 74 65 72 2c 20 44 | 45 3d 76 61 6c 75 65 2c |acter, D|E=value,|
|00002be0| 20 41 3d 45 20 28 6c 6f | 77 0d 0a 3b 20 6f 72 64 | A=E (lo|w..; ord|
|00002bf0| 65 72 20 38 20 62 69 74 | 73 20 6f 66 20 76 61 6c |er 8 bit|s of val|
|00002c00| 75 65 29 2e 20 20 42 43 | 20 6e 6f 74 20 61 66 66 |ue). BC| not aff|
|00002c10| 65 63 74 65 64 2e 0d 0a | 3b 0d 0a 45 56 41 4c 38 |ected...|;..EVAL8|
|00002c20| 3a 0d 0a 09 50 55 53 48 | 09 42 43 09 3b 20 53 41 |:...PUSH|.BC.; SA|
|00002c30| 56 45 20 42 43 0d 0a 09 | 4c 44 09 44 45 2c 30 09 |VE BC...|LD.DE,0.|
|00002c40| 3b 20 53 45 54 20 44 45 | 3d 30 20 49 4e 49 54 49 |; SET DE|=0 INITI|
|00002c50| 41 4c 4c 59 0d 0a 0d 0a | 3b 20 20 47 65 74 20 6e |ALLY....|; Get n|
|00002c60| 65 78 74 20 64 69 67 69 | 74 20 61 6e 64 20 63 68 |ext digi|t and ch|
|00002c70| 65 63 6b 20 66 6f 72 20 | 27 30 27 20 2d 20 27 37 |eck for |'0' - '7|
|00002c80| 27 0d 0a 45 38 4c 3a 0d | 0a 09 4c 44 09 41 2c 28 |'..E8L:.|..LD.A,(|
|00002c90| 48 4c 29 09 3b 20 47 45 | 54 20 42 59 54 45 0d 0a |HL).; GE|T BYTE..|
|00002ca0| 09 53 55 42 09 27 30 27 | 09 3b 20 43 48 45 43 4b |.SUB.'0'|.; CHECK|
|00002cb0| 20 46 4f 52 20 52 41 4e | 47 45 0d 0a 09 4a 50 09 | FOR RAN|GE...JP.|
|00002cc0| 43 2c 44 4f 4e 45 0d 0a | 09 43 50 09 38 0d 0a 09 |C,DONE..|.CP.8...|
|00002cd0| 4a 50 09 4e 43 2c 44 4f | 4e 45 0d 0a 0d 0a 09 50 |JP.NC,DO|NE.....P|
|00002ce0| 55 53 48 09 41 46 09 3b | 20 53 41 56 45 20 56 41 |USH.AF.;| SAVE VA|
|00002cf0| 4c 55 45 0d 0a 0d 0a 3b | 20 20 4d 75 6c 74 69 70 |LUE....;| Multip|
|00002d00| 6c 79 20 44 45 20 62 79 | 20 38 0d 0a 4d 55 4c 38 |ly DE by| 8..MUL8|
|00002d10| 3a 0d 0a 09 50 55 53 48 | 09 48 4c 09 3b 20 53 41 |:...PUSH|.HL.; SA|
|00002d20| 56 45 20 48 4c 0d 0a 09 | 4c 44 09 48 4c 2c 30 09 |VE HL...|LD.HL,0.|
|00002d30| 3b 20 41 43 43 3d 30 0d | 0a 09 4c 44 09 42 2c 38 |; ACC=0.|..LD.B,8|
|00002d40| 09 3b 20 38 20 4c 4f 4f | 50 53 0d 0a 4d 55 4c 38 |.; 8 LOO|PS..MUL8|
|00002d50| 4c 3a 0d 0a 09 41 44 44 | 09 48 4c 2c 44 45 09 3b |L:...ADD|.HL,DE.;|
|00002d60| 20 48 4c 3d 48 4c 2b 44 | 45 0d 0a 09 44 45 43 09 | HL=HL+D|E...DEC.|
|00002d70| 42 09 3b 20 43 4f 55 4e | 54 20 44 4f 57 4e 0d 0a |B.; COUN|T DOWN..|
|00002d80| 09 4a 50 09 4e 5a 2c 4d | 55 4c 38 4c 0d 0a 09 4c |.JP.NZ,M|UL8L...L|
|00002d90| 44 09 44 2c 48 09 3b 20 | 4e 45 57 20 44 45 0d 0a |D.D,H.; |NEW DE..|
|00002da0| 09 4c 44 09 45 2c 4c 0d | 0a 09 50 4f 50 09 48 4c |.LD.E,L.|..POP.HL|
|00002db0| 09 3b 20 52 45 53 54 4f | 52 45 20 48 4c 0d 0a 0d |.; RESTO|RE HL...|
|00002dc0| 0a 3b 20 20 41 64 64 20 | 69 6e 20 41 0d 0a 09 50 |.; Add |in A...P|
|00002dd0| 4f 50 09 41 46 09 3b 20 | 47 45 54 20 4c 41 54 45 |OP.AF.; |GET LATE|
|00002de0| 53 54 20 44 49 47 49 54 | 0d 0a 09 41 44 44 09 41 |ST DIGIT|...ADD.A|
|00002df0| 2c 45 09 3b 20 41 3d 41 | 2b 45 0d 0a 09 4c 44 09 |,E.; A=A|+E...LD.|
|00002e00| 45 2c 41 0d 0a 09 4c 44 | 09 41 2c 44 09 3b 20 41 |E,A...LD|.A,D.; A|
|00002e10| 44 44 20 54 4f 20 44 20 | 49 46 20 4e 45 43 45 53 |DD TO D |IF NECES|
|00002e20| 53 41 52 59 0d 0a 09 41 | 44 43 09 30 0d 0a 0d 0a |SARY...A|DC.0....|
|00002e30| 3b 20 20 43 6f 6e 74 69 | 6e 75 65 0d 0a 09 49 4e |; Conti|nue...IN|
|00002e40| 43 09 48 4c 09 3b 20 50 | 54 20 54 4f 20 4e 45 58 |C.HL.; P|T TO NEX|
|00002e50| 54 20 43 48 41 52 41 43 | 54 45 52 0d 0a 09 4a 50 |T CHARAC|TER...JP|
|00002e60| 09 45 38 4c 0d 0a 0d 0a | 3b 20 20 44 6f 6e 65 20 |.E8L....|; Done |
|00002e70| 2d 2d 20 52 65 73 75 6c | 74 20 61 6c 72 65 61 64 |-- Resul|t alread|
|00002e80| 79 20 69 6e 20 44 45 3b | 20 53 65 74 20 41 3d 45 |y in DE;| Set A=E|
|00002e90| 0d 0a 44 4f 4e 45 3a 0d | 0a 09 4c 44 09 41 2c 45 |..DONE:.|..LD.A,E|
|00002ea0| 09 3b 20 41 3d 45 0d 0a | 09 50 4f 50 09 42 43 09 |.; A=E..|.POP.BC.|
|00002eb0| 3b 20 52 45 53 54 4f 52 | 45 20 42 43 0d 0a 0d 0a |; RESTOR|E BC....|
|00002ec0| 09 52 45 54 0d 0a 0d 0a | 09 45 4e 44 0d 0a 1a 1a |.RET....|.END....|
|00002ed0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002ee0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002ef0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00002f00| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00002f10| 6c 65 20 4e 61 6d 65 3a | 20 20 53 45 56 41 4c 34 |le Name:| SEVAL4|
|00002f20| 0d 0a 3b 20 41 75 74 68 | 6f 72 3a 20 20 52 69 63 |..; Auth|or: Ric|
|00002f30| 68 61 72 64 20 43 6f 6e | 6e 0d 0a 3b 20 53 59 53 |hard Con|n..; SYS|
|00002f40| 4c 49 42 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |LIB Vers|ion Numb|
|00002f50| 65 72 3a 20 20 33 2e 36 | 0d 0a 3b 20 4d 6f 64 75 |er: 3.6|..; Modu|
|00002f60| 6c 65 20 56 65 72 73 69 | 6f 6e 20 4e 75 6d 62 65 |le Versi|on Numbe|
|00002f70| 72 3a 20 20 31 2e 31 0d | 0a 0d 0a 09 70 75 62 6c |r: 1.1.|....publ|
|00002f80| 69 63 09 65 76 61 6c 32 | 0d 0a 0d 0a 3b 0d 0a 3b |ic.eval2|....;..;|
|00002f90| 20 20 45 56 41 4c 32 20 | 2d 2d 0d 0a 3b 09 43 6f | EVAL2 |--..;.Co|
|00002fa0| 6e 76 65 72 74 20 74 68 | 65 20 73 74 72 69 6e 67 |nvert th|e string|
|00002fb0| 20 6f 66 20 41 53 43 49 | 49 20 62 69 6e 61 72 79 | of ASCI|I binary|
|00002fc0| 20 64 69 67 69 74 73 20 | 70 6f 69 6e 74 65 64 20 | digits |pointed |
|00002fd0| 74 6f 20 62 79 20 48 4c | 0d 0a 3b 20 69 6e 74 6f |to by HL|..; into|
|00002fe0| 20 61 20 62 69 6e 61 72 | 79 20 76 61 6c 75 65 3b | a binar|y value;|
|00002ff0| 20 73 74 72 69 6e 67 20 | 69 73 20 63 6f 6e 76 65 | string |is conve|
|00003000| 72 74 65 64 20 75 6e 74 | 69 6c 20 69 6e 76 61 6c |rted unt|il inval|
|00003010| 69 64 20 64 69 67 69 74 | 20 69 73 0d 0a 3b 20 65 |id digit| is..; e|
|00003020| 6e 63 6f 75 6e 74 65 72 | 65 64 2e 0d 0a 3b 09 4f |ncounter|ed...;.O|
|00003030| 6e 20 72 65 74 75 72 6e | 2c 20 48 4c 20 70 6f 69 |n return|, HL poi|
|00003040| 6e 74 73 20 74 6f 20 65 | 72 72 6f 72 20 63 68 61 |nts to e|rror cha|
|00003050| 72 61 63 74 65 72 2c 20 | 44 45 3d 76 61 6c 75 65 |racter, |DE=value|
|00003060| 2c 20 41 3d 45 20 28 6c | 6f 77 0d 0a 3b 20 6f 72 |, A=E (l|ow..; or|
|00003070| 64 65 72 20 38 20 62 69 | 74 73 20 6f 66 20 76 61 |der 8 bi|ts of va|
|00003080| 6c 75 65 29 2e 20 20 42 | 43 20 6e 6f 74 20 61 66 |lue). B|C not af|
|00003090| 66 65 63 74 65 64 2e 0d | 0a 3b 0d 0a 45 56 41 4c |fected..|.;..EVAL|
|000030a0| 32 3a 0d 0a 09 50 55 53 | 48 09 42 43 09 3b 20 53 |2:...PUS|H.BC.; S|
|000030b0| 41 56 45 20 42 43 0d 0a | 09 4c 44 09 44 45 2c 30 |AVE BC..|.LD.DE,0|
|000030c0| 09 3b 20 53 45 54 20 44 | 45 3d 30 20 49 4e 49 54 |.; SET D|E=0 INIT|
|000030d0| 49 41 4c 4c 59 0d 0a 0d | 0a 3b 20 20 47 65 74 20 |IALLY...|.; Get |
|000030e0| 6e 65 78 74 20 64 69 67 | 69 74 20 61 6e 64 20 63 |next dig|it and c|
|000030f0| 68 65 63 6b 20 66 6f 72 | 20 27 30 27 20 2d 20 27 |heck for| '0' - '|
|00003100| 31 27 0d 0a 45 32 4c 3a | 0d 0a 09 4c 44 09 41 2c |1'..E2L:|...LD.A,|
|00003110| 28 48 4c 29 09 3b 20 47 | 45 54 20 42 59 54 45 0d |(HL).; G|ET BYTE.|
|00003120| 0a 09 53 55 42 09 27 30 | 27 09 3b 20 43 48 45 43 |..SUB.'0|'.; CHEC|
|00003130| 4b 20 46 4f 52 20 52 41 | 4e 47 45 0d 0a 09 4a 50 |K FOR RA|NGE...JP|
|00003140| 09 43 2c 44 4f 4e 45 0d | 0a 09 43 50 09 32 0d 0a |.C,DONE.|..CP.2..|
|00003150| 09 4a 50 09 4e 43 2c 44 | 4f 4e 45 0d 0a 0d 0a 3b |.JP.NC,D|ONE....;|
|00003160| 20 20 4d 75 6c 74 69 70 | 6c 79 20 44 45 20 62 79 | Multip|ly DE by|
|00003170| 20 32 0d 0a 4d 55 4c 32 | 3a 0d 0a 09 50 55 53 48 | 2..MUL2|:...PUSH|
|00003180| 09 48 4c 09 3b 20 53 41 | 56 45 20 48 4c 0d 0a 09 |.HL.; SA|VE HL...|
|00003190| 4c 44 09 48 4c 2c 30 09 | 3b 20 41 43 43 3d 30 0d |LD.HL,0.|; ACC=0.|
|000031a0| 0a 09 41 44 44 09 48 4c | 2c 44 45 09 3b 20 48 4c |..ADD.HL|,DE.; HL|
|000031b0| 3d 44 45 0d 0a 09 41 44 | 44 09 48 4c 2c 44 45 09 |=DE...AD|D.HL,DE.|
|000031c0| 3b 20 48 4c 3d 44 45 2b | 44 45 0d 0a 09 4c 44 09 |; HL=DE+|DE...LD.|
|000031d0| 44 2c 48 09 3b 20 44 45 | 3d 48 4c 0d 0a 09 4c 44 |D,H.; DE|=HL...LD|
|000031e0| 09 45 2c 4c 0d 0a 09 50 | 4f 50 09 48 4c 09 3b 20 |.E,L...P|OP.HL.; |
|000031f0| 52 45 53 54 4f 52 45 20 | 48 4c 0d 0a 09 41 44 44 |RESTORE |HL...ADD|
|00003200| 09 41 2c 45 09 3b 20 41 | 3d 41 2b 45 0d 0a 09 4c |.A,E.; A|=A+E...L|
|00003210| 44 09 45 2c 41 0d 0a 09 | 4c 44 09 41 2c 44 09 3b |D.E,A...|LD.A,D.;|
|00003220| 20 41 44 44 20 54 4f 20 | 44 20 49 46 20 4e 45 43 | ADD TO |D IF NEC|
|00003230| 45 53 53 41 52 59 0d 0a | 09 41 44 43 09 30 0d 0a |ESSARY..|.ADC.0..|
|00003240| 0d 0a 3b 20 20 43 6f 6e | 74 69 6e 75 65 0d 0a 09 |..; Con|tinue...|
|00003250| 49 4e 43 09 48 4c 09 3b | 20 50 54 20 54 4f 20 4e |INC.HL.;| PT TO N|
|00003260| 45 58 54 20 43 48 41 52 | 41 43 54 45 52 0d 0a 09 |EXT CHAR|ACTER...|
|00003270| 4a 50 09 45 32 4c 0d 0a | 0d 0a 3b 20 20 44 6f 6e |JP.E2L..|..; Don|
|00003280| 65 20 2d 2d 20 52 65 73 | 75 6c 74 20 61 6c 72 65 |e -- Res|ult alre|
|00003290| 61 64 79 20 69 6e 20 44 | 45 3b 20 53 65 74 20 41 |ady in D|E; Set A|
|000032a0| 3d 45 0d 0a 44 4f 4e 45 | 3a 0d 0a 09 4c 44 09 41 |=E..DONE|:...LD.A|
|000032b0| 2c 45 09 3b 20 41 3d 45 | 0d 0a 09 50 4f 50 09 42 |,E.; A=E|...POP.B|
|000032c0| 43 09 3b 20 52 45 53 54 | 4f 52 45 20 42 43 0d 0a |C.; REST|ORE BC..|
|000032d0| 0d 0a 09 52 45 54 0d 0a | 0d 0a 09 45 4e 44 0d 0a |...RET..|...END..|
|000032e0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|000032f0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00003300| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00003310| 6c 65 20 4e 61 6d 65 3a | 20 53 46 41 50 50 45 0d |le Name:| SFAPPE.|
|00003320| 0a 3b 20 41 75 74 68 6f | 72 3a 20 52 69 63 68 61 |.; Autho|r: Richa|
|00003330| 72 64 20 43 6f 6e 6e 0d | 0a 3b 20 53 59 53 4c 49 |rd Conn.|.; SYSLI|
|00003340| 42 20 56 65 72 73 69 6f | 6e 20 4e 75 6d 62 65 72 |B Versio|n Number|
|00003350| 3a 20 33 2e 36 0d 0a 3b | 20 4d 6f 64 75 6c 65 20 |: 3.6..;| Module |
|00003360| 56 65 72 73 69 6f 6e 20 | 4e 75 6d 62 65 72 3a 20 |Version |Number: |
|00003370| 31 2e 31 0d 0a 0d 0a 09 | 70 75 62 6c 69 63 09 66 |1.1.....|public.f|
|00003380| 24 61 70 70 6c 2c 66 24 | 61 70 70 65 6e 64 0d 0a |$appl,f$|append..|
|00003390| 0d 0a 3b 0d 0a 3b 20 20 | 53 45 45 20 44 4f 43 55 |..;..; |SEE DOCU|
|000033a0| 4d 45 4e 54 41 54 49 4f | 4e 20 57 49 54 48 20 45 |MENTATIO|N WITH E|
|000033b0| 41 43 48 20 52 4f 55 54 | 49 4e 45 20 46 4f 52 20 |ACH ROUT|INE FOR |
|000033c0| 44 45 54 41 49 4c 53 0d | 0a 3b 0d 0a 0d 0a 3b 0d |DETAILS.|.;....;.|
|000033d0| 0a 3b 20 20 45 78 74 65 | 72 6e 61 6c 73 0d 0a 3b |.; Exte|rnals..;|
|000033e0| 0d 0a 09 65 78 74 09 69 | 6e 69 74 66 63 62 0d 0a |...ext.i|nitfcb..|
|000033f0| 0d 0a 3b 0d 0a 3b 20 20 | 42 44 4f 53 20 46 75 6e |..;..; |BDOS Fun|
|00003400| 63 74 69 6f 6e 20 63 61 | 6c 6c 73 20 65 74 20 61 |ction ca|lls et a|
|00003410| 6c 0d 0a 3b 0d 0a 42 44 | 4f 53 09 45 51 55 09 20 |l..;..BD|OS.EQU. |
|00003420| 35 09 3b 20 42 44 4f 53 | 20 61 64 64 72 65 73 73 |5.; BDOS| address|
|00003430| 0d 0a 4f 50 45 4e 46 09 | 45 51 55 09 31 35 09 3b |..OPENF.|EQU.15.;|
|00003440| 20 4f 70 65 6e 20 66 69 | 6c 65 20 66 75 6e 63 74 | Open fi|le funct|
|00003450| 69 6f 6e 0d 0a 57 52 49 | 54 45 46 09 45 51 55 09 |ion..WRI|TEF.EQU.|
|00003460| 32 31 09 3b 20 57 72 69 | 74 65 20 73 65 71 75 65 |21.; Wri|te seque|
|00003470| 6e 74 69 61 6c 0d 0a 52 | 52 45 41 44 09 45 51 55 |ntial..R|READ.EQU|
|00003480| 09 33 33 09 3b 20 52 61 | 6e 64 6f 6d 20 72 65 61 |.33.; Ra|ndom rea|
|00003490| 64 20 66 75 6e 63 74 69 | 6f 6e 0d 0a 47 45 54 46 |d functi|on..GETF|
|000034a0| 53 09 45 51 55 09 33 35 | 09 3b 20 47 65 74 20 66 |S.EQU.35|.; Get f|
|000034b0| 69 6c 65 20 73 69 7a 65 | 20 66 75 6e 63 74 69 6f |ile size| functio|
|000034c0| 6e 0d 0a 0d 0a 3b 0d 0a | 3b 20 20 4d 61 63 72 6f |n....;..|; Macro|
|000034d0| 73 0d 0a 3b 0d 0a 50 55 | 54 52 47 09 4d 41 43 52 |s..;..PU|TRG.MACR|
|000034e0| 4f 0d 0a 09 50 55 53 48 | 09 48 4c 0d 0a 09 50 55 |O...PUSH|.HL...PU|
|000034f0| 53 48 09 44 45 0d 0a 09 | 50 55 53 48 09 42 43 0d |SH.DE...|PUSH.BC.|
|00003500| 0a 09 45 4e 44 4d 0d 0a | 3b 0d 0a 47 45 54 52 47 |..ENDM..|;..GETRG|
|00003510| 09 4d 41 43 52 4f 0d 0a | 09 50 4f 50 09 42 43 0d |.MACRO..|.POP.BC.|
|00003520| 0a 09 50 4f 50 09 44 45 | 0d 0a 09 50 4f 50 09 48 |..POP.DE|...POP.H|
|00003530| 4c 0d 0a 09 45 4e 44 4d | 0d 0a 0d 0a 3b 0d 0a 3b |L...ENDM|....;..;|
|00003540| 20 20 46 24 41 50 50 45 | 4e 44 20 4f 50 45 4e 53 | F$APPE|ND OPENS|
|00003550| 20 54 48 45 20 49 4e 44 | 49 43 41 54 45 44 20 46 | THE IND|ICATED F|
|00003560| 49 4c 45 20 28 57 48 4f | 53 45 20 46 43 42 20 49 |ILE (WHO|SE FCB I|
|00003570| 53 20 50 54 45 44 20 54 | 4f 20 42 59 20 44 45 29 |S PTED T|O BY DE)|
|00003580| 20 46 4f 52 0d 0a 3b 20 | 20 41 50 50 45 4e 44 49 | FOR..; | APPENDI|
|00003590| 4e 47 2c 20 57 49 54 48 | 20 54 48 45 20 4e 45 58 |NG, WITH| THE NEX|
|000035a0| 54 20 52 45 43 4f 52 44 | 20 54 4f 20 42 45 20 41 |T RECORD| TO BE A|
|000035b0| 50 50 45 4e 44 45 44 20 | 42 45 49 4e 47 20 41 46 |PPENDED |BEING AF|
|000035c0| 54 45 52 20 54 48 45 20 | 4c 41 53 54 0d 0a 3b 20 |TER THE |LAST..; |
|000035d0| 20 52 45 43 4f 52 44 20 | 4f 46 20 54 48 45 20 46 | RECORD |OF THE F|
|000035e0| 49 4c 45 2e 20 20 53 55 | 42 53 45 51 55 45 4e 54 |ILE. SU|BSEQUENT|
|000035f0| 20 46 24 57 52 49 54 45 | 20 43 41 4c 4c 53 20 57 | F$WRITE| CALLS W|
|00003600| 49 4c 4c 20 41 50 50 45 | 4e 44 20 54 4f 20 54 48 |ILL APPE|ND TO TH|
|00003610| 45 20 46 49 4c 45 0d 0a | 3b 20 20 41 46 54 45 52 |E FILE..|; AFTER|
|00003620| 20 54 48 45 20 4c 41 53 | 54 20 52 45 43 4f 52 44 | THE LAS|T RECORD|
|00003630| 20 49 4e 20 54 48 45 20 | 46 49 4c 45 2e 0d 0a 3b | IN THE |FILE...;|
|00003640| 0d 0a 3b 20 20 4f 4e 20 | 49 4e 50 55 54 2c 20 44 |..; ON |INPUT, D|
|00003650| 45 20 3d 20 41 44 44 52 | 45 53 53 20 4f 46 20 46 |E = ADDR|ESS OF F|
|00003660| 43 42 20 28 33 36 20 42 | 59 54 45 53 29 0d 0a 3b |CB (36 B|YTES)..;|
|00003670| 20 20 4f 4e 20 4f 55 54 | 50 55 54 2c 20 41 20 3d | ON OUT|PUT, A =|
|00003680| 20 45 52 52 4f 52 20 43 | 4f 44 45 20 41 4e 44 20 | ERROR C|ODE AND |
|00003690| 5a 20 49 53 20 53 45 54 | 20 41 43 43 4f 52 44 49 |Z IS SET| ACCORDI|
|000036a0| 4e 47 4c 59 0d 0a 3b 09 | 41 20 3d 20 30 20 41 4e |NGLY..;.|A = 0 AN|
|000036b0| 44 20 5a 20 49 46 20 4e | 4f 20 45 52 52 4f 52 0d |D Z IF N|O ERROR.|
|000036c0| 0a 3b 09 41 20 3d 20 31 | 20 41 4e 44 20 4e 5a 20 |.;.A = 1| AND NZ |
|000036d0| 49 46 20 46 49 4c 45 20 | 4e 4f 54 20 46 4f 55 4e |IF FILE |NOT FOUN|
|000036e0| 44 0d 0a 3b 09 41 20 3d | 20 32 20 41 4e 44 20 4e |D..;.A =| 2 AND N|
|000036f0| 5a 20 49 46 20 46 49 4c | 45 20 46 55 4c 4c 0d 0a |Z IF FIL|E FULL..|
|00003700| 3b 09 41 20 3d 20 33 20 | 41 4e 44 20 4e 5a 20 49 |;.A = 3 |AND NZ I|
|00003710| 46 20 46 49 4c 45 20 45 | 4d 50 54 59 0d 0a 3b 20 |F FILE E|MPTY..; |
|00003720| 20 49 46 20 53 55 43 43 | 45 53 53 2c 20 54 48 45 | IF SUCC|ESS, THE|
|00003730| 20 54 42 55 46 46 20 41 | 52 45 41 20 43 4f 4e 54 | TBUFF A|REA CONT|
|00003740| 41 49 4e 53 20 54 48 45 | 20 4c 41 53 54 20 52 45 |AINS THE| LAST RE|
|00003750| 43 4f 52 44 20 49 4e 20 | 54 48 45 20 46 49 4c 45 |CORD IN |THE FILE|
|00003760| 0d 0a 3b 0d 0a 3b 09 55 | 53 41 47 45 20 45 58 41 |..;..;.U|SAGE EXA|
|00003770| 4d 50 4c 45 3a 0d 0a 3b | 09 09 2e 2e 2e 0d 0a 3b |MPLE:..;|.......;|
|00003780| 09 09 4c 58 49 09 44 2c | 46 43 42 0d 0a 3b 09 09 |..LXI.D,|FCB..;..|
|00003790| 43 41 4c 4c 09 46 24 41 | 50 50 45 4e 44 0d 0a 3b |CALL.F$A|PPEND..;|
|000037a0| 09 09 3c 20 46 49 4c 4c | 20 54 42 55 46 46 20 3e |..< FILL| TBUFF >|
|000037b0| 0d 0a 3b 09 09 4c 58 49 | 09 44 2c 46 43 42 0d 0a |..;..LXI|.D,FCB..|
|000037c0| 3b 09 09 43 41 4c 4c 09 | 46 24 57 52 49 54 45 09 |;..CALL.|F$WRITE.|
|000037d0| 3b 20 52 45 43 4f 52 44 | 20 49 53 20 41 50 50 45 |; RECORD| IS APPE|
|000037e0| 4e 44 45 44 20 41 46 54 | 45 52 20 4c 41 53 54 20 |NDED AFT|ER LAST |
|000037f0| 52 45 43 4f 52 44 20 49 | 4e 20 46 49 4c 45 0d 0a |RECORD I|N FILE..|
|00003800| 3b 09 09 2e 2e 2e 0d 0a | 3b 0d 0a 46 24 41 50 50 |;.......|;..F$APP|
|00003810| 45 4e 44 3a 0d 0a 09 50 | 55 54 52 47 0d 0a 09 43 |END:...P|UTRG...C|
|00003820| 41 4c 4c 09 46 24 41 50 | 50 4c 09 09 3b 20 44 4f |ALL.F$AP|PL..; DO|
|00003830| 20 41 50 50 45 4e 44 0d | 0a 09 4a 50 09 4e 5a 2c | APPEND.|..JP.NZ,|
|00003840| 44 4f 4e 45 0d 0a 09 4c | 44 09 43 2c 57 52 49 54 |DONE...L|D.C,WRIT|
|00003850| 45 46 09 3b 20 57 52 49 | 54 45 20 52 45 43 4f 52 |EF.; WRI|TE RECOR|
|00003860| 44 0d 0a 09 43 41 4c 4c | 09 42 44 4f 53 0d 0a 09 |D...CALL|.BDOS...|
|00003870| 58 4f 52 09 41 09 09 3b | 20 4e 4f 20 45 52 52 4f |XOR.A..;| NO ERRO|
|00003880| 52 0d 0a 09 4a 50 09 44 | 4f 4e 45 0d 0a 0d 0a 3b |R...JP.D|ONE....;|
|00003890| 0d 0a 3b 20 20 46 24 41 | 50 50 4c 20 4f 50 45 4e |..; F$A|PPL OPEN|
|000038a0| 53 20 54 48 45 20 49 4e | 44 49 43 41 54 45 44 20 |S THE IN|DICATED |
|000038b0| 46 49 4c 45 20 28 57 48 | 4f 53 45 20 46 43 42 20 |FILE (WH|OSE FCB |
|000038c0| 49 53 20 50 54 45 44 20 | 54 4f 20 42 59 20 44 45 |IS PTED |TO BY DE|
|000038d0| 29 20 46 4f 52 0d 0a 3b | 20 20 41 50 50 45 4e 44 |) FOR..;| APPEND|
|000038e0| 49 4e 47 2e 20 53 55 42 | 53 45 51 55 45 4e 54 20 |ING. SUB|SEQUENT |
|000038f0| 46 24 57 52 49 54 45 20 | 43 41 4c 4c 53 20 57 49 |F$WRITE |CALLS WI|
|00003900| 4c 4c 20 41 50 50 45 4e | 44 20 54 4f 20 54 48 45 |LL APPEN|D TO THE|
|00003910| 20 46 49 4c 45 20 53 54 | 41 52 54 49 4e 47 0d 0a | FILE ST|ARTING..|
|00003920| 3b 20 20 41 54 20 54 48 | 45 20 4c 41 53 54 20 52 |; AT TH|E LAST R|
|00003930| 45 43 4f 52 44 20 49 4e | 20 54 48 45 20 46 49 4c |ECORD IN| THE FIL|
|00003940| 45 2e 0d 0a 3b 0d 0a 3b | 20 20 4f 4e 20 49 4e 50 |E...;..;| ON INP|
|00003950| 55 54 2c 20 44 45 20 3d | 20 41 44 44 52 45 53 53 |UT, DE =| ADDRESS|
|00003960| 20 4f 46 20 46 43 42 20 | 28 33 36 20 42 59 54 45 | OF FCB |(36 BYTE|
|00003970| 53 29 0d 0a 3b 20 20 4f | 4e 20 4f 55 54 50 55 54 |S)..; O|N OUTPUT|
|00003980| 2c 20 41 20 3d 20 45 52 | 52 4f 52 20 43 4f 44 45 |, A = ER|ROR CODE|
|00003990| 20 41 4e 44 20 5a 20 49 | 53 20 53 45 54 20 41 43 | AND Z I|S SET AC|
|000039a0| 43 4f 52 44 49 4e 47 4c | 59 0d 0a 3b 09 41 20 3d |CORDINGL|Y..;.A =|
|000039b0| 20 30 20 41 4e 44 20 5a | 20 49 46 20 4e 4f 20 45 | 0 AND Z| IF NO E|
|000039c0| 52 52 4f 52 0d 0a 3b 09 | 41 20 3d 20 31 20 41 4e |RROR..;.|A = 1 AN|
|000039d0| 44 20 4e 5a 20 49 46 20 | 46 49 4c 45 20 4e 4f 54 |D NZ IF |FILE NOT|
|000039e0| 20 46 4f 55 4e 44 0d 0a | 3b 09 41 20 3d 20 32 20 | FOUND..|;.A = 2 |
|000039f0| 41 4e 44 20 4e 5a 20 49 | 46 20 46 49 4c 45 20 46 |AND NZ I|F FILE F|
|00003a00| 55 4c 4c 0d 0a 3b 09 41 | 20 3d 20 33 20 41 4e 44 |ULL..;.A| = 3 AND|
|00003a10| 20 4e 5a 20 49 46 20 46 | 49 4c 45 20 45 4d 50 54 | NZ IF F|ILE EMPT|
|00003a20| 59 0d 0a 3b 20 20 49 46 | 20 53 55 43 43 45 53 53 |Y..; IF| SUCCESS|
|00003a30| 2c 20 54 48 45 20 54 42 | 55 46 46 20 41 52 45 41 |, THE TB|UFF AREA|
|00003a40| 20 43 4f 4e 54 41 49 4e | 53 20 54 48 45 20 4c 41 | CONTAIN|S THE LA|
|00003a50| 53 54 20 52 45 43 4f 52 | 44 20 49 4e 20 54 48 45 |ST RECOR|D IN THE|
|00003a60| 20 46 49 4c 45 0d 0a 3b | 0d 0a 3b 09 55 53 41 47 | FILE..;|..;.USAG|
|00003a70| 45 20 45 58 41 4d 50 4c | 45 3a 0d 0a 3b 09 09 2e |E EXAMPL|E:..;...|
|00003a80| 2e 2e 0d 0a 3b 09 09 4c | 58 49 09 44 2c 46 43 42 |....;..L|XI.D,FCB|
|00003a90| 0d 0a 3b 09 09 43 41 4c | 4c 09 46 24 41 50 50 4c |..;..CAL|L.F$APPL|
|00003aa0| 0d 0a 3b 09 09 3c 20 46 | 49 4c 4c 20 54 42 55 46 |..;..< F|ILL TBUF|
|00003ab0| 46 20 3e 0d 0a 3b 09 09 | 4c 58 49 09 44 2c 46 43 |F >..;..|LXI.D,FC|
|00003ac0| 42 0d 0a 3b 09 09 43 41 | 4c 4c 09 46 24 57 52 49 |B..;..CA|LL.F$WRI|
|00003ad0| 54 45 09 3b 20 4c 41 53 | 54 20 52 45 43 4f 52 44 |TE.; LAS|T RECORD|
|00003ae0| 20 4f 46 20 4f 52 49 47 | 49 4e 41 4c 20 46 49 4c | OF ORIG|INAL FIL|
|00003af0| 45 20 49 53 20 52 45 57 | 52 49 54 54 45 4e 0d 0a |E IS REW|RITTEN..|
|00003b00| 3b 09 09 2e 2e 2e 0d 0a | 3b 0d 0a 46 24 41 50 50 |;.......|;..F$APP|
|00003b10| 4c 3a 0d 0a 09 50 55 54 | 52 47 0d 0a 09 43 41 4c |L:...PUT|RG...CAL|
|00003b20| 4c 09 49 4e 49 54 46 43 | 42 09 09 3b 49 4e 49 54 |L.INITFC|B..;INIT|
|00003b30| 20 54 48 45 20 46 43 42 | 0d 0a 09 4c 44 09 43 2c | THE FCB|...LD.C,|
|00003b40| 4f 50 45 4e 46 09 09 3b | 4f 50 45 4e 20 46 49 4c |OPENF..;|OPEN FIL|
|00003b50| 45 20 50 54 45 44 20 54 | 4f 20 42 59 20 44 45 0d |E PTED T|O BY DE.|
|00003b60| 0a 09 43 41 4c 4c 09 42 | 44 4f 53 45 0d 0a 09 43 |..CALL.B|DOSE...C|
|00003b70| 50 09 30 46 46 48 09 09 | 3b 45 52 52 4f 52 3f 0d |P.0FFH..|;ERROR?.|
|00003b80| 0a 09 4a 50 09 5a 2c 4e | 4f 46 49 4c 45 0d 0a 09 |..JP.Z,N|OFILE...|
|00003b90| 4c 44 09 43 2c 47 45 54 | 46 53 09 09 3b 47 45 54 |LD.C,GET|FS..;GET|
|00003ba0| 20 46 49 4c 45 20 53 49 | 5a 45 0d 0a 09 43 41 4c | FILE SI|ZE...CAL|
|00003bb0| 4c 09 42 44 4f 53 45 0d | 0a 09 4c 44 09 48 4c 2c |L.BDOSE.|..LD.HL,|
|00003bc0| 33 35 09 09 3b 43 48 45 | 43 4b 20 46 4f 52 20 46 |35..;CHE|CK FOR F|
|00003bd0| 55 4c 4c 20 46 49 4c 45 | 0d 0a 09 41 44 44 09 48 |ULL FILE|...ADD.H|
|00003be0| 4c 2c 44 45 0d 0a 09 4c | 44 09 41 2c 28 48 4c 29 |L,DE...L|D.A,(HL)|
|00003bf0| 09 09 3b 47 45 54 20 56 | 41 4c 55 45 0d 0a 09 4f |..;GET V|ALUE...O|
|00003c00| 52 09 41 09 09 3b 4d 55 | 53 54 20 42 45 20 5a 45 |R.A..;MU|ST BE ZE|
|00003c10| 52 4f 0d 0a 09 4a 50 09 | 4e 5a 2c 46 55 4c 4c 46 |RO...JP.|NZ,FULLF|
|00003c20| 49 4c 45 0d 0a 09 44 45 | 43 09 48 4c 09 09 3b 47 |ILE...DE|C.HL..;G|
|00003c30| 45 54 20 52 45 43 4f 52 | 44 20 4e 55 4d 42 45 52 |ET RECOR|D NUMBER|
|00003c40| 20 4f 46 20 4c 41 53 54 | 20 52 45 43 4f 52 44 0d | OF LAST| RECORD.|
|00003c50| 0a 09 4c 44 09 42 2c 28 | 48 4c 29 0d 0a 09 44 45 |..LD.B,(|HL)...DE|
|00003c60| 43 09 48 4c 0d 0a 09 4c | 44 09 43 2c 28 48 4c 29 |C.HL...L|D.C,(HL)|
|00003c70| 09 09 3b 42 43 20 3d 20 | 52 45 43 4f 52 44 20 4e |..;BC = |RECORD N|
|00003c80| 55 4d 42 45 52 0d 0a 09 | 4c 44 09 41 2c 42 09 09 |UMBER...|LD.A,B..|
|00003c90| 3b 43 48 45 43 4b 20 46 | 4f 52 20 5a 45 52 4f 0d |;CHECK F|OR ZERO.|
|00003ca0| 0a 09 4f 52 09 43 0d 0a | 09 4a 50 09 5a 2c 45 4d |..OR.C..|.JP.Z,EM|
|00003cb0| 46 49 4c 45 09 3b 44 4f | 4e 45 20 49 46 20 4e 4f |FILE.;DO|NE IF NO|
|00003cc0| 20 52 45 43 4f 52 44 53 | 0d 0a 09 44 45 43 09 42 | RECORDS|...DEC.B|
|00003cd0| 43 09 09 3b 44 45 43 52 | 45 4d 45 4e 54 20 54 4f |C..;DECR|EMENT TO|
|00003ce0| 20 4c 41 53 54 20 52 45 | 43 4f 52 44 0d 0a 09 4c | LAST RE|CORD...L|
|00003cf0| 44 09 28 48 4c 29 2c 43 | 09 09 3b 53 54 4f 52 45 |D.(HL),C|..;STORE|
|00003d00| 20 52 45 43 4f 52 44 20 | 4e 55 4d 42 45 52 20 2d | RECORD |NUMBER -|
|00003d10| 20 31 0d 0a 09 49 4e 43 | 09 48 4c 0d 0a 09 4c 44 | 1...INC|.HL...LD|
|00003d20| 09 28 48 4c 29 2c 42 0d | 0a 09 4c 44 09 43 2c 52 |.(HL),B.|..LD.C,R|
|00003d30| 52 45 41 44 09 09 3b 52 | 45 41 44 20 4c 41 53 54 |READ..;R|EAD LAST|
|00003d40| 20 52 45 43 4f 52 44 20 | 41 54 20 52 41 4e 44 4f | RECORD |AT RANDO|
|00003d50| 4d 0d 0a 09 43 41 4c 4c | 09 42 44 4f 53 45 0d 0a |M...CALL|.BDOSE..|
|00003d60| 09 58 4f 52 09 41 09 09 | 3b 4e 4f 20 45 52 52 4f |.XOR.A..|;NO ERRO|
|00003d70| 52 0d 0a 44 4f 4e 45 3a | 0d 0a 09 47 45 54 52 47 |R..DONE:|...GETRG|
|00003d80| 0d 0a 09 52 45 54 0d 0a | 4e 4f 46 49 4c 45 3a 0d |...RET..|NOFILE:.|
|00003d90| 0a 09 4c 44 09 41 2c 31 | 09 09 3b 45 52 52 4f 52 |..LD.A,1|..;ERROR|
|00003da0| 20 43 4f 44 45 20 46 4f | 52 20 4e 4f 20 46 49 4c | CODE FO|R NO FIL|
|00003db0| 45 0d 0a 09 4a 50 09 46 | 49 4c 45 0d 0a 46 55 4c |E...JP.F|ILE..FUL|
|00003dc0| 4c 46 49 4c 45 3a 0d 0a | 09 4c 44 09 41 2c 32 09 |LFILE:..|.LD.A,2.|
|00003dd0| 09 3b 45 52 52 4f 52 20 | 43 4f 44 45 20 46 4f 52 |.;ERROR |CODE FOR|
|00003de0| 20 46 55 4c 4c 20 46 49 | 4c 45 0d 0a 09 4a 50 09 | FULL FI|LE...JP.|
|00003df0| 46 49 4c 45 0d 0a 45 4d | 46 49 4c 45 3a 0d 0a 09 |FILE..EM|FILE:...|
|00003e00| 4c 44 09 41 2c 33 09 09 | 3b 45 52 52 4f 52 20 43 |LD.A,3..|;ERROR C|
|00003e10| 4f 44 45 20 46 4f 52 20 | 45 4d 50 54 59 20 46 49 |ODE FOR |EMPTY FI|
|00003e20| 4c 45 0d 0a 46 49 4c 45 | 3a 0d 0a 09 47 45 54 52 |LE..FILE|:...GETR|
|00003e30| 47 0d 0a 09 4f 52 09 41 | 09 09 3b 53 45 54 20 4e |G...OR.A|..;SET N|
|00003e40| 5a 0d 0a 09 52 45 54 0d | 0a 3b 0d 0a 3b 20 20 43 |Z...RET.|.;..; C|
|00003e50| 41 4c 4c 20 42 44 4f 53 | 20 41 4e 44 20 53 41 56 |ALL BDOS| AND SAV|
|00003e60| 45 20 44 45 0d 0a 3b 0d | 0a 42 44 4f 53 45 3a 0d |E DE..;.|.BDOSE:.|
|00003e70| 0a 09 50 55 53 48 09 44 | 45 0d 0a 09 43 41 4c 4c |..PUSH.D|E...CALL|
|00003e80| 09 42 44 4f 53 0d 0a 09 | 50 4f 50 09 44 45 0d 0a |.BDOS...|POP.DE..|
|00003e90| 09 52 45 54 0d 0a 0d 0a | 09 45 4e 44 0d 0a 1a 1a |.RET....|.END....|
|00003ea0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00003eb0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00003ec0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00003ed0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00003ee0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00003ef0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00003f00| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00003f10| 6c 65 20 4e 61 6d 65 3a | 20 20 53 46 43 4c 4f 53 |le Name:| SFCLOS|
|00003f20| 45 0d 0a 3b 20 41 75 74 | 68 6f 72 3a 20 20 52 69 |E..; Aut|hor: Ri|
|00003f30| 63 68 61 72 64 20 43 6f | 6e 6e 0d 0a 3b 20 53 59 |chard Co|nn..; SY|
|00003f40| 53 4c 49 42 20 56 65 72 | 73 69 6f 6e 20 4e 75 6d |SLIB Ver|sion Num|
|00003f50| 62 65 72 3a 20 20 33 2e | 36 0d 0a 3b 20 4d 6f 64 |ber: 3.|6..; Mod|
|00003f60| 75 6c 65 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |ule Vers|ion Numb|
|00003f70| 65 72 3a 20 20 31 2e 31 | 0d 0a 0d 0a 09 70 75 62 |er: 1.1|.....pub|
|00003f80| 6c 69 63 09 66 24 63 6c | 6f 73 65 0d 0a 0d 0a 3b |lic.f$cl|ose....;|
|00003f90| 0d 0a 3b 20 20 46 24 43 | 4c 4f 53 45 20 2d 2d 20 |..; F$C|LOSE -- |
|00003fa0| 43 4c 4f 53 45 20 46 49 | 4c 45 20 57 48 4f 53 45 |CLOSE FI|LE WHOSE|
|00003fb0| 20 46 43 42 20 49 53 20 | 50 54 45 44 20 54 4f 20 | FCB IS |PTED TO |
|00003fc0| 42 59 20 44 45 0d 0a 3b | 09 52 45 54 20 57 2f 41 |BY DE..;|.RET W/A|
|00003fd0| 3d 30 20 49 46 20 4f 4b | 0d 0a 3b 0d 0a 09 45 58 |=0 IF OK|..;...EX|
|00003fe0| 54 09 42 44 4f 53 0d 0a | 0d 0a 46 24 43 4c 4f 53 |T.BDOS..|..F$CLOS|
|00003ff0| 45 3a 0d 0a 09 50 55 53 | 48 09 48 4c 09 3b 20 53 |E:...PUS|H.HL.; S|
|00004000| 41 56 45 20 48 4c 0d 0a | 09 50 55 53 48 09 42 43 |AVE HL..|.PUSH.BC|
|00004010| 09 3b 20 53 41 56 45 20 | 42 43 0d 0a 09 4c 44 09 |.; SAVE |BC...LD.|
|00004020| 43 2c 42 24 43 4c 4f 53 | 0d 0a 09 43 41 4c 4c 09 |C,B$CLOS|...CALL.|
|00004030| 42 44 4f 53 0d 0a 09 43 | 50 09 32 35 35 09 3b 20 |BDOS...C|P.255.; |
|00004040| 45 52 52 4f 52 3f 0d 0a | 09 4a 50 09 5a 2c 46 43 |ERROR?..|.JP.Z,FC|
|00004050| 4c 53 44 4e 0d 0a 09 58 | 4f 52 09 41 09 3b 20 41 |LSDN...X|OR.A.; A|
|00004060| 3d 30 0d 0a 46 43 4c 53 | 44 4e 3a 0d 0a 09 50 4f |=0..FCLS|DN:...PO|
|00004070| 50 09 42 43 09 3b 20 52 | 45 53 54 4f 52 45 20 42 |P.BC.; R|ESTORE B|
|00004080| 43 0d 0a 09 50 4f 50 09 | 48 4c 09 3b 20 52 45 53 |C...POP.|HL.; RES|
|00004090| 54 4f 52 45 20 48 4c 0d | 0a 09 52 45 54 0d 0a 0d |TORE HL.|..RET...|
|000040a0| 0a 42 24 43 4c 4f 53 09 | 45 51 55 09 31 36 09 3b |.B$CLOS.|EQU.16.;|
|000040b0| 20 43 4c 4f 53 45 20 46 | 49 4c 45 0d 0a 0d 0a 09 | CLOSE F|ILE.....|
|000040c0| 45 4e 44 0d 0a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |END.....|........|
|000040d0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|000040e0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|000040f0| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00004100| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00004110| 6c 65 20 4e 61 6d 65 3a | 20 20 53 46 44 45 4c 45 |le Name:| SFDELE|
|00004120| 54 45 0d 0a 3b 20 41 75 | 74 68 6f 72 3a 20 20 52 |TE..; Au|thor: R|
|00004130| 69 63 68 61 72 64 20 43 | 6f 6e 6e 0d 0a 3b 20 53 |ichard C|onn..; S|
|00004140| 59 53 4c 49 42 20 56 65 | 72 73 69 6f 6e 20 4e 75 |YSLIB Ve|rsion Nu|
|00004150| 6d 62 65 72 3a 20 20 33 | 2e 36 0d 0a 3b 20 4d 6f |mber: 3|.6..; Mo|
|00004160| 64 75 6c 65 20 56 65 72 | 73 69 6f 6e 20 4e 75 6d |dule Ver|sion Num|
|00004170| 62 65 72 3a 20 20 31 2e | 31 0d 0a 0d 0a 09 70 75 |ber: 1.|1.....pu|
|00004180| 62 6c 69 63 09 66 24 64 | 65 6c 65 74 65 0d 0a 0d |blic.f$d|elete...|
|00004190| 0a 3b 0d 0a 3b 20 20 46 | 24 44 45 4c 45 54 45 20 |.;..; F|$DELETE |
|000041a0| 2d 2d 20 44 45 4c 45 54 | 45 20 46 49 4c 45 20 57 |-- DELET|E FILE W|
|000041b0| 48 4f 53 45 20 46 43 42 | 20 49 53 20 50 54 45 44 |HOSE FCB| IS PTED|
|000041c0| 20 54 4f 20 42 59 20 44 | 45 0d 0a 3b 0d 0a 09 45 | TO BY D|E..;...E|
|000041d0| 58 54 09 42 44 4f 53 0d | 0a 0d 0a 46 24 44 45 4c |XT.BDOS.|...F$DEL|
|000041e0| 45 54 45 3a 0d 0a 09 50 | 55 53 48 09 48 4c 09 3b |ETE:...P|USH.HL.;|
|000041f0| 20 53 41 56 45 20 48 4c | 0d 0a 09 50 55 53 48 09 | SAVE HL|...PUSH.|
|00004200| 42 43 09 3b 20 53 41 56 | 45 20 42 43 0d 0a 09 4c |BC.; SAV|E BC...L|
|00004210| 44 09 43 2c 42 24 44 45 | 4c 0d 0a 09 43 41 4c 4c |D.C,B$DE|L...CALL|
|00004220| 09 42 44 4f 53 0d 0a 09 | 50 4f 50 09 42 43 09 3b |.BDOS...|POP.BC.;|
|00004230| 20 52 45 53 54 4f 52 45 | 20 42 43 0d 0a 09 50 4f | RESTORE| BC...PO|
|00004240| 50 09 48 4c 09 3b 20 52 | 45 53 54 4f 52 45 20 48 |P.HL.; R|ESTORE H|
|00004250| 4c 0d 0a 09 52 45 54 0d | 0a 0d 0a 42 24 44 45 4c |L...RET.|...B$DEL|
|00004260| 09 45 51 55 09 31 39 09 | 3b 20 44 45 4c 45 54 45 |.EQU.19.|; DELETE|
|00004270| 20 46 49 4c 45 0d 0a 0d | 0a 09 45 4e 44 0d 0a 1a | FILE...|..END...|
|00004280| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00004290| 6c 65 20 4e 61 6d 65 3a | 20 20 53 46 45 58 49 53 |le Name:| SFEXIS|
|000042a0| 54 0d 0a 3b 20 41 75 74 | 68 6f 72 3a 20 20 52 69 |T..; Aut|hor: Ri|
|000042b0| 63 68 61 72 64 20 43 6f | 6e 6e 0d 0a 3b 20 53 59 |chard Co|nn..; SY|
|000042c0| 53 4c 49 42 20 56 65 72 | 73 69 6f 6e 20 4e 75 6d |SLIB Ver|sion Num|
|000042d0| 62 65 72 3a 20 20 33 2e | 36 0d 0a 3b 20 4d 6f 64 |ber: 3.|6..; Mod|
|000042e0| 75 6c 65 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |ule Vers|ion Numb|
|000042f0| 65 72 3a 20 20 31 2e 31 | 0d 0a 0d 0a 09 70 75 62 |er: 1.1|.....pub|
|00004300| 6c 69 63 09 66 24 65 78 | 69 73 74 0d 0a 0d 0a 3b |lic.f$ex|ist....;|
|00004310| 0d 0a 3b 20 20 45 58 54 | 45 52 4e 41 4c 53 0d 0a |..; EXT|ERNALS..|
|00004320| 3b 0d 0a 09 45 58 54 09 | 42 44 4f 53 0d 0a 0d 0a |;...EXT.|BDOS....|
|00004330| 3b 0d 0a 3b 20 20 46 24 | 45 58 49 53 54 20 2d 2d |;..; F$|EXIST --|
|00004340| 20 53 65 61 72 63 68 20 | 63 75 72 72 65 6e 74 20 | Search |current |
|00004350| 64 69 73 6b 20 61 6e 64 | 20 75 73 65 72 20 66 6f |disk and| user fo|
|00004360| 72 20 66 69 6c 65 20 77 | 68 6f 73 65 20 46 43 42 |r file w|hose FCB|
|00004370| 20 69 73 20 70 74 65 64 | 0d 0a 3b 09 74 6f 20 62 | is pted|..;.to b|
|00004380| 79 20 44 45 3b 20 72 65 | 74 75 72 6e 20 5a 65 72 |y DE; re|turn Zer|
|00004390| 6f 20 46 6c 61 67 20 53 | 65 74 20 28 5a 29 20 69 |o Flag S|et (Z) i|
|000043a0| 66 20 6e 6f 74 20 66 6f | 75 6e 64 2c 20 4e 5a 20 |f not fo|und, NZ |
|000043b0| 69 66 20 66 6f 75 6e 64 | 0d 0a 3b 0d 0a 46 24 45 |if found|..;..F$E|
|000043c0| 58 49 53 54 3a 0d 0a 09 | 50 55 53 48 09 48 4c 09 |XIST:...|PUSH.HL.|
|000043d0| 3b 20 53 41 56 45 20 52 | 45 47 53 0d 0a 09 50 55 |; SAVE R|EGS...PU|
|000043e0| 53 48 09 42 43 0d 0a 09 | 4c 44 09 43 2c 31 37 09 |SH.BC...|LD.C,17.|
|000043f0| 3b 20 53 45 41 52 43 48 | 20 46 4f 52 20 46 49 52 |; SEARCH| FOR FIR|
|00004400| 53 54 0d 0a 09 43 41 4c | 4c 09 42 44 4f 53 0d 0a |ST...CAL|L.BDOS..|
|00004410| 09 50 4f 50 09 42 43 09 | 3b 20 52 45 53 54 4f 52 |.POP.BC.|; RESTOR|
|00004420| 45 20 52 45 47 53 0d 0a | 09 50 4f 50 09 48 4c 0d |E REGS..|.POP.HL.|
|00004430| 0a 09 49 4e 43 09 41 09 | 3b 20 30 20 49 46 20 4e |..INC.A.|; 0 IF N|
|00004440| 4f 54 20 46 4f 55 4e 44 | 0d 0a 09 52 45 54 0d 0a |OT FOUND|...RET..|
|00004450| 0d 0a 09 45 4e 44 0d 0a | 1a 1a 1a 1a 1a 1a 1a 1a |...END..|........|
|00004460| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00004470| 1a 1a 1a 1a 1a 1a 1a 1a | 1a 1a 1a 1a 1a 1a 1a 1a |........|........|
|00004480| 3b 0d 0a 3b 20 53 59 53 | 4c 49 42 20 4d 6f 64 75 |;..; SYS|LIB Modu|
|00004490| 6c 65 20 4e 61 6d 65 3a | 20 20 53 46 49 4c 45 49 |le Name:| SFILEI|
|000044a0| 4f 0d 0a 3b 20 41 75 74 | 68 6f 72 3a 20 20 52 69 |O..; Aut|hor: Ri|
|000044b0| 63 68 61 72 64 20 43 6f | 6e 6e 0d 0a 3b 20 53 59 |chard Co|nn..; SY|
|000044c0| 53 4c 49 42 20 56 65 72 | 73 69 6f 6e 20 4e 75 6d |SLIB Ver|sion Num|
|000044d0| 62 65 72 3a 20 20 33 2e | 36 0d 0a 3b 20 4d 6f 64 |ber: 3.|6..; Mod|
|000044e0| 75 6c 65 20 56 65 72 73 | 69 6f 6e 20 4e 75 6d 62 |ule Vers|ion Numb|
|000044f0| 65 72 3a 20 20 31 2e 32 | 0d 0a 0d 0a 09 70 75 62 |er: 1.2|.....pub|
|00004500| 6c 69 63 09 66 69 24 6f | 70 65 6e 0d 0a 09 70 75 |lic.fi$o|pen...pu|
|00004510| 62 6c 69 63 09 66 24 67 | 65 74 0d 0a 09 70 75 62 |blic.f$g|et...pub|
|00004520| 6c 69 63 09 66 69 24 63 | 6c 6f 73 0d 0a 09 70 75 |lic.fi$c|los...pu|
|00004530| 62 6c 69 63 09 66 6f 24 | 6f 70 65 6e 0d 0a 09 70 |blic.fo$|open...p|
|00004540| 75 62 6c 69 63 09 66 24 | 70 75 74 0d 0a 09 70 75 |ublic.f$|put...pu|
|00004550| 62 6c 69 63 09 66 6f 24 | 63 6c 6f 73 0d 0a 0d 0a |blic.fo$|clos....|
|00004560| 3b 20 20 44 61 74 65 3a | 20 20 20 20 20 33 20 4d |; Date:| 3 M|
|00004570| 61 79 20 38 35 0d 0a 3b | 20 20 52 65 76 69 73 65 |ay 85..;| Revise|
|00004580| 64 3a 20 41 6c 20 44 75 | 6e 73 6d 75 69 72 0d 0a |d: Al Du|nsmuir..|
|00004590| 3b 20 20 43 68 61 6e 67 | 65 73 3a 09 2d 20 54 61 |; Chang|es:.- Ta|
|000045a0| 62 6c 65 20 6f 72 67 61 | 6e 69 7a 61 74 69 6f 6e |ble orga|nization|
|000045b0| 20 63 6f 6d 70 6c 65 74 | 65 6c 79 20 63 68 61 6e | complet|ely chan|
|000045c0| 67 65 64 2e 0d 0a 3b 09 | 09 2d 20 45 78 74 65 6e |ged...;.|.- Exten|
|000045d0| 73 69 76 65 20 63 6f 64 | 65 20 6f 70 74 69 6d 69 |sive cod|e optimi|
|000045e0| 7a 61 74 69 6f 6e 20 70 | 65 72 66 6f 72 6d 65 64 |zation p|erformed|
|000045f0| 2e 0d 0a 3b 09 09 2d 20 | 41 63 74 75 61 6c 6c 79 |...;..- |Actually|
|00004600| 20 63 6c 6f 73 65 20 69 | 6e 70 75 74 20 66 69 6c | close i|nput fil|
|00004610| 65 20 69 66 20 69 74 20 | 77 61 73 20 6f 70 65 6e |e if it |was open|
|00004620| 0d 0a 3b 09 09 20 20 28 | 72 65 71 75 69 72 65 64 |..;.. (|required|
|00004630| 20 62 79 20 4d 50 2f 4d | 20 61 6e 64 20 6f 74 68 | by MP/M| and oth|
|00004640| 65 72 73 29 2e 0d 0a 3b | 09 09 2d 20 55 73 65 20 |ers)...;|..- Use |
|00004650| 64 69 72 65 63 74 20 44 | 4d 41 20 76 73 20 44 4d |direct D|MA vs DM|
|00004660| 41 20 74 6f 20 54 42 55 | 46 46 20 61 6e 64 20 73 |A to TBU|FF and s|
|00004670| 6f 66 74 77 61 72 65 20 | 6d 6f 76 65 2e 0d 0a 3b |oftware |move...;|
|00004680| 09 09 20 20 4d 61 6b 65 | 73 20 62 79 74 65 20 49 |.. Make|s byte I|
|00004690| 2f 4f 20 61 20 62 69 74 | 20 66 61 73 74 65 72 20 |/O a bit| faster |
|000046a0| 41 4e 44 20 73 61 66 65 | 72 2e 0d 0a 3b 09 09 2d |AND safe|r...;..-|
|000046b0| 20 45 6c 69 6d 69 6e 61 | 74 65 20 46 24 50 55 54 | Elimina|te F$PUT|
|000046c0| 20 73 74 61 63 6b 20 65 | 72 72 6f 72 20 6f 6e 20 | stack e|rror on |
|000046d0| 65 72 72 6f 72 20 31 0d | 0a 3b 09 09 2d 20 45 6c |error 1.|.;..- El|
|000046e0| 69 6d 69 6e 61 74 65 20 | 46 24 43 4c 4f 53 45 20 |iminate |F$CLOSE |
|000046f0| 50 55 54 53 20 77 68 65 | 6e 20 6f 75 74 70 75 74 |PUTS whe|n output|
|00004700| 20 62 75 66 66 65 72 20 | 69 73 20 65 6d 70 74 79 | buffer |is empty|
|00004710| 0d 0a 3b 09 09 20 20 28 | 77 61 73 20 73 75 69 74 |..;.. (|was suit|
|00004720| 61 62 6c 65 20 66 6f 72 | 20 74 65 78 74 20 66 69 |able for| text fi|
|00004730| 6c 65 73 20 6f 6e 6c 79 | 29 2e 0d 0a 3b 09 09 09 |les only|)...;...|
|00004740| 0d 0a 3b 20 20 20 50 72 | 65 76 69 6f 75 73 20 56 |..; Pr|evious V|
|00004750| 65 72 73 69 6f 6e 3a 09 | 31 2e 30 20 28 31 36 20 |ersion:.|1.0 (16 |
|00004760| 4a 61 6e 20 38 34 29 0d | 0a 0d 0a 3b 0d 0a 3b 20 |Jan 84).|...;..; |
|00004770| 20 53 46 49 4c 45 49 4f | 2e 4d 41 43 20 2d 2d 20 | SFILEIO|.MAC -- |
|00004780| 42 79 74 65 2d 4f 72 69 | 65 6e 74 65 64 20 46 69 |Byte-Ori|ented Fi|
|00004790| 6c 65 20 49 2f 4f 20 66 | 6f 72 20 53 59 53 4c 49 |le I/O f|or SYSLI|
|000047a0| 42 0d 0a 3b 20 20 20 20 | 49 6e 63 6c 75 64 65 64 |B..; |Included|
|000047b0| 20 72 6f 75 74 69 6e 65 | 73 20 61 72 65 20 2d 2d | routine|s are --|
|000047c0| 20 20 46 49 4c 45 20 49 | 4e 50 55 54 20 4f 50 45 | FILE I|NPUT OPE|
|000047d0| 4e 2c 0d 0a 3b 09 09 09 | 20 20 20 20 20 20 20 47 |N,..;...| G|
|000047e0| 45 54 2c 0d 0a 3b 09 09 | 09 20 20 20 20 20 20 20 |ET,..;..|. |
|000047f0| 46 49 4c 45 20 49 4e 50 | 55 54 20 43 4c 4f 53 45 |FILE INP|UT CLOSE|
|00004800| 2c 0d 0a 3b 09 09 09 20 | 20 20 20 20 20 20 46 49 |,..;... | FI|
|00004810| 4c 45 20 4f 55 54 50 55 | 54 20 4f 50 45 4e 2c 0d |LE OUTPU|T OPEN,.|
|00004820| 0a 3b 09 09 09 20 20 20 | 20 20 20 20 50 55 54 2c |.;... | PUT,|
|00004830| 0d 0a 3b 09 09 09 20 20 | 20 20 20 20 20 46 49 4c |..;... | FIL|
|00004840| 45 20 4f 55 54 50 55 54 | 20 43 4c 4f 53 45 0d 0a |E OUTPUT| CLOSE..|
|00004850| 0d 0a 3b 09 45 72 72 6f | 72 20 44 69 61 67 6e 6f |..;.Erro|r Diagno|
|00004860| 73 74 69 63 73 20 61 72 | 65 20 72 65 74 75 72 6e |stics ar|e return|
|00004870| 65 64 20 74 6f 20 74 68 | 65 20 63 61 6c 6c 65 72 |ed to th|e caller|
|00004880| 20 76 69 61 20 74 68 65 | 20 5a 65 72 6f 20 46 6c | via the| Zero Fl|
|00004890| 61 67 0d 0a 3b 09 09 28 | 5a 65 72 6f 20 46 6c 61 |ag..;..(|Zero Fla|
|000048a0| 67 20 53 65 74 20 2d 20 | 5a 20 2d 20 41 4c 57 41 |g Set - |Z - ALWA|
|000048b0| 59 53 20 4d 65 61 6e 73 | 20 4e 6f 20 45 72 72 6f |YS Means| No Erro|
|000048c0| 72 20 4f 63 63 75 72 72 | 65 64 29 0d 0a 3b 09 09 |r Occurr|ed)..;..|
|000048d0| 61 6e 64 20 74 68 65 20 | 41 20 52 65 67 69 73 74 |and the |A Regist|
|000048e0| 65 72 0d 0a 3b 09 49 66 | 20 74 68 65 20 5a 65 72 |er..;.If| the Zer|
|000048f0| 6f 20 46 6c 61 67 20 69 | 73 20 53 65 74 20 28 5a |o Flag i|s Set (Z|
|00004900| 29 2c 20 74 68 65 6e 20 | 74 68 65 20 41 20 52 65 |), then |the A Re|
|00004910| 67 69 73 74 65 72 20 65 | 69 74 68 65 72 20 63 6f |gister e|ither co|
|00004920| 6e 74 61 69 6e 73 0d 0a | 3b 09 09 61 20 30 20 6f |ntains..|;..a 0 o|
|00004930| 72 20 74 68 65 20 72 65 | 71 75 69 72 65 64 20 72 |r the re|quired r|
|00004940| 65 74 75 72 6e 65 64 20 | 76 61 6c 75 65 20 69 66 |eturned |value if|
|00004950| 20 41 20 69 73 20 73 69 | 67 6e 69 66 69 63 61 6e | A is si|gnifican|
|00004960| 74 20 66 6f 72 0d 0a 3b | 09 09 74 68 65 20 70 61 |t for..;|..the pa|
|00004970| 72 74 69 63 75 6c 61 72 | 20 72 6f 75 74 69 6e 65 |rticular| routine|
|00004980| 2e 0d 0a 3b 09 49 66 20 | 74 68 65 20 5a 65 72 6f |...;.If |the Zero|
|00004990| 20 46 6c 61 67 20 69 73 | 20 43 6c 65 61 72 20 28 | Flag is| Clear (|
|000049a0| 4e 5a 29 2c 20 74 68 65 | 6e 20 74 68 65 20 41 20 |NZ), the|n the A |
|000049b0| 52 65 67 69 73 74 65 72 | 20 63 6f 6e 74 61 69 6e |Register| contain|
|000049c0| 73 20 74 68 65 0d 0a 3b | 09 09 65 72 72 6f 72 20 |s the..;|..error |
|000049d0| 63 6f 64 65 2e 20 20 4e | 6f 20 6f 74 68 65 72 20 |code. N|o other |
|000049e0| 72 65 74 75 72 6e 65 64 | 20 72 65 67 69 73 74 65 |returned| registe|
|000049f0| 72 20 76 61 6c 75 65 20 | 69 6e 20 48 4c 2c 20 44 |r value |in HL, D|
|00004a00| 45 2c 0d 0a 3b 09 09 6f | 72 20 42 43 20 73 68 6f |E,..;..o|r BC sho|
|00004a10| 75 6c 64 20 62 65 20 63 | 6f 6e 73 69 64 65 72 65 |uld be c|onsidere|
|00004a20| 64 20 74 6f 20 62 65 20 | 76 61 6c 69 64 2e 20 20 |d to be |valid. |
|00004a30| 0d 0a 3b 09 09 20 20 54 | 68 65 20 52 65 74 75 72 |..;.. T|he Retur|
|00004a40| 6e 65 64 20 45 72 72 6f | 72 20 43 6f 64 65 73 20 |ned Erro|r Codes |
|00004a50| 69 6e 20 41 20 61 72 65 | 3a 0d 0a 3b 09 09 09 43 |in A are|:..;...C|
|00004a60| 6f 64 65 09 4d 65 61 6e | 69 6e 67 0d 0a 3b 09 09 |ode.Mean|ing..;..|
|00004a70| 09 20 20 31 09 47 45 54 | 20 6f 72 20 50 55 54 20 |. 1.GET| or PUT |
|00004a80| 61 74 74 65 6d 70 74 65 | 64 20 6f 6e 20 75 6e 6f |attempte|d on uno|
|00004a90| 70 65 6e 65 64 20 66 69 | 6c 65 0d 0a 3b 09 09 09 |pened fi|le..;...|
|00004aa0| 20 20 32 09 44 69 73 6b | 20 46 75 6c 6c 20 28 52 | 2.Disk| Full (R|
|00004ab0| 61 6e 20 6f 75 74 20 6f | 66 20 73 70 61 63 65 29 |an out o|f space)|
|00004ac0| 0d 0a 3b 09 09 09 20 20 | 33 09 49 6e 70 75 74 20 |..;... |3.Input |
|00004ad0| 46 69 6c 65 20 4e 6f 74 | 20 46 6f 75 6e 64 0d 0a |File Not| Found..|
|00004ae0| 3b 09 09 09 20 20 34 09 | 41 74 74 65 6d 70 74 20 |;... 4.|Attempt |
|00004af0| 74 6f 20 52 65 61 64 20 | 50 61 73 74 20 74 68 65 |to Read |Past the|
|00004b00| 20 45 4f 46 0d 0a 3b 09 | 09 09 20 20 35 09 44 69 | EOF..;.|.. 5.Di|
|00004b10| 72 65 63 74 6f 72 79 20 | 46 75 6c 6c 0d 0a 3b 09 |rectory |Full..;.|
|00004b20| 09 09 20 20 36 09 45 72 | 72 6f 72 20 69 6e 20 43 |.. 6.Er|ror in C|
|00004b30| 6c 6f 73 69 6e 67 20 61 | 20 46 69 6c 65 0d 0a 3b |losing a| File..;|
|00004b40| 09 09 09 20 20 37 09 41 | 74 74 65 6d 70 74 20 74 |... 7.A|ttempt t|
|00004b50| 6f 20 4f 70 65 6e 20 61 | 20 46 69 6c 65 20 77 68 |o Open a| File wh|
|00004b60| 69 63 68 20 69 73 20 61 | 6c 72 65 61 64 79 20 6f |ich is a|lready o|
|00004b70| 70 65 6e 0d 0a 3b 0d 0a | 0d 0a 3b 0d 0a 3b 20 20 |pen..;..|..;..; |
|00004b80| 45 58 54 45 52 4e 41 4c | 20 4c 49 42 52 41 52 59 |EXTERNAL| LIBRARY|
|00004b90| 20 46 49 4c 45 20 44 45 | 46 49 4e 49 54 49 4f 4e | FILE DE|FINITION|
|00004ba0| 53 0d 0a 3b 0d 0a 09 45 | 58 54 09 46 24 4f 50 45 |S..;...E|XT.F$OPE|
|00004bb0| 4e 09 09 3b 4f 70 65 6e | 20 46 69 6c 65 0d 0a 09 |N..;Open| File...|
|00004bc0| 45 58 54 09 46 24 4d 4f | 50 45 4e 09 09 3b 4f 70 |EXT.F$MO|PEN..;Op|
|00004bd0| 65 6e 2f 43 72 65 61 74 | 65 20 66 69 6c 65 0d 0a |en/Creat|e file..|
|00004be0| 09 45 58 54 09 49 4e 49 | 54 46 43 42 09 09 3b 49 |.EXT.INI|TFCB..;I|
|00004bf0| 6e 69 74 20 46 43 42 0d | 0a 09 45 58 54 09 48 4d |nit FCB.|..EXT.HM|
|00004c00| 4f 56 42 09 09 3b 43 6f | 70 79 20 28 48 4c 29 20 |OVB..;Co|py (HL) |
|00004c10| 74 6f 20 28 44 45 29 20 | 66 6f 72 20 28 42 29 0d |to (DE) |for (B).|
|00004c20| 0a 0d 0a 0d 0a 3b 20 20 | 43 50 2f 4d 20 45 71 75 |.....; |CP/M Equ|
|00004c30| 61 74 65 73 20 61 6e 64 | 20 41 53 43 49 49 20 43 |ates and| ASCII C|
|00004c40| 6f 6e 73 74 61 6e 74 73 | 0d 0a 3b 0d 0a 54 42 55 |onstants|..;..TBU|
|00004c50| 46 46 09 45 51 55 09 38 | 30 48 09 09 3b 54 65 6d |FF.EQU.8|0H..;Tem|
|00004c60| 70 6f 72 61 72 79 20 66 | 69 6c 65 20 49 2f 4f 20 |porary f|ile I/O |
|00004c70| 42 75 66 66 65 72 0d 0a | 45 4f 46 09 45 51 55 09 |Buffer..|EOF.EQU.|
|00004c80| 31 41 48 09 09 3b 20 3c | 45 4f 46 3e 0d 0a 0d 0a |1AH..; <|EOF>....|
|00004c90| 42 44 4f 53 09 45 51 55 | 09 35 09 09 3b 42 44 4f |BDOS.EQU|.5..;BDO|
|00004ca0| 53 20 65 6e 74 72 79 20 | 70 6f 69 6e 74 0d 0a 42 |S entry |point..B|
|00004cb0| 24 43 4c 09 45 51 55 09 | 31 36 09 09 3b 20 43 6c |$CL.EQU.|16..; Cl|
|00004cc0| 6f 73 65 20 66 69 6c 65 | 0d 0a 42 24 52 44 09 45 |ose file|..B$RD.E|
|00004cd0| 51 55 09 32 30 09 09 3b | 20 52 65 61 64 20 6e 65 |QU.20..;| Read ne|
|00004ce0| 78 74 20 72 65 63 6f 72 | 64 0d 0a 42 24 57 52 09 |xt recor|d..B$WR.|
|00004cf0| 45 51 55 09 32 31 09 09 | 3b 20 57 72 69 74 65 20 |EQU.21..|; Write |
|00004d00| 6e 65 78 74 20 72 65 63 | 6f 72 64 0d 0a 42 24 44 |next rec|ord..B$D|
|00004d10| 4d 41 09 45 51 55 09 32 | 36 09 09 3b 20 53 65 74 |MA.EQU.2|6..; Set|
|00004d20| 20 44 4d 41 20 61 64 64 | 72 65 73 73 0d 0a 0d 0a | DMA add|ress....|
|00004d30| 0d 0a 0d 0a 3b 20 2a 2a | 2a 2a 20 4d 61 63 72 6f |....; **|** Macro|
|00004d40| 20 52 6f 75 74 69 6e 65 | 73 20 66 6f 72 20 46 49 | Routine|s for FI|
|00004d50| 4c 45 49 4f 20 2a 2a 2a | 2a 0d 0a 3b 0d 0a 50 55 |LEIO ***|*..;..PU|
|00004d60| 54 52 47 09 4d 41 43 52 | 4f 09 09 09 3b 53 61 76 |TRG.MACR|O...;Sav|
|00004d70| 65 20 42 43 2c 20 44 45 | 0d 0a 09 50 55 53 48 09 |e BC, DE|...PUSH.|
|00004d80| 42 43 0d 0a 09 50 55 53 | 48 09 44 45 0d 0a 09 45 |BC...PUS|H.DE...E|
|00004d90| 4e 44 4d 0d 0a 0d 0a 47 | 45 54 52 47 09 4d 41 43 |NDM....G|ETRG.MAC|
|00004da0| 52 4f 09 09 09 3b 52 65 | 73 74 6f 72 65 20 44 45 |RO...;Re|store DE|
|00004db0| 2c 20 42 43 2c 20 48 4c | 20 0d 0a 09 50 4f 50 09 |, BC, HL| ...POP.|
|00004dc0| 44 45 0d 0a 09 50 4f 50 | 09 42 43 0d 0a 09 50 4f |DE...POP|.BC...PO|
|00004dd0| 50 09 48 4c 09 09 3b 28 | 48 4c 20 73 61 76 65 64 |P.HL..;(|HL saved|
|00004de0| 20 62 65 66 6f 72 65 20 | 65 6e 74 72 79 29 0d 0a | before |entry)..|
|00004df0| 09 45 4e 44 4d 0d 0a 0d | 0a 0d 0a 3b 20 2a 2a 2a |.ENDM...|...; ***|
|00004e00| 2a 20 53 75 70 70 6f 72 | 74 20 52 6f 75 74 69 6e |* Suppor|t Routin|
|00004e10| 65 73 20 66 6f 72 20 46 | 49 4c 45 49 4f 20 2a 2a |es for F|ILEIO **|
|00004e20| 2a 2a 0d 0a 3b 0d 0a 3b | 0d 0a 3b 20 20 45 72 72 |**..;..;|..; Err|
|00004e30| 6f 72 20 45 78 69 74 73 | 0d 0a 3b 0d 0a 45 24 46 |or Exits|..;..E$F|
|00004e40| 4e 4f 50 3a 09 4c 44 09 | 41 2c 31 09 09 3b 22 47 |NOP:.LD.|A,1..;"G|
|00004e50| 45 54 20 6f 72 20 50 55 | 54 20 6f 6e 20 75 6e 6f |ET or PU|T on uno|
|00004e60| 70 65 6e 65 64 20 66 69 | 6c 65 22 20 65 72 72 6f |pened fi|le" erro|
|00004e70| 72 0d 0a 09 4a 50 09 46 | 24 45 58 49 54 09 09 3b |r...JP.F|$EXIT..;|
|00004e80| 45 78 69 74 0d 0a 3b 0d | 0a 45 24 44 53 4b 46 3a |Exit..;.|.E$DSKF:|
|00004e90| 09 4c 44 09 41 2c 32 09 | 09 3b 22 44 69 73 6b 20 |.LD.A,2.|.;"Disk |
|00004ea0| 46 75 6c 6c 20 2d 20 6e | 6f 20 73 70 61 63 65 22 |Full - n|o space"|
|00004eb0| 20 65 72 72 6f 72 0d 0a | 09 4a 50 09 46 24 45 58 | error..|.JP.F$EX|
|00004ec0| 49 54 09 09 3b 45 78 69 | 74 0d 0a 3b 0d 0a 45 24 |IT..;Exi|t..;..E$|
|00004ed0| 49 46 4e 46 3a 09 4c 44 | 09 41 2c 33 09 09 3b 22 |IFNF:.LD|.A,3..;"|
|00004ee0| 49 6e 70 75 74 20 66 69 | 6c 65 20 6e 6f 74 20 66 |Input fi|le not f|
|00004ef0| 6f 75 6e 64 22 20 65 72 | 72 6f 72 0d 0a 09 4a 50 |ound" er|ror...JP|
|00004f00| 09 46 24 45 58 49 54 09 | 09 3b 45 78 69 74 0d 0a |.F$EXIT.|.;Exit..|
|00004f10| 3b 0d 0a 45 24 47 45 4f | 46 3a 09 4c 44 09 41 2c |;..E$GEO|F:.LD.A,|
|00004f20| 34 09 09 3b 22 47 45 54 | 20 70 61 73 74 20 45 4f |4..;"GET| past EO|
|00004f30| 46 22 20 65 72 72 6f 72 | 0d 0a 09 4a 50 09 46 24 |F" error|...JP.F$|
|00004f40| 45 58 49 54 09 09 3b 45 | 78 69 74 0d 0a 3b 0d 0a |EXIT..;E|xit..;..|
|00004f50| 45 24 44 49 52 46 3a 09 | 4c 44 09 41 2c 35 09 09 |E$DIRF:.|LD.A,5..|
|00004f60| 3b 22 44 69 72 65 63 74 | 6f 72 79 20 46 75 6c 6c |;"Direct|ory Full|
|00004f70| 22 20 65 72 72 6f 72 0d | 0a 09 4a 50 09 46 24 45 |" error.|..JP.F$E|
|00004f80| 58 49 54 09 09 3b 45 78 | 69 74 0d 0a 3b 0d 0a 45 |XIT..;Ex|it..;..E|
|00004f90| 24 43 4c 4f 53 3a 09 4c | 44 09 41 2c 36 09 09 3b |$CLOS:.L|D.A,6..;|
|00004fa0| 22 46 69 6c 65 20 43 6c | 6f 73 65 22 20 65 72 72 |"File Cl|ose" err|
|00004fb0| 6f 72 0d 0a 09 4a 50 09 | 46 24 45 58 49 54 09 09 |or...JP.|F$EXIT..|
|00004fc0| 3b 45 78 69 74 0d 0a 3b | 0d 0a 45 24 46 4f 50 4e |;Exit..;|..E$FOPN|
|00004fd0| 3a 09 4c 44 09 41 2c 37 | 09 09 3b 22 46 69 6c 65 |:.LD.A,7|..;"File|
|00004fe0| 20 61 6c 72 65 61 64 79 | 20 6f 70 65 6e 22 20 65 | already| open" e|
|00004ff0| 72 72 6f 72 0d 0a 0d 0a | 0d 0a 3b 20 20 46 24 45 |rror....|..; F$E|
|00005000| 58 49 54 20 2d 2d 20 45 | 78 69 74 2c 20 72 65 73 |XIT -- E|xit, res|
|00005010| 74 6f 72 69 6e 67 20 72 | 65 67 73 20 61 6e 64 20 |toring r|egs and |
|00005020| 73 65 74 74 69 6e 67 20 | 66 6c 61 67 73 0d 0a 3b |setting |flags..;|
|00005030| 0d 0a 46 24 45 58 49 54 | 3a 09 47 45 54 52 47 09 |..F$EXIT|:.GETRG.|
|00005040| 09 09 3b 52 65 73 74 6f | 72 65 20 72 65 67 69 73 |..;Resto|re regis|
|00005050| 74 65 72 73 0d 0a 09 4f | 52 09 41 09 09 3b 53 65 |ters...O|R.A..;Se|
|00005060| 74 20 46 6c 61 67 73 0d | 0a 09 52 45 54 0d 0a 0d |t Flags.|..RET...|
|00005070| 0a 0d 0a 3b 20 20 52 45 | 41 44 24 42 4c 4f 43 4b |...; RE|AD$BLOCK|
|00005080| 20 2d 2d 20 52 65 61 64 | 20 62 6c 6f 63 6b 20 66 | -- Read| block f|
|00005090| 72 6f 6d 20 69 6e 70 75 | 74 20 66 69 6c 65 20 69 |rom inpu|t file i|
|000050a0| 6e 74 6f 20 69 6e 70 75 | 74 20 62 75 66 66 65 72 |nto inpu|t buffer|
|000050b0| 0d 0a 3b 20 20 20 20 6f | 6e 20 72 65 74 75 72 6e |..; o|n return|
|000050c0| 2c 09 5a 20 20 3d 20 4f | 4b 0d 0a 3b 09 09 4e 5a |,.Z = O|K..;..NZ|
|000050d0| 20 3d 20 6e 6f 74 20 4f | 4b 20 28 50 61 73 74 20 | = not O|K (Past |
|000050e0| 45 4f 46 29 0d 0a 3b 0d | 0a 52 45 41 44 24 42 4c |EOF)..;.|.READ$BL|
|000050f0| 4f 43 4b 3a 0d 0a 09 4c | 44 09 48 4c 2c 28 46 49 |OCK:...L|D.HL,(FI|
|00005100| 4f 24 54 42 4c 29 09 3b | 47 65 74 20 61 64 64 72 |O$TBL).;|Get addr|
|00005110| 65 73 73 20 6f 66 20 49 | 6e 70 75 74 20 63 6f 6e |ess of I|nput con|
|00005120| 74 72 6f 6c 20 74 61 62 | 6c 65 0d 0a 09 45 58 09 |trol tab|le...EX.|
|00005130| 44 45 2c 48 4c 09 09 3b | 20 2e 2e 2e 20 69 6e 20 |DE,HL..;| ... in |
|00005140| 44 45 0d 0a 09 4c 44 09 | 48 4c 2c 33 36 2b 32 2b |DE...LD.|HL,36+2+|
|00005150| 31 2b 31 09 3b 47 65 74 | 20 62 75 66 66 65 72 20 |1+1.;Get| buffer |
|00005160| 61 64 64 72 65 73 73 2e | 0d 0a 09 41 44 44 09 48 |address.|...ADD.H|
|00005170| 4c 2c 44 45 0d 0a 09 45 | 58 09 44 45 2c 48 4c 09 |L,DE...E|X.DE,HL.|
|00005180| 09 3b 20 2e 2e 2e 20 69 | 6e 20 44 45 0d 0a 09 4c |.; ... i|n DE...L|
|00005190| 44 09 43 2c 42 24 44 4d | 41 09 09 3b 50 6f 69 6e |D.C,B$DM|A..;Poin|
|000051a0| 74 20 42 44 4f 53 20 44 | 4d 41 20 70 74 72 20 74 |t BDOS D|MA ptr t|
|000051b0| 6f 20 69 6e 70 75 74 20 | 62 75 66 66 65 72 0d 0a |o input |buffer..|
|000051c0| 09 43 41 4c 4c 09 42 44 | 4f 53 0d 0a 3b 0d 0a 09 |.CALL.BD|OS..;...|
|000051d0| 4c 44 09 48 4c 2c 28 46 | 49 4f 24 54 42 4c 29 09 |LD.HL,(F|IO$TBL).|
|000051e0| 3b 47 65 74 20 61 64 64 | 72 65 73 73 20 6f 66 20 |;Get add|ress of |
|000051f0| 49 6e 70 75 74 20 63 6f | 6e 74 72 6f 6c 20 74 61 |Input co|ntrol ta|
|00005200| 62 6c 65 0d 0a 09 49 4e | 43 09 48 4c 09 09 3b 47 |ble...IN|C.HL..;G|
|00005210| 65 74 20 61 64 64 72 20 | 6f 66 20 49 6e 70 75 74 |et addr |of Input|
|00005220| 20 46 43 42 0d 0a 09 49 | 4e 43 09 48 4c 0d 0a 09 | FCB...I|NC.HL...|
|00005230| 49 4e 43 09 48 4c 0d 0a | 09 49 4e 43 09 48 4c 0d |INC.HL..|.INC.HL.|
|00005240| 0a 09 45 58 09 44 45 2c | 48 4c 09 09 3b 2e 2e 2e |..EX.DE,|HL..;...|
|00005250| 20 69 6e 20 44 45 0d 0a | 09 4c 44 09 43 2c 42 24 | in DE..|.LD.C,B$|
|00005260| 52 44 09 09 3b 52 65 61 | 64 20 62 6c 6f 63 6b 20 |RD..;Rea|d block |
|00005270| 76 69 61 20 42 44 4f 53 | 0d 0a 09 43 41 4c 4c 09 |via BDOS|...CALL.|
|00005280| 42 44 4f 53 0d 0a 3b 0d | 0a 09 50 55 53 48 09 41 |BDOS..;.|..PUSH.A|
|00005290| 46 09 09 3b 53 61 76 65 | 20 72 65 74 75 72 6e 20 |F..;Save| return |
|000052a0| 63 6f 64 65 20 28 41 29 | 0d 0a 09 4c 44 09 44 45 |code (A)|...LD.DE|
|000052b0| 2c 54 42 55 46 46 09 3b | 52 65 73 65 74 20 44 4d |,TBUFF.;|Reset DM|
|000052c0| 41 20 61 64 64 72 65 73 | 73 20 28 66 6f 72 20 63 |A addres|s (for c|
|000052d0| 6f 6d 70 61 74 61 62 69 | 6c 69 74 79 29 0d 0a 09 |ompatabi|lity)...|
|000052e0| 4c 44 09 43 2c 42 24 44 | 4d 41 0d 0a 09 43 41 4c |LD.C,B$D|MA...CAL|
|000052f0| 4c 09 42 44 4f 53 0d 0a | 09 50 4f 50 09 41 46 09 |L.BDOS..|.POP.AF.|
|00005300| 09 3b 52 65 73 74 6f 72 | 65 20 72 65 74 75 72 6e |.;Restor|e return|
|00005310| 20 63 6f 64 65 20 28 41 | 29 0d 0a 3b 0d 0a 09 4f | code (A|)..;...O|
|00005320| 52 09 41 09 09 3b 53 65 | 74 20 5a 65 72 6f 20 66 |R.A..;Se|t Zero f|
|00005330| 6c 61 67 20 69 66 20 4f | 4b 0d 0a 09 52 45 54 0d |lag if O|K...RET.|
|00005340| 0a 0d 0a 0d 0a 3b 20 20 | 57 52 49 54 24 42 4c 4f |.....; |WRIT$BLO|
|00005350| 43 4b 20 2d 2d 20 57 72 | 69 74 65 20 62 6c 6f 63 |CK -- Wr|ite bloc|
|00005360| 6b 20 66 72 6f 6d 20 6f | 75 74 70 75 74 20 62 75 |k from o|utput bu|
|00005370| 66 66 65 72 20 69 6e 74 | 6f 20 6f 75 74 70 75 74 |ffer int|o output|
|00005380| 20 66 69 6c 65 0d 0a 3b | 20 20 20 20 6f 6e 20 72 | file..;| on r|
|00005390| 65 74 75 72 6e 2c 09 5a | 20 20 3d 20 4f 4b 0d 0a |eturn,.Z| = OK..|
|000053a0| 3b 09 09 4e 5a 20 3d 20 | 6e 6f 74 20 4f 4b 20 28 |;..NZ = |not OK (|
|000053b0| 44 69 73 6b 20 46 75 6c | 6c 29 0d 0a 3b 0d 0a 57 |Disk Ful|l)..;..W|
|000053c0| 52 49 54 24 42 4c 4f 43 | 4b 3a 0d 0a 09 4c 44 09 |RIT$BLOC|K:...LD.|
|000053d0| 48 4c 2c 28 46 49 4f 24 | 54 42 4c 29 09 3b 47 65 |HL,(FIO$|TBL).;Ge|
|000053e0| 74 20 61 64 64 72 65 73 | 73 20 6f 66 20 4f 75 74 |t addres|s of Out|
|000053f0| 70 75 74 20 63 6f 6e 74 | 72 6f 6c 20 74 61 62 6c |put cont|rol tabl|
|00005400| 65 0d 0a 09 45 58 09 44 | 45 2c 48 4c 09 09 3b 20 |e...EX.D|E,HL..; |
|00005410| 2e 2e 2e 20 69 6e 20 44 | 45 0d 0a 09 4c 44 09 48 |... in D|E...LD.H|
|00005420| 4c 2c 33 36 2b 32 2b 31 | 2b 31 09 3b 47 65 74 20 |L,36+2+1|+1.;Get |
|00005430| 62 75 66 66 65 72 20 61 | 64 64 72 65 73 73 2e 0d |buffer a|ddress..|
|00005440| 0a 09 41 44 44 09 48 4c | 2c 44 45 0d 0a 09 45 58 |..ADD.HL|,DE...EX|
|00005450| 09 44 45 2c 48 4c 09 09 | 3b 20 2e 2e 2e 20 69 6e |.DE,HL..|; ... in|
|00005460| 20 44 45 0d 0a 09 4c 44 | 09 43 2c 42 24 44 4d 41 | DE...LD|.C,B$DMA|
|00005470| 09 09 3b 50 6f 69 6e 74 | 20 42 44 4f 53 20 44 4d |..;Point| BDOS DM|
|00005480| 41 20 70 74 72 20 74 6f | 20 69 6e 70 75 74 20 62 |A ptr to| input b|
|00005490| 75 66 66 65 72 0d 0a 09 | 43 41 4c 4c 09 42 44 4f |uffer...|CALL.BDO|
|000054a0| 53 0d 0a 3b 0d 0a 09 4c | 44 09 48 4c 2c 28 46 49 |S..;...L|D.HL,(FI|
|000054b0| 4f 24 54 42 4c 29 09 3b | 47 65 74 20 61 64 64 72 |O$TBL).;|Get addr|
|000054c0| 65 73 73 20 6f 66 20 4f | 75 74 70 75 74 20 63 6f |ess of O|utput co|
|000054d0| 6e 74 72 6f 6c 20 74 61 | 62 6c 65 0d 0a 09 49 4e |ntrol ta|ble...IN|
|000054e0| 43 09 48 4c 09 09 3b 47 | 65 74 20 61 64 64 72 20 |C.HL..;G|et addr |
|000054f0| 6f 66 20 6f 75 74 70 75 | 74 20 46 43 42 0d 0a 09 |of outpu|t FCB...|
|00005500| 49 4e 43 09 48 4c 0d 0a | 09 49 4e 43 09 48 4c 0d |INC.HL..|.INC.HL.|
|00005510| 0a 09 49 4e 43 09 48 4c | 0d 0a 09 45 58 09 44 45 |..INC.HL|...EX.DE|
|00005520| 2c 48 4c 09 09 3b 2e 2e | 2e 20 69 6e 20 44 45 0d |,HL..;..|. in DE.|
|00005530| 0a 09 4c 44 09 43 2c 42 | 24 57 52 09 09 3b 57 72 |..LD.C,B|$WR..;Wr|
|00005540| 69 74 65 20 62 6c 6f 63 | 6b 20 76 69 61 20 42 44 |ite bloc|k via BD|
|00005550| 4f 53 0d 0a 09 43 41 4c | 4c 09 42 44 4f 53 0d 0a |OS...CAL|L.BDOS..|
|00005560| 3b 0d 0a 09 50 55 53 48 | 09 41 46 09 09 3b 53 61 |;...PUSH|.AF..;Sa|
|00005570| 76 65 20 72 65 74 75 72 | 6e 20 63 6f 64 65 20 28 |ve retur|n code (|
|00005580| 41 29 0d 0a 09 4c 44 09 | 44 45 2c 54 42 55 46 46 |A)...LD.|DE,TBUFF|
|00005590| 09 3b 52 65 73 65 74 20 | 44 4d 41 20 61 64 64 72 |.;Reset |DMA addr|
|000055a0| 65 73 73 20 28 66 6f 72 | 20 63 6f 6d 70 61 74 61 |ess (for| compata|
|000055b0| 62 69 6c 69 74 79 29 0d | 0a 09 4c 44 09 43 2c 42 |bility).|..LD.C,B|
|000055c0| 24 44 4d 41 0d 0a 09 43 | 41 4c 4c 09 42 44 4f 53 |$DMA...C|ALL.BDOS|
|000055d0| 0d 0a 09 50 4f 50 09 41 | 46 09 09 3b 52 65 73 74 |...POP.A|F..;Rest|
|000055e0| 6f 72 65 20 72 65 74 75 | 72 6e 20 63 6f 64 65 20 |ore retu|rn code |
|000055f0| 28 41 29 0d 0a 3b 0d 0a | 09 4f 52 09 41 09 09 3b |(A)..;..|.OR.A..;|
|00005600| 53 65 74 20 5a 65 72 6f | 20 66 6c 61 67 20 69 66 |Set Zero| flag if|
|00005610| 20 4f 4b 0d 0a 09 52 45 | 54 0d 0a 0d 0a 0d 0a 0d | OK...RE|T.......|
|00005620| 0a 3b 20 2a 2a 2a 2a 20 | 42 61 73 65 20 52 6f 75 |.; **** |Base Rou|
|00005630| 74 69 6e 65 73 20 66 6f | 72 20 46 49 4c 45 49 4f |tines fo|r FILEIO|
|00005640| 20 2a 2a 2a 2a 0d 0a 3b | 0d 0a 3b 0d 0a 3b 20 20 | ****..;|..;..; |
|00005650| 46 49 24 4f 50 45 4e 20 | 2d 2d 20 4f 70 65 6e 20 |FI$OPEN |-- Open |
|00005660| 66 69 6c 65 20 77 68 6f | 73 65 20 46 43 42 20 69 |file who|se FCB i|
|00005670| 73 20 70 74 65 64 20 74 | 6f 20 62 79 20 44 45 20 |s pted t|o by DE |
|00005680| 66 6f 72 20 49 6e 70 75 | 74 0d 0a 3b 20 20 20 20 |for Inpu|t..; |
|00005690| 4f 6e 20 65 6e 74 72 79 | 20 20 20 44 45 20 2d 3e |On entry| DE ->|
|000056a0| 20 46 43 42 0d 0a 3b 09 | 09 48 4c 20 2d 3e 20 49 | FCB..;.|.HL -> I|
|000056b0| 6e 70 75 74 20 63 6f 6e | 74 72 6f 6c 20 74 61 62 |nput con|trol tab|
|000056c0| 6c 65 0d 0a 3b 0d 0a 46 | 49 24 4f 50 45 4e 3a 0d |le..;..F|I$OPEN:.|
|000056d0| 0a 09 50 55 54 52 47 09 | 09 09 3b 53 61 76 65 20 |..PUTRG.|..;Save |
|000056e0| 42 43 2c 20 44 45 0d 0a | 09 4c 44 09 41 2c 28 48 |BC, DE..|.LD.A,(H|
|000056f0| 4c 29 09 09 3b 47 65 74 | 20 6f 70 65 6e 20 66 6c |L)..;Get| open fl|
|00005700| 61 67 2e 2e 2e 0d 0a 09 | 4f 52 09 41 09 09 3b 20 |ag......|OR.A..; |
|00005710| 30 20 3d 20 46 69 6c 65 | 20 6e 6f 74 20 6f 70 65 |0 = File| not ope|
|00005720| 6e 2e 0d 0a 09 4a 50 09 | 4e 5a 2c 45 24 46 4f 50 |n....JP.|NZ,E$FOP|
|00005730| 4e 09 3b 22 46 69 6c 65 | 20 61 6c 72 65 61 64 79 |N.;"File| already|
|00005740| 20 6f 70 65 6e 22 20 65 | 72 72 6f 72 0d 0a 3b 0d | open" e|rror..;.|
|00005750| 0a 09 4c 44 09 28 46 49 | 4f 24 54 42 4c 29 2c 48 |..LD.(FI|O$TBL),H|
|00005760| 4c 09 3b 53 61 76 65 20 | 61 64 64 72 65 73 73 20 |L.;Save |address |
|00005770| 6f 66 20 49 6e 70 75 74 | 20 63 6f 6e 74 72 6f 6c |of Input| control|
|00005780| 20 74 61 62 6c 65 0d 0a | 09 49 4e 43 09 48 4c 09 | table..|.INC.HL.|
|00005790| 09 3b 50 74 20 74 6f 20 | 64 65 66 61 75 6c 74 20 |.;Pt to |default |
|000057a0| 6f 70 65 6e 20 46 43 42 | 0d 0a 09 49 4e 43 09 48 |open FCB|...INC.H|
|000057b0| 4c 0d 0a 09 49 4e 43 09 | 48 4c 0d 0a 09 49 4e 43 |L...INC.|HL...INC|
|000057c0| 09 48 4c 0d 0a 3b 0d 0a | 09 50 55 53 48 09 48 4c |.HL..;..|.PUSH.HL|
|000057d0| 09 09 3b 53 61 76 65 20 | 70 74 72 20 74 6f 20 46 |..;Save |ptr to F|
|000057e0| 43 42 0d 0a 09 4c 44 09 | 42 2c 33 36 09 09 3b 43 |CB...LD.|B,36..;C|
|000057f0| 6f 70 79 20 55 73 65 72 | 20 46 43 42 20 74 6f 20 |opy User| FCB to |
|00005800| 69 6e 74 65 72 6e 61 6c | 20 46 43 42 0d 0a 09 45 |internal| FCB...E|
|00005810| 58 09 44 45 2c 48 4c 09 | 09 3b 48 6c 20 2d 3e 20 |X.DE,HL.|.;Hl -> |
|00005820| 75 73 65 72 20 46 43 42 | 2c 20 44 45 20 2d 3e 20 |user FCB|, DE -> |
|00005830| 69 6e 74 65 72 6e 61 6c | 20 46 43 42 0d 0a 09 43 |internal| FCB...C|
|00005840| 41 4c 4c 09 48 4d 4f 56 | 42 09 09 3b 43 72 65 61 |ALL.HMOV|B..;Crea|
|00005850| 74 65 20 6e 65 77 20 46 | 43 42 09 09 0d 0a 09 50 |te new F|CB.....P|
|00005860| 4f 50 09 44 45 09 09 3b | 47 65 74 20 70 74 72 20 |OP.DE..;|Get ptr |
|00005870| 74 6f 20 46 43 42 0d 0a | 09 43 41 4c 4c 09 49 4e |to FCB..|.CALL.IN|
|00005880| 49 54 46 43 42 09 09 3b | 43 6c 65 61 72 20 46 43 |ITFCB..;|Clear FC|
|00005890| 42 20 66 69 65 6c 64 73 | 0d 0a 3b 0d 0a 09 43 41 |B fields|..;...CA|
|000058a0| 4c 4c 09 46 24 4f 50 45 | 4e 09 09 3b 4f 70 65 6e |LL.F$OPE|N..;Open|
|000058b0| 20 66 69 6c 65 2e 0d 0a | 09 4f 52 09 41 09 09 3b | file...|.OR.A..;|
|000058c0| 5a 65 72 6f 20 6d 65 61 | 6e 73 20 4f 4b 0d 0a 09 |Zero mea|ns OK...|
|000058d0| 4a 50 09 4e 5a 2c 45 24 | 49 46 4e 46 09 3b 22 49 |JP.NZ,E$|IFNF.;"I|
|000058e0| 6e 70 75 74 20 46 69 6c | 65 20 6e 6f 74 20 66 6f |nput Fil|e not fo|
|000058f0| 75 6e 64 22 20 65 72 72 | 6f 72 0d 0a 3b 0d 0a 09 |und" err|or..;...|
|00005900| 43 41 4c 4c 09 52 45 41 | 44 24 42 4c 4f 43 4b 09 |CALL.REA|D$BLOCK.|
|00005910| 3b 52 65 61 64 20 66 69 | 72 73 74 20 62 6c 6f 63 |;Read fi|rst bloc|
|00005920| 6b 0d 0a 09 4a 50 09 4e | 5a 2c 45 24 47 45 4f 46 |k...JP.N|Z,E$GEOF|
|00005930| 09 3b 22 47 45 54 20 70 | 61 73 74 20 45 4f 46 22 |.;"GET p|ast EOF"|
|00005940| 20 65 72 72 6f 72 0d 0a | 3b 0d 0a 46 4f 50 45 4e | error..|;..FOPEN|
|00005950| 31 3a 09 4c 44 09 48 4c | 2c 28 46 49 4f 24 54 42 |1:.LD.HL|,(FIO$TB|
|00005960| 4c 29 09 3b 47 65 74 20 | 61 64 64 72 65 73 73 20 |L).;Get |address |
|00005970| 6f 66 20 49 6e 70 75 74 | 2f 4f 75 74 70 75 74 20 |of Input|/Output |
|00005980| 63 6f 6e 74 72 6f 6c 20 | 74 61 62 6c 65 0d 0a 09 |control |table...|
|00005990| 4c 44 09 28 48 4c 29 2c | 30 46 46 48 09 3b 53 65 |LD.(HL),|0FFH.;Se|
|000059a0| 74 20 22 66 69 6c 65 20 | 6f 70 65 6e 65 64 22 20 |t "file |opened" |
|000059b0| 66 6c 61 67 0d 0a 09 49 | 4e 43 09 48 4c 09 09 3b |flag...I|NC.HL..;|
|000059c0| 53 65 74 20 63 68 61 72 | 20 63 6f 75 6e 74 2e 0d |Set char| count..|
|000059d0| 0a 09 4c 44 09 28 48 4c | 29 2c 31 32 38 0d 0a 3b |..LD.(HL|),128..;|
|000059e0| 0d 0a 09 49 4e 43 09 48 | 4c 09 09 3b 50 74 20 74 |...INC.H|L..;Pt t|
|000059f0| 6f 20 63 68 61 72 20 70 | 6f 69 6e 74 65 72 0d 0a |o char p|ointer..|
|00005a00| 09 45 58 09 44 45 2c 48 | 4c 09 09 3b 20 2e 2e 2e |.EX.DE,H|L..; ...|
|00005a10| 20 69 6e 20 44 45 0d 0a | 09 4c 44 09 48 4c 2c 33 | in DE..|.LD.HL,3|
|00005a20| 36 2b 32 09 09 3b 47 65 | 74 20 62 75 66 66 65 72 |6+2..;Ge|t buffer|
|00005a30| 20 61 64 64 72 65 73 73 | 2e 0d 0a 09 41 44 44 09 | address|....ADD.|
|00005a40| 48 4c 2c 44 45 0d 0a 09 | 45 58 09 44 45 2c 48 4c |HL,DE...|EX.DE,HL|
|00005a50| 09 09 3b 20 2e 2e 2e 20 | 69 6e 20 44 45 0d 0a 3b |..; ... |in DE..;|
|00005a60| 0d 0a 09 4c 44 09 28 48 | 4c 29 2c 45 09 09 3b 53 |...LD.(H|L),E..;S|
|00005a70| 61 76 65 20 62 75 66 66 | 65 72 20 73 74 61 72 74 |ave buff|er start|
|00005a80| 20 61 64 64 72 65 73 73 | 0d 0a 09 49 4e 43 09 48 | address|...INC.H|
|00005a90| 4c 0d 0a 09 4c 44 09 28 | 48 4c 29 2c 44 0d 0a 3b |L...LD.(|HL),D..;|
|00005aa0| 09 0d 0a 09 58 4f 52 09 | 41 09 09 3b 46 69 6c 65 |....XOR.|A..;File|
|00005ab0| 20 6f 70 65 6e 65 64 20 | 4f 4b 0d 0a 09 4a 50 09 | opened |OK...JP.|
|00005ac0| 46 24 45 58 49 54 09 09 | 3b 52 65 73 74 6f 72 65 |F$EXIT..|;Restore|
|00005ad0| 20 72 65 67 73 20 61 6e | 64 20 65 78 69 74 0d 0a | regs an|d exit..|
|00005ae0| 0d 0a 0d 0a 3b 20 20 46 | 4f 24 4f 50 45 4e 20 2d |....; F|O$OPEN -|
|00005af0| 2d 20 4f 70 65 6e 20 66 | 69 6c 65 20 77 68 6f 73 |- Open f|ile whos|
|00005b00| 65 20 46 43 42 20 69 73 | 20 70 74 65 64 20 74 6f |e FCB is| pted to|
|00005b10| 20 62 79 20 44 45 20 66 | 6f 72 20 4f 75 74 70 75 | by DE f|or Outpu|
|00005b20| 74 0d 0a 3b 20 20 20 20 | 4f 6e 20 65 6e 74 72 79 |t..; |On entry|
|00005b30| 20 20 20 44 45 20 2d 3e | 20 46 43 42 0d 0a 3b 09 | DE ->| FCB..;.|
|00005b40| 09 48 4c 20 2d 3e 20 49 | 6e 70 75 74 20 63 6f 6e |.HL -> I|nput con|
|00005b50| 74 72 6f 6c 20 74 61 62 | 6c 65 0d 0a 3b 0d 0a 46 |trol tab|le..;..F|
|00005b60| 4f 24 4f 50 45 4e 3a 0d | 0a 09 50 55 54 52 47 09 |O$OPEN:.|..PUTRG.|
|00005b70| 09 09 3b 53 61 76 65 20 | 42 43 2c 20 44 45 0d 0a |..;Save |BC, DE..|
|00005b80| 09 4c 44 09 41 2c 28 48 | 4c 29 09 09 3b 47 65 74 |.LD.A,(H|L)..;Get|
|00005b90| 20 6f 70 65 6e 20 66 6c | 61 67 2e 2e 2e 0d 0a 09 | open fl|ag......|
|00005ba0| 4f 52 09 41 09 09 3b 20 | 30 20 3d 20 46 69 6c 65 |OR.A..; |0 = File|
|00005bb0| 20 6e 6f 74 20 6f 70 65 | 6e 2e 0d 0a 09 4a 50 09 | not ope|n....JP.|
|00005bc0| 4e 5a 2c 45 24 46 4f 50 | 4e 09 3b 22 46 69 6c 65 |NZ,E$FOP|N.;"File|
|00005bd0| 20 61 6c 72 65 61 64 79 | 20 6f 70 65 6e 22 20 65 | already| open" e|
|00005be0| 72 72 6f 72 0d 0a 3b 0d | 0a 09 4c 44 09 28 46 49 |rror..;.|..LD.(FI|
|00005bf0| 4f 24 54 42 4c 29 2c 48 | 4c 09 3b 53 61 76 65 20 |O$TBL),H|L.;Save |
|00005c00| 61 64 64 72 65 73 73 20 | 6f 66 20 49 6e 70 75 74 |address |of Input|
|00005c10| 20 63 6f 6e 74 72 6f 6c | 20 74 61 62 6c 65 0d 0a | control| table..|
|00005c20| 09 49 4e 43 09 48 4c 09 | 09 3b 50 74 20 74 6f 20 |.INC.HL.|.;Pt to |
|00005c30| 64 65 66 61 75 6c 74 20 | 6f 70 65 6e 20 46 43 42 |default |open FCB|
|00005c40| 0d 0a 09 49 4e 43 09 48 | 4c 0d 0a 09 49 4e 43 09 |...INC.H|L...INC.|
|00005c50| 48 4c 0d 0a 09 49 4e 43 | 09 48 4c 0d 0a 3b 0d 0a |HL...INC|.HL..;..|
|00005c60| 09 50 55 53 48 09 48 4c | 09 09 3b 53 61 76 65 20 |.PUSH.HL|..;Save |
|00005c70| 70 74 72 20 74 6f 20 46 | 43 42 0d 0a 09 4c 44 09 |ptr to F|CB...LD.|
|00005c80| 42 2c 33 36 09 09 3b 43 | 6f 70 79 20 55 73 65 72 |B,36..;C|opy User|
|00005c90| 20 46 43 42 20 74 6f 20 | 69 6e 74 65 72 6e 61 6c | FCB to |internal|
|00005ca0| 20 46 43 42 0d 0a 09 45 | 58 09 44 45 2c 48 4c 09 | FCB...E|X.DE,HL.|
|00005cb0| 09 3b 48 6c 20 2d 3e 20 | 75 73 65 72 20 46 43 42 |.;Hl -> |user FCB|
|00005cc0| 2c 20 44 45 20 2d 3e 20 | 69 6e 74 65 72 6e 61 6c |, DE -> |internal|
|00005cd0| 20 46 43 42 0d 0a 09 43 | 41 4c 4c 09 48 4d 4f 56 | FCB...C|ALL.HMOV|
|00005ce0| 42 09 09 3b 43 72 65 61 | 74 65 20 6e 65 77 20 46 |B..;Crea|te new F|
|00005cf0| 43 42 09 09 0d 0a 09 50 | 4f 50 09 44 45 09 09 3b |CB.....P|OP.DE..;|
|00005d00| 47 65 74 20 70 74 72 20 | 74 6f 20 46 43 42 0d 0a |Get ptr |to FCB..|
|00005d10| 09 43 41 4c 4c 09 49 4e | 49 54 46 43 42 09 09 3b |.CALL.IN|ITFCB..;|
|00005d20| 43 6c 65 61 72 20 46 43 | 42 20 66 69 65 6c 64 73 |Clear FC|B fields|
|00005d30| 0d 0a 09 43 41 4c 4c 09 | 46 24 4d 4f 50 45 4e 09 |...CALL.|F$MOPEN.|
|00005d40| 09 3b 4f 70 65 6e 20 61 | 6e 64 2f 6f 72 20 63 72 |.;Open a|nd/or cr|
|00005d50| 65 61 74 65 20 66 69 6c | 65 0d 0a 09 4f 52 09 41 |eate fil|e...OR.A|
|00005d60| 09 09 3b 5a 65 72 6f 20 | 6d 65 61 6e 73 20 4f 4b |..;Zero |means OK|
|00005d70| 0d 0a 09 4a 50 09 5a 2c | 46 4f 50 45 4e 31 09 3b |...JP.Z,|FOPEN1.;|
|00005d80| 53 65 74 20 75 70 20 4f | 75 74 70 75 74 20 74 61 |Set up O|utput ta|
|00005d90| 62 6c 65 20 69 66 20 4f | 4b 2e 0d 0a 09 4a 50 09 |ble if O|K....JP.|
|00005da0| 45 24 44 49 52 46 09 09 | 3b 42 61 64 3f 20 2d 20 |E$DIRF..|;Bad? - |
|00005db0| 22 44 69 72 65 63 74 6f | 72 79 20 66 75 6c 6c 22 |"Directo|ry full"|
|00005dc0| 20 65 72 72 6f 72 0d 0a | 0d 0a 0d 0a 3b 20 20 46 | error..|....; F|
|00005dd0| 24 47 45 54 20 2d 2d 20 | 47 65 74 20 62 79 74 65 |$GET -- |Get byte|
|00005de0| 20 66 72 6f 6d 20 49 6e | 70 75 74 20 66 69 6c 65 | from In|put file|
|00005df0| 0d 0a 3b 20 20 20 20 4f | 6e 20 65 6e 74 72 79 20 |..; O|n entry |
|00005e00| 20 20 48 4c 20 2d 3e 20 | 49 6e 70 75 74 20 63 6f | HL -> |Input co|
|00005e10| 6e 74 72 6f 6c 20 74 61 | 62 6c 65 0d 0a 3b 20 20 |ntrol ta|ble..; |
|00005e20| 20 20 4f 6e 20 72 65 74 | 75 72 6e 2c 20 49 46 20 | On ret|urn, IF |
|00005e30| 5a 65 72 6f 20 3d 20 31 | 20 28 5a 29 2c 20 74 68 |Zero = 1| (Z), th|
|00005e40| 65 6e 20 4f 4b 20 28 42 | 79 74 65 20 72 65 74 75 |en OK (B|yte retu|
|00005e50| 72 6e 65 64 20 69 6e 20 | 41 29 0d 0a 3b 20 20 20 |rned in |A)..; |
|00005e60| 20 09 09 49 46 20 5a 65 | 72 6f 20 3d 20 30 20 28 | ..IF Ze|ro = 0 (|
|00005e70| 4e 5a 29 2c 20 74 68 65 | 6e 20 70 61 73 74 20 45 |NZ), the|n past E|
|00005e80| 4f 46 0d 0a 3b 0d 0a 46 | 24 47 45 54 3a 0d 0a 09 |OF..;..F|$GET:...|
|00005e90| 50 55 54 52 47 09 09 09 | 3b 53 61 76 65 20 42 43 |PUTRG...|;Save BC|
|00005ea0| 2c 20 44 45 0d 0a 09 4c | 44 09 41 2c 28 48 4c 29 |, DE...L|D.A,(HL)|
|00005eb0| 09 09 3b 47 65 74 20 6f | 70 65 6e 20 66 6c 61 67 |..;Get o|pen flag|
|00005ec0| 2e 2e 2e 0d 0a 09 4f 52 | 09 41 09 09 3b 20 30 20 |......OR|.A..; 0 |
|00005ed0| 3d 20 46 69 6c 65 20 6e | 6f 74 20 6f 70 65 6e 2e |= File n|ot open.|
|00005ee0| 0d 0a 09 4a 50 09 5a 2c | 45 24 46 4e 4f 50 09 3b |...JP.Z,|E$FNOP.;|
|00005ef0| 22 46 69 6c 65 20 6e 6f | 74 20 79 65 74 20 6f 70 |"File no|t yet op|
|00005f00| 65 6e 65 64 22 20 65 72 | 72 6f 72 0d 0a 3b 0d 0a |ened" er|ror..;..|
|00005f10| 09 4c 44 09 28 46 49 4f | 24 54 42 4c 29 2c 48 4c |.LD.(FIO|$TBL),HL|
|00005f20| 09 3b 53 61 76 65 20 61 | 64 64 72 65 73 73 20 6f |.;Save a|ddress o|
|00005f30| 66 20 49 6e 70 75 74 20 | 63 6f 6e 74 72 6f 6c 20 |f Input |control |
|00005f40| 74 61 62 6c 65 0d 0a 09 | 49 4e 43 09 48 4c 09 09 |table...|INC.HL..|
|00005f50| 3b 50 74 20 74 6f 20 63 | 68 61 72 20 70 6f 69 6e |;Pt to c|har poin|
|00005f60| 74 65 72 0d 0a 09 49 4e | 43 09 48 4c 0d 0a 09 4c |ter...IN|C.HL...L|
|00005f70| 44 09 45 2c 28 48 4c 29 | 09 09 3b 47 65 74 20 63 |D.E,(HL)|..;Get c|
|00005f80| 68 61 72 20 70 6f 69 6e | 74 65 72 0d 0a 09 49 4e |har poin|ter...IN|
|00005f90| 43 09 48 4c 0d 0a 09 4c | 44 09 44 2c 28 48 4c 29 |C.HL...L|D.D,(HL)|
|00005fa0| 0d 0a 09 4c 44 09 41 2c | 44 09 09 3b 45 4f 46 20 |...LD.A,|D..;EOF |
|00005fb0| 77 61 73 20 72 65 61 63 | 68 65 64 20 69 66 20 70 |was reac|hed if p|
|00005fc0| 6f 69 6e 74 65 72 20 69 | 73 20 5a 65 72 6f 0d 0a |ointer i|s Zero..|
|00005fd0| 09 4f 52 09 45 0d 0a 09 | 4a 50 09 5a 2c 45 24 47 |.OR.E...|JP.Z,E$G|
|00005fe0| 45 4f 46 09 3b 49 6e 64 | 69 63 61 74 65 20 45 4f |EOF.;Ind|icate EO|
|00005ff0| 46 2c 20 65 78 69 74 0d | 0a 3b 0d 0a 09 4c 44 09 |F, exit.|.;...LD.|
|00006000| 41 2c 28 44 45 29 09 09 | 3b 47 45 54 20 64 61 74 |A,(DE)..|;GET dat|
|00006010| 61 20 62 79 74 65 0d 0a | 09 4c 44 09 28 42 59 54 |a byte..|.LD.(BYT|
|00006020| 45 29 2c 41 09 3b 53 61 | 76 65 20 62 79 74 65 20 |E),A.;Sa|ve byte |
|00006030| 66 6f 72 20 72 65 74 75 | 72 6e 0d 0a 3b 20 20 20 |for retu|rn..; |
|00006040| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 0d | | .|
|00006050| 0a 09 49 4e 43 09 44 45 | 09 09 3b 50 74 20 74 6f |..INC.DE|..;Pt to|
|00006060| 20 6e 65 78 74 20 69 6e | 70 75 74 20 62 79 74 65 | next in|put byte|
|00006070| 0d 0a 09 4c 44 09 28 48 | 4c 29 2c 44 09 09 3b 55 |...LD.(H|L),D..;U|
|00006080| 70 64 61 74 65 20 63 75 | 72 72 65 6e 74 20 49 6e |pdate cu|rrent In|
|00006090| 70 75 74 20 62 75 66 66 | 65 72 20 61 64 64 72 65 |put buff|er addre|
|000060a0| 73 73 0d 0a 09 44 45 43 | 09 48 4c 0d 0a 09 4c 44 |ss...DEC|.HL...LD|
|000060b0| 09 28 48 4c 29 2c 45 0d | 0a 3b 0d 0a 09 44 45 43 |.(HL),E.|.;...DEC|
|000060c0| 09 48 4c 09 09 3b 50 74 | 20 74 6f 20 62 75 66 66 |.HL..;Pt| to buff|
|000060d0| 65 72 20 64 61 74 61 20 | 63 6f 75 6e 74 0d 0a 09 |er data |count...|
|000060e0| 44 45 43 09 28 48 4c 29 | 09 09 3b 44 65 63 72 65 |DEC.(HL)|..;Decre|
|000060f0| 6d 65 6e 74 20 63 6f 75 | 6e 74 0d 0a 09 4a 50 09 |ment cou|nt...JP.|
|00006100| 4e 5a 2c 46 24 47 50 58 | 54 09 3b 45 78 69 74 20 |NZ,F$GPX|T.;Exit |
|00006110| 69 66 20 64 61 74 61 20 | 72 65 6d 61 69 6e 73 20 |if data |remains |
|00006120| 69 6e 20 62 75 66 66 65 | 72 0d 0a 3b 0d 0a 3b 20 |in buffe|r..;..; |
|00006130| 20 49 6e 70 75 74 20 62 | 75 66 66 65 72 20 45 6d | Input b|uffer Em|
|00006140| 70 74 79 20 2d 20 72 65 | 61 64 20 6e 65 78 74 20 |pty - re|ad next |
|00006150| 62 6c 6f 63 6b 20 26 20 | 72 65 73 65 74 20 70 6f |block & |reset po|
|00006160| 69 6e 74 65 72 73 20 61 | 6e 64 20 63 6f 75 6e 74 |inters a|nd count|
|00006170| 0d 0a 3b 0d 0a 09 4c 44 | 09 28 48 4c 29 2c 31 32 |..;...LD|.(HL),12|
|00006180| 38 09 3b 53 65 74 20 63 | 68 61 72 20 63 6f 75 6e |8.;Set c|har coun|
|00006190| 74 2e 0d 0a 3b 0d 0a 09 | 49 4e 43 09 48 4c 09 09 |t...;...|INC.HL..|
|000061a0| 3b 50 74 20 74 6f 20 63 | 68 61 72 20 70 6f 69 6e |;Pt to c|har poin|
|000061b0| 74 65 72 0d 0a 09 45 58 | 09 44 45 2c 48 4c 09 09 |ter...EX|.DE,HL..|
|000061c0| 3b 20 2e 2e 2e 20 69 6e | 20 44 45 0d 0a 09 4c 44 |; ... in| DE...LD|
|000061d0| 09 48 4c 2c 33 36 2b 32 | 09 09 3b 47 65 74 20 62 |.HL,36+2|..;Get b|
|000061e0| 75 66 66 65 72 20 61 64 | 64 72 65 73 73 2e 0d 0a |uffer ad|dress...|
|000061f0| 09 41 44 44 09 48 4c 2c | 44 45 0d 0a 09 45 58 09 |.ADD.HL,|DE...EX.|
|00006200| 44 45 2c 48 4c 09 09 3b | 20 2e 2e 2e 20 69 6e 20 |DE,HL..;| ... in |
|00006210| 44 45 0d 0a 3b 0d 0a 09 | 4c 44 09 28 48 4c 29 2c |DE..;...|LD.(HL),|
|00006220| 45 09 09 3b 53 61 76 65 | 20 62 75 66 66 65 72 20 |E..;Save| buffer |
|00006230| 73 74 61 72 74 20 61 64 | 64 72 65 73 73 0d 0a 09 |start ad|dress...|
|00006240| 49 4e 43 09 48 4c 0d 0a | 09 4c 44 09 28 48 4c 29 |INC.HL..|.LD.(HL)|
|00006250| 2c 44 0d 0a 3b 09 0d 0a | 09 43 41 4c 4c 09 52 45 |,D..;...|.CALL.RE|
|00006260| 41 44 24 42 4c 4f 43 4b | 09 3b 52 65 61 64 20 6e |AD$BLOCK|.;Read n|
|00006270| 65 78 74 20 62 6c 6f 63 | 6b 0d 0a 09 4a 50 09 5a |ext bloc|k...JP.Z|
|00006280| 2c 46 24 47 50 58 54 09 | 3b 47 45 54 20 63 6f 6d |,F$GPXT.|;GET com|
|00006290| 70 6c 65 74 65 64 20 4f | 4b 20 2d 20 45 78 69 74 |pleted O|K - Exit|
|000062a0| 0d 0a 3b 0d 0a 09 4c 44 | 09 48 4c 2c 28 46 49 4f |..;...LD|.HL,(FIO|
|000062b0| 24 54 42 4c 29 09 3b 47 | 65 74 20 61 64 64 72 65 |$TBL).;G|et addre|
|000062c0| 73 73 20 6f 66 20 49 6e | 70 75 74 2f 4f 75 74 70 |ss of In|put/Outp|
|000062d0| 75 74 20 63 6f 6e 74 72 | 6f 6c 20 74 61 62 6c 65 |ut contr|ol table|
|000062e0| 0d 0a 09 49 4e 43 09 48 | 4c 09 09 3b 50 74 20 74 |...INC.H|L..;Pt t|
|000062f0| 6f 20 63 68 61 72 20 70 | 6f 69 6e 74 65 72 0d 0a |o char p|ointer..|
|00006300| 09 49 4e 43 09 48 4c 0d | 0a 09 4c 44 09 28 48 4c |.INC.HL.|..LD.(HL|
|00006310| 29 2c 30 09 09 3b 5a 65 | 72 6f 20 69 6e 64 69 63 |),0..;Ze|ro indic|
|00006320| 61 74 65 73 20 45 4f 46 | 20 72 65 61 63 68 65 64 |ates EOF| reached|
|00006330| 0d 0a 09 49 4e 43 09 48 | 4c 0d 0a 09 4c 44 09 28 |...INC.H|L...LD.(|
|00006340| 48 4c 29 2c 30 0d 0a 3b | 0d 0a 3b 20 20 4e 6f 72 |HL),0..;|..; Nor|
|00006350| 6d 61 6c 20 45 78 69 74 | 20 66 6f 72 20 47 45 54 |mal Exit| for GET|
|00006360| 20 6f 72 20 50 55 54 0d | 0a 3b 0d 0a 46 24 47 50 | or PUT.|.;..F$GP|
|00006370| 58 54 3a 09 47 45 54 52 | 47 09 09 09 3b 52 65 73 |XT:.GETR|G...;Res|
|00006380| 74 6f 72 65 20 72 65 67 | 69 73 74 65 72 73 0d 0a |tore reg|isters..|
|00006390| 09 58 4f 52 09 41 09 09 | 3b 49 6e 64 69 63 61 74 |.XOR.A..|;Indicat|
|000063a0| 65 20 47 45 54 2f 50 55 | 54 20 77 61 73 20 4f 4b |e GET/PU|T was OK|
|000063b0| 0d 0a 09 4c 44 09 41 2c | 28 42 59 54 45 29 09 3b |...LD.A,|(BYTE).;|
|000063c0| 47 65 74 20 64 61 74 61 | 20 62 79 74 65 20 74 6f |Get data| byte to|
|000063d0| 20 72 65 74 75 72 6e 0d | 0a 09 52 45 54 0d 0a 0d | return.|..RET...|
|000063e0| 0a 0d 0a 3b 20 20 46 24 | 50 55 54 20 2d 2d 20 50 |...; F$|PUT -- P|
|000063f0| 75 74 20 42 79 74 65 20 | 69 6e 20 41 20 69 6e 74 |ut Byte |in A int|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.