VG5000: LOAD et SAVE
Modérateurs : Papy.G, fneck, Carl
VG5000: LOAD et SAVE
Bonjour,
Quelqu'un connaît-il l'avantage d'enregistrer des programmes en ascii, puisquel les cassettes vg5000 ne peuvent certainement être lues que sur un VG5000? (peut-être sur MSX, mais ça m'étonnerait)
Autrement dit, si quelqu'un a un VG5000 et un MSX, peut-il essayer d'enregsitrer un programme basic en ascii sur vg5000 et essayer de la charger sur MSX pour voir si ca marche?
Merci d'avance
Quelqu'un connaît-il l'avantage d'enregistrer des programmes en ascii, puisquel les cassettes vg5000 ne peuvent certainement être lues que sur un VG5000? (peut-être sur MSX, mais ça m'étonnerait)
Autrement dit, si quelqu'un a un VG5000 et un MSX, peut-il essayer d'enregsitrer un programme basic en ascii sur vg5000 et essayer de la charger sur MSX pour voir si ca marche?
Merci d'avance
Re: VG5000: LOAD et SAVE
Salut Joaopa, toujours à fond dans le VG5000 on dirait !
Je ne crois pas que le VG5000 fasse une vraie sauvegarde ASCII d'un programme Basic, du moins à partir du Basic. Il peut enregistrer du Basicode (une sorte de Basic esperanto, censé être relu par d'autres machines, dont effectivement le MSX). Mais dans mes vagues souvenirs (à confirmer), le Basicode a sa propre structure et ne contient de fait pas toutes les commandes Basic (en particulier celles propres à la gestion des graphismes et du son).
Je crois avoir dans un coin une revue qui parlait du Basicode et présentait cela comme l'avenir . Je n'ai jamais essayé de faire des transferts, sachant qu'à priori, c'était quand même pas mal limité.
Je ne crois pas que le VG5000 fasse une vraie sauvegarde ASCII d'un programme Basic, du moins à partir du Basic. Il peut enregistrer du Basicode (une sorte de Basic esperanto, censé être relu par d'autres machines, dont effectivement le MSX). Mais dans mes vagues souvenirs (à confirmer), le Basicode a sa propre structure et ne contient de fait pas toutes les commandes Basic (en particulier celles propres à la gestion des graphismes et du son).
Je crois avoir dans un coin une revue qui parlait du Basicode et présentait cela comme l'avenir . Je n'ai jamais essayé de faire des transferts, sachant qu'à priori, c'était quand même pas mal limité.
- Carl
- Modérateur
- Messages : 13296
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: VG5000: LOAD et SAVE
Pour moi ces commandes sont utiles pour le basicode2...
Carl
Carl
Re: VG5000: LOAD et SAVE
Merci pour vos remarques. J'y vois un peu plus clair. Quelqu'un aurait-il le code source du Basicode?
Ca peut être intéressant d'un programmer un pour VG5000 et le mettre sur une eeprom à la place de la rom d'origine.
Ca peut être intéressant d'un programmer un pour VG5000 et le mettre sur une eeprom à la place de la rom d'origine.
Dernière modification par joaopa le 24 sept. 2016 05:42, modifié 1 fois.
Re: VG5000: LOAD et SAVE
Salut,
Car, dans ton cas, l'éditeur et la gestion du texte sera beaucoup plus importante en taille, que le traitement des instructions!
Généralement, seule la routine de chargement est codée, et le reste est entré en Basic!
Si tu refais une ROM, tu dois reprendre une base d'éditeur et de "parsing" pour les instructions, alors que le basic le fait en code natif... avec une possibilité d'incrémentation par ligne et d'édition!
Donc, pour la ROM...
Un greffon ASM sur le Basic sera plus simple, et plus pratique.
Il faut simplement se munir des instructions de base du basicode et de la notice.
Je recherche le programme ZX... mais, il est surement dispo sur le net....
[EDIT]
http://www.zx81stuff.org.uk/zx81/tape/Basicode2
Je le désassemble... et hop...
Donc, il y a un interpréteur de commandes.
[/EDIT]
J'ai celui du ZX81, mais il serait plus rapide d'en reprogrammer un directement sur le VG5000...Ca peut être intéressant d'un programmer un pour VG5000 et le mettre sur une eeprom à la place de la rom d'origine.
Car, dans ton cas, l'éditeur et la gestion du texte sera beaucoup plus importante en taille, que le traitement des instructions!
Généralement, seule la routine de chargement est codée, et le reste est entré en Basic!
Si tu refais une ROM, tu dois reprendre une base d'éditeur et de "parsing" pour les instructions, alors que le basic le fait en code natif... avec une possibilité d'incrémentation par ligne et d'édition!
Donc, pour la ROM...
Un greffon ASM sur le Basic sera plus simple, et plus pratique.
Il faut simplement se munir des instructions de base du basicode et de la notice.
Je recherche le programme ZX... mais, il est surement dispo sur le net....
[EDIT]
http://www.zx81stuff.org.uk/zx81/tape/Basicode2
Je le désassemble... et hop...
Code : Tout sélectionner
;------- TASM ASM mnemonics. -------
; Compile this file using:
; Set TASMOPTS = -b
; tasm -80 ThisCode.tas MyBinary.BIN
;-----------------------------------
; Zx81 Program name: VB81 XuR [basicode2.a.p] : SAVE"BASICODE" Line 9050
; REM line name: D=16514/18009 : H=4082/4659
#define ORG .org ; TASM cross-assembler definitions
#define equ .equ
;-----------------------------------
;- ZX81 CARACTERS CODES ------------
;-----------------------------------
A .equ $26
B .equ $27
C .equ $28
D .equ $29
E .equ $2A
F .equ $2B
G .equ $2C
H .equ $2D
I .equ $2E
J .equ $2F
K .equ $30
L .equ $31
M .equ $32
N .equ $33
O .equ $34
P .equ $35
Q .equ $36
R .equ $37
S .equ $38
T .equ $39
U .equ $3A
V .equ $3B
W .equ $3C
X .equ $3D
Y .equ $3E
Z .equ $3F
;-----------------------------------
;------- Rom and Ram Symbols -------
RAM_STKBOT equ $401A
RAM_E_LINE equ $4014
RAM_VARS equ $4010
RAM_DF_CC equ $400E
RAM_D_FILE equ $400C
RAM_RAMTOP equ $4004
GOSUB equ $0EB5
SV_MULT equ $120C
K_SHIFT equ $00A5
RAM_STKEND equ $401C
RAM_PRBUFF00 equ $403C
RAM_PRBUFF02 equ $403E
RAM_PRBUFF04 equ $4040
RAM_PRBUFF03 equ $403F
RAM_PRBUFF01 equ $403D
ORG $4082 ; [@16514/@h4082]
Lb4082:
NOP
RST 38H
DEC BC
AND (HL)
DEC C
JR Lb4063 ; [$4063:16483]
RET NZ
DJNZ Lb409D ; [$409D:16541]
RLA
DEC D
LD A,(DE)
LD D,$1B
JR Lb40AF ; [$40AF:16559]
DEC E
LD E,$1F
JR NZ, Lb40B9 ; [$40B9:16569]
LD ($2423),HL
DEC H
LD C,$19
INC DE
INC D
LD (DE),A
RRCA
AND (HL)
.db A,B,C,D,E,F,G,H; ZX-TEXT
.db I,J,K,L; ZX-TEXT
Lb40AF:
M,N,O,P,Q,R,S,T; ZX-TEXT
.db U,V; ZX-TEXT
Lb40B9:
W,X,Y,Z,(,/,); ZX-TEXT
RET C
IN A,($22) ; User port.
INC E
LD B,B
LD (RAM_STKBOT),HL ; SET STKBOT
LD (RAM_E_LINE),HL ; SET E-LINE
DEC HL
LD (HL),$80
LD (RAM_VARS),HL ; SET VARS
LD C,$18
LD D,$76
Lb40D5:
DEC HL
LD (HL),D
LD B,$20
Lb40D9:
DEC HL
LD (HL),$00
DJNZ Lb40D9 ; [$40D9:16601]
DEC C
JR NZ, Lb40D5 ; [$40D5:16597]
LD (RAM_DF_CC),HL ; SET DF-CC
DEC HL
LD (HL),D
LD (RAM_D_FILE),HL ; SET D-FILE
RET ; ==========================
LD (Lb422E),SP
Lb40EE:
LD SP,(Lb422E)
LD HL,(RAM_RAMTOP) ; GET RAM-TOP
DEC H
CALL Lb40C2 ; [16578]
LD B,$0A
Lb40FB:
DEC HL
LD (HL),$00
DJNZ Lb40FB ; [$40FB:16635]
Lb4100:
LD (HL),$76
DEC HL
PUSH HL
POP DE
LD A,(DE)
CP $76 ; [118]
JR NZ, Lb4100 ; [$4100:16640]
DEC DE
LD A,(DE)
CP $FF ; [255]
JR NZ, Lb4100 ; [$4100:16640]
DEC DE
LD A,(DE)
CP $FF ; [255]
JR NZ, Lb4100 ; [$4100:16640]
LD (Lb4234),HL
JR Lb417D ; [$417D:16765]
Lb411B:
CALL Lb41CF ; [16847]
CP $0D ; [13-"$"]
JR Z, Lb417D ; [$417D:16765]
Lb4122:
CP $60 ; [96]
JR C, Lb4128 ; [$4128:16680]
RES 5,A
Lb4128:
CP $03 ; [3]
JR Z, Lb4147 ; [$4147:16711]
CP $20 ; [32-"4"]
JR C, Lb411B ; [$411B:16667]
PUSH HL
LD HL, Lb4082
SUB $20
LD D,$00
LD E,A
ADD HL,DE
LD A,(HL)
LD HL,(Lb422E+2)
INC (HL)
POP HL
LD (HL),A
INC HL
LD A,(HL)
CP $00 ; [0]
JR NZ, Lb411B ; [$411B:16667]
Lb4147:
LD (HL),$76
INC HL
LD (HL),$76
PUSH HL
LD HL,(Lb4232)
LD (HL),$27
INC HL
LD (HL),$06
POP HL
LD DE,$031A
ADD HL,DE
CALL Lb40C2 ; [16578]
LD HL,(Lb4234)
INC HL
LD A,$00
CP (HL)
RET NZ
LD (HL),$03
INC HL
LD (HL),$E7
RET ; ==========================
Lb416B:
CP $20 ; [32-"4"]
JR Z, Lb4195 ; [$4195:16789]
PUSH HL
LD HL,(Lb4232)
LD D,(HL)
INC HL
LD E,(HL)
LD (Lb4236),DE
POP HL
JR Lb4122 ; [$4122:16674]
Lb417D:
LD (HL),$76
INC HL
LD (Lb4232),HL
LD (HL),$00
INC HL
LD (HL),$00
INC HL
LD (Lb422E+2),HL
LD (HL),$02
INC HL
LD (HL),$00
INC HL
LD (HL),$EA
INC HL
Lb4195:
CALL Lb41CF ; [16847]
CP $3A ; [58-"U"]
JR NC, Lb416B ; [$416B:16747]
CP $30 ; [48-"K"]
JR C, Lb416B ; [$416B:16747]
RES 5,A
RES 4,A
PUSH HL
LD HL,(Lb4232)
LD D,(HL)
INC HL
LD E,(HL)
LD H,D
LD L,E
SLA L
RL H
SLA L
RL H
ADD HL,DE
SLA L
RL H
LD D,$00
LD E,A
ADD HL,DE
LD DE,(Lb4232)
LD A,H
CP $24 ; [36-"8"]
CALL NC, Lb4224 ; [16932]
LD (DE),A
INC DE
LD A,L
LD (DE),A
POP HL
JR Lb4195 ; [$4195:16789]
Lb41CF:
CALL Lb41EC ; [16876]
JR C, Lb41CF ; [$41CF:16847]
LD D,$07
Lb41D6:
CALL Lb41EC ; [16876]
RR E
DEC D
JR NZ, Lb41D6 ; [$41D6:16854]
SRL E
Lb41E0:
CALL Lb41EC ; [16876]
JR NC, Lb41E0 ; [$41E0:16864]
Lb41E5:
CALL Lb41EC ; [16876]
JR NC, Lb41E5 ; [$41E5:16869]
LD A,E
RET ; ==========================
Lb41EC:
CALL Lb420D ; [16909]
LD C,$00
LD B,$26
Lb41F3:
DEC B
JP Z, Lb40EE ; [16622]
INC C
IN A,($FE) ; Keyboard Port.
BIT 7,A
JR NZ, Lb41F3 ; [$41F3:16883]
Lb41FE:
CALL Lb4217 ; [16919]
DJNZ Lb41FE ; [$41FE:16894]
LD A,$09
CP C
JR NC, Lb41EC ; [$41EC:16876]
LD A,$0F
CP C
CCF
RET ; ==========================
Lb420D:
CALL Lb4217 ; [16919]
IN A,($FE) ; Keyboard Port.
BIT 7,A
JR Z, Lb420D ; [$420D:16909]
RET ; ==========================
Lb4217:
LD A,$7F
IN A,($FE) ; Keyboard Port.
RRA
RET C
LD SP,(Lb422E)
JP Lb4147 ; [16711]
Lb4224:
LD HL,(Lb4236)
LD BC,$000A
ADC HL,BC
LD A,H
RET ; ==========================
Lb422E:
JP PE, GOSUB+2 ; []*BIOS ROM*
LD B,A
Lb4232:
INC C
LD B,A
Lb4234:
DEC BC
LD B,A
Lb4236:
NOP
NOP
DEC DE
DEC DE
DEC DE
DEC DE
DEC DE
DEC DE
DEC DE
DEC DE
Lb4240:
LD (DE),A
INC D
CALL C,SV_MULT+7 ; []*BIOS ROM*
.db $"<>",$"<" ; DATAS
INC D
.db $DB; DATA
.db A,B,S; ZX-TEXT
.db $D2; DATA
A,N,D; ZX-TEXT
.db $DA; DATA
A,S,C; ZX-TEXT
.db $C4; DATA
A,T,N; ZX-TEXT
.db $CC; DATA
C,H,R,$; ZX-TEXT
.db $D6; DATA
C,O,S; ZX-TEXT
.db $C8; DATA
D,I,M; ZX-TEXT
.db $E9; DATA
E,N,D; ZX-TEXT
.db $E3; DATA
E,X,P; ZX-TEXT
.db $CE; DATA
F,O,R; ZX-TEXT
.db $EB; DATA
G,O,S,U,B; ZX-TEXT
.db $ED; DATA
G,O,T,O; ZX-TEXT
.db $EC; DATA
I,F; ZX-TEXT
.db $FA; DATA
I,N,P,U,T; ZX-TEXT
.db $EE; DATA
I,N,T; ZX-TEXT
.db $CF; DATA
L,E,N; ZX-TEXT
.db $C6; DATA
L,E,T; ZX-TEXT
.db $F1; DATA
L,O,G; ZX-TEXT
.db $CD; DATA
N,E,X,T; ZX-TEXT
.db $F3; DATA
N,O,T; ZX-TEXT
.db $D7; DATA
O,R; ZX-TEXT
.db $D9; DATA
P,R,I,N,T; ZX-TEXT
.db $F5; DATA
R,E,M; ZX-TEXT
.db $EA; DATA
R,E,T,U,R,N; ZX-TEXT
.db $FE; DATA
R,U,N; ZX-TEXT
.db $F7; DATA
S,G,N; ZX-TEXT
.db $D1; DATA
S,I,N; ZX-TEXT
.db $C7; DATA
S,Q,R; ZX-TEXT
.db $D0; DATA
S,T,E,P; ZX-TEXT
.db $E0; DATA
S,T,O,P; ZX-TEXT
.db $E3; DATA
T,A,B; ZX-TEXT
.db $C2; DATA
T,A,N; ZX-TEXT
.db $C9; DATA
T,H,E,N; ZX-TEXT
.db $DE; DATA
T,O; ZX-TEXT
.db $DF; DATA
V,A,L; ZX-TEXT
PUSH BC
JP P,$76F2 ; [30450]
NOP
INC B
INC B
NOP
JP PE,$FFFF ; [65535]
HALT
NOP
DEC B
LD C,$00
.db $EA; DATA
P,R,I,N,T; ZX-TEXT
.db $00,$0B; DATA
L,E,T; ZX-TEXT
NOP
DEC BC
HALT
NOP
DEC C
LD B,$00
JP PE, K_SHIFT+3 ; []*BIOS ROM*
XOR B
XOR B
HALT
NOP
LD C,$02
DEC DE
DEC DE
LD HL,(Lb4234)
Lb4310:
LD A,$7F
IN A,($FE) ; Keyboard Port.
RRA
RET NC
INC HL
LD (Lb44C2),HL
LD B,(HL)
INC HL
LD C,(HL)
INC BC
LD (Lb44C4),BC
INC HL
LD (Lb44C8),HL
INC HL
INC HL
LD A,(HL)
INC HL
LD (Lb44CA),HL
CP $EA ; [234]
LD (Lb44D2),A
JR NZ, Lb4397 ; [$4397:17303]
PUSH HL
CALL Lb4390 ; [17296]
INC HL
LD B,(HL)
INC HL
LD C,(HL)
LD (Lb44C6),BC
LD HL,(Lb44C4)
AND A
SBC HL,BC
JR NZ, Lb434C ; [$434C:17228]
LD HL, Lb44C4
DEC (HL)
Lb434C:
POP HL
DEC HL
LD A,$00
LD (Lb44D2),A
Lb4353:
INC HL
LD A,(HL)
CP $00 ; [0]
JR Z, Lb4353 ; [$4353:17235]
CP $A8 ; [168-"C"]
RET Z
CP $0B ; [11-"""]
JR Z, Lb437F ; [$437F:17279]
CP $0E ; [14-":"]
JP Z, Lb44A6 ; [17574]
CP $12 ; [18-">"]
JR Z, Lb43DE ; [$43DE:17374]
CP $13 ; [19-"<"]
JR Z, Lb43DE ; [$43DE:17374]
CP $76 ; [118]
JR Z, Lb439B ; [$439B:17307]
SUB $1C
CP $0A ; [10]
JR C, Lb438B ; [$438B:17291]
SUB $0A
CP $1A ; [26-","]
JR C, Lb43DE ; [$43DE:17374]
JR Lb4353 ; [$4353:17235]
Lb437F:
INC HL
LD A,(HL)
CP $0B ; [11-"""]
JR Z, Lb4353 ; [$4353:17235]
CP $76 ; [118]
JR Z, Lb439B ; [$439B:17307]
JR Lb437F ; [$437F:17279]
Lb438B:
CALL Lb452F ; [17711]
JR Lb4353 ; [$4353:17235]
Lb4390:
INC HL
LD A,(HL)
CP $76 ; [118]
JR NZ, Lb4390 ; [$4390:17296]
RET ; ==========================
Lb4397:
DEC HL
CALL Lb4390 ; [17296]
Lb439B:
LD BC,$0002
LD (Lb44CC),HL
EX DE,HL
Lb43A2:
DEC DE
INC BC
LD HL,(Lb44CA)
AND A
SBC HL,DE
JR NZ, Lb43A2 ; [$43A2:17314]
LD HL,(Lb44C8)
LD (HL),C
INC HL
LD (HL),B
LD A,(Lb44D2)
AND A
CALL Z, Lb43C5 ; [17349]
LD HL,(Lb44CC)
INC HL
LD A,(HL)
DEC HL
CP $76 ; [118]
JP NZ, Lb4310 ; [17168]
RET ; ==========================
Lb43C5:
LD HL,(Lb44CA)
DEC HL
LD D,H
LD E,L
Lb43CB:
INC DE
LD A,(DE)
CP $00 ; [0]
JR Z, Lb43CB ; [$43CB:17355]
CP $40 ; [64]
LD (HL),$00
RET NC
LD (HL),$F1
CP $26 ; [38-"A"]
RET NC
LD (HL),$EC
RET ; ==========================
Lb43DE:
LD (Lb44CE),HL
LD DE, Lb4240
CALL Lb4414 ; [17428]
LD HL,(Lb44CE)
CP $40 ; [64]
JP C, Lb4353 ; [17235]
CP $F2 ; [242]
JP Z, Lb4353 ; [17235]
CP $FA ; [250]
CALL Z, Lb45BA ; [17850]
CP $DE ; [222]
JP Z, Lb45C8 ; [17864]
LD (HL),A
INC HL
DEC B
CALL NZ, Lb4469 ; [17513]
LD HL,(Lb44CE)
LD A,(HL)
CP $EA ; [234]
JP Z, Lb4397 ; [17303]
JP Lb4353 ; [17235]
LD (Lb44D2),A
RET ; ==========================
Lb4414:
LD B,$00
CALL Lb4426 ; [17446]
RET NC
LD HL,(Lb44CE)
Lb441D:
INC DE
LD A,(DE)
CP $3F ; [63-"Z"]
JR C, Lb441D ; [$441D:17437]
INC DE
JR Lb4414 ; [$4414:17428]
Lb4426:
LD A,(DE)
CP $3F ; [63-"Z"]
RET NC
CP (HL)
RET NZ
INC HL
INC DE
INC B
JR Lb4426 ; [$4426:17446]
Lb4431:
LD (Lb44D0),HL
Lb4434:
CALL Lb443D ; [17469]
DJNZ Lb4434 ; [$4434:17460]
LD HL,(Lb44D0)
RET ; ==========================
Lb443D:
LD HL,$400A
LD A,$09
Lb4442:
CALL Lb4461 ; [17505]
DEC A
JR NZ, Lb4442 ; [$4442:17474]
LD DE,(RAM_STKEND) ; GET STKEND
LD H,D
LD L,E
INC DE
PUSH BC
Lb4450:
LD A,(HL)
LD (DE),A
LD BC,(Lb44D0)
PUSH HL
AND A
SBC HL,BC
POP HL
DEC DE
DEC HL
JR NZ, Lb4450 ; [$4450:17488]
POP BC
RET ; ==========================
Lb4461:
INC HL
INC HL
INC (HL)
RET NZ
INC HL
INC (HL)
DEC HL
RET ; ==========================
Lb4469:
LD (Lb44D0),HL
Lb446C:
CALL Lb4475 ; [17525]
DJNZ Lb446C ; [$446C:17516]
LD HL,(Lb44D0)
RET ; ==========================
Lb4475:
LD HL,$400A
LD C,$09
LD A,$00
Lb447C:
CALL Lb449A ; [17562]
DEC C
JR NZ, Lb447C ; [$447C:17532]
LD HL,(Lb44D0)
LD D,H
LD E,L
INC DE
PUSH BC
Lb4489:
LD A,(DE)
LD (HL),A
PUSH HL
LD BC,(RAM_STKEND) ; GET STKEND
AND A
SBC HL,BC
POP HL
INC DE
INC HL
JR NZ, Lb4489 ; [$4489:17545]
POP BC
RET ; ==========================
Lb449A:
INC HL
INC HL
CP (HL)
JR Z, Lb44A1 ; [$44A1:17569]
DEC (HL)
RET ; ==========================
Lb44A1:
DEC (HL)
INC HL
DEC (HL)
DEC HL
RET ; ==========================
Lb44A6:
NOP
LD (HL),$76
INC HL
LD B,$05
CALL Lb4431 ; [17457]
LD BC,(Lb44C4)
LD (HL),B
INC HL
LD (HL),C
INC HL
INC HL
INC HL
LD (HL),$EA
LD HL,(Lb44D0)
DEC HL
JP Lb439B ; [17307]
Lb44C2:
NOP
NOP
Lb44C4:
NOP
NOP
Lb44C6:
NOP
NOP
Lb44C8:
NOP
NOP
Lb44CA:
NOP
NOP
Lb44CC:
NOP
NOP
Lb44CE:
NOP
NOP
Lb44D0:
NOP
NOP
Lb44D2:
NOP
Lb44D3:
NOP
NOP
Lb44D5:
LD BC,$0000
LD (RAM_PRBUFF00),BC ; SET PRBUFF
LD (RAM_PRBUFF02),BC ; SET PRBUFF
LD (RAM_PRBUFF04),BC ; SET PRBUFF
Lb44E4:
LD A,(HL)
SUB $1C
CP $0A ; [10]
RET NC
PUSH HL
LD HL,$403C
CALL Lb4505 ; [17669]
LD A,H
LD (RAM_PRBUFF02),A ; SET PRBUFF
LD A,L
LD (RAM_PRBUFF03),A ; SET PRBUFF
LD A,B
LD (RAM_PRBUFF00),A ; SET PRBUFF
LD A,C
LD (RAM_PRBUFF01),A ; SET PRBUFF
POP HL
INC HL
JR Lb44E4 ; [$44E4:17636]
Lb4505:
LD B,(HL)
INC HL
LD C,(HL)
INC HL
LD D,(HL)
INC HL
LD E,(HL)
LD H,D
LD L,E
CALL Lb4526 ; [17702]
CALL Lb4526 ; [17702]
AND A
ADC HL,DE
JR NC, Lb451A ; [$451A:17690]
INC BC
Lb451A:
CALL Lb4526 ; [17702]
LD D,$00
LD E,A
AND A
ADC HL,DE
RET NC
INC BC
RET ; ==========================
Lb4526:
SLA L
RL H
RL C
RL B
RET ; ==========================
Lb452F:
DEC HL
LD A,(HL)
SUB $26
CP $1B ; [27-"."]
INC HL
RET C
CALL Lb44D5 ; [17621]
LD A,$7E
CP (HL)
CALL NZ, Lb45B2 ; [17842]
INC HL
CALL Lb4583 ; [17795]
LD A,(RAM_PRBUFF00) ; GET PRBUFF
LD B,A
LD A,(RAM_PRBUFF01) ; GET PRBUFF
LD C,A
LD A,(RAM_PRBUFF02) ; GET PRBUFF
LD D,A
LD A,(RAM_PRBUFF03) ; GET PRBUFF
LD E,A
LD A,(HL)
RES 7,A
INC HL
LD (HL),$00
INC HL
LD (HL),$00
INC HL
LD (HL),$00
INC HL
LD (HL),$00
Lb4563:
DEC HL
DEC HL
DEC HL
DEC A
AND A
JR Z, Lb4577 ; [$4577:17783]
SRL B
RR C
RR D
RR E
CALL Lb4577 ; [17783]
JR Lb4563 ; [$4563:17763]
Lb4577:
RR (HL)
INC HL
RR (HL)
INC HL
RR (HL)
INC HL
RR (HL)
RET ; ==========================
Lb4583:
LD C,$20
LD DE,$403C
PUSH HL
LD H,$04
CALL Lb4597 ; [17815]
Lb458E:
POP HL
LD (HL),C
LD A,$00
CP C
RET Z
SET 7,(HL)
RET ; ==========================
Lb4597:
LD A,(DE)
CALL Lb45A0 ; [17824]
INC DE
DEC H
JR NZ, Lb4597 ; [$4597:17815]
RET ; ==========================
Lb45A0:
LD B,$08
CALL Lb45A6 ; [17830]
RET ; ==========================
Lb45A6:
RLA
JR C, Lb45AD ; [$45AD:17837]
DEC C
DJNZ Lb45A6 ; [$45A6:17830]
RET ; ==========================
Lb45AD:
POP DE
POP DE
POP DE
JR Lb458E ; [$458E:17806]
Lb45B2:
LD B,$06
CALL Lb4431 ; [17457]
LD (HL),$7E
RET ; ==========================
Lb45BA:
LD (Lb44D2),A
DEC HL
LD (HL),A
INC HL
LD (HL),$D7
INC HL
LD A,$10
LD B,$01
RET ; ==========================
Lb45C8:
LD (HL),$11
INC HL
LD (HL),A
INC HL
LD B,$04
CALL Lb4431 ; [17457]
LD (HL),$EC
INC HL
LD (Lb44D0),HL
CALL Lb45E5 ; [17893]
LD HL,(Lb44D0)
CALL Lb452F ; [17711]
INC HL
JP Lb44A6 ; [17574]
Lb45E5:
LD (HL),$1C
INC HL
LD (HL),$1C
INC HL
LD (HL),$1C
LD HL,(Lb44C6)
LD (Lb44D3),HL
LD HL,(Lb44D0)
LD BC,$FC18
CALL Lb4612 ; [17938]
INC HL
LD BC,$FF9C
CALL Lb4612 ; [17938]
INC HL
LD BC,$FFF6
CALL Lb4612 ; [17938]
INC HL
LD A,(Lb44D3)
ADD A,$1C
LD (HL),A
RET ; ==========================
Lb4612:
PUSH HL
LD HL,(Lb44D3)
AND A
ADC HL,BC
JR NC, Lb4622 ; [$4622:17954]
LD (Lb44D3),HL
POP HL
INC (HL)
JR Lb4612 ; [$4612:17938]
Lb4622:
POP HL
RET ; ==========================
;------------ Labels errors ------------
; LABEL ERROR @LB409D:DJNZ +18 [$409D:16541]
; LABEL ERROR @LB40C2:CALL $40C2 [16578]
; LABEL ERROR @LB40C2:CALL $40C2 [16578]
; LABEL @LB4230 Fixed: LD HL,($4230) / LD HL,(Lb422E+2)
; LABEL @LB4230 Fixed: LD ($4230),HL / LD (Lb422E+2),HL
.end
[/EDIT]
- Carl
- Modérateur
- Messages : 13296
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: VG5000: LOAD et SAVE
David, voir la doc PDF VG5000_NOS Basicode 2_standard_routines
Carl
Carl
- Carl
- Modérateur
- Messages : 13296
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: VG5000: LOAD et SAVE
@Xavier & Carl: Merci
Reste plus qu'à tester les codes fournis par Carl pour voir si ça tourne sur de petits programmes basicode.
Reste plus qu'à tester les codes fournis par Carl pour voir si ça tourne sur de petits programmes basicode.