Emulátor funkciók ● memória térkép, azonnali módosítási lehetőség, dump mentése, visszatöltése ● BASIC program(ok) szerkesztése, mentése, betöltése ● MEMO bejegyzések szerkesztése, mentése, betöltése ● CALC memória szerkesztése, mentése, betöltése ● memóriapontok felvétele figyeléshez (hack) ● indításkor külső BASIC prg., vagy dump betöltése parancsorból, vagy paraméterként ● pillanatkép(ek) készítése, visszatérés korábbi állapotokra ● képernyőkép (PrtScrn) ● képernyőről videó felvétel ● processzor-sebesség állítás ● szünet Szimulátor különbségek ● szimulálja a hardver működését (busz, IC lábak, stb.) ??? http://www.lehmayr.de/PC-1360/e_index.htm $0300-0307 look like four 16bit addresses pointing to the memory location of the user defined characters. You could define such a character, PEEK out the address and then PEEK the 5 bytes you find at this memory location. If this doesn't yield the expected result you could scan the memory for them using a PEEK loop. Regarding machine programming... I wouldn't fully exclude the possibility of machine programming, even without the CALL command. Since you can POKE, there could be a chance to hack a jump vector that may be located somewhere in the system RAM. But before you can explore the system (BIOS stuff in the ROM) you need information on the processor to program a disassembly tool. The fx-850p has a built-in HD62002 processor, but I couldn't find anyhing about this CPU Maybe there are other Casio pockets with the same processor supporting ASM programming, which could give a source of information (I found that the fx-840 and fx-860pvc are derivated from the 850p.) Some of the 7xx series pockets support ASM too, but I don't know if they use the same processor. An introduction in the fx-7xx series machine code programming you can find here (in German): [www.silrun.de] # 0300-0307 Reserved for 4 custom characters (ASCII 252 a 255) 0x300-0x3ff is the Buffer for CALCJMP and VALF("") CALCJMP is similar to press [CALC] Button in CALC-Mode CALC$ contains Function Memory (0x400-0x4ff) The 8401T housing looks like the FX-770P series, but the hardware is almost the same as the FX-850P or FX-603P. (HD62002 @ 1.228 MHz) It has 8 KB RAM thats even PEEKable (Address range: 0-8191). Memória megtakarítási trükkök ● minden programsorba annyi parancsot zsúfolj be kettőspontokkal elválasztva, amennyit csak lehet ● hagyd el az egyszerű szövegkiírásnál a bezáró idézőjelet, ha az a utasítássor végén van (pl.: PRINT “Szöveg) ● ha lehet, használj egybetűs változóneveket ● ne használj egymás után több PRINT parancsot, hanem csak egyet, ha egy sorba íratod ki a dolgokat ● az ERASE paranccsal töröld a nem használt változókat ● tömbök deklarálását végezd egyszerre, vesszővel elválasztva (DIM tömb1, tömb2, …) ● a végén töröld egyszerre a változókat és a tömböket (ERASE tömb1, tömb2, változó, …) ● ● ● ● ● ● ● ha lehet, <= helyett használj <, >= helyett pedig > jelet hogy egy változó pozitív-e, így is vizsgálhatod: IF X PRINT … az épp leütött billentyűt változó használata nélkül is vizsgálhatod: IF INKEY$=”A“ GOTO használd az ON … GOTO/GOSUB parancsokat vesszők sorozatával elhagyhatsz néhány értékadást: OPEN “,,,,,,1A” hagyd el a parancsok, értékek között a szóközöket ELSE elé felesleges kettőspontot tenni v1 locate 0,0:print hex$(p);” “; if peek(p)<32 then poke 5,32 else poke 5,peek(p) if peek(p+1)<32 then poke 6,32 else poke 6,peek(p+1) if peek(p+2)<32 then poke 7,32 else poke 7,peek(p+2) … v2 if peek(p)<32 then p$=” “ else p$=chr$(peek(p)) if peek(p+1)<32 then p$=p$+” “ else p$=p$+chr$(peek(p+1)) if peek(p+2)<32 then p$=p$+” “ else p$=p$+chr$(peek(p+2)) … locate 0,0:print hex$(p);” “;p$; v3 p$=chr$(poz(peek(p)-32)+32) p$=p$+chr$(poz(peek(p+1)-32)+32) p$=p$+chr$(poz(peek(p+2)-32)+32) … locate 0,0:print hex$(p);” “;p$;