AMCAF Extension V1.40 Manual  Index

AMCAF Extension History

V1.50beta 11-Jan-98
- Found some wrongly assembled lines in the protracker vibrato table.
  If someone encountered some scarce problems the modules using
  fine-vibrato, these should be gone now.
- New c2p routine by Mikael Kalms. Up to 20%-80% faster and now also
  supports plane depth from 4 to 6!
- Fixed a little bug that wouldn't play samples longer than 64KB
  correctly (just a lsr.w instead of a lsr.l).
- Probably fixed a lot of bugs and spurious crashes introduced with the
  last beta.
- Fixed a newly introduced bug in Lzstr$ and Lsstr$.
- Found something new out about AMOS and fixed some bugs with editor-
  compiled programs.
- Added new transition commands:
  - Alloc Trans Source bank
  - Set Trans Source bank/address
  - Alloc Trans Map bank,width,height
  - Set Trans Map bank/address,width,height
  - Alloc Code Bank bank,size
  - Trans Screen Runtime scr,bitplane,ox,oy
  - Trans Screen Dynamic scr,bitplane,ox,oy
  - Trans Screen Static NOT YET IMPLEMENTED
  - Trans C2p chkbuf NOT YET IMPLEMENTED
  Some last words: Allocating the Code bank to small will cause memory
  overwrites. Wrong or stupid parameter values are not checked for
  validity. The Trans commands are still a bit slow (3 VBLs for a 256x256
  pixel transition with MC68060 and all caches disabled, 0.8 VBLs for the
  same transition with all caches turned on).
  Maybe the C2P Transition will be a bit better. Still need to update the
  c2p to a state-of-the-art routine (by Kalms).
- New for ALL PT sample commands: Entering a negative value as channel
  bitmask will trigger the Pt Free Voice function which will search for
  the best channel number to use for sample replaying. Really handy
  indeed! Pt Free Voice is rather complex:
  - it first checks if the bitmask is zero and if so, it returns 0.
  - then it checks, if only one bit was set in the mask and returns
    the same.
  - after that, it finds out if all four channels (or the ones given in
    the bitmask) are currently playing a sound. If so, it returns the
    channel bit of the sound which will cut off least.
  - if there are free channels, it verifies, if music is playing at all.
    If not, it returns the first free channel.
  - so for music is playing, it looks if the user has masked out a
    channel from the music (and which is currently free).
  - then it checks for the remaining channels are playing looping sounds
    for those will be not taken if necessary.
  - the last step finds out the shortest sound currently played on the
    channels, and then returns its channel bit.
  So you'll get the most of your game sfx and music if you're using the
  free voice function!
- New functions:
  - =Pt Free Voice[(bitmask)]
- Lzstr and Lsstr now return '9999...' if number is too large to fit into
  the given amount of digits.
- Sample&music-mixer changed to be more accurate (samples could have been
  cut off some VBLs too early if the music was playing at higher cia
  speeds than 125bmp) with cia-timed mods (at least this should have been
  the case in theory).
- The sample replayer now uses a 2 byte chip mem buffer to kill the
  high pitched beep sound sometimes appeared on samples which started
  with 2 non-zero bytes. FixSamBank should now no longer be required.
- Pt Raw Play can now play looping samples by giving a negative length.
- Implemented Vu Meters to AMAL. BUT it will ONLY work, if you REMOVE
  the original AMOS Music Extension. No other way to get it work!
- Added support for negative numbers in Lzstr$ and Lsstr$.

V1.44 27-Jul-96
- Fixed a bug in Ssave.
- Fixed a minor bug in Pt Play (cia speed is now reset to 125).
- Fixed a bug in Qsqr. Now bigger numbers than 0-65535 can be used.
  (Warning: starting with numbers >65535 it gets a bit inaccurate!
  Remember that the resolution of the result remains 8 bit!)

V1.43 02-Nov-96
- Added Sload/Ssave. Just the same commands like in the music
  extension. Now you can really remove it!
