fixed incorrect directory sync
This commit is contained in:
nathanriggs 2020-10-01 17:50:51 -04:00
parent 3c0cd46cf1
commit 9f8c6c88f5
6 changed files with 242 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

BIN
bin/__damaged_d02_stdio.dsk Normal file

Binary file not shown.

View File

@ -0,0 +1,242 @@
# Disk 2 : STDIO Library and Aliases
- [Part I: The STDIO Library](#)
- [STDIO Components](#)
- [STDIO Header File](#)
- [Next Up: STDIO Macros](#)
- The `COL40` Macro
- The `COL80` Macro
- The `DIE80` Macro
- The `MTXT0` Macro
- The `MTXT1` Macro
- The `TGBDC` Macro
- The `TGBEC` Macro
- The `CURF` Macro
- The `CURB` Macro
- The `CURU` Macro
- The `CURD` Macro
- The `RCPOS` Macro
- The `SCPOS` Macro
- The `SETCX` Macro
- The `SETCY` Macro
- The `INP` Macro
- The `SINPUT` Subroutine
- The `GKEY` Macro
- The `WAIT` Macro
- The `PBX` Macro
- The `PDL` Macro
- The `PRN` Macro
- The `XPRINT` Subroutine
- The `DPRINT` Subroutine
- The `SPRN` Macro
- The `PRNSTR` Subroutine
- The `PRNC` Macro
- The `COLPRINT` Subroutine
- The `PRNM` Macro
- The `PRNW` Macro
- The `PRNMW` Macro
- The `TLINE` Macro
- The `TBLINE` Subroutine
- The `TCIRC` Macro
- The `TCIRCLE` Subroutine
- The `TVLIN` Macro
- The `TVLINE` Subroutine
- The `THLIN` Macro
- The `THLINE` Subroutine
- The `TRECF` Macro
- The `TRECTF` Subroutine
- The `TPUT` Macro
- The `TXTPUT` Subroutine
- The `TCLR` Macro
- The `TXTCLR` Subroutine
- The `TPNT` Macro
## PART I: STDIO Macros and Subroutine Library
The second disk inthe AppleIIAsm Collection includes all of the macros, subroutines, vectors and reserved memory locations for standard input and output on the Apple II. Note that by "Standard Output," we are primarily referring to the text screen only, and 40-column mode at that. A separate disk, as part of the "inessential" collection, will deal with 80-column mode as well as devices like printers. As for "Standard Input," here we refer to the keyboard and game paddle, though there are plans to also include optional mouse macros and subroutines (in some cases, the mouse is dealt with in the same fashion as the game paddle). Note that as with all libraries, the STDIO library will not function properly without the REQUIRED library.
---
## STDIO Components
The STDIO library contains the following components:
- A header file with various hooks, vectors and definitions for the rest of the library as well as use by the end programmer.
- Macros and subroutines dedicated to standard input and output, which includes keyboard and paddle input routines, 40-column text printing routines, basic text-mode drawing routines, and various macros and subroutines that support other functions provided by the Apple II that don't fit into the previous categories so well.
- Note that some routines use COUT, while others use direct screen memory manipulation (which is why some macros, especially those for drawing, will not translate to 80-column mode). Whether a macro uses COUT or direct memory access is revealed in the macro's or subroutine's given entry.
Macros are largely grouped here by function rather than by a more arbitrary aphabetical scheme, as used in the REQUIRED library documentation. First, macros and subroutines that do not fit in with any of the other categories will be covered. This seems counterintuitive at first, but hopefully the reasoning for it will reveal itself as the documentation is read (long story short: these miscellaneous subroutines can have drastic effects on the rest of the subroutines). Next, COUT cursor macros and subroutines are detailed, followed by standard input routines and screen output routines that rely on COUT for funtionality.
Lastly, macros and subroutines that directly access screen memory to output characters are covered. Usually, these subroutines and macros are dedicated to creating shapes, lines, and ASCII art in general. Note that while this can be used in tandem with the macros and subroutines that use COUT, the standard COUT routine will not recognize that these characters have been plotted, and the cursor position will remain the same as before.
---
## STDIO Header File
_Summary_
The STDIO header file is required for all macros and subroutines to work correctly, although there may be a select few that can get away without its inclusion. Primarily, this header file contains vectors and hooks that point to routines found in the Monitor.
| Condition | Value |
| --- | --- |
| Name | File: HEAD.STDIO.ASM |
| Type | Header File |
| Author | Nathan Riggs |
| Last Revision | 19-JAN-2020 |
| Assembler | Merlin 8 Pro |
| OS | Apple DOS 3.3 |
| Purpose | Provide appropriate hooks for standard input and output |
| Dependencies | none |
| Bytes | 0 |
| Notes | Repeatedly used subroutines by the library may be placed here in the future |
---
*DETAILS*
As with all files in the collection, this header file includes a short heading that provides contact information, date last changed, number of bytes, a short description, etc.
`Listing 2.0: HEAD.STDIO File Heading`
```asm
*
*``````````````````````````````*
* HEAD.REQUIRED *
* *
* THESE ARE HOOKS THAT ARE *
* USED BY THE STDIO LIBRARY. *
* *
* AUTHOR: NATHAN RIGGS *
* CONTACT: NATHAN.RIGGS@ *
* OUTLOOK.COM *
* *
* DATE: 19-JAN-2020 *
* ASSEMBLER: Merlin Pro 8 *
* OS: DOS 3.3 *
* *
* BYTES: 0 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
```
Most of the pointers in the STDIO header are rather self-explanatory, and therefore will not be covered here. When used, some of these may be explained more in the macro or subroutine documentation.
`Listing 2.1: HEAD.STDIO CODE`
```asm
*
*``````````````````````````````*
* HEAD.STDIO.ASM *
* *
* THESE ARE HOOKS, VECTORS AND *
* POINTERS THAT ARE USED BY *
* THE STDIO LIBRARY. *
* *
* AUTHOR: NATHAN RIGGS *
* CONTACT: NATHAN.RIGGS@ *
* OUTLOOK.COM *
* *
* DATE: 19-JAN-2020 *
* ASSEMBLER: MERLIN 8 PRO *
* OS: DOS 3.3 *
* *
* BYTES: 0 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
* OUTPUT
*
COUT1 EQU $FDF0 ; FASTER SCREEN OUTPUT
COUT EQU $FDED ; MONITOR STD OUTPUT
HOME EQU $FC58 ; CLEAR SCREEN, HOME CURSOR
VTAB EQU $FC22 ; MONITOR CURSOR POS ROUTINE
CURSH EQU $24 ; HPOS OF COUT CURSOR
CURSV EQU $25 ; VPOS OF COUT CURSOR
KEYBUFF EQU $0200 ; KEYBUFFER START
GSTROBE EQU $C040 ; GAME CONNECTOR STROBE
GBCALC EQU $F847 ; SCREEN CALCULATION
GBPSH EQU $26 ; VALUE RETURNED BY GBCALC
*
* INPUT
*
KYBD EQU $C000 ; LDA SINGLE KEYPRESS
STROBE EQU $C010 ; CLEAR KYBD BUFFER
GETLN EQU $FD6F ; MONITOR GET LINE OF KB INPUT
GETKEY EQU $FD0C ; MONITOR GET SINGLE KEY INPUT
*
* PADDLE ADDRESS LABELS
*
PREAD EQU $FB1E ; READ STATE OF PADDLE
PB0 EQU $C061 ; PADDLE BUTTON 0
PB1 EQU $C062 ; PADDLE BUTTON 1
PB2 EQU $C063 ; PADDLE BUTTON 2
PB3 EQU $C060 ; PADDLE BUTTON 3
*
** UNUSED BY LIBRARY
*
WNDLEFT EQU $20 ; SCROLL WINDOW LEFT
WNDWIDTH EQU $21 ; SCROLL WINDOW WIDTH
WNDTOP EQU $22 ; SCROLL WINDOW TOP
WNDBOT EQU $23 ; SCROLL WINDOW BOTTOM
TEXTP1 EQU $0400 ; START OF TEXT PAGE 1
TEXTP2 EQU $0800 ; START OF TEXT PAGE 2
PAGE1 EQU $C054 ; SOFT SWITCH USE PAGE 1
PAGE2 EQU $C055 ; SOFT SWITCH USE PAGE 2
S80COL EQU $C01F ; READ ONLY; CHECK IF 80C
TXTSET EQU $C051 ; TEXT ON SOFT SWITCH
SETWND EQU $FB4B ; SET NORMAL WINDOW MODE
CURADV EQU $FBF4 ; ADVANCE CURSOR RIGHT
CURBS EQU $FC10 ; CURSOR LEFT
CURUP EQU $FC1A ; CURSOR UP
CR EQU $FC62 ; CARRIAGE RETURN TO SCREEN
LF EQU $FC66 ; LINE FEED ONLY TO SCREEN
CLEOL EQU $FC9C ; CLEAR TEXT TO END OF LINE
OPAPP EQU $C061 ; OPEN-APPLE KEY
CLAPP EQU $C062 ; CLOSED-APPLE KEY
```