Apple ii Battery Charger User Manual


 
1903 EC5E 4A LSR A ;ONLY ROW 1
1904 EC5F 90 06 BCC GETK00 ;GOT YOU
1905 EC61 68 PLA
1906 EC62 CA DEX
1907 EC63 D0 F0 BNE GETK0
1908 EC65 F0 DC BEQ GETKY ;THERE IS A MISTAKE CHECK AGAIN
1909 EC67 68 GETK00 PLA ;NOW GET STBKEY INTO X
1910 EC68 AD 2B A4 LDA STBKEY ;CLMN INTO X
1911 EC6B 49 FF EOR #$FF ;COMPLEMENT BECAUSE STRBS ARE 0
1912 EC6D AA TAX ;CTRL OR SHIFT TO X
1913 EC6E EE 2A A4 INC KMASK ;SET MSK=$01
1914 EC71 ;NOW GET ANY KEY
1915 EC71 20 05 ED GETK1 JSR ONEKEY ;GET A KEY
1916 EC74 88 DEY ;CHK THE ROW (1-8)
1917 EC75 D0 09 BNE GETK1B ;CHK IF CTRL OR SHIFT
1918 EC77 AD 2B A4 LDA STBKEY ;WERE ENTERED AT THE LAST MOMENT
1919 EC7A C9 F7 CMP #$F7 ;IF CLMN 5,6,7,8 TO IT AGAIN
1920 EC7C B0 04 BCS GETK2
1921 EC7E 90 C3 BCC GETKY ;SEND IT TO GET CTRL OR SHIFT
1922 EC80 30 C1 GETK1B BMI GETKY ;NO KEY ,CLEAR MSK
1923 EC82 ;WE HAVE A KEY ,DECODE IT
1924 EC82 20 2C ED GETK2 JSR DEBK1 ;DEBOUNCE KEY (5 MSEC)
1925 EC85 98 TYA ;MULT BY 8
1926 EC86 0A ASL A
1927 EC87 0A ASL A
1928 EC88 0A ASL A
1929 EC89 A8 TAY ;NOW Y HAS ROW ADDR FROM ROW 1
1930 EC8A AD 2B A4 LDA STBKEY ;ADD COLUMN TO Y
1931 EC8D 4A GETK3 LSR A
1932 EC8E 90 03 BCC GETK4
1933 EC90 C8 INY
1934 EC91 D0 FA BNE GETK3
1935 EC93 B9 21 F4 GETK4 LDA ROW1,Y ;GET THE CHR
1936 EC96 48 PHA
1937 EC97 8A TXA ;SEE IF CTRL OR SHIFT WAS USED
1938 EC98 F0 24 BEQ GETK7 ;BRCH IF NO CTRL OR SHIFT
1939 EC9A 29 10 AND #$10 ;CTRL ?
1940 EC9C F0 06 BEQ GETK5 ;NO ,GO GETKS
1941 EC9E 68 PLA
1942 EC9F 29 3F AND #$3F ;MSK OFF 2 MSB FOR CONTROL
1943 ECA1 4C BF EC JMP GETK8 ;EXIT
1944 ECA4 68 GETK5 PLA
1945 ECA5 48 PHA ;SAVE IT
1946 ECA6 29 40 AND #$40 ;IF ALPHA CHARS DO NOT SHIFT
1947 ECA8 D0 14 BNE GETK7
1948 ECAA 68 PLA
1949 ECAB 48 PHA
1950 ECAC 29 0F AND #$0F ;ONLY LSB
1951 ECAE F0 0E BEQ GETK7 ;DO NOT INTERCHANGE <SPACE> OR 0
1952 ECB0 C9 0C CMP #$0C ;ACC>=$0C ?
1953 ECB2 B0 05 BCS GETK6 ;YES ACC>=$0C
1954 ECB4 68 PLA ;NO, ACC<$0C
1955 ECB5 29 EF AND #$EF ;STRIP OFF BIT 4
1956 ECB7 D0 06 BNE GETK8 ;EXIT
1957 ECB9 68 GETK6 PLA ;ACC>=$0C
1958 ECBA 09 10 ORA #$10 ;BIT 4= 1
1959 ECBC D0 01 BNE GETK8 ;EXIT
1960 ECBE 68 GETK7 PLA
1961 ECBF ;CHECK FOR "ADV PAP","PRI LINE", OR "TOGL PRIFLG"
1962 ECBF ;IN THIS WAY WE DONT HAVE TO CHCK FOR THIS COMM
1963 ECBF C9 60 GETK8 CMP #$60 ;ADV PAPER COMM
1964 ECC1 D0 06 BNE GETK11