- Misc bugfixes.

V1.42 18-Oct-96
- Added support for Set Tmpras for Fellipse&Fcircle commands.
- Added type check for Protracker modules.

V1.41 29-Mar-96
- Fixed bug in Xfire.
- Misc changes.

V1.40 26-Dec-95
- New commands:
  - =Pt Cpattern
  - =Pt Cpos
  - =Pt Cinstr(channel)
  - =Pt Cnote(channel)
  - Pt Sam Freq channel,freq
  - =Vclip(v,lower To upper)
  - =Vin(v,lower To upper)
  - =Vmod(v,upper)
  - =Vmod(v,lower To upper)
  - =Insstr$(a$,b$,pos)
  - =Cutstr$(a$,pos1 To pos2)
  - =Replacestr$(a$,search$ To replace$)
  - =Itemstr$(a$,item)
  - =Itemstr$(a$,item,sep$)
  - =Qarc(dx,dy)
  - =Even(val)
  - =Odd(val)
  - =Ham Point(x,y)
  - Set Object Date file$,date,time
  - =Aga Detect
  - Pal Spread c1,rgb1 To c2,rgb2
  - =Ct String(time$)
  - =Cd String(date$)
  - C2p Convert st,wx,wy To screen,ox,oy
  - C2p Shift st,wx,wy To st2,shift
  - C2p Fire st,wx,wy To st2,sub
- Pal Set Screen now does a 'View' automatically.
- Another bug in Ptile Paste has been fixed.
- Sine-Table moved and shortened, so I save about 1536 Bytes,
  added Arctan-Table.

V1.31 03-Oct-95
- Actually, the bug hasn't been in Change Bank Font but in Make Bank Font.
  Although this bug is now fixed, I suppose you have to recreate all old
  bank fonts.
- Finally removed Rnc Unpack and =Rnp.
- Fixed a bug in Pt Stop which cut off the channels, even if no music had
  been playing.
- New commands:
  - Pt Continue
- Fixed a bug in Change Bank Font.

V1.30 31-Aug-95
- Various changes to get the extension under the 32 KB limit.
- Best Pen now supports EHB mode.
- Found a bug in the PlaySample routine and removed it.
- Removed a little bug in Pt Raw Play.
- Obvious bug in Extpath$ fixed (Thx Ben!)
- New commands:
  - =Best Pen($RGB[,c1 To c2])
  - Bzoom s1,x1,y1,x2,y2 To s2,x3,y3,m
  - =X Smouse
  - =Y Smouse
  - Limit Smouse [x1,y1 To x2,y2]
  - Smouse X x
  - Smouse Y y
  - Smouse Speed speed
  - =Smouse Key
  - =Xfire(port,button)

V1.19 30-Jun-95
- New commands:
  - Exchange Bob i1,i2
  - Exchange Icon i1,i2

V1.18 21-Mar-95
- Fixed a very scarcely appearing bug in Turbo Plot.

V1.17 16-Feb-95
- Little bug in the protracker routines: mask for FineSlideUp was $D
  instead of $F, what resulted in ignoring $2 slides. (Thx Patrick)

