textfiles/bbs/FIDONET/JENNINGS/STANDARDS/fidotech.txt

1263 lines
45 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SU.FIDOTECH FAQ (—€<E282AC>)
‡¤p ΆαβΆy©β¥, yΆ ¦ ¥¬λ© ―®¤―¨αη¨<CEB7> SU.FIDOTECH!
<EFBFBD>¥p¥¤ Ά ¬¨ - α―¨α®<CEB1> ­ ¨΅®«¥¥ η αβ® § ¤ Ά ¥¬λε Ά®―p®α®Ά ¨ ®βΆ¥β®Ά ­  ­¨ε
(—€<E282AC>) ® β¥ε­®«®£¨¨ Fidonet.
*<2A>®¦ «y©αβ *, ―®αβ p ©β¥αμ ―p®η¥αβμ <E280A6> —€<E282AC> ―¥p¥¤ ⥬, <20> <EFBFBD> § ¤ Ά βμ
Ά®―p®αλ Ά <20>®­δ¥p¥­ζ¨¨, ®α®΅¥­­®, ¥α«¨ ‚λ ―®¤®§p¥Ά ¥β¥, ηβ® ‚ θ Ά®―p®α -
®¤¨­ ¨§ p¥£y«οp­® § ¤ Ά ¥¬λε. ‘― α¨΅®!
…᫨ y Ά α ¥αβμ ¦¥« ­¨¥ ―®―®«­¨βμ —€<E282AC> Ά®―p®α ¬¨ ¨/¨«¨ ­®Άλ¬¨ ®βΆ¥β ¬¨ -
―®¦ «y©αβ , ―p¨αλ« ©β¥ netmail'®¬ Ά®―p®α ¨ Ά θ Ά  ­β ®βΆ¥β  ­  ­¥£®
Ά¥¤y饬y. ¥¤y騩 ®αβ Ά«ο¥β §  α®΅®© ―p Ά® p¥¤ <C2A4>β¨p®Ά βμ ¨ ―®¤―p Ά«οβμ
―p¨α« ­­λ¥ Ά®―p®αλ ¨ ®βΆ¥βλ, ­¥ ᮣ« α®ΆλΆ ο ¨§¬¥­¥­¨ο α  Άβ®p ¬¨.
¥¤y騩 —€<E282AC> - Boris Ivanov, 2:5020/496.90, hexer@aha.ru
<EFBFBD>p¥¤λ¤y騩 Ά¥¤y騩 —€<E282AC> - Timur Tsyganko, 2:5020/446.
¥pα¨ο —€<E282AC>: 20 ®β 17.04.1998
<EFBFBD>¥p¥η¥­μ Ά®―p®α®Ά:
1. Q: ƒ¤¥ ¬®¦­® ­ ©β¨ ―®α«¥¤­ξξ Ά¥pα¨ξ ν⮣® FAQ?
2. Q: —β® §­ η β ΅y<CE85>Άλ Ά α<>®΅<C2AE> ε Ά ­ η «¥ ®βΆ¥β ?
3. Q: ƒ¤¥ ®―¨α ­λ αβ ­¤ pβλ fidonet?
4. Q: —β® β <CEB2>®¥ <20>«y¤¦?
5. Q: ¤Ά®¨η­λε ―®«οε netmail'®Άλε α®®΅ι¥­¨© ¨ § £®«®Ά<C2AE>®Ά ― <E28095>¥β®Ά
α®®΅ι¥­¨© £¤¥ ¤®«¦­λ ­ ε®¤¨βαο ­®¬¥p  §®­ ¨ ―®©­β®Ά αβ®οβ αβp ­­λ¥
η¨α« . —β® νβ® §  η¨α« ?
6. Q: ƒ¤¥ Ά§οβμ  ¤p¥α  ®β―p Ά¨β¥«ο ¨ ―®«yη β¥«ο Ά α®®΅ι¥­¨¨ netmail?
7. Q: ƒ¤¥ Ά§οβμ  ¤p¥α  ®β―p Ά¨β¥«ο ¨ ―®«yη β¥«ο <E28095>¥β®Ά α®®΅ι¥­¨©?
8. Q: ¤Ά®¨η­®¬ § £®«®Ά<C2AE>¥ νε®-―¨αμ¬  ­  ¬¥αβ¥  ¤p¥α  ®β―p Ά¨β¥«ο α⮨β
 ¤p¥α α¨α⥬λ, ®β <20>®β®p®© ―p¨θ¥« ― <E28095>¥β α ν⨬ ―¨α쬮¬,   ­  ¬¥αβ¥
 ¤p¥α  ―®«yη β¥«ο - ¬®© α®΅αβΆ¥­­λ©  ¤p¥α. <20>®η¥¬y?
