home *** CD-ROM | disk | FTP | other *** search
- > AMOS BUG REPORT - Updated August 15, 1995
- >
- > Personal Info
- > -------------
- > Name: Tim Lewis
- > EMail: tl14@diamond.bton.ac.uk
- >
- > Hardware
- > --------
- > Amiga: 500
- > FAST RAM: 512K
- > CHIP RAM: 512K
- > CPU: 68000
- > FPU: N/A
- > OS: (1.3)
- > Kickstart: 1.3?
- > Workbench: (1.3.2)
- > Peripherals: Midi Interface, printer - not always connected!
- >
- > AMOS
- > ----
- > AMOS: Creator
- > Version: 1.3.(I think)
- > Compiler: creator
- > Version: ?
- > Extensions: None
- > Startup: CLI
- > Background: None
- >
- > BUG Description
- > ---------------
- > Command: dim(x,x) - problem with large arrays
- > Severity: Crashes Amiga!
-
- When using large 2d arrays, declaring them does not cause an error! Even
- when you set the variable buffer to large amounts of memory (e.g. 50 - 100!!).
- The problem occurs when you try and write to the array at a position some way
- into the array.
- EXAMPLE: Declaring a 100*100 array, trying to write to location 100,81 causes
- the machine to freeze. Reset time. I did some checking myself and found that
- the machine location for the array is not continuous!!!
- Varptr(a(0,0)) = 254000 // rough example!
- Varptr(a(0,1)) = 254004 // or equivalent step (maybe not a Long Word)
- .
- .
- .
- Varptr(a(0,79)) = 26xxx // rough...
- Varptr(a(0,81)) = 16000 // !!!!!!!!!!!
-
- The editor is reserving enough memory for the array, but because of the
- memory chunk management is not actually reserving it as a continuous block!
- The referencing functions however, reckon it is!! So when you write to where
- the array storage should be but isn't......... you get the picture. A whole
- manner of different crashes can be obtained!!!
- This is obviously NOT GOOD!! Problem can be got round by using data banks
- and (P/D/L)oke & (P/D/L)eek commands!
-
-