TDL ZAPPLE User Manual Download Page 10

Summary of Contents for ZAPPLE

Page 1: ...TM THE MONITOR USER S MANUAL...

Page 2: ...The ZAPPLE Monitor Version 1 1 December 30 1976 Copyright 1976 By TECHNICAL DESIGN LABS INC...

Page 3: ...ifferent let s make the applications software I O INDEPENDENT and then supply a universal monitor system that each person can CUSTOM FIT to his own particular needs As long as the I O VECTORS are hono...

Page 4: ...ceiver Data Available RDA 0 there is data Transmitter Buffer Empty TBE 0 You may load the buffer Once the program has been loaded the user is free to modify any of the drivers using the software listi...

Page 5: ...act 8 0 hex from 3000 hex This means settinq the sense switches at 28 Hex The LOADER for ZAPPLE has been modified from the one used with the ZAP monitor It is now easier to set up for almost any type...

Page 6: ...ights on an IMSAI will all flash at a rate of about 1 HZ The machine may be stopped and the tape backed up to an area before the error was detected 2 3 feet and the machine reset and started from zero...

Page 7: ...inary file M MOVE a defined memory area to another starting address N NULLS to the punch device o USER DEFINED P PUT ASCII characters into memory from the keyboard Q QUERY I O ports may output or inpu...

Page 8: ...sterisk is displayed indicating an ABORT of some kind COMMAND DESCRIPTION A ASSIGNMENT OF 1 0 DEVICES The onitor system is capable of supporting up to 4 loqical devices these being The CONSOLE The REA...

Page 9: ...mmands which vector to starting addresses EXAMPLE AL L cr assians the list device to be the line printer It vectors to start address 812H or l2H above the end of the monitor That would be the address...

Page 10: ...tic readers the operation is very simple Assign the Reader eaual to the device you wish to enter the data against type C starting address ending address cr I and the reader will start The first char a...

Page 11: ...of memory with a specific value It is quite handy for initializing a block to a specific value such as for tests zeroing memory when starting up etc NOTE Avoid doing this over the monitor s stack are...

Page 12: ...kpoints may be set EXAMPLE GIOOO 1005 1010 would cause the r roqram to start execution at address 1000H and IN THE EVENT that the program gets to address 1005 OR 1010 the r rogram will stop execution...

Page 13: ...he error are displayed on the console before the test is continued EXAMPLE JlOOO lFFF cr IFaQ 00001000 would indicate that the 4th bit D3 at location IFOOH did not correctly complement itself This tes...

Page 14: ...on as moving a block into an area occu ied by the stack or the program or the monitor will cause unpredictable results EXAMPLE MIOOO lFFF 2000 cr moves the contents of memory contained in the block 10...

Page 15: ...NTEL format as well as beinq capable of loading the relocatable TDL files at any selected address and bias offset When reading an ABSOLOTE file INTEL format there may b only a BIAS added These files c...

Page 16: ...0 s 00 kb FF cr This command examines address F810H showinq the value OOH at that address Immediately typing in FFH from the keyboard SUBSTITUTES FFH for OOH at that address Repeating the example abov...

Page 17: ...bed above of the values contained in memory locations OOH to FFH V VERIFY This command allows the user to verify the contents of one memory block against the contents of another memory block This is v...

Page 18: ...e contents of PRIME A B C D E F H L M X Y and R reqisters registers Typing the letter X or X followed by a specific register letter will display the contents of that register Entering a new value via...

Page 19: ...081H 00B2H and OF08H This routine will search all 65 K of memory for a uniaue seauence of bytes in less than one second Z TOP OF MEMORY This the hiqhest address of system EXAMPLE Z 7FFF command locate...

Page 20: ...t d and LDED for Load D E Direct etc The ZAPPLE is assembled in a RELOCATING format Therefore the assembly listing starts effectively at address ZERO In order to calculate the correct addresses the va...

Page 21: ...ONTENTS of A not the flags The calling program would then test the contents of A with perhaps an ORA A instruction for example and if the result was non zero it would indicate a CHARACTER WAITING cond...

Page 22: ...with the hiqhest value of CONTINOUS memory starting from zero MINUS the area needed for the monitor to function properly A low byte a high byte This value is also placed in the STACK register when the...

