[PockEmul] le Casio Z-1GR

Vous ne possédez pas l'original ? Découvrez la machine via l'émulation !

Modérateur : Politburo

Répondre
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2221
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par remy »

dprtl a écrit :
remy a écrit : Dis moi ledudu, tu veux bien me prêter ton z1?
Si le z1 de ledudu n'était pas dispo, ça me ferait plaisir éventuelllement de contribuer à ton projet ! Je n'ai pas trop envie d'expédier ma machine depuis Strasbourg, mais je peux peut-être réaliser des captures pour toi... Si tu m'expliques la méthode ? J'ai également un FA-6 qui fonctionne. On pourrait bosser également en "direct" sur irc.freenode.net ou sur irc.epiknet.org ?
Si tu maitrise l'asm 80188, je serai preneur des modifications effectuées par les commandes suivantes sur les adresses mémoire 400h à 42Eh:
out 221h, 0Eh
out 220h, 0801h

Attention, seul le langage machine est utilisable car cette zone mémoire est utilisé pour les calculs.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

remy a écrit : Si tu maitrise l'asm 80188, je serai preneur des modifications effectuées par les commandes suivantes sur les adresses mémoire 400h à 42Eh:
out 221h, 0Eh
out 220h, 0801h
Je vais avoir un peu de mal à être autonome en asm x86, au moins au début. Si j'écris le programme ci-dessous, j'ai bon ou pas ?

Code : Tout sélectionner

ORG  2000H
OUT 221h, 0Eh
OUT 220h, 0801h
END 
[EDIT] problème 1 : "OM error" à l'assemblage

Code : Tout sélectionner

10 DEFSEG=0
20 CALL &H2000
30 FOR I=1024 TO 1070:PRINT PEEK(I):NEXT 
Je vais le tester de ce pas, c'est encore mieux...
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2221
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par remy »

je pense que ça ne marchera pas.
En effet le fait d'utiliser l’interpréteur BASIC pour dumper la mémoire va polluer cette plage mémoire. Il faut dans le programme ASM copier la plage mémoire en RAM utilisateur pour pouvoir ensuite la dumper en BASIC.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

remy a écrit :je pense que ça ne marchera pas.
Déjà, problème 1 : je n'arrive pas à assembler ce code sur l'assembleur built-in : "OM error".

Sinon voici ce que ça dumpe "de base" en Basic (en HEX$, et sans le CALL &H2000) :

Code : Tout sélectionner

0400 0000
0401 0000
0402 0000
0403 0000
0404 0000
0405 0000
0406 0030
0407 0007
0408 0004
0409 0009
040A 000A
040B 000B
040C 000C
040D 000D
040E 000E
040F 000F
0410 0000
0411 0000
0412 0000
0413 0000
0414 0000
0415 0007
0416 0001
0417 0003
0418 0001
0419 0019
041A 001A
041B 001B
041C 001C
041D 001D
041E 001E
041F 001F
0420 0000
0421 0000
0422 0000
0423 0000
0424 0000
0425 0000
0426 0011
0427 00CE
0428 00CD
0429 00CC
042A 00CB
042B 00CA
042C 00C9
042D 0000
042E 00C7

Code : Tout sélectionner

10 OPEN"COM0:5,N,8,1,C,D,C,N,N"AS#1
30 FOR I=1024 TO 1070:PRINT #1,HEX$(I)" "HEX$(PEEK(I)):NEXT
40 CLOSE
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2221
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par remy »

bon, je me lance. Je n'ai jamais fait d'assembleur 8088, mais à force de deassembler la ROM du Z1, je comprend un peu.
Je pense que cela devrai marcher :

Code : Tout sélectionner

ORG 2000h
; init memory
		MOV		DI,0400h
		MOV		AL,2Eh
LOOP	MOV		[DI],DL
		INC		DI
		DEC		al	
		JNZ		LOOP

; send command
		MOV     DX, 220h
		MOV     AL, 1
		MOV     AH, 8
		OUT     DX, AX

