Home » Archimedes archive » Archimedes World » AW-1996-10.adf » !SampleCD_SampCD » AtapiFix

AtapiFix

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1996-10.adf » !SampleCD_SampCD
Filename: AtapiFix
Read OK:
File size: 06F7 bytes
Load address: 0000
Exec address: 0000
File contents
dp11@unix.york.ac.uk (D Plunkett) 

CDFSsoftATAPI v.1.23 bug Fix

20 Apr 1996 12:40:23 GMT The University of York, UK 

Newsgroups: 
   comp.sys.acorn.programmer 

Hello

After a little work I have a Bug Fix for CDFSsoftATAPI v.1.23 (31 Mar 1995)
(RISCOS 3.6 version). I am not sure if the bug is the fault of my six speed
Aztech CDROM or the module, but one of them is not truely ATAPI!!

This small change fixes two bugs 

1) "Compact disc Faulty " error with any data CDROM on the aztech drive.

2) " Not an audio track" error. This mainly occurs with sampleCD

The bug is in the CD_SetParameters code. This fix prevent the errors being 
generated. The actual error is generated much lower down in the code &1598.
This piece of code is used by mamy other CD_ SWI's so it cannot be changed here.
This fixes is not the best solution to the problem but it seams to work.

Using !ZAP get the module and goto &484 change the BVS &8D0 to MOV R0,R0.
Save the Module to !boot.choices.boot.PreDesk
Reboot machine 
All should now be okay.

I still have a problem with large files eg. >490k. When I drag a JPEG to
!changeFSI the JPEG will be corrupt. When I copy the JPEG to harddisc and 
then to !changeFSI it will be okay. This is not effected by changing the
buffersize.

When using SampleCD I find I have to use the following sequence :
        Click on Play
        Set Start (0 00:00:00 does not seam to be valid)
        set Length
        Click on stop and then wait 
        Drag icon to disc

This fix has only be tested on my machine with my hardware! It might not work
for you.

There does seam to be a verison 1.30e floating about but it also has the same
errors for me.

CDspeed thinks it can get 1.367Mbytes/second off my CDROM !!

Hope this will help some people

Dominic