9. Q:  <E28099> £¤¥ ¦¥ Ά§οβμ  ¤p¥α  ®β―p Ά¨β¥«ο ¨ ―®«yη β¥«ο Ά α®®΅ι¥­¨¨
echomail?
10. Q: FTS-0009 α<> § ­® ηβ® Ά MSGID ¤®«¦¥­ ­ ε®¤¨βαο "valid return
address",   ­  ―p <70>β¨<CEB2>¥ Ά MSGID ¬®¦­® Ά¨¤¥βμ ¨­β¥p­¥β®Άα<CE86>¨¥  ¤p¥α . <20> <EFBFBD>
΅λβμ?
11. Q: <20>®η¥¬y ― p £p δλ Ά α®®΅ι¥­¨¨ ¨­®£¤  § <C2A7> ­η¨Ά ξβαο <20>®¤®¬ 0Dh,   ­¥
<20>®¬΅¨­ ζ¨¥© 0Dh 0Ah?
12. Q: <20> <EFBFBD>®Ά  ¬ <C2AC>ᨬ «μ­ ο ¤«¨­  α®®΅ι¥­¨©?
13. Q: —β® β <CEB2>®¥ §®­¥£¥©β ¨ <20> <EFBFBD> y<> §λΆ ¥βαο ¥£® ¨α―®«μ§®Ά ­¨¥ Ά α®®΅ι¥­¨¨?
14. Q: <20>® <20> <EFBFBD>®¬y ―p¨­ζ¨―y £¥­¥p¨py¥βαο y­¨<C2AD> «μ­λ© ­®¬¥p α®®΅ι¥­¨ο Ά MSGID?
15. Q: <20> <EFBFBD>®Ά p®yβ¨­£ ―® y¬®«η ­¨ξ ­  ­¥§ Ά¨α¨¬λ¥ y§«λ Ά p¥£¨®­¥/§®­¥?
16. Q: <20> <EFBFBD>®© α¬λα«  ββp¨΅yβ  ARQ?
17. Q: —¥¬ ®β«¨η ξβαο  ββp¨΅yβλ RRQ ¨ CFM?
18. Q: <20> <EFBFBD>®Ά α¬λα« ¨ <20> <EFBFBD> α®®β­®αοβαο  ββp¨΅yβλ Crash, Immediate, FPU,
Direct, Hold?
19. Q: <20> <EFBFBD> «¨§®Ά ­λ ¤®¬¥­λ Ά fidonet?
20. Q: <20> <EFBFBD>¨¬ §­ <C2AD>®¬ ­­® y<> §λΆ βμ ᬥ饭¨¥ ®β ƒp¨­Ά¨η  Ά ―¥p¥¬¥­­®©
®<>py¦¥­¨ο TZ?
21. Q: ƒ¤¥ ®―¨α ­λ δ®p¬ βλ δ ©«®Ά *.PKT, *.MSG, Hudson/Squish/JAM message
base ¨ β.¤.?
22. Q: <20> <EFBFBD>¨¥ ¥ι¥ αyι¥αβΆyξβ <20>®­δ¥p¥­ζ¨¨ ¤«ο ®΅αy¦¤¥­¨ο β¥ε­®«®£¨© Fidonet?
23. Q: “ 䨤®θ­λε ―p®¤y<C2A4>β®Ά ¥αβμ <20>®¤ (Product ID). <20>β® ¥£® Άλ¤ ¥β ¨ <20> <EFBFBD> νβ®
¤¥« ¥βαο?
24. Q: <20>®α®Ά¥βy©β¥ ε®p®θyξ ε¥θ-δy­<79>ζ¨ξ ¤«ο ―®«­®© αβp®<70>¨ ¨§ MSGID.
25. Q: € <20> <EFBFBD> Fossil ¬®¦¥β «®η¨βμ ―®pβ ­  57600 ¨«¨ ­  115200, <20>®£¤  Ά
αβ ­¤ pβ¥ ®―p¥¤¥«¥­® β®«μ<C2AB>® 38400 <20> <EFBFBD> ¬ <C2AC>ᨬy¬?
26. Q: <20> <EFBFBD> ®p£ ­¨§®Ά ­ outbound y BinkleyStyle-¬ν©«¥p®Ά?
27. Q: —¥¬ ®β«¨η ¥βαο ZModem ®β DirZap ®β ZedZap?
28. Q: <20> <EFBFBD> <20>®pp¥<70>β­® y¤ «¨βμ ―¨α쬮 Ά JAM-΅ §¥?
29. Q: ƒ¤¥ ®―¨α ­λ δ®p¬ βλ TIC-δ ©«®Ά?
30. Q: Hy¦¥­ <20>®¤ ¤«ο ―p¥®΅p §®Ά ­¨ο ¤ βλ ¨ Άp¥¬¥­¨ Ά/¨§ unix-δ®p¬ β ?
/---------------------------------------------------------------------/
>[1] Q: ƒ¤¥ ¬®¦­® ­ ©β¨ ―®α«¥¤­ξξ Ά¥pα¨ξ ν⮣® FAQ?
A: (BI)
<><EFBFBD> - FAQ p § Ά ¤Ά¥ ­¥¤¥«¨ ―® η¥βΆ¥p£ ¬ ―®¬¥ι ¥βαο Ά <20>®­δ¥p¥­ζ¨ξ
SU.FIDOTECH. <20>­β¥p­¥β¥ - http://www.aha.ru/~hexer/fido.htm.
/------/
>[2] Q: —β® §­ η β ΅y<CE85>Άλ Ά α<>®΅<C2AE> ε Ά ­ η «¥ ®βΆ¥β ?
A: (TT, BI)
<EFBFBD>β® α®<CEB1>p ι¥­¨ο ®β ¨¬¥­ «ξ¤¥©, ­ ―¨α Άθ¨ε ®βΆ¥βλ:
AS - Alex Semenyaka, 2:461/64
DM - Dima Maloff, 2:5047/13
DP - Dmitry Provodnikov, 2:5000/47.7
DtZ - Dmitry the Zuryanovich, 2:5020/730
JF - Jury Fradkin, 2:5030/339
JG - John Gladkih, 2:5051/16
PG - Pavel Gulchouck, 2:463/68
PK - Pete Kvitek, 2:5020/6
st - serge terekhov, 2:5000/13
TT - Timur Tsyganko, 2:5020/446, ΅λΆθ¨© 2:461/10
BI - Boris Ivanov, 2:5020/496.90
/------/
>[3] Q: ƒ¤¥ ®―¨α ­λ αβ ­¤ pβλ fidonet?
A: a) (TT)
H  ¬­®£¨ε y§« ε fidonet ¨¬¥ξβαο δ ©«λ α ¨¬¥­ ¬¨ FTS-xxxx.* ¨ FSC-xxxx.*.
<EFBFBD>¥pΆλ¥ - α®΅αβΆ¥­­® αβ ­¤ pβλ, Άβ®pλ¥ - ―p¥¤«®¦¥­¨ο ―® αβ ­¤  ¬.
yι¥αβΆy¥β 7 αβ ­¤ pβ®Ά:
FTS-0001 A basic FidoNet(r) technical standard, R Bush
FTS-0004 Echomail specification, B Hartman
FTS-0005 The distribution nodelist, B Baker, R Moore
FTS-0006 YOOHOO and YOOHOO/2U2, V Perriello
FTS-0007 SEAlink protocol extension, P Becker
FTS-0008 Bark file-request protocol extension, P Becker
FTS-0009 Message identification and reply linkage, j nutt
¨ ®<>®«® 80β¨ ―p¥¤«®¦¥­¨©. ‚®β ­¥<C2AD>®β®pλ¥ ¨§ ­¨ε:
FSC-0004 Zones and Zonegates explained primitively, R Bush
FSC-0015 FOSSIL 5.0 Documentation, R Moore
FSC-0020 Alternate Nodelist Flag Proposal M Presnell
FSC-0031 Proposed message id/linkage standard, M Ratledge
FSC-0034 Gateways to and from FidoNet, R Bush
FSC-0035 Transparent gateways to/from FidoNet, M Shiels
FSC-0038 Proposed domain gating protocol, j nutt
FSC-0039 A type-2 packet extension proposal, M Howard
FSC-0043 Some hints on recognizing control lines in FidoNet(r) message
text, R Bush
FSC-0044 Improved duplicate detection, J Decker
FSC-0045 Proposed new packet header, T Henderson
FSC-0046 Proposed product identifier, J Homrighausen
FSC-0047 The ^ASPLIT kludge line, P Terry
FSC-0048 Proposed type-2 packet extension, J Vroonhof
FSC-0052 A proposal for making the PATH zone aware, G van der Land
FSC-0053 Specifications for the ^aFLAGS field, J Homrighausen
FSC-0054 The CHARSET proposal, D McNutt
FSC-0056 EMSI/IEMSI Protocol Definition, J Homrighausen
FSC-0060 Calculation and Usage of CRC's, F van der Loos
FSC-0062 Nodelist Flag Indicating Online Times, D Thomas
FSC-0072 The HYDRA file transfer protocol, J Homrighausen, A Lentz
FSC-0087 File forwarding in FidoNet technology networks, R.Williamson
FSC-0090 FTSC Product Codes and Application Form
<EFBFBD>΅λη­® p冷¬ ¬®¦­® ­ ©β¨ δ ©«λ FTSCLIST - ―®«­λ© α―¨α®<CEB1> FTS ¨ FSC, ¨
FTSCPROD - α―¨α®<CEB1> ¨¤¥­β¨δ¨<CEB4> β®p®Ά ―p®£p ¬¬­λε ―p®¤y<C2A4>β®Ά ¤«ο fidonet.
<EFBFBD>p¨ ¨α―®«μ§®Ά ­¨¨ FTS ¨ FSC y΅¥¤¨β¥αμ, ηβ® Άλ p α―®« £ ¥β¥ "αΆ¥¦¨¬¨"
Ά¥pα¨ο¬¨. <20>®α«¥¤­¨¥ Ά  ­βλ ¤®αβy―­λ ­  ftp.fidonet.org ¨ ftp.funet.fi.
…᫨ Ά α ¨­β¥p¥αy¥β ®΅αy¦¤¥­¨¥ ―®α«¥¤­¨ε FSC - ―®αβ p ©β¥αμ ­ ©β¨ ¨
―®¤―¨α βμαο ­  <20>®­δ¥p¥­ζ¨¨ NET_DEV ¨ FTSC.
A: b) (PG)
<EFBFBD>¥pΆ®¨αβ®η­¨<EFBFBD> - ftp://ftp.blaze.net.au/pub/ftsc/ - νβ® α ©β Hy£¥­β  (¨«¨ <20> <EFBFBD>
®­ ―®-pyαα<CEB1>¨ ―¨θ¥βαο?).
/------/
>[4] Q: —β® β <CEB2>®¥ <20>«y¤¦?
A: a) (TT)
<EFBFBD>β® αβp®<70>  Ά ⥫¥ α®®΅ι¥­¨ο, ᮤ¥p¦ ι ο β¥ε­¨η¥α<C2A5>yξ ¨­δ®p¬ ζ¨ξ. —β®΅λ
®β«¨η¨βμ αβp®<70>¨ <20>«y¤¦¥© (kludge) ®β α®΅αβΆ¥­­® β¥<CEB2>αβ  ®­¨ ­ η¨­ ξβαο α
ᨬΆ®«  01h, §  ¨α<C2A8>«ξη¥­¨¥¬ αβp®<70> "AREA:" ¨ "SEEN-BY:"; ―®¤p®΅­®αβ¨ ¨ι¨β¥ Ά
FTS-0004 ¨ FSC-0043. <20>΅ι¥―p¨­οβ®, ηβ® Ά α«yη ¥ p α宦¤¥­¨ο ¨­δ®p¬ ζ¨¨ ¨§
<EFBFBD>«y¤¦¥© ¨ ¨§ ¤Ά®¨η­®£® § £®«®Ά<C2AE>  α®®΅ι¥­¨ο, ―p¨®p¨β¥β ¨¬¥ξβ <20>«y¤¦¨.
A: b) (PK)
…αβμ ᮬ­¥­¨ο ­ αη¥β <20>«y¤¦  AREA: -- <20>®£¤  ®­ Ά ― <E28095>¥β¥, ®­ β®η­® ­¥ ¨¬¥¥β
01h ¨ ¨¤¥β ―¥pΆλ¬. € Ά®β <20>®£¤  ®­ Ά BADMSG, ®­ ¥£® ¨¬¥¥β. <20>p®¬¥ ⮣®,
¬­®£¨¥ βp¥΅yξβ, ηβ®΅λ ®­ Ά «ξ΅®¬ α«yη ¥ ΅λ« α ¬λ¬ ―¥pΆλ¬ <20>«y¤¦¥¬, ®α®΅¥­­®
Ά ― <E28095>¥β¥.
A: c) (AS)
<EFBFBD>p¨ εp ­¥­¨¨ νε®―®ηβλ Ά ΅ §¥, <20>«y¤¦ "AREA:" ®΅λη­® y¤ «ο¥βαο, β <CEB2> <20> <EFBFBD>
  β £ ®¤­®§­ η­® (Ά§ ¨¬­®®¤­®§­ η­®) ®―p¥¤¥«ο¥βαο ¨¬¥­¥¬ <20> β «®£  (¤«ο
δ®p¬ β  *.MSG), ¨¬¥­ ¬¨ δ ©«®Ά (JAM, Squich) ¨«¨ ­®¬¥p®¬ ®΅« αβ¨ (Hudson).
<EFBFBD>«y¤¦ "AREA:" ®΅λη­® α®εp ­ο¥βαο Ά ®΅« αβοε dupe- ¨ bad-α®®΅ι¥­¨© ¨ Ά
®΅« αβοε carbon copy - β.¥. Ά β¥ε ¬¥αβ ε, £¤¥ ¬®£yβ ­ ε®¤¨βαο α®®΅ι¥­¨ο ¨§
p §­λε <20>®­δ¥p¥­ζ¨©.
/------/
>[5] Q: ¤Ά®¨η­λε ―®«οε netmail'®Άλε α®®΅ι¥­¨© ¨ § £®«®Ά<C2AE>®Ά ― <E28095>¥β®Ά
>α®®΅ι¥­¨© £¤¥ ¤®«¦­λ ­ ε®¤¨βαο ­®¬¥p  §®­ ¨ ―®©­β®Ά αβ®οβ αβp ­­λ¥ η¨α« .
>—β® νβ® §  η¨α« ?
A: a) (TT)
“Άλ, αβ ­¤ pβ FTS-0001 Ά ¥£® ―®α«¥¤­¨ε p¥¤ <C2A4>ζ¨οε (015 ¨ 016) ¨ ―® ᥩ ¤¥­μ
δ <EFBFBD>β¨η¥α<EFBFBD>¨ ­¥ Άαβy―¨« Ά ¤¥©αβΆ¨¥. p¥¤ <C2A4>樨 012 FTS-0001 νβ¨ ―®«ο
¨α―®«μ§®Ά «¨αμ ¤«ο εp ­¥­¨ο Άp¥¬¥­¨ ­ ―¨α ­¨ο ¨ Άp¥¬¥­¨ ―p¨΅λβ¨ο α®®΅ι¥­¨ο
Ά δ®p¬ β¥ MS DOS directory entry. „® α¨ε ―®p Άα¥ ―p®£p ¬¬­®¥ ®΅¥α―¥η¥­¨¥
fidonet ΅¥p¥β ­®¬¥p  §®­/―®©­β®Ά ¨§ ¤py£¨ε ¨αβ®η­¨<C2AD>®Ά (α¬.¤ «¥¥). H¥<48>®β®pλ¥
―p®£p ¬¬­λ¥ ―p®¤y<C2A4>βλ ¬®£yβ ΅λβμ <20>®­δ¨£yp¨py¥¬λ - ᮧ¤ Ά βμ α®®΅ι¥­¨ο Ά
αβ ­¤ pβ¥ FTS-0001 (νβ  ­ αβp®©<C2AE>  ¬®¦¥β ­ §λΆ βμαο Ά ¤yε¥ "Fido
compatibility" ¨«¨ "FTS-0001 compatibility") ¨«¨ Ά αβ p®¬ δ®p¬ β¥ (νβ 
­ αβp®©<EFBFBD>  ¬®¦¥β ­ §λΆ βμαο Ά ¤yε¥ "Opus compatibility").
A: b) (AS)
<EFBFBD>¥ «μ­® α®δβ (GoldEd, FD/FM, ¨ FastEcho ―® <20>p ©­¥© ¬¥p¥) εp ­¨β β ¬ ¤ βy Ά
δ®p¬ β¥ file entry, β® ¥αβμ β <CEB2> ¦¥, <20> <EFBFBD> ®­  εp ­¨βαο Ά ®£« Ά«¥­¨¨
¤¨p¥<EFBFBD>β®p¨¨. H  Άαο<CEB1>¨© α«yη ©, Ά®β νβ®β δ®p¬ β, ―®΅¨β®Ά ο p α<C2A0>« ¤<C2A0> :
31 23 16
ΪΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΏ
³ Y E A R - 8 0 ³ M O N T H ³ D A Y ³
ΐΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΩ
15 7 0
ΪΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΒΔΔΔΏ
³ H O U R ³ M I N U T E ³ S E C O N D S / 2 ³
ΐΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΑΔΔΔΩ
<EFBFBD>p¨ ν⮬ α­ η «  εp ­¨βαο αβ pθ¥¥ α«®Ά®, ―®β®¬ ¬« ¤θ¥¥ (΅ ©βλ - ­ ®΅®p®β, Ά
αβ ­¤ ­®¬ ¤«ο PC ―®pο¤<CEBF>¥: α­ η «  ¬« ¤θ¨©, ―®β®¬ αβ p訩).
<EFBFBD>p¨¬¥p: <20>yα®<CEB1> ¤ ¬― 
0000b0 | 73 21 7d 9e
α®®βΆ¥βαβΆy¥β file entry date 21739e7d,
0010 0001 0111 0011 1001 1110 0111 1101, β® ¥αβμ:
£®¤: 0010000 = 16, 16+80=96
¬¥αοζ: 1101 = 11, H®ο΅pμ
¤¥­μ: 10011 = 19
η α: 10011 = 19
¬¨­ : 1100011 = 51
α¥<EFBFBD>y­¤ :11101 = 29, 1+29*2=59
<EFBFBD>⮣®, α®®΅ι¥­¨¥ ­ ―¨α ­® 19 ­®ο΅pο 1996, Ά 19:51:59.
„«ο Άp¥¬¥­¨ §  <E28095>®Ά<C2AE>¨ Ά pkt (― <E28095>¥p®¬ ¨«¨ ¬¥©«¥p®¬) - Άα¥ ―®«­®αβμξ
 ­ «®£¨η­®. Hy, ¨ ­¥΅®«μ讥 § ¬¥η ­¨¥ - ¤«ο ­¥®β―p Ά«¥­­λε ―¨α¥¬ νβ¨
Άp¥¬¥­  α®Ά― ¤ ξβ, ―®β®¬, ―p¨ ― <E28095>®Ά<C2AE>¥/®β―p Ά<C2A0>¥, ―®α«¥¤­¥¥ ―®«¥ ¬¥­ο¥βαο.
>[6] Q: ƒ¤¥ Ά§οβμ  ¤p¥α  ®β―p Ά¨β¥«ο ¨ ―®«yη β¥«ο Ά α®®΅ι¥­¨¨ netmail?
A: a) (TT)
…᫨ ¥αβμ <20>«y¤¦ DOMAIN - β® ¨§ ­¥£®. …᫨ ¥£® ­¥β - ¨ι¨β¥ <20>«y¤¦¨ INTL,
FMPT, TOPT. …᫨ ­®¬¥p  α¥β¥© ¨ y§«®Ά Άα¥ ¥ι¥ ­¥ ®―p¥¤¥«¥­λ - Ά®§μ¬¨β¥ ¨ε
¨§ ¤Ά®¨η­®£® § £®«®Ά<C2AE>  α®®΅ι¥­¨ο. …᫨ §®­  ®β―p Ά¨β¥«ο ¥ι¥ ­¥ ®―p¥¤¥«¥­ ,
β® Άλ Άαβy― ¥β¥ Ά ®΅« αβμ ­¥¤®αβ®Ά¥p­λε ¨αβ®η­¨<C2AD>®Ά ¨­δ®p¬ ζ¨¨, <20> <20>®β®pλ¬
®β­®α¨βαο:
- ­®¬¥p §®­λ ¨§  ¤p¥α  Ά MSGID, ¥α«¨ β ¬ <20>®­¥η­® Ά®®΅ι¥ FTN- ¤p¥α
(α¬.­¨¦¥). <20> ¤ ¦¥ ¥α«¨ β <CEB2>, β® MSGID ¬®¦¥β ᮤ¥p¦ βμ Ά®Άα¥ ­¥  ¤p¥α
―®p®¤¨Άθ¥© α¨α⥬λ (originating node) ¨ Ά®Άα¥ ­¥  ¤p¥α, ­  <20>®β®pλ©
 Άβ®p ε®β¥« ΅λ ―®«yη¨β ®βΆ¥β;