Page 23: ...hose old l K static memory cards USER WRITTEN I O ROUTINES There are occasions when some device needs a specialized piece of software in order to make it work Line printers parallel keyboards punches...

Page 24: ...GROUP newsletter It is an almost impossible task to fully cover all of the intricate details involved in the operation of ZAPPLE The best thing you can do now is re read this entire manual r and then...

Page 25: ...MAY BE PLACED THE BOOT LOADER MEMORY MAP 0000 OOIA 0010 0020 0023 0019 OOIC OOIF 0022 OOFF HARDWARE INITIALIZATION ROUTINE LXI SP 200H LXI H 01F3H CHANGED BY UPPER LOADER CALL REAOER CALL CHANGED TO...

Page 26: ...TEST LEADER 0024 28FA JRZ RDR WALK OVER LEADER 0026 20 OCR L MOVE POINTER 0027 77 MOV M A SAVE DATA 0028 20F6 JRNZ RDR GET MORE DATA OR 002A E9 PCHL GO TO LOADER ALTAIR SIOA REV 1 0 READER ROUTINE 002...

Page 27: ...T THIS ROUTINE WOULD BE USED FOR AN I O BOARD THAT USES A MOTOROLA ACIA SUCH AS AN ALTAIR 2510 INIT MVI OUT MVI OUT JMP LOC lAH LOAD LXI LXI RDR CALL CMP JRZ OCR MOV JRNZ peHL READER ROUTINE READ IN A...

Page 28: ...LD BE USED FOR AN I O BOARD THAT USES AN INTEL USART SUCH AS AN IMSAI 2SIO INIT MVI OUT MVI OUT JMP I LOC lAH LOAD LX LXI RDR CALL CMP JRZ DCR MOV JRNZ PCHL READER ROUTINE READ IN ANI JRZ IN RET PAGE...

Page 29: ...1 5 3E28 D301 3E20 0318 FJ C9 LIST THIS IS AN EXAMPLE OF A ROUTINE THAT MIGHT BE USED TO CONTROL A PARALLEL READER INIT MVI OUT MVI OUT MVI OUT MVI OUT JMP i LOC lAH LOAD LXI LXI RDR CALL CMP JRZ DCR...

Page 30: ...SENSE SWITCHES ADDRESS MODIFIED TO A JMP USER WRITTEN I O ROUTINE STACK AREA LOADER ON PAGE ONE SET UP BEGIN MVI STA LXI SHLD STA LXI IN CPI JC MOV MVI EXX A JMP IN CASE OF TROUBLE HLMOD 1 STORE A JM...

Page 31: ...ESS SENSE LINES o1St 2F CMA 0158 D3FF OUT SENSE 0150 18 SIT1 DCX D 015E 7A MOV A D 015F 83 ORA E 0160 20FB JRNZ SITl 0162 03FF OOT SENSE 0164 IB SIT2 DCX D 0165 7A MOV A D 0166 B3 ORA E 0167 20FB JRNZ...

Page 32: ...ALL RIBBLE GET 1 2 BYTE 01A4 07 RLC OlAS 07 RLC 01A6 07 RLC OlA7 07 RLC OlA8 4F MOV C A SAVE LEFT HALF OlA9 CD 01B3 CALL RIBBLE GET OTHER HALF OlAC 81 ORA C MAKE WHOLE OIAD 4F MOV C A iIN C OlAE 82 AD...

Page 33: ...when loaded by a copy of itself but when using an initial boot strap it is forced to a page boundry Running the monitor on other than a page border sounds a little pointless in any case addr 0 1 2 3 4...

Page 34: ...C RST IOBYT SENSE SWITCH RCP NN 38H 2 3 OFFS SENSE 0 RST 7 LOCATION FOR TRAP R W PORT FOR TEMP STORAGE PORT FOR INITIAL I O CONFIGURATION FRONT PANEL SENSE SWITCHES READER CONTROL PORT OUT 1 REGISTER...

Page 35: ...I STORAGE INPUT CONFIGURATION RTTY 0 TELEPRINTER READER RPTR 4 H1GB SPEED RDR EXTERNAL ROUTINE RCAS a CASSETTE RUSER OCH USER DEFINED I STORAGE OUTPUT CONFIGURATION PTTY 0 TELEPRINTER PUNCH PAGE 2 00...

