Program PCSend; (************************************************* * Programm fuer V24-Kopplung (C) RCOM 15-Nov-88 * * PC 1715 als Sender mit 10950 Baud * * Aufruf: PCSEND [LW:]Name[.Typ] * *************************************************) Const CTC=9; SIOD=$D; SIOC=$F; Type TypeOfFileName=String[14]; Var InFile : File; Buffer : Array [0..127] Of Byte; Block,Size,I : Integer; Function GetFileName(InsertDrive : Boolean):TypeOfFileName; Var FcbDrive : Byte Absolute $5C; FcbName : Array [1..8] Of Char Absolute $5D; FcbType : Array [1..3] Of Char Absolute $65; FileName : TypeOfFileName; Begin FileName:=''; If (FcbDrive>0) And InsertDrive Then FileName:=Chr(FcbDrive+Ord('@'))+':'; GetFileName:=FileName+Copy(FcbName,1,Pos(' ',FcbName+' ')-1) +'.'+Copy(FcbType,1,Pos(' ',FcbType+' ')-1); End; Procedure InitV24; Begin Port[CTC]:=7; Port[CTC]:=14; Port[SIOC]:=$18; Port[SIOC]:=4; Port[SIOC]:=4; Port[SIOC]:=3; Port[SIOC]:=$E1; Port[SIOC]:=5; Port[SIOC]:=$6A; End; Procedure Punch(C : Char); Begin Repeat Until Port[SIOC] And 4=4; Port[SIOD]:=Ord(C); End; Begin InitV24; AuxOutPtr:=Addr(Punch); Assign(InFile,GetFileName(True)); Reset(InFile); Writeln(AUX,GetFileName(False)); Size:=FileSize(InFile); Write(AUX,Chr(Lo(Size)),Chr(Hi(Size))); For Block:=1 To Size Do Begin Write(^M,Block:3); BlockRead(InFile,Buffer,1); For I:=0 To 127 Do Write(AUX,Chr(Buffer[I])); End; End.