- ­®¬¥p §®­λ ¨§ ¤Ά®¨η­®£® § £®«®Ά<C2AE>  (―®η¥¬y β ¬ ¬®¦¥β ΅λβμ Ά®Άα¥ ­¥
­®¬¥p §®­λ η¨β ©β¥ Άλθ¥);
- ­®¬¥p §®­λ £« Ά­®£®/®α­®Ά­®£®/―¥pΆ®£®  ¤p¥α  Ά θ¥© α¨α⥬λ;
- ­®¬¥p §®­λ ¨§ ―¥pΆ®£® <20>«y¤¦  Via. “ηβ¨β¥, ηβ® ­¥ δ <CEB4>β, ηβ® νβ  αβp®<70> 
΅y¤¥β ―p®αβ Ά«¥­  ¨¬¥­­® ­  ―®p®¤¨Άθ¥© α¨α⥬¥ ¨ ­¥ δ <CEB4>β, ηβ® β ¬
΅y¤¥β αβ®οβμ  ¤p¥α ¨¬¥­­® Ά β®© §®­¥, ―® <20>®β®p®© ¤®«¦­®
p α―p®αβp ­οβμαο ―¨α쬮.
…ι¥ ­®¬¥p §®­λ ¬®¦­® ―®«yη¨βμ ―p®Ά¥p¨Ά ­ «¨η¨¥ Ά® Άα¥ε ¤®αβy―­λε §®­ ε
α®®βΆ¥βαβΆyξι¨ε ­®¬¥p®Ά α¥β¥©. H ―p¨¬¥p, Ά 1© §®­¥ ­¥β α¥β¨ 5020,   Ά® 2©
§®­¥ β <CEB2> ο α¥βμ ¥αβμ :-) € ¬®¦­® ―p®Ά¥p¨βμ ¨¬¥­  α¨α®―®Ά :-)
…᫨ ­®¬¥p §®­λ ―®«yη β¥«ο ­¥ ΅λ« ®―p¥¤¥«¥­, β® ®­ p Ά¥­ ­®¬¥py §®­λ
®β―p Ά¨β¥«ο.
A: b) (st)
βyβ ¤®«£® ®΅αy¦¤ «®αμ Άλβ α<C2A0>¨Ά ­¨¥  ¤p¥α®Ά - <20> <EFBFBD> νβ® ―®<E28095>®pp¥<70>β­¥¥ ΅λ«® ΅λ,
­y ο ¨ ­ ―¨α « Ά ―α¥Ά¤®<C2A4>®¤¥. ―®¤―p Άμβ¥, ¤®΅ Άμβ¥, ―®εΆ «¨β¥, Ά FAQ
Άαβ Άμβ¥ - ―«¨§... ­y   ο - ¥α«¨ ηβ® - ―®¤―p Ά«ξ, ¨ ¥ι¥ p § ®―y΅«¨<C2AB>yξ.
¤y¬ ξ - ¬­®£¨¬ ¨­β¥p¥α­  ΅y¤¥β β <CEB2> ο δ®p¬ «μ­ ο δ®p¬y«¨p®Ά<C2AE>  ν⮣® ¬®¬¥­β .
// Decode FTN netmail message from/to addresses in pseudo-C
// Version 1.0, by serge terekhov, 2:5000/13@fidonet
// ================
// reading .pkt or .msg
// we have:
// pkt.from + pkt.to (OPTIONAL - when unpacking .pkt)
// msg.from.node/net + msg.to.node/net (REQUIRED)
// kludges: intl/fmpt/topt/msgid (OPTIONAL)
// return:
// from
// to
// real_to (only if zonegating)
// zonegate (YES/NO)
from.zone = -1
from.net = msg.from.net
from.node = msg.from.node
if (FMPT)
from.point = fmpt
else
from.point = 0
to.zone = -1
to.net = msg.to.net
to.node = msg.to.node
if (TOPT)
to.point = topt
else
to.point = 0
zonegate = NO
if (INTL) {
have_intl = YES
from.zone = intl.from.zone
from.net = intl.from.net
from.node = intl.from.node
if (to.net == intl.to.net && to.node == intl.to.node) {
to.zone = intl.to.zone
} else {
zonegate = YES
real_to.zone = intl.to.zone
real_to.net = intl.to.net
real_to.node = intl.to.node
real_to.point = to.point
to.zone = from.zone // zonegate is in our zone...
to.point = 0
}
} else {
have_intl = NO
if (MSGID && we can decode ftn address from it &&
msgid.net == from.net && msgid.node == from.node &&
msgid.point == from.point) {
from.zone = msgid.zone
} else {
// any other heuristics?
}
}
if (from.zone == -1) {
if (have pkt && pkt.from.zone != 0)
// last resort.. seems reasonable.
from.zone = pkt.from.zone
else
from.zone = default_zone // i.e. from our first AKA
}
if (to.zone == -1)
to.zone = from.zone
// ================
// generating output pkt
msg.from.net = from.net
msg.from.node = from.node
msg.to.net = to.net
msg.to.node = to.node
if (from.point)
put FMPT from.point
if (to.point)
put TOPT to.point
if (have_intl || readressing done) {
if (zonegate)
put INTL real_to from
else
put INTL to from
}
// ================
// EOF
/------/
>[7] Q: ƒ¤¥ Ά§οβμ  ¤p¥α  ®β―p Ά¨β¥«ο ¨ ―®«yη β¥«ο <E28095>¥β®Ά α®®΅ι¥­¨©?
A: (TT)
H®¬¥p α¥β¥©/y§«®Ά ¨ ®β―p Ά¨β¥«ο ¨ ―®«yη β¥«ο ­ ε®¤οβαο ―® ¬¥αβ ¬
®―p¥¤¥«¥­­λ¬ Ά FTS-0001. „«ο ®―p¥¤¥«¥­¨ο ­®¬¥p®Ά §®­ ¨ ―®©­β®Ά ­¥®΅ε®¤¨¬®
¨¤¥­β¨δ¨ζ¨p®Ά βμ β¨― ― <E28095>¥β ; ®΅λη­® ¨α―®«μ§yξβαο β <CEB2> ­ §λΆ ¥¬λ¥ ― <E28095>¥βλ
"2+", α®Ά¬¥αβ¨¬λ¥ α FTS-0001 - α¬. FSC-0039 ¨ FSC-0048, Ά ­¨ε ®―¨α ­® <20> <EFBFBD>
p α―®§­ βμ α®®βΆ¥βαβΆyξ騥 ― <E28095>¥βλ ¨ £¤¥ Ά ¨ε § £®«®Ά<C2AE> ε ­ ε®¤¨βαο ­®¬¥p
§®­λ/―®©­β .
yι¥αβΆyξβ ¨ ΅®«¥¥ p ¤¨<C2A4> «μ­® ®β«¨η ξ騥αο δ®p¬ βλ, ­¥α®Ά¬¥αβ¨¬λ¥ α
FTS-0001 - FSC-0045, FSC-0065/0066, FSC-0077, FSC-0079, FSC-0081, FSC-0082,
­® θ¨p®<70>®£® p α―p®αβp ­¥­¨ο ®­¨ ­¥ ―®«y稫¨.
/------/
>[8] Q: ¤Ά®¨η­®¬ § £®«®Ά<C2AE>¥ νε®-―¨αμ¬  ­  ¬¥αβ¥  ¤p¥α  ®β―p Ά¨β¥«ο α⮨β
> ¤p¥α α¨α⥬λ, ®β <20>®β®p®© ―p¨θ¥« ― <E28095>¥β α ν⨬ ―¨α쬮¬,   ­  ¬¥αβ¥  ¤p¥α 
>―®«yη β¥«ο - ¬®© α®΅αβΆ¥­­λ©  ¤p¥α. <20>®η¥¬y?
A: (TT)
‚α¥ ―p Ά¨«μ­®. <20>®£¤ -β® ¤ Ά­®, <20>®£¤  fidonet β®«μ<C2AB>® ­ η¨­ « αμ, <20>®£¤  ¥ι¥
¤ ¦¥ ­¥ ΅λ«® β <CEB2>¨ε ―®­ο⨩ <20> <EFBFBD> §®­ , ―®©­β ¨ MSGID, ⮣¤  νε®¬ν©« Ά α¬λα«¥
p α―p®αβp ­¥­¨ο ®η¥­μ ―®ε®¤¨« ­  netmail ¨ ®β«¨η «αο ®β ­¥£® β®«μ<C2AB>® α ¬®©
―¥pΆ®© cβp®<70>®© AREA:<­ §Ά ­¨¥> ―® <20>®β®p®© νε®-―p®ζ¥αα®p ¬®£ Άλ΅p βμ
echomail ¨§ ®΅ι¥£® ¤«ο Άα¥ε ―¨α¥¬ δ®«¤¥p . <20>p¨ ®β―p Ά<C2A0>¥ ―¨α¥¬ νε®-―p®ζ¥αα®p
―p®αβ Ά«ο« αΆ®©  ¤p¥α <20> <EFBFBD>  ¤p¥α ®β―p Ά¨β¥«ο ¨  ¤p¥α  downlink'®Ά <20> <EFBFBD>  ¤p¥α 
―®«yη β¥«¥© ¨ y<>« ¤λΆ « νβ¨ ―¨αμ¬  Ά ®΅ι¨© ¤«ο netmail'  ¨ echomail' 
δ®«¤¥p.
β¥ε ―®p p §Ά¨β¨¥ netmail ¨ echomail θ«® p §­λ¬¨ ―yβﬨ, ­® ¨§­ η «μ­λ©
―p¨­ζ¨― ®αβ «αο ―p¥¦­¨¬ - ¨  ¤p¥α  Ά § £®«®Ά<C2AE>¥ Άα¥ β <CEB2> ¦¥ y<> §λΆ ξβ
uplink'  ¨ downlink' .
/------/
>[9] Q:  <E28099> £¤¥ ¦¥ Ά§οβμ  ¤p¥α  ®β―p Ά¨β¥«ο ¨ ―®«yη β¥«ο Ά α®®΅ι¥­¨¨
>echomail?
A: a) (TT)
‘¬. FTS-0004 - Ά <20>®­ζ¥ origin'  Ά α<>®΅<C2AE> ε y<> § ­  ¤p¥α ®β―p Ά¨β¥«ο. H®
΅y¤μβ¥ ®αβ®p®¦­λ - ¬­®£¨¥ α¨α®―λ ­ pyθ ξβ αβ ­¤ pβ, β <CEB2> ηβ® Ά α<>®΅<C2AE> ε α⮨β
ηβ®-β® β¨―  (­¥οα­®ηβ® zzz:nnn/fff[.ppp][@domain]). H®, ―® <20>p ©­¥© ¬¥p¥,
­ pyθ ξβ ¥£® Άα¥ ®¤¨­ <C2AD>®Ά® :-)
€ Ά®β α<>®«μ-­¨΅y¤μ ¤®αβ®Ά¥p­®£® ¨αβ®η­¨<C2AD>   ¤p¥α  ―®«yη β¥«ο Ά νε®-α®®΅ι¥­¨¨
­¥β. (<28>«y¤¦ REPLY ᮤ¥p¦¨β ­¥  ¤p¥α ―®«yη β¥«ο,    ¤p¥α α¨αβ¥¬λ Ά ®βΆ¥β ­ 
―¨α쬮 α <20>®β®p®© ­ ―¨α ­® νβ® α®®΅ι¥­¨¥ -   ν⮠ᮢᥬ ­¥ ®¤­® ¨ ⮦¥!).
A: b) (JF)
IMHO, ¥α«¨ MSGID ¥αβμ ¨ Ά ­¥¬ ­®p¬ «μ­λ© FTN- ¤p¥α, β® νβ®β  ¤p¥α
―p¨®p¨β¥β­¥©  ¤p¥α  Ά ®p¨¤¦¨­¥. H ―p¨¬¥p, ―p¨ £¥©β®Ά ­¨¨ ¨§ FTN-α®Ά¬¥α⨬λε
α¥β®<EFBFBD> ¬®¦­® ―®αβ Ά¨βμ Ά ®p¨¤¦¨­  ¤p¥α £¥©β ,   Ά®β Ά MSGID ΅y¤¥β ¨α室­λ©
 ¤p¥α Ά FTN-α¥β<C2A5>¥. …᫨ Ά MSGID α⮨⠨­β¥p­¥βα<CEB2>¨©  ¤p¥α, β® p §y¬­¥¥
