003
15.01.2016, 22:06 Uhr
holm
|
Wasis? Zeropage beim Z80? Olli ich bin enttäuscht :-)
Der springt gar nicht, nur je nach dem wo man den Code anspringt interpretiert die CPU den einmal als POP BC,POP DE, CALL oder aber wenns über das DEFB 21H rein läuft als LD HL,0D1C1H .. was nicht stört weil HL nicht verwendet wird. Diesen Kram gibts mehrfach in verschiedenen Inkarnationen in dem Interpreter:
Quellcode: |
RET NZ ; if not break, return CALL EMCTCH ;053DH emit ^C JR L0738 ;0738H and skip to exec_end EXESTP: RET NZ ;exec_stop Holm!!: 0737 ;* more instructions follow?, exit DEFB 0F6H ;* OR xxxx to skip next instruction ; ensures that A is non zero EXEEND: ; ignore unless at end of line RET NZ ; note: when entered through END, A=0 ; when entered through STOP, A = 0xC0 ... RESSTR: ;0F9B OR A ; set flags of requested length DEFB 0Eh ; LD C, xx to skip next instruction ; is uncritical because C is loaded later again POP AF ;DEFB 0F1h ; Holm !!?? ; ** skipped
|
Es gibt also quasi "halbe Befehle" im Code. Gruselig das...
Gruß,
Holm oder -- float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v; {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+ (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&& (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;} Dieser Beitrag wurde am 15.01.2016 um 22:12 Uhr von holm editiert. |