FLOAD2 ASM;-------------------------------- ; ;Laderoutine, f}r DEP Version 2.1 ; (mit Fehlertexten) ; ;Adressen: 0000H 00D7H ; ;FLOAD2.ASM ` ml 07.08.93 ;-------------------------------- ARGN EQU 0B781H ARG1 EQU ARGN+1 NUMVX EQU 0B797H PV1 EQU 0F003H UREL EQU 0F00FH IRMON EQU 0F018H IRMOF EQU 0F01BH INLIN EQU 17H ERRM EQU 19H AHEX EQU 1CH OSTR EQU 23H OCHR EQU 24H ;------- ORG 0 NAME: DB ' ' ;000CH CALL IRMON LD HL,NAME+11 CALL UREL DW FLOAD-2-$ CALL IRMOF RET ;001BH DW 7F7FH DB 'FLOAD' DB 1 CALL PV1 DB OSTR DB 'Name :',0 CALL PV1 DB INLIN LD HL,17 ADD HL,DE ;Ende Name FLOAD: LD E,12 ;Anzahl LD BC,8EF3H NAMOUT: OUTD ;Name DEC E JR NZ,NAMOUT LD A,9 ;read-open PUSH DE CALL UREL DW STEUER-2-$ POP DE LD BC,90F2H IN A,(C) CP 2 JR C,ERROR ; < 2 Argumente CP 10 JR NC,ERROR; > 10 Argumente EX AF,AF' INC B IN L,(C) INC B IN H,(C) ;Aadr. INC B IN E,(C) INC B IN D,(C) ;Eadr. PUSH HL INC B IN L,(C) INC B IN H,(C) ;Sadr. LD A,(ARGN) AND A JR Z,ARG0 ;kein Offset LD BC,(ARG1) ADD HL,BC ;Sadr.+Off EX DE,HL ADD HL,BC ;Eadr.+Off EX DE,HL EX (SP),HL ADD HL,BC ;Aadr.+Off EX (SP),HL ARG0: LD (NUMVX),HL POP HL NBLOCK: LD A,1 ;read PUSH DE CALL UREL DW STEUER-2-$ POP DE DEC C ;F2 BLW: INI ;Daten --> (HL) AND A SBC HL,DE ADD HL,DE JR Z,JMP ;wenn ENDE INC B INC B JR NZ,BLW ;80H Byte JR NBLOCK ;neuen Block ; JMP: EX AF,AF' CP 3 ;kein Start RET C LD HL,(NUMVX) JP (HL) ; STEUER: LD BC,80F3H OUT (C),A ;Steuerbyte NRDY: PUSH BC LD B,0 WARTE: DJNZ WARTE ;Zeitschleife POP BC IN A,(C) BIT 0,A ;fertig? JR NZ,NRDY RLCA ;Fehler? RET NC POP HL ;RET-Adresse POP DE ;gemerktes Reg. ERR: LD BC,83F1H IN A,(C) CP 20H ;DEP ab 2.0? JR NC,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 ;00D7H Í ERRT1:Ë ERRTX:Æ ERROR:´ ERR:§ WARTE:¤ NRDY:Ÿ STEUER:— JMP:‰ BLW: NBLOCK:{ ARG0:; NAMOUT:6 FLOAD: NAME:$ OCH Í ERRT1:Ë ERRTX:Æ ERROR:´ ERR:§ WARTE:¤ NRDY:Ÿ STEUER:— JMP:‰ BLW: NBLOCK:{ ARG0:; NAMOUT:6 FLOAD: NAME:$ OCH