[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]

    { KELD R. HANSEN }

    PROCEDURE AddStr(VAR STR : OpenString ; CONST ADD : STRING); ASSEMBLER;
    ASM
      PUSH    DS
      LDS     SI,ADD
      LES     DI,STR
      CLD
      XOR     BH,BH
      MOV     BL,ES:[DI]
      LODSB
      MOV     AH,BYTE PTR STR-2
      ADD     AL,BL
      JC      @OVF
      CMP     AL,AH
      JBE     @OK
     @OVF:
      MOV     AL,AH
     @OK:
      STOSB
      XOR     CH,CH
      MOV     CL,AL
      SUB     CL,BL
      ADD     DI,BX
      REP     MOVSB
      POP     DS
    END;

    PROCEDURE AddChar(VAR STR : OpenString ; C : CHAR); ASSEMBLER;
    ASM
      LES     DI,STR
      XOR     AH,AH
      MOV     AL,ES:[DI]
      CMP     AX,WORD PTR STR-2
      JAE     @OUT
      INC     AL
      JZ      @OUT
      MOV     ES:[DI],AL
      ADD     DI,AX
      MOV     AL,C
      STOSB
     @OUT:
    END;

[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]