V1.16 29-Jan-95
- Little flaw appeared with the protracker cia replay code: Pt Cia Speed
  did not work correctly in compiled programs (but I don't know why!).
- Forgotten a Pt Sam command by mistake:
  - Pt Sam Volume [voice,] volume
- Reworked code a bit to ensure the demo version is working (32 KB limit!).
- New palette handling commands:
  - Pal Get Screen palnr,screen
  - Pal Set Screen palnr,screen
  - =Pal Get(palnr,colindex)
  - Pal Set palnr,colindex,colour

V1.1 28-Dec-94
- Adapted protracker replay code to handle samples correctly.
- New commands:
  - =Pt Data Base
  - =Pt Instr Address(samnr)
  - =Pt Instr Length(samnr)
  - Pt Bank bank
  - Pt Raw Play voice,address,length,freq
  - Pt Instr Play samnr
  - Pt Instr Play voice,samnr[,freq]
  - Pt Sam Bank bank
  - Pt Sam Play samnr
  - Pt Sam Play voice,samnr[,freq]
  - Pt Sam Stop voice
- Tiny optimizations on Ham Fade.
- One more bug in Ptile Paste removed.
- Bug in Speek: Speek did only allow even addresses.
- Silly bug in Lsstr$ and Lzstr$. Often they did produce trashed strings
  or didn't return from the call.

V1.0 16-Oct-94
- Removed a few little bugs in the registration code.

V1.0 06-Oct-94
- Imploder Load didn't free the lock on a file if the loading process was
  successful. Fixed.

V1.0 22-Sep-94
- Every string allocation reserves two bytes more. Now there seem to be no
  problems with the string buffer anymore.

V1.0 28-Aug-94
- Ptile Paste had a bug. Removed.
- =Extpath$ did overwrite 32 KB of variable buffer using empty strings!!!
- =Ham Best completely rewritten. Works even better now.
- Added one more error check to Coords Read and =Count Pixels.
- Coords Bank reserved a bank which was not completely used up and could
  hold exactly one pair of coordinates less.
- Coords Bank corrupted the memory or crashed when trying to create a bank
  with zero coordinates.
  The same with Splinters Bank. Bug removed.
- =Ham Best rewritten. Now it is much quicker as before!
  Hint came from Dr. Peter Kittel, now ex-employee of Commodore, Class 95.
- Protracker: Vumeter did not support the C-Command, for that reason
  =Pt Vu returned 64 as volume most of the time. Bug removed.
- Protracker: If a channel had been turned off, neither the signal could
  be received nor have speed and other commands been taken notice of.
  Implemented subroutine to handle this case.
- Renamed Secexp to Binexp and Seclog to Binlog.
- Protracker: added more init code. Now there should not be any flaws with
  funks or patternrepeats when playing many modules after each other.
- Moved database from chipram to fastram (really should have done this
  much earlier!).
- Due to the improvements named above, the code became to long to execute
  a certain branch command. This caused AMOS to crash. Bug removed.

V0.992 27-Jul-94
- Yeah, got some vacations at last and can now fully concentrate on the
  manual. Release date of V1.0 was set to 1.9.94.
- Extension restructured, so ensure that all functions, that do have a
  token, are placed into the upper 32 KB. Now everything should work again
- Now you can switch between CIA and VBL timing while playing a module.
- Encountered a small bug in Bank Copy which was killed immediately.
- Re implemented some commands: Rnc Unpack and =Rnp.
- New commands:
  - =Qsqr(value)
  - Bcircle x,y,r,c
- Added clipping for Turbo Plot, Shade Pix and Turbo Point. Now they are
  as secure as the normal Plot and Point commands.
- Improved the speed of Ham Fade a little.
- When reaching the end of a song, Pt Signal now reports $FF.

V0.991 18-Jul-94
- New commands:
  - Set Rain Colour rainnr,colour
  - Rain Fade rainnr,colour
  - Rain Fade rainnr To rainnr

V0.990 01-Jul-94
- Removed some command to shrink the size of the extension:
  - Rnc Unpack
  - =Rnp
- Deleted a few error messages from Io Error$.

V0.990 04-Jun-94
- 'Created' a lethal bug by resorting the command groups. Seems to be an
  AMOS interior bug, but when I write Audio Lock and Audio Free at the end
  of the extension every other command should work. However, I could not
  test if every command works, so be warned! Strangely enough, all
  commands do work when compiled, which indicates the existence of this
  AMOS bug.
- New commands:
  Blitter Copy Limit screen
  Blitter Copy Limit x1,y1 To x2,y2
  Blitter Copy sc1,pl1 [,sc2,pl2 [,sc3,pl3]] To sc4,pl4 [,minterm]

V0.989 03-Jun-94
- Discovered bugs in Blitter Fill and Blitter Clear which have caused some
  strange structure faults (e.g quitting from For-Next loops)

V0.989 03-Jun-94
- Made Blitter Fill more secure.
- New commands:
  - Blitter Clear screen,plane
  - Blitter Clear screen,plane,x1,y1 To x2,y2
  - Blitter Wait
  - flag=Blitter Busy
  - Shade Pix x,y
  - Shade Pix x,y,planes

V0.988 02-Jun-94
- At last Turbo Draw does now support clipping. Even implemented some
  special check routines for the blitter mode.

V0.988 31-May-94
- Hurray!!! Splinters do now work totally correctly.
- Various optimizations on Splinters and Td Stars.
  - Reduced memory consumption from 32 to 22 bytes per Splinter.
  - Reduced memory consumption from 16 to 12 bytes per Td Star.

V0.987 29-May-94
- New commands, to satisfy Markus:
  - Make Bank Font bank
  - Change Bank Font bank
- New function:
  - =Cop Pos
- Little flaw: Pt Play did not reset the signal to zero.
- New functions:
  - =Vec Pos Z(x,y,z)
  - =Vec Pos Z
- Removed private commands.

V0.986 27-May-94
- Added three quite private temporary commands (for a maildisk)
  Will be removed immediately after completing the maildisk.
  - Private A bank1,bank2,bitplane,maxrand
  - =Private B(bank2)
  - =Private C(bank2)
  DO NOT USE!!! Wrong use will crash the computer!!!
- New function:
  - =Qrnd(value) as replacement for Rnd... does not need Randomize and is
- Error in the token list caused a wrong syntax of Blitter Fill to be
  converted into Pt Play. Funny :)
