SHARE |
|
Bigger Apple II PEEK, POKE and CALL List | by Bill Degnan - 02/23/2022 09:32 |
For my own reference and maybe yours...
https://apple2.org.za/gs.../EDHEL/texts/pokes.html AND Elsewhere -------------------------------------------------------- APPLE CALL, PEEK, POKE LIST CALL 144 SCAN THE INPUT BUFFER CALL 151 ENTER THE MONITOR NORM APPLE CALL, PEEK, POKE LIST ------------------------------------------------------------------------------ CALL -144 SCAN THE INPUT BUFFER CALL -151 ENTER THE MONITOR NORMALLY CALL -155 ENTER THE MONITOR & SOUND BELL CALL -167 ENTER MONITOR AND RESET CALL -198 RING BELL (SIMULATE CONTROL G) CALL -211 PRINT "ERR" AND RING BELL CALL -259 READ FROM TAPE CALL -310 WRITE TO TAPE CALL -321 DISPLAYS A, S, Y, P, & S REGISTERS CALL -380 SET NORMAL VIDEO MODE CALL -384 SET INVERSE VIDEO MODE CALL -415 DISASSEMBLE 20 INSTRUCTIONS CALL -458 VERIFY (COMPARE & LIST DIFFERENCES) CALL -468 MEMORY MOVE AFTER POKING 60,61 OLD START - 62,63 OLD END 64,65 NEW END - 66,67 NEW STAR CALL -484 MOVE CALL -517 DISPLAY CHARACTER & UPDATE SCREEN LOCATION CALL -531 DISPLAY CHARACTER, MASK CONTROL CHAR., & SAVE 7 REG. & ACCU CALL -550 DISPLAY HEX VALUE OF A-REGISTER (ACCUMULATOR) CALL -656 RING BELL AND WAIT FOR A CARRIAGE RETURN CALL -657 GET LINE OF INPUT, NO PROMPT, NO L/F, & WAIT(COMMA,COLON OK CALL -662 GET LINE OF INPUT, WITH PROMPT, NO L/F, & WAIT CALL -665 GET LINE OF INPUT, WITH PROMPT, LINE FEED, & WAIT THE ABOVE 3 CALLS (-657, -662, -665) REFER TO THE INPUT BUFFER FROM 512-767 CALL -715 GET CHARACTER CALL -756 WAIT FOR KEY PRESS CALL -856 TIME DELAY (POKE 69,XX TO SET TIME OF DELAY) CALL -868 CLEARS CURSOR LINE FROM CURSOR TO END OF LINE CALL -912 SCROLLS TEXT UP 1 LINE CALL -922 LINE FEED CALL -936 CLEAR SCREEN (HOME) CALL -958 CLEAR SCREEN FROM CURSOR TO BOTTOM OF SCREEN CALL -998 MOVES CURSOR UP 1 LINE CALL -1008 MOVES CURSOR BACKWARD 1 SPACE CALL -1024 DISPLAY CHARACTER ONLY CALL -1036 MOVES CURSOR FORWARD 1 SPACE CALL -1063 SEND BELL TO CURRENT OUTPUT DEVICE CALL -1216 TEXT & GRAPHICS MODE CALL -1233 MOVE CURSOR TO BOTTOM OF SCREEN CALL -1321 CONTROL E CALL -1717 MOVES CURSOR DOWN 5 LINES CALL -1840 DISASSEMBLE 1 INSTRUCTION CALL -1953 CHANGE COLOR BY +3 CALL -1994 CLEAR LO-RES SCREEN (TOP 40 LINES) CALL -1998 CLEAR GRAPHIC SCREEN (LO-RES) CALL -2007 VERTICAL LINE CALL -2023 HORIZONTAL LINE CALL -2458 ENTER MINI ASSEMBLER CALL -3100 TURNS ON HIRES PAGE 1, WITHOUT CLEARING IT CALL -3776 SAVE INTEGER CALL -3973 LOAD INTEGER CALL -6090 RUN INTEGER CALL -8117 LIST INTEGER CALL -8189 ENTER BASIC & CONTINUE CALL -8192 ENTER BASIC AND RESET (INTEGER BASIC KILL) CALL -16303 TEXT MODE CALL -16304 GRAPHICS MODE CALL -16336 TOGGLE SPEAKER CALL 42350 CATALOGS DISK CALL 54915 CLEANS STACK, CLEARS THE "OUT OF MEMORY" ERROR CALL 64166 INITIATES A COLD START (BOOT OF THE DISK) CALL 64246 BRAND NEW-YOU FIGURE IT OUT CALL 64367 SCANS MEMORY LOC 1010 & 1011 & POKES VALUE INTO LOCATIONS 1012 THAT IS EQUAL TO (PEEK(1011)-165) ------------------------------------------------------------------------------ PEEK 33 WIDTH OF TEXT WINDOW (1-40) PEEK 34 TOP EDGE OF TEXT WINDOW (0-22) PEEK 35 BOTTOM OF TEXT WINDOW (1-24) PEEK 36 HORIZONTAL CURSOR POSITION (0-39) PEEK 37 VERTICAL CURSOR POSITION (0-23) PEEK 43 BOOT SLOT X 16 (AFTER BOOT) PEEK 44 END POINT OF LAST HLIN, VLIN, OR PLOT PEEK 48 LO-RES COLOR VALUE X 17 PEEK 50 TEXT OUTPUT FORMAT: 63=INVERSE 255=NORMAL 127=FLASH ( WITH PEEK 243 SET TO 64) PEEK 51 PROMPT CHARACTER PEEK 74,75 LOMEM ADDRESS (INT) PEEK 76,77 HIMEM ADDRESS (INT) PEEK 103,104 FP PROGRAM STARTING ADDRESS PEEK 104 IF 8 IS RETURNED, THEN FP IS IN ROM PEEK 105,106 FP VARIABLE SPACE STARTING ADDRESS PEEK 107,108 FP ARRAY STARTING ADDRESS PEEK 109,110 FP END OF NUMERIC STORAGE ADDRESS PEEK 111,112 FP STRING STORAGE STARTING ADDRESS PEEK 115,116 FP HIMEM ADDRESS PEEK 117,118 FP LINE NUMBER BEING EXECUTED PEEK 119,120 FP LINE WHERE PROGRAM STOPPED PEEK 121,122 FP LINE BEING EXECUTED ADDRESS PEEK 123,124 LINE WHERE DATA BEING READ PEEK 125,126 DATA LOCATION ADDRESS PEEK 127,128 INPUT OR DATA ADDRESS PEEK 129,130 FP LAST USED VARIABLE NAME PEEK 131,132 FP LAST USED VARIABLE ADDRESS PEEK 175,176 FP END OF PROGRAM ADDRESS PEEK 202,203 INT PROGRAM STARTING ADDRESS PEEK 204,205 INT END OF VARIABLE STORAGE PEEK 214 FP RUN FLAG (AUTO-RUN IF >127) PEEK 216 ONERR FLAG (>127 IF ONERR IS ACTIVE) PEEK 218,219 LINE WHERE ONERR OCCURED PEEK 222 ONERR ERROR CODE PEEK 224,225 X-COORDINATE OF LAST HPLOT PEEK 226 Y-COORDINATE OF LAST HPLOT PEEK 228 HCOLOR VALUE 0=0 85=2 128=4 213=6 42=1 127=3 170=5 255=7 PEEK 230 HI-RES PLOTING PAGE (32=PAGE 1 64=PAGE 2 96=PAGE 3) PEEK 231 SCALE VALUE PEEK 232,233 SHAPE TABLE STARTING ADDRESS PEEK 234 HI-RES COLLISION COUNTER PEEK 241 256 MINUS SPEED VALUE PEEK 243 FLASH MASK (64=FLASH WHEN PEEK 50 SET TO 127) PEEK 249 ROT VLAUE PEEK 976-978 DOS RE-ENTRY VECTOR PEEK 1010-1012 RESET VECTOR PEEK 1013-1015 AMPERSAND (&) VECTOR PEEK 1016-1018 CONTROL-Y VECTOR PEEK 43140-43271 DOS COMMAND TABLE PEEK 43378-43582 DOS ERROR MESSAGE TABLE PEEK 43607 MAXFILES VALUE PEEK 43616,46617 LENGTH OF LAST BLOAD PEEK 43624 DRIVE NUMBER PEEK 43626 SLOT NUMBER PEEK 43634,43635 STARTING ADDRESS OF LAST BLOAD PEEK 43697 MAXFILES DEFAULT VALUE PEEK 43698 DOS COMMAND CHARACTER PEEK 43702 BASIC FLAG (0=INT 64=FP ROM 128=FP RAM) PEEK 44033 CATALOG TRACK NUMBER (17 IS STANDARD) PEEK 44567 NUMBER OF CHARACTERS MINUS 1 IN CATALOG FILE NAMES PEEK 44611 NUMBER OF DIGITS MINUS 1 IN SECTOR AND VOLUME NUMBERS PEEK 45991-45998 FILE-TYPE CODE TABLE PEEK 45999-46010 DISK VOLUME HEADING PEEK 46017 DISK VOLUME NUMBER PEEK 46064 NUMBER OF SECTORS (13=DOS 3.2 16=DOS 3.3) PEEK 49152 READ KEYBOARD (IF >127 THEN KEY HAS BEEN PRESSED PEEK 49200 TOGGLE SPEAKER (CLICK) PEEK 49248 CASSETTE INPUT (>127=BINARY 1, 127 IF BUTTON PRESSED) PEEK 49250 PADDLE 1 BUTTON (>127 IF BUTTON PRESSGD) PEEK 49251 PADDLE 2 BUTTON (>127 IF BUTTON PRESSED) PEEK 49252 READ GAME PADDLE 0 (0-255) PEEK 49253 READ GAME PADDLE 1 (0-255) PEEK 49254 READ GAME PADDLE 2 (0-255) PEEK 49255 READ GAME PADDLE 3 (0-255) PEEK 49408 READ SLOT 1 PEEK 49664 READ SLOT 2 PEEK 49920 READ SLOT 3 PEEK 50176 READ SLOT 4 PEEK 50432 READ SLOT 5 PEEK 50688 READ SLOT 6 (162=DISK CONROLLOR CARD) PEEK 50944 READ SLOT 7 PEEK 64899 INDICATES WHICH COMPUTER YOU'RE USING 223=APPLE II OR II+, 234=FRANKLIN ACE OR ?, 255=APPLE IIE POKE 33,33 SCRUNCH LISTING AND REMOVE SPACES IN QUOTE STATEMENTS POKE 36,X USE AS PRINTER TAB (X=TAB - 1) POKE 50,128 MAKES ALL OUTPUT TO THE SCREEN INVISIBLE POKE 50,RANDOM SCRAMBLES OUTPUT TO SCREEN POKE 51,0 DEFEATS "NOT DIRECT COMMAND", SOMETIMES DOESN'T WORK POKE 82,128 MAKE CASETTE PROGRAM AUTO-RUN WHEN LOADED POKE 214,255 SETS RUN FLAG IN FP & ANY KEY STROKES WILL RUN DISK PROGRA POKE 216,0 CANCEL ONERR FLAG POKE 1010,3 SETS THE RESET VECTOR TO INITIATE POKE 1011,150 A COLD START (BOOT) POKE 1010,102 MAKE POKE 1011,213 RESET POKE 1012,112 RUN POKE 1014,165 SETS THE AMPERSAND (&) VECTOR POKE 1015,214 TO LIST YOUR PROGRAM POKE 1014,110 SETS THE AMPERSAND (&) VECTOR POKE 1015,165 TO CATALOG A DISK POKE 1912+SLOT,1 ON APPLE PARALLEL CARD (WITH P1-02 PROM) WILL ENABLE L/F'S POKE 1912+SLOT,0 ON APPLE PARALLEL CARD (WITH P1-02 PROM) WILL ENABLE L/F'S POKE 2049,1 THIS WILL CAUSE THE FIRST LINE OF PROGRAM TO LIST REPEATEDLY POKE 40514,20 ALLOWS TEXT FILE GREETING PROGRAM POKE 40514,52 ALLOWS BINARY FILE GREETING PROGRAM POKE 40993,24 THIS ALLOWS POKE 40994,234 DISK COMMANDS IN POKE 40995,234 THE DIRECT MODE POKE 42319,96 DISABLES THE INIT COMMAND POKE 42768,234 CANCEL ALL POKE 42769,234 DOS ERROR POKE 42770,234 MESSAGES POKE 43624,X SELECTS DISK DRIVE WITHOUT EXECUTING A COMMAND (48K SYSTEM) POKE 43699,0 TURNS AN EXEC FILE OFF BUT LEAVES IT OPEN UNTIL A FP, CLOSE POKE 43699,1 TURNS AN EXEC FILE BACK ON. INIT, OR MAXFILES IS ISSUE POKE 44452,24 ALLOWS 20 FILE NAMES (2 EXTRA) POKE 44605,23 BEFORE CATALOG PAUSE POKE 44505,234 REVEALS DELETED FILE POKE 44506,234 NAMES IN CATALG POKE 44513,67 CATALOG WILL RETURN ONLY LOCKED FILES POKE 44513,2 RETURN CATALOG TO NORMAL POKE 44578,234 CANCEL CARRIAGE POKE 44579,234 RETURNS AFTER CATALOG POKE 44580,234 FILE NAMES POKE 44596,234 CANCEL POKE 44597,234 CATALOG-STOP POKE 44598,234 WHEN SCREEN IS FULL POKE 44599,234 STOP CATALOG AT EACH FILE POKE 44600,234 NAME AND WAIT FOR A KEYPRESS POKE 46922,96 THIS ALLOWS DISK POKE 46923,234 INITIALATION POKE 46924,234 WITHOUT PUTTING POKE 44723,4 DOS ON THE DISK POKE 49107,234 PREVENT LANGUAGE POKE 49108,234 CARD FROM LOADING POKE 49109,234 DURING RE-BOOT POKE 49168,0 CLEAR KEYBOARD POKE 49232,0 DISPLAY GRAPHICS POKE 49233,0 DISPLAY TEXT POKE 49234,0 DISPLAY FULL GRAPHICS POKE 49235,0 DISPLAY TEXT/GRAPHICS POKE 49236,0 DISPLAY GRAPHICS PAGE 1 POKE 49237,0 DISPLAY GRAPHICS PAGE 2 POKE 49238,0 DISPLAY LORES POKE 49239,0 DISPLAY HIRES ------------------------------------------------------------------------------ 48K MEMORY MAP DECIMAL HEX USAGE ------------------------------------------------------------------------------ 0-255 $0-$FF ZERO-PAGE SYSTEM STORAGE 256-511 $100-$1FF SYSTEM STACK 512-767 $200-$2FF KEYBOARD CHARACTER BUFFER 768-975 $300-$3CF OFTEN AVAILABLE AS FREE SPACE FOR USER PROGRAMS 976-1023 $3D0-3FF SYSTEM VECTORS 1024-2047 $400-$7FF TEXT AND LO-RES GRAPHICS PAGE 1 2048-LOMEM $800-LOMEM PROGRAM STORAGE 2048-3071 $800-$BFF TEXT AND LO-RES GRAPHICS PAGE 2 OR FREE SPACE 3072-8191 $C00-$1FFF FREE SPACE UNLESS RAM APPLESOFT IS IN USE 8192-16383 $2000-$3FFF HI-RES PAGE 1 OR FREE SPACE 16384-24575 $4000-$5FFF HI-RES PAGE 2 OR FREE SPACE 24576-38999 $6000-$95FF FREE SPACE AND STRING STORAGE 38400-49151 $9600-$BFFF DOS 49152-53247 $C000-$CFFF I/O HARDWARE (RESERVED) 53248-57343 $D000-$DFFF APPLESOFT IN LANGUAGE CARD OR ROM 57344-63487 $E000-$F7FF APPLESOFT OR INTEGER BASIC IN LANGUAGE CARD OR ROM 63488-65535 $F800-$FFFF SYSTEM MONITOR PEEK: TO EXAMINE ANY MEMORY LOCATION L, PRINT PEEK (L), WHERE L IS A DECIMAL NUMBER 0-65535. TO PEEK AT A TWO-BYTE NUMBER AT CONSEQUTIVE LOCATIONS L AND L+1, PRINT PEEK (L) + PEEK (L+1) * 256 POKE: TO ASSIGN A VALUE X (0-255) TO LOCATION L; POKE L,X. TO POKE A TWO-BYT NUMBER (NECESSARY IF X>255), POKE L,X-INT(X/256)*256, AND POKE L+1,INT(X/256). CALL: TO EXECUTE A MACHINE LANGUAGE SUB ROUTINE AT LOCATION L, CALL L. JUST FOR FUN TRY THIS: POKE 33,90. THEN TRY LISTING YOUR PROGRAM. OR TRY: 0,99 OR POKE 50,250 OR POKE 50,127. USE RESET TO RETURN TO NORMAL. FOR TRUE RANDOM NUMBER GENERATION TRY THIS:X= RND(PEEK(78)+PEEK(79)*256) TO LOCATE THE STARTING ADDRESS OF THE LAST BLOADED FILE USE: PEEK(-21902)+PEEK (-21901)*256 (RESULT IS IN HEX) TO DETERMINE THE LENGTH OF THE LAST BLOADED FILE USE: PEEK(-21920)+PEEK(-21919 *256 (RESULT IS IN HEX) TO DETERMINE THE LINE NUMBER THAT CAUSED AN ERROR TO OCCUR, SET X TO: PEEK(218 +PEEK(219)*256 ------------------------------------------------------------------------------ E-Mail Fredric L. Rice / The Skeptic Tank Share Follow edited Oct 20, 2011 at 12:17 The Big PEEKs, POKEs, and CALLs List Compiled by Edhel Iaur, Esq. You've probably seen a lot of these before, but you may still find a useful P,P, or C that is new to you (assuming it works! : ) ). Some are for ProDOS, some are for DOS 3.3, and some are for Applesoft BASIC in general. A lot of the DOS 3.3 stuff came from Bert Kersey's DOSTalk Scrapbook. As usual, I claim no responsibility for any damage, etc. these may do. Some of the info may be less than 100% accurate; I haven't updated this in a long while. Without further ado, here's my really big PEEKs, POKEs, and CALLs and stuff list. A little more ado:As always, feel free to email/post to me questions about this stuff. MEMORY ADDRESSES $06-$09 = Free $18-$1F = Free $4E-$4F = Constantly randomly changing numbers $CE-$CF = Free $EB-$EF = Free $F9-$FF = Free $C9-$CD = Random numbers? $100-$95FF = Free $300-$3FF = Free $9600-$BFFF = DOS 3.3 $9600-$BEFF = BASIC.SYSTEM $9D5E = Routine called after RESTART is pressed $A963 = Two-byte value that is the max. value allowed w/the L parameter $AA57 = Current MAXFILES setting $AAB1 = Default MAXFILES setting $BE43 EXEC file active (status) $BE44 Input file active (status) $BE45 Output file active (status) $BE46 Prefix active (status) $BE47 Directory file being accessed (status) $BE48 End of directory data reached (status) $BE49 Index to free string space (in K) (data) $BE4A Character count for WRITE's temporary buffer (data) $BE4B Current character count during keyboard entry (data) $BE4C ASCII code of last character sent to output (used in error detection) $BE4D Number of open files (doesn't include EXECs) (data) $BE4E EXEC file is being closed (status) $BE4F DIR file is being read (status) $BE58-59 The last used A parameter $BE5A-5C The last used B parameter $BE5D-5E The last used E parameter $BE5F-60 The last used L parameter $BE61 The last used S parameter $BE62 The last used D parameter $BE63-64 The last used F parameter $BE65-66 The last used R parameter $BE67 The last used V parameter $BE68-69 The last used @ parameter $BE6A The last used T parameter $BE6B The last used number after PR# or IN# $BF00-$BFFF = ProDOS's global page $C000-$FFFF = ROM $D000-$F7FF = Applesoft BASIC $E000-$F7FF = Integer BASIC $F800-$FFFF = Hex. Language 976 = Warmstart entry 43140-43379 = DOS 3.3 commands 43380-43581 = DOS 3.3 error messages 45991-45994 = DOS 3.3 file-type codes 46010-45999 = Disk volume header (backwards) 48640 = Warmstart entry to BASIC.SYSTEM 53456-54116 = Applesoft commands and error messages PEEKS, POKES, AND CALLS Poke 32,X Set left margin of text window Poke 33,X Set width of text window Poke 34,X Set top margin of text window Poke 35,X Set bottom margin of text window Peek (36) Horizontal cursor position Peek (37) Vertical cursor position POKE PEEK(40)+PEEK(41)*x+PEEK(36),32 Makes cursor either not flash or be invisible, depending on whether x is 156 or 256 Poke 50,63 INVERSE Poke 50,127 FLASH Poke 50,128 Listings and CATALOGs invisible Poke 50,255 NORMAL Poke 82,128 Cassette program will automatically RUN when loaded Peek 103 & 104 - (Two-byte number) LOMEM value POKE 109,PEEK(107):POKE 110,PEEK(108) Deletes all arrays. Lets you reDIMention any or all arrays Peek 115 & 116 - (Two-byte number) HIMEM value POKE 214,128 or 255 Makes disk program RUN when any command is issued X = PEEK (218) + PEEK (219) * 256 -- X equals line where error occured Peek 232 & 233 Two-byte value of address of shape table Peek (241) 256-SPEED Call -380 NORMAL Call -384 INVERSE Call -875 Clears entire text line Call -912 Scrolls up one line Call -958 Clears the bottom of the text screen X=PEEK(978) Determines where DOS is - if less than 157 then DOS is below normal location - computer has less than 48K memory; if 157 then DOS is at its normal 48K location; if 190 then DOS is ProDOS, not DOS 3.3; if greater than 190 then DOS is in the language card. Another source says this PEEK can show memory size if used as: PRINT (PEEK(978)+35)/4;"K" POKE 1011,224 Makes RESET reboot POKE 1010,102:POKE 1011,213:POKE 1012,112 Makes RESET RUN. Also unhooks DOS. Use CALL 1002 at beginning of program to rehook it. POKE 1013,76:POKE 1014,26:POKE 1015,252 Makes "&" move cursor up one line Peek (2040)-192 Current active slot POKE 40286,252:POKE 40287,164 Makes RESET RUN Call 42340 Locks up disk to prevent writing on it. CAUTION: BACK UP DISK BEFORE USING Poke 44467,234:Poke 44468,234:Poke 44469,234 Causes DOS 3.3 to forget to show you the disk catalog header the next time you catalog a disk Poke 44480,234:Poke 44481,234:Poke 44482,234 Causes DOS 3.3 to forget to show you the disk volume number the next time you catalog a disk POKE 44452,22:POKE 44605,21 Controls number of files displayed in CATALOG; The first POKE is always 1 greater than the second one POKE 44505,234:POKE 44506,234 Reveals DELETEd files in your CATALOG POKE 44509,76:POKE 44510,19:POKE 44511,174 Omits file type and file length in CATALOG POKE 44545,169:POKE 44546,x:POKE 44547,234 Shows all files in CATALOG to be x sectors long POKE 45620,234:POKE 45621,234 Keeps repeating first file in CATALOG Poke 49237,0 View hi-res page 2 Poke 49236,0 View hi-res page 1 Poke 43602,0 Sets a flag so that you can then, immediately following this POKE, send a DOS command without going to the next line Poke 44725,144:Poke 48894,36:Poke 46063,36 The next time you format a DOS 3.3 disk, it may have 36 (not 35) tracks Peek(43702) What language DOS thinks is running; if it equals 0 then it's Integer BASIC; if it's 64, then it's Applesoft; if it's 128, then it's cassette Applesoft Poke 43698,ASC(A$)+128 Changes the CONTROL-D DOS activator to the character in A$ Poke 45994,ASC(A$)+128 Makes the B-type files show up as the one character type of file in A$ Poke 45993,ASC(A$)+128 Makes the A-type files show up as the one character type of file in A$ Poke 45992,ASC(A$)+128 Makes the I-type files show up as the one character type of file in A$ Poke 45991,ASC(A$)+128 Makes the T-type files show up as the one character type of file in A$ Poke 44508,ASC(A$)+128 Changes the unlocked character (no *) to the one character in A$ Poke 44515,ASC(A$)+128 Changes the locked character (*) to the one character in A$ Poke 45994,ASC(A$)+128 Makes the B-type files show up as the one character type of file in A$ Poke 42344,76 Causes DOS 3.3 to forget to save a hello program when formatting a disk Poke 44793,11 Makes DOS 3.3 forget to replicate itself when formatting a disk Poke 44723,4 Makes DOS 3.3 mark tracks 1 and 2 as free when formatting a disk Poke 44578,234:Poke 44579,234:Poke 44580,234:Poke 44567,12 Makes next catalog appear in 2 columns Poke 43364,255 Allows you to save a binary file 65535 bytes long Poke 43273,65 Changes DOS 3.3's INIT syntax so that no filename is required after the INIT command X=PEEK(46725) Determines DOS version - if X=165 then DOS 3.3.0; if 186 then DOS 3.3e; if 182 then DOS 3.3f; if 206 then ProntoDOS Poke 43139,0 Locks up the computer; RESET has little effect Poke 40514,X If X=6, then DOS 3.3 will RUN the HELLO file; if X=52 then DOS 3.3 will BRUN it; if X=20 then DOS 3.3 will EXEC it IF PEEK (48705)=0 then TRACE is off IF PEEK (48706)=0 then no program is running IF PEEK(-1101)=6 then the computer in use is a //c or //e Peek 47095 = Last slot used Peek 47096 = Last drive used IF PEEK (49249) AND PEEK (49250) > 127 THEN PRINT "NO PADDLES IN" IF PEEK(-16384)>127 then a key has been pressed (POKE -16368,0 resets this) X = PEEK (-16336) Clicks the speaker IF PEEK (-16284) > 127 then joystick button 3 has been pressed IF PEEK (-16285) > 127 then joystick button 2 has been pressed IF PEEK (-16286) > 127 then joystick button 1 has been pressed IF PEEK (-16287) > 127 then joystick button 0 has been pressed Poke -16289,1 Puts .3 volts (1.6 MA) out pin 12 of internal joystick socket (Output 3 on at 0.3 volts) Poke -16290,1 Puts 3.5 volts out pin 12 of internal joystick socket (Output 3 on at 3.5 volts) Poke -16291,1 Puts .3 volts (1.6 MA) out pin 13 of internal joystick socket (Output 2 on at 0.3 volts) Poke -16292,1 Puts 3.5 volts out pin 13 of internal joystick socket (Output 2 on at 3.5 volts) Poke -16293,1 Puts .3 volts (1.6 MA) out pin 14 of internal joystick socket (Output 1 on at 0.3 volts) Poke -16294,1 Puts 3.5 volts out pin 14 of internal joystick socket (Output 1 on at 3.5 volts) Poke -16295,0 Puts .3 volts (1.6 MA) out pin 15 of internal joystick socket (Output 0 on at 0.3 volts) Poke -16296,1 Puts 3.5 volts out pin 15 of internal joystick socket (Output 0 on at 3.5 volts) Poke -16297,0 Hi-res Poke -16298,0 Lo-res Poke -16299,0 Switch from high-res page 1 to page 2 Poke -16300,0 Switch from high-res page 2 to page 1 Poke -16301,0 Allows graphics and 4 lines of text Poke -16302,0 Full screen graphics - no text Poke -16303,0 Shows text screen Poke -16304,0 Shows graphics screen X=PEEK (-16352) Toggles cassette output once - creates a "click" on a cassette tape Poke -16427,234:Poke -16428,234:Poke -16429,234 If a disk is initalized after theses POKEs have been POKEd, it won't erase the language card Call 62454 Turns hi-res screen to last color HPLOTted FC58 Clear screen FB40 Lo-res graphics mode F800 PLOT (Accumulator,Y register) F819 HLIN (Y register,contents of $2C) AT (Y register) F828 VLIN (Accumulator,contents of $2D) AT (Y register) FB2F Clears Hi-res screen, Lo-res screen, and accumulator FD35 Wait for keypress FDED Return contents of accumulator as 1 character CONTROL CHARACTERS & SCHTICK ESC @ = HOME ESC F Clears stuff from under cursor CTRL-S Pauses & unpauses program that is listing ESC A = Move cursor right one column ESC B = Move cursor left one column ESC C = Move cursor down one line ESC D = Move cursor up one line CTRL-E RETURN = While in hex mode, shows contents of all registers SPEED TIPS -Frequently GOTOed & GOSUBed lines should be early in program -Use NEXT instead of NEXT X -Use variables instead of actual numbers MISCELLANEOUS PR#{8-255}=??? ?=PRINT--Lists as PRINT Joystick=150K Ohms If PRINT PDL(N) When N=236-239, =POKE -16540+N,0 & = Jump to $3F5 X=FRE(0) = Clean string memory Reserved words take up one byte In hex, 0G = CALL 0 60 in hex (96 In decimal)= return to Applesoft X=FRE(0) = X=Number of BASIC bytes free (If negitive, add 65536) Syntax for DEF FN: 10 DEF FN A(W)=2*W+W 20 PRINT FN A(23) RUN Computer will return: 69 If 43+ errors are going to be handled by ONERR GOSUB or ONERR GOTO, use this subroutine in your program: 10 POKE 768,104:POKE 769,168:POKE 770,104:POKE 771,166:POKE 772,223 20 POKE 773,154:POKE 774,72:POKE 775,152:POKE 776,72:POKE 777,96 30 CALL 768 If your shape table starts at 1DFC, enter (in hex): E8:FC 1D Max. line #=63999 Each line can have 239 characters 136=token for GR 186=token for PRINT A input routine that accepts commas and colons: 10 PRINT "-YOUR QUESTION HERE-"; 20 CALL-657:A$="":FOR X=512 TO 767:P=PEEK(X):IF P<>141 THEN A$=A$+CHR$(P):NEXT X (A$ now equals the response) Move hi-res page 2 to 1: 10 REM S.H. LAM TECHNIQUE 20 C$="2000<4000.6000M":GOSUB 100:END 100 C$=C$+" N D9C6G":REM SPACE BEFORE AND AFTER N 110 FOR I=1 TO LEN(C$):POKE 511+I,ASC(MID$(C$,I,1))+128:NEXT 120 POKE 72,0:CALL-144:RETURN The proper syntax for reading a 2-byte number: Q=PEEK(B)+PEEK(B+1)*256 Q now equals the new value and B should have been previously set to the starting address of the 2-byte number The proper syntax for storing a 2-byte number: POKE B+1,Q/256:POKE B,Q-(PEEK(B+1)*256) Q should have been previously set to the value to be POKEd in and B should have been previously set to the starting address of where the value is to be stored FOR A=46010 TO 45999 STEP -1:PRINT CHR$(PEEK(A));:NEXT Shows you the current DOS 3.3 disk catalog header To stop a DOS 3.3 catalog after it waits for your keypress, enter (in hex): BCDF:20 0C FD C9 83 D0 03 4C 7F B3 60 PRINT PEEK(54)+256*PEEK(55) Returns the address of the current output routine PRINT PEEK(56)+256*PEEK(57) Returns the address of the current output routine if DOS is active, then you use: PRINT PEEK(43603)+256*PEEK(43604) Returns the address of the current output routine PRINT PEEK(43605)+256*PEEK(43606) Returns the address of the current output routine To determine what to POKE into 40192 to move the DOS buffers to put your machine language routine there, use the following formula: DB=40192-(L+38) You would then POKE 40192,DB and CALL 42964 to make DOS rebuild the DOS buffers, and then load your machine language routine into DB+38. DOS 3.3 buffer table: DOS Buffer #| Data Buffer | Filename Field ------------+--------------+---------------- 3 |38400-38655 | 38957-38986 2 |38995-39250 | 39552-39581 1 |39590-39845 | 40147-40176 A FOR/NEXT loop being used for a rest (when playing music) should be: FOR R=1 TO RV:NEXT R with RV being equal to 500 for a whole rest. 10 D$=CHR$(4) 20 PRINT D$;"PREFIX" 30 INPUT PF$ 40 PRINT "THE CURRENT PREFIX IS: ";PF$ To redirect information from slot 1 to a machine language routine at $300, type PR#1,A$300 To redirect information from slot 1 to slot 4, type PR#1,A$C400 To stop writing to a text file after an OPEN and a WRITE or READ command have been sent, print CHR$(4) $Cs0C often contains the card signature for the card in slot "s". The x sometimes shows the brand. 0x not assigned 1x printer 2x X-Y input device 3x serial/parallel input/output card 4x modem 5x sound/speech card 6x clock 7x mass storage device 8x 80 column display card 9x network/bus interface Ax special purpose Bx reserved _The Error Numbers_ 0 NEXT without FOR 1 Language not available 2 Range error 3 No device connected 4 Volume write-protected 5 End of data 6 Path/file not found 7 Incorrect volume number 8 I/O error 9 Disk full 10 File locked 11 DOS-related syntax error 12 No buffers available 13 File type mismatch 14 Program too large 15 Illegal direct command 16 Applesoft syntax error 17 Directory full 18 File not open 19 Duplicate file name 20 File busy 21 File(s) still open 22 RETURN without GOSUB 42 Out of Data error 53 Illegal quantity error 56 RESET was pressed 69 Overflow error 77 Out of memory 90 Undefined statement error 107 Bad subscript error 120 Redimensioned array 133 Divide by zero 163 Type mismatch error 176 String too long error 191 Formula too complex 224 Undefined function error 254 Extra ignored 255 =Break= Reply |