jhallen / exorsim

Motorola M6800 (6800) Exorciser / SWTPC emulator
Other
43 stars 10 forks source link

exorsim does not recognise double sided disk images #3

Closed crestr1 closed 1 year ago

crestr1 commented 1 year ago

It appears to log them in on mdos startup as only having 2002 sectors not 4004 sectors.

mdos disks have 77 tracks of 26 128 byte sectors on each side

As a warning to users:

it appears that on shutdown auto-save DS images can wind up as SS, loosing half their size if you have used/altered them under mdos during that exorsim session.

Have not yet had time to look at the disk image cluster allocation and lockout tables to see how they are treated when you attempt to read and write files on a DS disk image.

The mdos "DUMP" command "S 1,2" shows the two CAT sectors data

jhallen commented 1 year ago

Can you show what it says when you start exorsim with a double-sided disk? For single-sided disks, it prints a line like this: 'mdos.dsk' opened for drive 0 (single sided)

crestr1 commented 1 year ago

mdos startup and dump DS disk drive 1 sects 1,2 EXORWIN WITH DS DISK

crestr1 commented 1 year ago

attaching two disk images last data byte is at 0x7D1FF Images.zip the test image was to make formatted but uninitialized disks from

jhallen commented 1 year ago

Ah well this EXORwin program is not mine!

When I use exorsim ("exor" command in this repository), I get this:

./exor user1.dsk Load facts file 'facts' Couldn't load 'facts' 'exbug.bin' loaded. 'user1.dsk' opened for drive 0 (double sided) <---- Recognized as double sided Hit Ctrl-C for simulator command line. Starting simulation...

CONT/LOAD/VERF

But also it does not like the CMI Read Test Image, the file is the wrong size:

./exor CMI\ Read\ Test\ Image.img Load facts file 'facts' Couldn't load 'facts' 'exbug.bin' loaded. 'CMI Read Test Image.img' is not a valid disk: it's size must be 512512 or 256256

jhallen commented 1 year ago

I think double sided is working with my exorsim program:

 ./exor mdos.dsk user1.dsk 
Load facts file 'facts'
Couldn't load 'facts'
'exbug.bin' loaded.
'mdos.dsk' opened for drive 0 (single sided)
'user1.dsk' opened for drive 1 (double sided)

Hit Ctrl-C for simulator command line.  Starting simulation...

MDOS  3.05
=DIR :1 
DRIVE : 1   DISK I.D. : BLANK
NO DIRECTORY ENTRY FOUND
=FREE :1
DRIVE 1 :  BLANK
      3980/$F8C SECTORS  160/$A0 FILES
      3980/$F8C LARGEST CONTIGUOUS BLOCK
=
crestr1 commented 1 year ago

https://exorsim.sourceforge.net/

looks like there is a use-by-date problem here: This points to the jhallen source code. The exe file we are using was from their link to the jhallen sandbox windows version.

I downloaded this quite a while ago and it was taken up by our Motorola 68xxx community because it gave us source code compatibility with all the old stuff we needed to move to more modern computers and media for archive and other purposes.

We have even tried running the Motorola PC cross assembler family in DOSBOX but they are not fully source code and directive compatible with the Genuine Exorciser resident software RASMs and linkers

Is a better working version of this one i sent the screen-shot of what we would get if we ran the latest makefile ?

I'm sure a new w10 one in the sandbox would be greatly appreciated, Not all the user community can do the make

crestr1 commented 1 year ago

Hi Joe

thanks for your very valuable work in making this software

attached is the copy of exorsim/exorwin we are using, we got this years ago.

it has served our community well until we started to get double sided disk images and it started corrupting them

the CMI read test image can be cut down to the size needed using a hex dump program and it provides both SS and DS images of formatted but uninitialised disks.

you get a DS disk by chopping it off at 0x7D200 just after the end indication text in the image.

the extra was put on to allow HXD software to create floppy disk data stream images that can be fed to floppy disk drive interfaces as floppy disk output data streams