00000000  64 70 31 31 40 75 6e 69  78 2e 79 6f 72 6b 2e 61  |dp11@unix.york.a|
00000010  63 2e 75 6b 20 28 44 20  50 6c 75 6e 6b 65 74 74  |c.uk (D Plunkett|
00000020  29 20 0a 0a 43 44 46 53  73 6f 66 74 41 54 41 50  |) ..CDFSsoftATAP|
00000030  49 20 76 2e 31 2e 32 33  20 62 75 67 20 46 69 78  |I v.1.23 bug Fix|
00000040  0a 0a 32 30 20 41 70 72  20 31 39 39 36 20 31 32  |..20 Apr 1996 12|
00000050  3a 34 30 3a 32 33 20 47  4d 54 20 54 68 65 20 55  |:40:23 GMT The U|
00000060  6e 69 76 65 72 73 69 74  79 20 6f 66 20 59 6f 72  |niversity of Yor|
00000070  6b 2c 20 55 4b 20 0a 0a  4e 65 77 73 67 72 6f 75  |k, UK ..Newsgrou|
00000080  70 73 3a 20 0a 20 20 20  63 6f 6d 70 2e 73 79 73  |ps: .   comp.sys|
00000090  2e 61 63 6f 72 6e 2e 70  72 6f 67 72 61 6d 6d 65  |.acorn.programme|
000000a0  72 20 0a 0a 48 65 6c 6c  6f 0a 0a 41 66 74 65 72  |r ..Hello..After|
000000b0  20 61 20 6c 69 74 74 6c  65 20 77 6f 72 6b 20 49  | a little work I|
000000c0  20 68 61 76 65 20 61 20  42 75 67 20 46 69 78 20  | have a Bug Fix |
000000d0  66 6f 72 20 43 44 46 53  73 6f 66 74 41 54 41 50  |for CDFSsoftATAP|
000000e0  49 20 76 2e 31 2e 32 33  20 28 33 31 20 4d 61 72  |I v.1.23 (31 Mar|
000000f0  20 31 39 39 35 29 0a 28  52 49 53 43 4f 53 20 33  | 1995).(RISCOS 3|
00000100  2e 36 20 76 65 72 73 69  6f 6e 29 2e 20 49 20 61  |.6 version). I a|
00000110  6d 20 6e 6f 74 20 73 75  72 65 20 69 66 20 74 68  |m not sure if th|
00000120  65 20 62 75 67 20 69 73  20 74 68 65 20 66 61 75  |e bug is the fau|
00000130  6c 74 20 6f 66 20 6d 79  20 73 69 78 20 73 70 65  |lt of my six spe|
00000140  65 64 0a 41 7a 74 65 63  68 20 43 44 52 4f 4d 20  |ed.Aztech CDROM |
00000150  6f 72 20 74 68 65 20 6d  6f 64 75 6c 65 2c 20 62  |or the module, b|
00000160  75 74 20 6f 6e 65 20 6f  66 20 74 68 65 6d 20 69  |ut one of them i|
00000170  73 20 6e 6f 74 20 74 72  75 65 6c 79 20 41 54 41  |s not truely ATA|
00000180  50 49 21 21 0a 0a 54 68  69 73 20 73 6d 61 6c 6c  |PI!!..This small|
00000190  20 63 68 61 6e 67 65 20  66 69 78 65 73 20 74 77  | change fixes tw|
000001a0  6f 20 62 75 67 73 20 0a  0a 31 29 20 22 43 6f 6d  |o bugs ..1) "Com|
000001b0  70 61 63 74 20 64 69 73  63 20 46 61 75 6c 74 79  |pact disc Faulty|
000001c0  20 22 20 65 72 72 6f 72  20 77 69 74 68 20 61 6e  | " error with an|
000001d0  79 20 64 61 74 61 20 43  44 52 4f 4d 20 6f 6e 20  |y data CDROM on |
000001e0  74 68 65 20 61 7a 74 65  63 68 20 64 72 69 76 65  |the aztech drive|
000001f0  2e 0a 0a 32 29 20 22 20  4e 6f 74 20 61 6e 20 61  |...2) " Not an a|
00000200  75 64 69 6f 20 74 72 61  63 6b 22 20 65 72 72 6f  |udio track" erro|
00000210  72 2e 20 54 68 69 73 20  6d 61 69 6e 6c 79 20 6f  |r. This mainly o|
00000220  63 63 75 72 73 20 77 69  74 68 20 73 61 6d 70 6c  |ccurs with sampl|
00000230  65 43 44 0a 0a 54 68 65  20 62 75 67 20 69 73 20  |eCD..The bug is |
00000240  69 6e 20 74 68 65 20 43  44 5f 53 65 74 50 61 72  |in the CD_SetPar|
00000250  61 6d 65 74 65 72 73 20  63 6f 64 65 2e 20 54 68  |ameters code. Th|
00000260  69 73 20 66 69 78 20 70  72 65 76 65 6e 74 20 74  |is fix prevent t|
00000270  68 65 20 65 72 72 6f 72  73 20 62 65 69 6e 67 20  |he errors being |
00000280  0a 67 65 6e 65 72 61 74  65 64 2e 20 54 68 65 20  |.generated. The |
00000290  61 63 74 75 61 6c 20 65  72 72 6f 72 20 69 73 20  |actual error is |
000002a0  67 65 6e 65 72 61 74 65  64 20 6d 75 63 68 20 6c  |generated much l|
000002b0  6f 77 65 72 20 64 6f 77  6e 20 69 6e 20 74 68 65  |ower down in the|
000002c0  20 63 6f 64 65 20 26 31  35 39 38 2e 0a 54 68 69  | code &1598..Thi|
000002d0  73 20 70 69 65 63 65 20  6f 66 20 63 6f 64 65 20  |s piece of code |
000002e0  69 73 20 75 73 65 64 20  62 79 20 6d 61 6d 79 20  |is used by mamy |
000002f0  6f 74 68 65 72 20 43 44  5f 20 53 57 49 27 73 20  |other CD_ SWI's |
00000300  73 6f 20 69 74 20 63 61  6e 6e 6f 74 20 62 65 20  |so it cannot be |
00000310  63 68 61 6e 67 65 64 20  68 65 72 65 2e 0a 54 68  |changed here..Th|
00000320  69 73 20 66 69 78 65 73  20 69 73 20 6e 6f 74 20  |is fixes is not |
00000330  74 68 65 20 62 65 73 74  20 73 6f 6c 75 74 69 6f  |the best solutio|
00000340  6e 20 74 6f 20 74 68 65  20 70 72 6f 62 6c 65 6d  |n to the problem|
00000350  20 62 75 74 20 69 74 20  73 65 61 6d 73 20 74 6f  | but it seams to|
00000360  20 77 6f 72 6b 2e 0a 0a  55 73 69 6e 67 20 21 5a  | work...Using !Z|
00000370  41 50 20 67 65 74 20 74  68 65 20 6d 6f 64 75 6c  |AP get the modul|
00000380  65 20 61 6e 64 20 67 6f  74 6f 20 26 34 38 34 20  |e and goto &484 |
00000390  63 68 61 6e 67 65 20 74  68 65 20 42 56 53 20 26  |change the BVS &|
000003a0  38 44 30 20 74 6f 20 4d  4f 56 20 52 30 2c 52 30  |8D0 to MOV R0,R0|
000003b0  2e 0a 53 61 76 65 20 74  68 65 20 4d 6f 64 75 6c  |..Save the Modul|
000003c0  65 20 74 6f 20 21 62 6f  6f 74 2e 63 68 6f 69 63  |e to !boot.choic|
000003d0  65 73 2e 62 6f 6f 74 2e  50 72 65 44 65 73 6b 0a  |es.boot.PreDesk.|
000003e0  52 65 62 6f 6f 74 20 6d  61 63 68 69 6e 65 20 0a  |Reboot machine .|
000003f0  41 6c 6c 20 73 68 6f 75  6c 64 20 6e 6f 77 20 62  |All should now b|
00000400  65 20 6f 6b 61 79 2e 0a  0a 49 20 73 74 69 6c 6c  |e okay...I still|
00000410  20 68 61 76 65 20 61 20  70 72 6f 62 6c 65 6d 20  | have a problem |
00000420  77 69 74 68 20 6c 61 72  67 65 20 66 69 6c 65 73  |with large files|
00000430  20 65 67 2e 20 3e 34 39  30 6b 2e 20 57 68 65 6e  | eg. >490k. When|
00000440  20 49 20 64 72 61 67 20  61 20 4a 50 45 47 20 74  | I drag a JPEG t|
00000450  6f 0a 21 63 68 61 6e 67  65 46 53 49 20 74 68 65  |o.!changeFSI the|
00000460  20 4a 50 45 47 20 77 69  6c 6c 20 62 65 20 63 6f  | JPEG will be co|
00000470  72 72 75 70 74 2e 20 57  68 65 6e 20 49 20 63 6f  |rrupt. When I co|
00000480  70 79 20 74 68 65 20 4a  50 45 47 20 74 6f 20 68  |py the JPEG to h|
00000490  61 72 64 64 69 73 63 20  61 6e 64 20 0a 74 68 65  |arddisc and .the|
000004a0  6e 20 74 6f 20 21 63 68  61 6e 67 65 46 53 49 20  |n to !changeFSI |
000004b0  69 74 20 77 69 6c 6c 20  62 65 20 6f 6b 61 79 2e  |it will be okay.|
000004c0  20 54 68 69 73 20 69 73  20 6e 6f 74 20 65 66 66  | This is not eff|
000004d0  65 63 74 65 64 20 62 79  20 63 68 61 6e 67 69 6e  |ected by changin|
000004e0  67 20 74 68 65 0a 62 75  66 66 65 72 73 69 7a 65  |g the.buffersize|
000004f0  2e 0a 0a 57 68 65 6e 20  75 73 69 6e 67 20 53 61  |...When using Sa|
00000500  6d 70 6c 65 43 44 20 49  20 66 69 6e 64 20 49 20  |mpleCD I find I |
00000510  68 61 76 65 20 74 6f 20  75 73 65 20 74 68 65 20  |have to use the |
00000520  66 6f 6c 6c 6f 77 69 6e  67 20 73 65 71 75 65 6e  |following sequen|
00000530  63 65 20 3a 0a 20 20 20  20 20 20 20 20 43 6c 69  |ce :.        Cli|
00000540  63 6b 20 6f 6e 20 50 6c  61 79 0a 20 20 20 20 20  |ck on Play.     |
00000550  20 20 20 53 65 74 20 53  74 61 72 74 20 28 30 20  |   Set Start (0 |
00000560  30 30 3a 30 30 3a 30 30  20 64 6f 65 73 20 6e 6f  |00:00:00 does no|
00000570  74 20 73 65 61 6d 20 74  6f 20 62 65 20 76 61 6c  |t seam to be val|
00000580  69 64 29 0a 20 20 20 20  20 20 20 20 73 65 74 20  |id).        set |
00000590  4c 65 6e 67 74 68 0a 20  20 20 20 20 20 20 20 43  |Length.        C|
000005a0  6c 69 63 6b 20 6f 6e 20  73 74 6f 70 20 61 6e 64  |lick on stop and|
000005b0  20 74 68 65 6e 20 77 61  69 74 20 0a 20 20 20 20  | then wait .    |
000005c0  20 20 20 20 44 72 61 67  20 69 63 6f 6e 20 74 6f  |    Drag icon to|
000005d0  20 64 69 73 63 0a 0a 54  68 69 73 20 66 69 78 20  | disc..This fix |
000005e0  68 61 73 20 6f 6e 6c 79  20 62 65 20 74 65 73 74  |has only be test|
000005f0  65 64 20 6f 6e 20 6d 79  20 6d 61 63 68 69 6e 65  |ed on my machine|
00000600  20 77 69 74 68 20 6d 79  20 68 61 72 64 77 61 72  | with my hardwar|
00000610  65 21 20 49 74 20 6d 69  67 68 74 20 6e 6f 74 20  |e! It might not |
00000620  77 6f 72 6b 0a 66 6f 72  20 79 6f 75 2e 0a 0a 54  |work.for you...T|
00000630  68 65 72 65 20 64 6f 65  73 20 73 65 61 6d 20 74  |here does seam t|
00000640  6f 20 62 65 20 61 20 76  65 72 69 73 6f 6e 20 31  |o be a verison 1|
00000650  2e 33 30 65 20 66 6c 6f  61 74 69 6e 67 20 61 62  |.30e floating ab|
00000660  6f 75 74 20 62 75 74 20  69 74 20 61 6c 73 6f 20  |out but it also |
00000670  68 61 73 20 74 68 65 20  73 61 6d 65 0a 65 72 72  |has the same.err|
00000680  6f 72 73 20 66 6f 72 20  6d 65 2e 0a 0a 43 44 73  |ors for me...CDs|
00000690  70 65 65 64 20 74 68 69  6e 6b 73 20 69 74 20 63  |peed thinks it c|
000006a0  61 6e 20 67 65 74 20 31  2e 33 36 37 4d 62 79 74  |an get 1.367Mbyt|
000006b0  65 73 2f 73 65 63 6f 6e  64 20 6f 66 66 20 6d 79  |es/second off my|
000006c0  20 43 44 52 4f 4d 20 21  21 0a 0a 48 6f 70 65 20  | CDROM !!..Hope |
000006d0  74 68 69 73 20 77 69 6c  6c 20 68 65 6c 70 20 73  |this will help s|
000006e0  6f 6d 65 20 70 65 6f 70  6c 65 0a 0a 44 6f 6d 69  |ome people..Domi|
000006f0  6e 69 63 0a 0a 0a 0a                              |nic....|
000006f7