Page 36: ...RACTER TO BE OUTPUT IN CI REGISTER CHARACTER WILL BE IN A REGISTER UPON RETURNING FROM AN INPUT OR OUTPUT CSTS RETURNS TRUE OFFH IN A REG IF THERE IS SOt4ETHING WAITING AND ZERO 00 IF NOT IOCHK RETURN...

Page 37: ...ING THE Q COMMAND OR STANDARD ROUTINES FOR INITIALIZATION MAY BE LOADED EXECUTED IN THE USER AREA I BEGIN MVI STAI NOP XRA OUT IN OUT LXI JMP WORD AHEAD SPHL XCHG LXI LXI LDIR XCHG LXI DAD PUSH LXI MV...

Page 38: ...E END OF FILE TAG FOR HEX DUMPS F FILL MEM ORY WITH A CONSTANT G GOTO ADDR BREAKPOINTS 2 8 HEX MATH SUM DIFFERENCE 1 USER DEFINED INSERT VECTOR VECTOR ADDR J NON DESTRUCTIVE MEMORY TEST K USER DEFINED...

Page 39: ...SSIGN CALL LXI LXI LXI AO CMP JRZ DAD INR DJNZ JMPR Al MOV A2 CALL CPI JRNZ CALL LXI A3 INX eMP JRZ INR DJNZ ERR JMP A4 MVI INR A5 DCR JRZ SLAR SLAR RAL RAL JMPR A6 CMA MOV A7 CALL JRNC CALL ANA ORA M...

Page 40: ...TERED BYE CALL CRLF oBY CALL KI CPI 1EH CONTROL SHIFT N JRNZ BY POP 0 REMOVE THE RETURN JMP HELLO AND SIGN ON AGAIN THIS ALLOWS ENTERING OF ASCII TEXT INTO MEMORY FROM THE CONSOLE DEVICE THE PARITY BI...

Page 41: ...017C D 04B4 017F AF 0180 CD 05E8 0183 E1 0184 1 CD 05E3 OF THE ACCUMULATOR USED BY TWO ROUTINES CERR MOV B A SAVE ACC CALL HLSP 1DISPtAY H L MOV A M CALL LBY E PRINT M CALL BLK SPACE OVER MOV A B CALL...

Page 42: ...ART INCASE OF ACCIDENTS I THIS COMMAND ALLOWS EXECUTION OF ANOTHER PROGRAM WHILE RETAINING SOME MONITOR CONTROL BY SETTING BREAKPOINTS TO SIMPLY EXECUTE TYPE G ADDR CR TO SET A BREAKPOINT TRAP ADD THE...

Page 43: ...R STORAGE LOOK AT TRAP ADDR 1DON T SET A TRAP AT 0 SAVE BKPT ADDR PICK UP INST BYTE SAVE THAT TOO RST 7 SOFTWARE INTERUPT LOOK AT DELIMITER rCOUNT BKPTS GET ONE MORE SET UP JMP INSTRUCTION 1 AT RESTAR...

Page 44: ...ON OTHER THAN ITS INTENDED EXECUTION LOCATION THE BIAS IS ADDED TO WHAT WOULD HAVE BEEN THE NORMAL LOADING LOCATION AND WILL WRAP AROUND TO ENABLE LOADING ANY PROGRAM ANYWHERE IN MEMORY 7 WHEN LOADING...

Page 45: ...PUSH DAD XTHL POP EXX POP CALL DCR MOV POP JRNZ DAD DADX INR DCR JRZ DCR JRZ CALL CALL JRNZ CALL JRZ PUSH POP CALL JMP MOV ORA RZ XCHG LXI H DAD MOV DCX MOV RET MVI CALL JRC CALL B A OFEE LODO O A SB...

Page 46: ...SLAR H TEST NEXT BIT 02AD C9 RET 02AE C5 SBYTE PUSH B PRESERVE BC 02AF CD 0500 CALL RIBBLE GET A CONVERTED ASCII 0282 07 RLC 02B3 07 RLC 0284 07 RLC 02B5 07 RLe MOVE IT TO HIGH NIBBLE 0286 4F MOV C A...