cheers, Tony

At 01:29 AM 10/04/2023, you wrote:

Ah well this EXORwin program is not mine!

When I use exorsim ("exor" command in this repository), I get this:

./exor user1.dsk Load facts file 'facts' Couldn't load 'facts' 'exbug.bin' loaded. 'user1.dsk' opened for drive 0 (double sided) <---- Recognized as double sided Hit Ctrl-C for simulator command line. Starting simulation...

CONT/LOAD/VERF

But also it does not like the CMI Read Test Image, the file is the wrong size:

./exor CMI\ Read\ Test\ Image.img Load facts file 'facts' Couldn't load 'facts' 'exbug.bin' loaded. 'CMI Read Test Image.img' is not a valid disk: it's size must be 512512 or 256256

­ Reply to this email directly, https://github.com/jhallen/exorsim/issues/3#issuecomment-1501154122view it on GitHub, or https://github.com/notifications/unsubscribe-auth/A7AXA6EZRHFNITV7GVLMT6DXALIXHANCNFSM6AAAAAAWXXXUGMunsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

jhallen commented 1 year ago

EXORwin is from here: http://www.exorciser.net/excorciser3_en.htm It's a Windows GUI program. I see he says no more support available for it, and unfortunately, not source code is available.

exorsim is my code, is open source, and is here: https://github.com/jhallen/exorsim But it's a command line program, not GUI. I've used it in Windows under Cygwin and in Linux.

crestr1 commented 1 year ago

Hi Joe,

finally got around to cygwin tests of exorsim would appreciate some pointers here

attached make of exorsim I think shows a linking error that prevents getting an exe file

it seems that the rest seems to produce .exe files ok

regards, Tony @.*** ~/Work/exorsim-master $ make clean rm -f unasm.o utils.o exor.o sim6800.o asm6800.o mdos.o unasm6800.o exorterm.o unasm.d utils.d exor.d sim6800.d asm6800.d mdos.d unasm6800.d exorterm.d

@.*** ~/Work/exorsim-master $ ls asm6800.c doc exor.h exorterm.h gs mdos.dsk mon.d README.md swtbug.bin unasm.exe utils.c asm6800.h exbug.bin exorterm.c flex.dsk Makefile mdos.exe mon.o sim6800.c TODO unasm6800.c utils.h COPYING exor.c exorterm.c.bak fortran mdos.c mon.c mpl sim6800.h unasm.c unasm6800.h work

