Giter VIP home page Giter VIP logo

misc-asm-68k-amiga-ocs's Introduction

My Assembly library for the Amiga 500 and its Motorola 68000.

It has grown over the years and contains a collection of miscellaneous endeavours. Some highlights are listed below.

API

A list of APIs for being called from AmigaBASIC. In general, the purpose is to significantly speed up basic programs. Access to the API is obtained via the entry point LoadAssem.

  • Data transfer: Move...
  • Decoder: DrawIFF
  • Graphics: Fade..., FillScreen, Scroll, ZoomOut
  • Library access: DropMem, ForeScreen, Print..., ReserveMem, Lesen, Schreiben
  • Sorter: Ranking

Commands

The binaries of these assembly programs can be put to the command folder C and executed from the shell.

  • LoadIFF: Loads an displays an IFF image.
  • Nibble: The source file and its destination as parameter and copies the file one data block at the time. Progress is indicated in small popover during the copy. This helps to partially copy files that are affected by read-errors.
  • PhoyhTracker: Plays music for a Tracker file on Amiga's four sound channels.
  • PrintC64Star10: Prints an IFF image or markup text onto the Star 10 by tunneling the data stream through a Commodore 64 (C64) gateway.
  • ScreenSaver*: Series of screen savers. ScreenSaverServer loops through them.
    • ScreenSaverEllipse: Rotates the screen clockwise (or anti-clockwise for ScreenSaverEllipse2) by repeatedly altering the system-configuration.
    • ScreenSaverMaus: Mouse pointer shows morph animation from I to A to Z.
    • ScreenSaverStars: Based on program Stars5 - when run from the command line, the text can be defined as parameter.
      • Stars
  • SequenceShorter: Executes program according to the mouse position. This is useful when booting from the harddisk and wanting to directly open a program. The data schema used in the current version of this command corresponds to the matrix of images/iff/SequenceShorterStartMenu, which needs to be shown separately upfront - at best during the startup-sequence so that the user has some time to position the mouse. The execution targets are not part of this repository.

Macros

Reusable program parts that go far into the direction of a higher level programming language, including data structures and new abstraction levels.

Programs

Small standalone programs or demos. Larger demos that make extensive use of Amiga's OCS are extracted into separate repositories (for example, see here and here).

  • C64Loader & C64Saver: Emulates C64's floppy drive Commodore 1541. This enables C64's LOAD"...",8 and SAVE"...",8 commands to be run against the Amiga file system (and hopefully hard disk).
  • Clock: Simulates elliptical clock with speedup x700.
    • Clock
  • Dungeon3d16colors: Texture mapping of an IFF image on a 3d model of a wall - treated as a repeating tile. The frame rate is only about 1 to 2 frames per second. If only one (instead of the four) bitplanes were used, this would scale up to about 6 frames per second. Note how bad bitplanes are for pixel-based operations.
    • Dungeon3d-before Dungeon3d-after
  • LigaSpieltag: Draws random matches between eight Bundesliga teams and rolls their result.
    • LigaSpieltag
  • MillenniumTransfer: Recreates the resource transfer GUI of Millennium 2.2.
    • Millennium
  • RaumschiffeVersenken: Lets you place your spaceships in this variant of the Battleship game. The art is self-created and stored in dc.bs.
    • Battleship
  • PicEmboss: Extracts edges from arbitrary IFF and shows an emboss version of the image. The sensitivity of edge recognition is controlled by the y-coordinate of the mouse. So move your mouse up or down to experiment with the effects.
    • PicEmboss-before PicEmboss-after
  • ScrollMaster: Arbitrary text is read from disk and scrolled in smoothly to left. Later versions include bouncing text (v1.1+) and a spaceship making its way to the right (v1.2).
    • ScrollMaster1
      ScrollMaster2
  • Stars: Five versions of flying through the stars.
    • Stars: The stars looking to the side - based on OS APIs.
    • Stars2: The same but this time directly on the hardware.
    • Stars3: The same looking straight.
    • Stars4: Adding Dual Playfield mode containing text. This is also the version used for the screensaver commands/ScreenSaverStars.
    • Stars5: Adding vector graphics of a spaceship (or similar) instead of the text in the upper portion.
    • Stars5
  • Text2dRevolving: Turns text independently in both y and z axis. The period length of both axis is not a multiple of each other, leading to zoom-like effects. The lines connecting the letter polyline endpoints are drawn by the Blitter based on a mask.
    • Text2dRevolving1 Text2dRevolving2
  • WindowSlideDownUp: Lets the current screen bounce down and up.
  • ZoomOutBitmap: Displays bitmap and draws a minified version of it onto an arbitrary screen position.
    • ZoomOutBitmap

Proof-of-Concepts (POCs)

Initial tests on how to consume OS APIs (Intuition,...) or co-processor capabilities. In general, nothing useful comes out of the POC execution (except validating the consumption).

  • BlitterLineMaskEffect: Draws a triangle based on masked lines using the Blitter, resulting in a strange area pattern.
    • BlitterLineMaskEffect

How to Use

Put the repository into a mounted directory of an emulated A500 and run the start script (assuming that DevPac v2 is installed in mounted C, and that your mounted directory is in dh9):

execute devpac214d

You can also start using the workbench (info-files provided).

Some programs are pre-assembled in bin. You can directly execute from there, too.

misc-asm-68k-amiga-ocs's People

Contributors

phoyh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.