®βΆ¥η βμ η¥p¥§ ΅«¨¦ ©θ¨© ­¥β¬¥©«®Άλ© £¥©β (¥α«¨ ¥£®  ¤p¥α ¥αβμ Ά <20>®­δ¨£ ε
p¥¤ <EFBFBD>β®p ),   ­¥ α« βμ ―¨α쬮 η¥p¥§ ―®«-αβp ­λ ­  £¥©β, y<> § ­­λ© Ά
®p¨¤¦¨­¥.
<EFBFBD>αβ β¨, ¤Ά¥ αβ ­¤ ­λ¥ ­ <C2AD>®«<C2AE>¨ - ­¥ FTN- ¤p¥α Ά MSGID ¨  ­ «¨§ ―¥pΆ®£®
®p¨¤¦¨­  Ά¬¥αβ® ―®α«¥¤­¥£®. <20>­®£¨¥ β®αα¥pλ Ά®®΅ι¥ ®΅p¥§ ξβ ―¨α쬮 ―®
―¥pΆ®¬y ®p¨¤¦¨­y. :(
’® ¥αβμ, αβ ­¤ ­ ο ­ <C2AD>®«<C2AE>  - α®εp ­¨«¨ ―¨α쬮 Ά δ ©«¥, ―®β®¬ Άαβ Ά¨«¨
δ ©« Ά ¤py£®¥ ―¨α쬮. ®αα¥p ―® ¤®p®£¥ ®΅p¥§ « ―¨α쬮 ―® ―¥pΆ®¬y ®p¨¤¦¨­y.
p¥§y«μβ β¥ Ά MSGID  ¤p¥α Ά¥p­λ©,   Ά ®p¨¤¦¨­¥ - «¥Άλ©. <20> § Ά ­¥¤¥«ξ/¬¥αοζ
β <EFBFBD>¨¥ ―¨αμ¬  Άαβp¥η ξβαο.
/------/
>[10] Q: FTS-0009 α<> § ­® ηβ® Ά MSGID ¤®«¦¥­ ­ ε®¤¨βαο "valid return
>address",   ­  ―p <70>β¨<CEB2>¥ Ά MSGID ¬®¦­® Ά¨¤¥βμ ¨­β¥p­¥β®Άα<CE86>¨¥  ¤p¥α . <20> <EFBFBD>
>΅λβμ?
A: a) (TT)
FTS-0009 α<> § ­®:
"valid return address for the originating network"
(¤¥©α⢨⥫μ­λ© (p ΅®β ξ騩, ¨¬¥ξ騩 ᨫy, p¥ «μ­λ©) ®΅p β­λ©  ¤p¥α
¤«ο ―®p®¤¨Άθ¥© α¥β¨)
¨ β®β ¨­β¥p­¥β®Άα<CE86>¨©  ¤p¥α y¤®Ά«¥βΆ®pο¥β ν⮬y βp¥΅®Ά ­¨ξ ­¥ εy¦¥ ―p¨Άλη­λε
zzz:ppp/fff.nnn - ¤«ο _αΆ®¥©_ α¥β¨ ®­ ¤¥©α⢨⥫μ­λ© ®΅p β­λ©. <20>® αyβ¨,
«ξ΅®©  ¤p¥α Ά msgid ­y¦¥­ β®«μ<C2AB>® ¤«ο ®΅¥α―¥η¥­¨ο y­¨<C2AD> «μ­®αβ¨ - p §­λ¥
α¨αβ¥¬λ ¬®£yβ ―®p®¦¤ βμ ®¤¨­ <C2AD>®Άλ¥ α¥p¨©­λ¥ ­®¬¥p , ­® ®­¨ Άα¥£¤ 
®β«¨η ξβαο  ¤p¥α ¬¨. …᫨ Ά α ­¥ y΅¥¤¨«® νβ® p ααy¦¤¥­¨¥, β® ®΅p β¨β¥
Ά­¨¬ ­¨¥ ­  α«¥¤yξ騥 δp §λ:
If the originating address is enclosed in double-quotes, the entire
string between the beginning and ending double-quotes is considered to
be the orginating address. A double-quote character within a quoted
address is represented by by two consecutive double-quote characters.
(¥α«¨ ¨α室ο騩  ¤p¥α § <C2A7>«ξη¥­ Ά <20> Άλη<CEBB>¨, β® Άαο αβp®<70>  ¬¥¦¤y
®β<C2AE>pλΆ ξ饩 ¨ § <C2A7>pλΆ ξ饩 <20> Άλη<CEBB> ¬¨ αη¨β ¥βαο ¨α室ο騬  ¤p¥α®¬.
<20> Άλη<CEBB>¨ Ά "§ <C2A7> Άλη¥­­®¬"  ¤p¥α¥ ―p¥¤αβ Ά«οξβαο ¤Άy¬ο ―®α«¥¤®Ά β¥«μ­λ¬¨
<20> Άλη<CEBB> ¬¨)
¨ ―®―p®΅y©β¥ ®΅κοα­¨βμ α ¬®¬y ᥡ¥ - <20> <EFBFBD>®© νβ® ftn- ¤p¥α ¬®¦¥β ᮤ¥p¦ βμ Ά
ᥡ¥ <20> Άλη<CEBB>¨? :-)
<EFBFBD> Ά «ξ΅®¬ α«yη ¥ α⮨β αη¨β βμαο α «μ­®αβμξ, ¤ ­­®© ­ ¬ Ά ®ιyι¥­¨οε...
A: b) (PG)
<EFBFBD>®―p Ά<EFBFBD> : Ά αΆο§¨ α ⥬, ηβ® Ά ¬­®£®―®«μ§®Ά β¥«μα<CEBC>¨ε α¨α⥬ ε (multiline
BBS, unix) £¥­¥p ζ¨¥© y­¨<C2AD> «μ­®£® ID η αβ® § ­¨¬ ¥βαο ®¤¨­ α¥pΆ¥p (¤¥¬®­),
Ά MSGID, <20> <EFBFBD> ―p Ά¨«®, ―¨θ¥βαο ­¥ ―®«­λ©  ¤p¥α ®β―p Ά¨β¥«ο,    ¤p¥α α¨α⥬λ
- 3d-5d  ¤p¥α (_΅¥§_ username) ¤«ο FTN, ―p®αβ® ¤®¬¥­ (_΅¥§_ username) ¤«ο
internet ¨ β.―.
/------/
>[11] Q: <20>®η¥¬y ― p £p δλ Ά α®®΅ι¥­¨¨ ¨­®£¤  § <C2A7> ­η¨Ά ξβαο <20>®¤®¬ 0Dh,   ­¥
><3E>®¬΅¨­ ζ¨¥© 0Dh 0Ah?
A: (TT)
‘¬. FTS-0001 - ― p £p δ § <C2A7> ­η¨Ά ¥βαο <20>®¤®¬ 0Dh. <20>®¤λ 0Ah ­¥ ¨α―®«μ§yξβαο ¨
¤®«¦­λ ¨£­®p¨p®Ά βμαο.
/------/
>[12] Q: <20> <EFBFBD>®Ά  ¬ <C2AC>ᨬ «μ­ ο ¤«¨­  α®®΅ι¥­¨©?
A: (TT)
β ­¤ pβλ νβ® ­¥ ®£®Ά p¨Ά ξβ. <20>p <70>β¨η¥α<C2A5>¨ Άα¥ α®Άp¥¬¥­­λ¥ ―p®£p ¬¬λ
¤®―yα<EFBFBD> ξβ ¤«¨­y α®®΅ι¥­¨© ­¥ ¬¥­¥¥ 64KB, ­® ¤«ο α®Ά¬¥α⨬®αβ¨ α ¥ι¥
¨α―®«μ§yξ騬¨αο αβ p묨 ―p®£p ¬¬ ¬¨ ­¥ p¥<70>®¬¥­¤y¥βαο ¤¥« βμ α®®΅ι¥­¨ο
¤«¨­¥¥ 12KB.
>[13] Q: —β® β <CEB2>®¥ §®­¥£¥©β ¨ <20> <EFBFBD> y<> §λΆ ¥βαο ¥£® ¨α―®«μ§®Ά ­¨¥ Ά α®®΅ι¥­¨¨?
A: (TT)
‘¬. FSC-0004. <>p βζ¥ - Ά <20> ¦¤®© §®­¥ fidonet αyι¥αβΆyξβ α―¥ζ¨ «μ­λ¥ y§«λ
(§®­¥£¥©βλ) ¤«ο ―¥p¥αλ«<CEBB>¨ ―¨α¥¬ Ά ¤py£¨¥ §®­λ. ‡®­¥£¥©β ¨§ <z1> Ά <z2>
¨¬¥¥β  ¤p¥α <z1>:<z1>/<z2>. <20>¨α쬮 ®β y§«  <z1>:<n1>/<f1> <20> y§«y
<z2>:<n2>/<f2>,  ¤p¥α®Ά ­­®¥ η¥p¥§ §®­¥£¥©β, ¨¬¥¥β Ά ¤Ά®¨η­®¬ § £®«®Ά<C2AE>¥
 ¤p¥α α¥β¨/y§«  ―®«yη β¥«ο ­¥ <n2>/<f2>, <20> <EFBFBD> νβ® ΅λ«® ΅λ ―p¨ ―pאַ©
 ¤p¥α ζ¨¨,   <z1>/<z2>.
