Okay, an update on the problems downloading files via the terminal into CP/M 3. Thanks to durgadas311's invaluable support re-writing DOWNLOAD.COM over the weekend to support Intel Hex format file transfers, I've been able to do a little more testing of the file transfer system in CP/M 3.
Just to recap for those jumping in after a while away, the only way I can transfer files from my PC to my SBC is by pasting a formatted ASCII hex-dump of the file. I say formatted, because at the start it includes a few parameters and runs the DOWNLOAD.COM file in CP/M to receive the rest of the hex dump. The hex dump is an Intel Hex format data stream, addressed from 0100 onwards. It is designed to be pasted directly into the CP/M console, where DOWNLOAD.COM is loaded and receives the rest of the pasted data, which it saves to a new (and appropriately-named) file.
It works flawlessly in CP/M 2.2. However, not so well in CP/M 3. With the revised DOWNLOAD.COM now taking Intel Hex files, it seems to be completing the download and returning to the command prompt without issue (this is a big improvement on the old DOWNLOAD.COM which would crash CP/M 3.)
However, the downloaded file seems to be consistently missing the first record of the downloaded file. I've transferred a small program and to use as an example. This is what I'm pasting into the terminal:
Code:
A:DOWNLOAD DATETIME.COM
U0
X02A8
:4001000021550311800019F921F901110402CD0103211C02110402CD01032180007E23B7281D477E23FE2FCA2F0110F7C33F017EFE3FCAEC01E65F320302FE55CA9801E599
:4001400021F901CD1B032104027EFE78CA4901E13A0302FE44CA6D01FE54CA7501FE57CA7D011104020E09CD0500C3F401210402060AC38201210F020608C382012118028B
:4001800006037EFE24CAF401C5E55F0E02CD0500E1C12310EDC3F4013E0047112202237EFE20CA9E01FE24CAC801FE00CAC8012B237EFE24CAC801FE00CAC8010412137897
:4001C000FE10DAB001C3D3011137020E09CD0500C3F4013E2312133E2412211C02CD1B032104027EFE78CAE301C362011176020E09CD05000E00CD0500255A48684C6C2375
:400200000D0A240078302D30302D303030302D30303A30303A30302D78787824255548684C6C30302D30302D303030302D30303A30303A30302324557064617465642064D8
:4002400061746520616E642074696D65204D55535420626520696E207468697320666F726D61743A2064642F6D6D2F595959592068683A6D6D244441544554494D45207691
:40028000312E312E3433202843292032303137204A2E204E4F434B0D0A446973706C617973207468652063757272656E74206461746520616E642F6F722074696D6520663E
:4002C000726F6D20746865207265616C74696D6520636C6F636B2E0D0A5573653A204441544554494D45205B6F7074696F6E616C202F442C202F542C202F572C202F555D55
:400300002423237ACD3E0377237ACD440377237BCD3E0377237BCD440377C9F57EFE24CA2903CD2B0323C31C03F1C9F5CD350328FBF1D301C997D303DB030FCB4FC9E6F014
:400340000F0F0F0FE60FFE0ADA5203D609F640C35403F630C900000000000000000000000000000000000000000000000000000000000000000000000000000000000000F7
:00000001FF
And below is a dump of the downloaded file:
Code:
F>A:DUMP DATETIME.COM
0000 21 F9 01 CD 1B 03 21 04 02 7E FE 78 CA 49 01 E1
0010 3A 03 02 FE 44 CA 6D 01 FE 54 CA 75 01 FE 57 CA
0020 7D 01 11 04 02 0E 09 CD 05 00 C3 F4 01 21 04 02
0030 06 0A C3 82 01 21 0F 02 06 08 C3 82 01 21 18 02
0040 06 03 7E FE 24 CA F4 01 C5 E5 5F 0E 02 CD 05 00
0050 E1 C1 23 10 ED C3 F4 01 3E 00 47 11 22 02 23 7E
0060 FE 20 CA 9E 01 FE 24 CA C8 01 FE 00 CA C8 01 2B
0070 23 7E FE 24 CA C8 01 FE 00 CA C8 01 04 12 13 78
0080 FE 10 DA B0 01 C3 D3 01 11 37 02 0E 09 CD 05 00
0090 C3 F4 01 3E 23 12 13 3E 24 12 21 1C 02 CD 1B 03
00A0 21 04 02 7E FE 78 CA E3 01 C3 62 01 11 76 02 0E
00B0 09 CD 05 00 0E 00 CD 05 00 25 5A 48 68 4C 6C 23
00C0 0D 0A 24 00 78 30 2D 30 30 2D 30 30 30 30 2D 30
00D0 30 3A 30 30 3A 30 30 2D 78 78 78 24 25 55 48 68
00E0 4C 6C 30 30 2D 30 30 2D 30 30 30 30 2D 30 30 3A
00F0 30 30 3A 30 30 23 24 55 70 64 61 74 65 64 20 64
0100 61 74 65 20 61 6E 64 20 74 69 6D 65 20 4D 55 53
0110 54 20 62 65 20 69 6E 20 74 68 69 73 20 66 6F 72
0120 6D 61 74 3A 20 64 64 2F 6D 6D 2F 59 59 59 59 20
0130 68 68 3A 6D 6D 24 44 41 54 45 54 49 4D 45 20 76
0140 31 2E 31 2E 34 33 20 28 43 29 20 32 30 31 37 20
0150 4A 2E 20 4E 4F 43 4B 0D 0A 44 69 73 70 6C 61 79
0160 73 20 74 68 65 20 63 75 72 72 65 6E 74 20 64 61
0170 74 65 20 61 6E 64 2F 6F 72 20 74 69 6D 65 20 66
0180 72 6F 6D 20 74 68 65 20 72 65 61 6C 74 69 6D 65
0190 20 63 6C 6F 63 6B 2E 0D 0A 55 73 65 3A 20 44 41
01A0 54 45 54 49 4D 45 20 5B 6F 70 74 69 6F 6E 61 6C
01B0 20 2F 44 2C 20 2F 54 2C 20 2F 57 2C 20 2F 55 5D
01C0 24 23 23 7A CD 3E 03 77 23 7A CD 44 03 77 23 7B
01D0 CD 3E 03 77 23 7B CD 44 03 77 C9 F5 7E FE 24 CA
01E0 29 03 CD 2B 03 23 C3 1C 03 F1 C9 F5 CD 35 03 28
01F0 FB F1 D3 01 C9 97 D3 03 DB 03 0F CB 4F C9 E6 F0
0200 0F 0F 0F 0F E6 0F FE 0A DA 52 03 D6 09 F6 40 C3
0210 54 03 F6 30 C9 00 00 00 00 00 00 00 00 00 00 00
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0240 24 23 23 7A CD 3E 03 77 23 7A CD 44 03 77 23 7B
0250 CD 3E 03 77 23 7B CD 44 03 77 C9 F5 7E FE 24 CA
0260 29 03 CD 2B 03 23 C3 1C 03 F1 C9 F5 CD 35 03 28
0270 FB F1 D3 01 C9 97 D3 03 DB 03 0F CB 4F C9 E6 F0
As you can see, the first record from the pasted data is missing from the saved file. Not sure why this is happening in CP/M 3
but not in CP/M 2.2. As I said, DOWNLOAD.COM in CP/M 2.2 is rock solid.
I'm thinking I'm going to have to revisit BIOS3 and have a closer look at the I in IO...