@. ~/Work/exorsim-master $ make exor gcc -c -g exor.c -o exor.o exor.c: In function ‘mread’: exor.c:154:47: warning: implicit declaration of function ‘read’; did you mean ‘mread’? [-Wimplicit-function-declaration] 154 | rtn = read(fileno(stdin), &read_ahead_c, 1); | ^~~~ | mread exor.c: In function ‘jump’: exor.c:803:17: warning: implicit declaration of function ‘simulated’ [-Wimplicit-function-declaration] 803 | simulated(addr); | ^~~~~ exor.c: In function ‘main’: exor.c:1004:25: warning: implicit declaration of function ‘parse_facts’ [-Wimplicit-function-declaration] 1004 | parse_facts(f); | ^~~ exor.c:1045:9: warning: implicit declaration of function ‘save_termios’ [-Wimplicit-function-declaration] 1045 | save_termios(); | ^~~~ exor.c:1046:9: warning: implicit declaration of function ‘sim_termios’ [-Wimplicit-function-declaration] 1046 | sim_termios(); | ^~~ exor.c:1058:9: warning: implicit declaration of function ‘restore_termios’ [-Wimplicit-function-declaration] 1058 | restore_termios(); | ^~~~~~~ gcc -c -g utils.c -o utils.o gcc -c -g sim6800.c -o sim6800.o gcc -c -g asm6800.c -o asm6800.o asm6800.c: In function ‘parse_val’: asm6800.c:355:14: warning: implicit declaration of function ‘parse_dec’; did you mean ‘parse_val’? [-Wimplicit-function-declaration] 355 | if (!parse_dec(buf, operand)) { | ^~~~~ | parse_val asm6800.c:356:21: warning: implicit declaration of function ‘parse_word’ [-Wimplicit-function-declaration] 356 | if (parse_word(buf, str)) { | ^~~~~~ asm6800.c: In function ‘assemble’: asm6800.c:412:17: warning: implicit declaration of function ‘skipws’ [-Wimplicit-function-declaration] 412 | skipws(&buf); | ^~ asm6800.c:427:22: warning: implicit declaration of function ‘jstricmp’; did you mean ‘strncmp’? [-Wimplicit-function-declaration] 427 | if (!jstricmp(table[x].insn, str)) { | ^~~~ | strncmp gcc -c -g unasm6800.c -o unasm6800.o unasm6800.c: In function ‘parse_facts’: unasm6800.c:66:21: warning: implicit declaration of function ‘parse_hex’ [-Wimplicit-function-declaration] 66 | if (parse_hex(&p, &addr) && skipws(&p)) { | ^~~~~ unasm6800.c:66:45: warning: implicit declaration of function ‘skipws’ [-Wimplicit-function-declaration] 66 | if (parse_hex(&p, &addr) && skipws(&p)) { | ^~ unasm6800.c:67:29: warning: implicit declaration of function ‘parse_word’ [-Wimplicit-function-declaration] 67 | if (parse_word(&p, keyword) && skipws(&p)) { | ^~~~~~ unasm6800.c:79:45: warning: implicit declaration of function ‘parse_dec’; did you mean ‘parse_facts’? [-Wimplicit-function-declaration] 79 | if (parse_dec(&p, &len) && skipws(&p) && | ^~~~~ | parse_facts gcc -c -g exorterm.c -o exorterm.o exorterm.c: In function ‘term_poll’: exorterm.c:1125:15: warning: implicit declaration of function ‘read’; did you mean ‘fread’? [-Wimplicit-function-declaration] 1125 | rtn = read(fileno(stdin), &c, 1); | ^~~~ | fread gcc -o exor exor.o utils.o sim6800.o asm6800.o unasm6800.o mon.o exorterm.o /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: utils.o:/home/h7man/Work/exorsim-master/utils.c:361: multiple definition of saved'; exor.o:/home/h7man/Work/exorsim-master/exor.c:65: first defined here /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: sim6800.o:/home/h7man/Work/exorsim-master/exor.h:1: multiple definition ofmon_out'; exor.o:/home/h7man/Work/exorsim-master/exor.h:1: first defined here /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: sim6800.o:/home/h7man/Work/exorsim-master/exor.h:2: multiple definition of mon_in'; exor.o:/home/h7man/Work/exorsim-master/exor.h:2: first defined here /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: mon.o:/home/h7man/Work/exorsim-master/exor.h:1: multiple definition ofmon_out'; exor.o:/home/h7man/Work/exorsim-master/exor.h:1: first defined here /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: mon.o:/home/h7man/Work/exorsim-master/exor.h:2: multiple definition of `mon_in'; exor.o:/home/h7man/Work/exorsim-master/exor.h:2: first defined here collect2: error: ld returned 1 exit status make: [Makefile:73: exor] Error 1

@.*** ~/Work/exorsim-master $

jallennk commented 1 year ago

I've checked in a fix for this, all header file issues.

Please "git pull" and try compiling again.

jhallen commented 1 year ago

Sorry, I mean "git pull".

On Fri, May 19, 2023 at 8:13 AM jallennk @.***> wrote:

I've checked in a fix for this, all header file issues.

Please "git checkout" and try compiling again.

— Reply to this email directly, view it on GitHub https://github.com/jhallen/exorsim/issues/3#issuecomment-1554482072, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACFR2NUHUCJWF2UZRRVSWZTXG5PW3ANCNFSM6AAAAAAWXXXUGM . You are receiving this because you commented.Message ID: @.***>