/------/
>[14] Q: <20>® <20> <EFBFBD>®¬y ―p¨­ζ¨―y £¥­¥p¨py¥βαο y­¨<C2AD> «μ­λ© ­®¬¥p α®®΅ι¥­¨ο Ά MSGID?
A: a) (TT)
¬®βp¨¬ FTS-0009:
no two messages from a given system may have the same serial number
within a three years. The manner in which this serial number is
generated is left to the implementor.
(­¥ ¤®«¦­λ ―®οΆ«οβμαο ¤Ά  α®®΅ι¥­¨ο ®β ¤ ­­®© α¨α⥬λ α ®¤¨­ <C2AD>®Άλ¬
―®pο¤<CEBF>®Άλ¬ ­®¬¥p®¬ Ά β¥η¥­¨¨ 3 «¥β. <20>¥β®¤, ―® <20>®β®p®¬y νβ¨ ―®pο¤<CEBF>®Άλ¥
­®¬¥p  £¥­¥p¨pyξβαο, ®αβ Ά«¥­ ­  yᬮβp¥­¨¥ p¥ «¨§ β®p ).
H¥ ―®Άβ®pο©β¥ p α―p®αβp ­¥­­®© ®θ¨΅<C2A8>¨ - ΅p βμ Ά <20> η¥αβΆ¥ ―®pο¤<CEBF>®Ά®£® ­®¬¥p 
Άp¥¬ο Ά δ®p¬ β¥ unix - p ΅®β ξ騥 β <CEB2>¨¬ ®΅p §®¬ ―p®£p ¬¬λ ¤¥« ξβ ®¤¨­ <C2AD>®Άλ¥
MSGID, ¥α«¨ ¬¥¦¤y ¨ε § ―yα<79> ¬¨ ―p®ε®¤¨β ¬¥­μθ¥ α¥<CEB1>y­¤λ.
A: b) (PK)
€ Ά®β βyβ ΅λ ο ―p¨Ά¥« <20>yα®η¥<CEB7>α¥Ά¤®<C2A4>®¤  ¨«¨ ―p®αβ® ―®pβ ΅¨«μ­®£® <20>®¤ ,
­ ―p¨¬¥p νβ®β ¤ ¥β ―¥p¨®¤ ―®Άβ®p¥­¨ο 388 ¤­¥© ¨ § ι¨ι¥­ ®β η αβλε Άλ§®Ά®Ά
Ά­yβp¨ ®¤­®£® ―p®ζ¥αα :
/*
* This subroutine makes up an ascending unique ^aMSGID stamp
*/
static ULONG DoMakeMSGIDStamp(void)
{
static ULONG lStampPrev;
ULONG lStamp, lSecs, lHund, lSecStart = (ULONG) time(NULL);
#ifdef __OS2__
static BOOL fInfoSeg = FALSE;
static PGINFOSEG pgis;
static PLINFOSEG plis;
SEL selgis, sellis;
#else
union REGS regs;
#endif
// Under OS2 get pointers to the global and local info segments once
#ifdef __OS2__
if (!fInfoSeg) {
DosGetInfoSeg(&selgis, &sellis);
pgis = MAKEPGINFOSEG(selgis);
plis = MAKEPLINFOSEG(sellis);
fInfoSeg = TRUE;
}
#endif
// Make up time stamp out of number of seconds since Jan 1, 1970
// shifted 7 bits to the left OR'ed with current system clock and
// loop untill we get a new stamp
do {
#ifdef __OS2__
lSecs = (ULONG) pgis->time;
lHund = (ULONG) pgis->hundredths;
DosSleep(0);
#else
lSecs = (ULONG) time(NULL);
regs.h.ah = 0x2c; intdos(&regs, &regs);
lHund = (ULONG) regs.h.dl;
#endif
lStamp = (lSecs << 7) | (lHund & 0x07f);
} while ((lStampPrev >= lStamp) && ((ULONG) time(NULL) < lSecStart + 5));
// Check if we finally have unique ascending ^aMSGID kludge stamp and
// if not, use incremented largest stamp value
if (lStampPrev >= lStamp) lStamp = lStampPrev + 1;
return lStampPrev = lStamp;
}
/------/
>[15] Q: <20> <EFBFBD>®Ά p®yβ¨­£ ―® y¬®«η ­¨ξ ­  ­¥§ Ά¨α¨¬λ¥ y§«λ Ά p¥£¨®­¥/§®­¥?
A: (TT)
H¥§ Ά¨α¨¬λ¥ y§«λ H… ¨¬¥ξβ p®yβ¨­£  ―® y¬®«η ­¨ξ. ‘¬. FTS-0005.
/------/
>[16] Q: <20> <EFBFBD>®© α¬λα«  ββp¨΅yβ  ARQ?
A: (TT)
β ­¤ pβλ δ <CEB4>β¨η¥α<C2A5>¨ ­¥ ®―p¥¤¥«οξβ α¬λα« ARQ. <20>® α«®¦¨Άθ¥©αο (―® <20>p ©­¥©
¬¥p¥ Ά +7fido) ―p <70>β¨<CEB2>¥ νβ®β  ββp¨΅yβ § ―p θ¨Ά ¥β ―®¤βΆ¥p¦¤¥­¨¥ βp ­§¨β .
/------/
>[17] Q: —¥¬ ®β«¨η ξβαο  ββp¨΅yβλ RRQ ¨ CFM?
A: (TT)
<EFBFBD>¥pΆ®¥ - § ―p®α ―®¤βΆ¥p¦¤¥­¨ο ¤®αβ Ά<C2A0>¨, Άβ®p®¥ - § ―p®α ―®¤βΆ¥p¦¤¥­¨ο
―p®ηβ¥­¨ο.
/------/
>[18] Q: <20> <EFBFBD>®Ά α¬λα« ¨ <20> <EFBFBD> α®®β­®αοβαο  ββp¨΅yβλ Crash, Immediate, FPU,
>Direct, Hold?
A: (TT)
Crash
<20>p¨®p¨β¥β­ ο ®β―p Ά<C2A0> . <20>΅λη­® ―¥p¥<70>pλΆ ¥β ¤¥©αβΆ¨¥ ¤¨p¥<70>β¨Ά Hold Ά
­ αβp®©<C2AE>¥ α®΅λ⨩ ¬ν©«¥p  - § Ά¨α¨β ®β p¥ «¨§ ζ¨¨.
Immediate
H¥¬¥¤«¥­­ ο ®β―p Ά<C2A0> . <20> <EFBFBD> ―p Ά¨«® ―¥p¥<70>pλΆ ¥β ¤¨p¥<70>β¨Άλ Hold, ¬®¦¥β
―¥p¥<70>pλΆ βμ οΆ­® ®΅®§­ η¥­­®¥ ¨«¨ ―®¤p §y¬¥Ά ¥¬®¥ Άp¥¬ο p ΅®βλ
α⠭樨 ®β―p Ά¨β¥«ο ¨/¨«¨ ―®«yη β¥«ο, ¬®¦¥β ―®¤p §y¬¥Ά βμ Direct -
§ Ά¨α¨β ®β p¥ «¨§ ζ¨¨.  <E28099>¦¥ ¬®¦¥β p αα¬ βp¨Ά βμαο <20> <EFBFBD> Crash ¨«¨
<20> <EFBFBD> Crash+Direct.
FPU
H¥¬¥¤«¥­­ ο ®β―p Ά<C2A0>  Ά­¥ «ξ΅λε ®£p ­¨η¥­¨©. <20>¥p¥<70>pλΆ ¥β Hold,
Άp¥¬¥­  p ΅®βλ, ―®¤p §y¬¥Ά ¥β Direct.
Direct
<20>β―p Ά«οβμ ­ ―pο¬yξ.
Hold
<20>β―p Ά«οβμ β®«μ<C2AB>® ―p¨ Άε®¤ο饬 §Ά®­<C2AE>¥. ‡ η αβyξ ―®¤p §y¬¥Ά ¥β
Direct.
yι¥αβΆy¥β ¬­¥­¨¥, ηβ® <20>®¬΅¨­ ζ¨ο  ββp¨΅yβ®Ά (―p®β¨Ά®p¥η¨Ά ο) Crash+Hold
ν<EFBFBD>Ά¨Ά «¥­β   ββp¨΅yβy Direct. H¥ ᮢᥬ ―®­οβ­®, § η¥¬ β <CEB2>¨¥ α«®¦­®αβ¨, ­®
­¥<EFBFBD>®β®pλ¥ ―p®£p ¬¬λ, Ά<>«ξη ο ―p¥α«®Άyβλ© squish, β <CEB2> ¤¥« ξβ. H §®Ά¥¬ νβ®
®α®΅¥­­®αβμξ :-)
/------/
>[19] Q: <20> <EFBFBD> «¨§®Ά ­λ ¤®¬¥­λ Ά fidonet?
A: (TT)
<EFBFBD>p <EFBFBD>β¨η¥α<EFBFBD>¨ ­¨<C2AD> <EFBFBD>. <20>®«μθ ο η αβμ ―p®£p ¬¬­®£® ®΅¥α―¥η¥­¨ο, § οΆ«¥­­®£® <20> <EFBFBD>
―®¤¤¥p¦¨Ά ξι¥£® 5d- ¤p¥α ζ¨ξ, ―® αyβ¨ β®«μ<C2AB>® ¨ y¬¥ξβ ηβ® ¤®΅ Ά«οβμ
'@fidonet' <20> Ά θ¥¬y  ¤p¥αy Ά MSGID. —β®, Ά ®΅ι¥¬, ¨ ­¥ y¤¨Ά¨β¥«μ­® ―p¨
­ «¨η¨¨ ­¥α<C2A5>®«μ<C2AB>¨ε Ά§ ¨¬®¨α<C2A8>«ξη ξι¨ε ―p¥¤«®¦¥­¨©, ­¨ ®¤­® ¨§ <20>®β®pλε
(―®<E28095> ?) ­¥ οΆ«ο¥βαο αβ ­¤ p⮬. H ―p¨¬¥p, ¤® α¨ε ―®p ­¥οα­® <20> <EFBFBD> ­ §λΆ ¥βαο
¤®¬¥­ α ¬®© fidonet - "fidonet" ¨«¨ "fidonet.org" :-( ‚®§¬®¦­®, ―p®αβ®
­ ¤®΅­®αβμ Ά 5© <20>®¬―®­¥­β¥ ¬¥­μθ¥, 祬 ¤y¬ «¨  Άβ®pλ ―p¥¤«®¦¥­¨©...
/------/
>[20] Q: <20> <EFBFBD>¨¬ §­ <C2AD>®¬ ­­® y<> §λΆ βμ ᬥ饭¨¥ ®β ƒp¨­Ά¨η  Ά ―¥p¥¬¥­­®©
<>py¦¥­¨ο TZ?
A: (TT)
®β«¨η¨¨ ®β ¬¨p  unix' , y  Άβ®p®Ά ―p®£p ¬¬ ―®¤ MS DOS ­¥β ¥¤¨­®£® ¬­¥­¨ο
­  νβ®β αη¥β. <20>¤­¨ ―p®£p ¬¬λ βp¥΅yξβ §­ <C2AD>  "-" (SET TZ=MSK-3MSD), ¤py£¨¥ -
§­ <EFBFBD>  "+" (SET TZ=MSK+3MSD),  Άβ®pλ βp¥βμ¨ε p¥θ¨«¨, ηβ® ­ ¤¥¦­¥¥ ­¥
―®« £ βμαο ­  TZ ­¥®―p¥¤¥«¥­­®£® Ά¨¤ ,   § αβ Ά¨βμ ―®«μ§®Ά β¥«ο y<> §λΆ βμ
ᬥ饭¨¥ ®β ƒp¨­Ά¨η  Ά <20>®­δ¨£yp ζ¨¨ Ά ⮬ Ά¨¤¥, Ά <20> <EFBFBD>®¬ ®­¨ α ¬¨
®―p¥¤¥«οξβ.
<EFBFBD>®¥ HO, ηβ® ΅®«μθ ο η αβμ ―p®£p ¬¬ <20>®pp¥<70>β­® p ΅®β ξβ α δ®p¬ β®¬
TZ=MSK-3MSD.
/------/
>[21] Q: ƒ¤¥ ®―¨α ­λ δ®p¬ βλ δ ©«®Ά *.PKT, *.MSG, Hudson/Squish/JAM message
>base ¨ β.¤.?
A: (TT)
”®p¬ βλ *.MSG ¨ *.PKT ®―¨α ­λ Ά FTS-0001, ­® ®­ ­¥α<C2A5>®«μ<C2AB>® p α室¨βαο α
 «¨ο¬¨ - η¨β ©β¥ α®®βΆ¥βαβΆyξ騥 Ά®―p®αλ ¨ ®βΆ¥βλ. ”®p¬ β HMB ®―¨α ­ Ά
δ ©« ε, ―p¨« £ ¥¬λε <20> ¤¨αβp¨΅yβ¨Ά ¬ Quick BBS ¨ Remote Access. ”®p¬ βλ
Squish ¨ JAM ®―¨α ­λ Ά ¨ε API (MSGAPI10.* ¨ JAMAPI10.*). <20>p®¬¥ ⮣®,
αyι¥αβΆy¥β ¬­®£® p §­®®΅p §­λε ΅¨΅«¨®β¥<CEB2> ¤«ο p ΅®βλ c α®®΅ι¥­¨ο¬¨. „«ο
Turbo Pascal, ­ ―p¨¬¥p, αyι¥αβΆy¥β ®η¥­μ ­¥―«®ε ο (¤ p®¬, ηβ® ®΅κ¥<CEBA>β­ ο)
΅¨΅«¨®β¥<EFBFBD> :
MKSM106.ARJ - MK message access library v1.06 source code
<EFBFBD>p®¬¥ ⮣®, ¤«ο ¬­®£¨ε ―p®£p ¬¬ αyι¥αβΆyξβ α®΅αβΆ¥­­λ¥ α―¥ζ¨δ¨η¥α<C2A5>¨¥
΅¨΅«¨®β¥<EFBFBD>¨. H ―p¨¬¥p: T-Mail API, FrontDoor Developers Kit, Developers Kit
for GEcho, FastEcho configuration file headers ¨ β.―.
‚¥αμ¬  Ά¥p®οβ­®, ηβ® <20>®­<C2AE>p¥β­λ¥ Ά®―p®αλ ®΅ νβ¨ε δ ©« ε «yηθ¥ ΅y¤¥β ®΅αy¤¨βμ
Ά <20>®­δ¥p¥­ζ¨οε SU.MAILER ¨«¨ RU.ECHOPROCESSORS...
/------/
>[22] Q: <20> <EFBFBD>¨¥ ¥ι¥ αyι¥αβΆyξβ <20>®­δ¥p¥­ζ¨¨ ¤«ο ®΅αy¦¤¥­¨ο β¥ε­®«®£¨© Fidonet?
A: a) (TT)
SU.MAILER - ¬ν©«¥pλ
RU.ECHOPROCESSORS - νε®―p®ζ¥αα®pλ
RU.FILOEECHOPROCESSORS - δ ©«νε®―p®ζ¥αα®pλ
RU.NETWORKS - α¥β¥Άλ¥ β¥ε­®«®£¨¨ Ά ®΅ι¥¬ (­¥ LAN!)
FIDO.ANYWHERE - <20>®­δ¥p¥­ζ¨ο ®΅ FTN ­  ­¥PC-―« βδ®p¬ ε
UA.FIDOTECH - y<>p ¨­α<C2AD> ο νε® ® β¥ε­®«®£¨οε Fidonet
DIG.FIDOTECH - νε® <20> <EFBFBD>®©-β® α¥β¨ ® β¥ε­®«®£¨οε Fidonet
<EFBFBD>p®¬¥ ⮣®, αyι¥αβΆy¥β ¬­®¦¥αβΆ® <20>®­δ¥p¥­ζ¨© ―® ®β¤¥«μ­λ¬ ―p®£p ¬¬­λ¬
―p®¤y<EFBFBD>β ¬ Fidonet.
A: b) (DP)
DIG.FIDOTECH - ¤ ©¤¦¥αβ ―® FTN ¨§ α¥β¨ 5005. ‘¥©η α ―yαβy¥β. <20>®¤¥p β®p
£py――λ <20>®­δ¥p¥­ζ¨© DIG.* - Vsevolod Fedotov (‚α¥Ά®«®¤ ”¥¤®β®Ά) €¤p¥α
¬®¤¥p β®p : 2:5005/2@fidonet
A: c) (AS)
R50.TSC ¥ι¥... ’ ¬ p¥¤<C2A5>® ηβ®-β® ΅λΆ ¥β, ­® ¨­®£¤ , Άα¥ ¦¥...
A: d) (Amir Shabashvili, 2:5049/12)
…αβμ ru.fido.nextgen, ―®αΆοι¥­­ ο ®΅αy¦¤¥­¨ξ ­®Άλε/¬®¤¨δ¨ζ¨p®Ά ­­λε
―p¨­ζ¨―®Ά δy­<79>樮­¨p®Ά ­¨ο fidonet. yι¥αβΆy¥β ­¥¤ Ά­®. <20>®<EFBFBD>  ®­  Ά
§ η β<EFBFBD>¥, ­ p®¤y β ¬ ¬ «®. H® - ¦¨Ά ο. <20>p®¬¥ ⮣®, ¨­β¥p¥α­λ¥ Ά¥ι¨ η αβ®
®΅αy¦¤ ξβαο Ά su.ip.sysop.
A: e) (BI)
 <EFBFBD>¦¥ ¤«ο ®΅αy¦¤¥­¨ο Ά®―p®α®Ά β¥ε­®«®£¨© ®΅p ΅®β<C2AE>¨ ­¥β¬¥©«  αyι¥αβΆy¥β
