A long time ago I had an apple ][ .
I remember the command call – 151 But I can not remember what it did ?
A long time ago I had an apple ][ .
I remember the command call – 151 But I can not remember what it did ?
CALL -151
Enter the machine code monitor -
http://www.skepticfiles.org/cowtext/apple/memorytx.htm
Update:
That link appears to be dead, here's a Wayback Machine alternative:
http://web.archive.org/web/20090315100335/http://www.skepticfiles.org/cowtext/apple/memorytx.htm
Here's the full article just in case Wayback goes away:
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
Call -151 enters the monitor, 3D0G brings you back to BASIC, and typing a slot # in the monitor followed by Ctrl-P will boot that device. Amazing what one remembers after 20 years!
May I also add that -151 is apple ]['s way of expressing hex number which should mean $FF69 (hex syntax used in Apple II i.e. 0xFF68). The CALL is an Apple Basic command that invokes an assembly subroutine given by the argument (-151 here). IIRC, this command can accept an address as negative decimal value for addresses between $8000-$FFFF using 2's complement interpretation.
For those who are interested in history, here is the Apple ]['s monitor rom listing (in 6502 assembly) and address $FF69 is having the label MONZ which is the start of the command prompt that process machine code processing commands from user. One that uses a '*' as the prompt. A very primitive command prompt.
Crikey, that's a blast from the past. I think it entered the monitor ROM (I was torn between this and Integer BASIC but I'm pretty certain it was the monitor).
You could download an Apple II emulator and find out.
As a side note, the reason why this is a negative number and not the proper CALL 65385 is because the very first form of BASIC for the Apple II was known as Integer BASIC. It only understood signed 16-bit Integer values from -32768 to 32767, and so it is impossible to directly address memory beyond 32767 in the normal positive value manner.
If you tried actually typing POKE 49200,0 or CALL 65385 in Integer BASIC you will get a message like ">32767 ERR"
When the replacement Microsoft Applesoft BASIC (yes, from them) with floating point numbers was introduced, they included support for the negative POKE values for some degree of backwards compatibility for the older Integer BASIC programs. Though this compatibility is limited, as Applesoft lacks other programming features of Integer like the MOD division remainder.
Due to the strong influence of early Integer BASIC programming methods, there are many PEEK POKE and CALL commands that are generally only known by their hexadecimal and negative decimal values, but not by their positive decimal values.
© 2022 - 2024 — McMap. All rights reserved.