Page 47: ...ER AND DISPLAY THE PREVIOUS LOCATION SUBS SO SI S3 S2 CALL POP MOV CALL CALL RC JRZ CPI JRZ PUSH CALL POP POP MOV MOV CPI RZ INX MOV ANI CZ JMPR DCX TMPR EXPRI H A M LBYTE COPCK SI I t 7S2 H EXF D H M...

Page 48: ...L STARTING ADDRESSES OF EACH i OCCURENCE OF THE SEARCH STRING ARE PRINTED ON THE CONSOLE DEVICE I vHERE WO FINDC FIND FOOND TELL nONE2 MVI CALL POP MOV PUSH INX INR MOV SUI JRNZ MOV MOV MOV HOV DCR DA...

Page 49: ...T START AOOR BACK 1SEND THE BLOCK PAGE 16 0378 CD 0381 037 D1 037F 18E3 0381 57 CALL POP JMPR W2 D WO O A RESTORE END OF FILE POINTER KEEP GOING 0382 I 78 0383 CO 05E8 0386 CD 05E3 0389 AF 038A CD 05E...

Page 50: ...X fCR OR TO EXAMINE A SINGLE PRIME REGISTER TYPE THE REGISTER IDENTIFIER AFTER THE APOSTROPHE I E X X 0000 THESE REGISTER VALUES ARE PLACED INTO THE CPU UPON EXECUTING ANY GO COMMAND G XAM XO Xl X2 X...

Page 51: ...1 18D2 0433 E5 0434 J A 0435 67 0436 1B 0437 1A 0438 6F 0439 7E 043A E1 043B l8Fl X4 POP POP MOV CPI RZ XS BIT RNZ JMPR XG CALL X7 CALL MOV INX ORA RM MOV CALL MVI CALL MOV MOV ANI INX XCHG MOV MVI DA...

Page 52: ...RACTER INX H MOVE POINTER CALL CO OUTPUT IT DJNZ TOM1 KEEP GOING TILL CALL CSTS SEE IF AN ABORT ORA A WAITING RZ NO SEE IF CONTROL C IS WAITING ABORT IF SO I CCHK CALL K CPI 3 CONTROL C RNZ SYSTEM ERR...

Page 53: ...THE CURRENT VALUE OF H L SPACE CALL LADR A SPACE ON THE CONSOLE MVI C THIS IS THE MAIN CONSOLE OUTPUT ROUTINE I CO CALL IOCHK ANI CMSK JRNZ COO TELEPRINTER CONFIGORATION 1 0 DRIVER i TTYOUT IN TTS ANI...

Page 54: ...C CR CALL PO MVI C LF PUNCH OUTPUT DRIVER ROUTINE PO 1 pOO POI CALL ANI JRZ CPI JRNZ IN ANI JRNZ MOV OUT RE1 CPI JZ JMP IOCHK tPMSt TTYOUT PCAS POl PCASS PCSBE poa A C peASO PPTP PTPL PULOC PUNCH TEL...

Page 55: ...IS USED AS A DELAY TO GIVE THE OPERATOR TIME TO TURN ON THE TELEPRINTER PUNCa BEFORE SENDING A HEX FILE OR BINARY FILE TO J THE PUNCH IT WILL SIMPLY RETURN IF THE PUNCH CONSOLE ARE NOT BOTH ASSIGNED...

Page 56: ...o TTS CSI cso CALL ANI JRNZ IN JMPR OCR JRNZ IN AN MVI RNZ CMA RET OCR RZ JMP A CCRT CS3 CRTS CSl TTYOA A PALSE CS2 CS3 A SATCH CSLOC OSED DEFINED VECTOR GEif THREE PAAAIU TERS AND CRLF EXPR3 INR C CA...

Page 57: ...SAVE UP IN STACK REPLACE THE RETURN TEST THE DELIMITER rCR ENTERED SHOULD GO TO ZERO RETURN IF IT DOES SOMETHING WRONG 00 THIS AGAIN YES ELSE RETURN RANGE TES TING ROUTINES CARRY SET INDICATES RANGE E...

Page 58: ...I B OSFF H iSET UP B C JMPR LEO THIS RCUTINE SENDS BLANKS TO THE PUNCH DEVICE I PRINT IT 0596 01 4800 0599 CD 0484 1 059C lOFB 059E C9 LEAD LEO LXI CALL DJNZ RET B 4800H PRESET FOR So ME NULLS po 059F...