RU.NETMGR. ®―p®αλ <20>®­<C2AE>p¥β­λε p¥ «¨§ ζ¨© α®Ά¬¥ι¥­¨ο ”<><EFBFBD> ¨ <20>­β¥p­¥β
β¥ε­®«®£¨© ®΅αy¦¤ ξβαο Ά SU.IP.SYSOP, SU.IP.POINT ¨ SU.IP.SYSOP.DNS.
/------/
>[23] Q: “ 䨤®θ­λε ―p®¤y<C2A4>β®Ά ¥αβμ <20>®¤ (Product ID). <20>β® ¥£® Άλ¤ ¥β ¨ <20> <EFBFBD>
>νβ® ¤¥« ¥βαο?
A: (TT)
<EFBFBD>p®ζ¥¤yp  ¨ δ®p¬  § οΆ<CEBF>¨ ®―¨α ­λ Ά FSC-0090. <20> ­¥¥ Άλ¤ ­­λ¥ <20>®¤λ
―¥p¥η¨α«οξβαο Ά δ ©«¥ FTSCPROD.*, <20>®β®pλ© ¬®¦­® ­ ©β¨ p冷¬ α FTS ¨ FSC ­ 
¬­®£¨ε y§« ε.
/------/
>[24] Q: <20>®α®Ά¥βy©β¥ ε®p®θyξ ε¥θ-δy­<79>ζ¨ξ ¤«ο ―®«­®© αβp®<70>¨ ¨§ MSGID.
A: (st)
―®«yηθ¥ CRC ΅y¤¥β, ―® ¬®¨¬ β¥αβ ¬
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _
O \
#define POLY 0x48000000L
static long CrcTable[128];
static void crcinit (void)
{
int i, j;
long sum;
for (i = 0; i < 128; ++i) {
sum = 0;
for (j = 7 - 1; j >= 0; --j)
if (i & (1 << j))
sum ^= POLY >> j;
CrcTable[i] = sum;
}
}
/* Honeyman's nice hashing function
*/
static long hash (register char *name, register int size)
{
register long sum;
if (size <= 0)
return 0;
sum = CrcTable[*name++ & 0x7f];
while (--size)
sum = (sum >> 7) ^ CrcTable[((char)sum ^ *name++) & 0x7f];
return (sum);
}
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _
O \
>[25] Q: € <20> <EFBFBD> Fossil ¬®¦¥β «®η¨βμ ―®pβ ­  57600 ¨«¨ ­  115200, <20>®£¤  Ά
>αβ ­¤ pβ¥ ®―p¥¤¥«¥­® β®«μ<C2AB>® 38400 <20> <EFBFBD> ¬ <C2AC>ᨬy¬?
A: (Roman Trunov, 2:5022/2)
„®―®«­¨β¥«μ­λ¥ δy­<79>樨, ­¥ y<> § ­­λ¥ Ά ®―¨α ­¨¨. <20> ­¥ <20> ¦¤ ο Ά¥pα¨ο δ®αᨫ 
¨ε ¤¥p¦¨β. H ―p¨¬¥p, ΅λ«  ΅®«μθ ο ΅yη  α t-mail'®¬, <20>®£¤  ΆΆ¥«¨
Ά®§¬®¦­®αβμ § «®η<C2AE>¨ ­  ΅®«μθyξ α<>®p®αβμ, ¨, ε®βο Ά readme ΅λ«® η¥β<C2A5>®
®―¨α ­®, <20> <EFBFBD> ο ¬¨­¨¬ «μ­ ο Ά¥pα¨ο X00 ¤«ο ν⮣® βp¥΅y¥βαο, ¤® α¨ε ―®p
¨¤yβ Ά®―p®αλ "  ηβ® ®­ y ¬¥­ο ­  2400 ᮥ¤¨­ο¥βαο"... <20>®­<C2AE>p¥β­® ¬®¦¥θμ
―®η¨β βμ ¤®<C2A4>y ­  X00.
>[26] Q: <20> <EFBFBD> ®p£ ­¨§®Ά ­ outbound y BinkleyStyle-¬ν©«¥p®Ά?
<EFBFBD>®¬¬¥­β p¨© (TT): Ά ®΅ι¥¬, νβ®β Ά®―p®α ΅«¨¦¥ <20> ⥬ β¨<CEB2>¥ SU.MAILER, ­®
®βΆ¥βλ ­  ­¥£® ―p¥¤αβ Ά«οξβ ¨­β¥p¥α <20> <EFBFBD> ―p¨¬¥p p α―p®αβp ­¥­­®© <20>®­<C2AE>p¥β­®©
 «¨§ ζ¨¨ FTN.
