Coder Social home page Coder Social logo

a8clibrary's Introduction

image info

A8 C Window Library

Atari 8 Bit Text Mode Windowing Library written in C (CC65).

This is a text mode windowing library complete with window controls and modern gadgets (widgets). The gadgets allow you to build input forms that use buttons, radio buttons, input strings (with scrolled lengths and type restrictions), check boxes, progress bars, etc. This allows you to build applications with "modern"-ish interfaces. I refer to this as a TUI - Text User Interface.

The windowing system preserves the contents under a window, but is not z-order based (by design). It is up to you to open and close windows in the correct order. Complete sample programs are included, as well as full API documentation.

I originally wrote this in Action! language for the Atari 8 bit starting in 2015. I added to it continually up through this year (2022).

I ran into some limitations with the Action! version in a project regarding memory space and function paramater size when compiled into a standlone executable. This prompted the conversion into C. I considered several C implementations on the Atari 8 bit itself, then settled on CC65 to use modern development tools and target the A8 platform. The C version is now the primary version of the library, and has advanced beyond the Action! version.

Version 1.1 brought the addition of APE Time bindings to the library, which allows the retrieval of the date and time from an APE Time compatible device or software. This was unpublished because I was also working on the 1.2 release which I thought would be right on the APE bindings heals.

Version 1.2 brings the addition of FujiNet bindings to the library. This consists of a core set of functions for communicating with the FujiNet (opening connections, reading from, writing to, and closing connections, etc). It also includes Base64 encoding and decoding by means of the FujiNet, as well as hashing using SHA1, SHA256, and SHA512. Offloading these compute intensive operations to the FujiNet, yet enabling the Atari to work with them!

Version 1.21 brings performance improvements courtesy of @billkendrick. Approximately 15% faster. Performance test added to appdemo.c.

Version 1.30 brings borderless / frameless window support, minor bug fix in WPrint(), and a reworked Menu() function that adds support for horizontal (single line) menu bars.

Version 1.40 brings GList() which is a list selection input control.

Version 1.42 brings fix to GList() navigation to make more sense, adding GUPPER to GInput() to force uppercase text, and adds remaining A-Z keycodes in primary header file.

Version 1.43 brings fix to Menu() selected item de-highlight placement at exit when used in horizontal orientation.

Version 1.44 brings GLOWER to GInput() to force lowercase text, and GFNAME to GInput() to force uppercase and only allow valid filename characters.

Version 1.45 brings GStat() function to display simple non-interactive status windows for short program operations.

Version 1.46 brings A8LibDOS, which includes the function SDGDate(). SDGDate() retrieves the date and time from the SpartaDOS COMTAB table, which is independent of the actual real time clock being used.

Version 1.47 brings IsSD() to A8LibDOS, which detects and returns if SpartaDOS is present or not.

License: GNU General Public License v3.0

See the LICENSE file for full license information.

a8clibrary's People

Contributors

billkendrick avatar ripjetski6502 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.