
 1000  *SAVE FAST & SHORT HBASCALC
 1010  *--------------------------------
 1020  *      DRIVER ROUTINE TO PRINT OUT
 1030  *      CALCULATED BASE ADDRESSES
 1040  *--------------------------------
 1050  TEST   LDX #0
 1060  .1     TXA
 1070         JSR CALC
 1080         TXA
 1090         JSR $FDDA
 1100         LDA 1
 1110         JSR $FDD3
 1120         LDA 0
 1130         JSR $FDDA
 1140         LDA #$A0
 1150         JSR $FDED
 1160         INX
 1170         CPX #192
 1180         BCC .1
 1190         RTS
 1200  *--------------------------------
 1210  *      BASE ADDRESS CALCULATOR
 1220  *      HARRY CHEUNG
 1230  *      PMB 1601, ONITSHA, NIGERIA
 1240  *      CALL APPLE, JULY 1983, PAGE 70
 1250  *--------------------------------
 1260  CALC   TAY          (TAY..TYA COULD BE PHA..PLA)
 1270         AND #$C7     ABCDEFGH
 1280         STA 0        AB000FGH
 1290         ORA #$08     FOR BASE = $2000, $10 FOR $4000
 1300         STA 1        AB001FGH
 1310         TYA          ABCDEFGH
 1320  *                CARRY..A-REG......$00.......$01...
 1330         ASL          A--BCDEFGH0  AB000FGH  AB001FGH
 1340         ASL          B--CDEFGH00     "         "
 1350         ROR 0        H--   "      BAB000FG     "
 1360         ASL          C--DEFGH000     "         "
 1370         ROL 1        A--   "         "      B001FGHC
 1380         ROR 0        G--   "      ABAB000G     "
 1390         ASL          D--EFGH0000
 1400         ROL 1        B--   "         "      001FGHCD
 1410         ASL          E--FGH00000     "         "
 1420         ROR 0        G--   "      EABAB000  001FGHCD
 1430         RTS
 1440  *--------------------------------
 1450  LRCALC.1
 1460         PHA
 1470         AND #$18     000DE000
 1480         ASL          00DE0000
 1490         STA 0
 1500         ASL          0DE00000
 1510         ASL          DE000000
 1520         ORA 0        DEDE0000
 1530         STA 0
 1540         PLA          000DEFGH
 1550         LSR          0000DEFG
 1560         ROR 0        HDEDE000
 1570         AND #$03     000000FG
 1580         ORA #$04     000001FG  (FOR PAGE 1)
 1590         STA 1
 1600         RTS
 1610  *--------------------------------
 1620  LRCALC.2
 1630         PHA
 1640         AND #$18     000DE000
 1650         BEQ .1
 1660         CMP #$10
 1670         LDA #$A0
 1680         BCS .1
 1690         LSR
 1700  .1     STA 0        DEDE0000
 1710         PLA          000DEFGH
 1720         LSR          0000DEFG
 1730         ROR 0        HDEDE000
 1740         AND #$03     000000FG
 1750         ORA #$04     000001FG  (FOR PAGE 1)
 1760         STA 1
 1770         RTS
 1780  *--------------------------------
 1790  *      FROM APPLESOFT ROM AT $F417-$F437
 1800  *--------------------------------
 1810  MON.GBASL  .EQ $26
 1820  MON.GBASH  .EQ $27
 1830  HGR.PAGE   .EQ $E6
 1840  AS.HRCALC
 1850         PHA          Y-POS ALSO ON STACK
 1860         AND #$C0     CALCULATE BASE ADDRESS FOR Y-POS
 1870         STA MON.GBASL     FOR Y=ABCDEFGH
 1880         LSR               GBASL=ABAB0000
 1890         LSR
 1900         ORA MON.GBASL
 1910         STA MON.GBASL
 1920         PLA           (C)   (A)     (GBASH)   (GBASL)
 1930         STA MON.GBASH  ?-ABCDEFGH  ABCDEFGH  ABAB0000
 1940         ASL            A-BCDEFGH0  ABCDEFGH  ABAB0000
 1950         ASL            B-CDEFGH00  ABCDEFGH  ABAB0000
 1960         ASL            C-DEFGH000  ABCDEFGH  ABAB0000
 1970         ROL MON.GBASH  A-DEFGH000  BCDEFGHC  ABAB0000
 1980         ASL            D-EFGH0000  BCDEFGHC  ABAB0000
 1990         ROL MON.GBASH  B-EFGH0000  CDEFGHCD  ABAB0000
 2000         ASL            E-FGH00000  CDEFGHCD  ABAB0000
 2010         ROR MON.GBASL  0-FGH00000  CDEFGHCD  EABAB000
 2020         LDA MON.GBASH  0-CDEFGHCD  CDEFGHCD  EABAB000
 2030         AND #$1F       0-000FGHCD  CDEFGHCD  EABAB000
 2040         ORA HGR.PAGE   0-PPPFGHCD  CDEFGHCD  EABAB000
 2050         STA MON.GBASH  0-PPPFGHCD  PPPFGHCD  EABAB000
 2060  *--------------------------------
 2070         RTS
 2080  *--------------------------------