- Found and removed an error in the Blitter Fill commands. Blitter Fill
  filled the screen one line to deep -> memory got corrupted.
- There was a bug in the vector rotation calculation with negative

V0.986 25-May-94
- New command to stop Bernd from complaining:
  - Change Print Font bank

V0.986 24-May-94
- Completed the Vec Rot commands. Removed =Vec Rot Adr again.
- Vec Rot commands:
  - Vec Rot Pos posx,posy,posz
  - Vec Rot Angles angx,angy,angz
  - Vec Rot Precalc
  - =Vec Rot X(x,y,z)
  - =Vec Rot X
  - =Vec Rot Y(x,y,z)
  - =Vec Rot Y

V0.985 24-May-94
- Removed a bug in Cd Date$. (Thx Bernd)
- Discovered and corrected a cheap bug in Blitter Fill screen,plane.
- Removed the bug in Turbo Draw when using the blitter mode.
- New commands:
  - =Qsin(angle,factor)                 angle must be between 0 and 1023
  - =Qcos(angle,factor)                 factor is the value that is
                                        multiplied with the sinus value.
  - Vec Rot Pos midx,midy,midz          Positions for the vector rotation.
  - Vec Rot Angles angx,angy,angz       Rotation angle.
- Still buggy:
  - Vec Rot Precalc                     Creation of the matrix
  - =Vec Rot X(x,y,z)                   Calculation of the new x-value
  - =Vec Rot Y(x,y,z)                   Calculation of the new y-value
- Added the function =Vec Rot Adr for testing reasons.

V0.984 21-May-94
- New syntaxes for Blitter Fill:
  - Blitter Fill screen,plane
  - Blitter Fill screen,plane,x1,y1,x2,y2
  - Blitter Fill s1,p1 To s2,p2
  - Blitter Fill s1,p1,x1,y1,x2,y2 To s2,p2
- Turbo Draw doesn't draw on non-existing bitplanes anymore. (Thx Marc)
- Change Font now adds '.font' automatically, if needed. (Thx Markus)

I'm afraid to say that there are no history entries for the other half of
the year.