From 41b02bf23cdbcef3e81bc90a4fb7f24d051b4f0d Mon Sep 17 00:00:00 2001 From: nanochess Date: Fri, 5 Jan 2024 15:28:59 -0600 Subject: [PATCH] Solved bug in x86_64 for 2006/Toledo2, also clarified where appears HALT.COM and IMPORT.COM --- 2006/toledo2/README.md | 20 ++++++++++++++------ 2006/toledo2/toledo2.c | 2 +- bugs.md | 12 ++++-------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/2006/toledo2/README.md b/2006/toledo2/README.md index de659d10c..7ace7867b 100644 --- a/2006/toledo2/README.md +++ b/2006/toledo2/README.md @@ -15,7 +15,6 @@ The current status of this entry is: ``` STATUS: INABIAF - please **DO NOT** fix -STATUS: missing files - please provide them ``` For more detailed information see [2006 toledo2 in bugs.md](/bugs.md#2006-toledo2). @@ -133,20 +132,29 @@ All good programmers started learning [BASIC](https://en.wikipedia.org/wiki/BASIC), now, what about a [CP/M](https://en.wikipedia.org/wiki/CP/M) emulator? +The KAYPROII.ZIP files comes originally from [http://www.retroarchive.org/cpm/os/KAYPROII.ZIP](http://www.retroarchive.org/cpm/os/KAYPROII.ZIP) -Copy `CPM64.COM` from the `SOURCE` directory to files named `A` and `B` (these +Copy [CPM64.COM](CPM64.COM) to files named `A` and `B` (these will be the disk drives). Now rename the provided [C.BIOS](C.BIOS) to `C` and -run the emulator. +run the emulator. Make sure to change the permissions to 666 with CHMOD. Now you have a running [CP/M](https://en.wikipedia.org/wiki/CP/M) system!, with two files on A: drive, `HALT.COM` to stop the emulator (so it closes drives) and -`IMPORT.COM` to introduce new files. +`IMPORT.COM` to introduce new files. The two files are created automatically +by the provided C.BIOS. To get a complete [CP/M](https://en.wikipedia.org/wiki/CP/M) system, you will need the following files from the `SOURCE` directory: - ASM.COM DDT.COM DUMP.COM ED.COM LOAD.COM - PIP.COM STAT.COM SUBMIT.COM XSUB.COM +* [ASM.COM](ASM.COM) +* [DDT.COM](DDT.COM) +* [DUMP.COM](DUMP.COM) +* [ED.COM](ED.COM) +* [LOAD.COM](LOAD.COM) +* [PIP.COM](PIP.COM) +* [STAT.COM](STAT.COM) +* [SUBMIT.COM](SUBMIT.COM) +* [XSUB.COM](XSUB.COM) To import them, you must run the emulator with an argument, by example: diff --git a/2006/toledo2/toledo2.c b/2006/toledo2/toledo2.c index c441c13c5..94b573085 100644 --- a/2006/toledo2/toledo2.c +++ b/2006/toledo2/toledo2.c @@ -41,7 +41,7 @@ 207)-1 S 2 S 6 S 2 S 182 S 4)?D(0)D(1)D(2)D(3)D(4)D(5)D(6)D(7)(z=x-2 C C C C C C C C+129 S 6 S 4 S 6 S 8 S 8 S 6 S 2 S 2 S 12)?x/64-1?((0 O a(y)=a(x) O 9 [o]=a(5),8[o]=a(4) O 237==*c++?((int (*)())(2-*c++?fwrite:fread))(l+*k+1[k]* -256,128,1,(fseek(y=5[k]-1?u:v,((3[k]|4[k]<<8)<<7|2[k])<<7,Q=0),y)):0 O y=a(5 +256,128,1,(fseek(e=5[k]-1?u:v,((3[k]|4[k]<<8)<<7|2[k])<<7,Q=0),e)):0 O y=a(5 ),z=a(4),a(5)=a(3),a(4)=a(2),a(3)=y,a(2)=z O c=l+d(5) O y=l[x=d(9)],z=l[++x] ,x[l]=a(4),l[--x]=a(5),a(5)=y,a(4)=z O 2-*c?Z||read(0,&Z,1),1&*c++?Q=Z,Z=0:( Q=!!Z):(c++,Q=r=V?fgetc(V):-1,s=s&~1|r<0) O++c,write(1,&7[o],1) O z=c+2-l,w, diff --git a/bugs.md b/bugs.md index 2b228bf19..4bfe0b5b3 100644 --- a/bugs.md +++ b/bugs.md @@ -2518,14 +2518,10 @@ be called a bug :-) You must type in caps (except in strings) and this program is indeed case-sensitive. - -### STATUS: missing files - please provide them - -A file is missing from the archive linked to by the author so we have not been -able to add it. Cody tried a few of the other zip files at the website linked to -but no luck. Do you have the proper file? The file is `IMPORT.COM`. If you do -please provide a link or make a pull request, adding it to the repo, after -testing it to make sure it works in the program. +[Oscar Toledo G.](/winners.html#Oscar_Toledo) went back over the program +and modified the fread/fwrite section to use the variable FILE *e instead of +int y, making it to work on x86_64 Mac. Also, he added a note to clarify from +where appears the `IMPORT.COM` and `HALT.COM` files. # 2007