author: bocianu bocianu@gmail.com
Set of useful constants, registers and methods to simplify common system related tasks in Atari 8-bit programming.
This library is a part of 'blibs' - set of custom Mad-Pascal libraries.
https://gitlab.com/bocianu/blibs
name: | value: | description: |
---|---|---|
PORTB_SELFTEST_OFF | %10000000 | portb bit value to turn Self-Test off |
PORTB_BASIC_OFF | %00000010 | portb bit value to turn Basic off |
PORTB_SYSTEM_ON | %00000001 | portb bit value to turn System on |
name: | description: |
---|---|
SystemOff | procedure SystemOff(port_b: byte); assembler; overload;Turns off OS with custom PORTB($D301) value.
parameters: |
SystemOff | procedure SystemOff; overload;Turns off OS and BASIC. Gives maximum available RAM. |
SystemReset | procedure SystemReset; overload;Turns on OS back and resets machine. |
EnableVBLI | procedure EnableVBLI(vblptr: pointer); assembler;Enable and set custom handler for Vertical Blank Interrupt. To set vertical blank interrupt vector from your inline assembly code, use label __vblvec to store new routine address. Example: lda <myVblRoutine sta __vblvec lda >myVblRoutine sta __vblvec+1
parameters: |
DisableVBLI | procedure DisableVBLI; assembler;Disables custom routine of Vertical Blank Interrupt. |
EnableDLI | procedure EnableDLI(dliptr: pointer); assembler;Enable and set custom handler for Display List Interrupt. To set display list interrupt vector from your inline assembly code, use label __dlivec to store new routine address. Example: lda <myDliRoutine sta __dlivec lda >myDliRoutine sta __dlivec+1
parameters: |
DisableDLI | procedure DisableDLI; assembler;Disables Display List Interrupts. |
EnableIRQ | procedure EnableIRQ; assembler;Enables IRQ Interrupts. |
DisableIRQ | procedure DisableIRQ; assembler;Disables IRQ Interrupts. |
SetIRQ | procedure SetIRQ(irqptr:pointer); assembler;Set IRQ Interrupt Vector. |
WaitFrame | procedure WaitFrame; assembler;Waits till drawing of current frame ends. |
WaitFrames | procedure WaitFrames(frames: byte);Waits for a specified number of frames. Each frame is 1/50 sec for PAL systems, or 1/60 sec for NTSC.
parameters: |
SetCharset | procedure SetCharset(msb: byte);Sets font charset located at specified page of memory.
parameters: |