back to project page

Apple II Programmers Aid 1.2.5.$D6DD~$D716 - Entry Points.BIN Disassembly

                   ; ==============================================================================
                   ; Apple II [$D0 ROM] (341-0016) - Programmer's Aid #1 [1978]
                   ; ==============================================================================
                   ; Part 2.5 [$D692~$D716]: BASIC Entry Points by Steve Wozniak [WOZ];
                   ; Copyright (c) 1978 by Apple Computer Inc.  All Rights Reserved
                   ; ------------------------------------------------------------------------------
                   ; Instructions are in the Programmer's Aid #1 Installation and Operating Manual
                   ; ==============================================================================
                   ; Analyzed (via McFadden's SourceGen) by James Davis  [Last Updated: 2020/06/15]
                   ; ==============================================================================
                   ; 
                   ; Equates:
                   ; 
                   R1L             EQU   $02    {addr/1} ;Sweet 16 Register #1, Low
                   R1H             EQU   $03    {addr/1} ;Sweet 16 Register #1, High
                   R2L             EQU   $04    {addr/1} ;Sweet 16 Register #2, Low
                   R2H             EQU   $05    {addr/1} ;Sweet 16 Register #2, High
                   R3L             EQU   $06    {addr/1} ;Sweet 16 Register #3, Low
                   R3H             EQU   $07    {addr/1} ;Sweet 16 Register #3, High
                   R4L             EQU   $08    {addr/1} ;Sweet 16 Register #4, Low
                   R4H             EQU   $09    {addr/1} ;Sweet 16 Register #4, High
                   LOMEM           EQU   $4A    {addr/2} ;Pointer to Start of BASIC Variables
                   RENUM           EQU   $D408           ;Apple II BASIC Renumber Subroutine

                                   ORG   $D6DD
                   ; 
                   ; ==============================================================================
                   ; Renumber/Append Sweet 16 Equates: SW16 Registers & Locations used here ... (*)
                   ; ==============================================================================
                   ; NEWINCR   EQU     $02    {addr/1}   ;R1L: New LNO Increment (INCR) Value   (*)
                   ; LNLO      EQU     $03    {addr/1}   ;R1H: Low LNO of RENUM Range           (*)
                   ; LNHI      EQU     $04    {addr/1}   ;R2L: High LNO of RENUM Range          (*)
                   ; TBLSTRT   EQU     $05    {addr/1}   ;R2H: LNO Table Start                  (*)
                   ; TBLINDX1  EQU     $06    {addr/1}   ;R3L: Pass 1 LNO Table Index           (*)
                   ; TBLIM     EQU     $07    {addr/1}   ;R3H: LNO Table Limit                  (*)
                   ; SCR8      EQU     $08    {addr/1}   ;R4L: Scratch Register                 (*)
                   ; HMEM      EQU     $08    {addr/1}   ;R4L: HIMEM (End of Program)           (*)
                   ; SCR9      EQU     $09    {addr/1}   ;R4H: Scratch Register                 (*)
                   ; PRGNDX    EQU     $09    {addr/1}   ;R4H: Pass 1 Program Index             (*)
                   ; ==============================================================================
                   ; 
                   ; 
                   ; ==============================================================================
                   ; BASIC Renumber Subroutine Entry Points:
                   ; ==============================================================================
                   ; 
                   ;                    ****************************************
                   ;                    *                                      *
                   ;                    *              RENUMBER                *
                   ;                    *             >CLR                     *
                   ;                    *             >START=                  *
                   ;                    *             >STEP=                   *
                   ;                    *             >CALL -10531             *
                   ;                    *                  =($D6DD)            *
                   ;                    *                                      *
                   ;                    *              OPTIONAL                *
                   ;                    *             >FROM=                   *
                   ;                    *             >TO=                     *
                   ;                    *             >CALL -10521             *
                   ;                    *                  =($D6E7)            *
                   ;                    *                                      *
                   ;                    *            USE RENX ENTRY            *
                   ;                    *           FOR RENUMBER ALL           *
                   ;                    *                                      *
                   ;                    ****************************************
                   ; 
                   ; ----------------------------------- ;BASIC Renumber S/R Entry Pt.: Call -10531
                   ;                                     ;(to renumber an entire BASIC program)
D6DD: A0 00        RENALL          LDY   #0              ;Clear Y-Index Register
D6DF: 84 06                        STY   R3L             ;Clear Sweet 16 Register #3, Low
D6E1: 84 07                        STY   R3H             ;Clear Sweet 16 Register #3, High
D6E3: 88                           DEY                   ;Reduce Y-Index to -1
D6E4: 98                           TYA                   ;Set Accumulator to -1
D6E5: D0 0E                        BNE   RENCOMMON       ;Always Taken
                   ; 
                   ; ----------------------------------- ;BASIC Renumber S/R Entry Pt.: Call -10521
                   ;                                     ;(to renumber part of a BASIC program)
D6E7: A0 1A        RENPART         LDY   #26             ;Set Indexed Addressing Index
D6E9: 20 0E D7                     JSR   RENGETVAR       ;Set (A,Y)=(BASIC VARTAB Entry, Lo/Hi)
D6EC: 85 06                        STA   R3L             ;Set Sweet 16 Register #3, Low
D6EE: 84 07                        STY   R3H             ;Set Sweet 16 Register #3, High
D6F0: A0 21                        LDY   #33             ;Set Indexed Addressing Index
D6F2: 20 0E D7                     JSR   RENGETVAR       ;Set (A,Y)=(BASIC VARTAB Entry, Lo/Hi)
                   ; 
                   ; ----------------------------------- ;BASIC Renumber Entry Pts. Common Routine:
                   ;                                     ;(to renumber all or part of a program)
D6F5: 85 08        RENCOMMON       STA   R4L             ;Set Sweet 16 Register #4, Low
D6F7: 84 09                        STY   R4H             ;Set Sweet 16 Register #4, High
D6F9: A0 08                        LDY   #8              ;Set Indexed Addressing Index
D6FB: 20 0E D7                     JSR   RENGETVAR       ;Set (A,Y)=(BASIC VARTAB Entry, Lo/Hi)
D6FE: 85 02                        STA   R1L             ;Set Sweet 16 Register #1, Low
D700: 84 03                        STY   R1H             ;Set Sweet 16 Register #1, High
D702: A0 11                        LDY   #17             ;Set Indexed Addressing Index
D704: 20 0E D7                     JSR   RENGETVAR       ;Set (A,Y)=(BASIC VARTAB Entry, Lo/Hi)
D707: 85 04                        STA   R2L             ;Set Sweet 16 Register #2, Low
D709: 84 05                        STY   R2H             ;Set Sweet 16 Register #2, High
D70B: 4C 08 D4                     JMP   RENUM           ;Go to Apple II BASIC Renumber Subroutine

                   ; ==============================================================================
                   ; Renumber/Append Get BASIC Variable Table Entry Subroutine
                   ; ==============================================================================
                   ; 
                   ; ----------------------------------- ;Set (A,Y)=(BASIC VARTAB Entry, Lo/Hi)
D70E: B1 4A        RENGETVAR       LDA   (LOMEM),Y       ;Get BASIC Variable Table Entry, Low
D710: 48                           PHA                   ;Push BASIC Variable Table Entry, Low
D711: C8                           INY                   ;Advance Indexed Addressing Index
D712: B1 4A                        LDA   (LOMEM),Y       ;Get BASIC Variable Table Entry, High
D714: A8                           TAY                   ;Set (Y)=(BASIC VARTAB Entry, High)
D715: 68                           PLA                   ;Set (A)=(BASIC VARTAB Entry, Low)
D716: 60                           RTS                   ;Return to Caller

Symbol Table

RENALL$D6DD
RENCOMMON$D6F5
RENGETVAR$D70E
RENPART$D6E7