FSAVE2 ASM ;-------------------------------
;
;Saveroutine f}r DEP Version 2.1
; (mit Fehlertexten)
;
;Adresse: 0000 00B3H
;
;FSAVE2.ASM ` ml 06.08.93
;-------------------------------
ARGN EQU 0B781H
ARG1 EQU ARGN+1
ARG2 EQU ARGN+3
PV1 EQU 0F003H
WAIT EQU 14H
INLIN EQU 17H
ERRM EQU 19H
AHEX EQU 1CH
OSTR EQU 23H
OCHR EQU 24H
;--------------------------
ORG 0
DW 7F7FH
DB 'FSAVE'
DB 1
LD A,(ARGN)
CP 2
JR C,ERROR ; < 2 Arg.
CALL PV1
DB OSTR
DB 'Name :',0
CALL PV1
DB INLIN
LD HL,17
ADD HL,DE ;Ende Name
LD E,12 ;L{nge
LD BC,8EF3H
NAMOUT: OUTD
DEC E
JR NZ,NAMOUT
LD BC,80F2H;Datenpuffer
CLEAR: OUT (C),E ;l|schen
INC B
JR NZ,CLEAR
LD HL,ARGN
LD DE,0B0BH;open/Anzahl
LD BC,91F2H;Daten
SCHR: OUTI
INC B
INC B
DEC E
JR NZ,SCHR
LD BC,80F3H;n{chsten Block
OUT (C),D
NRDY: PUSH BC
LD A,1
CALL PV1
DB WAIT
POP BC
IN A,(C) ;fertig?
BIT 0,A
JR NZ,NRDY
BIT 7,A
JR Z,WROK ;kein Fehler
ERR: LD BC,83F1H
IN A,(C)
CP 20H ;DEP ab 2.0?
JR NZ,ERRTX;ja
LD BC,81F3H
IN A,(C) ;Fehlernummer
CALL PV1
DB AHEX
ERROR: CALL PV1
DB ERRM
RET
ERRTX: LD B,0 ;Fehlertext
ERRT1: IN A,(C)
RET Z ;00-Ende
INC B
CALL PV1
DB OCHR
JR ERRT1
WROK: LD BC,81F2H
BIT 3,D
JR Z,N3
LD HL,(ARG1);AAdr.
N3: PUSH HL
LD DE,(ARG2);Endadresse
AND A
SBC HL,DE
POP HL
LD BC,81F2H
LD DE,0380H
JR C,SCHR ;weiter
LD BC,80F3H
LD A,43H ;close
OUT (C),A
NEND: PUSH BC
LD A,1
CALL PV1
DB WAIT
POP BC
IN A,(C)
BIT 0,A ;fertig?
JR NZ,NEND
BIT 7,A
RET Z
JR ERR ;Fehler
À@Àt(Àp6ÀnTop of Text: End of Text: Start of MC: ASM-Offset : õÛˆö$ÓˆñÉõÛˆæÛÓˆñ,NEND
BIT 7,A
RET Z
JR ERR ;Fehler
À@Àt(Àp6ÀnTop of Text: End of Text: Start of MC: ASM-Offset : õÛˆö$ÓˆñÉõÛˆæÛÓˆñ
Detected encoding: ANSI (CP1252) | 4
|
|