65387 GOTO 65389 65389 ; CHR$(12);'*** MEMORY-DUMP 800513 *** *** ANDERS PARLANDER / BJ\RN GIMLE ***' 65390 ; : ; 'F = Fram}t 64 pos' 65391 ; 'B = Bak}t 64 pos' 65392 ; : ; 'A = +/- ? pos' 65393 ; : ; '+ = Fram}t 8 pos' 65394 ; '- = Bak}t 8 pos' : ; 65395 ; '1-7= Fram}t 1-7 pos' : ; 65396 ; 'I = N{sta Instruktion' 65397 ; 'R = BASIC-Programrad (fr}gas)' 65398 ; ' = N{sta Programrad' 65399 ; 'N = Ny start-adress' : ; : ; 65400 ; 'Start-adress='; : INPUT S 65401 ; CHR$(12) 65402 ; CUR(21,0)'+/-: +/- 8 BYTES A: +/- ? BYTES /I:NEXTF/B: +/-64 BYTES N: NY ADDR. 1-7: +1-7'; 65403 T$='0123456789ABCDEF*' 65404 ; CUR(0,0); : IF S<0 S=S+65536 65405 FOR I=S TO S+63% STEP 8% 65406 ; I;TAB(8); 65407 A%=I/4096% 65408 ; MID$(T$,A%+1%,1%); 65409 A1%=(I-A%*4096)/256% 65410 ; MID$(T$,A1%+1%,1%); 65411 A2%=(I-A%*4096-A1%*256)/16% 65412 ; MID$(T$,A2%+1%,1%); 65413 A3%=I-A%*4096-A1%*256-A2%*16 65414 ; MID$(T$,A3%+1%,1%);' '; 65415 [$=' ' 65416 FOR J=I TO I+7 65417 IF J>65535 LET A=255 ELSE A=PEEK(J) 65418 IF A<32 OR A>127 LET [$=[$+' ' ELSE LET [$=[$+CHR$(A)+' ' 65419 A%=A/16% 65420 ; MID$(T$,A%+1%,1%); 65421 A1%=A-A%*16% 65422 ; MID$(T$,A1%+1%,1%);' '; 65423 NEXT J 65424 ; : ; [$ 65425 NEXT I 65426 ; : ; : ; 'Instr= '; : GOSUB 65460 65427 ; 'Adr='PEEK(S)+256*PEEK(S+1%)' Rad='PEEK(S+1)+256*PEEK(S+2); 65428 IF 13=PEEK(S-1) ; SPACE$(9) ELSE ; ' ? ' 65429 GET \$ : IF \$>"^" \$=CHR$(ASC(\$)-32) 65430 ; \$;SPACE$(33);CUR(20,2); 65431 IF \$='F' LET S=S+64% : GOTO 65404 65432 IF \$='B' LET S=S-64% : GOTO 65404 65433 IF \$='+' LET S=S+8 : GOTO 65404 65434 IF \$='-' LET S=S-8 : GOTO 65404 65435 IF \$='N' GOTO 65400 65436 IF \$='A' ; CUR(20,2)'Adv='; : INPUT \ : LET S=S+\ : GOTO 65404 65437 IF \$='R' ; CUR(20,2)'Rad='; : INPUT \ : LET S=CALL(3897%,\) : GOTO 65404 65438 IF \$=' ' LET S=S+PEEK(S) : GOTO 65404 65439 IF \$='I' LET S=S+L9% : GOTO 65404 65440 S=S+ASC(\$)-48 : GOTO 65404 65441 END 65442 DATA nop,ldBC.],ld(BC).A,incBC,incB,decB,ldB.[,rlca,"exAF.AF'",addHL.BC,ldA.(BC),decBC,incC,decC,ldC.[,rrca 65443 DATA djnz\,ldDE.],ld(DE).A,incDE,incD,decD,ldD.[,rla,jr\,addHL.DE,ldA.(DE),decDE,incE,decE,ldE.[,rra 65444 DATA jrNZ.\,ldHL.],ld(]).HL,incHL,incH,decH,ldH.[,daa,jrZ.\,addHL.HL,ldHL.(]),decHL,incL,decL,ldL.[,cpl 65445 DATA jrNC.\,ldSP.],ld(]).A,incSP,inc(HL),dec(HL),ld(HL).[,scf,jrC.\,addHL.SP,ldA.(]),decSP,incA,decA,ldA.[,ccf 65446 DATA ldB.B,ldB.C,ldB.D,ldB.E,ldB.H,ldB.L,ldB.(HL),ldB.A,ldC.B,ldC.C,ldC.D,ldC.E,ldC.H,ldC.L,ldC.(HL),ldC.A 65447 DATA ldD.B,ldD.C,ldD.D,ldD.E,ldD.H,ldD.L,ldD.(HL),ldD.A,ldE.B,ldE.C,ldE.D,ldE.E,ldE.H,ldE.L,ldE.(HL),ldE.A 65448 DATA ldH.B,ldH.C,ldH.D,ldH.E,ldH.H,ldH.L,ldH.(HL),ldH.A,ldL.B,ldL.C,ldL.D,ldL.E,ldL.H,ldL.L,ldL.(HL),ldL.A 65449 DATA ld(HL).B,ld(HL).C,ld(HL).D,ld(HL).E,ld(HL).H,ld(HL).L,halt,ld(HL).A,ldA.B,ldA.C,ldA.D,ldA.E,ldA.H,ldA.L 65450 DATA ldA.(HL),ldA.A 65451 DATA addA.B,addA.C,addA.D,addA.E,addA.H,addA.L,addA.(HL),addA.A,adcA.B,adcA.C,adcA.D,adcA.E,adcA.H,adcA.L 65452 DATA adcA.(HL),adcA.A 65453 DATA subB,subC,subD,subE,subH,subL,sub(HL),subA,sbcA.B,sbcA.C,sbcA.D,sbcA.E,sbcA.H,sbcA.L,sbcA.(HL),sbcA.A 65454 DATA andB,andC,andD,andE,andH,andL,and(HL),andA,xorB,xorC,xorD,xorE,xorH,xorL,xor(HL),xorA 65455 DATA orB,orC,orD,orE,orH,orL,or(HL),orA,cpB,cpC,cpD,cpE,cpH,cpL,cp(HL),cpA 65456 DATA retNZ,popBC,jpNZ.],jp],callNZ.],pushBC,addA.[,rst0,retZ,ret,jpZ.],CB,callZ.],call],adcA.[,rst8 65457 DATA retNC,popDE,jpNC.],out([).A,callNC.],pushDE,sub[,rst16,retC,exx,jpC.],inA.([),callC.],DD,sbcA.[,rst24 65458 DATA retPO,popHL,jpPO.],ex(SP).HL,callPO.],pushHL,and[,rst32,retPE,jp(HL),jpPE.],exDE.HL,callPE.],ED,xor[,rst40 65459 DATA retP,popAF,jpP.],di,callP.],pushAF,or[,rst48,retM,ldSP.HL,jpM.],ei,callM.],FD,cp[,rst56 65460 RESTORE 65442 65461 L9%=1% 65462 FOR Q%=0% TO PEEK(S) : READ \$ : NEXT Q% 65463 LET [%=PEEK(S+1%) 65464 LET ]=PEEK(S+1%)+256*PEEK(S+2%) 65465 IF [%>127% LET \%=[%-256%+2% ELSE \%=[%+2% 65466 IF \$='CB' LET S1%=1% : GOSUB 65483 65467 IF \$='ED' GOSUB 65496 65468 IF \$='DD' LET I$='IX' : GOSUB 65517 65469 IF \$='FD' LET I$='IY' : GOSUB 65517 65470 LET Q9%=0% : FOR Q%=1% TO LEN(\$) 65471 LET U$=MID$(\$,Q%,1%) 65472 IF U$>='a' ; CHR$(ASC(U$)-32%); : GOTO 65480 65473 IF Q9%=0% ; ' '; : Q9%=1% 65474 IF U$=']' LET L9%=L9%+2% : ; RIGHT$(NUM$(]),2%); : GOTO 65480 65475 IF U$='[' LET L9%=L9%+1% : ; RIGHT$(NUM$([%),2%); : GOTO 65480 65476 IF U$='\' LET L9%=L9%+1% : IF \%<0% ; \%; : GOTO 65480 ELSE ; '+'RIGHT$(NUM$(\%),2%); : GOTO 65480 65477 IF U$='@' LET L9%=L9%+1% : IF D%<0% ; D%; : GOTO 65480 ELSE ; '+'RIGHT$(NUM$(D%),2%); : GOTO 65480 65478 IF U$='.' ; ','; : GOTO 65480 65479 ; U$; 65480 NEXT Q% 65481 ; ' *L='L9%' ' 65482 RETURN 65483 RESTORE 65484 65484 DATA rlc,rrc,rl,rr,sla,sra,?,srl,bit0.,bit1.,bit2.,bit3.,bit4.,bit5.,bit6.,bit7.,res0.,res1.,res2.,res3.,res4. 65485 DATA res5.,res6.,res7.,set0.,set1.,set2.,set3.,set4.,set5.,set6.,set7. 65486 L9%=L9%+1% 65487 FOR Q1%=0% TO (PEEK(S+S1%) AND 248%)/8% 65488 READ \1$ 65489 NEXT Q1% 65490 RESTORE 65491 65491 DATA B,C,D,E,H,L,(HL),A 65492 FOR Q1%=O% TO (PEEK(S+S1%) AND 7%) 65493 READ \2$ : NEXT Q1% 65494 \$=\1$+\2$ 65495 RETURN 65496 RESTORE 65497 65497 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65498 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65499 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65500 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65501 DATA inB.(C),out(C).B,sbcHL.BC,ld(]).BC,neg,retn,im0,ldI.A,inC.(C),out(C).C,adcHL.BC,ldBC.(]),X,reti,X,X 65502 DATA inD.(C),out(C).D,sbcHL.DE,ld(]).DE,X,X,im1,ldA.I,inE.(C),out(C).E,adcHL.DE,ldDE.(]),X,X,im2,X 65503 DATA inH.(C),out(C).H,sbcHL.HL,X,X,X,X,rrd,inL.(C),out(C).L,adcHL.HL,X,X,X,X,rld 65504 DATA X,X,sbcHL.SP,ld(]).SP,X,X,X,X,inA.(C),out(C).A,adcHL.SP,ldSP.(]),X,X,X,X 65505 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65506 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65507 DATA ldi,cpi,ini,outi,X,X,X,X,ldd,cpd,ind,outd,X,X,X,X 65508 DATA ldir,cpir,inir,otir,X,X,X,X,lddr,cpdr,indr,otdr,X,X,X,X 65509 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65510 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65511 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65512 DATA X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X 65513 L9%=L9%+1% 65514 FOR Q%=0% TO PEEK(S+1%) : READ \$ : NEXT Q% 65515 LET ]=PEEK(S+2%)+256*PEEK(S+3%) 65516 RETURN 65517 RESTORE 65442 65518 L9%=L9%+1% 65519 FOR Q%=0% TO PEEK(S+1%) : READ \$ : NEXT Q% 65520 LET [%=PEEK(S+3%) 65521 LET D%=PEEK(S+2%) 65522 IF D%>127% LET D%=D%-256% 65523 IF \$='CB' LET S1%=3% : GOSUB 65483 65524 W%=INSTR(1%,\$,'(HL)') 65525 IF W%=0% GOTO 65529 65526 IF PEEK(S+1%)=233% LET \$='jp('+I$+')' : RETURN 65527 \$=LEFT$(\$,W%)+I$+'@'+RIGHT$(\$,W%+3%) 65528 GOTO 65533 65529 W%=INSTR(1%,\$,'HL') 65530 IF W%=0% GOTO 65533 65531 \$=LEFT$(\$,W%-1%)+I$+RIGHT$(\$,W%+2%) 65532 GOTO 65529 65533 GOTO 65515