; copy working memory to 2300h
		MOV     SI, 400h
		MOV     DI, 2300h
		MOV     CX, 2Eh
		REP MOVSW
END

10 DEFSEG=0
20 CALL &H2000
30 FOR I=&H2300 TO &H232E
40 PRINT HEX$(PEEK(I))" "
50 NEXT
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

Bon problème (1) résolu : pour utiliser l'assembleur built-in, il faut lui allouer de la mémoire (comme sur PB-1000). Initialement, j'avais ça :

Code : Tout sélectionner

SYSTEM
CLEAR 4096,0,6144
FREE 17786 V:4088
CLEAR [taille de la zone de caractères][,taille de la zone de langage machine][,taile de la zone de travail du système]

Après avoir tapé ceci, j'arrive à assembler sur la Z-1 :

Code : Tout sélectionner

CLEAR 2048,2048,6144
Et là, problème (2) :

Code : Tout sélectionner

2000
ORG 2000h
<Mnemonic Syntax Error F0-1>
Impossible de trouver la bonne syntaxe ! J'ai essayé : ORG 2000h, ORG &H2000, ORG 2000H, ORG 2000... rien ne convient à l'assembleur.
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

ATTENTION, LE PROGRAMME CI-DESSOUS EST ERRONÉ.

J'ai compris, il faut au moins un espace avant les mnémoniques :

Code : Tout sélectionner

 ORG 2000h
; init memory
 MOV DI,400H
 MOV AL,2EH
LOOP: MOV [DI],DL
 INC DI
 DEC AL
 JNZ LOOP

; send command
 MOV DX,220H
 MOV AL,1
 MOV AH,8
 OUT DX,AX

; copy working memory to 2300h
 MOV SI,400H
 MOV DI,2300H
 MOV CX,2EH
 REP MOVSW
 END
Assemble End!
End Address = 201EH
Total Error = 0
Modifié en dernier par dprtl le 04 avr. 2013 07:55, modifié 1 fois.
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

Problème (3) le CALL &H2000 plante totalement la Z-1 ! Obligé d'utiliser un trombone pour enfoncer le 'P' à l'arrière de la machine.
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2221
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par remy »

On a peut etre oublié le return ?
Ajoute un RET à la fin
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

Avec un RET, ou même deux, ça plante tout pareil. Ça peut venir de la zone mémoire dans laquelle on n'aurait pas le droit d'écrire ?
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

Ouhla, j'ai tenté un IRET à la fin ; et là, le CALL &H2000 m'a pourri la zone des programmes en Basic, avec des numéros de ligne bizarres : 77887, 77897, 78807...

Code : Tout sélectionner

BN error P0-40
"spécification incorrecte du numéro de fichier" => la zone Basic est vraiment pourrie
Modifié en dernier par dprtl le 04 avr. 2013 00:35, modifié 1 fois.
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2221
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par remy »

Avec un peu de chance un membre du forum ayant de l'expérience sur la prog LM du Z1 pourra nous aider ....
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2221
Enregistré le : 13 mars 2006 15:39
Localisation : Issy
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par remy »

Tu fais le CALL à partir du prog BASIC ou de l'invite de commande ?
Tu as bien remis le DEFSEG=0 ?
....
Je sèche...
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

Oui CALL à partir du programme P0 en Basic.

Et là ça va se terminer par un "All Reset" (= NEWALL). J'ai des "BF error" (spécification incorrecte du nom de fichier).
Avatar du membre
dprtl
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 463
Enregistré le : 27 janv. 2013 00:26
Localisation : Strasbourg
Contact :

Re: [PockEmul] le Casio Z-1GR

Message par dprtl »

Rémy, pour avoir le droit d'écrire dans la zone de 2300h à 232Eh sans pourrir les programmes Basic, est-ce que je dois modifier ma partition mémoire au CLEAR ? Ou bien peut-on choisir une autre zone utilisateur ?
Répondre

Retourner vers « Emulateurs »