A: a) (DM)
<EFBFBD>¬¥¥¬ ­¥<C2AD>yξ ΅ §®Άyξ ¤¨p¥<70>β®p¨ξ. …᫨ ­ θ  ¤p¥α z:n/n.p@domain, β® ―®«®¦¨¬ Ά
­¥¥ Άα¥ δ ©«λ, ®β­®αο騥αο <20> y§« ¬ α ­®¬¥p ¬¨ Ά¨¤  z:*/*@domain. <20>¬¥­ 
β <EFBFBD>¨ε δ ©«®Ά α®αβ®οβ ¨§ ¤Άyε ―®«¥© ―® η¥βλp¥ θ¥αβ­ ¤ζ β¥p¨η­λε ζ¨δpλ,
®¤­®§­ η­® § ¤ ξι¨ε α¥βμ ¨ ­®¬¥p y§«  (§®­  ¨ ¤®¬¥­, ®η¥Ά¨¤­®, ­ θ¨.
<EFBFBD>®¨­β®Άλ© ­®¬¥p ―®« £ ¥βαο ­y«¥Άλ¬). <20>ε p αθ¨p¥­¨ο Ά § Ά¨α¨¬®αβ¨ ®β β¨― 
δ ©«  ¬®£yβ ΅λβμ β <CEB2>¨¬¨:
.?lo -- δ ©«, Ά <20>®β®p®¬ <20> ¦¤ ο ¨§ αβp®<70> «¨΅® ¨¬ο δ ©« , ―p¥¤­ §­ η¥­­®£®
<20> ®β―p Ά<C2A0>¥ ­  «¥­­yξ ¬ θ¨­y, «¨΅® ―yαβ ο. …᫨ ―yβμ ¤® δ ©«  ­¥
―®«­λ©,   ®β­®α¨β¥«μ­λ© (β.¥. ΅¥§ y<> § ­¨ο ΅y<CE85>Άλ ¤¨α<C2A8>  ¨«¨ ε®βο ΅λ
―p®αβ® "/" ¨«¨ "\" Ά ­ η «¥) β® ®­ ¤®―®«­ο¥βαο ¨¬¥­¥¬ ΅ §®Ά®©
¤¨p¥<70>β®p¨¨. <20>¥p¥¤ ¨¬¥­¥¬ δ ©«  ¬®¦¥β αβ®οβμ ®¤¨­ ¨§ ᨬΆ®«®Ά -- `^', `#'
¨«¨ `~'. `^' -- y¤ «¨βμ ¤ ­­λ© δ ©« ―®α«¥ yα―¥θ­®© ―®αλ«<CEBB>¨, `#' --
®΅p¥§ βμ ¤® ­y«¥Ά®© ¤«¨­­λ, `~' -- ¨£­®p¨p®Ά βμ β¥<CEB2>αβ §  ν⨬ ᨬΆ®«®¬.
<20>¬ ¬ν©«¥pλ ―®¬¥η ξβ y¦¥ ®β®α« ­­λ¥ δ ©«λ. …᫨ Άα¥ αβp®<70>¨ Ά .?lo-θ<>¥
―yαβλ¥ ¨«¨ ­ η¨­ ξβαο α `~' -- ®­  ¬®¦¥β ΅λβμ £p®ε­  α η¨αβ®©
α®Ά¥αβμξ.
.?ut -- type-1 (2, 2+) ― <E28095>¥β α ―®ηβ®©, <20>®β®pλ© ­­® yα« βμ ­ 
α®®βΆ¥βαβΆyξ騩  ¤p¥α. ‚® Άp¥¬ο ―®αλ«<CEBB>¨ ¥¬y ―p¨αΆ ¨Ά ¥βαο α«yη ©­®¥ ¨¬ο
¨ p αθ¨p¥­¨¥ ".pkt". ‡¤¥αμ ¨ Άλθ¥ Ά®―p®α¨<CEB1> § ¬¥­ο¥βαο ­  ®¤­y ¨§ ΅y<CE85>Ά i,
c, f(o), d, h, ηβ® α®®βΆ¥βαβΆy¥β δ«ν©Ά®py ―®ηβλ -- immediate, crash,
normal, direct ¨ hold. ”«ν©Ά®p "normal" ¤«ο «®θ¥<CEB8>, α®®βΆ¥βαβΆ¥­­®,
ᨬΆ®«¨§¨py¥βαο p αθ¨p¥­¨¥¬ ".flo",   ¤«ο ― <E28095>¥β®Ά -- ".out".
.req -- ―®­οβ­®, α―¨α®<CEB1> δ ©«®Ά ¤«ο δp¥<70> . H  <20> ¦¤®© αβp®<70>¥:
"filename_!password", £¤¥ password, ®η¥Ά¨¤­®, ― p®«μ,   `_' -- ―p®΅¥«.
;) <20>­ ―¥p¥¤ ¥βαο Ά® Άp¥¬ο ―®ηβ®Ά®© α¥αᨨ ­  «¥­­yξ ¬ θ¨­y, βyβ ¦¥
®΅p ΅ βλΆ ¥βαο ¨ ―p®αλ― ¥βαο ­ § ¤ §®«®βλ¬ ¤®¦¤¥¬ ¨§ δ ©«®Ά. :-/
xxxxyyyy.bsy -- νβ® δ« £ § ­οβ®αβ¨. „®«¦¥­ ΅λβμ ®΅ο§ β¥«μ­® ᮧ¤ ­ ―¥p¥¤
«ξ΅®© ®―¥p ζ¨¥© α δ ©« ¬¨ xxxxyyyy.*
.pnt -- νβ® ¤¨p¥<70>β®p¨ο, Ά <20>®β®pyξ <20>« ¤¥βαο ―®ηβ  ¤«ο ―®¨­β®Ά ¤ ­­®£®
y§« . ” ©«λ Ά ­¥© ¤®«¦­λ ¨¬¥βμ ¨¬¥βμ Ά <20> η¥αβΆ¥ ¨¬¥­¨ θ¥αβ­ ¤ζ β¥p¨η­λ©
­®¬¥p ―®¨­β , ¤®―®«­¥­­λ© ¤® Ά®α쬨 ᨬΆ®«®Ά ­ο¬¨, ¨ ®¤­® ¨§
p αθ¨p¥­¨© -- ?lo, ?ut, req ¨ bsy.
…᫨ βp¥΅y¥βαο ―®α« βμ ―®ηβy Ά ¤py£yξ §®­y, ⮠ᮧ¤ ¥βαο <20> β «®£ α ¨¬¥­¥¬
<EFBFBD> <EFBFBD> y ΅ §®Ά®£® outbound-  ¨ p αθ¨p¥­¨¥¬ Ά¨¤  .xxx, £¤¥ .xxx --
θ¥αβ­ ¤ζ β¥p¨η­λ© ­®¬¥p §®­λ ­ §­ η¥­¨ο.
„«ο ―®αλ«<CEBB>¨ ―®ηβλ Ά α¥βμ α ¤py£¨¬ ¤®¬¥­®¬ Ά β®© ¦¥ ¤¨p¥<70>β®p¨¨ £¤¥ «¥¦¨β ­ θ
΅ §®Άλ© outbound ¨ outbound-λ α®α¥¤­¨ε §®­ ᮧ¤ ¥βαο <20> β «®£ Ά¨¤ 
"domain.xxx", £¤¥ xxx, <20> <EFBFBD> ®΅λη­®, ­®¬¥p §®­λ Ά α¥β¨ α ¤®¬¥­®¬ "domain".
H ―p¨¬¥p, ¥α«¨ Ά θ ®α­®Ά­®© outbound «¥¦¨β Ά <20> β «®£¥ c:\BBS\outbound, β®
δp¥<EFBFBD> ­  y§¥« 4:3/2.1@Testnet ®<> ¦¥βαο Ά δ ©«¥ α ¨¬¥­¥¬
c:\BBS\Testnet.004\00030002.pnt\00000001.req
A: b) (DtZ)
<EFBFBD>« αα¨η¥α<EFBFBD> ο ®¤­®§®­®Ά ο α奬 : outbound ®΅®§­ η¨¬ §  %OUT%. “ νβ®©
¤¨p¥<EFBFBD>β®p¨¨ ­¥β p αθ¨p¥­¨ο.
* <20>―p¥¤¥«¥­¨¥. CTL-file - νβ® α―¨α®<CEB1> δ ©«®Ά (<28> <EFBFBD> ―p Ά¨«®,  p<C2A0>¬¥©«  ¨
*  ββ η¥©), <20>®β®pλ¥ ­ ¤® ―®α« βμ ―®«yη β¥«ξ. (®β¤¥«μ­® ᬮβp¨ ―p® ­¥β¬¥©«)
„«ο ­®¤λ, ¨¬ο CTL-file (%04H%04H.%clo) net,node,flavour (β¥, ¤«ο Crash
5020/730 139C02DA.CLO).
„«ο ―®¨­β , (%04H%04H.PNT\%08H.%clo) net,node,point,flavour (¤«ο Hold
5020/730.43 139C02DA.PNT\0000002B.HLO).
®¤¥p¦¨¬®¥ CTLFile:
<modifyer><¨¬ο-δ ©« -¤«ο-―®α« βμ>\n
<modifyer> (®―樮­ «μ­®): ^ - KillSend, # - Truncuate Send
<EFBFBD>p¨¬¥p: ­  ―®¨­β  § ε®«¤ ­® ¤Ά  ν宬¥©«®Άλε ΅ ­¤« ,  ββ η¥­­λ© δ ©« ¨
 ββ ημ (―p® ­¥β¬¥©« Ά ®΅ι¥¬ α«yη ¥ ᬮβp¨ ¤ «¥¥, ­® ¬¥αα £¨- ββ η¨
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD> ―®¬¥ι βμ Ά CTL δ ©«).
#E:\HOST\OUT\89098354.MO0
#E:\HOST\OUT\89098354.MO1
C:\CONFIG.SYS
^E:\HOST\OUT\13FE0065.PKT
„®―yαβ¨¬λ¥ ”«¥©Ά®pλ:
H)old C)rash I)mmidate D)irect F) normal (notice: .flo, not .nlo)
H…<EFBFBD><EFBFBD>
<EFBFBD>¬ο ­¥β¬¥©«®Ά®£® .PKT δ ©«  δ®p¬¨py¥βαο ―® ⥬ ¦¥ ―p¨­ζ¨― ¬, ­® ¨¬¥¥β
p αθ¨p¥­¨¥ .%cUT Flavour (β®«μ<C2AB>® Ά normal β¥―¥pμ ΅y¤¥β ΅y<CE85>®Ά<C2AE>  O - β¥ ,
normal ­¥β¬¥©« ¨¬¥¥β p αθ¨p¥­¨¥ .OUT).
H¥β¬¥©«, «¥¦ ι¨© Ά  yβ΅ y­¤¥ β <CEB2>¨¬ ®΅p §®¬, H… <20><><EFBFBD>€—…H - β¥ Ά CTLfile
¥£® ―¨α βμ H… H€„<E282AC>. H¥β¬¥©« ―p¨ α¥αᨨ ―¥p¥¨¬¥­®ΆλΆ ¥βαο Ά .PKT ¬¥©«¥p®¬.
”€‰‹-<2D><EFBFBD>
”®p¬¨pyξβαο ―® ⮬y ¦¥ ―p¨­ζ¨―y, ¨¬¥ξβ p αθ¨p¥­¨¥ .REQ. ―p¨­ζ¨―¥ ­¥
―p¨ ββ η¥­λ (ε®βο Ά BrakyTerme, ­ ―p¨¬¥p, νβ® ­¥ β <CEB2>, ο §­ ξ, ηβ® νβ®
­¥―p Ά¨«μ­®). ”«¥©Ά®p Ά Bink #23 ΅λ« Άα¥£¤  ®―p¥¤¥«¥­ <20> <EFBFBD> Normal. „ «¥¥, Ά
΅®«¥¥ ―®§¤­¨ε BT+ - αη¨β ¥βαο ηβ® .REQ ­¥ ―®Ά®¤ ηβ®΅λ §Ά®­¨βμ ¨ ―p¨
<EFBFBD>Ά¥αβ¥ ­ ¤® ᮧ¤ Ά βμ ―yαβ®© CTL δ ©« α ­­λ¬ δ«¥©Ά®p®¬.
”®p¬ β .Req δ ©« :
<<3C><><EFBFBD>_”€‰€>\n
<<3C><><EFBFBD>_”€‰€>\n
¨ β.¤.
yι¥αβΆ¥­­®: ΅λΆ ξβ α p®«ο¬¨, ―¨θyβαο ¤«ο <20> ¦¤®£® δ ©«  η¥p¥§ ®¤¨­ ―p®΅¥«
¨ !, <20> <EFBFBD> ―p Ά¨«®, Case Sensitive.
yι¥αβΆ¥­­®: ΅λΆ ξβ ¥ι¥ Update Requestλ. <20>΅p β¨β¥αμ <20><70>®¬¥­¤®Ά ­­®©
«¨β¥p βyp¥. H ¬¥<C2AC>: Update Requestλ ¥ι¥ ¨ α p®«ο¬¨ ΅λΆ ξβ :-)
<EFBFBD>α®΅¥­­®αβμ: Ά ―p¨­ζ¨―¥, ―® Bark (¥α«¨ ο ­¥ ®θ¨΅ ξαμ) δ ©«p¥<70>Ά¥αβ ¬ p¥<70>Ά¥αβ
―p¨ ―®αλ« ­¨¨ ¤®«¦¥­ ¨¬¥βμ ¨¬ο <net><node>.REQ. „«ο ―®¨­β  - ΅  <C2A4>. <20>
®΅p ΅®β<EFBFBD>¥ Άε®¤οι¥£® δp¥<70>  ο ΅λ ®΅p ΅ βλΆ « _Άα¥_ ―p¨θ¥¤θ¨¥ .REQ δ ©«λ, ­®
¬­®£® α®δβ  β <CEB2> ­¥ ―®αβy― ¥β. The Brake! Ά®®΅ι¥ <20>®­δ¨£yp ΅¥«μ­®.
<EFBFBD>H<EFBFBD>ƒ<EFBFBD><>H
<EFBFBD>p®¬¥ Default OutBound, §®­  <20>®β®p®© (―®ηβ¨?) Άα¥£¤  α®Ά― ¤ ¥β α Main Aka
<EFBFBD>¥©«¥p , β®αα¥p  ¨ ­¥β¬¥©«― <E28095>¥p , αyι¥αβΆyξβ Outbound ¤«ο ¤py£¨ε §®­, ¨¬ο
<EFBFBD>®β®pλε - ¤¨p¥<70>β®p¨ο α p αθ¨p¥­¨¥¬, ­ ―p¨¬¥p %OUT%.38D ( yβ΅ y­¤ ¤«ο §®­λ
909)
<EFBFBD>H<EFBFBD>ƒ<EFBFBD><><E2809E>…H<E280A6>
OutBoundλ ¨¬¥ξβ p §­λ¥ ­ §Ά ­¨ο.
.BSY ”€‰‹›
‘®§¤ ξβαο β®αα¥p®¬/¬¥©«¥p®¬/― <E28095>¥p®¬/«ξ΅λ¬ ¤py£¨¬ § ¨­β¥p¥α®Ά ­­λ¬ α®δ⮬,
p ΅®β ξ騬 Ά ¤ ­­λ© ¬®¬¥­β α  ¤p¥α®¬ ―® ®―¨α ­­®¬y ¤«ο CTL ―p¨­ζ¨―y α
p αθ¨p¥­¨¥¬ .BSY. …᫨ αyι¥αβΆy¥β .BSY δ« £ - ®΅ι βμαο α CTL ¨«¨ ­¥β¬¥©«®¬
§ ―p¥ι ¥βαο _ᮢᥬ_. H ―p¨¬¥p, ¥α«¨ ¬¥©«¥p ―®α«¥ ―p®ε®¦¤¥­¨ο EMSI Άλοα­¨β,
ηβ® ®¤­  ¨§ AKA § ­οβλ, α⮨β pΆ βμ α¥αα¨ξ (  ­¥ β®«μ<C2AB>® exclude aka, ε®βο
­  νβy ⥬y ¬®¦­® ¨ ―®α―®p¨βμ).
•®p®θ¨© β®­ - αβ Ά¨βμ α¥<CEB1>y­¤λ y .BSY δ ©«  Ά ­®¬¥p «¨­¨¨ ¥¥ ᮧ¤ Άθ¥©.
<EFBFBD>y«μβyp­λ©  «£®p¨β¬ ᮧ¤ ­¨ο .BSY: ᮧ¤ βμ δ ©« α p αθ¨p¥­¨¥¬ .%X03X
­®¬¥p «¨­¨¨ ¨ ―®―λβ βμαο ―¥p¥¨¬¥­®Ά βμ Ά .BSY. …᫨ ―®α«¥ ν⮣® δ ©« .%X03X
­®¬¥p «¨­¨¨ ―p®¤®«¦ ¥β αyι¥αβΆ®Ά βμ - αβ¥p¥βμ ¥£® ¨ αη¨β βμ, ηβ®  ¤p¥α
§ ­οβ.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>… ”€‰‹›
‡ Ά¨α¨β ®α α®δβ . Bink ᮧ¤ ¥β .$$$ (¨«¨ <20> <EFBFBD> β ¬?) α ¨­δ®p¬ ζ¨¥© α
Call/Session, The Brake! ᮧ¤ ¥β .TRY α ¨­δ®p¬ ζ¨¥© ® ―®α«¥¤­¥¬ <20>®­­¥<C2AD>β¥,
BrakyTerm (΅y¤¥β) ᮧ¤ Ά βμ .%cRQ Flavour - p¥<70>Ά¥αβλ ¤«ο p¥<70>Ά¥αβ p¥<70> Ά¥p 
¨ β.¤.
A: c) (PG)
®βΆ¥β¥ ­  νβ®β Ά®―p®α ¥αβμ ­¥α<C2A5>®«μ<C2AB>® ―p®β¨Ά®p¥η¨©, αΆο§ ­­λε α ⥬, ηβ®
p¥£¨αβp ΅y<CE85>Ά Ά ¨¬¥­ ε δ ©«®Ά ­¥ Άα¥£¤  ¨£­®p¨py¥βαο, ¨ δ ©«λ *.CUT ¨
*.cut - νβ® p §­λ¥ δ ©«λ Ά ®΅ι¥¬ α«yη ¥. H α<C2A0>®«μ<C2AB>® ο §­ ξ, ¤«ο ¬ <C2AC>ᨬ «μ­®©
α®Ά¬¥α⨬®αβ¨ Ά β <CEB2>®© α¨βy ζ¨¨ Άα¥£¤  «yηθ¥ ¨α―®«μ§®Ά βμ ―p¨ ᮧ¤ ­¨¨
δ ©«®Ά ᨬΆ®«λ ­¨¦­¥£® p¥£¨αβp ,   ―p¨ ηβ¥­¨¨ ¨α<C2A8> βμ Άα¥ Ά®§¬®¦­λ¥ Ά  ­βλ
(­ ―p¨¬¥p, regexp ".*\.[Cc][Ll][Oo]"). •®βο ¤ «¥<C2AB>® ­¥ Ά¥αμ α®δβ
―p¨¤¥p¦¨Ά ¥βαο νβ¨ε ―p Ά¨«, η⮠ᮧ¤ ¥β ®―p¥¤¥«¥­­λ¥ ―p®΅«¥¬λ.
/------/
>[27] Q: —¥¬ ®β«¨η ¥βαο ZModem ®β DirZap ®β ZedZap?
A: a) (st)
1) zmodem - ΅¥p¥¬ <20> <EFBFBD> ΅ §y ;)
2) ZedZap - ¬ <C2AC>ᨬ «μ­λ© p §¬¥p ΅«®<C2AB>  yΆ¥«¨η¥­ α 1<> ¤® 8<>,   β <CEB2>¦¥ ®­
¤¨­ ¬¨η¥α<EFBFBD>¨ ¬¥­ο¥βαο Ά® Άp¥¬ο ¥§¤λ
3) DirZap - ZedZap, Ά <20>®β®p®¬ ―p¨ ―¥p¥¤ η¥ να<CEBD>¥©―¨βαο β®«μ<C2AB>® ®¤¨­ ΅ ©β -
DLE, β® ¥αβμ ­¥ ¥α<C2A5>¥©―οβαο xon, xof, xon|0x80, xof|0x80, cr (―®α«¥ α®΅ <CE85>¨)
A: b) (JG)
Zmodem - ΅«®<C2AB>¨ ¤® 1k, ZedZap ¤® 8K, DirZap - ZedZap ΅¥§ <20>Ά®β¨­£ 
y―p.ᨬΆ®«®Ά. ‚®β β <CEB2>:
void ZMOSendByte( register byte c )
{
static byte lastsent( 0 );
switch( c )
{
case 015:
case 0215:
if( (lastsent & 0x7F) != '@' )
goto SendIt;
case 021:
case 023:
case 0221:
case 0223:
case 020:
case 0220:
case ZDLE|0x80:
if( waZooType==DirZap )
goto SendIt;
case ZDLE:
comPort->bufferByte( ZDLE );
c ^= 0x40;
default:
SendIt:
comPort->bufferByte( lastsent = c );
}
}
/------/
>[28] Q: <20> <EFBFBD> <20>®pp¥<70>β­® y¤ «¨βμ ―¨α쬮 Ά JAM-΅ §¥?
A: (TT)
1) <20>®¬¥η ¥θμ ―¨α쬮 <20> <EFBFBD> «¥­­®¥ (yαβ ­®Ά¨ ΅¨β MSG_DELETED Ά § £®«®Ά<C2AE>¥);
2) y¤ «ο¥θμ α®®΅ι¥­¨¥ ¨§ reply-chain; 3) yΆ¥«¨η¨Ά ¥θμ ­  1 αη¥βη¨<CEB7>
modcounter.
<EFBFBD>®¬¬¥­β p¨© <20> 2): ααλ«<CEBB>¨ ­  ¤ ­­®¥ α®®΅ι¥­¨¥ ¬®£yβ ­ ε®¤¨βαο Ά:
- ζ¥―®η<C2AE>¥ ®βΆ¥β®Ά ­  ­¥£® - ―p®Ά¥pμ ―®«¥ Reply1st ¨ ¥α«¨ β ¬ ­¥ 0, β®
―p®©¤¨αμ ―® ζ¥―®η<C2AE>¥ ReplyNext ¨ ®΅­ο© ReplyTo;
- ―p¥¤λ¤y饬 ν«¥¬¥­β¥ Ά ζ¥―®η<C2AE>¥ ®βΆ¥β®Ά - ―p®Ά¥pμ ―®«¥ ReplyTo ¨ ¥α«¨
β ¬ ­¥ 0, β® νβ® ααλ«<CEBB>  ­  ¨α室­®¥ α®®΅ι¥­¨¥. <20>p®©¤¨ ®β ¨α室­®£®
α®®΅ι¥­¨ο (―®«¥ Reply1st) ―® ζ¥―®η<C2AE>¥ ®βΆ¥β®Ά (―®«ο ReplyNext) ¨ y¤ «¨
¤ ­­®¥ α®®΅ι¥­¨¥ ¨§ ζ¥―®η<C2AE>¨. “ηβ¨, ηβ® ¤ ­­®¥ α®®΅ι¥­¨¥ ¬®¦¥β ΅λβμ
―¥pΆλ¬ Ά ζ¥―®η<C2AE>¥ ®βΆ¥β®Ά.
- ¥α«¨ Ά ―®«¥ ReplyTo ­¥ 0, ¨ α®®΅ι¥­¨¥, ­  <20>®β®p®¥ ®­® y<> §λΆ ¥β, Ά
―®«¥ Reply1st ᮤ¥p¦¨β 0, β® νβ® - «¨­<C2A8>®Ά<C2AE>  ―® ―®«ξ subject (y⨫¨β 
JAM-LINK ¨«¨  ­ «®£¨η­ ο) ¨ ­¥®΅ε®¤¨¬® ¨α<C2A8>«ξη¨βμ ¤ ­­®¥ α®®΅ι¥­¨¥ ¨§
ζ¥―®η<C2AE>¨, αΆο§ ­­®© ―®«ο¬¨ ReplyTo (Ά ¬¥­μθyξ αβ®p®­y) ¨ ReplyNext (Ά
΅®«μθyξ).
€ ¬®¦­® - ¥α«¨ νβ® ­¥ p¥¤ <C2A4>β®p ―¨α¥¬ - ―p®αβ® ®η¨αβ¨βμ Άα¥-Άα¥ Reply-―®«ο.
FEUTIL β <CEB2> ¨ ¤¥« ¥β. ―p¨­ζ¨―¥ ¬®¦­® ¤ ¦¥ Ά®®΅ι¥ ­¨η¥£® ­¥ ¤¥« βμ -
―p®£p ¬¬  «¨­<C2A8>®Ά<C2AE>¨ α ¬  p §΅¥p¥βαο,   ®αβ «μ­λ¬ νβ® ­¥ ¤®«¦­® ΅λβμ
αyι¥αβΆ¥­­®.
H¥΅¥§λ§Ά¥αβ­λ© GoldED ¬®¦¥β p ΅®β βμ Ά p¥¦¨¬¥ "Hard Delete", ζ¨β¨pyξ
¤®<EFBFBD>y¬¥­β ζ¨ξ:
JAMHARDDELETE <yes/no> (no)
The default setting makes GoldED conform to the JAMAPI specs when
deleting msgs in JAM msgbases. This means that deleted msgs are only
marked as such in the message header, not in the index. As a result,
GoldED will find and display the deleted msgs until you run a message
pack utility to physically remove the deleted msgs.
If JAMHARDDELETE is set to Yes, GoldED will zap the reference to the
message in the index when deleting msgs. This way the deleted msgs
will not show up again later. The drawback of this approach is that it
is hard to undelete msgs, and may break other software which assume
100% to-the-letter conformance to the specs. Note however, that the
hard-delete method is transparent to normal use of JAM msgbases.
Probably the only software that might break are undelete utilities.
For the techies and programmers, the hard-delete method is simply
setting both UserCRC and HdrOffset in the index to 0xFFFFFFFF
instead of only the UserCRC. According to the JAMAPI specs, a value of
0xFFFFFFFF in HdrOffset means that "there is no corresponding
message header". Sounds remarkably like a deleted msg, right? :-)
<EFBFBD>η¥Ά¨¤­®, ¥α«¨ ¨α―®«μ§y¥βαο β <CEB2>®© ¬¥β®¤, β® ¤®―®«­¨β¥«μ­®: 4) y¬¥­μθ ¥θμ ­ 
1 αη¥βη¨<CEB7> activemsgs; 5) <20>®pp¥<70>β¨py¥θμ ―p¨ ­¥®΅ε®¤¨¬®αβ¨ (¥α«¨ βλ y¤ «ο¥θμ
α®®΅ι¥­¨¥ α β <CEB2>¨¬ ­®¬¥p®¬) basemsgnum.
<EFBFBD>®¬¬¥­β p¨© <20> 5): α®®΅ι¥­¨¥ α lowest message number α®Ά¥p¥θ¥­­® ­¥
®΅ο§ β¥«μ­® ΅y¤¥β ―¥pΆλ¬ - ᬮβp¨ p §¤¥« "Updating message headers". <20>,
p §y¬¥¥βαο, ­®Άλ© basemsgnum ­¥ ΅y¤¥β p Ά¥­ αβ p®¬y ―«ξα 1.
>[29] Q: ƒ¤¥ ®―¨α ­λ δ®p¬ βλ TIC-δ ©«®Ά
A:
FSC-0087
/------/
>[30] Q: Hy¦¥­ <20>®¤ ¤«ο ―p¥®΅p §®Ά ­¨ο ¤ βλ ¨ Άp¥¬¥­¨ Ά/¨§ unix-δ®p¬ β .
A: (st)
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _
O \
/*
* Convert MSDOS file timestamp to/from UNIX time, portable
* NOTE: no timezone conversions here!
*
* This code is in public domain.
*
* Written by serge terekhov (2:5000/13@fidonet)
*
*/
/*
* This module gives you two simple entries:
*/
unsigned long ToUnixTime (void *dostime);
void FromUnixTime (unsigned long unix, void *ret);
/*
* MS-DOS file timestamp structure, used as reference and in TEST
*/
struct ftime {
/* least significant bits in a double word goes first! */
unsigned sec : 5; /* 0 Seconds / 2 */
unsigned min : 6; /* 5 Minutes */
unsigned hour : 5; /* 11 Hours */
unsigned day : 5; /* 16 Days */
unsigned month : 4; /* 21 Months */
unsigned year : 7; /* 25 Year - 1980 */
};
/*
* Table for years 1979-2078
*/
#define YEARS 100
#define BASE 1979
static unsigned _year_day[] = {
3345u, 3711u, 4076u, 4441u, 4806u, 5172u, 5537u, 5902u,
6267u, 6633u, 6998u, 7363u, 7728u, 8094u, 8459u, 8824u,
9189u, 9555u, 9920u, 10285u, 10650u, 11016u, 11381u, 11746u,
12111u, 12477u, 12842u, 13207u, 13572u, 13938u, 14303u, 14668u,
15033u, 15399u, 15764u, 16129u, 16494u, 16860u, 17225u, 17590u,
17955u, 18321u, 18686u, 19051u, 19416u, 19782u, 20147u, 20512u,
20877u, 21243u, 21608u, 21973u, 22338u, 22704u, 23069u, 23434u,
23799u, 24165u, 24530u, 24895u, 25260u, 25626u, 25991u, 26356u,
26721u, 27087u, 27452u, 27817u, 28182u, 28548u, 28913u, 29278u,
29643u, 30009u, 30374u, 30739u, 31104u, 31470u, 31835u, 32200u,
32565u, 32931u, 33296u, 33661u, 34026u, 34392u, 34757u, 35122u,
35487u, 35853u, 36218u, 36583u, 36948u, 37314u, 37679u, 38044u,
38409u, 38775u, 39140u, 39505u };
static unsigned _month_day[] = {
0, 31, 61, 92,122,153,184,214,245,275,306,337
};
#define DOS ((unsigned char*)dos)
unsigned long ToUnixTime (void *dos)
{
unsigned lo = ((unsigned)(DOS[1]) << 8) | DOS[0];
unsigned hi = ((unsigned)(DOS[3]) << 8) | DOS[2];
unsigned y = ((hi >> 9) & 0x7f) + (1980 - BASE);
unsigned m = (hi >> 5) & 0xf;
if (m < 3) {
--y;
m += 12;
}
if (y >= YEARS)
y = YEARS - 1; /* Foolproof: if we wanna unknown year */
return
86400ul * (_month_day[m - 3] + _year_day[y] + (hi & 0x1f)) +
3600ul * ((lo >> 11) & 0x1f) +
60 * ((lo >> 5) & 0x3f) +
2 * (lo & 0x1f);
}
static int binary_search (unsigned *data, unsigned datum, int num)
{
int i, off = 0;
while (num > 0) {
i = num >> 1;
if (datum == data[i + off])
return (i + off);
if (datum < data[i + off])
num = i;
else {
off += i + 1;
num -= i + 1;
}
}
return off;
}
void FromUnixTime (unsigned long unix, void *dos)
{
unsigned long ret = 0;
unsigned date = (unsigned)(unix / 86400ul);
/* can't convert dates before 1980 or after last known year */
if (date >= _year_day[0] && date <= _year_day[YEARS - 1]) {
unsigned y, m;
y = binary_search (_year_day, date, YEARS);
date -= _year_day[--y];
m = binary_search (_month_day, date, 12);
date -= _month_day[--m];
if ((m += 3) > 12) {
m -= 12;
++y;
}
/* merge year/month/date word in DOS format */
date |= ((y - (1980 - BASE)) << 9) + (m << 5);
unix %= 86400ul;
m = (unsigned) (unix % 3600);
ret = ((unsigned long)date << 16) +
((unix / 3600) << 11) +
((m / 60) << 5) +
((m % 60) >> 1);
}
DOS[0] = (unsigned char)(ret);
DOS[1] = (unsigned char)(ret >> 8);
DOS[2] = (unsigned char)(ret >> 16);
DOS[3] = (unsigned char)(ret >> 24);
}
#ifdef TEST
#include <stdio.h>
#include <dir.h>
void main (int argc, char **argv)
{
struct ftime ft;
struct ffblk ff;
long tt;
if (argc == 2) {
if (!findfirst (argv[1], &ff, -1)) {
printf ("DOS %08lx\n", *(long *)&ff.ff_ftime);
tt = ToUnixTime (&ff.ff_ftime);
printf ("UNIX %08lx\n", tt);
FromUnixTime (tt, &ft);
printf ("DOS %08lx\n", *(unsigned long *)&ft);
printf ("%u/%u/%u %u:%u:%u\n", ft.month, ft.day, ft.year + 1980,
ft.hour, ft.min, ft.sec << 1);
}
}
}
#endif
_ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _
O \
[ THE END ]