1 REM Ins{nd av: Anders Franz`n <5258>    1986-12-09 20.06.24 (WRITE)
; HJ[LP1.MAC
; Anders Franz`n <5258>
; Stockholm 1986-12-07
; Diverse macron som underl{ttar
; prgrammering i assembler p} ABC80.

PREPARE  MACRO &PARM,&FIL,&FEL
         LD   IX,&PARM
         LD   HL,&FIL
         LD   A,1
         LD   DE,0:62
         CALL FILCONTR  Preparera fil
         JPC  &FEL
         ENDM
OPEN     MACRO &PARM,&FIL,&FEL
         LD   IX,&PARM
         LD   HL,&FIL
         XOR  A
         LD   DE,0:62
         CALL FILCONTR  \ppna fil
         JPC  &FEL
         ENDM
READ     MACRO &PARM,&BUFF,&FEL
         LD   IX,&PARM
         LD   HL,&BUFF
         LD   BC,255
         LD   DE,8:147
         CALL FILCONTR  L{s rad
         JPC  &FEL
         EX   DE,HL
         LD   DE,&BUFF
         SBC  HL,DE
         LD   C,L       L{ngd p} rad
         LD   B,H
         ENDM
WRITE    MACRO &PARM,&BUFF,&FEL
         LD   IX,&PARM
         LD   HL,&BUFF
         LD   DE,8:150
         CALL FILCONTR  Skriv rad
         JPC  &FEL
         ENDM
CLOSE    MACRO &PARM,&FEL
         LD   IX,&PARM
         LD   DE,8:127
         CALL FILCONTR  St{ng fil
         JPC  &FEL
         ENDM
INPUT    MACRO &BUFF,&LEN
         LD   HL,&BUFF
         LD   BC,&LEN
         CALL 0:5
         ENDM
PRINT    MACRO &RAD,&KOL,&TEXT
         LD   HL,PRA&&
         LD   BC,PRB&&-PRA&&
         CALL 0:11      Skriv p} sk{rm
         JR   PRB&&
PRA&&    DEFB 27,61,32+&RAD,32+&KOL
         DEFM &TEXT
PRB&&    EQU  $
         ENDM
CLS      MACRO
         CALL 2:118     T|m sk{rm
         ENDM

;Hanterar fel vid filhantering
FILCONTR PUSH HL
         LD   HL,FELRUTIN
         EX   (SP),HL
         LD   (254:54),SP RUN-timestack
         PUSH HL
         LD   HL,FILC2
         LD   (IY+30),L ONERRORGOTO
         LD   (IY+31),H
         LD   (IY+14),0 RUN-mode
         LD   (IY+15),0 NOTRACE
         LD   HL,FILC1
         EX   (SP),HL
         PUSH DE
         RET

FILC1    INC  SP
         INC  SP
         RET

FILC2    DEFB 4,0,1,145 BASIC-return

FELRUTIN LD   A,(IY+34) Errcode
         AND  A
         SCF
         RET
