1 REM Ins{nd av Kurt Malm <3065> 1988-03-05 00.50.40 (DUMP) MKODDEBU.ASM Maskinkods-debugger Maskinkods-programmering {r en sv}r konst. En assemblerlista p} c:a 30k kan man f} ut max 6k maskinkod. Fylld med hopp och subrutiner + data- lagring p} stack och minnesceller. D} {r det inte l{tt ens f|r program- meraren att 'f} till det'. Man kan d} f} hj{lp av detta program, och steg f|r steg se processorns register {ndras. Till stor hj{lp vid programutveckling. F|r ABC80 men kan s{kert med lite fantasi inplementeras p} andra Z80 CPU + PIO datorer. Programet b|r assembleras till en f|r er fri ramarea. Anv{nder man ASS.BAC kan man sedan anteckna viktiga LABLAR. HELP Eget hj{lpprog. (HLP snart p} ABC- klubbkassett?). KALL Initieringsrutt (Starta alltid h{r) BRYT CALL BRYT kan assembleras in i testprogramet p} strategiska st{llen. (K|rningen avbryts men kan }terupptas). VARMA F|rst|r ej registerna. L{mpligt uthopp {r kommando U. (Varning f|r stackf|rst|rande program - se kommando E). VARMB Varmstart fr}n basic. ]terstart efter Q-kommando. Alla register utom I och SP nollst{lls.(Sorry) FEL Onerrorgoto adress. Endast trapbara fel. Anv{ndbara CTRL-tecken: CTRL-@ (0) Bryt-panik knappen. Bryter ex. f|ljande snutt. NORGE JR NORGE D.V.S L}sningar. Eller mkodprog. v{ntar sig inmatning fr}n T.B. och g|r LD SP,(65063),(sabbar stack). CTRL-L T|mmer sk{rm. CTRL-Z Single-step. Samma som G-. CTRL-[ Stoppar listningar defenitivt. SPACE Stoppar listningar tempor{rt. KOMMANDON I MKODDEBU A startadr,slutadr Asciidump B Bildbyte C startadr,slutadr Checksumma D startadr,slutadr Hexdump E Exchange sysvars och buffert,bra vid uthopp till stack och buffert f|r- t|rande program. F startadr,slutadr,v{rde Fill minnes- area med hexv{rde. G Go (Free run) F|ruts{tter att PC {r laddad. Stoppas endast med CALL BRYT, CTRL-@ eller (Rullgardinen). G- Single-step = CTRL-Z Avbryter pgm- exekveringen efter endast en instruktion. (Ex. LDIR laddar kod f|r instruktion och utf|r LD A,(HL) LD (DE),A INC HL INC DE DEC BC set flags IF BC<>0 DEC PC DEC PC (vilket sl|seri l{sa in instruktionen en g}ng till) D.V.S CTRL-Z m}ste tryckas BC antal g}nger. G adr PC laddas sedan k|rs monitorn i Free-run. G adr- Brytpunkt PC f|ruts{tts vara laddad.(se ev. komm. R) Med detta kommando kan man ha bryt- punkter {ven i ROM-minne. Ex. K|r BP-prog med PC=3413 (11273) G 10- (Hex f|r RST 16's startadr.) Om prog. inte hamnar p} adr. RST 16 s} m}ste man s{kra sig med en sista BP-rad Ex. INPUT A% D} kan man bryta med CTRL-@. (Eller Z=CALL VARMA,BRYT) H v{rde Ger decimalt och bin{rt v{rde. I portadr Portens Hex och bin{rv{rde. J startadr,slutadr Justify j{mf|r. K V{rde,v{rde Adderar och subtraherar V{rde till fr}n v{rde. L filnamn.ext Laddar ITH-fil. M startadr,slutadr,dest Move flyttar start t.o.m slut till destination. N v{rde Ger hex-bin{rt svar p} decimalt v{rde O portadr,v{rde L{gger v{rde p} port. P startadr PEEK/POKE Peekar i minnet Space stegar framm}t. - och , stegar bak}t. Hexbyte {ndrar (pokar). R adr R{knar ut offsetbyte till hopp. RET Avslutar PEEK/POKE Q Quit Retur till rutin som kallade monitorn (om ej SP skiljer) SP,IX,IY sparade. Q adr Som Q men HL laddas med adr. R Register visar samtliga register. R (A B C D E F H I L AF BC DE HL IX IY PC SP AF' BC' DE' HL') Visar specifierat register skriver d{refter ut v{rde, v{ntar sedan sig nytt v{rde. (eller reg.of|r{nd.) Med detta kom. s{tter man vid BP-k|r. R IY 0000=FE16 , R IX 0000=FDF3 R HL 0000=FE40 , R PC 0000=0D55 11273 Typisk BP-uppst{llning. S startadr,slutadr filnamn.ext Sparar minnesarea i ITH-format T startadr. Type Skriver ascii tecken i minnet tills RET U I detta fall hopp till HELP (HLP) U adr Hoppar till adr. Ret kan g|ras med Mkod 209,C9. Inga register utbytes. V startadr,slutadr asciistr{ng. Asciistr{ngen s|kes i minnet. V startadr,slutadr hexbyte,hex,... Hexbytes raden efters|kes. Jaha detta var 'manualen' nu m}ste fantasin s{tta gr{nsen 'far beyond' Eftersom 'there are no limits' omr}det {r vidstr{ckt, s} kan jag inte lova att svara p} varje fr}getecken. m.v.h Kurt Malm <3065>