Page 59: ...ART OF MONITOR RAM SEARCH STARTING PT FIRST FINO R W MEMORY B R W FOUND NOW FIND END A M M A M M A M2 A B TEST FOR MONITOR BORDER B Ml NOT THERE YET PAGE 26 05C7 20F3 05C9 I 25 M2 OCR LXI DAD POP RET...

Page 60: ...CKSUM 05FE C9 RET 05FF OE2D COPCK MVI C 1_ 0601 CD 0478 1 CALL CO i 0604 CD 0736 1 peHK CALL TI i TEST FOR DELIMITERS I 0607 FE20 QCHK CPI I RETURN ZERO IF DELIMITER 0609 C8 RZ 0601 FE2C CPl I I 060C...

Page 61: ...807 0670 1887 0672 E1 0673 FE04 CI2 i IN RET OCR JNZ CRTI A CILOC iBATCH NO MUST BE USER DEFINED READER INPUT ROUTINE WITH TIME OUT DELAY INCLUDES i PULSING OF HARDWARE PORT TO INDICATE REQUEST FOR RE...

Page 62: ...FH S CALL RIFF JRNZ to PAGE 29 0685 CD 0504 0688 16FF 0681 0604 OG8e CD 0462 068F 20F9 0691 10F9 0693 CD 0462 0696 28F B OE 9i3 I 77 L2 DJNZ t 1 CALL RIFF i4FOUNO NOW WAIT FOR NON OPFH 0699 3E07 069B...

Page 63: ...R o B psw MEMSIZ 10 sp 8 4 H M n H M E o RO i S B 06D7 I 21 0 0 2 5 LXI Hi rLOCX 06DA I 3 9 DAD SP PUSH ALL REGISTERS GET MONITOR S STACK VALUE GO UP 10 BYTES IN STACK PICK OFF REG SAVE IN WORKAREA AO...

Page 64: ...EXAF EXX POSH POSH PUSH POSH PUSH PUSH LOAl MOV LOAR MOV PUSH JMP TLOCX SP 8 200H E M M C H D M M e H A E 0 RS A M 0 H R4 H 0 B PSW X Y B A C A B START REPLACE BYTES TAKEN FOR TRAP ZERO OUT STORAGE AR...

Page 65: ...077D 1 D1 077E I Cl 077F ED59 0781 C9 0782 CD 0528 CPI CR IGNORE CR S RZ PUSH B MOV C A CALL CO MOV A e POP B CPI A l CONVERT TO UPPER CASE RC CPI z l RNC T ANI 051 H I RET THIS ROUTINE ALLOWS E XAMIN...

Page 66: ...LT8L BYTE BYTE BYTE BYTE BYTE i BYTE BYTE BYTE BYTE BYTE 1 BYTE BYTE BYTE BYTE BYTE I B lTE BYTE 8 YTE BYTE BYTE f I C I IT J C f S U I R t IT pI IC 0 I pI T Ipi C I I U I L 1 e L U CONSOLE ASSIGNMEN...

Page 67: ...S 078P 07C2 07C5 07C7 07C8 07CA 07CB 0015 0013 0012 0011 0010 0014 0031 0030 0034 0017 0035 0025 0020 0009 OOOB OOOA 0000 DOGe 0008 COOF OOOE 0007 0005 0002 0003 21 0000 C3 0000 0000 00 0000 00 LXI H...

Page 68: ...REGISTER NAME WITH BIT 7 INDICATING END OF TABLE POSITION TWO SIAS FItOM CURRENT ST a CK LEVEL OR ED WITH A TWO BIT FLAG OOXXXXXX BYTE I ACTBL 10XXXXXX WORD llXXXXXX SPECIAL FOR UM h REG NORMAL SET O...

Page 69: ...RIFF 04 6 2 I RPTPL 0806 ROB QOFF SENSE 0003 START 0062 Sr1I rCH OOFF TBL Q tlA jl_ XI 07 36 to TLOC TOM1 0440 i TRAP 0 TTO l001 TTS tlJ QD TTYIN061ALi i ot1 r d USER 0 00 lO i bl16 i m iY g OGZ e t n...

Reviews: