; Cameron Kaiser 2020
; Public domain.

; trim the last byte in a file off.

       SEARCH  SYS
       SEARCH  SYSSYM

       ; impure area
       .OFINI
       .OFDEF  IN,     D.DDB
       .OFDEF  OUT,    D.DDB
       .OFSIZ  MEMSIZ

       PHDR    -1,0,PH$REE!PH$REU
       GETIMP  MEMSIZ,A5               ; allocate impure area
       BYP                             ; skip command line in A2 past blanks
       LIN                             ; eol?
       JNE     GETOUT                  ; no
NAWTY:
       ; yes, explain yourself, Lucy
       TYPECR <usage: TRIMC OUTPUT.LST=INPUT.LST>
       TYPECR <binary safe! 100% real beef! public domain!>
       EXIT

       ; Jordan Peele segment
GETOUT: FSPEC   OUT(A5),LST
       INIT    OUT(A5)

       BYP
       LIN
       JEQ     NAWTY
       ; skip =
       CMPB    (A2)+,#'=
       JNE     NAWTY
       BYP
       LIN
       JEQ     NAWTY

       FSPEC   IN(A5),LST
       INIT    IN(A5)
       LOOKUP  IN(A5)
       BEQ     DOIT

       TYPECR <?Not found>
       JMP NAWTY

DOIT:   OPENI   IN(A5)
       LOOKUP  OUT(A5)
       BNE     1$
       DSKDEL  OUT(A5)
1$:     OPENO   OUT(A5)
       CTRLC   ENDOF

       ; create one character buffer
       FILINB  IN(A5)
       TST     IN+D.SIZ(A5)
       BEQ     ENDOF
       MOV     D1,D2

CLOOP:  FILINB  IN(A5)
       TST     IN+D.SIZ(A5)
       BEQ     ENDOF

       MOV     D1,D3
       MOV     D2,D1
       FILOTB  OUT(A5)
       MOV     D3,D2
       BR      CLOOP

ENDOF:  CLOSE   IN(A5)
       CLOSE   OUT(A5)
       EXIT

       END