home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
100%
| dexvert
| Internet Message Format (text/imf)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| news or mail text
| default
| |
99%
| file
| assembler source text
| default (weak)
| |
98%
| file
| assembler source, ASCII text
| default (weak)
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 53 6d 61 6c 6c 20 43 |Subject:| Small C|
|00000010| 20 63 6f 6d 70 69 6c 65 | 72 20 76 65 72 73 69 6f | compile|r versio|
|00000020| 6e 20 43 33 2e 30 52 31 | 2e 31 20 28 70 61 72 74 |n C3.0R1|.1 (part|
|00000030| 20 33 20 6f 66 20 33 29 | 0a 4e 65 77 73 67 72 6f | 3 of 3)|.Newsgro|
|00000040| 75 70 73 3a 20 6d 6f 64 | 2e 73 6f 75 72 63 65 73 |ups: mod|.sources|
|00000050| 0a 41 70 70 72 6f 76 65 | 64 3a 20 6a 70 6e 40 70 |.Approve|d: jpn@p|
|00000060| 61 6e 64 61 2e 55 55 43 | 50 0a 0a 4d 6f 64 2e 73 |anda.UUC|P..Mod.s|
|00000070| 6f 75 72 63 65 73 3a 20 | 20 56 6f 6c 75 6d 65 20 |ources: | Volume |
|00000080| 35 2c 20 49 73 73 75 65 | 20 39 0a 53 75 62 6d 69 |5, Issue| 9.Submi|
|00000090| 74 74 65 64 20 62 79 3a | 20 67 65 6e 72 61 64 21 |tted by:| genrad!|
|000000a0| 6c 69 6e 75 73 21 6d 6e | 65 74 6f 72 21 63 6c 65 |linus!mn|etor!cle|
|000000b0| 77 69 73 20 28 43 68 72 | 69 73 20 4c 65 77 69 73 |wis (Chr|is Lewis|
|000000c0| 29 0a 0a 23 21 20 2f 62 | 69 6e 2f 73 68 0a 23 20 |)..#! /b|in/sh.# |
|000000d0| 54 68 69 73 20 69 73 20 | 61 20 73 68 65 6c 6c 20 |This is |a shell |
|000000e0| 61 72 63 68 69 76 65 2c | 20 6d 65 61 6e 69 6e 67 |archive,| meaning|
|000000f0| 3a 0a 23 20 31 2e 20 52 | 65 6d 6f 76 65 20 65 76 |:.# 1. R|emove ev|
|00000100| 65 72 79 74 68 69 6e 67 | 20 61 62 6f 76 65 20 74 |erything| above t|
|00000110| 68 65 20 23 21 20 2f 62 | 69 6e 2f 73 68 20 6c 69 |he #! /b|in/sh li|
|00000120| 6e 65 2e 0a 23 20 32 2e | 20 53 61 76 65 20 74 68 |ne..# 2.| Save th|
|00000130| 65 20 72 65 73 75 6c 74 | 69 6e 67 20 74 65 78 74 |e result|ing text|
|00000140| 20 69 6e 20 61 20 66 69 | 6c 65 2e 0a 23 20 33 2e | in a fi|le..# 3.|
|00000150| 20 45 78 65 63 75 74 65 | 20 74 68 65 20 66 69 6c | Execute| the fil|
|00000160| 65 20 77 69 74 68 20 2f | 62 69 6e 2f 73 68 20 28 |e with /|bin/sh (|
|00000170| 6e 6f 74 20 63 73 68 29 | 20 74 6f 20 63 72 65 61 |not csh)| to crea|
|00000180| 74 65 20 74 68 65 20 66 | 69 6c 65 73 3a 0a 23 09 |te the f|iles:.#.|
|00000190| 69 6e 63 6c 75 64 65 73 | 0a 23 09 36 38 30 39 0a |includes|.#.6809.|
|000001a0| 23 09 38 30 38 30 0a 23 | 09 76 61 78 0a 23 09 6c |#.8080.#|.vax.#.l|
|000001b0| 69 62 0a 23 20 54 68 69 | 73 20 61 72 63 68 69 76 |ib.# Thi|s archiv|
|000001c0| 65 20 63 72 65 61 74 65 | 64 3a 20 53 75 6e 20 4d |e create|d: Sun M|
|000001d0| 61 79 20 31 38 20 31 38 | 3a 32 30 3a 31 39 20 31 |ay 18 18|:20:19 1|
|000001e0| 39 38 36 0a 65 78 70 6f | 72 74 20 50 41 54 48 3b |986.expo|rt PATH;|
|000001f0| 20 50 41 54 48 3d 2f 62 | 69 6e 3a 24 50 41 54 48 | PATH=/b|in:$PATH|
|00000200| 0a 69 66 20 74 65 73 74 | 20 21 20 2d 64 20 27 69 |.if test| ! -d 'i|
|00000210| 6e 63 6c 75 64 65 73 27 | 0a 74 68 65 6e 0a 09 65 |ncludes'|.then..e|
|00000220| 63 68 6f 20 73 68 61 72 | 3a 20 63 72 65 61 74 69 |cho shar|: creati|
|00000230| 6e 67 20 64 69 72 65 63 | 74 6f 72 79 20 22 27 69 |ng direc|tory "'i|
|00000240| 6e 63 6c 75 64 65 73 27 | 22 0a 09 6d 6b 64 69 72 |ncludes'|"..mkdir|
|00000250| 20 27 69 6e 63 6c 75 64 | 65 73 27 0a 66 69 0a 65 | 'includ|es'.fi.e|
|00000260| 63 68 6f 20 73 68 61 72 | 3a 20 65 78 74 72 61 63 |cho shar|: extrac|
|00000270| 74 69 6e 67 20 22 27 69 | 6e 63 6c 75 64 65 73 2f |ting "'i|ncludes/|
|00000280| 63 74 79 70 65 2e 68 27 | 22 20 27 28 33 34 20 63 |ctype.h'|" '(34 c|
|00000290| 68 61 72 61 63 74 65 72 | 73 29 27 0a 69 66 20 74 |haracter|s)'.if t|
|000002a0| 65 73 74 20 2d 66 20 27 | 69 6e 63 6c 75 64 65 73 |est -f '|includes|
|000002b0| 2f 63 74 79 70 65 2e 68 | 27 0a 74 68 65 6e 0a 09 |/ctype.h|'.then..|
|000002c0| 65 63 68 6f 20 73 68 61 | 72 3a 20 77 69 6c 6c 20 |echo sha|r: will |
|000002d0| 6e 6f 74 20 6f 76 65 72 | 2d 77 72 69 74 65 20 65 |not over|-write e|
|000002e0| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 22 27 69 |xisting |file "'i|
|000002f0| 6e 63 6c 75 64 65 73 2f | 63 74 79 70 65 2e 68 27 |ncludes/|ctype.h'|
|00000300| 22 0a 65 6c 73 65 0a 63 | 61 74 20 3c 3c 20 5c 53 |".else.c|at << \S|
|00000310| 48 41 52 5f 45 4f 46 20 | 3e 20 27 69 6e 63 6c 75 |HAR_EOF |> 'inclu|
|00000320| 64 65 73 2f 63 74 79 70 | 65 2e 68 27 0a 2f 2a 09 |des/ctyp|e.h'./*.|
|00000330| 4e 6f 74 68 69 6e 67 20 | 6e 65 65 64 65 64 20 69 |Nothing |needed i|
|00000340| 6e 20 74 68 69 73 20 66 | 69 6c 65 20 2a 2f 0a 53 |n this f|ile */.S|
|00000350| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|00000360| 33 34 20 2d 6e 65 20 22 | 60 77 63 20 2d 63 20 3c |34 -ne "|`wc -c <|
|00000370| 20 27 69 6e 63 6c 75 64 | 65 73 2f 63 74 79 70 65 | 'includ|es/ctype|
|00000380| 2e 68 27 60 22 0a 74 68 | 65 6e 0a 09 65 63 68 6f |.h'`".th|en..echo|
|00000390| 20 73 68 61 72 3a 20 65 | 72 72 6f 72 20 74 72 61 | shar: e|rror tra|
|000003a0| 6e 73 6d 69 74 74 69 6e | 67 20 22 27 69 6e 63 6c |nsmittin|g "'incl|
|000003b0| 75 64 65 73 2f 63 74 79 | 70 65 2e 68 27 22 20 27 |udes/cty|pe.h'" '|
|000003c0| 28 73 68 6f 75 6c 64 20 | 68 61 76 65 20 62 65 65 |(should |have bee|
|000003d0| 6e 20 33 34 20 63 68 61 | 72 61 63 74 65 72 73 29 |n 34 cha|racters)|
|000003e0| 27 0a 66 69 0a 66 69 0a | 65 63 68 6f 20 73 68 61 |'.fi.fi.|echo sha|
|000003f0| 72 3a 20 65 78 74 72 61 | 63 74 69 6e 67 20 22 27 |r: extra|cting "'|
|00000400| 69 6e 63 6c 75 64 65 73 | 2f 73 74 64 69 6f 2e 68 |includes|/stdio.h|
|00000410| 27 22 20 27 28 31 30 30 | 20 63 68 61 72 61 63 74 |'" '(100| charact|
|00000420| 65 72 73 29 27 0a 69 66 | 20 74 65 73 74 20 2d 66 |ers)'.if| test -f|
|00000430| 20 27 69 6e 63 6c 75 64 | 65 73 2f 73 74 64 69 6f | 'includ|es/stdio|
|00000440| 2e 68 27 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |.h'.then|..echo s|
|00000450| 68 61 72 3a 20 77 69 6c | 6c 20 6e 6f 74 20 6f 76 |har: wil|l not ov|
|00000460| 65 72 2d 77 72 69 74 65 | 20 65 78 69 73 74 69 6e |er-write| existin|
|00000470| 67 20 66 69 6c 65 20 22 | 27 69 6e 63 6c 75 64 65 |g file "|'include|
|00000480| 73 2f 73 74 64 69 6f 2e | 68 27 22 0a 65 6c 73 65 |s/stdio.|h'".else|
|00000490| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|000004a0| 46 20 3e 20 27 69 6e 63 | 6c 75 64 65 73 2f 73 74 |F > 'inc|ludes/st|
|000004b0| 64 69 6f 2e 68 27 0a 23 | 64 65 66 69 6e 65 20 73 |dio.h'.#|define s|
|000004c0| 74 64 69 6e 20 30 0a 23 | 64 65 66 69 6e 65 20 73 |tdin 0.#|define s|
|000004d0| 74 64 6f 75 74 20 31 0a | 23 64 65 66 69 6e 65 20 |tdout 1.|#define |
|000004e0| 73 74 64 65 72 72 20 32 | 0a 23 64 65 66 69 6e 65 |stderr 2|.#define|
|000004f0| 20 4e 55 4c 4c 20 30 0a | 23 64 65 66 69 6e 65 20 | NULL 0.|#define |
|00000500| 45 4f 46 20 28 2d 31 29 | 0a 23 64 65 66 69 6e 65 |EOF (-1)|.#define|
|00000510| 20 46 49 4c 45 20 63 68 | 61 72 0a 53 48 41 52 5f | FILE ch|ar.SHAR_|
|00000520| 45 4f 46 0a 69 66 20 74 | 65 73 74 20 31 30 30 20 |EOF.if t|est 100 |
|00000530| 2d 6e 65 20 22 60 77 63 | 20 2d 63 20 3c 20 27 69 |-ne "`wc| -c < 'i|
|00000540| 6e 63 6c 75 64 65 73 2f | 73 74 64 69 6f 2e 68 27 |ncludes/|stdio.h'|
|00000550| 60 22 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |`".then.|.echo sh|
|00000560| 61 72 3a 20 65 72 72 6f | 72 20 74 72 61 6e 73 6d |ar: erro|r transm|
|00000570| 69 74 74 69 6e 67 20 22 | 27 69 6e 63 6c 75 64 65 |itting "|'include|
|00000580| 73 2f 73 74 64 69 6f 2e | 68 27 22 20 27 28 73 68 |s/stdio.|h'" '(sh|
|00000590| 6f 75 6c 64 20 68 61 76 | 65 20 62 65 65 6e 20 31 |ould hav|e been 1|
|000005a0| 30 30 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |00 chara|cters)'.|
|000005b0| 66 69 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |fi.fi.ec|ho shar:|
|000005c0| 20 64 6f 6e 65 20 77 69 | 74 68 20 64 69 72 65 63 | done wi|th direc|
|000005d0| 74 6f 72 79 20 22 27 69 | 6e 63 6c 75 64 65 73 27 |tory "'i|ncludes'|
|000005e0| 22 0a 69 66 20 74 65 73 | 74 20 21 20 2d 64 20 27 |".if tes|t ! -d '|
|000005f0| 36 38 30 39 27 0a 74 68 | 65 6e 0a 09 65 63 68 6f |6809'.th|en..echo|
|00000600| 20 73 68 61 72 3a 20 63 | 72 65 61 74 69 6e 67 20 | shar: c|reating |
|00000610| 64 69 72 65 63 74 6f 72 | 79 20 22 27 36 38 30 39 |director|y "'6809|
|00000620| 27 22 0a 09 6d 6b 64 69 | 72 20 27 36 38 30 39 27 |'"..mkdi|r '6809'|
|00000630| 0a 66 69 0a 65 63 68 6f | 20 73 68 61 72 3a 20 65 |.fi.echo| shar: e|
|00000640| 78 74 72 61 63 74 69 6e | 67 20 22 27 36 38 30 39 |xtractin|g "'6809|
|00000650| 2f 63 63 73 74 61 72 74 | 2e 75 27 22 20 27 28 33 |/ccstart|.u'" '(3|
|00000660| 37 33 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |73 chara|cters)'.|
|00000670| 69 66 20 74 65 73 74 20 | 2d 66 20 27 36 38 30 39 |if test |-f '6809|
|00000680| 2f 63 63 73 74 61 72 74 | 2e 75 27 0a 74 68 65 6e |/ccstart|.u'.then|
|00000690| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|000006a0| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|000006b0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|000006c0| 27 36 38 30 39 2f 63 63 | 73 74 61 72 74 2e 75 27 |'6809/cc|start.u'|
|000006d0| 22 0a 65 6c 73 65 0a 63 | 61 74 20 3c 3c 20 5c 53 |".else.c|at << \S|
|000006e0| 48 41 52 5f 45 4f 46 20 | 3e 20 27 36 38 30 39 2f |HAR_EOF |> '6809/|
|000006f0| 63 63 73 74 61 72 74 2e | 75 27 0a 7c 09 52 75 6e |ccstart.|u'.|.Run|
|00000700| 2d 74 69 6d 65 20 73 74 | 61 72 74 20 6f 66 66 20 |-time st|art off |
|00000710| 66 6f 72 20 63 63 76 31 | 20 6f 6e 20 74 68 65 20 |for ccv1| on the |
|00000720| 50 68 79 73 69 63 73 20 | 36 38 30 39 0a 2e 67 6c |Physics |6809..gl|
|00000730| 6f 62 6c 09 5f 65 64 61 | 74 61 0a 2e 67 6c 6f 62 |obl._eda|ta..glob|
|00000740| 6c 09 5f 6d 61 69 6e 0a | 7c 20 49 6e 69 74 69 61 |l._main.|| Initia|
|00000750| 6c 69 7a 65 20 73 74 61 | 63 6b 0a 09 6c 64 73 09 |lize sta|ck..lds.|
|00000760| 23 2f 31 30 30 30 0a 09 | 6c 64 78 09 23 5f 65 64 |#/1000..|ldx.#_ed|
|00000770| 61 74 61 09 7c 20 63 6c | 65 61 72 20 61 6c 6c 20 |ata.| cl|ear all |
|00000780| 6f 66 20 6d 65 6d 6f 72 | 79 0a 6c 32 3a 09 63 6c |of memor|y.l2:.cl|
|00000790| 72 09 28 78 29 2b 0a 09 | 63 6d 70 78 09 23 2f 30 |r.(x)+..|cmpx.#/0|
|000007a0| 66 66 66 0a 09 62 6e 65 | 09 6c 32 0a 7c 20 43 69 |fff..bne|.l2.| Ci|
|000007b0| 72 63 75 6d 76 65 6e 74 | 20 45 50 52 4f 4d 20 62 |rcumvent| EPROM b|
|000007c0| 75 67 0a 09 6c 64 78 09 | 23 2f 66 66 33 62 0a 09 |ug..ldx.|#/ff3b..|
|000007d0| 6c 64 62 09 23 36 0a 6c | 31 3a 09 70 73 68 73 09 |ldb.#6.l|1:.pshs.|
|000007e0| 78 0a 09 64 65 63 62 0a | 09 62 6e 65 20 6c 31 0a |x..decb.|.bne l1.|
|000007f0| 7c 09 63 6c 65 61 72 20 | 65 76 65 72 79 74 68 69 ||.clear |everythi|
|00000800| 6e 67 20 73 6f 20 74 68 | 61 74 20 73 74 61 72 74 |ng so th|at start|
|00000810| 20 63 6f 6e 64 73 20 61 | 72 65 0a 7c 09 61 6c 77 | conds a|re.|.alw|
|00000820| 61 79 73 20 73 61 6d 65 | 0a 09 63 6c 72 61 0a 09 |ays same|..clra..|
|00000830| 63 6c 72 62 0a 09 74 66 | 72 09 61 2c 64 70 0a 09 |clrb..tf|r.a,dp..|
|00000840| 74 66 72 09 64 2c 78 0a | 09 74 66 72 09 64 2c 79 |tfr.d,x.|.tfr.d,y|
|00000850| 0a 09 74 66 72 09 64 2c | 75 0a 09 6a 73 72 09 5f |..tfr.d,|u..jsr._|
|00000860| 6d 61 69 6e 0a 09 6a 6d | 70 09 2f 66 63 30 30 0a |main..jm|p./fc00.|
|00000870| 53 48 41 52 5f 45 4f 46 | 0a 69 66 20 74 65 73 74 |SHAR_EOF|.if test|
|00000880| 20 33 37 33 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 | 373 -ne| "`wc -c|
|00000890| 20 3c 20 27 36 38 30 39 | 2f 63 63 73 74 61 72 74 | < '6809|/ccstart|
|000008a0| 2e 75 27 60 22 0a 74 68 | 65 6e 0a 09 65 63 68 6f |.u'`".th|en..echo|
|000008b0| 20 73 68 61 72 3a 20 65 | 72 72 6f 72 20 74 72 61 | shar: e|rror tra|
|000008c0| 6e 73 6d 69 74 74 69 6e | 67 20 22 27 36 38 30 39 |nsmittin|g "'6809|
|000008d0| 2f 63 63 73 74 61 72 74 | 2e 75 27 22 20 27 28 73 |/ccstart|.u'" '(s|
|000008e0| 68 6f 75 6c 64 20 68 61 | 76 65 20 62 65 65 6e 20 |hould ha|ve been |
|000008f0| 33 37 33 20 63 68 61 72 | 61 63 74 65 72 73 29 27 |373 char|acters)'|
|00000900| 0a 66 69 0a 66 69 0a 65 | 63 68 6f 20 73 68 61 72 |.fi.fi.e|cho shar|
|00000910| 3a 20 65 78 74 72 61 63 | 74 69 6e 67 20 22 27 36 |: extrac|ting "'6|
|00000920| 38 30 39 2f 63 72 75 6e | 61 73 30 39 2e 75 27 22 |809/crun|as09.u'"|
|00000930| 20 27 28 38 38 34 20 63 | 68 61 72 61 63 74 65 72 | '(884 c|haracter|
|00000940| 73 29 27 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |s)'.if t|est -f '|
|00000950| 36 38 30 39 2f 63 72 75 | 6e 61 73 30 39 2e 75 27 |6809/cru|nas09.u'|
|00000960| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|00000970| 3a 20 77 69 6c 6c 20 6e | 6f 74 20 6f 76 65 72 2d |: will n|ot over-|
|00000980| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 20 66 |write ex|isting f|
|00000990| 69 6c 65 20 22 27 36 38 | 30 39 2f 63 72 75 6e 61 |ile "'68|09/cruna|
|000009a0| 73 30 39 2e 75 27 22 0a | 65 6c 73 65 0a 63 61 74 |s09.u'".|else.cat|
|000009b0| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|000009c0| 27 36 38 30 39 2f 63 72 | 75 6e 61 73 30 39 2e 75 |'6809/cr|unas09.u|
|000009d0| 27 0a 7c 09 63 73 61 30 | 39 20 53 6d 61 6c 6c 20 |'.|.csa0|9 Small |
|000009e0| 43 20 76 31 20 63 6f 6d | 70 61 72 69 73 6f 6e 20 |C v1 com|parison |
|000009f0| 73 75 70 70 6f 72 74 0a | 7c 09 41 6c 6c 20 61 72 |support.||.All ar|
|00000a00| 65 20 64 79 61 64 69 63 | 20 65 78 63 65 70 74 20 |e dyadic| except |
|00000a10| 66 6f 72 20 6c 6e 65 67 | 2e 0a 2e 67 6c 6f 62 6c |for lneg|...globl|
|00000a20| 09 65 71 0a 2e 67 6c 6f | 62 6c 09 6e 65 0a 2e 67 |.eq..glo|bl.ne..g|
|00000a30| 6c 6f 62 6c 09 6c 74 0a | 2e 67 6c 6f 62 6c 09 6c |lobl.lt.|.globl.l|
|00000a40| 65 0a 2e 67 6c 6f 62 6c | 09 67 74 0a 2e 67 6c 6f |e..globl|.gt..glo|
|00000a50| 62 6c 09 67 65 0a 2e 67 | 6c 6f 62 6c 09 75 6c 74 |bl.ge..g|lobl.ult|
|00000a60| 0a 2e 67 6c 6f 62 6c 09 | 75 6c 65 0a 2e 67 6c 6f |..globl.|ule..glo|
|00000a70| 62 6c 09 75 67 74 0a 2e | 67 6c 6f 62 6c 09 75 67 |bl.ugt..|globl.ug|
|00000a80| 65 0a 2e 67 6c 6f 62 6c | 09 6c 6e 65 67 0a 2e 67 |e..globl|.lneg..g|
|00000a90| 6c 6f 62 6c 09 62 6f 6f | 6c 0a 2e 67 6c 6f 62 6c |lobl.boo|l..globl|
|00000aa0| 09 5f 65 65 6e 64 2c 5f | 65 64 61 74 61 2c 5f 65 |._eend,_|edata,_e|
|00000ab0| 74 65 78 74 0a 2e 67 6c | 6f 62 6c 09 5f 58 73 74 |text..gl|obl._Xst|
|00000ac0| 6b 74 6f 70 2c 5f 62 72 | 6b 65 6e 64 0a 0a 65 71 |ktop,_br|kend..eq|
|00000ad0| 3a 09 63 6d 70 64 20 32 | 28 73 29 0a 09 6c 62 65 |:.cmpd 2|(s)..lbe|
|00000ae0| 71 20 74 72 75 65 0a 09 | 6c 62 72 61 20 66 61 6c |q true..|lbra fal|
|00000af0| 73 65 0a 0a 6e 65 3a 09 | 63 6d 70 64 20 32 28 73 |se..ne:.|cmpd 2(s|
|00000b00| 29 0a 09 6c 62 6e 65 20 | 74 72 75 65 0a 09 6c 62 |)..lbne |true..lb|
|00000b10| 72 61 20 66 61 6c 73 65 | 0a 0a 6c 74 3a 09 63 6d |ra false|..lt:.cm|
|00000b20| 70 64 20 32 28 73 29 0a | 09 62 67 74 20 74 72 75 |pd 2(s).|.bgt tru|
|00000b30| 65 0a 09 62 72 61 20 66 | 61 6c 73 65 0a 0a 6c 65 |e..bra f|alse..le|
|00000b40| 3a 09 63 6d 70 64 20 32 | 28 73 29 0a 09 62 67 65 |:.cmpd 2|(s)..bge|
|00000b50| 20 74 72 75 65 0a 09 62 | 72 61 20 66 61 6c 73 65 | true..b|ra false|
|00000b60| 0a 0a 67 74 3a 09 63 6d | 70 64 20 32 28 73 29 0a |..gt:.cm|pd 2(s).|
|00000b70| 09 62 6c 74 20 74 72 75 | 65 0a 09 62 72 61 20 66 |.blt tru|e..bra f|
|00000b80| 61 6c 73 65 0a 0a 67 65 | 3a 09 63 6d 70 64 20 32 |alse..ge|:.cmpd 2|
|00000b90| 28 73 29 0a 09 62 6c 65 | 20 74 72 75 65 0a 09 62 |(s)..ble| true..b|
|00000ba0| 72 61 20 66 61 6c 73 65 | 0a 0a 75 6c 74 3a 09 63 |ra false|..ult:.c|
|00000bb0| 6d 70 64 20 32 28 73 29 | 0a 09 62 68 69 20 74 72 |mpd 2(s)|..bhi tr|
|00000bc0| 75 65 0a 09 62 72 61 20 | 66 61 6c 73 65 0a 0a 75 |ue..bra |false..u|
|00000bd0| 6c 65 3a 09 63 6d 70 64 | 20 32 28 73 29 0a 09 62 |le:.cmpd| 2(s)..b|
|00000be0| 68 73 20 74 72 75 65 0a | 09 62 72 61 20 66 61 6c |hs true.|.bra fal|
|00000bf0| 73 65 0a 0a 75 67 74 3a | 09 63 6d 70 64 20 32 28 |se..ugt:|.cmpd 2(|
|00000c00| 73 29 0a 09 62 6c 6f 20 | 74 72 75 65 0a 09 62 72 |s)..blo |true..br|
|00000c10| 61 20 66 61 6c 73 65 0a | 0a 75 67 65 3a 09 63 6d |a false.|.uge:.cm|
|00000c20| 70 64 20 32 28 73 29 0a | 09 62 6c 73 20 74 72 75 |pd 2(s).|.bls tru|
|00000c30| 65 0a 09 62 72 61 20 66 | 61 6c 73 65 0a 0a 6c 6e |e..bra f|alse..ln|
|00000c40| 65 67 3a 09 63 6d 70 64 | 20 23 30 0a 09 62 65 71 |eg:.cmpd| #0..beq|
|00000c50| 20 6c 74 72 75 65 0a 09 | 6c 64 64 20 23 30 0a 09 | ltrue..|ldd #0..|
|00000c60| 72 74 73 0a 6c 74 72 75 | 65 3a 09 6c 64 64 20 23 |rts.ltru|e:.ldd #|
|00000c70| 31 0a 09 72 74 73 0a 0a | 62 6f 6f 6c 3a 09 62 73 |1..rts..|bool:.bs|
|00000c80| 72 09 6c 6e 65 67 0a 09 | 62 72 61 09 6c 6e 65 67 |r.lneg..|bra.lneg|
|00000c90| 0a 0a 74 72 75 65 3a 09 | 6c 64 64 20 23 31 0a 09 |..true:.|ldd #1..|
|00000ca0| 6c 64 78 20 28 73 29 0a | 09 6c 65 61 73 20 34 28 |ldx (s).|.leas 4(|
|00000cb0| 73 29 0a 09 6a 6d 70 20 | 28 78 29 0a 0a 66 61 6c |s)..jmp |(x)..fal|
|00000cc0| 73 65 3a 09 63 6c 72 61 | 0a 09 63 6c 72 62 0a 09 |se:.clra|..clrb..|
|00000cd0| 6c 64 78 20 28 73 29 0a | 09 6c 65 61 73 20 34 28 |ldx (s).|.leas 4(|
|00000ce0| 73 29 0a 09 6a 6d 70 20 | 20 28 78 29 0a 5f 58 73 |s)..jmp | (x)._Xs|
|00000cf0| 74 6b 74 6f 70 3a 09 74 | 66 72 09 73 2c 64 0a 09 |tktop:.t|fr.s,d..|
|00000d00| 72 74 73 0a 5f 65 74 65 | 78 74 09 3d 09 2e 0a 09 |rts._ete|xt.=....|
|00000d10| 2e 62 73 73 0a 5f 65 65 | 6e 64 09 3d 09 2e 0a 09 |.bss._ee|nd.=....|
|00000d20| 2e 64 61 74 61 0a 5f 62 | 72 6b 65 6e 64 3a 09 2e |.data._b|rkend:..|
|00000d30| 77 76 61 6c 09 5f 65 65 | 6e 64 0a 5f 65 64 61 74 |wval._ee|nd._edat|
|00000d40| 61 09 3d 09 2e 0a 53 48 | 41 52 5f 45 4f 46 0a 69 |a.=...SH|AR_EOF.i|
|00000d50| 66 20 74 65 73 74 20 38 | 38 34 20 2d 6e 65 20 22 |f test 8|84 -ne "|
|00000d60| 60 77 63 20 2d 63 20 3c | 20 27 36 38 30 39 2f 63 |`wc -c <| '6809/c|
|00000d70| 72 75 6e 61 73 30 39 2e | 75 27 60 22 0a 74 68 65 |runas09.|u'`".the|
|00000d80| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 65 72 |n..echo |shar: er|
|00000d90| 72 6f 72 20 74 72 61 6e | 73 6d 69 74 74 69 6e 67 |ror tran|smitting|
|00000da0| 20 22 27 36 38 30 39 2f | 63 72 75 6e 61 73 30 39 | "'6809/|crunas09|
|00000db0| 2e 75 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |.u'" '(s|hould ha|
|00000dc0| 76 65 20 62 65 65 6e 20 | 38 38 34 20 63 68 61 72 |ve been |884 char|
|00000dd0| 61 63 74 65 72 73 29 27 | 0a 66 69 0a 66 69 0a 65 |acters)'|.fi.fi.e|
|00000de0| 63 68 6f 20 73 68 61 72 | 3a 20 65 78 74 72 61 63 |cho shar|: extrac|
|00000df0| 74 69 6e 67 20 22 27 36 | 38 30 39 2f 65 78 69 74 |ting "'6|809/exit|
|00000e00| 2e 75 27 22 20 27 28 37 | 35 20 63 68 61 72 61 63 |.u'" '(7|5 charac|
|00000e10| 74 65 72 73 29 27 0a 69 | 66 20 74 65 73 74 20 2d |ters)'.i|f test -|
|00000e20| 66 20 27 36 38 30 39 2f | 65 78 69 74 2e 75 27 0a |f '6809/|exit.u'.|
|00000e30| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00000e40| 20 77 69 6c 6c 20 6e 6f | 74 20 6f 76 65 72 2d 77 | will no|t over-w|
|00000e50| 72 69 74 65 20 65 78 69 | 73 74 69 6e 67 20 66 69 |rite exi|sting fi|
|00000e60| 6c 65 20 22 27 36 38 30 | 39 2f 65 78 69 74 2e 75 |le "'680|9/exit.u|
|00000e70| 27 22 0a 65 6c 73 65 0a | 63 61 74 20 3c 3c 20 5c |'".else.|cat << \|
|00000e80| 53 48 41 52 5f 45 4f 46 | 20 3e 20 27 36 38 30 39 |SHAR_EOF| > '6809|
|00000e90| 2f 65 78 69 74 2e 75 27 | 0a 7c 09 53 6d 61 6c 6c |/exit.u'|.|.Small|
|00000ea0| 20 43 20 76 31 20 65 78 | 69 74 20 72 6f 75 74 69 | C v1 ex|it routi|
|00000eb0| 6e 65 20 28 70 68 79 73 | 69 63 73 20 63 6f 6d 70 |ne (phys|ics comp|
|00000ec0| 75 74 65 72 29 0a 2e 67 | 6c 6f 62 6c 09 5f 65 78 |uter)..g|lobl._ex|
|00000ed0| 69 74 0a 5f 65 78 69 74 | 3a 09 6a 6d 70 09 2f 66 |it._exit|:.jmp./f|
|00000ee0| 63 30 30 0a 53 48 41 52 | 5f 45 4f 46 0a 69 66 20 |c00.SHAR|_EOF.if |
|00000ef0| 74 65 73 74 20 37 35 20 | 2d 6e 65 20 22 60 77 63 |test 75 |-ne "`wc|
|00000f00| 20 2d 63 20 3c 20 27 36 | 38 30 39 2f 65 78 69 74 | -c < '6|809/exit|
|00000f10| 2e 75 27 60 22 0a 74 68 | 65 6e 0a 09 65 63 68 6f |.u'`".th|en..echo|
|00000f20| 20 73 68 61 72 3a 20 65 | 72 72 6f 72 20 74 72 61 | shar: e|rror tra|
|00000f30| 6e 73 6d 69 74 74 69 6e | 67 20 22 27 36 38 30 39 |nsmittin|g "'6809|
|00000f40| 2f 65 78 69 74 2e 75 27 | 22 20 27 28 73 68 6f 75 |/exit.u'|" '(shou|
|00000f50| 6c 64 20 68 61 76 65 20 | 62 65 65 6e 20 37 35 20 |ld have |been 75 |
|00000f60| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 66 69 0a |characte|rs)'.fi.|
|00000f70| 66 69 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 65 78 |fi.echo |shar: ex|
|00000f80| 74 72 61 63 74 69 6e 67 | 20 22 27 36 38 30 39 2f |tracting| "'6809/|
|00000f90| 66 61 75 6c 74 73 2e 75 | 27 22 20 27 28 32 30 35 |faults.u|'" '(205|
|00000fa0| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 69 66 | charact|ers)'.if|
|00000fb0| 20 74 65 73 74 20 2d 66 | 20 27 36 38 30 39 2f 66 | test -f| '6809/f|
|00000fc0| 61 75 6c 74 73 2e 75 27 | 0a 74 68 65 6e 0a 09 65 |aults.u'|.then..e|
|00000fd0| 63 68 6f 20 73 68 61 72 | 3a 20 77 69 6c 6c 20 6e |cho shar|: will n|
|00000fe0| 6f 74 20 6f 76 65 72 2d | 77 72 69 74 65 20 65 78 |ot over-|write ex|
|00000ff0| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 22 27 36 38 |isting f|ile "'68|
|00001000| 30 39 2f 66 61 75 6c 74 | 73 2e 75 27 22 0a 65 6c |09/fault|s.u'".el|
|00001010| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|00001020| 45 4f 46 20 3e 20 27 36 | 38 30 39 2f 66 61 75 6c |EOF > '6|809/faul|
|00001030| 74 73 2e 75 27 0a 7c 09 | 4d 43 36 38 30 39 20 43 |ts.u'.|.|MC6809 C|
|00001040| 6f 6e 63 75 72 72 65 6e | 74 20 45 75 63 6c 69 64 |oncurren|t Euclid|
|00001050| 20 66 61 75 6c 74 20 63 | 6f 64 65 73 0a 41 53 53 | fault c|odes.ASS|
|00001060| 45 52 54 46 41 49 4c 20 | 3d 20 30 0a 52 41 4e 47 |ERTFAIL |= 0.RANG|
|00001070| 45 43 48 45 43 4b 20 3d | 20 31 0a 43 41 53 45 52 |ECHECK =| 1.CASER|
|00001080| 41 4e 47 45 20 3d 20 32 | 0a 7c 20 66 61 75 6c 74 |ANGE = 2|.| fault|
|00001090| 20 63 6f 64 65 73 20 66 | 6f 72 20 72 75 6e 74 69 | codes f|or runti|
|000010a0| 6d 65 20 72 6f 75 74 69 | 6e 65 73 0a 4f 55 54 4f |me routi|nes.OUTO|
|000010b0| 46 53 50 41 43 45 20 3d | 20 32 30 0a 2e 67 6c 6f |FSPACE =| 20..glo|
|000010c0| 62 6c 20 41 53 53 45 52 | 54 46 41 49 4c 0a 2e 67 |bl ASSER|TFAIL..g|
|000010d0| 6c 6f 62 6c 20 52 41 4e | 47 45 43 48 45 43 4b 0a |lobl RAN|GECHECK.|
|000010e0| 2e 67 6c 6f 62 6c 20 43 | 41 53 45 52 41 4e 47 45 |.globl C|ASERANGE|
|000010f0| 0a 2e 67 6c 6f 62 6c 09 | 4f 55 54 4f 46 53 50 41 |..globl.|OUTOFSPA|
|00001100| 43 45 0a 53 48 41 52 5f | 45 4f 46 0a 69 66 20 74 |CE.SHAR_|EOF.if t|
|00001110| 65 73 74 20 32 30 35 20 | 2d 6e 65 20 22 60 77 63 |est 205 |-ne "`wc|
|00001120| 20 2d 63 20 3c 20 27 36 | 38 30 39 2f 66 61 75 6c | -c < '6|809/faul|
|00001130| 74 73 2e 75 27 60 22 0a | 74 68 65 6e 0a 09 65 63 |ts.u'`".|then..ec|
|00001140| 68 6f 20 73 68 61 72 3a | 20 65 72 72 6f 72 20 74 |ho shar:| error t|
|00001150| 72 61 6e 73 6d 69 74 74 | 69 6e 67 20 22 27 36 38 |ransmitt|ing "'68|
|00001160| 30 39 2f 66 61 75 6c 74 | 73 2e 75 27 22 20 27 28 |09/fault|s.u'" '(|
|00001170| 73 68 6f 75 6c 64 20 68 | 61 76 65 20 62 65 65 6e |should h|ave been|
|00001180| 20 32 30 35 20 63 68 61 | 72 61 63 74 65 72 73 29 | 205 cha|racters)|
|00001190| 27 0a 66 69 0a 66 69 0a | 65 63 68 6f 20 73 68 61 |'.fi.fi.|echo sha|
|000011a0| 72 3a 20 65 78 74 72 61 | 63 74 69 6e 67 20 22 27 |r: extra|cting "'|
|000011b0| 36 38 30 39 2f 69 6f 2e | 75 27 22 20 27 28 33 33 |6809/io.|u'" '(33|
|000011c0| 34 20 63 68 61 72 61 63 | 74 65 72 73 29 27 0a 69 |4 charac|ters)'.i|
|000011d0| 66 20 74 65 73 74 20 2d | 66 20 27 36 38 30 39 2f |f test -|f '6809/|
|000011e0| 69 6f 2e 75 27 0a 74 68 | 65 6e 0a 09 65 63 68 6f |io.u'.th|en..echo|
|000011f0| 20 73 68 61 72 3a 20 77 | 69 6c 6c 20 6e 6f 74 20 | shar: w|ill not |
|00001200| 6f 76 65 72 2d 77 72 69 | 74 65 20 65 78 69 73 74 |over-wri|te exist|
|00001210| 69 6e 67 20 66 69 6c 65 | 20 22 27 36 38 30 39 2f |ing file| "'6809/|
|00001220| 69 6f 2e 75 27 22 0a 65 | 6c 73 65 0a 63 61 74 20 |io.u'".e|lse.cat |
|00001230| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|00001240| 36 38 30 39 2f 69 6f 2e | 75 27 0a 7c 09 53 6d 61 |6809/io.|u'.|.Sma|
|00001250| 6c 6c 20 43 20 76 31 20 | 69 6f 20 28 70 75 74 63 |ll C v1 |io (putc|
|00001260| 68 61 72 29 20 66 6f 72 | 20 70 68 79 73 69 63 73 |har) for| physics|
|00001270| 20 6d 61 63 68 69 6e 65 | 0a 2e 67 6c 6f 62 6c 09 | machine|..globl.|
|00001280| 5f 70 75 74 63 68 61 72 | 0a 5f 70 75 74 63 68 61 |_putchar|._putcha|
|00001290| 72 3d 2e 0a 09 6c 64 61 | 09 2f 39 30 30 30 0a 09 |r=...lda|./9000..|
|000012a0| 62 69 74 61 09 23 32 0a | 09 62 65 71 09 5f 70 75 |bita.#2.|.beq._pu|
|000012b0| 74 63 68 61 72 0a 09 6c | 64 61 09 33 28 73 29 0a |tchar..l|da.3(s).|
|000012c0| 09 73 74 61 09 2f 39 30 | 30 31 0a 09 63 6d 70 61 |.sta./90|01..cmpa|
|000012d0| 09 23 31 30 2e 0a 09 62 | 6e 65 09 6f 75 74 0a 09 |.#10...b|ne.out..|
|000012e0| 6c 64 64 09 23 31 33 2e | 0a 09 70 73 68 73 09 64 |ldd.#13.|..pshs.d|
|000012f0| 0a 09 6c 62 73 72 09 5f | 70 75 74 63 68 61 72 0a |..lbsr._|putchar.|
|00001300| 09 6c 65 61 73 09 32 28 | 73 29 0a 6f 75 74 3a 09 |.leas.2(|s).out:.|
|00001310| 72 74 73 0a 0a 2e 67 6c | 6f 62 6c 09 5f 67 65 74 |rts...gl|obl._get|
|00001320| 63 68 61 72 0a 5f 67 65 | 74 63 68 61 72 3d 2e 0a |char._ge|tchar=..|
|00001330| 09 6c 64 61 09 2f 39 30 | 30 30 0a 09 62 69 74 61 |.lda./90|00..bita|
|00001340| 09 23 31 0a 09 62 65 71 | 09 5f 67 65 74 63 68 61 |.#1..beq|._getcha|
|00001350| 72 0a 09 6c 64 62 09 2f | 39 30 30 31 0a 09 63 6c |r..ldb./|9001..cl|
|00001360| 72 61 0a 09 61 6e 64 62 | 09 23 2f 37 46 0a 09 63 |ra..andb|.#/7F..c|
|00001370| 6d 70 62 09 23 30 34 0a | 09 62 6e 65 09 6e 6f 74 |mpb.#04.|.bne.not|
|00001380| 65 6f 74 0a 09 6c 64 64 | 09 23 2d 31 0a 6e 6f 74 |eot..ldd|.#-1.not|
|00001390| 65 6f 74 3a 09 72 74 73 | 0a 53 48 41 52 5f 45 4f |eot:.rts|.SHAR_EO|
|000013a0| 46 0a 69 66 20 74 65 73 | 74 20 33 33 34 20 2d 6e |F.if tes|t 334 -n|
|000013b0| 65 20 22 60 77 63 20 2d | 63 20 3c 20 27 36 38 30 |e "`wc -|c < '680|
|000013c0| 39 2f 69 6f 2e 75 27 60 | 22 0a 74 68 65 6e 0a 09 |9/io.u'`|".then..|
|000013d0| 65 63 68 6f 20 73 68 61 | 72 3a 20 65 72 72 6f 72 |echo sha|r: error|
|000013e0| 20 74 72 61 6e 73 6d 69 | 74 74 69 6e 67 20 22 27 | transmi|tting "'|
|000013f0| 36 38 30 39 2f 69 6f 2e | 75 27 22 20 27 28 73 68 |6809/io.|u'" '(sh|
|00001400| 6f 75 6c 64 20 68 61 76 | 65 20 62 65 65 6e 20 33 |ould hav|e been 3|
|00001410| 33 34 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |34 chara|cters)'.|
|00001420| 66 69 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |fi.fi.ec|ho shar:|
|00001430| 20 65 78 74 72 61 63 74 | 69 6e 67 20 22 27 36 38 | extract|ing "'68|
|00001440| 30 39 2f 6d 72 61 62 73 | 2e 75 27 22 20 27 28 34 |09/mrabs|.u'" '(4|
|00001450| 32 32 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |22 chara|cters)'.|
|00001460| 69 66 20 74 65 73 74 20 | 2d 66 20 27 36 38 30 39 |if test |-f '6809|
|00001470| 2f 6d 72 61 62 73 2e 75 | 27 0a 74 68 65 6e 0a 09 |/mrabs.u|'.then..|
|00001480| 65 63 68 6f 20 73 68 61 | 72 3a 20 77 69 6c 6c 20 |echo sha|r: will |
|00001490| 6e 6f 74 20 6f 76 65 72 | 2d 77 72 69 74 65 20 65 |not over|-write e|
|000014a0| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 22 27 36 |xisting |file "'6|
|000014b0| 38 30 39 2f 6d 72 61 62 | 73 2e 75 27 22 0a 65 6c |809/mrab|s.u'".el|
|000014c0| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|000014d0| 45 4f 46 20 3e 20 27 36 | 38 30 39 2f 6d 72 61 62 |EOF > '6|809/mrab|
|000014e0| 73 2e 75 27 0a 7c 09 6d | 72 61 62 73 2e 20 20 63 |s.u'.|.m|rabs. c|
|000014f0| 6f 6e 76 65 72 74 73 20 | 62 6f 74 68 20 61 72 67 |onverts |both arg|
|00001500| 73 20 74 6f 20 75 6e 73 | 69 67 6e 65 64 2c 20 61 |s to uns|igned, a|
|00001510| 6e 64 0a 7c 09 72 65 6d | 65 6d 62 65 72 73 20 72 |nd.|.rem|embers r|
|00001520| 65 73 75 6c 74 20 73 69 | 67 6e 20 61 73 20 74 68 |esult si|gn as th|
|00001530| 65 20 73 69 67 6e 20 6f | 66 20 74 68 65 20 6c 65 |e sign o|f the le|
|00001540| 66 74 0a 7c 09 61 72 67 | 75 6d 65 6e 74 2e 20 20 |ft.|.arg|ument. |
|00001550| 28 66 6f 72 20 73 69 67 | 6e 65 64 20 6d 6f 64 75 |(for sig|ned modu|
|00001560| 6c 6f 29 0a 7c 09 72 65 | 73 75 6c 74 20 64 20 63 |lo).|.re|sult d c|
|00001570| 6f 6e 74 61 69 6e 73 20 | 72 69 67 68 74 2c 20 73 |ontains |right, s|
|00001580| 69 67 6e 20 69 73 20 6e | 6f 6e 2d 7a 65 72 6f 0a |ign is n|on-zero.|
|00001590| 7c 09 69 66 20 72 65 73 | 75 6c 74 20 28 66 72 6f ||.if res|ult (fro|
|000015a0| 6d 20 6d 6f 64 29 20 73 | 68 6f 75 6c 64 20 62 65 |m mod) s|hould be|
|000015b0| 20 6e 65 67 61 74 69 76 | 65 2e 0a 7c 0a 7c 0a 2e | negativ|e..|.|..|
|000015c0| 67 6c 6f 62 6c 20 6d 72 | 61 62 73 0a 09 6c 65 66 |globl mr|abs..lef|
|000015d0| 74 3d 38 2e 0a 09 72 69 | 67 68 74 3d 34 2e 0a 09 |t=8...ri|ght=4...|
|000015e0| 73 69 67 6e 3d 33 2e 0a | 6d 72 61 62 73 3a 09 63 |sign=3..|mrabs:.c|
|000015f0| 6c 72 09 73 69 67 6e 28 | 73 29 0a 09 6c 64 64 09 |lr.sign(|s)..ldd.|
|00001600| 6c 65 66 74 28 73 29 0a | 09 62 67 65 09 74 72 79 |left(s).|.bge.try|
|00001610| 72 0a 09 6e 65 67 61 0a | 09 6e 65 67 62 0a 09 73 |r..nega.|.negb..s|
|00001620| 62 63 61 09 23 30 0a 09 | 73 74 64 09 6c 65 66 74 |bca.#0..|std.left|
|00001630| 28 73 29 0a 09 69 6e 63 | 09 73 69 67 6e 28 73 29 |(s)..inc|.sign(s)|
|00001640| 0a 74 72 79 72 3a 09 6c | 64 64 09 72 69 67 68 74 |.tryr:.l|dd.right|
|00001650| 28 73 29 0a 09 62 67 65 | 09 64 6f 6e 65 0a 09 6e |(s)..bge|.done..n|
|00001660| 65 67 61 0a 09 6e 65 67 | 62 0a 09 73 62 63 61 09 |ega..neg|b..sbca.|
|00001670| 23 30 0a 09 73 74 64 09 | 72 69 67 68 74 28 73 29 |#0..std.|right(s)|
|00001680| 0a 64 6f 6e 65 3a 09 72 | 74 73 0a 53 48 41 52 5f |.done:.r|ts.SHAR_|
|00001690| 45 4f 46 0a 69 66 20 74 | 65 73 74 20 34 32 32 20 |EOF.if t|est 422 |
|000016a0| 2d 6e 65 20 22 60 77 63 | 20 2d 63 20 3c 20 27 36 |-ne "`wc| -c < '6|
|000016b0| 38 30 39 2f 6d 72 61 62 | 73 2e 75 27 60 22 0a 74 |809/mrab|s.u'`".t|
|000016c0| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|000016d0| 65 72 72 6f 72 20 74 72 | 61 6e 73 6d 69 74 74 69 |error tr|ansmitti|
|000016e0| 6e 67 20 22 27 36 38 30 | 39 2f 6d 72 61 62 73 2e |ng "'680|9/mrabs.|
|000016f0| 75 27 22 20 27 28 73 68 | 6f 75 6c 64 20 68 61 76 |u'" '(sh|ould hav|
|00001700| 65 20 62 65 65 6e 20 34 | 32 32 20 63 68 61 72 61 |e been 4|22 chara|
|00001710| 63 74 65 72 73 29 27 0a | 66 69 0a 66 69 0a 65 63 |cters)'.|fi.fi.ec|
|00001720| 68 6f 20 73 68 61 72 3a | 20 65 78 74 72 61 63 74 |ho shar:| extract|
|00001730| 69 6e 67 20 22 27 36 38 | 30 39 2f 70 72 61 62 73 |ing "'68|09/prabs|
|00001740| 2e 75 27 22 20 27 28 34 | 33 32 20 63 68 61 72 61 |.u'" '(4|32 chara|
|00001750| 63 74 65 72 73 29 27 0a | 69 66 20 74 65 73 74 20 |cters)'.|if test |
|00001760| 2d 66 20 27 36 38 30 39 | 2f 70 72 61 62 73 2e 75 |-f '6809|/prabs.u|
|00001770| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|00001780| 72 3a 20 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: will |not over|
|00001790| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|000017a0| 66 69 6c 65 20 22 27 36 | 38 30 39 2f 70 72 61 62 |file "'6|809/prab|
|000017b0| 73 2e 75 27 22 0a 65 6c | 73 65 0a 63 61 74 20 3c |s.u'".el|se.cat <|
|000017c0| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 36 |< \SHAR_|EOF > '6|
|000017d0| 38 30 39 2f 70 72 61 62 | 73 2e 75 27 0a 7c 09 70 |809/prab|s.u'.|.p|
|000017e0| 72 61 62 73 2e 20 20 63 | 6f 6e 76 65 72 74 73 20 |rabs. c|onverts |
|000017f0| 62 6f 74 68 20 61 72 67 | 73 20 74 6f 20 75 6e 73 |both arg|s to uns|
|00001800| 69 67 6e 65 64 2c 20 61 | 6e 64 0a 7c 09 72 65 6d |igned, a|nd.|.rem|
|00001810| 65 6d 62 65 72 73 20 72 | 65 73 75 6c 74 20 73 69 |embers r|esult si|
|00001820| 67 6e 20 61 73 20 73 69 | 67 6e 20 61 20 65 6f 72 |gn as si|gn a eor|
|00001830| 20 73 69 67 6e 20 62 0a | 7c 09 75 73 65 64 20 6f | sign b.||.used o|
|00001840| 6e 6c 79 20 62 79 20 64 | 69 76 69 64 65 20 73 75 |nly by d|ivide su|
|00001850| 70 70 6f 72 74 0a 7c 09 | 72 65 73 75 6c 74 20 64 |pport.|.|result d|
|00001860| 20 63 6f 6e 74 61 69 6e | 73 20 72 69 67 68 74 2c | contain|s right,|
|00001870| 20 73 69 67 6e 20 69 73 | 20 6e 6f 6e 2d 7a 65 72 | sign is| non-zer|
|00001880| 6f 0a 7c 09 69 66 20 72 | 65 73 75 6c 74 20 28 66 |o.|.if r|esult (f|
|00001890| 72 6f 6d 20 64 69 76 69 | 64 65 29 20 73 68 6f 75 |rom divi|de) shou|
|000018a0| 6c 64 20 62 65 20 6e 65 | 67 61 74 69 76 65 2e 0a |ld be ne|gative..|
|000018b0| 7c 0a 7c 0a 2e 67 6c 6f | 62 6c 20 70 72 61 62 73 ||.|..glo|bl prabs|
|000018c0| 0a 09 6c 65 66 74 3d 38 | 2e 0a 09 72 69 67 68 74 |..left=8|...right|
|000018d0| 3d 34 2e 0a 09 73 69 67 | 6e 3d 33 2e 0a 70 72 61 |=4...sig|n=3..pra|
|000018e0| 62 73 3a 09 63 6c 72 09 | 73 69 67 6e 28 73 29 0a |bs:.clr.|sign(s).|
|000018f0| 09 6c 64 64 09 6c 65 66 | 74 28 73 29 0a 09 62 67 |.ldd.lef|t(s)..bg|
|00001900| 65 09 74 72 79 72 0a 09 | 6e 65 67 61 0a 09 6e 65 |e.tryr..|nega..ne|
|00001910| 67 62 0a 09 73 62 63 61 | 09 23 30 0a 09 73 74 64 |gb..sbca|.#0..std|
|00001920| 09 6c 65 66 74 28 73 29 | 0a 09 69 6e 63 09 73 69 |.left(s)|..inc.si|
|00001930| 67 6e 28 73 29 0a 74 72 | 79 72 3a 09 6c 64 64 09 |gn(s).tr|yr:.ldd.|
|00001940| 72 69 67 68 74 28 73 29 | 0a 09 62 67 65 09 64 6f |right(s)|..bge.do|
|00001950| 6e 65 0a 09 6e 65 67 61 | 0a 09 6e 65 67 62 0a 09 |ne..nega|..negb..|
|00001960| 73 62 63 61 09 23 30 0a | 09 64 65 63 09 73 69 67 |sbca.#0.|.dec.sig|
|00001970| 6e 28 73 29 0a 09 73 74 | 64 09 72 69 67 68 74 28 |n(s)..st|d.right(|
|00001980| 73 29 0a 64 6f 6e 65 3a | 09 72 74 73 0a 53 48 41 |s).done:|.rts.SHA|
|00001990| 52 5f 45 4f 46 0a 69 66 | 20 74 65 73 74 20 34 33 |R_EOF.if| test 43|
|000019a0| 32 20 2d 6e 65 20 22 60 | 77 63 20 2d 63 20 3c 20 |2 -ne "`|wc -c < |
|000019b0| 27 36 38 30 39 2f 70 72 | 61 62 73 2e 75 27 60 22 |'6809/pr|abs.u'`"|
|000019c0| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|000019d0| 3a 20 65 72 72 6f 72 20 | 74 72 61 6e 73 6d 69 74 |: error |transmit|
|000019e0| 74 69 6e 67 20 22 27 36 | 38 30 39 2f 70 72 61 62 |ting "'6|809/prab|
|000019f0| 73 2e 75 27 22 20 27 28 | 73 68 6f 75 6c 64 20 68 |s.u'" '(|should h|
|00001a00| 61 76 65 20 62 65 65 6e | 20 34 33 32 20 63 68 61 |ave been| 432 cha|
|00001a10| 72 61 63 74 65 72 73 29 | 27 0a 66 69 0a 66 69 0a |racters)|'.fi.fi.|
|00001a20| 65 63 68 6f 20 73 68 61 | 72 3a 20 65 78 74 72 61 |echo sha|r: extra|
|00001a30| 63 74 69 6e 67 20 22 27 | 36 38 30 39 2f 73 64 69 |cting "'|6809/sdi|
|00001a40| 76 2e 75 27 22 20 27 28 | 38 31 32 20 63 68 61 72 |v.u'" '(|812 char|
|00001a50| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|00001a60| 20 2d 66 20 27 36 38 30 | 39 2f 73 64 69 76 2e 75 | -f '680|9/sdiv.u|
|00001a70| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|00001a80| 72 3a 20 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: will |not over|
|00001a90| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00001aa0| 66 69 6c 65 20 22 27 36 | 38 30 39 2f 73 64 69 76 |file "'6|809/sdiv|
|00001ab0| 2e 75 27 22 0a 65 6c 73 | 65 0a 63 61 74 20 3c 3c |.u'".els|e.cat <<|
|00001ac0| 20 5c 53 48 41 52 5f 45 | 4f 46 20 3e 20 27 36 38 | \SHAR_E|OF > '68|
|00001ad0| 30 39 2f 73 64 69 76 2e | 75 27 0a 7c 09 73 69 67 |09/sdiv.|u'.|.sig|
|00001ae0| 6e 65 64 20 64 69 76 69 | 64 65 0a 7c 09 63 61 6c |ned divi|de.|.cal|
|00001af0| 6c 69 6e 67 3a 20 28 6c | 65 66 74 20 2f 20 72 69 |ling: (l|eft / ri|
|00001b00| 67 68 74 29 0a 7c 09 09 | 70 75 73 68 20 6c 65 66 |ght).|..|push lef|
|00001b10| 74 0a 7c 09 09 6c 64 64 | 20 72 69 67 68 74 0a 7c |t.|..ldd| right.||
|00001b20| 09 09 6a 73 72 20 73 64 | 69 76 0a 7c 09 72 65 73 |..jsr sd|iv.|.res|
|00001b30| 75 6c 74 20 69 6e 20 64 | 2c 20 61 72 67 20 70 6f |ult in d|, arg po|
|00001b40| 70 70 65 64 2e 0a 7c 0a | 09 6c 65 66 74 3d 36 0a |pped..|.|.left=6.|
|00001b50| 09 72 69 67 68 74 3d 32 | 0a 09 73 69 67 6e 3d 31 |.right=2|..sign=1|
|00001b60| 0a 09 63 6f 75 6e 74 3d | 30 0a 09 72 65 74 75 72 |..count=|0..retur|
|00001b70| 6e 3d 34 0a 09 43 41 52 | 52 59 3d 31 0a 2e 67 6c |n=4..CAR|RY=1..gl|
|00001b80| 6f 62 6c 20 73 64 69 76 | 2c 64 69 76 2c 41 53 53 |obl sdiv|,div,ASS|
|00001b90| 45 52 54 46 41 49 4c 0a | 2e 67 6c 6f 62 6c 20 70 |ERTFAIL.|.globl p|
|00001ba0| 72 61 62 73 0a 73 64 69 | 76 3a 09 6c 65 61 73 09 |rabs.sdi|v:.leas.|
|00001bb0| 2d 34 28 73 29 0a 09 73 | 74 64 09 72 69 67 68 74 |-4(s)..s|td.right|
|00001bc0| 28 73 29 0a 09 62 6e 65 | 09 6e 6f 7a 65 72 6f 0a |(s)..bne|.nozero.|
|00001bd0| 09 73 77 69 32 0a 09 2e | 62 79 74 65 09 41 53 53 |.swi2...|byte.ASS|
|00001be0| 45 52 54 46 41 49 4c 0a | 6e 6f 7a 65 72 6f 3a 09 |ERTFAIL.|nozero:.|
|00001bf0| 6a 73 72 09 70 72 61 62 | 73 0a 64 69 76 3a 09 63 |jsr.prab|s.div:.c|
|00001c00| 6c 72 09 63 6f 75 6e 74 | 28 73 29 09 7c 20 70 72 |lr.count|(s).| pr|
|00001c10| 65 73 63 61 6c 65 20 64 | 69 76 69 73 6f 72 0a 09 |escale d|ivisor..|
|00001c20| 69 6e 63 09 63 6f 75 6e | 74 28 73 29 0a 6d 73 63 |inc.coun|t(s).msc|
|00001c30| 6c 3a 09 69 6e 63 09 63 | 6f 75 6e 74 28 73 29 0a |l:.inc.c|ount(s).|
|00001c40| 09 61 73 6c 62 0a 09 72 | 6f 6c 61 0a 09 62 70 6c |.aslb..r|ola..bpl|
|00001c50| 09 6d 73 63 6c 0a 09 73 | 74 64 09 72 69 67 68 74 |.mscl..s|td.right|
|00001c60| 28 73 29 0a 09 6c 64 64 | 09 6c 65 66 74 28 73 29 |(s)..ldd|.left(s)|
|00001c70| 0a 09 63 6c 72 09 6c 65 | 66 74 28 73 29 0a 09 63 |..clr.le|ft(s)..c|
|00001c80| 6c 72 09 6c 65 66 74 2b | 31 28 73 29 0a 64 69 76 |lr.left+|1(s).div|
|00001c90| 31 3a 09 73 75 62 64 09 | 72 69 67 68 74 28 73 29 |1:.subd.|right(s)|
|00001ca0| 09 7c 20 63 68 65 63 6b | 20 73 75 62 74 72 61 63 |.| check| subtrac|
|00001cb0| 74 0a 09 62 63 63 09 64 | 69 76 32 0a 09 61 64 64 |t..bcc.d|iv2..add|
|00001cc0| 64 09 72 69 67 68 74 28 | 73 29 0a 09 61 6e 64 63 |d.right(|s)..andc|
|00001cd0| 63 09 23 7e 43 41 52 52 | 59 0a 09 62 72 61 09 64 |c.#~CARR|Y..bra.d|
|00001ce0| 69 76 33 0a 64 69 76 32 | 3a 09 6f 72 63 63 09 23 |iv3.div2|:.orcc.#|
|00001cf0| 43 41 52 52 59 0a 64 69 | 76 33 3a 09 72 6f 6c 09 |CARRY.di|v3:.rol.|
|00001d00| 6c 65 66 74 2b 31 28 73 | 29 09 7c 20 72 6f 6c 6c |left+1(s|).| roll|
|00001d10| 20 69 6e 20 63 61 72 72 | 79 0a 09 72 6f 6c 09 6c | in carr|y..rol.l|
|00001d20| 65 66 74 28 73 29 0a 09 | 6c 73 72 09 72 69 67 68 |eft(s)..|lsr.righ|
|00001d30| 74 28 73 29 0a 09 72 6f | 72 09 72 69 67 68 74 2b |t(s)..ro|r.right+|
|00001d40| 31 28 73 29 0a 09 64 65 | 63 09 63 6f 75 6e 74 28 |1(s)..de|c.count(|
|00001d50| 73 29 0a 09 62 6e 65 09 | 64 69 76 31 0a 09 6c 64 |s)..bne.|div1..ld|
|00001d60| 64 09 6c 65 66 74 28 73 | 29 0a 09 74 73 74 09 73 |d.left(s|)..tst.s|
|00001d70| 69 67 6e 28 73 29 09 09 | 7c 20 73 69 67 6e 20 66 |ign(s)..|| sign f|
|00001d80| 69 64 64 6c 65 0a 09 62 | 65 71 09 6e 6f 63 68 67 |iddle..b|eq.nochg|
|00001d90| 0a 09 6e 65 67 61 0a 09 | 6e 65 67 62 0a 09 73 62 |..nega..|negb..sb|
|00001da0| 63 61 09 23 30 0a 6e 6f | 63 68 67 3a 09 73 74 64 |ca.#0.no|chg:.std|
|00001db0| 09 72 69 67 68 74 28 73 | 29 09 7c 20 6d 6f 76 65 |.right(s|).| move|
|00001dc0| 20 72 65 74 75 72 6e 20 | 61 64 64 72 0a 09 6c 64 | return |addr..ld|
|00001dd0| 64 09 72 65 74 75 72 6e | 28 73 29 0a 09 73 74 64 |d.return|(s)..std|
|00001de0| 09 6c 65 66 74 28 73 29 | 0a 09 6c 64 64 09 72 69 |.left(s)|..ldd.ri|
|00001df0| 67 68 74 28 73 29 0a 09 | 6c 65 61 73 09 36 28 73 |ght(s)..|leas.6(s|
|00001e00| 29 0a 09 72 74 73 0a 53 | 48 41 52 5f 45 4f 46 0a |)..rts.S|HAR_EOF.|
|00001e10| 69 66 20 74 65 73 74 20 | 38 31 32 20 2d 6e 65 20 |if test |812 -ne |
|00001e20| 22 60 77 63 20 2d 63 20 | 3c 20 27 36 38 30 39 2f |"`wc -c |< '6809/|
|00001e30| 73 64 69 76 2e 75 27 60 | 22 0a 74 68 65 6e 0a 09 |sdiv.u'`|".then..|
|00001e40| 65 63 68 6f 20 73 68 61 | 72 3a 20 65 72 72 6f 72 |echo sha|r: error|
|00001e50| 20 74 72 61 6e 73 6d 69 | 74 74 69 6e 67 20 22 27 | transmi|tting "'|
|00001e60| 36 38 30 39 2f 73 64 69 | 76 2e 75 27 22 20 27 28 |6809/sdi|v.u'" '(|
|00001e70| 73 68 6f 75 6c 64 20 68 | 61 76 65 20 62 65 65 6e |should h|ave been|
|00001e80| 20 38 31 32 20 63 68 61 | 72 61 63 74 65 72 73 29 | 812 cha|racters)|
|00001e90| 27 0a 66 69 0a 66 69 0a | 65 63 68 6f 20 73 68 61 |'.fi.fi.|echo sha|
|00001ea0| 72 3a 20 65 78 74 72 61 | 63 74 69 6e 67 20 22 27 |r: extra|cting "'|
|00001eb0| 36 38 30 39 2f 73 68 69 | 66 74 2e 75 27 22 20 27 |6809/shi|ft.u'" '|
|00001ec0| 28 33 31 37 20 63 68 61 | 72 61 63 74 65 72 73 29 |(317 cha|racters)|
|00001ed0| 27 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 36 38 |'.if tes|t -f '68|
|00001ee0| 30 39 2f 73 68 69 66 74 | 2e 75 27 0a 74 68 65 6e |09/shift|.u'.then|
|00001ef0| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00001f00| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00001f10| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00001f20| 27 36 38 30 39 2f 73 68 | 69 66 74 2e 75 27 22 0a |'6809/sh|ift.u'".|
|00001f30| 65 6c 73 65 0a 63 61 74 | 20 3c 3c 20 5c 53 48 41 |else.cat| << \SHA|
|00001f40| 52 5f 45 4f 46 20 3e 20 | 27 36 38 30 39 2f 73 68 |R_EOF > |'6809/sh|
|00001f50| 69 66 74 2e 75 27 0a 7c | 09 53 68 69 66 74 20 73 |ift.u'.||.Shift s|
|00001f60| 75 70 70 6f 72 74 20 66 | 6f 72 20 53 6d 61 6c 6c |upport f|or Small|
|00001f70| 20 43 20 76 31 20 73 61 | 30 39 0a 2e 67 6c 6f 62 | C v1 sa|09..glob|
|00001f80| 6c 09 61 73 72 0a 61 73 | 72 3a 09 74 73 74 62 0a |l.asr.as|r:.tstb.|
|00001f90| 09 62 67 65 09 6f 6b 72 | 0a 09 6e 65 67 62 0a 09 |.bge.okr|..negb..|
|00001fa0| 62 72 61 09 61 73 6c 0a | 6f 6b 72 3a 09 69 6e 63 |bra.asl.|okr:.inc|
|00001fb0| 62 0a 09 70 73 68 73 09 | 62 0a 09 6c 64 64 09 33 |b..pshs.|b..ldd.3|
|00001fc0| 28 73 29 0a 61 73 72 6c | 3a 09 64 65 63 09 28 73 |(s).asrl|:.dec.(s|
|00001fd0| 29 0a 09 62 65 71 09 72 | 65 74 75 72 6e 0a 09 61 |)..beq.r|eturn..a|
|00001fe0| 73 72 61 0a 09 72 6f 72 | 62 0a 09 62 72 61 09 61 |sra..ror|b..bra.a|
|00001ff0| 73 72 6c 0a 0a 2e 67 6c | 6f 62 6c 09 61 73 6c 0a |srl...gl|obl.asl.|
|00002000| 61 73 6c 3a 09 74 73 74 | 62 0a 09 62 67 65 09 6f |asl:.tst|b..bge.o|
|00002010| 6b 6c 0a 09 6e 65 67 62 | 0a 09 62 72 61 09 61 73 |kl..negb|..bra.as|
|00002020| 72 0a 6f 6b 6c 3a 09 69 | 6e 63 62 0a 09 70 73 68 |r.okl:.i|ncb..psh|
|00002030| 73 09 62 0a 09 6c 64 64 | 09 33 28 73 29 0a 61 73 |s.b..ldd|.3(s).as|
|00002040| 6c 6c 3a 09 64 65 63 09 | 28 73 29 0a 09 62 65 71 |ll:.dec.|(s)..beq|
|00002050| 09 72 65 74 75 72 6e 0a | 09 61 73 6c 62 0a 09 72 |.return.|.aslb..r|
|00002060| 6f 6c 61 0a 09 62 72 61 | 09 61 73 6c 6c 0a 0a 72 |ola..bra|.asll..r|
|00002070| 65 74 75 72 6e 3a 09 6c | 64 78 09 31 28 73 29 0a |eturn:.l|dx.1(s).|
|00002080| 09 6c 65 61 73 09 35 28 | 73 29 0a 09 6a 6d 70 09 |.leas.5(|s)..jmp.|
|00002090| 28 78 29 0a 53 48 41 52 | 5f 45 4f 46 0a 69 66 20 |(x).SHAR|_EOF.if |
|000020a0| 74 65 73 74 20 33 31 37 | 20 2d 6e 65 20 22 60 77 |test 317| -ne "`w|
|000020b0| 63 20 2d 63 20 3c 20 27 | 36 38 30 39 2f 73 68 69 |c -c < '|6809/shi|
|000020c0| 66 74 2e 75 27 60 22 0a | 74 68 65 6e 0a 09 65 63 |ft.u'`".|then..ec|
|000020d0| 68 6f 20 73 68 61 72 3a | 20 65 72 72 6f 72 20 74 |ho shar:| error t|
|000020e0| 72 61 6e 73 6d 69 74 74 | 69 6e 67 20 22 27 36 38 |ransmitt|ing "'68|
|000020f0| 30 39 2f 73 68 69 66 74 | 2e 75 27 22 20 27 28 73 |09/shift|.u'" '(s|
|00002100| 68 6f 75 6c 64 20 68 61 | 76 65 20 62 65 65 6e 20 |hould ha|ve been |
|00002110| 33 31 37 20 63 68 61 72 | 61 63 74 65 72 73 29 27 |317 char|acters)'|
|00002120| 0a 66 69 0a 66 69 0a 65 | 63 68 6f 20 73 68 61 72 |.fi.fi.e|cho shar|
|00002130| 3a 20 65 78 74 72 61 63 | 74 69 6e 67 20 22 27 36 |: extrac|ting "'6|
|00002140| 38 30 39 2f 73 6d 6f 64 | 2e 75 27 22 20 27 28 37 |809/smod|.u'" '(7|
|00002150| 39 36 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |96 chara|cters)'.|
|00002160| 69 66 20 74 65 73 74 20 | 2d 66 20 27 36 38 30 39 |if test |-f '6809|
|00002170| 2f 73 6d 6f 64 2e 75 27 | 0a 74 68 65 6e 0a 09 65 |/smod.u'|.then..e|
|00002180| 63 68 6f 20 73 68 61 72 | 3a 20 77 69 6c 6c 20 6e |cho shar|: will n|
|00002190| 6f 74 20 6f 76 65 72 2d | 77 72 69 74 65 20 65 78 |ot over-|write ex|
|000021a0| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 22 27 36 38 |isting f|ile "'68|
|000021b0| 30 39 2f 73 6d 6f 64 2e | 75 27 22 0a 65 6c 73 65 |09/smod.|u'".else|
|000021c0| 0a 63 61 74 20 3c 3c 20 | 5c 53 48 41 52 5f 45 4f |.cat << |\SHAR_EO|
|000021d0| 46 20 3e 20 27 36 38 30 | 39 2f 73 6d 6f 64 2e 75 |F > '680|9/smod.u|
|000021e0| 27 0a 7c 09 73 69 67 6e | 65 64 20 6d 6f 64 0a 7c |'.|.sign|ed mod.||
|000021f0| 09 63 61 6c 6c 69 6e 67 | 3a 20 28 6c 65 66 74 20 |.calling|: (left |
|00002200| 2f 20 72 69 67 68 74 29 | 0a 7c 09 09 70 75 73 68 |/ right)|.|..push|
|00002210| 20 6c 65 66 74 0a 7c 09 | 09 6c 64 64 20 72 69 67 | left.|.|.ldd rig|
|00002220| 68 74 0a 7c 09 09 6a 73 | 72 20 73 6d 6f 64 0a 7c |ht.|..js|r smod.||
|00002230| 09 72 65 73 75 6c 74 20 | 69 6e 20 64 2c 20 61 72 |.result |in d, ar|
|00002240| 67 20 70 6f 70 70 65 64 | 2e 0a 7c 0a 09 6c 65 66 |g popped|..|..lef|
|00002250| 74 3d 36 0a 09 72 69 67 | 68 74 3d 32 0a 09 73 69 |t=6..rig|ht=2..si|
|00002260| 67 6e 3d 31 0a 09 63 6f | 75 6e 74 3d 30 0a 09 72 |gn=1..co|unt=0..r|
|00002270| 65 74 75 72 6e 3d 34 0a | 09 43 41 52 52 59 3d 31 |eturn=4.|.CARRY=1|
|00002280| 0a 2e 67 6c 6f 62 6c 20 | 73 6d 6f 64 2c 6d 6f 64 |..globl |smod,mod|
|00002290| 2c 41 53 53 45 52 54 46 | 41 49 4c 0a 2e 67 6c 6f |,ASSERTF|AIL..glo|
|000022a0| 62 6c 20 6d 72 61 62 73 | 0a 73 6d 6f 64 3a 09 6c |bl mrabs|.smod:.l|
|000022b0| 65 61 73 09 2d 34 28 73 | 29 0a 09 73 74 64 09 72 |eas.-4(s|)..std.r|
|000022c0| 69 67 68 74 28 73 29 0a | 09 62 6e 65 09 6e 6f 7a |ight(s).|.bne.noz|
|000022d0| 65 72 6f 0a 09 73 77 69 | 32 0a 09 2e 62 79 74 65 |ero..swi|2...byte|
|000022e0| 09 41 53 53 45 52 54 46 | 41 49 4c 0a 6e 6f 7a 65 |.ASSERTF|AIL.noze|
|000022f0| 72 6f 3a 09 6a 73 72 09 | 6d 72 61 62 73 0a 6d 6f |ro:.jsr.|mrabs.mo|
|00002300| 64 3a 09 63 6c 72 09 63 | 6f 75 6e 74 28 73 29 09 |d:.clr.c|ount(s).|
|00002310| 7c 20 70 72 65 73 63 61 | 6c 65 20 64 69 76 69 73 || presca|le divis|
|00002320| 6f 72 0a 09 69 6e 63 09 | 63 6f 75 6e 74 28 73 29 |or..inc.|count(s)|
|00002330| 0a 6d 73 63 6c 3a 09 69 | 6e 63 09 63 6f 75 6e 74 |.mscl:.i|nc.count|
|00002340| 28 73 29 0a 09 61 73 6c | 62 0a 09 72 6f 6c 61 0a |(s)..asl|b..rola.|
|00002350| 09 62 70 6c 09 6d 73 63 | 6c 0a 09 73 74 64 09 72 |.bpl.msc|l..std.r|
|00002360| 69 67 68 74 28 73 29 0a | 09 6c 64 64 09 6c 65 66 |ight(s).|.ldd.lef|
|00002370| 74 28 73 29 0a 09 63 6c | 72 09 6c 65 66 74 28 73 |t(s)..cl|r.left(s|
|00002380| 29 0a 09 63 6c 72 09 6c | 65 66 74 2b 31 28 73 29 |)..clr.l|eft+1(s)|
|00002390| 0a 6d 6f 64 31 3a 09 73 | 75 62 64 09 72 69 67 68 |.mod1:.s|ubd.righ|
|000023a0| 74 28 73 29 09 7c 20 63 | 68 65 63 6b 20 73 75 62 |t(s).| c|heck sub|
|000023b0| 74 72 61 63 74 0a 09 62 | 63 63 09 6d 6f 64 32 0a |tract..b|cc.mod2.|
|000023c0| 09 61 64 64 64 09 72 69 | 67 68 74 28 73 29 0a 09 |.addd.ri|ght(s)..|
|000023d0| 61 6e 64 63 63 09 23 7e | 43 41 52 52 59 0a 09 62 |andcc.#~|CARRY..b|
|000023e0| 72 61 09 6d 6f 64 33 0a | 6d 6f 64 32 3a 09 6f 72 |ra.mod3.|mod2:.or|
|000023f0| 63 63 09 23 43 41 52 52 | 59 0a 6d 6f 64 33 3a 09 |cc.#CARR|Y.mod3:.|
|00002400| 72 6f 6c 09 6c 65 66 74 | 2b 31 28 73 29 09 7c 20 |rol.left|+1(s).| |
|00002410| 72 6f 6c 6c 20 69 6e 20 | 63 61 72 72 79 0a 09 72 |roll in |carry..r|
|00002420| 6f 6c 09 6c 65 66 74 28 | 73 29 0a 09 6c 73 72 09 |ol.left(|s)..lsr.|
|00002430| 72 69 67 68 74 28 73 29 | 0a 09 72 6f 72 09 72 69 |right(s)|..ror.ri|
|00002440| 67 68 74 2b 31 28 73 29 | 0a 09 64 65 63 09 63 6f |ght+1(s)|..dec.co|
|00002450| 75 6e 74 28 73 29 0a 09 | 62 6e 65 09 6d 6f 64 31 |unt(s)..|bne.mod1|
|00002460| 0a 09 74 73 74 09 73 69 | 67 6e 28 73 29 09 09 7c |..tst.si|gn(s)..||
|00002470| 20 73 69 67 6e 20 66 69 | 64 64 6c 65 0a 09 62 65 | sign fi|ddle..be|
|00002480| 71 09 6e 6f 63 68 67 0a | 09 6e 65 67 61 0a 09 6e |q.nochg.|.nega..n|
|00002490| 65 67 62 0a 09 73 62 63 | 61 09 23 30 0a 6e 6f 63 |egb..sbc|a.#0.noc|
|000024a0| 68 67 3a 09 73 74 64 09 | 72 69 67 68 74 28 73 29 |hg:.std.|right(s)|
|000024b0| 09 7c 20 6d 6f 76 65 20 | 72 65 74 75 72 6e 20 61 |.| move |return a|
|000024c0| 64 64 72 0a 09 6c 64 64 | 09 72 65 74 75 72 6e 28 |ddr..ldd|.return(|
|000024d0| 73 29 0a 09 73 74 64 09 | 6c 65 66 74 28 73 29 0a |s)..std.|left(s).|
|000024e0| 09 6c 64 64 09 72 69 67 | 68 74 28 73 29 0a 09 6c |.ldd.rig|ht(s)..l|
|000024f0| 65 61 73 09 36 28 73 29 | 0a 09 72 74 73 0a 53 48 |eas.6(s)|..rts.SH|
|00002500| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 37 |AR_EOF.i|f test 7|
|00002510| 39 36 20 2d 6e 65 20 22 | 60 77 63 20 2d 63 20 3c |96 -ne "|`wc -c <|
|00002520| 20 27 36 38 30 39 2f 73 | 6d 6f 64 2e 75 27 60 22 | '6809/s|mod.u'`"|
|00002530| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|00002540| 3a 20 65 72 72 6f 72 20 | 74 72 61 6e 73 6d 69 74 |: error |transmit|
|00002550| 74 69 6e 67 20 22 27 36 | 38 30 39 2f 73 6d 6f 64 |ting "'6|809/smod|
|00002560| 2e 75 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |.u'" '(s|hould ha|
|00002570| 76 65 20 62 65 65 6e 20 | 37 39 36 20 63 68 61 72 |ve been |796 char|
|00002580| 61 63 74 65 72 73 29 27 | 0a 66 69 0a 66 69 0a 65 |acters)'|.fi.fi.e|
|00002590| 63 68 6f 20 73 68 61 72 | 3a 20 65 78 74 72 61 63 |cho shar|: extrac|
|000025a0| 74 69 6e 67 20 22 27 36 | 38 30 39 2f 73 75 6d 75 |ting "'6|809/sumu|
|000025b0| 6c 2e 75 27 22 20 27 28 | 35 39 31 20 63 68 61 72 |l.u'" '(|591 char|
|000025c0| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|000025d0| 20 2d 66 20 27 36 38 30 | 39 2f 73 75 6d 75 6c 2e | -f '680|9/sumul.|
|000025e0| 75 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |u'.then.|.echo sh|
|000025f0| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|00002600| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00002610| 20 66 69 6c 65 20 22 27 | 36 38 30 39 2f 73 75 6d | file "'|6809/sum|
|00002620| 75 6c 2e 75 27 22 0a 65 | 6c 73 65 0a 63 61 74 20 |ul.u'".e|lse.cat |
|00002630| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|00002640| 36 38 30 39 2f 73 75 6d | 75 6c 2e 75 27 0a 7c 09 |6809/sum|ul.u'.|.|
|00002650| 73 69 67 6e 65 64 2f 75 | 6e 73 69 67 6e 65 64 20 |signed/u|nsigned |
|00002660| 6d 75 6c 74 69 70 6c 79 | 0a 7c 09 63 61 6c 6c 69 |multiply|.|.calli|
|00002670| 6e 67 20 28 6c 65 66 74 | 20 2a 20 72 69 67 68 74 |ng (left| * right|
|00002680| 29 0a 7c 09 70 75 73 68 | 20 6c 65 66 74 0a 7c 09 |).|.push| left.|.|
|00002690| 6c 64 64 20 72 69 67 68 | 74 0a 7c 09 6a 73 72 20 |ldd righ|t.|.jsr |
|000026a0| 5b 75 7c 73 5d 6d 75 6c | 20 28 73 61 6d 65 20 65 |[u|s]mul| (same e|
|000026b0| 6e 74 72 79 20 70 6f 69 | 6e 74 29 0a 7c 09 72 65 |ntry poi|nt).|.re|
|000026c0| 73 75 6c 74 20 69 6e 20 | 64 2c 20 73 74 61 63 6b |sult in |d, stack|
|000026d0| 20 69 73 20 70 6f 70 70 | 65 64 0a 2e 67 6c 6f 62 | is popp|ed..glob|
|000026e0| 6c 20 73 6d 75 6c 2c 75 | 6d 75 6c 0a 73 6d 75 6c |l smul,u|mul.smul|
|000026f0| 3d 2e 0a 75 6d 75 6c 3a | 09 70 73 68 73 09 64 0a |=..umul:|.pshs.d.|
|00002700| 09 6c 64 61 09 32 2b 32 | 28 73 29 0a 09 6d 75 6c |.lda.2+2|(s)..mul|
|00002710| 09 09 7c 20 6c 65 66 74 | 20 6d 73 62 20 2a 20 72 |..| left| msb * r|
|00002720| 69 67 68 74 20 6c 73 62 | 0a 09 70 73 68 73 09 62 |ight lsb|..pshs.b|
|00002730| 09 7c 20 73 61 76 65 20 | 68 69 67 68 20 6f 72 64 |.| save |high ord|
|00002740| 65 72 0a 09 6c 64 62 09 | 2d 31 2b 33 28 73 29 09 |er..ldb.|-1+3(s).|
|00002750| 7c 20 72 69 67 68 74 20 | 6c 73 62 0a 09 6c 64 61 || right |lsb..lda|
|00002760| 09 33 2b 33 28 73 29 09 | 7c 20 6c 65 66 74 20 6c |.3+3(s).|| left l|
|00002770| 73 62 0a 09 6d 75 6c 0a | 09 70 73 68 73 09 64 0a |sb..mul.|.pshs.d.|
|00002780| 09 6c 64 61 09 33 2b 35 | 28 73 29 09 7c 20 6c 65 |.lda.3+5|(s).| le|
|00002790| 66 74 20 6c 73 62 0a 09 | 6c 64 62 09 2d 32 2b 35 |ft lsb..|ldb.-2+5|
|000027a0| 28 73 29 09 7c 20 72 69 | 67 68 74 20 6d 73 62 0a |(s).| ri|ght msb.|
|000027b0| 09 62 65 71 09 73 6d 61 | 6c 6c 09 7c 20 69 73 20 |.beq.sma|ll.| is |
|000027c0| 7a 65 72 6f 3f 0a 09 6d | 75 6c 09 09 7c 20 6e 6f |zero?..m|ul..| no|
|000027d0| 2c 20 67 6f 74 74 61 20 | 64 6f 20 69 74 20 74 6f |, gotta |do it to|
|000027e0| 6f 0a 09 74 66 72 09 62 | 2c 61 0a 09 63 6c 72 62 |o..tfr.b|,a..clrb|
|000027f0| 0a 09 61 64 64 64 09 28 | 73 29 2b 2b 09 7c 20 70 |..addd.(|s)++.| p|
|00002800| 61 72 74 69 61 6c 20 70 | 72 6f 64 0a 09 62 72 61 |artial p|rod..bra|
|00002810| 09 62 69 67 0a 73 6d 61 | 6c 6c 3a 09 70 75 6c 73 |.big.sma|ll:.puls|
|00002820| 09 64 09 7c 20 61 68 61 | 21 20 64 6f 6e 27 74 20 |.d.| aha|! don't |
|00002830| 6e 65 65 64 20 74 68 69 | 72 64 20 6d 75 6c 0a 62 |need thi|rd mul.b|
|00002840| 69 67 3a 09 61 64 64 61 | 09 28 73 29 2b 0a 09 70 |ig:.adda|.(s)+..p|
|00002850| 73 68 73 09 64 0a 09 6c | 64 64 09 34 28 73 29 09 |shs.d..l|dd.4(s).|
|00002860| 7c 20 72 65 61 72 72 61 | 6e 67 65 20 72 65 74 75 || rearra|nge retu|
|00002870| 72 6e 20 61 64 64 72 65 | 73 73 0a 09 73 74 64 09 |rn addre|ss..std.|
|00002880| 36 28 73 29 0a 09 70 75 | 6c 73 09 64 0a 09 6c 65 |6(s)..pu|ls.d..le|
|00002890| 61 73 09 34 28 73 29 0a | 09 72 74 73 0a 53 48 41 |as.4(s).|.rts.SHA|
|000028a0| 52 5f 45 4f 46 0a 69 66 | 20 74 65 73 74 20 35 39 |R_EOF.if| test 59|
|000028b0| 31 20 2d 6e 65 20 22 60 | 77 63 20 2d 63 20 3c 20 |1 -ne "`|wc -c < |
|000028c0| 27 36 38 30 39 2f 73 75 | 6d 75 6c 2e 75 27 60 22 |'6809/su|mul.u'`"|
|000028d0| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|000028e0| 3a 20 65 72 72 6f 72 20 | 74 72 61 6e 73 6d 69 74 |: error |transmit|
|000028f0| 74 69 6e 67 20 22 27 36 | 38 30 39 2f 73 75 6d 75 |ting "'6|809/sumu|
|00002900| 6c 2e 75 27 22 20 27 28 | 73 68 6f 75 6c 64 20 68 |l.u'" '(|should h|
|00002910| 61 76 65 20 62 65 65 6e | 20 35 39 31 20 63 68 61 |ave been| 591 cha|
|00002920| 72 61 63 74 65 72 73 29 | 27 0a 66 69 0a 66 69 0a |racters)|'.fi.fi.|
|00002930| 65 63 68 6f 20 73 68 61 | 72 3a 20 64 6f 6e 65 20 |echo sha|r: done |
|00002940| 77 69 74 68 20 64 69 72 | 65 63 74 6f 72 79 20 22 |with dir|ectory "|
|00002950| 27 36 38 30 39 27 22 0a | 69 66 20 74 65 73 74 20 |'6809'".|if test |
|00002960| 21 20 2d 64 20 27 38 30 | 38 30 27 0a 74 68 65 6e |! -d '80|80'.then|
|00002970| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 63 72 65 |..echo s|har: cre|
|00002980| 61 74 69 6e 67 20 64 69 | 72 65 63 74 6f 72 79 20 |ating di|rectory |
|00002990| 22 27 38 30 38 30 27 22 | 0a 09 6d 6b 64 69 72 20 |"'8080'"|..mkdir |
|000029a0| 27 38 30 38 30 27 0a 66 | 69 0a 65 63 68 6f 20 73 |'8080'.f|i.echo s|
|000029b0| 68 61 72 3a 20 65 78 74 | 72 61 63 74 69 6e 67 20 |har: ext|racting |
|000029c0| 22 27 38 30 38 30 2f 4d | 61 6b 65 66 69 6c 65 27 |"'8080/M|akefile'|
|000029d0| 22 20 27 28 31 32 39 20 | 63 68 61 72 61 63 74 65 |" '(129 |characte|
|000029e0| 72 73 29 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |rs)'.if |test -f |
|000029f0| 27 38 30 38 30 2f 4d 61 | 6b 65 66 69 6c 65 27 0a |'8080/Ma|kefile'.|
|00002a00| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00002a10| 20 77 69 6c 6c 20 6e 6f | 74 20 6f 76 65 72 2d 77 | will no|t over-w|
|00002a20| 72 69 74 65 20 65 78 69 | 73 74 69 6e 67 20 66 69 |rite exi|sting fi|
|00002a30| 6c 65 20 22 27 38 30 38 | 30 2f 4d 61 6b 65 66 69 |le "'808|0/Makefi|
|00002a40| 6c 65 27 22 0a 65 6c 73 | 65 0a 63 61 74 20 3c 3c |le'".els|e.cat <<|
|00002a50| 20 5c 53 48 41 52 5f 45 | 4f 46 20 3e 20 27 38 30 | \SHAR_E|OF > '80|
|00002a60| 38 30 2f 4d 61 6b 65 66 | 69 6c 65 27 0a 2e 53 55 |80/Makef|ile'..SU|
|00002a70| 46 46 49 58 45 53 3a 09 | 2e 6f 20 2e 63 20 2e 61 |FFIXES:.|.o .c .a|
|00002a80| 73 6d 0a 0a 41 53 53 45 | 4d 53 20 3d 20 62 64 6f |sm..ASSE|MS = bdo|
|00002a90| 73 2e 61 73 6d 20 62 64 | 6f 73 31 2e 61 73 6d 20 |s.asm bd|os1.asm |
|00002aa0| 63 68 69 6f 38 30 38 30 | 2e 61 73 6d 20 65 78 69 |chio8080|.asm exi|
|00002ab0| 74 2e 61 73 6d 20 69 6f | 38 30 38 30 2e 61 73 6d |t.asm io|8080.asm|
|00002ac0| 20 73 62 72 6b 2e 61 73 | 6d 0a 0a 2e 63 2e 61 73 | sbrk.as|m...c.as|
|00002ad0| 6d 3a 0a 09 74 73 63 63 | 09 24 2a 2e 63 0a 0a 61 |m:..tscc|.$*.c..a|
|00002ae0| 6c 6c 3a 09 24 28 41 53 | 53 45 4d 53 29 0a 53 48 |ll:.$(AS|SEMS).SH|
|00002af0| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 31 |AR_EOF.i|f test 1|
|00002b00| 32 39 20 2d 6e 65 20 22 | 60 77 63 20 2d 63 20 3c |29 -ne "|`wc -c <|
|00002b10| 20 27 38 30 38 30 2f 4d | 61 6b 65 66 69 6c 65 27 | '8080/M|akefile'|
|00002b20| 60 22 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |`".then.|.echo sh|
|00002b30| 61 72 3a 20 65 72 72 6f | 72 20 74 72 61 6e 73 6d |ar: erro|r transm|
|00002b40| 69 74 74 69 6e 67 20 22 | 27 38 30 38 30 2f 4d 61 |itting "|'8080/Ma|
|00002b50| 6b 65 66 69 6c 65 27 22 | 20 27 28 73 68 6f 75 6c |kefile'"| '(shoul|
|00002b60| 64 20 68 61 76 65 20 62 | 65 65 6e 20 31 32 39 20 |d have b|een 129 |
|00002b70| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 66 69 0a |characte|rs)'.fi.|
|00002b80| 66 69 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 65 78 |fi.echo |shar: ex|
|00002b90| 74 72 61 63 74 69 6e 67 | 20 22 27 38 30 38 30 2f |tracting| "'8080/|
|00002ba0| 61 72 67 6c 69 73 74 2e | 63 27 22 20 27 28 36 36 |arglist.|c'" '(66|
|00002bb0| 37 20 63 68 61 72 61 63 | 74 65 72 73 29 27 0a 69 |7 charac|ters)'.i|
|00002bc0| 66 20 74 65 73 74 20 2d | 66 20 27 38 30 38 30 2f |f test -|f '8080/|
|00002bd0| 61 72 67 6c 69 73 74 2e | 63 27 0a 74 68 65 6e 0a |arglist.|c'.then.|
|00002be0| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 77 69 6c 6c |.echo sh|ar: will|
|00002bf0| 20 6e 6f 74 20 6f 76 65 | 72 2d 77 72 69 74 65 20 | not ove|r-write |
|00002c00| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 22 27 |existing| file "'|
|00002c10| 38 30 38 30 2f 61 72 67 | 6c 69 73 74 2e 63 27 22 |8080/arg|list.c'"|
|00002c20| 0a 65 6c 73 65 0a 63 61 | 74 20 3c 3c 20 5c 53 48 |.else.ca|t << \SH|
|00002c30| 41 52 5f 45 4f 46 20 3e | 20 27 38 30 38 30 2f 61 |AR_EOF >| '8080/a|
|00002c40| 72 67 6c 69 73 74 2e 63 | 27 0a 2f 2a 09 49 6e 74 |rglist.c|'./*.Int|
|00002c50| 65 72 70 72 65 74 20 43 | 50 4d 20 61 72 67 75 6d |erpret C|PM argum|
|00002c60| 65 6e 74 20 6c 69 73 74 | 20 74 6f 20 70 72 6f 64 |ent list| to prod|
|00002c70| 75 63 65 20 43 20 73 74 | 79 6c 65 0a 09 61 72 67 |uce C st|yle..arg|
|00002c80| 63 2f 61 72 67 76 0a 09 | 64 65 66 61 75 6c 74 20 |c/argv..|default |
|00002c90| 64 6d 61 20 62 75 66 66 | 65 72 20 68 61 73 20 69 |dma buff|er has i|
|00002ca0| 74 2c 20 66 6f 72 6d 3a | 0a 09 2d 2d 2d 2d 2d 2d |t, form:|..------|
|00002cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0a 09 7c 63 6f |--------|---..|co|
|00002cd0| 75 6e 74 7c 63 68 61 72 | 61 63 74 65 72 73 20 20 |unt|char|acters |
|00002ce0| 2e 2e 2e 20 20 20 20 20 | 20 20 20 20 20 7c 0a 09 |... | |..|
|00002cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d10| 2d 0a 2a 2f 0a 69 6e 74 | 09 58 61 72 67 63 3b 0a |-.*/.int|.Xargc;.|
|00002d20| 69 6e 74 09 58 61 72 67 | 76 5b 33 30 5d 3b 0a 58 |int.Xarg|v[30];.X|
|00002d30| 61 72 67 6c 69 73 74 28 | 61 70 29 20 63 68 61 72 |arglist(|ap) char|
|00002d40| 20 2a 61 70 3b 20 7b 0a | 09 63 68 61 72 20 71 63 | *ap; {.|.char qc|
|00002d50| 3b 0a 09 58 61 72 67 63 | 20 3d 20 30 3b 0a 09 61 |;..Xargc| = 0;..a|
|00002d60| 70 5b 28 2a 61 70 29 2b | 31 5d 20 3d 20 27 5c 30 |p[(*ap)+|1] = '\0|
|00002d70| 27 3b 0a 09 61 70 2b 2b | 3b 0a 09 77 68 69 6c 65 |';..ap++|;..while|
|00002d80| 20 28 69 73 73 70 61 63 | 65 28 2a 61 70 29 29 20 | (isspac|e(*ap)) |
|00002d90| 61 70 2b 2b 3b 0a 09 58 | 61 72 67 76 5b 58 61 72 |ap++;..X|argv[Xar|
|00002da0| 67 63 2b 2b 5d 20 3d 20 | 22 61 72 67 30 22 3b 0a |gc++] = |"arg0";.|
|00002db0| 09 69 66 20 28 2a 61 70 | 29 0a 09 09 64 6f 20 7b |.if (*ap|)...do {|
|00002dc0| 0a 09 09 09 69 66 20 28 | 2a 61 70 20 3d 3d 20 27 |....if (|*ap == '|
|00002dd0| 5c 27 27 20 7c 7c 20 2a | 61 70 20 3d 3d 20 27 5c |\'' || *|ap == '\|
|00002de0| 22 27 29 20 7b 0a 09 09 | 09 09 71 63 20 3d 20 2a |"') {...|..qc = *|
|00002df0| 61 70 3b 0a 09 09 09 09 | 58 61 72 67 76 5b 58 61 |ap;.....|Xargv[Xa|
|00002e00| 72 67 63 2b 2b 5d 20 3d | 20 2b 2b 61 70 3b 0a 09 |rgc++] =| ++ap;..|
|00002e10| 09 09 09 77 68 69 6c 65 | 20 28 2a 61 70 26 26 2a |...while| (*ap&&*|
|00002e20| 61 70 20 21 3d 20 71 63 | 29 20 61 70 2b 2b 3b 0a |ap != qc|) ap++;.|
|00002e30| 09 09 09 7d 20 65 6c 73 | 65 20 7b 0a 09 09 09 09 |...} els|e {.....|
|00002e40| 58 61 72 67 76 5b 58 61 | 72 67 63 2b 2b 5d 20 3d |Xargv[Xa|rgc++] =|
|00002e50| 20 61 70 3b 0a 09 09 09 | 09 77 68 69 6c 65 20 28 | ap;....|.while (|
|00002e60| 2a 61 70 26 26 21 69 73 | 73 70 61 63 65 28 2a 61 |*ap&&!is|space(*a|
|00002e70| 70 29 29 20 61 70 2b 2b | 3b 0a 09 09 09 7d 0a 09 |p)) ap++|;....}..|
|00002e80| 09 09 69 66 20 28 21 2a | 61 70 29 20 62 72 65 61 |..if (!*|ap) brea|
|00002e90| 6b 3b 0a 09 09 09 2a 61 | 70 2b 2b 3d 27 5c 30 27 |k;....*a|p++='\0'|
|00002ea0| 3b 0a 09 09 09 77 68 69 | 6c 65 20 28 69 73 73 70 |;....whi|le (issp|
|00002eb0| 61 63 65 28 2a 61 70 29 | 29 20 61 70 2b 2b 3b 0a |ace(*ap)|) ap++;.|
|00002ec0| 09 09 7d 20 77 68 69 6c | 65 28 2a 61 70 29 3b 0a |..} whil|e(*ap);.|
|00002ed0| 09 58 61 72 67 76 5b 58 | 61 72 67 63 5d 20 3d 20 |.Xargv[X|argc] = |
|00002ee0| 30 3b 0a 7d 0a 53 48 41 | 52 5f 45 4f 46 0a 69 66 |0;.}.SHA|R_EOF.if|
|00002ef0| 20 74 65 73 74 20 36 36 | 37 20 2d 6e 65 20 22 60 | test 66|7 -ne "`|
|00002f00| 77 63 20 2d 63 20 3c 20 | 27 38 30 38 30 2f 61 72 |wc -c < |'8080/ar|
|00002f10| 67 6c 69 73 74 2e 63 27 | 60 22 0a 74 68 65 6e 0a |glist.c'|`".then.|
|00002f20| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|00002f30| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|00002f40| 27 38 30 38 30 2f 61 72 | 67 6c 69 73 74 2e 63 27 |'8080/ar|glist.c'|
|00002f50| 22 20 27 28 73 68 6f 75 | 6c 64 20 68 61 76 65 20 |" '(shou|ld have |
|00002f60| 62 65 65 6e 20 36 36 37 | 20 63 68 61 72 61 63 74 |been 667| charact|
|00002f70| 65 72 73 29 27 0a 66 69 | 0a 66 69 0a 65 63 68 6f |ers)'.fi|.fi.echo|
|00002f80| 20 73 68 61 72 3a 20 65 | 78 74 72 61 63 74 69 6e | shar: e|xtractin|
|00002f90| 67 20 22 27 38 30 38 30 | 2f 62 64 6f 73 2e 63 27 |g "'8080|/bdos.c'|
|00002fa0| 22 20 27 28 32 37 39 20 | 63 68 61 72 61 63 74 65 |" '(279 |characte|
|00002fb0| 72 73 29 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |rs)'.if |test -f |
|00002fc0| 27 38 30 38 30 2f 62 64 | 6f 73 2e 63 27 0a 74 68 |'8080/bd|os.c'.th|
|00002fd0| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 77 |en..echo| shar: w|
|00002fe0| 69 6c 6c 20 6e 6f 74 20 | 6f 76 65 72 2d 77 72 69 |ill not |over-wri|
|00002ff0| 74 65 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |te exist|ing file|
|00003000| 20 22 27 38 30 38 30 2f | 62 64 6f 73 2e 63 27 22 | "'8080/|bdos.c'"|
|00003010| 0a 65 6c 73 65 0a 63 61 | 74 20 3c 3c 20 5c 53 48 |.else.ca|t << \SH|
|00003020| 41 52 5f 45 4f 46 20 3e | 20 27 38 30 38 30 2f 62 |AR_EOF >| '8080/b|
|00003030| 64 6f 73 2e 63 27 0a 62 | 64 6f 73 20 28 63 2c 20 |dos.c'.b|dos (c, |
|00003040| 64 65 29 20 69 6e 74 20 | 63 2c 20 64 65 3b 20 7b |de) int |c, de; {|
|00003050| 0a 23 61 73 6d 0a 3b 09 | 43 50 2f 4d 20 73 75 70 |.#asm.;.|CP/M sup|
|00003060| 70 6f 72 74 20 72 6f 75 | 74 69 6e 65 0a 3b 09 62 |port rou|tine.;.b|
|00003070| 64 6f 73 28 43 2c 44 45 | 29 3b 0a 3b 09 63 68 61 |dos(C,DE|);.;.cha|
|00003080| 72 20 2a 44 45 3b 20 69 | 6e 74 20 43 3b 0a 3b 09 |r *DE; i|nt C;.;.|
|00003090| 72 65 74 75 72 6e 73 20 | 48 3d 42 2c 4c 3d 41 20 |returns |H=B,L=A |
|000030a0| 70 65 72 20 43 50 4d 20 | 73 74 61 6e 64 61 72 64 |per CPM |standard|
|000030b0| 0a 09 70 6f 70 09 68 09 | 3b 20 68 6f 6c 64 20 72 |..pop.h.|; hold r|
|000030c0| 65 74 75 72 6e 20 61 64 | 64 72 65 73 73 0a 09 70 |eturn ad|dress..p|
|000030d0| 6f 70 09 64 09 3b 20 67 | 65 74 20 62 64 6f 73 20 |op.d.; g|et bdos |
|000030e0| 66 75 6e 63 74 69 6f 6e | 20 6e 75 6d 62 65 72 0a |function| number.|
|000030f0| 09 70 6f 70 09 62 09 3b | 20 67 65 74 20 44 45 20 |.pop.b.;| get DE |
|00003100| 72 65 67 69 73 74 65 72 | 20 61 72 67 75 6d 65 6e |register| argumen|
|00003110| 74 0a 09 70 75 73 68 09 | 64 0a 09 70 75 73 68 09 |t..push.|d..push.|
|00003120| 62 0a 09 70 75 73 68 09 | 68 0a 09 63 61 6c 6c 09 |b..push.|h..call.|
|00003130| 35 0a 09 6d 6f 76 09 68 | 2c 62 0a 09 6d 6f 76 09 |5..mov.h|,b..mov.|
|00003140| 6c 2c 61 0a 23 65 6e 64 | 61 73 6d 0a 7d 0a 53 48 |l,a.#end|asm.}.SH|
|00003150| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 32 |AR_EOF.i|f test 2|
|00003160| 37 39 20 2d 6e 65 20 22 | 60 77 63 20 2d 63 20 3c |79 -ne "|`wc -c <|
|00003170| 20 27 38 30 38 30 2f 62 | 64 6f 73 2e 63 27 60 22 | '8080/b|dos.c'`"|
|00003180| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|00003190| 3a 20 65 72 72 6f 72 20 | 74 72 61 6e 73 6d 69 74 |: error |transmit|
|000031a0| 74 69 6e 67 20 22 27 38 | 30 38 30 2f 62 64 6f 73 |ting "'8|080/bdos|
|000031b0| 2e 63 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |.c'" '(s|hould ha|
|000031c0| 76 65 20 62 65 65 6e 20 | 32 37 39 20 63 68 61 72 |ve been |279 char|
|000031d0| 61 63 74 65 72 73 29 27 | 0a 66 69 0a 66 69 0a 65 |acters)'|.fi.fi.e|
|000031e0| 63 68 6f 20 73 68 61 72 | 3a 20 65 78 74 72 61 63 |cho shar|: extrac|
|000031f0| 74 69 6e 67 20 22 27 38 | 30 38 30 2f 62 64 6f 73 |ting "'8|080/bdos|
|00003200| 31 2e 63 27 22 20 27 28 | 31 30 35 20 63 68 61 72 |1.c'" '(|105 char|
|00003210| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|00003220| 20 2d 66 20 27 38 30 38 | 30 2f 62 64 6f 73 31 2e | -f '808|0/bdos1.|
|00003230| 63 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |c'.then.|.echo sh|
|00003240| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|00003250| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00003260| 20 66 69 6c 65 20 22 27 | 38 30 38 30 2f 62 64 6f | file "'|8080/bdo|
|00003270| 73 31 2e 63 27 22 0a 65 | 6c 73 65 0a 63 61 74 20 |s1.c'".e|lse.cat |
|00003280| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|00003290| 38 30 38 30 2f 62 64 6f | 73 31 2e 63 27 0a 62 64 |8080/bdo|s1.c'.bd|
|000032a0| 6f 73 31 28 63 2c 20 64 | 65 29 20 69 6e 74 20 63 |os1(c, d|e) int c|
|000032b0| 2c 20 64 65 3b 20 7b 0a | 09 2f 2a 20 72 65 74 75 |, de; {.|./* retu|
|000032c0| 72 6e 73 20 6f 6e 6c 79 | 20 73 69 6e 67 6c 65 20 |rns only| single |
|000032d0| 62 79 74 65 20 28 74 6f | 70 20 68 61 6c 66 20 69 |byte (to|p half i|
|000032e0| 73 20 30 29 20 2a 2f 0a | 09 72 65 74 75 72 6e 20 |s 0) */.|.return |
|000032f0| 28 32 35 35 20 26 20 62 | 64 6f 73 28 63 2c 20 64 |(255 & b|dos(c, d|
|00003300| 65 29 29 3b 0a 7d 0a 53 | 48 41 52 5f 45 4f 46 0a |e));.}.S|HAR_EOF.|
|00003310| 69 66 20 74 65 73 74 20 | 31 30 35 20 2d 6e 65 20 |if test |105 -ne |
|00003320| 22 60 77 63 20 2d 63 20 | 3c 20 27 38 30 38 30 2f |"`wc -c |< '8080/|
|00003330| 62 64 6f 73 31 2e 63 27 | 60 22 0a 74 68 65 6e 0a |bdos1.c'|`".then.|
|00003340| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|00003350| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|00003360| 27 38 30 38 30 2f 62 64 | 6f 73 31 2e 63 27 22 20 |'8080/bd|os1.c'" |
|00003370| 27 28 73 68 6f 75 6c 64 | 20 68 61 76 65 20 62 65 |'(should| have be|
|00003380| 65 6e 20 31 30 35 20 63 | 68 61 72 61 63 74 65 72 |en 105 c|haracter|
|00003390| 73 29 27 0a 66 69 0a 66 | 69 0a 65 63 68 6f 20 73 |s)'.fi.f|i.echo s|
|000033a0| 68 61 72 3a 20 65 78 74 | 72 61 63 74 69 6e 67 20 |har: ext|racting |
|000033b0| 22 27 38 30 38 30 2f 63 | 68 69 6f 38 30 38 30 2e |"'8080/c|hio8080.|
|000033c0| 63 27 22 20 27 28 31 32 | 35 20 63 68 61 72 61 63 |c'" '(12|5 charac|
|000033d0| 74 65 72 73 29 27 0a 69 | 66 20 74 65 73 74 20 2d |ters)'.i|f test -|
|000033e0| 66 20 27 38 30 38 30 2f | 63 68 69 6f 38 30 38 30 |f '8080/|chio8080|
|000033f0| 2e 63 27 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |.c'.then|..echo s|
|00003400| 68 61 72 3a 20 77 69 6c | 6c 20 6e 6f 74 20 6f 76 |har: wil|l not ov|
|00003410| 65 72 2d 77 72 69 74 65 | 20 65 78 69 73 74 69 6e |er-write| existin|
|00003420| 67 20 66 69 6c 65 20 22 | 27 38 30 38 30 2f 63 68 |g file "|'8080/ch|
|00003430| 69 6f 38 30 38 30 2e 63 | 27 22 0a 65 6c 73 65 0a |io8080.c|'".else.|
|00003440| 63 61 74 20 3c 3c 20 5c | 53 48 41 52 5f 45 4f 46 |cat << \|SHAR_EOF|
|00003450| 20 3e 20 27 38 30 38 30 | 2f 63 68 69 6f 38 30 38 | > '8080|/chio808|
|00003460| 30 2e 63 27 0a 23 64 65 | 66 69 6e 65 20 45 4f 4c |0.c'.#de|fine EOL|
|00003470| 20 31 30 0a 67 65 74 63 | 68 61 72 28 29 20 7b 0a | 10.getc|har() {.|
|00003480| 09 72 65 74 75 72 6e 20 | 28 62 64 6f 73 28 31 2c |.return |(bdos(1,|
|00003490| 31 29 29 3b 0a 7d 0a 0a | 70 75 74 63 68 61 72 20 |1));.}..|putchar |
|000034a0| 28 63 29 20 63 68 61 72 | 20 63 3b 20 7b 0a 09 69 |(c) char| c; {..i|
|000034b0| 66 20 28 63 20 3d 3d 20 | 45 4f 4c 29 09 62 64 6f |f (c == |EOL).bdo|
|000034c0| 73 28 32 2c 31 33 29 3b | 0a 09 62 64 6f 73 28 32 |s(2,13);|..bdos(2|
|000034d0| 2c 63 29 3b 0a 09 72 65 | 74 75 72 6e 20 63 3b 0a |,c);..re|turn c;.|
|000034e0| 7d 0a 53 48 41 52 5f 45 | 4f 46 0a 69 66 20 74 65 |}.SHAR_E|OF.if te|
|000034f0| 73 74 20 31 32 35 20 2d | 6e 65 20 22 60 77 63 20 |st 125 -|ne "`wc |
|00003500| 2d 63 20 3c 20 27 38 30 | 38 30 2f 63 68 69 6f 38 |-c < '80|80/chio8|
|00003510| 30 38 30 2e 63 27 60 22 | 0a 74 68 65 6e 0a 09 65 |080.c'`"|.then..e|
|00003520| 63 68 6f 20 73 68 61 72 | 3a 20 65 72 72 6f 72 20 |cho shar|: error |
|00003530| 74 72 61 6e 73 6d 69 74 | 74 69 6e 67 20 22 27 38 |transmit|ting "'8|
|00003540| 30 38 30 2f 63 68 69 6f | 38 30 38 30 2e 63 27 22 |080/chio|8080.c'"|
|00003550| 20 27 28 73 68 6f 75 6c | 64 20 68 61 76 65 20 62 | '(shoul|d have b|
|00003560| 65 65 6e 20 31 32 35 20 | 63 68 61 72 61 63 74 65 |een 125 |characte|
|00003570| 72 73 29 27 0a 66 69 0a | 66 69 0a 65 63 68 6f 20 |rs)'.fi.|fi.echo |
|00003580| 73 68 61 72 3a 20 65 78 | 74 72 61 63 74 69 6e 67 |shar: ex|tracting|
|00003590| 20 22 27 38 30 38 30 2f | 65 78 69 74 2e 63 27 22 | "'8080/|exit.c'"|
|000035a0| 20 27 28 35 31 20 63 68 | 61 72 61 63 74 65 72 73 | '(51 ch|aracters|
|000035b0| 29 27 0a 69 66 20 74 65 | 73 74 20 2d 66 20 27 38 |)'.if te|st -f '8|
|000035c0| 30 38 30 2f 65 78 69 74 | 2e 63 27 0a 74 68 65 6e |080/exit|.c'.then|
|000035d0| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|000035e0| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|000035f0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00003600| 27 38 30 38 30 2f 65 78 | 69 74 2e 63 27 22 0a 65 |'8080/ex|it.c'".e|
|00003610| 6c 73 65 0a 63 61 74 20 | 3c 3c 20 5c 53 48 41 52 |lse.cat |<< \SHAR|
|00003620| 5f 45 4f 46 20 3e 20 27 | 38 30 38 30 2f 65 78 69 |_EOF > '|8080/exi|
|00003630| 74 2e 63 27 0a 65 78 69 | 74 28 72 65 74 63 6f 64 |t.c'.exi|t(retcod|
|00003640| 65 29 20 69 6e 74 20 72 | 65 74 63 6f 64 65 3b 20 |e) int r|etcode; |
|00003650| 7b 0a 23 61 73 6d 0a 09 | 6a 6d 70 09 30 0a 23 65 |{.#asm..|jmp.0.#e|
|00003660| 6e 64 61 73 6d 0a 7d 0a | 53 48 41 52 5f 45 4f 46 |ndasm.}.|SHAR_EOF|
|00003670| 0a 69 66 20 74 65 73 74 | 20 35 31 20 2d 6e 65 20 |.if test| 51 -ne |
|00003680| 22 60 77 63 20 2d 63 20 | 3c 20 27 38 30 38 30 2f |"`wc -c |< '8080/|
|00003690| 65 78 69 74 2e 63 27 60 | 22 0a 74 68 65 6e 0a 09 |exit.c'`|".then..|
|000036a0| 65 63 68 6f 20 73 68 61 | 72 3a 20 65 72 72 6f 72 |echo sha|r: error|
|000036b0| 20 74 72 61 6e 73 6d 69 | 74 74 69 6e 67 20 22 27 | transmi|tting "'|
|000036c0| 38 30 38 30 2f 65 78 69 | 74 2e 63 27 22 20 27 28 |8080/exi|t.c'" '(|
|000036d0| 73 68 6f 75 6c 64 20 68 | 61 76 65 20 62 65 65 6e |should h|ave been|
|000036e0| 20 35 31 20 63 68 61 72 | 61 63 74 65 72 73 29 27 | 51 char|acters)'|
|000036f0| 0a 66 69 0a 66 69 0a 65 | 63 68 6f 20 73 68 61 72 |.fi.fi.e|cho shar|
|00003700| 3a 20 65 78 74 72 61 63 | 74 69 6e 67 20 22 27 38 |: extrac|ting "'8|
|00003710| 30 38 30 2f 69 6e 6f 75 | 74 2e 63 27 22 20 27 28 |080/inou|t.c'" '(|
|00003720| 32 35 37 20 63 68 61 72 | 61 63 74 65 72 73 29 27 |257 char|acters)'|
|00003730| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 27 38 30 38 |.if test| -f '808|
|00003740| 30 2f 69 6e 6f 75 74 2e | 63 27 0a 74 68 65 6e 0a |0/inout.|c'.then.|
|00003750| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 77 69 6c 6c |.echo sh|ar: will|
|00003760| 20 6e 6f 74 20 6f 76 65 | 72 2d 77 72 69 74 65 20 | not ove|r-write |
|00003770| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 22 27 |existing| file "'|
|00003780| 38 30 38 30 2f 69 6e 6f | 75 74 2e 63 27 22 0a 65 |8080/ino|ut.c'".e|
|00003790| 6c 73 65 0a 63 61 74 20 | 3c 3c 20 5c 53 48 41 52 |lse.cat |<< \SHAR|
|000037a0| 5f 45 4f 46 20 3e 20 27 | 38 30 38 30 2f 69 6e 6f |_EOF > '|8080/ino|
|000037b0| 75 74 2e 63 27 0a 69 6e | 70 28 70 6e 6f 29 20 63 |ut.c'.in|p(pno) c|
|000037c0| 68 61 72 20 70 6e 6f 3b | 20 7b 0a 09 70 6e 6f 3b |har pno;| {..pno;|
|000037d0| 0a 23 61 73 6d 0a 09 6d | 6f 76 09 61 2c 6c 0a 09 |.#asm..m|ov.a,l..|
|000037e0| 73 74 61 09 69 6e 69 6e | 73 74 2b 31 0a 69 6e 69 |sta.inin|st+1.ini|
|000037f0| 6e 73 74 09 69 6e 09 30 | 09 3b 20 73 65 6c 66 20 |nst.in.0|.; self |
|00003800| 6d 6f 64 69 66 79 69 6e | 67 20 63 6f 64 65 2e 2e |modifyin|g code..|
|00003810| 2e 0a 09 6d 6f 76 09 6c | 2c 61 0a 09 78 72 61 09 |...mov.l|,a..xra.|
|00003820| 61 0a 09 6d 6f 76 09 68 | 2c 61 0a 09 72 65 74 0a |a..mov.h|,a..ret.|
|00003830| 23 65 6e 64 61 73 6d 0a | 7d 0a 0a 6f 75 74 70 28 |#endasm.|}..outp(|
|00003840| 70 6e 6f 2c 20 76 61 6c | 29 20 63 68 61 72 20 70 |pno, val|) char p|
|00003850| 6e 6f 2c 20 76 61 6c 3b | 20 7b 0a 09 70 6e 6f 3b |no, val;| {..pno;|
|00003860| 0a 23 61 73 6d 0a 09 6d | 6f 76 09 61 2c 6c 0a 09 |.#asm..m|ov.a,l..|
|00003870| 73 74 61 09 6f 75 74 69 | 6e 73 74 2b 31 0a 23 65 |sta.outi|nst+1.#e|
|00003880| 6e 64 61 73 6d 0a 09 76 | 61 6c 3b 0a 23 61 73 6d |ndasm..v|al;.#asm|
|00003890| 0a 09 6d 6f 76 09 61 2c | 6c 0a 6f 75 74 69 6e 73 |..mov.a,|l.outins|
|000038a0| 74 09 6f 75 74 09 30 0a | 09 72 65 74 0a 23 65 6e |t.out.0.|.ret.#en|
|000038b0| 64 61 73 6d 0a 7d 0a 53 | 48 41 52 5f 45 4f 46 0a |dasm.}.S|HAR_EOF.|
|000038c0| 69 66 20 74 65 73 74 20 | 32 35 37 20 2d 6e 65 20 |if test |257 -ne |
|000038d0| 22 60 77 63 20 2d 63 20 | 3c 20 27 38 30 38 30 2f |"`wc -c |< '8080/|
|000038e0| 69 6e 6f 75 74 2e 63 27 | 60 22 0a 74 68 65 6e 0a |inout.c'|`".then.|
|000038f0| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 65 72 72 6f |.echo sh|ar: erro|
|00003900| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 22 |r transm|itting "|
|00003910| 27 38 30 38 30 2f 69 6e | 6f 75 74 2e 63 27 22 20 |'8080/in|out.c'" |
|00003920| 27 28 73 68 6f 75 6c 64 | 20 68 61 76 65 20 62 65 |'(should| have be|
|00003930| 65 6e 20 32 35 37 20 63 | 68 61 72 61 63 74 65 72 |en 257 c|haracter|
|00003940| 73 29 27 0a 66 69 0a 66 | 69 0a 65 63 68 6f 20 73 |s)'.fi.f|i.echo s|
|00003950| 68 61 72 3a 20 65 78 74 | 72 61 63 74 69 6e 67 20 |har: ext|racting |
|00003960| 22 27 38 30 38 30 2f 69 | 6f 38 30 38 30 2e 63 27 |"'8080/i|o8080.c'|
|00003970| 22 20 27 28 36 31 32 39 | 20 63 68 61 72 61 63 74 |" '(6129| charact|
|00003980| 65 72 73 29 27 0a 69 66 | 20 74 65 73 74 20 2d 66 |ers)'.if| test -f|
|00003990| 20 27 38 30 38 30 2f 69 | 6f 38 30 38 30 2e 63 27 | '8080/i|o8080.c'|
|000039a0| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|000039b0| 3a 20 77 69 6c 6c 20 6e | 6f 74 20 6f 76 65 72 2d |: will n|ot over-|
|000039c0| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 20 66 |write ex|isting f|
|000039d0| 69 6c 65 20 22 27 38 30 | 38 30 2f 69 6f 38 30 38 |ile "'80|80/io808|
|000039e0| 30 2e 63 27 22 0a 65 6c | 73 65 0a 63 61 74 20 3c |0.c'".el|se.cat <|
|000039f0| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 38 |< \SHAR_|EOF > '8|
|00003a00| 30 38 30 2f 69 6f 38 30 | 38 30 2e 63 27 0a 2f 2a |080/io80|80.c'./*|
|00003a10| 09 42 61 73 69 63 20 43 | 50 2f 4d 20 66 69 6c 65 |.Basic C|P/M file|
|00003a20| 20 49 2f 4f 3a 0a 66 6f | 70 65 6e 2c 66 63 6c 6f | I/O:.fo|pen,fclo|
|00003a30| 73 65 2c 66 67 65 74 63 | 2c 66 70 75 74 63 2c 66 |se,fgetc|,fputc,f|
|00003a40| 65 6f 66 0a 0a 4f 72 69 | 67 69 6e 61 6c 3a 09 50 |eof..Ori|ginal:.P|
|00003a50| 61 75 6c 20 54 61 72 76 | 79 64 61 73 0a 46 69 78 |aul Tarv|ydas.Fix|
|00003a60| 65 64 20 62 79 3a 09 43 | 68 72 69 73 20 4c 65 77 |ed by:.C|hris Lew|
|00003a70| 69 73 0a 2a 2f 0a 23 69 | 6e 63 6c 75 64 65 20 3c |is.*/.#i|nclude <|
|00003a80| 73 74 64 69 6f 2e 68 3e | 0a 0a 23 64 65 66 69 6e |stdio.h>|..#defin|
|00003a90| 65 20 45 4f 4c 20 31 30 | 0a 23 64 65 66 69 6e 65 |e EOL 10|.#define|
|00003aa0| 20 45 4f 4c 32 20 31 33 | 0a 23 64 65 66 69 6e 65 | EOL2 13|.#define|
|00003ab0| 20 43 50 4d 45 4f 46 20 | 32 36 0a 23 64 65 66 69 | CPMEOF |26.#defi|
|00003ac0| 6e 65 20 43 50 4d 45 52 | 52 20 32 35 35 0a 23 64 |ne CPMER|R 255.#d|
|00003ad0| 65 66 69 6e 65 20 55 4e | 49 54 5f 4f 46 46 53 45 |efine UN|IT_OFFSE|
|00003ae0| 54 20 33 0a 23 64 65 66 | 69 6e 65 20 43 50 4d 43 |T 3.#def|ine CPMC|
|00003af0| 49 4e 20 31 0a 23 64 65 | 66 69 6e 65 20 43 50 4d |IN 1.#de|fine CPM|
|00003b00| 43 4f 55 54 20 32 0a 23 | 64 65 66 69 6e 65 20 52 |COUT 2.#|define R|
|00003b10| 45 41 44 5f 45 4f 46 20 | 33 0a 23 64 65 66 69 6e |EAD_EOF |3.#defin|
|00003b20| 65 20 53 45 54 44 4d 41 | 20 32 36 0a 23 64 65 66 |e SETDMA| 26.#def|
|00003b30| 69 6e 65 20 44 45 46 41 | 55 4c 54 5f 44 4d 41 20 |ine DEFA|ULT_DMA |
|00003b40| 31 32 38 0a 23 64 65 66 | 69 6e 65 20 43 50 4d 52 |128.#def|ine CPMR|
|00003b50| 45 41 44 20 32 30 0a 23 | 64 65 66 69 6e 65 20 43 |EAD 20.#|define C|
|00003b60| 50 4d 57 52 20 32 31 0a | 23 64 65 66 69 6e 65 20 |PMWR 21.|#define |
|00003b70| 57 52 49 54 45 20 32 0a | 23 64 65 66 69 6e 65 20 |WRITE 2.|#define |
|00003b80| 52 45 41 44 20 31 0a 23 | 64 65 66 69 6e 65 20 46 |READ 1.#|define F|
|00003b90| 52 45 45 20 30 0a 23 64 | 65 66 69 6e 65 20 4e 42 |REE 0.#d|efine NB|
|00003ba0| 55 46 46 53 20 34 0a 23 | 64 65 66 69 6e 65 20 42 |UFFS 4.#|define B|
|00003bb0| 55 46 53 49 5a 20 35 31 | 32 0a 23 64 65 66 69 6e |UFSIZ 51|2.#defin|
|00003bc0| 65 20 46 43 42 53 49 5a | 20 33 33 0a 23 64 65 66 |e FCBSIZ| 33.#def|
|00003bd0| 69 6e 65 20 41 4c 4c 42 | 55 46 46 53 20 32 30 34 |ine ALLB|UFFS 204|
|00003be0| 38 0a 23 64 65 66 69 6e | 65 20 41 4c 4c 46 43 42 |8.#defin|e ALLFCB|
|00003bf0| 53 20 31 33 32 0a 23 64 | 65 66 69 6e 65 20 43 50 |S 132.#d|efine CP|
|00003c00| 4d 45 52 41 20 31 39 0a | 23 64 65 66 69 6e 65 20 |MERA 19.|#define |
|00003c10| 43 50 4d 43 52 45 41 54 | 20 32 32 0a 23 64 65 66 |CPMCREAT| 22.#def|
|00003c20| 69 6e 65 20 43 50 4d 4f | 50 45 4e 20 31 35 0a 23 |ine CPMO|PEN 15.#|
|00003c30| 64 65 66 69 6e 65 20 4e | 42 4c 4f 43 4b 53 20 34 |define N|BLOCKS 4|
|00003c40| 0a 23 64 65 66 69 6e 65 | 20 42 4c 4b 53 49 5a 20 |.#define| BLKSIZ |
|00003c50| 31 32 38 0a 23 64 65 66 | 69 6e 65 20 42 4b 53 50 |128.#def|ine BKSP|
|00003c60| 20 38 0a 23 64 65 66 69 | 6e 65 20 43 54 52 4c 55 | 8.#defi|ne CTRLU|
|00003c70| 20 32 31 0a 23 64 65 66 | 69 6e 65 20 46 57 53 50 | 21.#def|ine FWSP|
|00003c80| 20 27 20 27 0a 23 64 65 | 66 69 6e 65 20 43 50 4d | ' '.#de|fine CPM|
|00003c90| 43 4c 4f 53 45 20 31 36 | 0a 0a 63 68 61 72 20 09 |CLOSE 16|..char .|
|00003ca0| 62 75 66 66 73 5b 41 4c | 4c 42 55 46 46 53 5d 2c |buffs[AL|LBUFFS],|
|00003cb0| 09 2f 2a 20 64 69 73 6b | 20 62 75 66 66 65 72 73 |./* disk| buffers|
|00003cc0| 20 2a 2f 0a 66 63 62 73 | 5b 41 4c 4c 46 43 42 53 | */.fcbs|[ALLFCBS|
|00003cd0| 5d 3b 09 09 2f 2a 20 66 | 63 62 73 20 66 6f 72 20 |];../* f|cbs for |
|00003ce0| 62 75 66 66 65 72 73 20 | 2a 2f 0a 69 6e 74 09 62 |buffers |*/.int.b|
|00003cf0| 70 74 72 5b 4e 42 55 46 | 46 53 5d 3b 09 09 2f 2a |ptr[NBUF|FS];../*|
|00003d00| 20 70 74 72 73 20 69 6e | 74 6f 20 62 75 66 66 65 | ptrs in|to buffe|
|00003d10| 72 73 20 2a 2f 0a 69 6e | 74 09 6d 6f 64 65 73 5b |rs */.in|t.modes[|
|00003d20| 4e 42 55 46 46 53 5d 3b | 09 09 2f 2a 20 6d 6f 64 |NBUFFS];|../* mod|
|00003d30| 65 20 66 6f 72 20 65 61 | 63 68 20 6f 70 65 6e 20 |e for ea|ch open |
|00003d40| 66 69 6c 65 20 2a 2f 0a | 69 6e 74 09 65 70 74 72 |file */.|int.eptr|
|00003d50| 5b 4e 42 55 46 46 53 5d | 3b 09 09 2f 2a 20 62 75 |[NBUFFS]|;../* bu|
|00003d60| 66 66 65 72 73 27 20 65 | 6e 64 73 20 2a 2f 0a 63 |ffers' e|nds */.c|
|00003d70| 68 61 72 20 65 6f 66 73 | 74 64 69 6e 3b 09 2f 2a |har eofs|tdin;./*|
|00003d80| 20 66 6c 61 67 20 65 6e | 64 20 6f 66 20 66 69 6c | flag en|d of fil|
|00003d90| 65 20 6f 6e 20 73 74 64 | 69 6e 20 2a 2f 0a 0a 66 |e on std|in */..f|
|00003da0| 67 65 74 63 28 75 6e 69 | 74 29 20 69 6e 74 20 75 |getc(uni|t) int u|
|00003db0| 6e 69 74 3b 20 0a 7b 0a | 20 20 20 20 69 6e 74 20 |nit; .{.| int |
|00003dc0| 63 3b 0a 20 20 20 20 77 | 68 69 6c 65 20 28 28 63 |c;. w|hile ((c|
|00003dd0| 20 3d 20 58 66 67 65 74 | 63 28 75 6e 69 74 29 29 | = Xfget|c(unit))|
|00003de0| 20 3d 3d 20 45 4f 4c 32 | 29 3b 0a 20 20 20 20 72 | == EOL2|);. r|
|00003df0| 65 74 75 72 6e 20 63 3b | 0a 7d 0a 58 66 67 65 74 |eturn c;|.}.Xfget|
|00003e00| 63 28 75 6e 69 74 29 20 | 69 6e 74 20 75 6e 69 74 |c(unit) |int unit|
|00003e10| 3b 20 0a 7b 0a 20 20 20 | 20 69 6e 74 20 69 3b 0a |; .{. | int i;.|
|00003e20| 20 20 20 20 69 6e 74 20 | 63 3b 0a 20 20 20 20 63 | int |c;. c|
|00003e30| 68 61 72 20 2a 62 75 66 | 66 3b 0a 20 20 20 20 63 |har *buf|f;. c|
|00003e40| 68 61 72 20 2a 66 63 62 | 61 3b 0a 20 20 20 20 69 |har *fcb|a;. i|
|00003e50| 66 20 28 28 75 6e 69 74 | 20 3d 3d 20 73 74 64 69 |f ((unit| == stdi|
|00003e60| 6e 29 20 26 20 21 65 6f | 66 73 74 64 69 6e 29 20 |n) & !eo|fstdin) |
|00003e70| 7b 0a 09 63 20 3d 20 62 | 64 6f 73 31 28 43 50 4d |{..c = b|dos1(CPM|
|00003e80| 43 49 4e 2c 20 30 29 3b | 0a 09 69 66 20 28 63 20 |CIN, 0);|..if (c |
|00003e90| 3d 3d 20 34 29 20 7b 0a | 09 20 20 20 20 65 6f 66 |== 4) {.|. eof|
|00003ea0| 73 74 64 69 6e 20 3d 20 | 31 3b 0a 09 20 20 20 20 |stdin = |1;.. |
|00003eb0| 72 65 74 75 72 6e 20 28 | 45 4f 46 29 3b 0a 09 7d |return (|EOF);..}|
|00003ec0| 0a 09 65 6c 73 65 20 69 | 66 20 28 63 20 3d 3d 20 |..else i|f (c == |
|00003ed0| 33 29 0a 09 20 20 20 20 | 65 78 69 74 20 28 31 29 |3).. |exit (1)|
|00003ee0| 3b 0a 09 65 6c 73 65 20 | 7b 0a 09 20 20 20 20 69 |;..else |{.. i|
|00003ef0| 66 20 28 63 20 3d 3d 20 | 45 4f 4c 32 29 20 7b 0a |f (c == |EOL2) {.|
|00003f00| 09 09 63 20 3d 20 45 4f | 4c 3b 0a 09 09 62 64 6f |..c = EO|L;...bdo|
|00003f10| 73 20 28 43 50 4d 43 4f | 55 54 2c 20 45 4f 4c 29 |s (CPMCO|UT, EOL)|
|00003f20| 3b 0a 09 20 20 20 20 7d | 0a 09 20 20 20 20 72 65 |;.. }|.. re|
|00003f30| 74 75 72 6e 20 28 63 29 | 3b 0a 09 7d 0a 20 20 20 |turn (c)|;..}. |
|00003f40| 20 7d 0a 20 20 20 20 69 | 66 20 28 6d 6f 64 65 73 | }. i|f (modes|
|00003f50| 5b 75 6e 69 74 20 3d 20 | 75 6e 69 74 20 2d 20 55 |[unit = |unit - U|
|00003f60| 4e 49 54 5f 4f 46 46 53 | 45 54 5d 20 3d 3d 20 52 |NIT_OFFS|ET] == R|
|00003f70| 45 41 44 29 20 7b 0a 09 | 69 66 20 28 62 70 74 72 |EAD) {..|if (bptr|
|00003f80| 5b 75 6e 69 74 5d 20 3e | 3d 20 65 70 74 72 5b 75 |[unit] >|= eptr[u|
|00003f90| 6e 69 74 5d 29 20 7b 0a | 09 20 20 20 20 66 63 62 |nit]) {.|. fcb|
|00003fa0| 61 20 3d 20 66 63 62 61 | 64 64 72 28 75 6e 69 74 |a = fcba|ddr(unit|
|00003fb0| 29 3b 0a 09 20 20 20 20 | 2f 2a 20 66 69 6c 6c 20 |);.. |/* fill |
|00003fc0| 64 61 20 62 75 66 66 65 | 72 20 61 67 61 69 6e 20 |da buffe|r again |
|00003fd0| 2a 2f 0a 09 20 20 20 20 | 69 20 3d 20 30 3b 20 20 |*/.. |i = 0; |
|00003fe0| 2f 2a 20 62 6c 6f 63 6b | 20 63 6f 75 6e 74 65 72 |/* block| counter|
|00003ff0| 20 2a 2f 0a 09 20 20 20 | 20 62 75 66 66 20 3d 20 | */.. | buff = |
|00004000| 62 75 66 66 61 64 64 72 | 28 75 6e 69 74 29 3b 20 |buffaddr|(unit); |
|00004010| 2f 2a 20 64 6d 61 20 70 | 74 72 20 2a 2f 0a 09 20 |/* dma p|tr */.. |
|00004020| 20 20 20 2f 2a 20 69 66 | 20 62 75 66 66 65 72 20 | /* if| buffer |
|00004030| 77 61 73 6e 27 74 20 74 | 6f 74 61 6c 6c 79 0a 09 |wasn't t|otally..|
|00004040| 20 20 20 20 09 20 20 20 | 20 66 69 6c 6c 65 64 20 | . | filled |
|00004050| 6c 61 73 74 20 74 69 6d | 65 2c 20 77 65 20 61 6c |last tim|e, we al|
|00004060| 72 65 61 64 79 0a 09 20 | 20 20 20 09 20 20 20 20 |ready.. | . |
|00004070| 65 6f 66 20 2a 2f 0a 09 | 20 20 20 20 69 66 20 28 |eof */..| if (|
|00004080| 65 70 74 72 5b 75 6e 69 | 74 5d 20 3d 3d 20 62 75 |eptr[uni|t] == bu|
|00004090| 66 66 61 64 64 72 28 75 | 6e 69 74 20 2b 20 31 29 |ffaddr(u|nit + 1)|
|000040a0| 29 0a 09 20 20 20 20 64 | 6f 20 7b 0a 09 09 62 64 |).. d|o {...bd|
|000040b0| 6f 73 28 53 45 54 44 4d | 41 2c 20 62 75 66 66 29 |os(SETDM|A, buff)|
|000040c0| 3b 0a 09 09 69 66 20 28 | 30 21 3d 62 64 6f 73 31 |;...if (|0!=bdos1|
|000040d0| 28 43 50 4d 52 45 41 44 | 2c 20 66 63 62 61 29 29 |(CPMREAD|, fcba))|
|000040e0| 0a 09 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 09 09 |... b|reak;...|
|000040f0| 62 75 66 66 20 3d 20 62 | 75 66 66 20 2b 20 42 4c |buff = b|uff + BL|
|00004100| 4b 53 49 5a 3b 0a 09 20 | 20 20 20 7d 0a 09 20 20 |KSIZ;.. | }.. |
|00004110| 20 20 77 68 69 6c 65 20 | 28 2b 2b 69 3c 4e 42 4c | while |(++i<NBL|
|00004120| 4f 43 4b 53 29 3b 0a 09 | 20 20 20 20 62 64 6f 73 |OCKS);..| bdos|
|00004130| 28 53 45 54 44 4d 41 2c | 20 44 45 46 41 55 4c 54 |(SETDMA,| DEFAULT|
|00004140| 5f 44 4d 41 29 3b 0a 09 | 20 20 20 20 2f 2a 20 69 |_DMA);..| /* i|
|00004150| 66 20 69 20 73 74 69 6c | 6c 20 30 2c 20 6e 6f 20 |f i stil|l 0, no |
|00004160| 62 6c 6f 63 6b 73 20 72 | 65 61 64 20 3d 3e 65 6f |blocks r|ead =>eo|
|00004170| 66 2a 2f 0a 09 20 20 20 | 20 69 66 20 28 69 3d 3d |f*/.. | if (i==|
|00004180| 30 29 20 7b 0a 09 09 6d | 6f 64 65 73 5b 75 6e 69 |0) {...m|odes[uni|
|00004190| 74 5d 20 3d 20 52 45 41 | 44 5f 45 4f 46 3b 0a 09 |t] = REA|D_EOF;..|
|000041a0| 09 72 65 74 75 72 6e 20 | 45 4f 46 3b 0a 09 20 20 |.return |EOF;.. |
|000041b0| 20 20 7d 0a 09 20 20 20 | 20 2f 2a 20 6f 2e 6b 2e | }.. | /* o.k.|
|000041c0| 20 73 65 74 20 73 74 61 | 72 74 20 26 20 65 6e 64 | set sta|rt & end|
|000041d0| 20 70 74 72 73 20 2a 2f | 0a 09 20 20 20 20 65 70 | ptrs */|.. ep|
|000041e0| 74 72 5b 75 6e 69 74 5d | 20 3d 0a 09 09 28 62 70 |tr[unit]| =...(bp|
|000041f0| 74 72 5b 75 6e 69 74 5d | 3d 62 75 66 66 61 64 64 |tr[unit]|=buffadd|
|00004200| 72 28 75 6e 69 74 29 29 | 0a 09 09 2b 20 28 69 20 |r(unit))|...+ (i |
|00004210| 2a 20 42 4c 4b 53 49 5a | 29 3b 0a 09 7d 0a 09 63 |* BLKSIZ|);..}..c|
|00004220| 20 3d 20 28 2a 28 62 70 | 74 72 5b 75 6e 69 74 5d | = (*(bp|tr[unit]|
|00004230| 2b 2b 29 29 20 26 20 30 | 78 66 66 3b 0a 09 69 66 |++)) & 0|xff;..if|
|00004240| 20 28 63 20 3d 3d 20 43 | 50 4d 45 4f 46 29 20 7b | (c == C|PMEOF) {|
|00004250| 0a 09 20 20 20 20 63 20 | 3d 20 45 4f 46 3b 0a 09 |.. c |= EOF;..|
|00004260| 20 20 20 20 6d 6f 64 65 | 73 5b 75 6e 69 74 5d 20 | mode|s[unit] |
|00004270| 3d 20 52 45 41 44 5f 45 | 4f 46 3b 0a 09 7d 0a 09 |= READ_E|OF;..}..|
|00004280| 72 65 74 75 72 6e 20 63 | 3b 0a 20 20 20 20 7d 0a |return c|;. }.|
|00004290| 20 20 20 20 72 65 74 75 | 72 6e 20 45 4f 46 3b 0a | retu|rn EOF;.|
|000042a0| 7d 0a 0a 66 63 6c 6f 73 | 65 28 75 6e 69 74 29 20 |}..fclos|e(unit) |
|000042b0| 69 6e 74 20 75 6e 69 74 | 3b 20 0a 7b 0a 20 20 20 |int unit|; .{. |
|000042c0| 20 69 6e 74 20 69 3b 0a | 20 20 20 20 69 66 20 28 | int i;.| if (|
|000042d0| 28 75 6e 69 74 3d 3d 73 | 74 64 69 6e 29 7c 28 75 |(unit==s|tdin)|(u|
|000042e0| 6e 69 74 3d 3d 73 74 64 | 6f 75 74 29 7c 28 75 6e |nit==std|out)|(un|
|000042f0| 69 74 3d 3d 73 74 64 65 | 72 72 29 29 0a 09 72 65 |it==stde|rr))..re|
|00004300| 74 75 72 6e 20 4e 55 4c | 4c 3b 0a 20 20 20 20 69 |turn NUL|L;. i|
|00004310| 66 20 28 6d 6f 64 65 73 | 5b 75 6e 69 74 20 3d 20 |f (modes|[unit = |
|00004320| 75 6e 69 74 20 2d 20 55 | 4e 49 54 5f 4f 46 46 53 |unit - U|NIT_OFFS|
|00004330| 45 54 5d 20 21 3d 20 46 | 52 45 45 29 20 7b 0a 09 |ET] != F|REE) {..|
|00004340| 69 66 20 28 6d 6f 64 65 | 73 5b 75 6e 69 74 5d 20 |if (mode|s[unit] |
|00004350| 3d 3d 20 57 52 49 54 45 | 29 0a 09 20 20 20 20 66 |== WRITE|).. f|
|00004360| 66 6c 75 73 68 28 75 6e | 69 74 20 2b 20 55 4e 49 |flush(un|it + UNI|
|00004370| 54 5f 4f 46 46 53 45 54 | 29 3b 0a 09 6d 6f 64 65 |T_OFFSET|);..mode|
|00004380| 73 5b 75 6e 69 74 5d 20 | 3d 20 46 52 45 45 3b 0a |s[unit] |= FREE;.|
|00004390| 09 72 65 74 75 72 6e 20 | 62 64 6f 73 31 28 43 50 |.return |bdos1(CP|
|000043a0| 4d 43 4c 4f 53 45 2c 20 | 66 63 62 61 64 64 72 28 |MCLOSE, |fcbaddr(|
|000043b0| 75 6e 69 74 29 29 3b 0a | 20 20 20 20 7d 0a 20 20 |unit));.| }. |
|000043c0| 20 20 72 65 74 75 72 6e | 20 45 4f 46 3b 0a 7d 0a | return| EOF;.}.|
|000043d0| 0a 66 66 6c 75 73 68 28 | 75 6e 69 74 29 20 69 6e |.fflush(|unit) in|
|000043e0| 74 20 75 6e 69 74 3b 20 | 0a 7b 0a 20 20 20 20 63 |t unit; |.{. c|
|000043f0| 68 61 72 20 2a 62 75 66 | 66 61 3b 0a 20 20 20 20 |har *buf|fa;. |
|00004400| 63 68 61 72 20 2a 66 63 | 62 61 3b 0a 20 20 20 20 |char *fc|ba;. |
|00004410| 69 66 20 28 28 75 6e 69 | 74 21 3d 73 74 64 69 6e |if ((uni|t!=stdin|
|00004420| 29 7c 28 75 6e 69 74 21 | 3d 73 74 64 6f 75 74 29 |)|(unit!|=stdout)|
|00004430| 7c 28 75 6e 69 74 21 3d | 73 74 64 65 72 72 29 29 ||(unit!=|stderr))|
|00004440| 20 7b 0a 09 2f 2a 20 70 | 75 74 20 61 6e 20 65 6f | {../* p|ut an eo|
|00004450| 66 20 61 74 20 65 6e 64 | 20 6f 66 20 66 69 6c 65 |f at end| of file|
|00004460| 20 2a 2f 0a 09 66 70 75 | 74 63 28 43 50 4d 45 4f | */..fpu|tc(CPMEO|
|00004470| 46 2c 20 75 6e 69 74 29 | 3b 0a 09 69 66 20 28 62 |F, unit)|;..if (b|
|00004480| 70 74 72 5b 75 6e 69 74 | 20 3d 20 75 6e 69 74 20 |ptr[unit| = unit |
|00004490| 2d 20 55 4e 49 54 5f 4f | 46 46 53 45 54 5d 20 21 |- UNIT_O|FFSET] !|
|000044a0| 3d 0a 09 20 20 20 20 28 | 62 75 66 66 61 20 3d 20 |=.. (|buffa = |
|000044b0| 62 75 66 66 61 64 64 72 | 28 75 6e 69 74 29 29 29 |buffaddr|(unit)))|
|000044c0| 20 7b 0a 09 20 20 20 20 | 2f 2a 20 73 6f 6d 65 20 | {.. |/* some |
|000044d0| 63 68 61 72 73 20 69 6e | 20 62 75 66 66 65 72 20 |chars in| buffer |
|000044e0| 2d 20 66 6c 75 73 68 20 | 74 68 65 6d 20 2a 2f 0a |- flush |them */.|
|000044f0| 09 20 20 20 20 66 63 62 | 61 20 3d 20 66 63 62 61 |. fcb|a = fcba|
|00004500| 64 64 72 28 75 6e 69 74 | 29 3b 0a 09 20 20 20 20 |ddr(unit|);.. |
|00004510| 64 6f 20 7b 0a 09 09 62 | 64 6f 73 28 53 45 54 44 |do {...b|dos(SETD|
|00004520| 4d 41 2c 20 62 75 66 66 | 61 29 3b 0a 09 09 69 66 |MA, buff|a);...if|
|00004530| 20 28 30 20 21 3d 20 62 | 64 6f 73 31 28 43 50 4d | (0 != b|dos1(CPM|
|00004540| 57 52 2c 20 66 63 62 61 | 29 29 0a 09 09 20 20 20 |WR, fcba|))... |
|00004550| 20 72 65 74 75 72 6e 20 | 28 45 4f 46 29 3b 0a 09 | return |(EOF);..|
|00004560| 20 20 20 20 7d 0a 09 20 | 20 20 20 77 68 69 6c 65 | }.. | while|
|00004570| 20 28 62 70 74 72 5b 75 | 6e 69 74 5d 20 3e 0a 09 | (bptr[u|nit] >..|
|00004580| 09 28 62 75 66 66 61 3d | 62 75 66 66 61 2b 42 4c |.(buffa=|buffa+BL|
|00004590| 4b 53 49 5a 29 29 3b 0a | 09 20 20 20 20 62 64 6f |KSIZ));.|. bdo|
|000045a0| 73 28 53 45 54 44 4d 41 | 2c 20 44 45 46 41 55 4c |s(SETDMA|, DEFAUL|
|000045b0| 54 5f 44 4d 41 29 3b 0a | 09 7d 0a 20 20 20 20 7d |T_DMA);.|.}. }|
|000045c0| 0a 20 20 20 20 72 65 74 | 75 72 6e 20 4e 55 4c 4c |. ret|urn NULL|
|000045d0| 3b 0a 7d 0a 0a 66 70 75 | 74 63 28 63 2c 20 75 6e |;.}..fpu|tc(c, un|
|000045e0| 69 74 29 20 63 68 61 72 | 20 63 3b 20 0a 69 6e 74 |it) char| c; .int|
|000045f0| 20 75 6e 69 74 3b 20 0a | 7b 20 0a 20 20 20 20 63 | unit; .|{ . c|
|00004600| 68 61 72 20 2a 62 75 66 | 66 61 3b 0a 20 20 20 20 |har *buf|fa;. |
|00004610| 63 68 61 72 20 2a 66 63 | 62 61 3b 0a 20 20 20 20 |char *fc|ba;. |
|00004620| 69 66 20 28 63 20 3d 3d | 20 45 4f 4c 29 20 66 70 |if (c ==| EOL) fp|
|00004630| 75 74 63 28 45 4f 4c 32 | 2c 20 75 6e 69 74 29 3b |utc(EOL2|, unit);|
|00004640| 0a 20 20 20 20 69 66 20 | 28 28 75 6e 69 74 20 3d |. if |((unit =|
|00004650| 3d 20 73 74 64 6f 75 74 | 29 20 7c 20 28 75 6e 69 |= stdout|) | (uni|
|00004660| 74 20 3d 3d 20 73 74 64 | 65 72 72 29 29 20 7b 0a |t == std|err)) {.|
|00004670| 09 62 64 6f 73 28 43 50 | 4d 43 4f 55 54 2c 20 63 |.bdos(CP|MCOUT, c|
|00004680| 29 3b 0a 09 72 65 74 75 | 72 6e 20 63 3b 0a 20 20 |);..retu|rn c;. |
|00004690| 20 20 7d 0a 20 20 20 20 | 69 66 20 28 57 52 49 54 | }. |if (WRIT|
|000046a0| 45 20 3d 3d 20 6d 6f 64 | 65 73 5b 75 6e 69 74 20 |E == mod|es[unit |
|000046b0| 3d 20 75 6e 69 74 20 2d | 20 55 4e 49 54 5f 4f 46 |= unit -| UNIT_OF|
|000046c0| 46 53 45 54 5d 29 20 7b | 0a 09 69 66 20 28 62 70 |FSET]) {|..if (bp|
|000046d0| 74 72 5b 75 6e 69 74 5d | 20 3e 3d 20 65 70 74 72 |tr[unit]| >= eptr|
|000046e0| 5b 75 6e 69 74 5d 29 20 | 7b 0a 09 20 20 20 20 2f |[unit]) |{.. /|
|000046f0| 2a 20 6e 6f 20 72 6f 6f | 6d 20 2d 20 64 75 6d 70 |* no roo|m - dump|
|00004700| 20 62 75 66 66 65 72 20 | 2a 2f 0a 09 20 20 20 20 | buffer |*/.. |
|00004710| 66 63 62 61 20 3d 20 66 | 63 62 61 64 64 72 28 75 |fcba = f|cbaddr(u|
|00004720| 6e 69 74 29 3b 0a 09 20 | 20 20 20 62 75 66 66 61 |nit);.. | buffa|
|00004730| 3d 62 75 66 66 61 64 64 | 72 28 75 6e 69 74 29 3b |=buffadd|r(unit);|
|00004740| 0a 09 20 20 20 20 77 68 | 69 6c 65 20 28 62 75 66 |.. wh|ile (buf|
|00004750| 66 61 20 3c 20 65 70 74 | 72 5b 75 6e 69 74 5d 29 |fa < ept|r[unit])|
|00004760| 20 7b 0a 09 09 62 64 6f | 73 28 53 45 54 44 4d 41 | {...bdo|s(SETDMA|
|00004770| 2c 20 62 75 66 66 61 29 | 3b 0a 09 09 69 66 20 28 |, buffa)|;...if (|
|00004780| 30 20 21 3d 20 62 64 6f | 73 31 28 43 50 4d 57 52 |0 != bdo|s1(CPMWR|
|00004790| 2c 20 66 63 62 61 29 29 | 20 62 72 65 61 6b 3b 0a |, fcba))| break;.|
|000047a0| 09 09 62 75 66 66 61 20 | 3d 20 62 75 66 66 61 20 |..buffa |= buffa |
|000047b0| 2b 20 42 4c 4b 53 49 5a | 3b 0a 09 20 20 20 20 7d |+ BLKSIZ|;.. }|
|000047c0| 0a 09 20 20 20 20 62 64 | 6f 73 28 53 45 54 44 4d |.. bd|os(SETDM|
|000047d0| 41 2c 20 44 45 46 41 55 | 4c 54 5f 44 4d 41 29 3b |A, DEFAU|LT_DMA);|
|000047e0| 0a 09 20 20 20 20 62 70 | 74 72 5b 75 6e 69 74 5d |.. bp|tr[unit]|
|000047f0| 20 3d 20 62 75 66 66 61 | 64 64 72 28 75 6e 69 74 | = buffa|ddr(unit|
|00004800| 29 3b 0a 09 20 20 20 20 | 69 66 20 28 62 75 66 66 |);.. |if (buff|
|00004810| 61 20 3c 20 65 70 74 72 | 5b 75 6e 69 74 5d 29 20 |a < eptr|[unit]) |
|00004820| 72 65 74 75 72 6e 20 45 | 4f 46 3b 0a 09 7d 0a 09 |return E|OF;..}..|
|00004830| 2a 28 62 70 74 72 5b 75 | 6e 69 74 5d 2b 2b 29 20 |*(bptr[u|nit]++) |
|00004840| 3d 20 63 3b 0a 09 72 65 | 74 75 72 6e 20 63 3b 0a |= c;..re|turn c;.|
|00004850| 20 20 20 20 7d 0a 20 20 | 20 20 72 65 74 75 72 6e | }. | return|
|00004860| 20 45 4f 46 3b 0a 7d 0a | 0a 61 6c 6c 6f 63 75 6e | EOF;.}.|.allocun|
|00004870| 69 74 6e 6f 28 29 20 7b | 20 0a 20 20 20 20 69 6e |itno() {| . in|
|00004880| 74 20 69 3b 0a 20 20 20 | 20 2f 2a 20 72 65 74 75 |t i;. | /* retu|
|00004890| 72 6e 73 20 23 20 6f 66 | 20 66 69 72 73 74 20 66 |rns # of| first f|
|000048a0| 72 65 65 20 62 75 66 66 | 65 72 2c 20 45 4f 46 20 |ree buff|er, EOF |
|000048b0| 69 66 20 6e 6f 6e 65 20 | 2a 2f 0a 20 20 20 20 2f |if none |*/. /|
|000048c0| 2a 20 62 75 66 66 65 72 | 20 69 73 20 6e 6f 74 20 |* buffer| is not |
|000048d0| 72 65 73 65 72 76 65 64 | 20 28 69 65 2e 20 6d 6f |reserved| (ie. mo|
|000048e0| 64 65 20 72 65 6d 61 69 | 6e 73 20 46 52 45 45 29 |de remai|ns FREE)|
|000048f0| 20 2a 2f 0a 20 20 20 20 | 66 6f 72 20 28 69 20 3d | */. |for (i =|
|00004900| 20 30 3b 20 69 20 3c 20 | 4e 42 55 46 46 53 3b 20 | 0; i < |NBUFFS; |
|00004910| 2b 2b 69 29 0a 09 69 66 | 20 28 6d 6f 64 65 73 5b |++i)..if| (modes[|
|00004920| 69 5d 20 3d 3d 20 46 52 | 45 45 29 20 62 72 65 61 |i] == FR|EE) brea|
|00004930| 6b 3b 0a 20 20 20 20 69 | 66 20 28 69 20 3e 3d 20 |k;. i|f (i >= |
|00004940| 4e 42 55 46 46 53 29 20 | 72 65 74 75 72 6e 20 45 |NBUFFS) |return E|
|00004950| 4f 46 3b 0a 20 20 20 20 | 65 6c 73 65 20 72 65 74 |OF;. |else ret|
|00004960| 75 72 6e 20 28 69 20 2b | 20 55 4e 49 54 5f 4f 46 |urn (i +| UNIT_OF|
|00004970| 46 53 45 54 29 3b 0a 7d | 0a 0a 66 6f 70 65 6e 28 |FSET);.}|..fopen(|
|00004980| 6e 61 6d 65 2c 20 6d 6f | 64 65 29 20 63 68 61 72 |name, mo|de) char|
|00004990| 20 2a 6e 61 6d 65 2c 20 | 2a 6d 6f 64 65 3b 20 0a | *name, |*mode; .|
|000049a0| 7b 20 0a 20 20 20 20 69 | 6e 74 20 66 69 6c 65 6e |{ . i|nt filen|
|000049b0| 6f 2c 20 66 6e 6f 32 3b | 0a 20 20 20 20 69 66 20 |o, fno2;|. if |
|000049c0| 28 45 4f 46 20 21 3d 20 | 28 66 69 6c 65 6e 6f 20 |(EOF != |(fileno |
|000049d0| 3d 20 61 6c 6c 6f 63 75 | 6e 69 74 6e 6f 28 29 29 |= allocu|nitno())|
|000049e0| 29 20 7b 0a 09 2f 2a 20 | 69 6e 74 65 72 6e 61 6c |) {../* |internal|
|000049f0| 20 66 69 6c 65 20 23 20 | 65 78 63 6c 75 64 65 73 | file # |excludes|
|00004a00| 20 75 6e 69 74 73 20 30 | 2c 31 20 26 20 32 0a 09 | units 0|,1 & 2..|
|00004a10| 09 73 69 6e 63 65 20 74 | 68 65 72 65 27 73 20 6e |.since t|here's n|
|00004a20| 6f 20 62 75 66 66 65 72 | 73 20 61 73 73 6f 63 69 |o buffer|s associ|
|00004a30| 61 74 65 64 20 77 69 74 | 68 0a 09 09 74 68 65 73 |ated wit|h...thes|
|00004a40| 65 20 75 6e 69 74 73 20 | 2a 2f 0a 09 6d 6f 76 6e |e units |*/..movn|
|00004a50| 61 6d 65 28 63 6c 65 61 | 72 66 63 62 28 66 63 62 |ame(clea|rfcb(fcb|
|00004a60| 61 64 64 72 28 66 6e 6f | 32 20 3d 20 66 69 6c 65 |addr(fno|2 = file|
|00004a70| 6e 6f 0a 09 20 20 20 20 | 2d 20 55 4e 49 54 5f 4f |no.. |- UNIT_O|
|00004a80| 46 46 53 45 54 29 29 2c | 20 6e 61 6d 65 29 3b 0a |FFSET)),| name);.|
|00004a90| 09 69 66 20 28 27 72 27 | 20 3d 3d 20 2a 6d 6f 64 |.if ('r'| == *mod|
|00004aa0| 65 29 20 7b 0a 09 20 20 | 20 20 69 66 20 28 62 64 |e) {.. | if (bd|
|00004ab0| 6f 73 31 28 43 50 4d 4f | 50 45 4e 2c 20 66 63 62 |os1(CPMO|PEN, fcb|
|00004ac0| 61 64 64 72 28 66 6e 6f | 32 29 29 20 21 3d 20 43 |addr(fno|2)) != C|
|00004ad0| 50 4d 45 52 52 29 0a 09 | 20 20 20 20 7b 20 0a 09 |PMERR)..| { ..|
|00004ae0| 09 6d 6f 64 65 73 5b 66 | 6e 6f 32 5d 20 3d 20 52 |.modes[f|no2] = R|
|00004af0| 45 41 44 3b 0a 09 09 2f | 2a 20 70 74 72 3e 62 75 |EAD;.../|* ptr>bu|
|00004b00| 66 73 69 7a 20 3d 3e 20 | 62 75 66 66 65 72 20 65 |fsiz => |buffer e|
|00004b10| 6d 70 74 79 2a 2f 0a 09 | 09 65 70 74 72 5b 66 6e |mpty*/..|.eptr[fn|
|00004b20| 6f 32 5d 20 3d 0a 09 09 | 20 20 20 20 62 70 74 72 |o2] =...| bptr|
|00004b30| 5b 66 6e 6f 32 5d 20 3d | 20 62 75 66 66 61 64 64 |[fno2] =| buffadd|
|00004b40| 72 28 66 6e 6f 32 2b 31 | 29 3b 0a 09 09 72 65 74 |r(fno2+1|);...ret|
|00004b50| 75 72 6e 20 66 69 6c 65 | 6e 6f 3b 0a 09 20 20 20 |urn file|no;.. |
|00004b60| 20 7d 0a 09 7d 20 0a 09 | 65 6c 73 65 20 69 66 20 | }..} ..|else if |
|00004b70| 28 27 77 27 20 3d 3d 20 | 2a 6d 6f 64 65 29 20 7b |('w' == |*mode) {|
|00004b80| 0a 09 20 20 20 20 62 64 | 6f 73 28 43 50 4d 45 52 |.. bd|os(CPMER|
|00004b90| 41 2c 20 66 63 62 61 64 | 64 72 28 66 6e 6f 32 29 |A, fcbad|dr(fno2)|
|00004ba0| 29 3b 0a 09 20 20 20 20 | 69 66 20 28 62 64 6f 73 |);.. |if (bdos|
|00004bb0| 31 28 43 50 4d 43 52 45 | 41 54 2c 20 66 63 62 61 |1(CPMCRE|AT, fcba|
|00004bc0| 64 64 72 28 66 6e 6f 32 | 29 29 20 21 3d 20 43 50 |ddr(fno2|)) != CP|
|00004bd0| 4d 45 52 52 29 7b 0a 09 | 09 6d 6f 64 65 73 5b 66 |MERR){..|.modes[f|
|00004be0| 6e 6f 32 5d 20 3d 20 57 | 52 49 54 45 3b 0a 09 09 |no2] = W|RITE;...|
|00004bf0| 62 70 74 72 5b 66 6e 6f | 32 5d 20 3d 20 62 75 66 |bptr[fno|2] = buf|
|00004c00| 66 61 64 64 72 28 66 6e | 6f 32 29 3b 0a 09 09 65 |faddr(fn|o2);...e|
|00004c10| 70 74 72 5b 66 6e 6f 32 | 5d 20 3d 20 62 75 66 66 |ptr[fno2|] = buff|
|00004c20| 61 64 64 72 28 66 6e 6f | 32 2b 31 29 3b 0a 09 09 |addr(fno|2+1);...|
|00004c30| 72 65 74 75 72 6e 20 66 | 69 6c 65 6e 6f 3b 0a 09 |return f|ileno;..|
|00004c40| 20 20 20 20 7d 0a 09 7d | 0a 20 20 20 20 7d 0a 20 | }..}|. }. |
|00004c50| 20 20 20 72 65 74 75 72 | 6e 20 4e 55 4c 4c 3b 0a | retur|n NULL;.|
|00004c60| 7d 0a 0a 63 6c 65 61 72 | 66 63 62 28 66 63 62 29 |}..clear|fcb(fcb)|
|00004c70| 20 63 68 61 72 20 66 63 | 62 5b 5d 3b 20 0a 7b 20 | char fc|b[]; .{ |
|00004c80| 0a 20 20 20 20 69 6e 74 | 20 69 3b 0a 20 20 20 20 |. int| i;. |
|00004c90| 66 6f 72 20 28 69 3d 30 | 3b 20 69 3c 46 43 42 53 |for (i=0|; i<FCBS|
|00004ca0| 49 5a 3b 20 66 63 62 5b | 69 2b 2b 5d 20 3d 20 30 |IZ; fcb[|i++] = 0|
|00004cb0| 29 3b 0a 20 20 20 20 2f | 2a 20 62 6c 61 6e 6b 20 |);. /|* blank |
|00004cc0| 6f 75 74 20 6e 61 6d 65 | 20 66 69 65 6c 64 20 2a |out name| field *|
|00004cd0| 2f 0a 20 20 20 20 66 6f | 72 20 28 69 3d 31 3b 20 |/. fo|r (i=1; |
|00004ce0| 69 3c 31 32 3b 20 66 63 | 62 5b 69 2b 2b 5d 20 3d |i<12; fc|b[i++] =|
|00004cf0| 20 27 20 27 29 3b 0a 20 | 20 20 20 72 65 74 75 72 | ' ');. | retur|
|00004d00| 6e 20 66 63 62 3b 0a 7d | 0a 0a 6d 6f 76 6e 61 6d |n fcb;.}|..movnam|
|00004d10| 65 28 66 63 62 2c 20 73 | 74 72 29 20 63 68 61 72 |e(fcb, s|tr) char|
|00004d20| 20 66 63 62 5b 5d 2c 20 | 2a 73 74 72 3b 20 0a 7b | fcb[], |*str; .{|
|00004d30| 0a 20 20 20 20 69 6e 74 | 20 69 3b 20 0a 20 20 20 |. int| i; . |
|00004d40| 20 63 68 61 72 20 63 3b | 0a 20 20 20 20 69 20 3d | char c;|. i =|
|00004d50| 20 31 3b 20 2f 2a 20 66 | 69 72 73 74 20 63 68 61 | 1; /* f|irst cha|
|00004d60| 72 20 6f 66 20 6e 61 6d | 65 20 40 20 70 6f 73 20 |r of nam|e @ pos |
|00004d70| 31 20 2a 2f 0a 20 20 20 | 20 2a 66 63 62 20 3d 20 |1 */. | *fcb = |
|00004d80| 30 3b 0a 20 20 20 20 69 | 66 20 28 27 3a 27 20 3d |0;. i|f (':' =|
|00004d90| 3d 20 73 74 72 5b 31 5d | 29 20 7b 0a 09 63 20 3d |= str[1]|) {..c =|
|00004da0| 20 74 6f 75 70 70 65 72 | 28 73 74 72 5b 30 5d 29 | toupper|(str[0])|
|00004db0| 3b 0a 09 69 66 20 28 28 | 27 41 27 20 3c 3d 20 63 |;..if ((|'A' <= c|
|00004dc0| 29 20 26 20 28 27 42 27 | 20 3e 3d 20 63 29 29 20 |) & ('B'| >= c)) |
|00004dd0| 7b 0a 09 20 20 20 20 2a | 66 63 62 20 3d 20 28 63 |{.. *|fcb = (c|
|00004de0| 20 2d 20 27 41 27 20 2b | 20 31 29 3b 0a 09 20 20 | - 'A' +| 1);.. |
|00004df0| 20 20 73 74 72 2b 2b 3b | 0a 09 20 20 20 20 73 74 | str++;|.. st|
|00004e00| 72 2b 2b 3b 0a 09 7d 0a | 20 20 20 20 7d 0a 20 20 |r++;..}.| }. |
|00004e10| 20 20 77 68 69 6c 65 20 | 28 28 4e 55 4c 4c 20 21 | while |((NULL !|
|00004e20| 3d 20 2a 73 74 72 29 20 | 26 20 28 69 3c 39 29 29 |= *str) |& (i<9))|
|00004e30| 20 7b 0a 09 2f 2a 20 75 | 70 20 74 6f 20 38 20 63 | {../* u|p to 8 c|
|00004e40| 68 61 72 73 20 69 6e 74 | 6f 20 66 69 6c 65 20 6e |hars int|o file n|
|00004e50| 61 6d 65 20 66 69 65 6c | 64 20 2a 2f 0a 09 69 66 |ame fiel|d */..if|
|00004e60| 20 28 27 2e 27 20 3d 3d | 20 2a 73 74 72 29 20 62 | ('.' ==| *str) b|
|00004e70| 72 65 61 6b 3b 0a 09 66 | 63 62 5b 69 2b 2b 5d 20 |reak;..f|cb[i++] |
|00004e80| 3d 20 74 6f 75 70 70 65 | 72 28 2a 73 74 72 2b 2b |= touppe|r(*str++|
|00004e90| 29 3b 0a 20 20 20 20 7d | 0a 20 20 20 20 2f 2a 20 |);. }|. /* |
|00004ea0| 73 74 72 69 70 20 6f 66 | 66 20 65 78 63 65 73 73 |strip of|f excess|
|00004eb0| 20 63 68 61 72 73 20 2d | 20 75 70 20 74 6f 20 27 | chars -| up to '|
|00004ec0| 2e 27 20 28 62 65 67 69 | 6e 6e 69 6e 67 20 6f 66 |.' (begi|nning of|
|00004ed0| 0a 09 65 78 74 65 6e 73 | 69 6f 6e 20 6e 61 6d 65 |..extens|ion name|
|00004ee0| 20 29 20 2a 2f 0a 20 20 | 20 20 77 68 69 6c 65 20 | ) */. | while |
|00004ef0| 28 28 4e 55 4c 4c 20 21 | 3d 20 2a 73 74 72 29 20 |((NULL !|= *str) |
|00004f00| 26 20 28 28 2a 73 74 72 | 29 20 21 3d 20 27 2e 27 |& ((*str|) != '.'|
|00004f10| 29 29 20 2b 2b 73 74 72 | 3b 0a 20 20 20 20 69 66 |)) ++str|;. if|
|00004f20| 20 28 2a 73 74 72 29 0a | 09 2f 2a 20 27 2e 27 20 | (*str).|./* '.' |
|00004f30| 69 73 20 66 69 72 73 74 | 20 63 68 61 72 20 6f 66 |is first| char of|
|00004f40| 20 2a 73 74 72 20 6e 6f | 77 20 2a 2f 0a 09 2f 2a | *str no|w */../*|
|00004f50| 20 63 6f 70 79 20 33 20 | 63 68 61 72 73 20 6f 66 | copy 3 |chars of|
|00004f60| 20 65 78 74 2e 20 69 66 | 20 74 68 65 72 65 20 2a | ext. if| there *|
|00004f70| 2f 0a 09 66 6f 72 20 28 | 09 2f 2a 20 66 69 72 73 |/..for (|./* firs|
|00004f80| 74 20 63 68 61 72 20 6f | 66 20 65 78 74 20 40 20 |t char o|f ext @ |
|00004f90| 70 6f 73 20 39 20 28 38 | 2b 31 29 2a 2f 0a 69 20 |pos 9 (8|+1)*/.i |
|00004fa0| 3d 20 38 3b 0a 2f 2a 20 | 27 2e 27 20 69 73 20 73 |= 8;./* |'.' is s|
|00004fb0| 74 72 69 70 70 65 64 20 | 62 79 20 2b 2b 20 31 73 |tripped |by ++ 1s|
|00004fc0| 74 20 74 69 6d 65 20 2a | 2f 0a 2f 2a 20 61 72 6f |t time *|/./* aro|
|00004fd0| 75 6e 64 20 2a 2f 0a 28 | 4e 55 4c 4c 20 21 3d 20 |und */.(|NULL != |
|00004fe0| 2a 2b 2b 73 74 72 29 20 | 26 20 28 31 32 20 3e 20 |*++str) |& (12 > |
|00004ff0| 2b 2b 69 29 3b 0a 66 63 | 62 5b 69 5d 20 3d 20 74 |++i);.fc|b[i] = t|
|00005000| 6f 75 70 70 65 72 28 2a | 73 74 72 29 0a 29 3b 0a |oupper(*|str).);.|
|00005010| 09 72 65 74 75 72 6e 20 | 66 63 62 3b 0a 7d 0a 0a |.return |fcb;.}..|
|00005020| 73 74 64 69 6f 69 6e 69 | 74 28 29 20 7b 0a 20 20 |stdioini|t() {. |
|00005030| 20 20 69 6e 74 20 69 3b | 0a 20 20 20 20 65 6f 66 | int i;|. eof|
|00005040| 73 74 64 69 6e 20 3d 20 | 30 3b 0a 20 20 20 20 66 |stdin = |0;. f|
|00005050| 6f 72 20 28 69 3d 30 3b | 20 69 3c 4e 42 55 46 46 |or (i=0;| i<NBUFF|
|00005060| 53 3b 20 6d 6f 64 65 73 | 5b 69 2b 2b 5d 20 3d 20 |S; modes|[i++] = |
|00005070| 46 52 45 45 29 3b 0a 7d | 0a 0a 66 63 62 61 64 64 |FREE);.}|..fcbadd|
|00005080| 72 28 75 6e 69 74 29 20 | 69 6e 74 20 75 6e 69 74 |r(unit) |int unit|
|00005090| 3b 20 0a 7b 0a 20 20 20 | 20 2f 2a 20 72 65 74 75 |; .{. | /* retu|
|000050a0| 72 6e 73 20 61 64 64 72 | 65 73 73 20 6f 66 20 66 |rns addr|ess of f|
|000050b0| 63 62 20 61 73 73 6f 63 | 69 61 74 65 64 20 77 69 |cb assoc|iated wi|
|000050c0| 74 68 20 67 69 76 65 6e | 20 75 6e 69 74 20 2d 0a |th given| unit -.|
|000050d0| 09 75 6e 69 74 20 74 61 | 6b 65 6e 20 77 69 74 68 |.unit ta|ken with|
|000050e0| 20 6f 72 69 67 69 6e 20 | 30 20 28 69 65 2e 20 73 | origin |0 (ie. s|
|000050f0| 74 64 27 73 20 6e 6f 74 | 20 69 6e 63 6c 75 64 65 |td's not| include|
|00005100| 64 29 20 2a 2f 0a 20 20 | 20 20 72 65 74 75 72 6e |d) */. | return|
|00005110| 20 26 66 63 62 73 5b 75 | 6e 69 74 20 2a 20 46 43 | &fcbs[u|nit * FC|
|00005120| 42 53 49 5a 5d 3b 0a 7d | 0a 0a 62 75 66 66 61 64 |BSIZ];.}|..buffad|
|00005130| 64 72 28 75 6e 69 74 29 | 20 69 6e 74 20 75 6e 69 |dr(unit)| int uni|
|00005140| 74 3b 20 0a 7b 0a 20 20 | 20 20 72 65 74 75 72 6e |t; .{. | return|
|00005150| 20 26 62 75 66 66 73 5b | 75 6e 69 74 20 2a 20 42 | &buffs[|unit * B|
|00005160| 55 46 53 49 5a 5d 3b 0a | 7d 0a 0a 66 65 6f 66 20 |UFSIZ];.|}..feof |
|00005170| 28 75 6e 69 74 29 20 46 | 49 4c 45 20 2a 75 6e 69 |(unit) F|ILE *uni|
|00005180| 74 3b 20 0a 7b 0a 20 20 | 20 20 69 66 20 28 28 75 |t; .{. | if ((u|
|00005190| 6e 69 74 20 3d 3d 20 73 | 74 64 69 6e 29 20 26 20 |nit == s|tdin) & |
|000051a0| 65 6f 66 73 74 64 69 6e | 29 0a 09 72 65 74 75 72 |eofstdin|)..retur|
|000051b0| 6e 20 31 3b 0a 20 20 20 | 20 69 66 20 28 6d 6f 64 |n 1;. | if (mod|
|000051c0| 65 73 5b 75 6e 69 74 20 | 2d 20 55 4e 49 54 5f 4f |es[unit |- UNIT_O|
|000051d0| 46 46 53 45 54 5d 20 3d | 3d 20 52 45 41 44 5f 45 |FFSET] =|= READ_E|
|000051e0| 4f 46 29 0a 09 72 65 74 | 75 72 6e 20 31 3b 0a 20 |OF)..ret|urn 1;. |
|000051f0| 20 20 20 72 65 74 75 72 | 6e 20 30 3b 0a 7d 0a 53 | retur|n 0;.}.S|
|00005200| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|00005210| 36 31 32 39 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 |6129 -ne| "`wc -c|
|00005220| 20 3c 20 27 38 30 38 30 | 2f 69 6f 38 30 38 30 2e | < '8080|/io8080.|
|00005230| 63 27 60 22 0a 74 68 65 | 6e 0a 09 65 63 68 6f 20 |c'`".the|n..echo |
|00005240| 73 68 61 72 3a 20 65 72 | 72 6f 72 20 74 72 61 6e |shar: er|ror tran|
|00005250| 73 6d 69 74 74 69 6e 67 | 20 22 27 38 30 38 30 2f |smitting| "'8080/|
|00005260| 69 6f 38 30 38 30 2e 63 | 27 22 20 27 28 73 68 6f |io8080.c|'" '(sho|
|00005270| 75 6c 64 20 68 61 76 65 | 20 62 65 65 6e 20 36 31 |uld have| been 61|
|00005280| 32 39 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |29 chara|cters)'.|
|00005290| 66 69 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |fi.fi.ec|ho shar:|
|000052a0| 20 65 78 74 72 61 63 74 | 69 6e 67 20 22 27 38 30 | extract|ing "'80|
|000052b0| 38 30 2f 63 72 65 74 2e | 61 73 6d 27 22 20 27 28 |80/cret.|asm'" '(|
|000052c0| 34 37 38 20 63 68 61 72 | 61 63 74 65 72 73 29 27 |478 char|acters)'|
|000052d0| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 27 38 30 38 |.if test| -f '808|
|000052e0| 30 2f 63 72 65 74 2e 61 | 73 6d 27 0a 74 68 65 6e |0/cret.a|sm'.then|
|000052f0| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00005300| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00005310| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00005320| 27 38 30 38 30 2f 63 72 | 65 74 2e 61 73 6d 27 22 |'8080/cr|et.asm'"|
|00005330| 0a 65 6c 73 65 0a 63 61 | 74 20 3c 3c 20 5c 53 48 |.else.ca|t << \SH|
|00005340| 41 52 5f 45 4f 46 20 3e | 20 27 38 30 38 30 2f 63 |AR_EOF >| '8080/c|
|00005350| 72 65 74 2e 61 73 6d 27 | 0a 3b 09 52 75 6e 20 74 |ret.asm'|.;.Run t|
|00005360| 69 6d 65 20 73 74 61 72 | 74 20 6f 66 66 20 66 6f |ime star|t off fo|
|00005370| 72 20 53 6d 61 6c 6c 20 | 43 2e 0a 09 63 73 65 67 |r Small |C...cseg|
|00005380| 0a 09 73 70 68 6c 09 09 | 3b 20 73 61 76 65 20 74 |..sphl..|; save t|
|00005390| 68 65 20 73 74 61 63 6b | 20 70 6f 69 6e 74 65 72 |he stack| pointer|
|000053a0| 0a 09 73 68 6c 64 09 3f | 73 74 6b 73 61 76 0a 09 |..shld.?|stksav..|
|000053b0| 6c 68 6c 64 09 36 09 3b | 20 70 69 63 6b 20 75 70 |lhld.6.;| pick up|
|000053c0| 20 63 6f 72 65 20 74 6f | 70 0a 09 6c 78 69 09 64 | core to|p..lxi.d|
|000053d0| 2c 2d 31 30 09 3b 20 64 | 65 63 72 65 61 73 65 20 |,-10.; d|ecrease |
|000053e0| 62 79 20 31 30 20 66 6f | 72 20 73 61 66 65 74 79 |by 10 fo|r safety|
|000053f0| 0a 09 64 61 64 09 64 0a | 09 73 70 68 6c 09 09 3b |..dad.d.|.sphl..;|
|00005400| 20 73 65 74 20 73 74 61 | 63 6b 20 70 6f 69 6e 74 | set sta|ck point|
|00005410| 65 72 0a 09 63 61 6c 6c | 09 73 74 64 69 6f 69 6e |er..call|.stdioin|
|00005420| 69 74 09 3b 20 69 6e 69 | 74 69 61 6c 69 7a 65 20 |it.; ini|tialize |
|00005430| 73 74 64 69 6f 0a 09 63 | 61 6c 6c 09 58 61 72 67 |stdio..c|all.Xarg|
|00005440| 6c 69 73 74 0a 09 6c 68 | 6c 64 09 58 61 72 67 63 |list..lh|ld.Xargc|
|00005450| 0a 09 70 75 73 68 09 68 | 0a 09 6c 78 69 09 68 2c |..push.h|..lxi.h,|
|00005460| 58 61 72 67 76 0a 09 70 | 75 73 68 09 68 0a 09 63 |Xargv..p|ush.h..c|
|00005470| 61 6c 6c 09 6d 61 69 6e | 09 3b 20 63 61 6c 6c 20 |all.main|.; call |
|00005480| 6d 61 69 6e 20 70 72 6f | 67 72 61 6d 0a 09 70 6f |main pro|gram..po|
|00005490| 70 09 64 0a 09 70 6f 70 | 09 64 0a 09 6c 68 6c 64 |p.d..pop|.d..lhld|
|000054a0| 09 3f 73 74 6b 73 61 76 | 09 3b 20 72 65 73 74 6f |.?stksav|.; resto|
|000054b0| 72 65 20 73 74 61 63 6b | 20 70 6f 69 6e 74 65 72 |re stack| pointer|
|000054c0| 0a 09 72 65 74 09 09 3b | 20 67 6f 20 62 61 63 6b |..ret..;| go back|
|000054d0| 20 74 6f 20 43 43 50 0a | 09 64 73 65 67 0a 3f 73 | to CCP.|.dseg.?s|
|000054e0| 74 6b 73 61 76 09 64 73 | 09 32 0a 09 65 78 74 72 |tksav.ds|.2..extr|
|000054f0| 6e 09 73 74 64 69 6f 69 | 6e 69 74 0a 09 65 78 74 |n.stdioi|nit..ext|
|00005500| 72 6e 09 58 61 72 67 6c | 69 73 74 0a 09 65 78 74 |rn.Xargl|ist..ext|
|00005510| 72 6e 09 58 61 72 67 63 | 0a 09 65 78 74 72 6e 09 |rn.Xargc|..extrn.|
|00005520| 58 61 72 67 76 0a 09 65 | 78 74 72 6e 09 6d 61 69 |Xargv..e|xtrn.mai|
|00005530| 6e 0a 09 65 6e 64 0a 53 | 48 41 52 5f 45 4f 46 0a |n..end.S|HAR_EOF.|
|00005540| 69 66 20 74 65 73 74 20 | 34 37 38 20 2d 6e 65 20 |if test |478 -ne |
|00005550| 22 60 77 63 20 2d 63 20 | 3c 20 27 38 30 38 30 2f |"`wc -c |< '8080/|
|00005560| 63 72 65 74 2e 61 73 6d | 27 60 22 0a 74 68 65 6e |cret.asm|'`".then|
|00005570| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 65 72 72 |..echo s|har: err|
|00005580| 6f 72 20 74 72 61 6e 73 | 6d 69 74 74 69 6e 67 20 |or trans|mitting |
|00005590| 22 27 38 30 38 30 2f 63 | 72 65 74 2e 61 73 6d 27 |"'8080/c|ret.asm'|
|000055a0| 22 20 27 28 73 68 6f 75 | 6c 64 20 68 61 76 65 20 |" '(shou|ld have |
|000055b0| 62 65 65 6e 20 34 37 38 | 20 63 68 61 72 61 63 74 |been 478| charact|
|000055c0| 65 72 73 29 27 0a 66 69 | 0a 66 69 0a 65 63 68 6f |ers)'.fi|.fi.echo|
|000055d0| 20 73 68 61 72 3a 20 65 | 78 74 72 61 63 74 69 6e | shar: e|xtractin|
|000055e0| 67 20 22 27 38 30 38 30 | 2f 63 72 75 6e 2e 61 73 |g "'8080|/crun.as|
|000055f0| 6d 27 22 20 27 28 34 32 | 38 36 20 63 68 61 72 61 |m'" '(42|86 chara|
|00005600| 63 74 65 72 73 29 27 0a | 69 66 20 74 65 73 74 20 |cters)'.|if test |
|00005610| 2d 66 20 27 38 30 38 30 | 2f 63 72 75 6e 2e 61 73 |-f '8080|/crun.as|
|00005620| 6d 27 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |m'.then.|.echo sh|
|00005630| 61 72 3a 20 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: will| not ove|
|00005640| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00005650| 20 66 69 6c 65 20 22 27 | 38 30 38 30 2f 63 72 75 | file "'|8080/cru|
|00005660| 6e 2e 61 73 6d 27 22 0a | 65 6c 73 65 0a 63 61 74 |n.asm'".|else.cat|
|00005670| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|00005680| 27 38 30 38 30 2f 63 72 | 75 6e 2e 61 73 6d 27 0a |'8080/cr|un.asm'.|
|00005690| 3b 0a 3b 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |;.;*****|********|
|000056a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000056b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000056c0| 2a 2a 2a 2a 2a 2a 2a 2a | 0a 3b 09 09 09 09 09 09 |********|.;......|
|000056d0| 20 20 20 20 20 2a 0a 3b | 09 72 75 6e 74 69 6d 65 | *.;|.runtime|
|000056e0| 09 6c 69 62 72 61 72 79 | 09 66 6f 72 20 73 6d 61 |.library|.for sma|
|000056f0| 6c 6c 20 43 20 63 6f 6d | 70 69 6c 65 72 09 20 20 |ll C com|piler. |
|00005700| 20 20 20 2a 0a 3b 09 09 | 09 09 09 09 20 20 20 20 | *.;..|.... |
|00005710| 20 2a 0a 3b 09 63 2e 73 | 20 2d 20 72 75 6e 74 69 | *.;.c.s| - runti|
|00005720| 6d 65 20 72 6f 75 74 69 | 6e 65 20 66 6f 72 20 62 |me routi|ne for b|
|00005730| 61 73 69 63 20 43 20 63 | 6f 64 65 09 20 20 20 20 |asic C c|ode. |
|00005740| 20 2a 0a 3b 09 09 09 09 | 09 09 20 20 20 20 20 2a | *.;....|.. *|
|00005750| 0a 3b 09 09 52 6f 6e 20 | 43 61 69 6e 09 09 09 20 |.;..Ron |Cain... |
|00005760| 20 20 20 20 2a 0a 3b 09 | 09 09 09 09 09 20 20 20 | *.;.|..... |
|00005770| 20 20 2a 0a 3b 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *.;***|********|
|00005780| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005790| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000057a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 0a 3b 0a 09 63 73 |********|**.;..cs|
|000057b0| 65 67 0a 3b 0a 09 70 75 | 62 6c 69 63 09 3f 67 63 |eg.;..pu|blic.?gc|
|000057c0| 68 61 72 2c 3f 67 69 6e | 74 2c 3f 70 63 68 61 72 |har,?gin|t,?pchar|
|000057d0| 2c 3f 70 69 6e 74 0a 09 | 70 75 62 6c 69 63 09 3f |,?pint..|public.?|
|000057e0| 73 78 74 0a 09 70 75 62 | 6c 69 63 09 3f 6f 72 2c |sxt..pub|lic.?or,|
|000057f0| 3f 61 6e 64 2c 3f 78 6f | 72 0a 09 70 75 62 6c 69 |?and,?xo|r..publi|
|00005800| 63 09 3f 65 71 2c 3f 6e | 65 2c 3f 67 74 2c 3f 6c |c.?eq,?n|e,?gt,?l|
|00005810| 65 2c 3f 67 65 2c 3f 6c | 74 2c 3f 75 67 65 2c 3f |e,?ge,?l|t,?uge,?|
|00005820| 75 6c 74 2c 3f 75 67 74 | 2c 3f 75 6c 65 0a 09 70 |ult,?ugt|,?ule..p|
|00005830| 75 62 6c 69 63 09 3f 61 | 73 72 2c 3f 61 73 6c 0a |ublic.?a|sr,?asl.|
|00005840| 09 70 75 62 6c 69 63 09 | 3f 73 75 62 2c 3f 6e 65 |.public.|?sub,?ne|
|00005850| 67 2c 3f 63 6f 6d 2c 3f | 6c 6e 65 67 2c 3f 62 6f |g,?com,?|lneg,?bo|
|00005860| 6f 6c 2c 3f 6d 75 6c 2c | 3f 64 69 76 0a 09 70 75 |ol,?mul,|?div..pu|
|00005870| 62 6c 69 63 09 3f 63 61 | 73 65 2c 62 72 6b 65 6e |blic.?ca|se,brken|
|00005880| 64 2c 58 73 74 6b 74 6f | 70 0a 09 70 75 62 6c 69 |d,Xstkto|p..publi|
|00005890| 63 09 65 74 65 78 74 0a | 09 70 75 62 6c 69 63 09 |c.etext.|.public.|
|000058a0| 65 64 61 74 61 0a 3b 0a | 3b 20 66 65 74 63 68 20 |edata.;.|; fetch |
|000058b0| 63 68 61 72 20 66 72 6f | 6d 20 28 48 4c 29 20 61 |char fro|m (HL) a|
|000058c0| 6e 64 20 73 69 67 6e 20 | 65 78 74 65 6e 64 20 69 |nd sign |extend i|
|000058d0| 6e 74 6f 20 48 4c 0a 3f | 67 63 68 61 72 3a 09 6d |nto HL.?|gchar:.m|
|000058e0| 6f 76 09 61 2c 6d 0a 3f | 73 78 74 3a 09 6d 6f 76 |ov.a,m.?|sxt:.mov|
|000058f0| 09 6c 2c 61 0a 09 72 6c | 63 0a 09 73 62 62 09 61 |.l,a..rl|c..sbb.a|
|00005900| 0a 09 6d 6f 76 09 68 2c | 61 0a 09 72 65 74 0a 3b |..mov.h,|a..ret.;|
|00005910| 20 66 65 74 63 68 20 69 | 6e 74 20 66 72 6f 6d 20 | fetch i|nt from |
|00005920| 28 48 4c 29 0a 3f 67 69 | 6e 74 3a 09 6d 6f 76 09 |(HL).?gi|nt:.mov.|
|00005930| 61 2c 6d 0a 09 69 6e 78 | 09 68 0a 09 6d 6f 76 09 |a,m..inx|.h..mov.|
|00005940| 68 2c 6d 0a 09 6d 6f 76 | 09 6c 2c 61 0a 09 72 65 |h,m..mov|.l,a..re|
|00005950| 74 0a 3b 20 73 74 6f 72 | 65 20 63 68 61 72 20 66 |t.; stor|e char f|
|00005960| 72 6f 6d 20 48 4c 20 69 | 6e 74 6f 20 28 44 45 29 |rom HL i|nto (DE)|
|00005970| 0a 3f 70 63 68 61 72 3a | 20 6d 6f 76 09 61 2c 6c |.?pchar:| mov.a,l|
|00005980| 0a 09 73 74 61 78 09 64 | 0a 09 72 65 74 0a 3b 20 |..stax.d|..ret.; |
|00005990| 73 74 6f 72 65 20 69 6e | 74 20 66 72 6f 6d 20 48 |store in|t from H|
|000059a0| 4c 20 69 6e 74 6f 20 28 | 44 45 29 0a 3f 70 69 6e |L into (|DE).?pin|
|000059b0| 74 3a 09 6d 6f 76 09 61 | 2c 6c 0a 09 73 74 61 78 |t:.mov.a|,l..stax|
|000059c0| 09 64 0a 09 69 6e 78 09 | 64 0a 09 6d 6f 76 09 61 |.d..inx.|d..mov.a|
|000059d0| 2c 68 0a 09 73 74 61 78 | 09 64 0a 09 72 65 74 0a |,h..stax|.d..ret.|
|000059e0| 3b 20 22 6f 72 22 20 48 | 4c 20 61 6e 64 20 44 45 |; "or" H|L and DE|
|000059f0| 20 69 6e 74 6f 20 48 4c | 0a 3f 6f 72 3a 09 6d 6f | into HL|.?or:.mo|
|00005a00| 76 09 61 2c 6c 0a 09 6f | 72 61 09 65 0a 09 6d 6f |v.a,l..o|ra.e..mo|
|00005a10| 76 09 6c 2c 61 0a 09 6d | 6f 76 09 61 2c 68 0a 09 |v.l,a..m|ov.a,h..|
|00005a20| 6f 72 61 09 64 0a 09 6d | 6f 76 09 68 2c 61 0a 09 |ora.d..m|ov.h,a..|
|00005a30| 72 65 74 0a 3b 20 22 78 | 6f 72 22 20 48 4c 20 61 |ret.; "x|or" HL a|
|00005a40| 6e 64 20 44 45 20 69 6e | 74 6f 20 48 4c 0a 3f 78 |nd DE in|to HL.?x|
|00005a50| 6f 72 3a 09 6d 6f 76 09 | 61 2c 6c 0a 09 78 72 61 |or:.mov.|a,l..xra|
|00005a60| 09 65 0a 09 6d 6f 76 09 | 6c 2c 61 0a 09 6d 6f 76 |.e..mov.|l,a..mov|
|00005a70| 09 61 2c 68 0a 09 78 72 | 61 09 64 0a 09 6d 6f 76 |.a,h..xr|a.d..mov|
|00005a80| 09 68 2c 61 0a 09 72 65 | 74 0a 3b 20 22 61 6e 64 |.h,a..re|t.; "and|
|00005a90| 22 20 48 4c 20 61 6e 64 | 20 44 45 20 69 6e 74 6f |" HL and| DE into|
|00005aa0| 20 48 4c 0a 3f 61 6e 64 | 3a 09 6d 6f 76 09 61 2c | HL.?and|:.mov.a,|
|00005ab0| 6c 0a 09 61 6e 61 09 65 | 0a 09 6d 6f 76 09 6c 2c |l..ana.e|..mov.l,|
|00005ac0| 61 0a 09 6d 6f 76 09 61 | 2c 68 0a 09 61 6e 61 09 |a..mov.a|,h..ana.|
|00005ad0| 64 0a 09 6d 6f 76 09 68 | 2c 61 0a 09 72 65 74 0a |d..mov.h|,a..ret.|
|00005ae0| 3b 0a 3b 2e 2e 2e 2e 2e | 2e 6c 6f 67 69 63 61 6c |;.;.....|.logical|
|00005af0| 20 6f 70 65 72 61 74 69 | 6f 6e 73 3a 20 48 4c 20 | operati|ons: HL |
|00005b00| 73 65 74 20 74 6f 20 30 | 20 28 66 61 6c 73 65 29 |set to 0| (false)|
|00005b10| 20 6f 72 20 31 20 28 74 | 72 75 65 29 0a 3b 0a 3b | or 1 (t|rue).;.;|
|00005b20| 20 44 45 20 3d 3d 20 48 | 4c 0a 3f 65 71 3a 09 63 | DE == H|L.?eq:.c|
|00005b30| 61 6c 6c 09 3f 63 6d 70 | 0a 09 72 7a 0a 09 64 63 |all.?cmp|..rz..dc|
|00005b40| 78 09 68 0a 09 72 65 74 | 0a 3b 20 44 45 20 21 3d |x.h..ret|.; DE !=|
|00005b50| 20 48 4c 0a 3f 6e 65 3a | 09 63 61 6c 6c 09 3f 63 | HL.?ne:|.call.?c|
|00005b60| 6d 70 0a 09 72 6e 7a 0a | 09 64 63 78 09 68 0a 09 |mp..rnz.|.dcx.h..|
|00005b70| 72 65 74 0a 3b 20 44 45 | 20 3e 20 48 4c 20 5b 73 |ret.; DE| > HL [s|
|00005b80| 69 67 6e 65 64 5d 0a 3f | 67 74 3a 09 78 63 68 67 |igned].?|gt:.xchg|
|00005b90| 0a 09 63 61 6c 6c 09 3f | 63 6d 70 0a 09 72 63 0a |..call.?|cmp..rc.|
|00005ba0| 09 64 63 78 09 68 0a 09 | 72 65 74 0a 3b 20 44 45 |.dcx.h..|ret.; DE|
|00005bb0| 20 3c 3d 20 48 4c 20 5b | 73 69 67 6e 65 64 5d 0a | <= HL [|signed].|
|00005bc0| 3f 6c 65 3a 09 63 61 6c | 6c 09 3f 63 6d 70 0a 09 |?le:.cal|l.?cmp..|
|00005bd0| 72 7a 0a 09 72 63 0a 09 | 64 63 78 09 68 0a 09 72 |rz..rc..|dcx.h..r|
|00005be0| 65 74 0a 3b 20 44 45 20 | 3e 3d 20 48 4c 20 5b 73 |et.; DE |>= HL [s|
|00005bf0| 69 67 6e 65 64 5d 0a 3f | 67 65 3a 09 63 61 6c 6c |igned].?|ge:.call|
|00005c00| 09 3f 63 6d 70 0a 09 72 | 6e 63 0a 09 64 63 78 09 |.?cmp..r|nc..dcx.|
|00005c10| 68 0a 09 72 65 74 0a 3b | 20 44 45 20 3c 20 48 4c |h..ret.;| DE < HL|
|00005c20| 20 5b 73 69 67 6e 65 64 | 5d 0a 3f 6c 74 3a 09 63 | [signed|].?lt:.c|
|00005c30| 61 6c 6c 09 3f 63 6d 70 | 0a 09 72 63 0a 09 64 63 |all.?cmp|..rc..dc|
|00005c40| 78 09 68 0a 09 72 65 74 | 0a 3b 20 44 45 20 3e 3d |x.h..ret|.; DE >=|
|00005c50| 20 48 4c 20 5b 75 6e 73 | 69 67 6e 65 64 5d 0a 3f | HL [uns|igned].?|
|00005c60| 75 67 65 3a 09 63 61 6c | 6c 09 3f 75 63 6d 70 0a |uge:.cal|l.?ucmp.|
|00005c70| 09 72 6e 63 0a 09 64 63 | 78 09 68 0a 09 72 65 74 |.rnc..dc|x.h..ret|
|00005c80| 0a 3b 20 44 45 20 3c 20 | 48 4c 20 5b 75 6e 73 69 |.; DE < |HL [unsi|
|00005c90| 67 6e 65 64 5d 0a 3f 75 | 6c 74 3a 09 63 61 6c 6c |gned].?u|lt:.call|
|00005ca0| 09 3f 75 63 6d 70 0a 09 | 72 63 0a 09 64 63 78 09 |.?ucmp..|rc..dcx.|
|00005cb0| 68 0a 09 72 65 74 0a 3b | 20 44 45 20 3e 20 48 4c |h..ret.;| DE > HL|
|00005cc0| 20 5b 75 6e 73 69 67 6e | 65 64 5d 0a 3f 75 67 74 | [unsign|ed].?ugt|
|00005cd0| 3a 09 78 63 68 67 0a 09 | 63 61 6c 6c 09 3f 75 63 |:.xchg..|call.?uc|
|00005ce0| 6d 70 0a 09 72 63 0a 09 | 64 63 78 09 68 0a 09 72 |mp..rc..|dcx.h..r|
|00005cf0| 65 74 0a 3b 20 44 45 20 | 3c 3d 20 48 4c 20 5b 75 |et.; DE |<= HL [u|
|00005d00| 6e 73 69 67 6e 65 64 5d | 0a 3f 75 6c 65 3a 09 63 |nsigned]|.?ule:.c|
|00005d10| 61 6c 6c 09 3f 75 63 6d | 70 0a 09 72 7a 0a 09 72 |all.?ucm|p..rz..r|
|00005d20| 63 0a 09 64 63 78 09 68 | 0a 09 72 65 74 0a 3b 20 |c..dcx.h|..ret.; |
|00005d30| 73 69 67 6e 65 64 20 63 | 6f 6d 70 61 72 65 20 6f |signed c|ompare o|
|00005d40| 66 20 44 45 20 61 6e 64 | 20 48 4c 0a 3b 20 20 20 |f DE and| HL.; |
|00005d50| 63 61 72 72 79 20 69 73 | 20 73 69 67 6e 20 6f 66 |carry is| sign of|
|00005d60| 20 64 69 66 66 65 72 65 | 6e 63 65 20 5b 73 65 74 | differe|nce [set|
|00005d70| 20 3d 3e 20 44 45 20 3c | 20 48 4c 5d 0a 3b 20 20 | => DE <| HL].; |
|00005d80| 20 7a 65 72 6f 20 69 73 | 20 7a 65 72 6f 2f 6e 6f | zero is| zero/no|
|00005d90| 6e 2d 7a 65 72 6f 0a 3f | 63 6d 70 3a 09 6d 6f 76 |n-zero.?|cmp:.mov|
|00005da0| 09 61 2c 65 0a 09 73 75 | 62 09 6c 0a 09 6d 6f 76 |.a,e..su|b.l..mov|
|00005db0| 09 65 2c 61 0a 09 6d 6f | 76 09 61 2c 64 0a 09 73 |.e,a..mo|v.a,d..s|
|00005dc0| 62 62 09 68 0a 09 6c 78 | 69 09 68 2c 31 09 09 3b |bb.h..lx|i.h,1..;|
|00005dd0| 70 72 65 73 65 74 20 74 | 72 75 65 0a 09 6a 6d 09 |preset t|rue..jm.|
|00005de0| 3f 63 6d 70 31 0a 09 6f | 72 61 09 65 09 09 3b 72 |?cmp1..o|ra.e..;r|
|00005df0| 65 73 65 74 73 20 63 61 | 72 72 79 0a 09 72 65 74 |esets ca|rry..ret|
|00005e00| 0a 3f 63 6d 70 31 3a 09 | 6f 72 61 09 65 0a 09 73 |.?cmp1:.|ora.e..s|
|00005e10| 74 63 0a 09 72 65 74 0a | 3b 20 75 6e 73 69 67 6e |tc..ret.|; unsign|
|00005e20| 65 64 20 63 6f 6d 70 61 | 72 65 20 6f 66 20 44 45 |ed compa|re of DE|
|00005e30| 20 61 6e 64 20 48 4c 0a | 3b 20 20 20 63 61 72 72 | and HL.|; carr|
|00005e40| 79 20 69 73 20 73 69 67 | 6e 20 6f 66 20 64 69 66 |y is sig|n of dif|
|00005e50| 66 65 72 65 6e 63 65 20 | 5b 73 65 74 20 3d 3e 20 |ference |[set => |
|00005e60| 44 45 20 3c 20 48 4c 5d | 0a 3b 20 20 20 7a 65 72 |DE < HL]|.; zer|
|00005e70| 6f 20 69 73 20 7a 65 72 | 6f 2f 6e 6f 6e 2d 7a 65 |o is zer|o/non-ze|
|00005e80| 72 6f 0a 3f 75 63 6d 70 | 3a 09 6d 6f 76 09 61 2c |ro.?ucmp|:.mov.a,|
|00005e90| 64 0a 09 63 6d 70 09 68 | 0a 09 6a 6e 7a 09 3f 75 |d..cmp.h|..jnz.?u|
|00005ea0| 63 6d 70 31 0a 09 6d 6f | 76 09 61 2c 65 0a 09 63 |cmp1..mo|v.a,e..c|
|00005eb0| 6d 70 09 6c 0a 3f 75 63 | 6d 70 31 3a 09 6c 78 69 |mp.l.?uc|mp1:.lxi|
|00005ec0| 09 68 2c 31 09 09 3b 70 | 72 65 73 65 74 20 74 72 |.h,1..;p|reset tr|
|00005ed0| 75 65 0a 09 72 65 74 0a | 3b 20 73 68 69 66 74 20 |ue..ret.|; shift |
|00005ee0| 44 45 20 72 69 67 68 74 | 20 61 72 69 74 68 6d 65 |DE right| arithme|
|00005ef0| 74 69 63 61 6c 6c 79 20 | 62 79 20 48 4c 2c 20 6d |tically |by HL, m|
|00005f00| 6f 76 65 20 74 6f 20 48 | 4c 0a 3f 61 73 72 3a 09 |ove to H|L.?asr:.|
|00005f10| 78 63 68 67 0a 3f 61 73 | 72 31 3a 09 64 63 72 09 |xchg.?as|r1:.dcr.|
|00005f20| 65 0a 09 72 6d 0a 09 6d | 6f 76 09 61 2c 68 0a 09 |e..rm..m|ov.a,h..|
|00005f30| 72 61 6c 0a 09 6d 6f 76 | 09 61 2c 68 0a 09 72 61 |ral..mov|.a,h..ra|
|00005f40| 72 0a 09 6d 6f 76 09 68 | 2c 61 0a 09 6d 6f 76 09 |r..mov.h|,a..mov.|
|00005f50| 61 2c 6c 0a 09 72 61 72 | 0a 09 6d 6f 76 09 6c 2c |a,l..rar|..mov.l,|
|00005f60| 61 0a 09 6a 6d 70 09 3f | 61 73 72 31 0a 3b 20 73 |a..jmp.?|asr1.; s|
|00005f70| 68 69 66 74 20 44 45 20 | 6c 65 66 74 20 61 72 69 |hift DE |left ari|
|00005f80| 74 68 6d 65 74 69 63 61 | 6c 6c 79 20 62 79 20 48 |thmetica|lly by H|
|00005f90| 4c 2c 20 6d 6f 76 65 20 | 74 6f 20 48 4c 0a 3f 61 |L, move |to HL.?a|
|00005fa0| 73 6c 3a 09 78 63 68 67 | 0a 3f 61 73 6c 31 3a 09 |sl:.xchg|.?asl1:.|
|00005fb0| 64 63 72 09 65 0a 09 72 | 6d 0a 09 64 61 64 09 68 |dcr.e..r|m..dad.h|
|00005fc0| 0a 09 6a 6d 70 09 3f 61 | 73 6c 31 0a 3b 20 48 4c |..jmp.?a|sl1.; HL|
|00005fd0| 20 3d 20 44 45 20 2d 20 | 48 4c 0a 3f 73 75 62 3a | = DE - |HL.?sub:|
|00005fe0| 09 6d 6f 76 09 61 2c 65 | 0a 09 73 75 62 09 6c 0a |.mov.a,e|..sub.l.|
|00005ff0| 09 6d 6f 76 09 6c 2c 61 | 0a 09 6d 6f 76 09 61 2c |.mov.l,a|..mov.a,|
|00006000| 64 0a 09 73 62 62 09 68 | 0a 09 6d 6f 76 09 68 2c |d..sbb.h|..mov.h,|
|00006010| 61 0a 09 72 65 74 0a 3b | 20 48 4c 20 3d 20 2d 48 |a..ret.;| HL = -H|
|00006020| 4c 0a 3f 6e 65 67 3a 09 | 63 61 6c 6c 09 3f 63 6f |L.?neg:.|call.?co|
|00006030| 6d 0a 09 69 6e 78 09 68 | 0a 09 72 65 74 0a 3b 20 |m..inx.h|..ret.; |
|00006040| 48 4c 20 3d 20 7e 48 4c | 0a 3f 63 6f 6d 3a 09 6d |HL = ~HL|.?com:.m|
|00006050| 6f 76 09 61 2c 68 0a 09 | 63 6d 61 0a 09 6d 6f 76 |ov.a,h..|cma..mov|
|00006060| 09 68 2c 61 0a 09 6d 6f | 76 09 61 2c 6c 0a 09 63 |.h,a..mo|v.a,l..c|
|00006070| 6d 61 0a 09 6d 6f 76 09 | 6c 2c 61 0a 09 72 65 74 |ma..mov.|l,a..ret|
|00006080| 0a 3b 20 48 4c 20 3d 20 | 21 48 4c 0a 3f 6c 6e 65 |.; HL = |!HL.?lne|
|00006090| 67 3a 09 6d 6f 76 09 61 | 2c 68 0a 09 6f 72 61 09 |g:.mov.a|,h..ora.|
|000060a0| 6c 0a 09 6a 7a 09 3f 6c | 6e 65 67 31 0a 09 6c 78 |l..jz.?l|neg1..lx|
|000060b0| 69 09 68 2c 30 0a 09 72 | 65 74 0a 3f 6c 6e 65 67 |i.h,0..r|et.?lneg|
|000060c0| 31 3a 09 69 6e 78 09 68 | 0a 09 72 65 74 0a 3b 20 |1:.inx.h|..ret.; |
|000060d0| 48 4c 20 3d 20 21 21 48 | 4c 0a 3f 62 6f 6f 6c 3a |HL = !!H|L.?bool:|
|000060e0| 09 63 61 6c 6c 09 3f 6c | 6e 65 67 0a 09 6a 6d 70 |.call.?l|neg..jmp|
|000060f0| 09 3f 6c 6e 65 67 0a 3b | 0a 3b 20 48 4c 20 3d 20 |.?lneg.;|.; HL = |
|00006100| 44 45 20 2a 20 48 4c 20 | 5b 73 69 67 6e 65 64 5d |DE * HL |[signed]|
|00006110| 0a 3f 6d 75 6c 3a 09 6d | 6f 76 09 62 2c 68 0a 09 |.?mul:.m|ov.b,h..|
|00006120| 6d 6f 76 09 63 2c 6c 0a | 09 6c 78 69 09 68 2c 30 |mov.c,l.|.lxi.h,0|
|00006130| 0a 3f 6d 75 6c 31 3a 09 | 6d 6f 76 09 61 2c 63 0a |.?mul1:.|mov.a,c.|
|00006140| 09 72 72 63 0a 09 6a 6e | 63 09 3f 6d 75 6c 32 0a |.rrc..jn|c.?mul2.|
|00006150| 09 64 61 64 09 64 0a 3f | 6d 75 6c 32 3a 09 78 72 |.dad.d.?|mul2:.xr|
|00006160| 61 09 61 0a 09 6d 6f 76 | 09 61 2c 62 0a 09 72 61 |a.a..mov|.a,b..ra|
|00006170| 72 0a 09 6d 6f 76 20 09 | 62 2c 61 0a 09 6d 6f 76 |r..mov .|b,a..mov|
|00006180| 09 61 2c 63 0a 09 72 61 | 72 0a 09 6d 6f 76 09 63 |.a,c..ra|r..mov.c|
|00006190| 2c 61 0a 09 6f 72 61 09 | 62 0a 09 72 7a 0a 09 78 |,a..ora.|b..rz..x|
|000061a0| 72 61 09 61 0a 09 6d 6f | 76 09 61 2c 65 0a 09 72 |ra.a..mo|v.a,e..r|
|000061b0| 61 6c 0a 09 6d 6f 76 09 | 65 2c 61 0a 09 6d 6f 76 |al..mov.|e,a..mov|
|000061c0| 09 61 2c 64 0a 09 72 61 | 6c 0a 09 6d 6f 76 09 64 |.a,d..ra|l..mov.d|
|000061d0| 2c 61 0a 09 6f 72 61 09 | 65 0a 09 72 7a 0a 09 6a |,a..ora.|e..rz..j|
|000061e0| 6d 70 09 3f 6d 75 6c 31 | 0a 3b 20 48 4c 20 3d 20 |mp.?mul1|.; HL = |
|000061f0| 44 45 20 2f 20 48 4c 2c | 20 44 45 20 3d 20 44 45 |DE / HL,| DE = DE|
|00006200| 20 25 20 48 4c 0a 3f 64 | 69 76 3a 09 6d 6f 76 09 | % HL.?d|iv:.mov.|
|00006210| 62 2c 68 0a 09 6d 6f 76 | 09 63 2c 6c 0a 09 6d 6f |b,h..mov|.c,l..mo|
|00006220| 76 09 61 2c 64 0a 09 78 | 72 61 09 62 0a 09 70 75 |v.a,d..x|ra.b..pu|
|00006230| 73 68 09 70 73 77 0a 09 | 6d 6f 76 09 61 2c 64 0a |sh.psw..|mov.a,d.|
|00006240| 09 6f 72 61 09 61 0a 09 | 63 6d 09 3f 64 65 6e 65 |.ora.a..|cm.?dene|
|00006250| 67 0a 09 6d 6f 76 09 61 | 2c 62 0a 09 6f 72 61 09 |g..mov.a|,b..ora.|
|00006260| 61 0a 09 63 6d 09 3f 62 | 63 6e 65 67 0a 09 6d 76 |a..cm.?b|cneg..mv|
|00006270| 69 09 61 2c 31 36 0a 09 | 70 75 73 68 09 70 73 77 |i.a,16..|push.psw|
|00006280| 0a 09 78 63 68 67 0a 09 | 6c 78 69 09 64 2c 30 0a |..xchg..|lxi.d,0.|
|00006290| 3f 64 69 76 31 3a 09 64 | 61 64 09 68 0a 09 63 61 |?div1:.d|ad.h..ca|
|000062a0| 6c 6c 09 3f 72 64 65 6c | 0a 09 6a 7a 09 3f 64 69 |ll.?rdel|..jz.?di|
|000062b0| 76 32 0a 09 63 61 6c 6c | 09 3f 63 6d 70 62 64 0a |v2..call|.?cmpbd.|
|000062c0| 09 6a 6d 09 3f 64 69 76 | 32 0a 09 6d 6f 76 09 61 |.jm.?div|2..mov.a|
|000062d0| 2c 6c 0a 09 6f 72 69 09 | 31 0a 09 6d 6f 76 09 6c |,l..ori.|1..mov.l|
|000062e0| 2c 61 0a 09 6d 6f 76 09 | 61 2c 65 0a 09 73 75 62 |,a..mov.|a,e..sub|
|000062f0| 09 63 0a 09 6d 6f 76 09 | 65 2c 61 0a 09 6d 6f 76 |.c..mov.|e,a..mov|
|00006300| 09 61 2c 64 0a 09 73 62 | 62 09 62 0a 09 6d 6f 76 |.a,d..sb|b.b..mov|
|00006310| 09 64 2c 61 0a 3f 64 69 | 76 32 3a 09 70 6f 70 09 |.d,a.?di|v2:.pop.|
|00006320| 70 73 77 0a 09 64 63 72 | 09 61 0a 09 6a 7a 09 3f |psw..dcr|.a..jz.?|
|00006330| 64 69 76 33 0a 09 70 75 | 73 68 09 70 73 77 0a 09 |div3..pu|sh.psw..|
|00006340| 6a 6d 70 09 3f 64 69 76 | 31 0a 3f 64 69 76 33 3a |jmp.?div|1.?div3:|
|00006350| 09 70 6f 70 09 70 73 77 | 0a 09 72 70 0a 09 63 61 |.pop.psw|..rp..ca|
|00006360| 6c 6c 09 3f 64 65 6e 65 | 67 0a 09 78 63 68 67 0a |ll.?dene|g..xchg.|
|00006370| 09 63 61 6c 6c 09 3f 64 | 65 6e 65 67 0a 09 78 63 |.call.?d|eneg..xc|
|00006380| 68 67 0a 09 72 65 74 0a | 3b 20 7b 44 45 20 3d 20 |hg..ret.|; {DE = |
|00006390| 2d 44 45 7d 0a 3f 64 65 | 6e 65 67 3a 20 6d 6f 76 |-DE}.?de|neg: mov|
|000063a0| 09 61 2c 64 0a 09 63 6d | 61 0a 09 6d 6f 76 09 64 |.a,d..cm|a..mov.d|
|000063b0| 2c 61 0a 09 6d 6f 76 09 | 61 2c 65 0a 09 63 6d 61 |,a..mov.|a,e..cma|
|000063c0| 0a 09 6d 6f 76 09 65 2c | 61 0a 09 69 6e 78 09 64 |..mov.e,|a..inx.d|
|000063d0| 0a 09 72 65 74 0a 3b 20 | 7b 42 43 20 3d 20 2d 42 |..ret.; |{BC = -B|
|000063e0| 43 7d 0a 3f 62 63 6e 65 | 67 3a 20 6d 6f 76 09 61 |C}.?bcne|g: mov.a|
|000063f0| 2c 62 0a 09 63 6d 61 0a | 09 6d 6f 76 09 62 2c 61 |,b..cma.|.mov.b,a|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.