Download AIM 65/40 .. . THE NEXT GENERATION!
Transcript
■VIFH\OIIVF POKE 42002,84 % * Page 5 ACTIVE INPUT DEVICE SET TO “TAPE” USER INPUT STATEMENTS TO READ FROM TAPE * POKE 42002,13 ACTIVE INPUT DEVICE RETURNED TO “ K EY B O A R D " * * * USER PROGRAM END TAPE SUBROUTINES 9000 9010 REM: OPEN FILE (WRITE) POKE 2 7 8 ,0 9020 POKE 9030 9040 POKE POKE 42039,1 360,0 41993.22 $0116 TOO (SET 1ST CHAR IN BUFF FOR BLK 0) SET OUTPUT TAPE POINTER ($A437) TO “ 1" BLOCK COUNT ($0168) TO ZERO SET TAPE GAP ($A409) TO $16 9050 9100 9110 9115 9120 9130 9140 9150 9160 9170 9200 RETURN REM: WRITEEOF POKE 42003,84 PRINT CHR$(13) NL = 80-PEEK (42039) 9210 9220 FOR N C = 1 TO NL PRINT CHR$(0); NEXT NC POKE 42003,13 RETURN REM: OPEN FILE (READ) POKE 277,0 POKE 42038,80 9230 RETURN SET OUTFLG TO “ T ” OUTPUT O D ,O D ,Q A CHECK POINTER FOR BUFFER SPACE FILL BUFFER WITH NULLS SET OUTFLG TO “ D ” SET BLOCK ($0115) TO ZERO SET COUNTER ($A436) TO END ($50) 70 INPUT “ STORE ON TAPE Y /N ” ;A$ 80 90 100 IF AS = “ N ” THEN STOP INPUT **T = ” ; T:T = T - 1 POKE 42037, T:REM: SET TAPOUT 110 POKE 4 3 0 0 8 ,204:REM: TURN TAPES OFF 120 130 140 INPUT “ TAPE READY Y/N IF A $ = “ N ” THEN STOP INPUT “ FILEN A M E” ;AS 150 160 170 GOSUB 9010:REM: OPEN FILE POKE 4 2 0 0 3 ,84:REM: TAPE AOD PRINT A$ N 180 190 PRINT HS FOR 1 = 0 T O N - 1 200 210 220 230 PRINT I + 1; ;P$(I) NEXT I POKE 42003 ,13:R EM : DISPLAY AOD GOSUB 9 1 10:REM: WRITE EOF 240 250 POKE 4 3 0 0 8 ,252:REM: TURN TAPES ON END A$ 500 REM: TAPE READ EXAMPLE 510 520 DIM R(40), R$(40) INPUT “ READ TAPE Y /N ” ; A$ 530 540 550 560 570 580 IF AS = “ N ’' THEN STOP INPUT “ T = ” : T:T = T - 1 POKE 4 2 0 3 6 ,T:REM: SET TAPIN GOSUB 9210:REM: OPEN FILE POKE 4 2 0 0 2 ,84:REM: TAPE AID INPUT AS,N 590 600 INPUT HS FOR 1 = 0 T O N - 1 610 620 630 640 650 660 670 INPUT R (I),R$(I) NEXT I POKE 42002,13 PRINT “ ” PRINT! “ PRINT!HS FOR 1 = 0 TO N - 1 PRINT! R(l); TAB(5);RS(1) 680 690 700 710 NEXT I PRINT! POKE 43008.252 END Some useful locations: Hex Decimal Label Remarks EXAMPLE PROGRAM 1 10 20 30 40 50 60 $0115 277 BLK Block count for input (must be $01 16 278 zero to start) TABUFF 80 byte tape buffer starts here $0168 360 SA409 41993 GAP SA411 42001PRIFLG DIM P$(40) REM: TAPE WRITE EXAMPLE INPUT ‘ '# E N T R IE S' ' :N FOR 1 = 0 TO N —1 PRINT “ ENTRY # ” : I + 1; :IN PUT PS(1) NEXT I INPUT “ T IT L E ” ;H$ BLKO Block count for output (set to zero) Block gap for tape recorder Printer “ O N " = 0, " O F F " = 128 ($80)