SK8LIB - Commodore 64 VIC, MATH, MEMORY Library

Author:
Real Name: Emir Akaydin
Handle: Skate
Groups: Glance (C=64), Clash (PC)

Sk8lib VIC+Math+Mem Library
-Release 2- Package Includes:

/examples
history.txt

sk8mathlib.a
sk8memlib.a
sk8viclib.a

# Download #
Release Date: 09.01.2007

Previous Versions
-Release 1-

31.12.2006
# Download #

History
0.5b
* Bugfix: SetSpriteAddress -> Number out of range error for banks 0,1 and 2 is fixed
* Bugfix: SetSpriteColor -> SPR3,SPR4,SPR5,SPR6 and SP7 were pointing to wrong addresses

0.4b
* First Release

No additional documentation yet. Check the source codes (examples folder).

License:
This library is public domain. You can use it however you want. You are allowed to change the source codes and even redistribute it under your name. If you use this library in any of your projects, giving a credit to the author is up to you.

Library History:
This library project is started as just a VIC library by Skate at the end of 2005 for internal usage. But after using it in various projects, new features and even new libraries are added. But currenty (r1) math and memory libraries are very poor. But VIC library seems ok. I don't like to use VIC addresses with labels. I mean I prefer to write $d012 instead of RASTER_POSITION etc. So, if you are familiar with VIC, you will be able to use everything as they are but you'll have some additional macros and sub routines. If you are new with VIC, read some documentation on VIC, then my library will save you from some bit calculations which is a big headache for beginners.

What are the advantages and disadvantages of sk8lib?

VIC Library


+ Easy to use constants like "Screen Mode Constants" and "Sprite Constants"
+ VIC library includes only macros and it doesn't use any zeropage addresses or any memory address at all
+ "SetScreen" macro is very powerful. Specially PC kids will like that one :)
+ Optimized for not wasting any cycles. For example if you want to set first 3 sprites y coordinates to 50, you need to write:

+SetSpritePosX SPR0|SPR1|SPR2, 50

  This will generate the code below:

lda #50
sta $d000
sta $d002
sta $d004

  So, you are safe with this library. You won't have any bad results like this:

lda #50
sta $d000
lda #50
sta $d002
lda #50
sta $d004

- Not very well documented
- There is still some missing VIC features
- No advanced features for raster timing etc.

MATH Library

+ Multiply feature. That's the only good feature of this library right now :)
- Hundreds of missing mathematical functions :)
- Needs initialization
- Uses zeropage from $40 to $47
- Uses 8k from RAM for tables ($c800-$cfff)
- ~2k is reserved for routines ($c600-$c7ff)
- Not that easy to understand for beginners

MEM Library

+ Easy to fill memory blocks ($100 -> 1 block)
+ Fast fill for <$100 memory areas.
+ Easy to copy memory blocks.
- Lots of missing features
- Uses zeropage from $30 to $33
- FillBlock and CopyBlock has no alternatives for different block sizes.



(C) 2006-2007 Emir Akaydin - Skate of Glance & Clash
This site is visited times