Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
| source_0910 2008/11/04 16:38 | source_0910 2008/11/04 21:57 version actuelle | ||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| <code:basic4gl> | <code:basic4gl> | ||
| + | 5 GOTO180 | ||
| + | 80 f=1: x=PEEK(&H673)*256+PEEK(&H672):FOR w=0 TO 4:a(w)=PEEK(&H65F+w*2)*256+PEEK(&H65E+w*2):NEXT w:a(5)=PEEK(&H668) | ||
| + | 90 b$(0)="":FOR w=&H67E TO &H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXT w | ||
| + | 95 CLS:IFp=1THEN LPRINT"Break point PC:";HEX$(x);" ";b$(0);TAB(0);" ";HEX$(a(0));" ";HEX$(a(1));" ";HEX$(a(2));" ";HEX$(a(3));" ";HEX$(a(4));" ";RIGHT$(HEX$(a(5)),1) | ||
| + | 100 PRINT"Break point PC:";HEX$(x);" ";b$(0);TAB(0);" ";HEX$(a(0));" ";HEX$(a(1));" ";HEX$(a(2));" ";HEX$(a(3));" ";HEX$(a(4));" ";RIGHT$(HEX$(a(5)),1); | ||
| + | 110 w$=INPUT$(1,@):CLS:f=0: POKE &H66B,1:MODE44 | ||
| + | 180 CLS:ERASE a,b$:DIMa(5):MODE8:f=0:DEFSEG=0:p=0:p$=" ":x=0:w=0:y=0:u=0:v=0:w$=" ":DIMb$(1):b$(0)=" ":b$(1)=" " | ||
| + | 250 x=PEEK(&H673)*256+PEEK(&H672) | ||
| + | 252 w=PEEK(&H669):IF w<>0 THEN w$="[on] " ELSE w$="[off]" | ||
| + | 255 p=PEEK(&H685):IF p<>0 THEN p$="[on] " ELSE p$="[off]" | ||
| + | 260 CLS:PRINT"Go/Dump/Source/Cal/Print/Trace PC:";HEX$(x);" ";p$;" ";w$; | ||
| + | 290 w$=INPUT$(1,@): w=ASC(w$)-64:IF w>26 THEN w=w-32 | ||
| + | 300 ON w GOTO ,,1030,510,,,1150,,,,,,,,,370,,,1080,440 | ||
| + | 310 IF w=154 THEN 1080 ELSEIFw=-51THEN1200ELSE290 | ||
| + | 370 CLS:POKE&H685,(p+1)MOD2:GOTO252 | ||
| + | 440 CLS:w=PEEK(&H669): POKE &H669,(w+1)MOD2:GOTO 252 | ||
| + | 510 CLS | ||
| + | 520 PRINT"Object/Register/Break point"; | ||
| + | 530 w$=INPUT$(1,@) | ||
| + | 535 w=ASC(w$)-64:IF w>26 THEN w=w-32 | ||
| + | 540 ON w GOTO ,610,,,,,,,,,,,,,730,,,900:GOTO530 | ||
| + | 610 CLS:y=PEEK(&H66D)*256+PEEK(&H66C):MODE41,y:b$(0)="":FORw=&H67ETO&H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXTw: PRINT"Break point:";:IFPEEK(&H66A)=1THENPRINT HEX$(y);" ";b$(0);TAB(24);ELSEPRINTTAB(24); | ||
| + | 620 INPUT@7;w$:CLS:IF w$="" THEN 250 ELSE MODE43w$ | ||
| + | 630 w=PEEK(&H684):IF w=1 THEN 610 ELSE w=PEEK(&H677):IFw*256+PEEK(&H676)=65535 THEN x=0:y=&HFF ELSE MODE42w$:w=PEEK(&H684):IFw=1THEN 610 ELSEw=PEEK(&H677):x=1:y=PEEK(&H676) | ||
| + | 640 POKE &H66A,x:POKE &H66B,0:POKE &H66D,w:POKE &H66C,y:f=0 | ||
| + | 650 GOTO 250 | ||
| + | 730 CLS:IF p=1 THEN 840 ELSE y=0 | ||
| + | 740 PRINT"Start address:";HEX$(y);" "; | ||
| + | 750 INPUT@7;w$:CLS:IF w$<>"" THEN MODE42w$:w=PEEK(&H684):IFw=1THEN730ELSE w=PEEK(&H677):y=w*256+PEEK(&H676) | ||
| + | 770 u=PEEK(&H66F)*256+PEEK(&H66E):v=PEEK(&H675)*256+PEEK(&H674) | ||
| + | 780 x=u+y*2 | ||
| + | 790 MODE41,y:b$(0)="":FOR w=&H67E TO &H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXT w | ||
| + | 792 IF y=v-1 THEN b$(1)=" " ELSE MODE41,y+1:b$(1)="":FOR w=&H67E TO &H683:b$(1)=b$(1)+CHR$(PEEK(w)):NEXT w | ||
| + | 800 CLS:x=u+y*2 :PRINTHEX$(y);TAB(8);b$(0);TAB(16);HEX$(PEEK(x+1)*256+PEEK(x)); | ||
| + | 805 IFy><v-1THEN PRINTTAB(0);HEX$(y+1);TAB(8);b$(1);TAB(16);HEX$(PEEK(x+3)*256+PEEK(x+2)); | ||
| + | 810 w=ASC(INPUT$(1,@)) | ||
| + | 815 IF(w-13)*(w-31)=0THENIFy=v-1THEN810ELSEy=y+1ELSE IF w=30THENy=y-1:GOTO830ELSE IF(w-28)*(w-29)<>0THEN810ELSE835 | ||
| + | 825 b$(0)=b$(1):MODE41,y+1:b$(1)="":FORw=&H67E TO&H683:b$(1)=b$(1)+CHR$(PEEK(w)):NEXTw:GOTO800 | ||
| + | 830 IF y<0 THEN y=0:GOTO 810 ELSE b$(1)=b$(0):MODE41,y:b$(0)="":FORw=&H67E TO&H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXTw:GOTO800 | ||
| + | 835 LOCATE0,0: LOCATE0,1:PRINT" ";:LOCATE0,1:PRINT"data?";:INPUT@7;w$:LOCATE0,0:IFw$="" THEN780 ELSE MODE43w$:w=PEEK(&H684):IFw=1 THEN835ELSE POKEx,PEEK(&H676):POKEx+1,PEEK(&H677) | ||
| + | 837 GOTO780 | ||
| + | 840 u=PEEK(&H66F)*256+PEEK(&H66E):v=PEEK(&H675)*256+PEEK(&H674) | ||
| + | 845 FORy=0 TO v-1 : MODE41,y:b$(0)="":FOR w=&H67E TO &H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXT w | ||
| + | 846 x=u+y*2:LPRINT HEX$(y);TAB(8);b$(0);TAB(16);HEX$(PEEK(x+1)*256+PEEK(x)):NEXTy:GOTO250 | ||
| + | 900 y=0 | ||
| + | 910 CLS:FOR w=0 TO 4:a(w)=PEEK(&H65F+w*2)*256+PEEK(&H65E+w*2):NEXT w:a(5)=PEEK(&H668) | ||
| + | 915 PRINT" ";HEX$(a(0));" ";HEX$(a(1));" ";HEX$(a(2));" ";HEX$(a(3));" ";HEX$(a(4));" ";RIGHT$(HEX$(a(5)),1); | ||
| + | 920 PRINT TAB(0);"GR";MID$(STR$(y),2);":";HEX$(a(y));TAB(8);a(y); | ||
| + | 940 INPUT@7;w$:CLS:IF w$="" THEN 970 ELSE MODE43w$:w=PEEK(&H684):IF w=0 THEN w=PEEK(&H677): a(y)=w*256+PEEK(&H676) ELSE 915 | ||
| + | 950 w=INT(a(y)/256):POKE &H65F+y*2,w:POKE &H65E+y*2,a(y)-w*256 | ||
| + | 970 y=y+1:IF y=5 THEN y=0 | ||
| + | 980 GOTO 910 | ||
| + | 1030 CLS:MODE45 | ||
| + | 1080 CLS:MODE46 | ||
| + | 1150 x=PEEK(&H673)*256+PEEK(&H672) | ||
| + | 1160 CLS:PRINT"Start address:";HEX$(x);" "; | ||
| + | 1170 INPUT@7;w$:CLS:w$=LEFT$(w$,7):IF w$="" THEN 1190 ELSE f=0: MODE42w$ | ||
| + | 1180 w=PEEK(&H684):IF w=0 THEN POKE&H666,&HFF:POKE&H667,&HFF:w=PEEK(&H677):x=w*256+PEEK(&H676) ELSE 1160 | ||
| + | 1190 w=INT(x/256):POKE &H673,w:POKE &H672,x-w*256 | ||
| + | 1200 IFf=0 THEN POKE&H66B,0:CLS:MODE44 ELSEf=0: POKE&H66B,1:CLS:MODE44 | ||
| + | 1280 u=PEEK(&H66F)*256+PEEK(&H66E):x=PEEK(&H673)*256+PEEK(&H672):y=PEEK(&H677)*256+PEEK(&H676):FOR w=0 TO 4:a(w)=PEEK(&H65F+w*2)*256+PEEK(&H65E+w*2):NEXT w:a(5)=PEEK(&H668) | ||
| + | 1290 w=INT(y/256):POKE &H673,w:POKE &H672,y-w*256 | ||
| + | 1300 b$(0)="":FOR w=&H67E TO &H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXT w | ||
| + | 1305 IFp=1THEN1338 | ||
| + | 1310 CLS:PRINT HEX$(x);TAB(7);b$(0);TAB(19);HEX$(PEEK(u+x*2+1)*256+PEEK(u+x*2));HEX$(PEEK(u+x*2+3)*256+PEEK(u+x*2+2));TAB(0);" ";HEX$(a(0));" ";HEX$(a(1));" ";HEX$(a(2));" ";HEX$(a(3));" ";HEX$(a(4));" ";RIGHT$(HEX$(a(5)),1); | ||
| + | 1320 w$=INPUT$(1,@):CLS:MODE44 | ||
| + | 1338 LPRINT HEX$(x);TAB(7);b$(0);TAB(19);HEX$(PEEK(u+x*2+1)*256+PEEK(u+x*2));HEX$(PEEK(u+x*2+3)*256+PEEK(u+x*2+2));TAB(0);" ";HEX$(a(0));" ";HEX$(a(1));" ";HEX$(a(2));" ";HEX$(a(3));" ";HEX$(a(4));" ";RIGHT$(HEX$(a(5)),1) | ||
| + | 1340 CLS:MODE44 | ||
| + | 1390 x=PEEK(&H673)*256+PEEK(&H672):b$(0)="":FOR w=&H67E TO &H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXT w | ||
| + | 1410 CLS:PRINT"Out of address PC:";HEX$(x);TAB(25);b$(0); | ||
| + | 1420 w$=INPUT$(1,@):GOTO 250 | ||
| + | 1440 x=PEEK(&H673)*256+PEEK(&H672):b$(0)="":FOR w=&H67E TO &H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXT w | ||
| + | 1460 CLS:PRINT"Bad code PC:";HEX$(x);TAB(25);b$(0); | ||
| + | 1470 w$=INPUT$(1,@):GOTO 250 | ||
| + | 1490 x=PEEK(&H673)*256+PEEK(&H672):b$(0)="":FOR w=&H67E TO &H683:b$(0)=b$(0)+CHR$(PEEK(w)):NEXT w | ||
| + | 1510 CLS:PRINT"Stack over PC:";HEX$(x);TAB(25);b$(0); | ||
| + | 1520 w$=INPUT$(1,@):GOTO 250 | ||
| </code> | </code> | ||