home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c / lux80.jar < prev    next >
Text File  |  2020-01-01  |  172KB  |  6,010 lines

  1. This file, LUX80.JAR, is a "join archive".  It contains the following
  2. files for Luxor ABC80 Kermit:
  3.  
  4. kerm.asm
  5. kerm.doc
  6. kerm.hex
  7. kerm.inf
  8. kerm.txt
  9. kerm1.asm
  10. kerm2.asm
  11. kerm3.asm
  12. kerm4.asm
  13. kerm5.asm
  14. kerm6.asm
  15. kerm7.asm
  16. kermasm.inf
  17. kermdump.bas
  18. kermdump.inf
  19. kermquit.bas
  20.  
  21. See kerm.doc for English-language documentation.  All other commentary is
  22. in Swedish, written in the 7-bit Swedish National Replacement Character
  23. Set (Swedish ASCII).  You can view the correct Swedish characters by using
  24. a Swedish terminal, the Swedish NRC on a DEC VT200, 300, or 400 terminal,
  25. or SET TERMINAL CHARACTER SET SWEDISH in MS-DOS Kermit 3.0 on an IBM PC or
  26. compatible.
  27.  
  28. Each file begins with a line having the filename enclosed in triple angle
  29. brackets, for example <<< kerm.doc >>>.  All the lines up to the next
  30. <<< filename >>> line are the contents of the file.  You can break up this 
  31. "jar" file into its consituent files using a text editor, or with a program 
  32. like the following one, which is written in the C language.  If you call this
  33. program "unjoin" and you have a "jar" file called foo.jar, then you would
  34. break up the jar file by typing "unjoin < foo.jar".
  35. ---(cut here)---------------------------
  36. /* unjoin -- Split a "jar file" up into its original component files.  */
  37. /* The jar file is read from standard input.  */
  38. /*
  39. /* This program can be used on UNIX systems, and with Microsoft C */
  40. /*
  41. /* Authors: F. da Cruz, C. Gianone, Columbia University, 1988 */
  42.  
  43. #include <stdio.h>
  44.  
  45. int files = 0;
  46. FILE *fd;
  47. char *name;
  48. #define BUFLEN 1000
  49. char buf[BUFLEN];
  50. char msg[100];
  51.  
  52. main() {
  53.     while(1) {
  54.     if (gets(buf) == NULL) doexit(0);
  55.     if (chkhdr()) {
  56.         if (files > 0) fclose(fd);
  57.         if ((fd = fopen(name,"w")) == NULL) {
  58.         sprintf(msg,"Fatal - Can't create %s",name);
  59.         perror(msg);
  60.         doexit(1);
  61.         } else files++;
  62.     } else {
  63.         if (files == 0) {
  64.         fprintf(stderr,"Fatal - not a joined file!\n");
  65.         doexit(1);
  66.         } else {
  67.         fprintf(fd,"%s\n",buf);
  68.         }
  69.     }
  70.     }
  71. }
  72.  
  73. chkhdr() {                /* Look for "<<< filename >>>" */
  74.     int i;
  75.  
  76.     if (buf[0] != '<') return(0);
  77.     if (buf[1] != '<') return(0);    
  78.     if (buf[2] != '<') return(0);
  79.     if (buf[3] != ' ') return(0);
  80.     for (i = 4; (buf[i] != '\0') && (i < BUFLEN); i++) ;
  81.     if (buf[i-1] != '>') return(0);
  82.     if (buf[i-2] != '>') return(0);
  83.     if (buf[i-3] != '>') return(0);
  84.     if (buf[i-4] != ' ') return(0);
  85.     buf[i-4] = '\0';
  86.     name = buf+4;
  87.     return;
  88. }
  89.  
  90. doexit(x) int x; {            /* Exit from program */
  91.     if (files > 0) fclose(fd);
  92.     fprintf(stderr,
  93.         "Done, unjoined %d file%c\n",files,(files == 1) ? ' ' : 's');
  94.     exit(x);
  95. }
  96. ---(cut here)---------------------------
  97.  
  98. The ".hex" files listed above are binary files encoded in hexadecimal: 2 hex
  99. characters represent one 8-bit binary byte.  Line breaks should be ignored.
  100. Here is a C program to translate a hex file back into a binary file:
  101.  
  102. ---(cut here)---------------------------
  103. /*  UNHEX.C - Program to translate a hex file from standard input
  104.  *  into an 8-bit binary file on standard output.
  105.  *  Usage: unhex < foo.hex > foo.exe
  106.  *  Christine M. Gianone, CUCCA, October 1986.
  107.  *  Modified Aug 89 to work right with Microsoft C on the PC.
  108.  */
  109.  
  110. #include <stdio.h>            /* Include this for EOF symbol */
  111. #ifdef MSDOS
  112. #include <fcntl.h>            /* For MS-DOS setmode() symbol */
  113. #endif
  114.  
  115. unsigned char a, b;            /* High and low hex nibbles */
  116. unsigned int c;                /* Character to translate them into */
  117. unsigned char decode();            /* Function to decode them  */
  118.  
  119. /* Main program reads each hex digit pair and outputs the 8-bit byte. */
  120.  
  121. main() {
  122. #ifdef MSDOS
  123.     setmode(fileno(stdout),O_BINARY); /* To avoid DOS text-mode conversions */
  124. #endif
  125.     while ((c = getchar()) != EOF) {    /* Read first hex digit */
  126.     a = c;                /* Convert to character */
  127.         if (a == '\n') {        /* Ignore line terminators */
  128.             continue;
  129.     }
  130.     if (a == '\r') {
  131.         fprintf(stderr,"Illegal Carriage Return\n");
  132.         exit(1);
  133.     }
  134.     if ((c = getchar()) == EOF) {    /* Read second hex digit */
  135.         fprintf(stderr,"File ends prematurely\n");
  136.         exit(1);
  137.     }
  138.     b = c;                /* Convert to character */
  139.     putchar( ((decode(a) * 16) & 0xF0) + (decode(b) & 0xF) );
  140.     }
  141.     exit(0);                /* Done */
  142. }
  143.  
  144. unsigned char
  145. decode(x) char x; {              /* Function to decode a hex character */
  146.     if (x >= '0' && x <= '9')         /* 0-9 is offset by hex 30 */
  147.       return (x - 0x30);
  148.     else if (x >= 'A' && x <= 'F')    /* A-F offset by hex 37 */
  149.       return(x - 0x37);
  150.     else {                            /* Otherwise, an illegal hex digit */
  151.         fprintf(stderr,"\nInput is not in legal hex format\n");
  152.         exit(1);
  153.     }
  154. }
  155. ---(cut here)---------------------------
  156. <<< kerm.asm >>>
  157. ; KERM.ASM
  158. ; Anders Franz`n <5258>
  159. ; Stockholm 1987-08-24
  160.  
  161.          TITLE Kerm
  162.          OBJ  2
  163.          SAVE DR1:KERM.BAC
  164.  
  165. PGM      EQU  193:0     Adress f|r pgm
  166. STACK    EQU  249:0     SP f|r KERM
  167. SPACE    EQU  34:74     Space i ROM
  168.  
  169. BUFF1    EQU  244:0     Terminaldata
  170. BUFF2    EQU  250:0     Tangenttryck
  171. BUFF3    EQU  249:0     Mottagen packet
  172. BUFF4    EQU  249:128   Packet att s{nda
  173. BUFF5    EQU  247:0     Data i packet
  174. BUFF6    EQU  251:0     Kommando Kermit
  175. BUFF7    EQU  251:50    Radbuffer filer
  176. BUFFTED  EQU  254:64
  177.  
  178.          INCLUDE KERM1
  179.          INCLUDE KERM2
  180.          INCLUDE KERM3
  181.          INCLUDE KERM4
  182.          INCLUDE KERM5
  183.          INCLUDE KERM6
  184.          INCLUDE KERM7
  185.  
  186. SLUT     END  START
  187. <<< kerm.doc >>>
  188. Luxor ABC80 KERMIT
  189.  
  190.  
  191. Program:        Anders Franz`n
  192.  
  193. ABC-Club        "ABC-Klubben", Stockholm, Sweden, a computer club.
  194.                 The name is in english the ABC-Club.
  195.  
  196.                 The ABC-Club was founded 1979 as a user group in Sweden for
  197.                 the Luxor ABC 8 bits microcomputers.
  198.  
  199.                 Today, Nokia has taken over Luxor and Nokia sells IBM
  200.                 compatible PC:s. The club has today a lot of members that
  201.                 use PC:s and other modern computers. The aim of the ABC-Club
  202.                 is today to be a user group for the old Luxor ABC computer
  203.                 users and PC users in Sweden.
  204.  
  205. Language:       All routines in assembler Zilog Z80
  206.  
  207. Documentation:  Anders Franz`n
  208.  
  209. Version:        1.0
  210.  
  211. Date:           Sept 24, 1987
  212.  
  213.  
  214. KERM ABC80 Kermit Capabilities At A Glance:
  215.  
  216.   Local operation:                   Yes
  217.   Remote operation:                  No
  218.   Transfers text files:              Yes
  219.   Transfers binary files:            Yes
  220.   Wildcard send:                     Yes
  221.   ^X/^Y interruption:                Yes
  222.   Filename collision avoidance:      Yes
  223.   Can time out:                      Yes
  224.   8th-bit prefixing:                 Yes
  225.   Repeat count prefixing:            Yes
  226.   Alternate block checks:            Yes
  227.   Terminal emulation:                No
  228.   Communication settings:            Yes
  229.   Transmit BREAK:                    No
  230.   IBM mainframe communication:       No
  231.   Transaction logging:               No
  232.   Session logging:                   No
  233.   Raw transmit:                      Yes
  234.   Act as server:                     No
  235.   Talk to server:                    No
  236.   Advanced server functions:         No
  237.   Advanced commands for servers:     No
  238.   Local file management:             No
  239.   Command/init files:                No
  240.   Command macros:                    No
  241.   Attribute packets:                 No
  242.   Extended-length packets:           No
  243.   Sliding windows:                   No
  244.  
  245.  
  246. KERM is a program that implements the Kermit file transfer protocol
  247. for the Luxor ABC80. The computer use the Zilog Z80 processor and
  248. has a proprietary operating system called ABC-DOS. The computer had
  249. a big market share in Sweden before the age of the IBM PC. They were
  250. also sold in the other nordic countries and to a lesser extent in the
  251. rest of Europe.
  252.  
  253.  
  254.  
  255.  
  256. Program Invocation
  257.  
  258. The KERM.BAC is the main program. Start the program with the BASIC
  259. command "RUN KERM". All the text in the program is in english.
  260.  
  261.  
  262.  
  263.  
  264. Terminal Emulation
  265.  
  266. The characters you type are sent out the port, and characters that
  267. arrive at the port are displayed on your screen.
  268.  
  269.  
  270. Installation of KERM
  271.  
  272. If you already have Kermit on your ABC80, you can use it to obtain new
  273. versions of KERM by Kermit file transfer.
  274.  
  275. If you do not have Kermit and there is no one from whom you can borrow a
  276. floppy disk to copy Kermit from, then try to download it on a IBM PC or IBM AT.
  277.  
  278. The IBM PC/AT program ABCDISK or WABC can format a diskette for ABC80
  279. on an IBM PC or IBM AT with 5.25 " diskettes and copy files from PCDOS/
  280. MSDOS to the ABC-diskette. ABCDISK and WABC are commercial software that
  281. is sold in Sweden.
  282.  
  283.  
  284.  
  285. Program Organization
  286.  
  287. The program is:
  288.  
  289. KERM.BAC        Main program
  290.  
  291.  
  292. Sources:
  293.  
  294. KERM.ASM
  295. KERM1.ASM
  296. KERM2.ASM
  297. KERM3.ASM
  298. KERM4.ASM
  299. KERM5.ASM
  300. KERM6.ASM
  301. KERM7.ASM
  302.  
  303. Documentation:
  304.  
  305. KERM.DOC    This text
  306. KERM.INF    Short infofile in swedish
  307. KERM.TXT        Big documentation in swedish
  308. KERMASM.INF    Info about the sources in swedish
  309.  
  310. Utility programs:
  311.  
  312. KERMDUMP.BAS    Source for a program that dumps the session on file
  313. KERMDUMP.INF    Info in swedish
  314. KERMQUIT.BAS    Source for a sample program for exits back to Kermit
  315. <<< kerm.hex >>>
  316. 23212F62696E2F73680A2320546869732069732061207368656C6C206172636869766520
  317. 287368617220332E3234290A23206D6164652030372F30372F313939302032323A303620
  318. 55544320627920626B406B756C6C6D61722E73650A2320536F7572636520646972656374
  319. 6F7279202F7573722F626B2F6162632F6B657238302F757064617465730A230A23206578
  320. 697374696E672066696C65732077696C6C204E4F54206265206F7665727772697474656E
  321. 0A230A232054686973207368617220636F6E7461696E733A0A23206C656E67746820206D
  322. 6F6465202020202020206E616D650A23202D2D2D2D2D2D202D2D2D2D2D2D2D2D2D2D202D
  323. 2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
  324. 2D2D2D2D2D0A2320203132313434202D72772D722D2D722D2D206B65726D2E6261630A23
  325. 0A696620746F75636820323E2631207C20666772657020275B2D616D635D27203E202F64
  326. 65762F6E756C6C0A207468656E20544F5543483D746F7563680A20656C736520544F5543
  327. 483D747275650A66690A23203D3D3D3D3D3D3D3D3D3D3D3D3D206B65726D2E626163203D
  328. 3D3D3D3D3D3D3D3D3D3D3D3D3D0A6966207465737420582224312220213D2058222D6322
  329. 202D61202D6620276B65726D2E626163273B207468656E0A096563686F202246696C6520
  330. 616C7265616479206578697374733A20736B697070696E6720276B65726D2E6261632722
  331. 0A656C73650A6563686F202278202D2065787472616374696E67206B65726D2E62616320
  332. 2842696E61727929220A7365642027732F5E582F2F27203C3C2027534841525F454F4627
  333. 207C2075756465636F64652026260A58626567696E20363030206B65726D2E6261630A58
  334. 4D4042354460283A242A524C4B2A524C4B2A524C4B2A524C4B2A524C4B2A524C4B2A524C
  335. 4B2A524C4B2A524C4B2A524C4B2A50543B39302226412224400A584D3427294F39572941
  336. 3B32604E2B42584E28226040325435323330543F3940222641222440353731473F373941
  337. 282260512B436040282260402E233C4D0A584D2C23444D2C43302D28263C604148304128
  338. 2625562824254E392635523C5221263C46254E3E46214E282350552C4334582F4054273A
  339. 6022264122242D0A584D264644604148304128242955395639493E2260402C3344592C22
  340. 54502C3254502E3054393A4022264122244032425840355635533D2655413B42605C0A58
  341. 4D2D3360572D23582D27564C604148304128244D413B42214B3F2729412826554F3D2221
  342. 4B3937294D3A3730403C565D4D2331414C60283A24283221450A584D3A4221413B47395B
  343. 3B4631453C422132313521342330605E2121252A284B482D6030606060213D4D60283A24
  344. 2832212D3A36594E3932214D3A3659530A584D3D2260512D444C2D255658604148304128
  345. 24394C393741533A5645563832214B3C474D563C5054453B50222641224C4B2A524C4B2A
  346. 524C4B2A524C4B0A584D2A524C4B2A524C4B2A524C4B2A524C4B2A524C4B2A524C4B2A52
  347. 4C2D214760604148302D283724604148312B3937294D3A37304039475152282425220A58
  348. 4D305340502B42212B383658403A57515238372C2D26472860414831543A36514C3C5625
  349. 4D3B36254E3C52214D39363040352435242B4054263C5022260A584D4160553E3D602227
  350. 2A29232B48215F4B603D575F223E4C2E5B5044212330234D4C605855223C453239372D54
  351. 3B5729452822604028226040525054600A584D4E582F2B60225321553D342E2823582158
  352. 304745593D574157345B5C2322603733422D3E285538435B3B212E23222354234F445D28
  353. 2E2F2D602F53410A584D543C47374E5B482D60602460606023593D30222725383A31525A
  354. 602B5A5027515F50474B603D5C60223C472B2330225B405C4F5F564F27292C50235C0A58
  355. 4D5830582722345829593058562237582E2750453E28553B41553F352E223354405E5F27
  356. 4524315C602634584337422D36285E5650334050405D2E252E0A584D5B34285D282E4329
  357. 5F51433D3D515B3D3F41473D3D515F3D5250213E502D545525233F285737582C57373C35
  358. 5737583757373C365737583E57373C380A584D5737583F57373C39533947502E2D472D48
  359. 4E5C582F2D555E263F59392A60535E334240415F44372A573E4323435E473D3F413B3D4F
  360. 413C40283D555E0A584D255353462F5D55572552484B58522C422A5E2F29573758362F3D
  361. 565E255243462F2D565E255C2A2F5A3D555E275F59262A60475E312240255F454B220A58
  362. 4D3E5E544A2C3E2C43284327435330234E50574F4D2E44573E2F3C405E23332B545F3248
  363. 5158535824243448424E4054606060606037473860415242300A584D525A603F5A50273D
  364. 5F50474B234E5C29603054605B3B602E2D304729325635523B3260402822604028226040
  365. 282C4C2D602B4E235250604C503D37350A584D2342605E2B2E2429593E373D583D552E5F
  366. 6050402554584337422D36285E5650334050405D605B592F3223435330235B583D272955
  367. 5B4E5A2330603F0A584D573C4C60374C233D2D313057522D555E232D5557253D555E255D
  368. 5557254D555E274D5557262D555E275D5557263C56395C234339533A2B4F2E23533D0A58
  369. 4D3F41475E3632402C5F445848283F5925524D574850585F4957375836573B5837282227
  370. 3D3F413C5C59435F3D3D513C4A2A5E2C4328424F43523D555E0A584D2543573D4F413C48
  371. 5943533D4F413F22435E473D3F415F5E314240295F443048213F593A50474F4D2A432743
  372. 28522851585C54605B4C2D5B5B33492D0A584D574357282F4054525D2F544A2C3E2C5E21
  373. 21252A284B482D60606060602F455760283C354149272B48604F4B603F275F223E4C2157
  374. 506029523C4C2D0A584D602B4E23525F5F3A5C3C4729602F4C5A302F5A4728604C41402F
  375. 5C313D4D58212550234D4C2324605E322728555E374D3C553F212C3023215B372C470A58
  376. 4D5F4C565B545A5C52415E2C41363C253D352338402450255F215E5650283D4F28373530
  377. 5628212C213F503F4D4C2226395E51253950302428602E56500A584D243D4F2860324060
  378. 5B3B604A282F5831602C274D344360405732483C5F42483C5F475B5E60324034335D555E
  379. 605F5A2628603F3D3F40335E4432402E0A584D57304429262E3F2D3C604851602F472352
  380. 2D3C2E2130474B2E435C2D5F4F5F2A2F5057232F3055343937294D3A3659413B244C4031
  381. 322132282454400A584D323221342822604039465D522824252230534050282260403457
  382. 314F38564D483B56514D282324592E233C28602C24552822212B3135292D323F5E5A0A58
  383. 4D23306060606023593E60222725383A31525A602B5A5027515F50474B603D5C60223C47
  384. 2B2330225B405C4F5F564F27293430432135226040282223230A584D272C2723332C2723
  385. 602C2323605C2323214C605A413D464728224B515D3D38242C4137212C4143212C414F21
  386. 2C483739573224605E22262F574D55550A584D234D5554235C565B545E5553353C245160
  387. 2F4723522D3F4D3C5537215B374D37503C446060606060604D47286040215B365D602260
  388. 2D54413D602C260A584D262C373D3740233D3540273D285D54432E4D4021335038605B3B
  389. 235E2A22602233504721242E313E28553B4D345F2F5D523D54413D602C26262C373D0A58
  390. 4D3B40233D3940273D285D54432E4D4021335038605B3B235E2A22602B3A56285628212C
  391. 212950234D4C222F21242D4C4A5C5F574B3C522D52523E34410A584D584D23435B372C56
  392. 5F4E3441574D235D3D315B5D3D215F5D2D4058605F33382F6022275F4E40546060606060
  393. 5E37446041513626443C4E40225E4C210A584D5C3F5C295A50273F60604729525054604E
  394. 582F2B5F5D4B51523D3336542D4F30585D37292C532F2921606021443F555E284E395F2D
  395. 5C445E603140250A584D2F403038603A5F3D28382B4324335860533B4B30523E395F3B52
  396. 38605932243454302427602C542B602E272D302D272D30403F2923304827313529320A58
  397. 4D2823483E262F595E5241583850515038243D375D55334940262F5A4F5D3C5140262F27
  398. 243841434B543A3F4D344455245A5C472D294D272D225023290A584D553F372D294D2751
  399. 585C3631335C302B602C274153304C60523E3C422D2D282160603F4D30533B325930275F
  400. 60224D3F5750535E2A4240245F435C400A584D6030335E2B2260242F405557285F582D28
  401. 2E43472843473258374F5E2E4240273E232858544A3C4829375B46375E5924502D5F4637
  402. 5E5932502D5F360A584D2C235F305F404330335D5F4E5F5B482D60606060602F455A6028
  403. 3C354149272B48604F4B603F275F223E4C2157506029523C4C2D602B4E23525F5F3A0A58
  404. 4D5C3C47344A4D245A502D5C422D2D2826603E55232D4D2A47523126365F5C5521602D40
  405. 41483F5C31402F5C216050215E5B3B235E282240222F4348320A584D245226365F505828
  406. 5B3B605E2B41283323402F4D4C23582D244A3F292A433332595E4F475A5F582D2821215E
  407. 5F405457522E584A502E373F583E582D0A584D50233F293F4F582D52214B5E3823402259
  408. 455E5E28604B4555322C33533E4B31543E27293F4F585F2A2F274E2A4C234555322F2D5A
  409. 4D2731583D43450A584D55312F2D5A4D2731583C44606060606060606060234023355336
  410. 5B32543C4358593D3441365D28212450232D2250233158305A6053365B32533428270A58
  411. 4D2D5C442D22403D223932214D3B57294528272D5039362D4939464543595E582D2F3F43
  412. 39214027395A543842562D2B35264F5E5A23306060606023590A584D3E50222725383A31
  413. 525A602B5A5027515F50474B603D5C60223C472B2330225B405C4F5F564F272955275B32
  414. 245F59402E602B4637522E5E2A2F335E0A584D282240285F425048212F582D2822443B5B
  415. 352F3A54474028232C4D592A21573924605B2D30403C2660534B38603F58482A60282621
  416. 324B3854435B560A584D2434484253393B3A5637584352575C485E424C5C2A602F31262A
  417. 57312A4D4B3259504247525B442D522E4F296060606060234A25563A3F285732265A0A58
  418. 4D54534B22555F58402C21535E223240475F4048482C2F582C2A22435E233240275F4043
  419. 60573334605C2D545660602329283C2737525E5841302F5B3D0A584D3740603660214557
  420. 57333060573758605F4A236057333860602E553B4C4D2F352A4F2F5D593C5439503E2731
  421. 2E6058335B352E52545C5436503227210A584D555C4E4E52322B535F3A5C52425D5B4D36
  422. 5A282353363C22283C275F4E405460606060605E37506041513626443C4E40225E4C215C
  423. 3F5C295A50273F0A584D60604729525054604E582F2B5F5D4B51523D3132545D3F2B514C
  424. 4F562F402C52505D3F292E484F3E5B402B602E483739495C405A4E4D2E472823384A0A58
  425. 4D4D4D2D5C4D3260254B532A2B574C444B284B3B332834235E284B43335B354E5454512F
  426. 4D345B333353313B21283D5F5E214A605E282B584B28602C300A584D5E424C432853382D
  427. 3E23505D2C4B4B332A4B43333F422C424E2D2C5752306060606060606060606060222460
  428. 5D222A56555754524E2D3C41602F4B3B0A584D2E273C424E4D3D5D2C4B5337294230424F
  429. 4D3C5A503D3F4627232B21555C5436574C5538574C474D3C5C3B37283547215335573053
  430. 392C225A5C4F5E0A584D533C37335335533453354F36533E4F34283C273752543B222F3D
  431. 332B3542603C533D47345723533556534B466042603053355733572353352E485B3E0A58
  432. 4D495C303C5F5B482D60606060602F455D60283C354149272B48604F4B603F275F223E4C
  433. 2157506029523C4C2D602B4E23525F5F3A5C3C4734294D33360A584D57235335533A5F34
  434. 57294B3456534B4660424329283C273752593838504C552455422721555C4D4E51223333
  435. 53392C225A5C4E5E2435472153383F300A584D533747345B374F26555C47535B353C5250
  436. 2D3C414B4D3D5C5B343D5D5453445E335D2C595632265C55412424555D475B52334A5555
  437. 5A3C405E4F2C5E0A584D5F5D2C595453445A502D3F4D315358545453475B2F4C40525D5F
  438. 564F2C4F375D523F582A2860545A403D585D2860345E233C553A5533582A53354B350A58
  439. 4D523E553B4D4D3C41503D3F2B394240322E4B4337445F2B23552E55245F426050213C55
  440. 3B554C4E462E4B43374E5C413F2F232A585551485752324A5A0A584D55534A5C555B5728
  441. 3B5350524F2D3D5E59475C5752324A5A555D4C5852575C48314038324F4260295B3F5E5A
  442. 23306060606023593F40222725383A310A584D525A602B5A5027515F50474B603D5C6022
  443. 3C472B2330225B405C4F5F564F2729552F4B34325B5B372121605A21402F4D305B5B3733
  444. 5A5F33214358590A584D5450385A3F2D5B56402B444823534A25563A3C4826234A2A574F
  445. 3A604E3260302D572441364E2F2B57422721555C4F26542C4F2E523745572B222A5A0A58
  446. 4D55573F295F40544023345C5A403D585D3E326025533457352F40492F2E474B3E495747
  447. 2C364D372D3C4D3B2959475C52504D3F2D44502B4B525B585A0A584D504D3F5E28232121
  448. 5F403C48264F58282A215F5E223240565F404848304F582C2A22435E2332212157333821
  449. 602140574B5D2C262F482F33214140520A584D2A5D5455603F2B255533494F604D555760
  450. 3D5455602F2B21553140365337382226213157285D54546033494F604D565E6033602B57
  451. 333821602C54580A584D604C5633604E4F2B5F434A2B5743572C572D2B5F4E4054606060
  452. 60605E375C6041513626443C4E40225E4C215C3F5C295A50273F60604729525054600A58
  453. 4D4E582F2B5F5D4B51523D332E55334A2D574A3C5A504D3F285F404848232F584056224B
  454. 2455573C4C284C333752324B245553382D2B23382A2B2124600A584D5E3A3F4D34445524
  455. 5A5D5441404E2C314540432D4E4D6058224224605E322B2455534B22555C4452505D3C41
  456. 503D3F2B514C4F5E2E4C2B37523D54410A584D364E2F2D445E505F562A3C40243D544140
  457. 4E2C314460432D4E4D6058213A5C52434D5B292C4C2F37283C2737525C3B2B5F4C445A3F
  458. 4D585D502E34410A584D503D3F2B3743583353272B36283C2737525D5B415233495E5743
  459. 576059322721555C4D3E2F4127243C4D3841503D3F2B474E2729593D3725335D4C5A0A58
  460. 4D59402848224A5F3321435A235450385726225C2622434A24574A3C48262C4E592F3240
  461. 332F32402E2F374448214A3F42494D3838212A3F4A5F5B482D0A584D60606060602F4660
  462. 60283C354149272B48604F4B603F275F223E4C2157506029523C4C2D602B4E23525F5F3A
  463. 5C3C4734484D3A46554C4F59513C574B0A584D552C245A4D3D3E47282F374D305B333750
  464. 3D2741523043395A3C5422555D4C5A5D4143332E434A55555A3C485C343C41606060425B
  465. 3D385A4D2D3D2F0A584D5B342F565540585A5B34232B562340225259434D303C54225552
  466. 4A5255502460606044425B3D38505C302460602C4C39242D4A4F2C4B3737262B4B4B0A58
  467. 4D5A3C563E555D4C5A52505C505D5C563E555D4C5A52505C585D52264453422921555C56
  468. 3E555D4C5A52505C585A224A50555E553B303D3C39284427370A584D2C2E4826223C4C39
  469. 5B342D2A555C563E55524A505551246060214442303D3C505C302460602D4C5A52505C30
  470. 5843225053395B372E444B372A4B3B370A584D3D5250424D4D3D2F2E4B43374532272155
  471. 5F294F555E55245F446058235C4D46282F5E5A23306060606023594030222725383A3152
  472. 5A602B5A5027510A584D5F50474B603D5C60223C472B2330225B405C4F5F564F27292D47
  473. 3B3722534A55555A3C40213C5524554C4F462E48333E49574448604E395F5F4124480A58
  474. 4D224F583350405737525D3B23233D3F2B454C2C2D55524A5E55524C424F4D3F31583D44
  475. 285E5E552D465A5B374E3D39322957342260606060606060600A584D6060606060606060
  476. 60606060606060606060232D544D4441224D40212260232D2250232D30403C41602F4C21
  477. 2950234553323338583E3F5E2332434D0A584D603C4F3751312627562D372D2E5D2B3156
  478. 226026243E4338505348215532243256602432602C542B602E27235F2D442D22444D2534
  479. 4455293560542A0A584D21542D4F3B3655413B4630403B3735533D2221423931252E605E
  480. 55335E5F573D5934272D36502C405E5C553B605C5422602F5829532440235F40572A0A58
  481. 4D59302B5E262243475F40435F4E405460606060605E38286041513626443C4E40225E4C
  482. 215C3F5C295A50273F60604729525054604E582F2B5F5D4B510A584D523D312956224348
  483. 593D3725573E37552A47533E4F3260255330433926603C4A424D5A5D532523395C3D5741
  484. 503D27415F42605852312B5E382340220A584D59455D57285D54546033494F604D565E60
  485. 3D505460412252505E302240242D2C33552D2540342D2F33445925305532223124352C31
  486. 353125405431290A584D34483124353455304044353230352D2541343538323532263224
  487. 352C3428292B3234512C4154512F315841313534453442352925305435293544362A0A58
  488. 4D3454253631384D333134592443252D253528553332245D374345312531285D34363521
  489. 255F535342222D472858303B3F474E2B40563F47393F5E2B230A584D563A3F394F3E2A26
  490. 563D233A274D493056342B41533D4739533E3B332E4C273752545F22362D472D544D445A
  491. 503D3F2B5F5B482D60606060602F46230A584D60283C354149272B48604F4B603F275F22
  492. 3E4C2157506029523C4C2D602B4E23525F5F3A5C3C4734273D455728212B2B3F5C405A50
  493. 5D3F2D5F3D232D0A584D2F2E2851602F4723525D3C41303D44212350232D22506051602F
  494. 4723525D3C2D22403D34313430403946454C3B2635442330485A413D4647522C57390A58
  495. 4D56334A2E57445C5A433D5A512A60532D544D472D2F2E2851602F4723525D3F2D3F2D44
  496. 5A503D3F2B335C282B563C2F32563E5553355C274D3E5537210A584D5230232D364D245E
  497. 253D4B5D542C545C584C565B545C553C552C553B554C544D5A4C5524554C5559552C5522
  498. 215C44422E3D2B2D2F2E2B2D4E5D2F2D0A584D372D332D365D3B2D444E2F2D312D3B2D3E
  499. 3D332D30403F29593C545C584C5739563225605F473741533E3B39283D4F285335573052
  500. 31273B522C56270A584D542C472D2F2E2B236060234D3C553F215B374C475F43492C233F
  501. 5E5A23306060606023594160222725383A31525A602B5A5027515F50474B603D5C600A58
  502. 4D223C472B2330225B405C4F5F564F2729552F27395F4E3F2A3360572332405441415D40
  503. 266031602E5334282721402C5A5660275E2A2240222140345E0A584D5D41252A284C5636
  504. 5647585C282E332D30403F2953342827573225565742265A573E3441283D4C2660434B38
  505. 603F58482A60282660535B59243C3B3A0A584D53393B3A585C353E2855384333422D2628
  506. 5E374B5737586057322F56402F5B5E2A60435E5F5240245B3B2448235E395F3B5238602F
  507. 404431514D4B2D0A584D315D243822324C5E22312726564C5636564E27215857585C2A21
  508. 33455132252A28402422602C542B602C2741242A4F2D30403C38465E272D30403F290A58
  509. 4D5130275F5F522F45525758436052435A2A5E2F35495F4A54564E37255A59252F51604C
  510. 604B5C27415D3C372D225023215C3E274D3129252F5D604C600A584D583C275F4E405460
  511. 606060605E38346041513626443C4E40225E4C215C3F5C295A50273F6060472952505460
  512. 4E582F2B5F5D4B51523D3325564C444E0A584D2B42584E2B42584E2B42584E2432273B55
  513. 3C545B544D2738286038314D2D4F232E402735283F573A6031306053304C60583C2F5C56
  514. 3D3441243D4C210A584D2460232D22502341505F53392330482734262552383655453D26
  515. 3552282655553C5730403846342D22403D36383651553932214D3D372D54282629450A58
  516. 4D4024252330543533345825223035352440442D2831342D2B4054312530453527412431
  517. 3534245125362835253354522631352D2330352125415439290A584D332436283144512F
  518. 3558452C313459273524422A333425323254353242545925355451293344362C3345352D
  519. 342425244335212131242D2830352A2E0A584D34242532323531394355212135352D2544
  520. 25252232345A3134342D343329293231352134445529255F5B482D60606060602F462660
  521. 283C354149272B0A584D48604F4B603F275F223E4C2157506029523C4C2D602B4E23525F
  522. 5F3A5C3C4734463D4D34344546343524352431352D23453531253124552F312436360A58
  523. 4D3524452D31345D35352F5D34573E2B3B5B3D51505732373C224D5443573A3F3C382D52
  524. 5F572E3F3C485D542F5731333D2E3D525457315B3D263D544D0A584D5737533C2A2D562A
  525. 57373F3C243E5B3B60373F3E533F2F3C50513B3E40232C502C225C532C2322212C332850
  526. 2C225C572D3828572D325C512C4360500A584D405324522C23604F2C3328502C2830522D
  527. 2360502B5328542C2322252D2340502C225C542E2360505F51244E5760255A574C2F5357
  528. 282128303451260A584D403439353324535F24342B3C6038333E505F2F3C4024592F3344
  529. 362134552121305436212C28292D3035292B40432623313539253348312F3124335F0A58
  530. 4D2436473C60375B3E505F2F3C40245D26314F5E5A23306060606023594150222725383A
  531. 31525A602B5A5027515F50474B603D5C60223C472B2330225B0A584D405C4F5F564F2729
  532. 5526573C4035412F33425D38335439265F51262C574140232438473E553C543B543C274B
  533. 243A273C564E5F3A3F2A3F225B5D495D0A584D5F40273A5B5D4B5E275D2B4F56402B2D30
  534. 403E47523F58512B332C505F5126505760255D574C2F5357282134313541344034292933
  535. 4829213535312F0A584D5F5C543B543E4C31582D533A5B5D495C495C2B4F5647575E252D
  536. 4B4F564F593F544E5F3A2C475F3E53342827523F58522C2254592D2F5C31402D5B230A58
  537. 4D2C2D5431213D54213E2D5B35513C545B544C2731562C2B4F564E395F604C5522215C46
  538. 212C3828525F51255B5741404124382B3E26215031405D58380A584D2551262757414032
  539. 24383B3E266054313F2D58382221262A574140232438433E553C543B543C274B2434573D
  540. 564E5F3A3F2A3F225B5D4B5F4E4054600A584D606060605E38406041513626443C4E4022
  541. 5E4C215C3F5C295A50273F60604729525054604E582F2B5F5D4B51523D31215737572B3F
  542. 5C2B4F56402B2D0A584D30403E47523F58502B3324522D5F5C31373D54213D4D5B235C5D
  543. 526034252925342425323138252B3234512C40452D343355235F2437473D6037473E0A58
  544. 4D505F2F3C40245D263148253030342D2B313532223125352D342F5C31452D5421425D5B
  545. 2D5C5D532940245D26314825333035392540452D253344335F0A584D243A533D6038273E
  546. 505F2F3C40245D263148252F334F5C31413D5B232C2D553D57312C605B4D4C576060373D
  547. 21302159573124602B4D502B6024573D0A584D2150212D57303C604C2D502F6026473C23
  548. 40234057603C60333D5427602A533D2260212D57303C60333D542760242B3C2740212D57
  549. 303C60333D54270A584D6024573D2150212D57303C60483D50266024573D215022345730
  550. 5C60483D50265F5B482D60606060602F462960283C354149272B48604F4B603F275F0A58
  551. 4D223E4C2157506029523C4C2D602B4E23525F5F3A5C3C4734253D58602E473F3E2F2224
  552. 55574024256060445D282F515E285328215535584335422F4D0A584D345B2B3737422D36
  553. 285E55334C2D3F29605D3429553044253D30293229502932295734226045284734423C22
  554. 49345A453340292A47344A3D2E4837390A584D495C432D245C274D345B3B33245E55334C
  555. 4D2F2D254C264F2C4B4B333B563C424D2D2F29606024226060242D265028213740246060
  556. 606060602238430A584D3F403460606048606022272757402436602C542B602C54226022
  557. 275457402428602E56512A60382E222E5651502A5C52552F5C41212D5C422D2D29590A58
  558. 4D5D48232D2E2D5C505452273D57402437602C542B602143312653545728603C4A282221
  559. 3C33452D2B3034304031252929354434402F514C5D2D5260270A584D2A42604034544D29
  560. 354F5E5A23306060606023594240222725383A31525A602B5A5027515F50474B603D5C60
  561. 223C472B2330225B405C4F5F564F27290A584D552E473E30345840313448403254512134
  562. 4258572D4334542C5328512C225C46293230432842245D2A4057475F42504022422F4759
  563. 455F5E345260220A584D575A5C52552F5F2D364D244A2D2D295E5F4054402123384A2857
  564. 3F2D30403F4D32533B323E3C372D2E2D5F212321235752345F463F5C372D333E23210A58
  565. 4D562C4D5928334B4060312C6051604C60243E606053332B41562224605D355535214A22
  566. 4F4F422C40215E3441226060395A5E24305C5E5533522F5C310A584D6060232D2C4E2738
  567. 28315B406030406053304C6028383F55603021583F422F5E2242402F5F405448225F5840
  568. 2E212F5E4023602F2321234B3E3A3C480A584D2260386028383F5553304C605334282753
  569. 3823405622412D21402430253C552221534B38603F58482140284860403B5F4E40546060
  570. 6060605E384C600A584D41513626443C4E40225E4C215C3F5C295A50273F606047295250
  571. 54604E582F2B5F5D4B51523D325D5750305A552F5E472A602424513226245F50242C0A58
  572. 4D602C542B6060242160234B345F5A3C4023424A325F5358242434484253343F3160302C
  573. 602834484253304C60503C5452585D432553383740503D40400A584D4D3C5522215C5522
  574. 21524B2A5F5C55605432244658602424602C542B60224B285F5C55605432244A58602430
  575. 602C542B602C442D224431323E2348400A584D2822214F394260403C5635433D265D523C
  576. 5221463C4635452B40542A23214C5D2852212C3234282D2243545D2F33545D2653544628
  577. 2328215F3C38500A584D2C422B40243C606053332B41562224605D355535234A6026222C
  578. 4C3E2E602433242F4443233223535B352F2A5F52274F5D31272C5F5058285B3B22470A58
  579. 4D52312460604140372A4323415B354C4E5837572624265C425F5B482D60606060602F46
  580. 2C60283C354149272B48604F4B603F275F223E4C21575060290A584D523C4C2D602B4E23
  581. 525F5F3A5C3C4734443E6050583A3C402D374F2628255E47522E55332B4E2735283C535F
  582. 52534F2B2E5C4C5B52534F2B2E5138600A584D26375B5E604D2458575C5452583D404124
  583. 2F3431242F50215C6023355B3B2341284323413F4A3C484D4350484C5E3431216060395A
  584. 5226605F5339240A584D285339322853484258273C432D4348435A5D34212260234D4C23
  585. 584E24412C216050234D4C23582D244D272D595D2741544837402E4D335F495C21360A58
  586. 4D28575B4658255F2D2C4E273824303355283060603131485C2A60483326412F46275351
  587. 2F2231435228492B5F5D40272960606060602D3725593C55460A584D382E272154334835
  588. 5F3A3F282D5C474553335342583C5751542D4B5D542C5522215224605E50275F60212633
  589. 222E372D4E4D23412E21274B2D4048430A584D5B3F5E5A23306060606023594330222725
  590. 383A31525A602B5A5027515F50474B603D5C60223C472B2330225B405C4F5F564F272955
  591. 263741344455240A584D5A5C542B602C54525853233F5F4B4848243A3F225F3D60314460
  592. 432D4E4D233A5F3D232D30403F2957365828573638293F422F5E404240245F482C400A58
  593. 4D56575A472A22305D2A2D3031602F4F35573E372D4531273D583E2F4B2D404843495E55
  594. 323334334B53304C6053332B435833233A262B2C314630432D0A584D4E4D605054214249
  595. 593C545C584E272D364D245E253D4B5D54234858544A3C482A4C4D5F28215F2B5F532858
  596. 544E552B2D4D28255E27442C5B342C560A584D544C552D5823434F533823402E2E48485A
  597. 214027533837402E2E24485752245358402429602C542B602226605F502430602E372D22
  598. 502341595C57510A584D5423402624395C28533B4B30572F573053332B4356234858544A
  599. 3C40485C442D224631453B26375F4E405460606060605E38586041513626443C4E400A58
  600. 4D225E4C215C3F5C295A50273F60604729525054604E582F2B5F5D4B51523D3059584731
  601. 4528234A2D574A3C4021334A2E574A3F282836434260313C600A584D53304C604B532A2D
  602. 57432A2E574D5441404E2C313F50432D4E4D233A5F3D232D30403F29233049233B265D53
  603. 3A365947282431353335604F33245D270A584D282639493B26374553335342583C574954
  604. 2D4B5D542224605E322B24555D5441364E2F3D2D4154212F4F5C52433D5B29593C545C58
  605. 4E272D5C3D233A0A584D5F3D233D28354B434B5D5557252D5557265D54562730245D2C48
  606. 5B3E523E372D2F2E2B41533E5730564F573057355828573538293E4A3C5E2D2C4B5D0A58
  607. 4D5422242558502439602E56505A512556574038372D4250432D4C3C4326412D57285338
  608. 6028533A5A2851234E5A52243E58502434602E5650533950280A584D53375C285238282F
  609. 22402226403C3D605F5B482D60606060602F462F60283C354149272B48604F4B603F275F
  610. 223E4C2157506029523C4C2D602B4E230A584D525F5F3A5C3C452D233E2F5E4E42532760
  611. 60225A2337543460283A215158235F4E40543227402226443C4C4222244D253444544E30
  612. 4425234E5054210A584D533358232D5C233D593D4C5859475F5E2822402A2E4F375D5948
  613. 6048214C5422602C5422602D5741495C44606060606060606060602832315850233B0A58
  614. 4D2E4E3822504D2F4928364748603148605336274E5732253A585D54566060232D294E5C
  615. 5A432D5B3D3D50533D2D40402157333837602D545626452C5A0A584D423D5B3D3D513038
  616. 255D5455252C4B335A3D555E264F59242860484A362E2C43284543435330474E573C4C60
  617. 374C2B335A3D555E232D5557253D555E0A584D264F5933524F5B435F443B2A342E335E31
  618. 2C495D594C472D432E5F3A515E2F3D3F41475E313C4B4A5A2F5933504C3F4328382F4860
  619. 3F5E5A233060600A584D606023594460222725383A31525A602B5A5027515F50474B603D
  620. 5C60223C472B2330225B405C4F5F564F2729552137442660232D383E5B2D475E333D0A58
  621. 4D3340432557333828603D54562660473D2D414539533A3F50503D5551222D4B335A3226
  622. 515A602446602C55415B4D555E255353462F5D5557255D54560A584D26443B234F5E2F2D
  623. 432E5F3A515E2F3D3F41475E345C4955592F593A52413B455F443B2A2C3E375E304C493F
  624. 594F5925524E4B4850595349573758370A584D2F3D565E254C2B27585C563F592D552E22
  625. 2C373D2D40402157333838223D54562635472D495F232157372428544B5F43505D2F4953
  626. 37274E2E475F3E0A584D57373C212E48533E57373C222E482B3E57373C232E482F3E5737
  627. 3C242E474F3E57373C252E483F3E57373C265733382736334A24574A3C48262D555E0A58
  628. 4D243A3C48285D5557215F59392821505A414D5B3D3D503F3D3D512438243D575F4E4054
  629. 60606060605E39246041513626443C4E40225E4C215C3F5C290A584D5A50273F60604729
  630. 525054604E582F2B5F5D4B51523D3349592758314952402B57373C275F454440212D5456
  631. 2430605A3E2D5B3D3D50433D4F4128480A584D222D54562260273D2D4128215737583357
  632. 373C2953344F4F523D555E2553573D4F413B22515E2F3D2D41406057333839363C56475C
  633. 2D2A5F585C2F330A584D5A3D555E255D565E254C2B275852246060222932585229345852
  634. 293658522938585C55495B4224605E3126605F5D552E26603860593D372D303023410A58
  635. 4D603040605336274E5932273D5A602421602C55415B4E24216050232D383E5B2D223E5B
  636. 4157333845602D572B602E5B4557355838254060392D4057410A584D5B354C5954414B5E
  637. 233240215A534956574A3C48244E373D593C5751542D57415833603459475F5E253C2836
  638. 5A3D5745533E4730573E2732253E3B230A584D254E445A3D4D5B5E5F5B482D6060606060
  639. 2F463260283C354149272B48604F4B603F275F223E4C2157506029523C4C2D602B4E2352
  640. 5F5F3A5C3C47340A584D4F3E34212A235C41583E34212740232D383E5841592E34212650
  641. 233D3C314031402F474D4C2D54562634372D495F23235D2E442D22403D263A3651450A58
  642. 4D2826254C3C46354139274440393741493C57315328265D4E282631493C564F45573E37
  643. 3D28382B4324395C28533B4B30573E2741544A534550513B490A584D2A453B4328522936
  644. 585C54295B4D54562730233D2D41406057333839363D555E293A3C4823432A605E3D5454
  645. 262D572B602E3B3D5250224E533A3F500A584D564D2F492A452B4328522932585C54295B
  646. 4D555E255353462F5D5557255D5456264433234F5E2F3D3F413F3D4F413B22515E2F3D2D
  647. 414060573338390A584D363C56475C2D4B335A3D545626442F234F5E2F2D432E5F3A515E
  648. 2F3D3F41475E364C4825595F5925524E4B48573F5E5A2330606060602359445022270A58
  649. 4D25383A31525A602B5A5027515F50474B603D5C60223C472B2330225B405C4F5F564F27
  650. 295529274652502146504253475F44332A492E3B5E314C4B4A0A584D594C2E3C5A3D555E
  651. 255D565E2542605E53333B5256413B492A452B4328522932585C54295B4D54562660233D
  652. 2D414539573758454952402E2C4823590A584D57333038573C4C60594D572B602A5B2D49
  653. 5F233A545E473D3F413C5C59435F3D3D513F234F5E2F3D3F413C5D573B5836504C3F4357
  654. 333838602D54560A584D2635472D495F23324F5E2F23545E473D3F413F3D4F413B22515E
  655. 2F3D5250224E573C4C6039424131573758384952402E2F32602B2E4023595F4430400A58
  656. 4D212D572B602A3B3D593D5441404E2C314750432D4E4D233D583D48365A3358402C4F33
  657. 5D283D5B48603038605336274E573C4C6039424133283C37470A584D6030586024382359
  658. 573724385B3B233D2D414525533A3F5F4E405460606060605E39306041513626443C4E40
  659. 225E4C215C3F5C295A50273F606047290A584D525054604E582F2B5F5D4B51523D314559
  660. 5F23235D2E473D3F41573D593D5441404E2F5E6032402D573C4C2E3F42402E5339502857
  661. 3C4C2E4F4249360A584D58522C42354E2C313F50432D4E4D233D583360255334234E2660
  662. 4C5E28232B545F3227375A602426602C55415B4D54562660233D2D414539533A3F500A58
  663. 4D564D2F49573758372F2E385F57373C375733383A314C2E5F58553553393728403A3659
  664. 54393729523D3721545737583D5F402448264F58222A25605A0A584D3F3D5A472A60535E
  665. 6032404F3F4A3C482A5F5A602C223F3D2D415421573E373D28382B435735582D55312636
  666. 222C565A542D273D583D405A435E2E5B0A584D2F5D604A354E2C4328453B43495C473D2D
  667. 415422573E373D28382B435733302D57375829573E26472F433057522D57455732262258
  668. 5D553E224D55360A584D5F5B482D60606060602F463560283C354149272B48604F4B603F
  669. 275F223E4C2157506029523C4C2D602B4E23525F5F3A5C3C47342E3E402B3E2B24480A58
  670. 4D284E5640573C4C2E5F4D545523322351593C372D4760404A354E2C4328453B43503E27
  671. 3D52505A5E5733302D262D4B3D3C504B3D3C404F3D583C442D0A584D22453D413A373149
  672. 3B463C4039465D522826454E3A3730403C2625433A5635542334454E3A3730403C262543
  673. 3A56355428272945385635493D4635440A584D282260402330542A3456354E3926454E39
  674. 5221493B4645542827214138564D453D6055463A3651453B46254D393260402822604028
  675. 262941392221500A584D3A5730403847455439372C403846514B28272D54383731553C54
  676. 5D2B28226040282259263325353332222125344528402A224441603E44212530232D0A58
  677. 4D383E5841602F473D33414026602C55415B4C2F545A30542A3446354339364556393630
  678. 403B3F5E5A23306060606023594540222725383A31525A602B0A584D5A5027515F50474B
  679. 603D5C60223C472B2330225B405C4F5F564F27295560574939372D5338363D452E40542A
  680. 5D3C55605B4F273D2D4140605D4860410A584D334E44213340234D4C3260392A522F2B3F
  681. 42235B5930246060222C23525758485E4E273D3C314031402F474D4C2D54562634372D49
  682. 5F23235D2E46350A584D3056254E295730403946454E392221463A365145485A3245494A
  683. 524D4B4A5E504C34444F335255453C47294F3C4A3E4B355729493D2635503C465D540A58
  684. 4D39362D543A365D4E4A3431493C564C403947354C3B2A49243A372D4B2826594F3D2221
  685. 52393625443E3F5C414F2E44212550232D383E58414F4E44210A584D2550233D3C314031
  686. 402F474D4C2D54562634372D495F60382E60482D3557294F3B463C403C2625433A563554
  687. 28272945385635493D46354456534B460A584D6042242B5A40243060226032573C4F5F4E
  688. 405460606060605E393C6041513626443C4E40225E4C215C3F5C295A50273F6060472952
  689. 5054604E582F2B0A584D5F5D4B51523D33415A30213E28314F4A6030406028603841285E
  690. 48212240232D2250233D593D5441404E2C313F50432D4E4D233D583D51605B4D54560A58
  691. 4D264424575230542A2154594F28262D4F3B465945385731493B56582D22403D2138465D
  692. 523D60542A215531493B36354F3D37333B2E4E3822504D2F490A584D28394F4860313860
  693. 5336274E5732253A585D54566060233D2D413C602E475F3E57373C212E48533E57373C22
  694. 2E482B3E57373C232E482F3E57373C240A584D2E474F3E57373C252E483F3E57373C2657
  695. 33382736334A24574A3C4821434A26574D555721534958574D555722234A28574D555722
  696. 3C54465B5C552B0A584D5B5D552E222C373D2D40402157333838223D545626352F2D3A5E
  697. 572157372428564D2F495337274E2E48333E49524032573758315F5B482D606060600A58
  698. 4D602F463860283C354149272B48604F4B603F275F223E4C2157506029523C4C2D602B4E
  699. 23525F5F3A5C3C47344D3E4B3D4F403C48265F59392A213F3D0A584D2D403C602621273D
  700. 2D403C6057375831495240275F454448605D5557215D555E222D565E2442402857333828
  701. 603D54562440273D3F40473D4F412C480A584D222D54562230233D2D412C60283B274860
  702. 3238605336274E5336474E2830606028452B432845334328453B43284543432E43433249
  703. 524051573C4C600A584D3F426044573C4C605F4A5C52552F5F4D32533B32213F4A245B27
  704. 442C5B342C56544C552D5823434D533823402E2E404859414027533837402E2D5C480A58
  705. 4D573226245F5126605E3D5456262F5F4D32534732224F582D2A602949382E3C4324412F
  706. 3D2D21435E233223552838335F603050605336274E5330474E0A584D2E43433249524041
  707. 2F4224525D2F54415A2E40216030232D383E585A3E3F5E5A233060606060235946302227
  708. 25383A31525A602B5A5027515F50474B0A584D603D5C60223C472B2330225B405C4F5F56
  709. 4F27295528474B5743544A444F5F24302D24415A3E40216030232D383E5841402F5F4757
  710. 3E372D5C3D233D0A584D5833602D5334234E2E434332495C2B5E5A4C2E245B2D54562930
  711. 233D5250234E5733383B602D54562730233D2D41452653364F4D564D2F49283024600A58
  712. 4D28453B435330474E57375845495C28575B2C57325C43404B57333839312C554B5B3D4B
  713. 335A3C54295B4D555E262A3C4858335440574348605E3F59380A584D2A60335E36422333
  714. 573C4C604B4D5557293C2C575B2A3C48213C55605B414041573758384952402D57333839
  715. 312C554B5B3D4B335A3C54295B4358400A584D2C4F335D283D3F48603038605336274E57
  716. 3E373D28382B4324375C28533B4B30573E273C302E5B3D5250224E57333838602D545626
  717. 354B3D3F4236470A584D2A21385E28232B5F4E405460606060605E39486041513626443C
  718. 4E40225E4C215C3F5C295A50273F60604729525054604E582F2B5F5D4B51523D313D0A58
  719. 4D5B2F335D283D5B48603038605336274E2F443052402F473D2D21432D3A5E573A545E47
  720. 3D3F42375E364240272E434332495C2B5E5A4D54562660233D0A584D2D41452253364F4D
  721. 564D2F49523D555E265A3F22343E573D3F41575E6032404A5F402B2A273E545A3F3D5A47
  722. 2A215F5E6032414D573E373D28382B430A584D5736582A593224525E50275F6021263322
  723. 2C565A542E245832314039573E373D28382B435736582A593224525E50275F6021263322
  724. 2C565A542E24580A584D2D37573D4F4048582152493658522C42354E2F3D583E4F3D3F41
  725. 32472A602C5622422C312C4F4F4D344E4F3D3C514F3D2D41542157373440573730410A58
  726. 4D26235F5E4E42404549524042573E2457523D57455732262258512639222C565A542249
  727. 3658522C42354E2C505F5B482D60606060602F463B60283C350A584D4149272B48604F4B
  728. 603F275F223E4C2157506029523C4C2D602B4E23525F5F3A5C3C47342C3E5429573E275E
  729. 29433F602F40232957365828573638290A584D573E273D2D414F5D5733383D604D555528
  730. 2D5554283D554E282D55462837584357373440573730415733343B2A4533432852293458
  731. 5A3F292E4B3B370A584D2C4B43372E48473E2F2D5557252D555E262D5557274D555E263D
  732. 5557275D572B60255B60573334342D5C433D3F40533D3D51373D3F413F3D3D513B3D0A58
  733. 4D3F415B3D3D51433D3F415F3D3D51472D495F6058563C564E5B53405C573758395F4544
  734. 48232F592E2A22275E313C4B4A5A2C2E3C5A3D555E254D565E0A584D2552604157375837
  735. 2F2E385F57373C372A452B4328522932585C473D3F41385D573B58372A2E385C573B5837
  736. 504953495737583F5F443848223F59240A584D2A60375E364C2A245B32493858522C4236
  737. 2E2F2D223F5E5A23306060606023594760222725383A31525A602B5A5027515F50474B60
  738. 3D5C60223C472B0A584D2330225B405C4F5F564F27295560374E5B4C2E245B3349595743
  739. 57282F4054525D2F544A362E2C5E2121252A284C55275432493258535824243448420A58
  740. 4D53343F312A4533432F40383132422B2D315D244A354E2C5E2121252A284C5527543C47
  741. 463F565C466023495957435728593C54295B4358402C4F335D0A584D283E334860303060
  742. 53304C60583C5560543C445A3E3D585D51604C60523349595743572430403F2953323B4F
  743. 57375838495C4041602F455E285F58410A584D2E603736282D5557225D555E262F582256
  744. 2758435F422458213D384057373C2C573758385F402F383F422F5E283340255542233D3D
  745. 50573D3F41435E0A584D212D415E285F58412E60374E302D5557234D555E262F58255627
  746. 58435F422458213D384057373C2F573758385F403B383F422F5E2833402357373F5F0A58
  747. 4D4E405460606060605E39546041513626443C4E40225E4C215C3F5C295A50273F606047
  748. 29525054604E582F2B5F5D4B51523D33395B41233D3F41435E0A584D215D415E285F5841
  749. 2E212F5E3632402C5F475C50225F59402C60335E2F53602357373C31573758385F404338
  750. 3F422F362C2F58212E603F5E605360230A584D57373C32573758385F4047383F4F584156
  751. 2F595F542F59402C602F5E2F5D233D3D512F295733382B342D54562360373D2D40546057
  752. 33382E602D54560A584D2350573D2D41604357333831602D54562440273D2D412C605232
  753. 26605E3D555E603C38403D522F3D3F402B2628273C435737582351422157285D555E0A58
  754. 4D212E59603D522F3D3F40372628273C43573758263D522F3D3F403D57285D555E222C38
  755. 503D522F3D3F4046572860285E28273F29533A5B4F542D572B0A584D60255B6057375834
  756. 2F333F285737583757373C3657333838602D545626345B2D495F60575F5B482D60606060
  757. 602F463E60283C354149272B48604F4B0A584D603F275F223E4C2157506029523C4C2D60
  758. 2B4E23525F5F3A5C3C47344B3E5F2953362F50562E552B402D5A59282F34416060232D38
  759. 5F233855422B3D0A584D4540433D3D51432D385F23385542233D3D513B2D385F23385737
  760. 3C395F452C40224D555E222F58212A602F3D2D21405A3E3D585D2F452B2C365F273D0A58
  761. 4D3F4142472A21212724302359553C372D334F2321543D403224512354593C55435C2E27
  762. 38375D555E263F59332A22433D3F40435E60324041593D372D0A584D385F2331583D4137
  763. 3F3E385F5142225A2D5C215C525034375250343759435F26282B4C4824333F293F3E3B60
  764. 21503F46605837462F5C38404E533F600A584D53362F50523C55435C2D405A3E3D585D3E
  765. 5C6052504D3F2D4E5F245A504D3E47523038522E4F235D33534B505F3B444822545C3022
  766. 6038524B5D54550A584D25333F2856534B4660433F60533F5E5A23306060606023594750
  767. 222725383A31525A602B5A5027515F50474B603D5C60223C472B2330225B405C4F5F0A58
  768. 4D564F2729552827505F2F273D5250213E2D5C2345533A5F3458332339375138602E4833
  769. 3E49524022525B4C392E47473E5F40295B532E5F51495C445A0A584D413D5A472A605C41
  770. 5C2F552F2140355E4F42435D242F482D282F345A3E3D585D2F452F2C365F273D3F405647
  771. 2A6049275737582E533D5351562123570A584D2E48233E533D5351562D555E262D562622
  772. 2C38423B523860533D5351562D555E254C384037513860263C573C5C3D433D3F41453F25
  773. 406039533D53510A584D562D555E262A3C4824443C31402F443A245D353F25406039543C
  774. 572B5C3D40305C4D555E263F59332A222B3D3F40435E6032403B3F26372B21313F2B0A58
  775. 4D21313F462F5C3840533D5351562753462F5C3840533D53512C2127293F3E3B6021503F
  776. 46605837462F5C3840533D5351562D575F4E405460606060600A584D5E3A606041513626
  777. 443C4E40225E4C215C3F5C295A50273F60604729525054604E582F2B5F5D4B51523D3135
  778. 5C37582F533D535152332A3D5C3E34410A584D465F24212860232D2250605E23232B545F
  779. 3D555E26332B225552272255502421602C542B602358332C4F335D573658362940232D30
  780. 2D245E27432B540A584D5F3D554E262238605334233153342827583C442D22452D503836
  781. 2D4B282221543E3721452F32604028272D453C335440282260403B26354E395731480A58
  782. 4D2F3E37355132272255502421602C542B602C2731583C4452504D3C5A3E3D585D532B4F
  783. 512E4C2B37533D535152345C5A3E3D5B5E6047472C5B5F272D0A584D3C4D3B38533F5351
  784. 495C47452A4F4B513D522C425E4F274152302227593C372D5A5D332D563D3321583D233D
  785. 5250214E522F58382A602F5E264C23260A584D302D5557293328555C4358402C4F335D59
  786. 3D372528332352603038605F5B482D60606060602F464160283C354149272B48604F4B60
  787. 3F275F223E4C210A584D57506029523C4C2D602B4E23525F5F3A5C3C47342A3F2B2D383E
  788. 5B21543E2729305531323322555828302359573758382F2D5557272C55285C4D432D0A58
  789. 4D4E2F2B29243023575733383B602A3F3D2D3153283F422C216060273D4F412C40244A3C
  790. 48235D5455272C433D2D3153283F4D384031522D5E285D565E0A584D2432602B49524028
  791. 5733343C52605A603F422F3D4F416040284A3C48275D5455272C415E285C4D5F2A60282E
  792. 402E395F573B58302A60533D4F4124480A584D215D565E245240225B44225124412F3D2D
  793. 214C305E3F292F5C4C56585C432231523D555E265A3F28593224605D545C26602C372D54
  794. 5E3F212A4533430A584D22322934585E27292838235957333838602D552E223D555E225D
  795. 3828573938382F5D2345513C56335B2C274156255F3D3F4046472A603E5B2A23595B0A58
  796. 4D4E324031335F5E5A23306060606023594840222725383A31525A602B5A5027515F5047
  797. 4B603D5C60223C472B2330225B405C4F5F564F2729405F57520A584D2140273D3D322B3D
  798. 3D222F3D3F41433D3D5230382A3031585F403058285F593E2E602F3D3340473D3B422B3D
  799. 39422F3D3F42333D3D51433D3F4045570A584D285D54542627432628273C435733303852
  800. 574C48233D555E215A3C4821573C4357333038525B4D5B5F426058262F595F2A2133463F
  801. 5D565E2142402D0A584D573B58292A60433D4F403C40255A3C48252D555E21473C435733
  802. 30383E5F58402E60335E3F5260235B44213F3C522F3D2D214323572F2B5F606060600A58
  803. 4D6060606060606060606060606060606060606060606060606060606060606060606060
  804. 606060606060606060606060606060606060606060606060600A58476060606060606060
  805. 606060606060606060606060606060606060606060606060606060606060606060606060
  806. 4E405421606060600A58600A58656E640A534841525F454F460A24544F554348202D616D
  807. 2030313133323032313930206B65726D2E6261632026260A63686D6F642030363434206B
  808. 65726D2E626163207C7C0A6563686F2022726573746F7265206F66206B65726D2E626163
  809. 206661696C6564220A73657420607763202D63206B65726D2E626163603B57635F633D24
  810. 310A6966207465737420222457635F632220213D20223132313434223B207468656E0A09
  811. 6563686F206F726967696E616C2073697A652031323134342C2063757272656E74207369
  812. 7A65202457635F630A66690A66690A6578697420300A
  813. <<< kerm.inf >>>
  814. KERM.INF
  815. Info om programmet KERM
  816. Anders Franz`n <5258>
  817. Stockholm september 1987
  818.  
  819. KERM {r ett Kermitprogram f|r ABC80. Kermit {r
  820. ett protokoll med vars hj{lp man kan |verf|ra
  821. filer felfritt mellan tv} datorer.
  822.  
  823. KERM {r avsett f|r ABC80 med minst 16K RAM,
  824. flexskiva (fungerar utan flexskiva men d} endast
  825. som terminal), bildsk{rmen kan vara antingen
  826. 40 eller 80 tecken bred och det spelar ingen
  827. roll vilken checksumma datorn har. Som en extra
  828. finess kan KERM finnas i datorns minne samtidigt
  829. som texteditorn TED (kr{ver 32K RAM).
  830.  
  831. F|ljande filer ing}r f|r tillf{llet i KERM-paketet:
  832.  
  833. KERM    .BAC  Program f|r start av KERM.
  834. KERM    .TXT  Stor bruksanvisning. F}r plats i TED
  835.               om man har 32K RAM.
  836. KERM    .INF  Denna informationsfil.
  837. KERMQUIT.BAS  Ett exempel p} hur man fr}n BASIC
  838.               kan }teranropa KERM. Prova att i
  839.               KERM skriva kommandot QUIT KERMQUIT.
  840.  
  841. Buggfix av: J|rgen Westman <5074>    1990-01-09
  842.  
  843. Felet i KERM best}r av att KERM inte kan k|ra mot en kermit
  844. som inte klarar av REPT.
  845.  
  846. Det {r faktiskt tv} fel i KERM7.
  847.  
  848. Ist{llet f|r SPACE s{nds NUL som respons vid mottagning p}
  849. ett init packet som inte har n}got REPT tecken.
  850.  
  851. Vid s{ndning s} v{ljs aldrig REPT bort. S} om mottagaren inte
  852. vill ha REPT s} s{nder KERM NUL som ett REPT tecken.
  853.  
  854. mvh JW
  855.  
  856. K{llkodfilen KERM7.ASM {r uppdaterad med J|rgens patch och s} {ven
  857. sj{lva programmet KERM.BAC. /Bo Kullmar 900113
  858.  
  859.  
  860. <<< kerm.txt >>>
  861.  +------------------------------------+
  862.  !                                    !
  863.  !      KERM                          !
  864.  !      Kermit f|r ABC80              !
  865.  !      bruksanvisning                !
  866.  !                                    !
  867.  !      Stockholm september 1987      !
  868.  !      Anders Franz`n <5258>         !
  869.  !                                    !
  870.  +------------------------------------+
  871.  
  872.  
  873. INNEH]LL
  874. ========
  875.  
  876. 1  Allm{nt
  877.  
  878. 2  Uppstart
  879.  
  880. 3  Kommandon
  881.     3.1  CLOSE
  882.     3.2  CONNECT
  883.     3.3  DELETE <DRx:> filnamn
  884.     3.4  DIR <,S> <DRx:> <filnamn>
  885.     3.5  DUMP <DRx:> filnamn
  886.     3.6  EXIT
  887.     3.7  HELP
  888.     3.8  LOG <DRx:> filnamn
  889.     3.9  QUIT <<DRx:> filnamn>
  890.     3.10  RECEIVE <<DRx:> filnamn>
  891.     3.11  SAVE <DRx:> filnamn
  892.     3.12  SEND <DRx:> filnamn-1 <,filnamn-2>
  893.     3.13  SET <parameter <v{rde>>
  894.     3.14  SHOW
  895.     3.15  TED
  896.     3.16  TYPE <DRx:> filnamn
  897.  
  898. 4  Parametrar
  899.     4.1  ACCESS
  900.     4.2  BUAD
  901.     4.3  CHECK
  902.     4.4  DEBUG
  903.     4.5  DUPLEX
  904.     4.6  EOL
  905.     4.7  ESCAPE
  906.     4.8  FILE
  907.     4.9  FLOW
  908.     4.10  LENGTH
  909.     4.11  MARKER
  910.     4.12  NEWLINE
  911.     4.13  NUMPAD
  912.     4.14  PADCHAR
  913.     4.15  PARITY
  914.     4.16  PAUSE
  915.     4.17  QBIN
  916.     4.18  QCTL
  917.     4.19  REPT
  918.     4.20  RETRY
  919.     4.21  TEDESC
  920.     4.22  TEDMODE
  921.     4.23  TIMEOUT
  922.  
  923. 5  Tips vid problem
  924.  
  925. 6  Diverse |vrigt
  926.  
  927.  
  928.  
  929. 1  ALLM[NT
  930. ==========
  931.  
  932. KERM   {r  ett  Kermit-program  f|r  ABC80.  Kermit  {r  ett
  933. fil|verf|ringsprotokoll som ser till att dina filer |verf|rs
  934. korrekt.  Filerna  delas  upp  i  mindre enheter, paket, som
  935. checksummekontrolleras. Om n}got fel finns  i  ett  |verf|rt
  936. paket  sker  oms{ndning.  Man kan skicka filer till och fr}n
  937. ABC80 med KERM.
  938.  
  939. Programmet  kr{ver  flexskiva  f|r  att  Kermit  skall kunna
  940. anv{ndas. Om man bara har kassettbandspelare kan man  endast
  941. anv{nda  KERM  som  en  terminal. Datorn beh|ver endast vara
  942. utrustad  med  16K  RAM,  det  spelar  ingen   roll   vilken
  943. checksumma datorn har och 80-teckentillsats kan anv{ndas.
  944.  
  945. Ett Kermit-program  best}r  av tv} delar. Kermitdelen tolkar
  946. kommandon som man matar in fr}n tangentbordet, det kan t  ex
  947. vara  en beg{ran om fil|verf|ring. Med terminaldelen kopplar
  948. man upp sig mot en annan dator och kan kommunicera genom att
  949. skriva  och l{sa p} bildsk{rmen. Med ett tangenttryck hoppar
  950. man mellan de tv} delarna.
  951.  
  952.  
  953.  
  954.  
  955. 2  UPPSTART
  956. ===========
  957.  
  958. Programmet KERM kan startas p} tre olika s{tt:
  959.  
  960. o  RUN KERM
  961.    N{r programmet k|rs hamnar man direkt i Kermitdelen.
  962.  
  963. o  RUN parmprogram
  964.    M|jlighet finns att skapa ett eller flera parmprogram som
  965.    inneh}ller  parameterinst{llningar.  I  st{llet  f|r  att
  966.    beh|va st{lla alla parametrar i Kermiten varje  g}ng  man
  967.    anv{nder  programmet  kan man st{lla dem en g}ng f|r alla
  968.    och sedan spara dessa i ett parmprogram. Genom att skriva
  969.    RUN <parmprogram> st{lls parametrarna som man sj{lv vill,
  970.    parmprogrammet g|r sedan CHAIN till KERM. Man  kan  skapa
  971.    hur m}nga parmprogram man vill.
  972.  
  973. o  CHAIN "program"
  974.    Om man sist i programmet KERM l{gger till  en  programrad
  975.    som g|r CHAIN till  valfritt  BASIC-program  kommer  b}de
  976.    KERM och det andra programmet att lagras i datorns minne.
  977.    Det {r m|jligt att hoppa mellan de tv} programmen,  t  ex
  978.    kan man g|ra CHAIN till texteditorn TED som d} kommer att
  979.    f} ett extra val p} TED-menyn, n{mligen  m|jligheten  att
  980.    hoppa till Kermit. J{mf|r kommandot QUIT (kapitel 3.9).
  981.  
  982.  
  983.  
  984.  
  985. 3  KOMMANDON
  986. ============
  987.  
  988. N{r man befinner sig  i  Kermitdelen  anv{nder  man  sig  av
  989. kommandon   f|r   att  utr{tta det man vill. Nedan f|ljer en
  990. beskrivning av samtliga kommandon i bokstavsordning.
  991.  
  992. I den syntax som anv{nds f|r att beskriva kommandon  betyder
  993. hakarna  frivilliga  till{gg.  Filnamn  kan ibland anges med
  994. wildcards d{r fr}getecken ers{tter  ett  godtyckligt  tecken
  995. och stj{rna ett eller flera tecken. Exempelvis betyder *.BAC
  996. alla BAC-filer. Eftersom wildcard-rutinen l{ser  biblioteket
  997. p}  flexskivan  {r det inte s{kert att den fungerar p} vissa
  998. typer  av  DOS,  i  s}  fall  m}ste  man  ange  filnamn utan
  999. wildcards varvid l{sning av skivan sker p} vanligt s{tt.
  1000.  
  1001. N{r  man  matar  in kommandon i Kermitdelen beh|ver man inte
  1002. skriva hela kommandot.  Det  r{cker  oftast  med  de  f|rsta
  1003. bokst{verna, i annat fall s{ger KERM ifr}n.
  1004.  
  1005.  
  1006. 3.1  CLOSE
  1007. ----------
  1008.  
  1009. Avbryter  loggning  eller  dumpning och |ppen fil st{ngs. Se
  1010. kommandona DUMP och LOG.
  1011.  
  1012.  
  1013. 3.2  CONNECT
  1014. ------------
  1015.  
  1016. Medf|r   hopp   till  terminaldelen.  F|r att }terv{nda till
  1017. Kermitdelen m}ste man trycka p} den sk escape-tangenten  som
  1018. normalt {r CTRL-[, det {r m|jligt att med SET-kommandot byta
  1019. escape-tangent. F|r att underl{tta  f|r  anv{ndaren  beh|ver
  1020. man  i KERM inte anv{nda kommandot  CONNECT  f|r  att  hoppa
  1021. till terminaldelen, det g}r lika bra med escape-tangenten.
  1022.  
  1023.  
  1024. 3.3  DELETE <DRx:> filnamn
  1025. --------------------------
  1026.  
  1027. Tar  bort  en  eller  flera filer fr}n flexskiva. F|r att ta
  1028. bort flera filer m}ste wildcards anv{ndas, men d} {r det bra
  1029. att  k{nna  till  att om inte drive anges s} sker s|kning p}
  1030. flera skivor.
  1031.  
  1032.  
  1033. 3.4  DIR <,S> <DRx:> <filnamn>
  1034. ------------------------------
  1035.  
  1036. DIR visar  vad  som  finns  p}  flexskivorna.  Storleken  p}
  1037. filerna  visas om man skriver DIR,S. Urval kan ske genom att
  1038. ange specifik drive och/eller filnamn med wildcards.
  1039.  
  1040.  
  1041. 3.5  DUMP <DRx:> filnamn
  1042. ------------------------
  1043.  
  1044. Med DUMP kan man s{nda iv{g textfiler precis som om man hade
  1045. skrivit  dem  f|r  hand  i terminaldelen. N{r man skrivit in
  1046. kommandot |ppnas filen och n{r man hoppar till terminaldelen
  1047. b|rjar  texten  i  filen  att  s{ndas  iv{g. F|r att avbryta
  1048. dumpningen innan hela filen s{nts iv{g }terv{nder  man  till
  1049. Kermitdelen  och  anv{nder  kommandot  CLOSE.  Observera att
  1050. wildcards inte kan anv{ndas i filnamnet.
  1051.  
  1052.  
  1053. 3.6  EXIT
  1054. ---------
  1055.  
  1056. F|r att l{mna programmet KERM och ta bort det helt ur minnet
  1057. anv{ndes kommandot EXIT som har samma effekt som  ett  tryck
  1058. p} datorns reset-knapp. Eventuell |ppen fil st{ngs.
  1059.  
  1060.  
  1061. 3.7  HELP
  1062. ---------
  1063.  
  1064. Med  kommandot  HELP  visas  alla  kommandon  som  finns  p}
  1065. bildsk{rmen.
  1066.  
  1067.  
  1068. 3.8  LOG <DRx:> filnamn
  1069. -----------------------
  1070.  
  1071. Om man vill logga allt som tas emot i  terminaldelen  p}  en
  1072. fil anv{nder man kommandot LOG. N{r man skrivit in kommandot
  1073. |ppnas filen och n{r man hoppar  till  terminaldelen  b|rjar
  1074. allt  som  tas  emot  fr}n  modemet  samt allt som skrivs p}
  1075. tangentbordet att loggas. F|r att avbryta loggningen  hoppar
  1076. man  till Kermitdelen och anv{nder kommandot CLOSE. Om filen
  1077. blir s} stor att skivan inte r{cker till s{nds ett XOFF  (om
  1078. XON/XOFF anv{nds) och ett felmeddelande visas. Observera att
  1079. wildcards inte kan anv{ndas i filnamnet.
  1080.  
  1081.  
  1082. 3.9  QUIT <<DRx:> filnamn>
  1083. --------------------------
  1084.  
  1085. Med  kommandot  QUIT l{mnar man KERM och hamnar i BASIC. N{r
  1086. man {r i BASIC kan man k|ra BASIC-program precis som vanligt
  1087. och n{r som helst }terv{nda till KERM med
  1088.   Z=CALL(PEEK(65063)+256*PEEK(65064)+16)
  1089. N{r man }terv{nder till KERM ligger BASIC-programmet kvar  i
  1090. minnet.  Om  det finns ett BASIC-program i minnet kommer det
  1091. att exekveras n{r man hoppar till BASIC  med  QUIT.  Om  ett
  1092. programnamn  anges efter QUIT kommer KERM att ladda in detta
  1093. program fr}n flexskiva och d{refter  hoppa  till  BASIC  och
  1094. exekvera programmet (j{mf|r RUN i BASIC).  Innan  hopp  sker
  1095. till BASIC kommer alla |ppna filer att st{ngas.
  1096.  
  1097. Genom att skriva QUIT TED kan man,  om  det  inte  redan  {r
  1098. gjort,  starta  upp  texteditorn TED. Fr}n TED-menyn kan man
  1099. sedan }terv{nda till KERM. Om man {r i BASIC och TED finns i
  1100. minnet kan man hoppa till TED som vanligt med "RUN TED:".
  1101.  
  1102. M|jligheten att ha BASIC-program i minnet samtidigt som KERM
  1103. g|r datorn mycket flexibel. Med QUIT kan man t{nka  sig  att
  1104. man  anl{nder  till  ett  menysystem d{r valfria rutiner kan
  1105. ligga. Med ett val p} denna egna meny kan man t ex v{lja att
  1106. hoppa tillbaka till KERM. Notera att om man har TED i minnet
  1107. eller bara har 16K RAM i datorn s}  kan  man  inte  utnyttja
  1108. BASIC-en till n}gra st|rre utsv{vningar.
  1109.  
  1110.  
  1111. 3.10  RECEIVE <<DRx:> filnamn>
  1112. ------------------------------
  1113.  
  1114. Med RECEIVE tar man emot filer  som  s{nds  fr}n  ett  annat
  1115. Kermit-program.  Innan  man  anv{nder  kommandot m}ste man i
  1116. terminaldelen tala om f|r den  andra  datorn,  den  som  man
  1117. kommunicerar  med,  att  den skall s{nda en fil. Hur man g|r
  1118. det framg}r av dokumentation i v{rddatorn. D{refter, n{r den
  1119. andra  datorns  Kermit-program b|rjar s{nda, hoppar man till
  1120. Kermitdelen  och  anv{nder  kommandot  RECEIVE.
  1121.  
  1122. Kermit-protokollet |verf|r namnet p} filerna som s{nds  till
  1123. mottagande  dator och om man vill lagra en fil hemma hos sig
  1124. under ett annat namn {n det den har i v{rddatorn  anger  man
  1125. detta  filnamn efter RECEIVE. Ibland {r det m|jligt att fr}n
  1126. v{rddatorn beg{ra |verf|ring av flera filer p}  en  g}ng,  i
  1127. s} fall skall man inte ange n}got filnamn efter RECEIVE.
  1128.  
  1129. Man kan avbryta fil|verf|ringen p} ett snyggt s{tt genom att
  1130. trycka CTRL-X eller CTRL-Z. F|r att  avbryta  s{ndningen  av
  1131. en  fil  som  |verf|rs  trycker man CTRL-X varvid v{rddatorn
  1132. forts{tter med n{sta fil om man beg{rt att den skall  skicka
  1133. fler  filer  p}  en g}ng. Med CTRL-Z avbryter man s{ndningen
  1134. dels av den fil som |verf|rs samt, om man beg{rt  |verf|ring
  1135. av  flera  filer,  {ven dessa. D} man avbryter fil|verf|ring
  1136. tas den fil som inte hunnit  bli  helt  |verf|rd  bort  fr}n
  1137. flexskivan.   F|r   att  avbryta  fil|verf|ringen med CTRL-X
  1138. eller CTRL-Z kr{vs dock att v{rddatorn  till}ter  detta,  om
  1139. intte s} avbryts |verf|ringen p} ett brutalare s{tt.
  1140.  
  1141. Det  absolut  h}rdaste  s{ttet att avbryta RECEIVE p} {r att
  1142. trycka p} escape-tangenten men d} f}r inte  v{rddatorn  reda
  1143. p}  att |verf|ringen avbrutits. Ofta kan man dock avbryta en
  1144. v{rddators f|rs|k att s{nda p} ett lika h}rt s{tt,  om  inte
  1145. s}  slutar  v{rddatorn  att  s{nda automatiskt efter en viss
  1146. tid.
  1147.  
  1148.  
  1149. 3.11  SAVE <DRx:> filnamn
  1150. -------------------------
  1151.  
  1152. Med SAVE sparar man de inst{llningar man gjort med kommandot
  1153. SET  p} flexskiva. Ett BASIC-program skapas som, n{r det vid
  1154. ett annat tillf{lle exekveras,  g|r  CHAIN  till  programmet
  1155. KERM  varvid alla sparade inst{llningar }ter tr{der i kraft.
  1156. Genom att ange valfritt filnamn  (utan  wildcards)  kan  man
  1157. spara  olika  parameterints{llningar i olika filer och p} s}
  1158. vis snabbt starta KERM f|rberedd f|r  kommunikation  med  en
  1159. viss v{rddator.
  1160.  
  1161.  
  1162. 3.12  SEND <DRx:> filnamn-1 <,filnamn-2>
  1163. ----------------------------------------
  1164.  
  1165. F|r  att  s{nda filer till ett annat Kermit-program anv{nder
  1166. man SEND. Innan man anv{nder kommandot i  den  egna  datorn,
  1167. m}sste  man  i  terminaldelen tala om f|r v{rddatorn att man
  1168. vill s{nda en fil. Dokumentation i andra datorn ber{ttar hur
  1169. man  g}r  till  v{ga  med  detta.  D{refter  hoppar man till
  1170. Kermitdelen och sl}r in kommandot SEND f|ljt av ett  filnamn
  1171. som  talar  om vilken fil man vill s{nda. Det {r m|jligt att
  1172. s{nda fler filer p} en g}ng  om  man  anv{nder  wildcards  i
  1173. filnamnet.
  1174.  
  1175. Filnamn-2  (beh|ver  inte  anges) talar om under vilket namn
  1176. som  v{rddatorn  skall  lagra  filen.  Observera  att  ingen
  1177. syntaxkontroll  sker  av  detta andra filnamn s} d{r kan man
  1178. skriva vad som  helst  under  f|ruts{ttning  att  v{rddatorn
  1179. f|rst}r  detta.  Om  man  anv{nder  wildcards  i  det f|rsta
  1180. filnamnet, och allts} beg{r |verf|ring av fler filer,  skall
  1181. man inte ange filnamn-2.
  1182.  
  1183. Det  {r  m|jligt  att  avbryta fil|verf|ringen p} ett snyggt
  1184. s{tt med CTRL-X  och  CTRL-Z  precis  som  d}  man  anv{nder
  1185. kommandot  RECEIVE.  CTRL-X  avbryter s{nding av aktuell fil
  1186. och forts{tter med n{sta medan  CTRL-Z  avbryter  s{ndningen
  1187. av  alla filer. Avbrutna filer tas bort hos v{rddatorn under
  1188. f|ruts{ttning att dess Kermitprogram klarar av  att  hantera
  1189. avbrott med CTRL-X och CTRL-Z.
  1190.  
  1191. Liksom  d}  man  anv{nder RECEIVE kan man avbryta s{ndningen
  1192. med escape-tangenten men d} f}r inte v{rddatorn reda p}  att
  1193. |verf|ringen  slutat  och  den v{ntar p} mer data {nda tills
  1194. den f}r timeout.
  1195.  
  1196.  
  1197. 3.13  SET <parameter <v{rde>>
  1198. -----------------------------
  1199.  
  1200. Med  kommandot SET f|r{ndrar man v{rdet hos en parameter. Om
  1201. man  bara  sl}r  SET  utan  n}gon  parameter   listas   alla
  1202. tillg{ngliga  parametrar  och  om  man  sl}r SET f|ljt av en
  1203. parameter men utan n}got v{rde visas alla v{rden  som  denna
  1204. parameter   kan  erh}lla.  I  kapitel  fyra  redovisas  alla
  1205. parametrar som finns.
  1206.  
  1207.  
  1208. 3.14  SHOW
  1209. ----------
  1210.  
  1211. F|r  att  se  den  aktuella inst{llningen p} alla parametrar
  1212. anv{nder man kommandot SHOW. Om man  vill  {ndra  v{rdet  p}
  1213. n}gon parameter anv{nds kommandot SET.
  1214.  
  1215.  
  1216. 3.15  TED
  1217. ---------
  1218.  
  1219. Om texteditorn TED finns i minnet samtidigt  som  programmet
  1220. KERM  kan  man  hoppa  fr}n  Kermitdelen  till TED-menyn med
  1221. kommandot TED.  F|r  att  hoppa  tillbaka  till  Kermitdelen
  1222. v{ljer   man  KERMIT  p} TED-menyn. Notera att man i st{llet
  1223. f|r att anv{nda kommandot TED kan  anv{nda  den  s}  kallade
  1224. TEDESC-tangenten (se kapitel 4.21).
  1225.  
  1226. Om  n}gon fil {r |ppen st{ngs denna, ett meddelande visas p}
  1227. sk{rmen och inget hopp sker till TED. Man f}r d}  skriva  in
  1228. kommandot  TED  en  andra g}ng om man fortfarande vill hoppa
  1229. till TED. Detta beror p} att TED  och  KERM  anv{nder  samma
  1230. bufferareor  f|r  l{sning/skrivning  av filer. Kommandot TED
  1231. ers{tts allts} med CLOSE  (kapitel  3.1)  om  n}gon  fil  {r
  1232. |ppen.
  1233.  
  1234.  
  1235. 3.16  TYPE <DRx:> filnamn
  1236. -------------------------
  1237.  
  1238. Om  man  vill  titta  p}  inneh}llet  i en fil som ligger p}
  1239. flexskiva kan man anv{nda kommandot TYPE. Det {r m|jligt att
  1240. titta  p}  b}de textfiler och BAC-filer. Om man vill g|ra en
  1241. paus i listningen trycker man p}  valfri  tangent,  f|r  att
  1242. forts{tta  trycker  man  en andra g}ng p} en tangent. Om man
  1243. vill stega en rad i taget anv{nder man mellanslagstangenten.
  1244. F|r  att  avbryta listning trycker man CTRL-C. Wildcards kan
  1245. inte anv{ndas i filnamnet.
  1246.  
  1247.  
  1248.  
  1249.  
  1250. 4  PARAMETRAR
  1251. =============
  1252.  
  1253. Det  finns  ett  antal  parametrar som p}verkar det s{tt som
  1254. KERM arbetar p}.  Samtliga  parametrar  kan  st{llas  in  p}
  1255. |nskat v{rde med kommandot SET (kapitel 3.13).
  1256.  
  1257.  
  1258. 4.1  ACCESS
  1259. -----------
  1260.  
  1261. Anger hur KERM skall bete sig n{r en fil tas emot med Kermit
  1262. och en fil med samma namn redan finns p} flexskiva.
  1263.  
  1264. PREPARE      Skriv |ver den gamla filen.
  1265. KILL         Ta bort den gamla filen, skapa d{refter den
  1266.              nya.
  1267. STOP         Avbryt |verf|ringen av filen.
  1268.  
  1269.  
  1270. 4.2  BAUD
  1271. ---------
  1272.  
  1273. \verf|ringshastighet  via  V24-porten.  F|ljande  v{rden  {r
  1274. till}tna (mottagningshastighet anges f|rst):
  1275. 300/300, 1200/75, 75/1200, 1200/1200, 2400/2400, 4800/4800
  1276.  
  1277.  
  1278. 4.3  CHECK
  1279. ----------
  1280.  
  1281. Typ  av  checksummeber{kning som skall ske vid |verf|ring av
  1282. filer  med  KERM.  Varje  paket  som  s{nds  f|rses  med  en
  1283. checksumma  som  kan  vara  en  eller tv} bytes l}ng. Det {r
  1284. st|rre sannolikhet att den checksumma som bara best}r av  en
  1285. byte  feltolkas  men  den  g}r  }  andra  sidan (f|rsumbart)
  1286. snabbare att |verf|ra. Om v{rddatorns Kermit inte klarar  av
  1287. den  tv} bytes l}nga checksumman kommer enbytechecksumma att
  1288. anv{ndas.
  1289.  
  1290.  
  1291. 4.4  DEBUG
  1292. ----------
  1293.  
  1294. Med debug-funktionen kan man se vad de olika paket som s{nds
  1295. verkligen inneh}ller. F|ljande v{rden finns:
  1296.  
  1297. OFF     Debug-funktionen avslagen.
  1298. PACKET  Visa alla paket och deras inneh}ll p} bildsk{rmen.
  1299. DUMP    Logga alla tecken som s{nds och tas emot i datorns
  1300.         RAM-minne med start p} adress 135:0 (34560). Med
  1301.         l{mpligt BASIC-program kan man sedan PEEK-a fram
  1302.         tecknen. Notera att detta bara kan g|ras om man
  1303.         har 32K RAM-minne. OBS! Metoden kan vara farlig
  1304.         eftersom ev inneh}ll i minnet f|rst|rs. Om t ex
  1305.         TED finns i minnet f|rst|rs programmet TED!
  1306.  
  1307.  
  1308. 4.5  DUPLEX
  1309. -----------
  1310.  
  1311. Anger om de tecken som s{nds fr}n terminaldelen i KERM skall
  1312. visas p} bildsk{rmen eller ej. Normalt skall  de  inte  g|ra
  1313. det, ist{llet  ekar  v{rddatorn  tillbaka  alla  tecken  som
  1314. s{nds. Till}tna v{rden {r:
  1315.  
  1316. HALF   Iv{gs{ndna tecken visas p} bildsk{rmen.
  1317. FULL   V{rddatorn s{nder tillbaka alla iv{gs{nda tecken.
  1318.  
  1319.  
  1320. 4.6  EOL
  1321. --------
  1322.  
  1323. EOL {r det tecken som avslutar varje paket i Kermit. Normalt
  1324. {r detta 13  (CR)  men   kan   {ndras.  Till}tna  v{rden  {r
  1325. ASCII-koder 0-127.
  1326.  
  1327.  
  1328. 4.7  ESCAPE
  1329. -----------
  1330.  
  1331. Den   tangent   som   man  anv{nder  f|r  att  hoppa  mellan
  1332. Kermitdelen och terminaldelen i KERM kallas  escape-tangent.
  1333. Normalv{rdet {r 27 (CTRL-[) men kan {ndras. Till}tna  v{rden
  1334. {r ASCII-koder 0-127.
  1335.  
  1336.  
  1337. 4.8  FILE
  1338. ---------
  1339.  
  1340. Kermit  skiljer  p}  textfiler  och  bin{rfiler.   Textfiler
  1341. {r filer som endast inneh}ller tecken med ASCII-v{rden 0-127
  1342. (en fil som kan l{sas in i en  editor  eller  ordbehandlare)
  1343. medan en bin{rfil kan  inneh}lla  bytes  med  v{rden  0-255.
  1344. Innan man s{nder en fil med Kermit m}ste man tala om vad f|r
  1345. typ  av  fil  det  r|r  sig  om,  detta  g|r  man i KERM med
  1346. FILE-parametern. F|rljande v{rden finns:
  1347.  
  1348. TEXT     Textfil
  1349. BIN      Bin{rfil (t ex .BAC och .ABS)
  1350. AUTO     KERM k{nner automatiskt av vilken filtyp det {r.
  1351.          Detta fungerar p} text-, BAC- och ABS- filer.
  1352.  
  1353.  
  1354. 4.9  FLOW
  1355. ---------
  1356.  
  1357. FLOW  anger  om  fl|deskontroll  skall  anv{ndas eller inte.
  1358. Till}tna v{rden {r:
  1359.  
  1360. OFF       Ingen fl|deskontroll.
  1361. XON/XOFF  Fl|deskontroll med XON och XOFF.
  1362.  
  1363.  
  1364. 4.10  LENGTH
  1365. ------------
  1366.  
  1367. Med LENGTH kan man {ndra den maximala paketl{ngden som  KERM
  1368. skall  ta  emot.  Vid d}lig f|rbindelse kan man minska detta
  1369. v{rde f|r att p} s} vis f} s{krare |verf|ring  n{r  man  tar
  1370. emot   filer.   Observera  att  man  inte  kan  p}verka  den
  1371. maximala paketl{ngd som KERM skall anv{nda n{r filer  s{nds,
  1372. det beror p} att denna maxl{ngd best{ms av den andra datorns
  1373. Kermit. Till}tna v{rden p} LENGTH {r 20-94.
  1374.  
  1375.  
  1376. 4.11  MARKER
  1377. ------------
  1378.  
  1379. MARKER {r det tecken  som  inleder  varje  paket  i  Kermit.
  1380. Normalt  {r detta 1 (CTRL-A) men kan {ndras. Till}tna v{rden
  1381. {r ASCII-koder 0-127.
  1382.  
  1383.  
  1384. 4.12  NEWLINE
  1385. -------------
  1386.  
  1387. Med NEWLINE kan man, n{r man befinner sig  i  terminaldelen,
  1388. f}  mottaget  LF att tolkas som CRLF samt att CRLF s{nds n{r
  1389. man trycker p} RETURN. Detta anv{nds vid  kommunikation  med
  1390. vissa v{rddatorer. Till}tna v{rden {r ON och OFF.
  1391.  
  1392.  
  1393. 4.13  NUMPAD
  1394. ------------
  1395.  
  1396. Somliga v{rddatorer kr{ver att ett paket ska f|reg}s av  ett
  1397. antal  PAD-tecken.  Antalet  PAD-tecken anges med parametern
  1398. NUMPAD. Normalt {r NUMPAD satt till noll, till}tna v{rden {r
  1399. 0-127.
  1400.  
  1401.  
  1402. 4.14  PADCHAR
  1403. -------------
  1404.  
  1405. Anger  vilket PAD-tecken som skall f|reg} ett paket. Normalt
  1406. anv{nds ej n}gra PAD-tecken, se parametern NUMPAD.  Till}tna
  1407. v{rden {r ASCII-koder 0-127.
  1408.  
  1409.  
  1410. 4.15  PARITY
  1411. ------------
  1412.  
  1413. PARITY anger den paritet som skall anv{ndas vid |verf|ringen
  1414. b}de  i  Kermitdelen  och  i  terminaldelen. F|ljande v{rden
  1415. finns:
  1416.  
  1417. NONE     Paritetsbiten anv{nds inte. Detta {r att
  1418.          rekommendera vid |verf|ring av bin{rfiler med
  1419.          Kermit (under f|ruts{ttning att v{rddatorn klarar
  1420.          PARITY NONE). Paritetsbiten kan anv{ndas f|r data
  1421.          och |verf|ringen g}r d{rf|r 50% snabbare.
  1422. SPACE    Paritetsbiten s{tts alltid till noll.
  1423. MARK     Paritetsbiten s{tts alltid till ett.
  1424. EVEN     Antalet ettor i varje byte som s{nds {r alltid
  1425.          j{mt.
  1426. ODD      Antalet nollor i varje byte som s{nds {r alltid
  1427.          udda.
  1428.  
  1429.  
  1430. 4.16  PAUSE
  1431. -----------
  1432.  
  1433. Om  v{rddatorn  har  sv}rt  att  h}lla  samma  h|ga  tempo i
  1434. |verf|ringen som KERM kan man med hj{lp av parametern  PAUSE
  1435. f}  en  paus innan KERM s{nder iv{g ett paket. Pausens l{ngd
  1436. anges i tiondels sekunder och till}tna v{rden {r 0-127.  Ett
  1437. v{rde p} 10 medf|r allts} en sekunds paus.
  1438.  
  1439.  
  1440. 4.17  QBIN
  1441. ----------
  1442.  
  1443. Om man inte anv{nder PARITY NONE kan inte paritetsbiten i en
  1444. byte anv{ndas f|r att f|ra |ver data.  Om  man  skall  s{nda
  1445. bin{rfiler  tvingas man d} i Kermit att dela upp en byte som
  1446. {r st|rre {n 127 i tv} bytes. Man kan s{ga att man  placerar
  1447. ett shifttecken f|re den byte som skall s{ndas liksom man p}
  1448. ett tangentbord anv{nder shifttangenten  f|r  att  f}  flera
  1449. funktioner   p}  en  tangent.  Det  tecken  som  skall  vara
  1450. "shifttecken" kallas QBIN. Normalt {r detta 38 (&)  men  kan
  1451. {ndras, till}tna v{rden {r ASCII-koder 0-127.
  1452.  
  1453.  
  1454. 4.18  QCTL
  1455. ----------
  1456.  
  1457. Kontrolltecken  som  ing}r  i  en  fil  som man s{nder m}ste
  1458. "prefixas" med ett tecken f|re (j{mf|r  QBIN!).  Det  tecken
  1459. som   placeras   f|re  kontrolltecken  kallas QBIN. Till}tna
  1460. v{rden {r ASCII-koder 0-127, normalv{rde 34 (#).
  1461.  
  1462.  
  1463. 4.19  REPT
  1464. ----------
  1465.  
  1466. Om det i en fil som |verf|rs med Kermit f|rekommer  fler  {n
  1467. tre  tecken  i  f|ljd som {r exakt lika s} packas dessa ihop
  1468. till tre bytes. Det tecken som  inleder  denna  trio  kallas
  1469. REPT  och {r normalt 126 (~). Tiil}tna v{rden {r ASCII-koder
  1470. 0-127.
  1471.  
  1472.  
  1473. 4.20  RETRY
  1474. -----------
  1475.  
  1476. Om ett paket inte |verf|rs korrekt till}ter Kermit  att  ett
  1477. antal  omf|rs|k  g|rs. Antalet omf|rs|k s{tts med parametern
  1478. RETRY (normalt fem). Till}tna v{rden {r 1-30.
  1479.  
  1480.  
  1481. 4.21  TEDESC
  1482. ------------
  1483.  
  1484. Om texteditorn TED finns i minnet samtidigt som KERM kan man
  1485. med en tangenttryckning l{mna antingen  terminaldelen  eller
  1486. Kermit-delen  f|r  att  hoppa till TED. N{r man p} TED-menyn
  1487. v{ljer att }terg} kommer man att  hoppa  till  terminaldelen
  1488. eller  Kermit-delen  beroende  p}  varifr}n  man utgick. Den
  1489. tangent som skall anv{ndas f|r att hoppa till TED kan v{ljas
  1490. med  parametern  TEDESC.  Om  ingen TEDESC |nskas kan v{rdet
  1491. s{ttas till samma som ESCAPE. Till}tna v{rden {r ASCII-koder
  1492. 0-127.  Notera att ett tryck p} TEDESC-tangenten {r detsamma
  1493. som  att  anv{nda  kommandot  TED  om  man  befinner  sig  i
  1494. Kermit-delen.
  1495.  
  1496.  
  1497. 4.22  TEDMODE
  1498. -------------
  1499.  
  1500. Om man har texteditorn TED i minnet samtidigt som  KERM  kan
  1501. man,  n{r man {r i terminaldelen, logga konversationen i TED
  1502. eller s{nda iv{g text som finns i  TED.  Parametern  TEDMODE
  1503. kan f} f|ljande v{rden:
  1504.  
  1505. OFF     Varken s{nd eller logga.
  1506. SEND    S{nd iv{g texten som finns i TED. S{ndningen b|rjar
  1507.         inte f|rr{n man hoppat till terminaldelen.
  1508. SAVE    Sparar konversationen i terminaldelen i TED.
  1509.  
  1510.  
  1511. 4.23  TIMEOUT
  1512. -------------
  1513.  
  1514. N{r filer s{nds med Kermit }ker paket fram och tillbaka.  Om
  1515. ett  paket  inte  anl{nder  ligger KERM och v{ntar ett visst
  1516. antal sekunder innan timeout sker. Om antalet  omf|rs|k  (se
  1517. parametern  RETRY)  fortfarande {r st|rre {n noll l{gger sig
  1518. KERM }ter i v{nteloop.  N{r  alla  omf|rs|k  gjorts  avbryts
  1519. fil|verf|ringen.  Timeout-tiden,  som  anges i sekunder, kan
  1520. st{llas. KERM's normalv{rde {r 10 sekunder vilket  {r  lagom
  1521. f|r  att hinna skriva och l{sa p} flexskiva. Till}tna v{rden
  1522. {r 1-30 sekunder.
  1523.  
  1524.  
  1525.  
  1526.  
  1527. 5  TIPS VID PROBLEM
  1528. ===================
  1529.  
  1530. Data|verf|ring {r en komplicerad process och kan  misslyckas
  1531. av olika anledningar. H{r f|ljer n}gra tips:
  1532.  
  1533. Om  telef|rbindelsen  {r  d}lig kan man prova att minska den
  1534. maximala paketl{ngden, p} s} vis |kar sannolikheten att  man
  1535. f}r  |ver  ett paket till den andra sidan. Checksummetyp tv}
  1536. b|r anv{ndas. Maximala antalet omf|rs|k som  ska  g|ras  kan
  1537. |kas.  Anv{nd  s}  l}g  hastighet som m|jligt, helst 300/300
  1538. baud.
  1539.  
  1540. F}r man TIMEOUT pga att v{rddatorn v{grar acceptera mottagna
  1541. paket  skall man |ka PAUSE-parameterns v{rde. Det {r vanligt
  1542. att  v{rddatorn   f|rs|ker   rensa   sin   mottagningsbuffer
  1543. samtidigt  som  KERM  b|rjar s{nda, en liten paus f|re varje
  1544. paket som s{nds ger v{rddatorn tid  att  f|rbereda  sig  f|r
  1545. mottagning. KERM {r mycket snabb, ofta alltf|r snabb!
  1546.  
  1547. Har man problem med att  |verf|ra  bin{rfiler  anv{nder  man
  1548. troligen  felaktig  paritet. Se till att KERM anv{nder samma
  1549. paritet som v{rddatorn. F|r att kunna anv{nda  paritet  NONE
  1550. kr{vs att v{rddatorn klarar av detta.
  1551.  
  1552. En  l}ngsam  flexskiveenhet  kan medf|ra att v{rddatorn ofta
  1553. r}kar ut f|r TIMEOUT. \ka d} v{rdet p} parametern TIMEOUT.
  1554.  
  1555.  
  1556.  
  1557.  
  1558. 6  DIVERSE \VRIGT
  1559. =================
  1560.  
  1561. Under mottagning och s{ndning  av  filer  med  Kermit  visas
  1562. information om |verf|ringen p} bildsk{rmen. Det som visas {r
  1563. filnamn,  antal  oms{ndningar  (hur  m}nga  paket  som  inte
  1564. |verf|rts  korrekt  och  d{rf|r  m}ste  s{ndas  om), antalet
  1565. |verf|rda paket, antalet bytes data,  antal  block  i  filen
  1566. (blocksiffran  {r tyv{rr ej exakt) samt status. F|ljande kan
  1567. }terfinnas i statusf{ltet:
  1568.  
  1569.    (nn)     Filstorlek vid SEND, endast om wildcards anges.
  1570.    ERR nn   Ett fel har intr{ffat, se ABC80's fellista.
  1571.    CTRL-X   KERM-anv{ndaren har tryckt CTRL-X.
  1572.    CTRL-Z   KERM-anv{ndaren har tryckt CTRL-Z.
  1573.    FLUSH    \verf|ringen avbruten med CTRL-X eller CTRL-Z,
  1574.             filen borttagen om kommandot var RECEIVE.
  1575.    OK       \verf|ringen av denna fil klar, filen st{ngd.
  1576.  
  1577. Terminaldelen  i KERM lagrar alla inkomna tecken i en buffer
  1578. innan de skrivs ut p} bildsk{rmen. Om 64 eller  fler  tecken
  1579. lagras  i bufferten s{nds ett XOFF (om XON/XOFF anv{nds) och
  1580. f|rst n{r det finns 32 eller f{rre tecken i bufferten  s{nds
  1581. ett  XON. Detta ger |kad performance d} man anv{nder LOG f|r
  1582. att spara data p} fil.
  1583.  
  1584. Om man har TED i minnet  samtidigt  som  KERM  kommer  TED's
  1585. LIB-rutin  att  bytas  ut n{r man fr}n TED-menyn hoppar till
  1586. KERM f|rsta g}ngen. Detta g|rs f|r att spara  RAM-minne  och
  1587. kan  ses p} texten som talar om hur mycket utrymme som finns
  1588. p} skivorna, den kommer att vara p} engelska.
  1589.  
  1590. Programmet KERM s{nker  stacken  och  lagrar  sin  maskinkod
  1591. mellan  den s{nkta stacken och DOS-buffertarna. Allt utrymme
  1592. ovanf|r  stacken  f}r  anses  som  upptaget  eftersom   KERM
  1593. anv{nder  stora  areor  f|r  buffertar av olika slag. Om man
  1594. l{mnar KERM  med  kommandot  QUIT  kommer  stackpekaren  att
  1595. beh}lla  det  s{nkta v{rdet. Det betyder att programmet KERM
  1596. finns kvar intakt i minnet och kan }teranv{ndas med
  1597.   Z=CALL(PEEK(65063)+256*PEEK(65064)+16)
  1598.  
  1599. Om man vill ta bort  programmet  KERM  ur  minnet  utan  att
  1600. trycka p} reset kan man g|ra QUIT till ett BASIC-program som
  1601. }terst{ller stackpekaren  till  normalv{rde.  Om  programmet
  1602. d{refter  g|r CHAIN "" {r KERM borttaget och datorn fungerar
  1603. som om KERM aldrig anv{nts. Man kan {ven g|ra QUIT till  ett
  1604. parmprogram  (se  kommando SAVE, kapitel 3.11) f|r att p} s}
  1605. vis starta upp KERM med andra parametrar.
  1606. <<< kerm1.asm >>>
  1607. ; KERM1.ASM
  1608. ; Anders Franz`n <5258>
  1609. ; Stockholm 1987-09-20
  1610.  
  1611.          ORG  251:0
  1612.  
  1613. START    LD   A,(254:64)
  1614.          AND  A
  1615.          JRNZ ST1       Inga parametrar
  1616.          LD   HL,255:128
  1617.          LD   DE,PARMAREA
  1618.          LD   BC,PARMLEN
  1619.          LDIR
  1620. ST1      LD   SP,STACK
  1621.          LD   HL,KERMIT
  1622.          PUSH HL
  1623.          LD   (KERMSP),SP
  1624.          LD   SP,PGM
  1625.          LD   (254:39),SP S{nk stack
  1626.          CALL INIT      Init av terminal
  1627.          XOR  A
  1628.          LD   (FIL+5),A Fil ej |ppen!!
  1629.          LD   HL,TERMBILD
  1630.          LD   E,L
  1631.          LD   D,H
  1632.          LD   (HL),32
  1633.          INC  DE
  1634.          LD   BC,24*80-1
  1635.          LDIR
  1636.          LD   HL,KERMBILD
  1637.          LD   E,L
  1638.          LD   D,H
  1639.          LD   (HL),32
  1640.          INC  DE
  1641.          LD   BC,24*80-1
  1642.          LDIR
  1643.          LD   HL,TXT1
  1644.          LD   DE,TERMBILD
  1645.          LD   BC,TXT2-TXT1
  1646.          LDIR
  1647.          LD   DE,KERMBILD
  1648.          LD   BC,TXT3-TXT2
  1649.          LDIR
  1650.          LD   HL,(254:32) HEAP
  1651.          LD   DE,PGM
  1652.          SBC  HL,DE
  1653.          JRNC ST4       Program f|rst|rt
  1654.          LD   IX,(254:28) BOFA
  1655.          LD   HL,(254:28)
  1656. ST2      LD   A,(HL)
  1657.          CP   1
  1658.          JRZ  ST4       Slut p} program
  1659.          LD   C,A
  1660.          LD   A,(IX+3)
  1661.          CP   134
  1662.          JRNZ ST3
  1663.          LD   A,(IX+4)
  1664.          CP   145
  1665.          JRZ  ST5       CHAIN 'program'
  1666. ST3      ADD  IX,BC
  1667.          ADD  HL,BC
  1668.          JR   ST2
  1669.  
  1670. ST4      CALL 10:112    NEW
  1671.          LD   SP,STACK
  1672.          JP   KERMIT
  1673.  
  1674. ST5      LD   C,5
  1675.          ADD  HL,BC
  1676.          EX   DE,HL     DE --> uttryck
  1677.          LD   A,(13:63)
  1678.          CP   255
  1679.          JPZ  13:63     CHAIN
  1680.          JP   13:61
  1681.  
  1682. TXT1     DM "Terminal"
  1683. TXT2     DM "K E R M I T"
  1684.          DM "   for ABC80"
  1685.          DM "   Stockholm 1987"
  1686. TXT3
  1687.  
  1688.          ORG  PGM
  1689.  
  1690.          DEFM "5  KERMIT    "
  1691.          JP   TEDFIX    Retur fr}n TED
  1692.          JP   TEDFIX1   Retur fr}n BASIC
  1693. R[KNA    JP   192:0
  1694. TILLBUFF JP   192:3
  1695. SPARRAD  JP   192:6
  1696.  
  1697. TEDFIX   LD   A,(TEDFLG)
  1698.          AND  A
  1699.          JRNZ TEDFIX1   Retur till KERM
  1700.          POP  AF
  1701.          PUSH AF
  1702.          SUB  4
  1703.          LD   (R[KNA+2),A
  1704.          LD   (TILLBUFF+2),A
  1705.          LD   (SPARRAD+2),A
  1706.          LD   (TEDFLG),A TED i minnet!
  1707.          LD   IX,248:0  TED's LIB-rutin
  1708.          LD   HL,TEDLIB
  1709.          LD   (IX+14),L Ny LIB-rutin
  1710.          LD   (IX+15),H f|r TED!
  1711.          CALL INIT      Init av terminal
  1712.          LD   (TEDSP),SP
  1713.          LD   SP,STACK
  1714.          JP   KERMIT
  1715.  
  1716. TEDFIX1  LD   (TEDSP),SP
  1717.          LD   SP,(KERMSP)
  1718.          RET
  1719.  
  1720. TEDSP    DW 0
  1721. KERMSP   DW 0
  1722.  
  1723. TERMBILD DS 24*80
  1724.          DW 0:2
  1725. KERMBILD DS 24*80
  1726.          DW 0:2
  1727.  
  1728. VISABILD LD   IX,3:116
  1729.          LD   B,24
  1730. VB1      PUSH BC
  1731.          LD   E,(IX+0)
  1732.          LD   D,(IX+1)
  1733.          INC  IX
  1734.          INC  IX
  1735.          LD   A,(1:216) 40 eller 80
  1736.          LD   C,A
  1737.          LD   B,0
  1738.          LDIR
  1739.          CP   40
  1740.          JRNZ VB2
  1741.          LD   C,A
  1742.          ADD  HL,BC
  1743. VB2      POP  BC
  1744.          DJNZ VB1
  1745.          LD   E,(HL)
  1746.          INC  HL
  1747.          LD   D,(HL)
  1748.          LD   (253:243),DE Mark|r
  1749.          RET
  1750.  
  1751. SPARBILD LD   IX,3:116
  1752.          LD   B,24
  1753. SB1      PUSH BC
  1754.          LD   L,(IX+0)
  1755.          LD   H,(IX+1)
  1756.          INC  IX
  1757.          INC  IX
  1758.          LD   A,(1:216) 40 eller 80
  1759.          LD   C,A
  1760.          LD   B,0
  1761.          LDIR
  1762.          CP   40
  1763.          JRNZ SB2
  1764.          LD   L,E
  1765.          LD   H,D
  1766.          LD   (HL),32
  1767.          INC  DE
  1768.          LD   BC,39
  1769.          LDIR
  1770.          INC  HL
  1771. SB2      POP  BC
  1772.          DJNZ SB1
  1773.          LD   HL,(253:243) Mark|r
  1774.          EX   DE,HL
  1775.          LD   (HL),E
  1776.          INC  HL
  1777.          LD   (HL),D
  1778.          RET
  1779.  
  1780. ;Filhantering, tar hand om ev fel
  1781. FILCONTR PUSH HL
  1782.          LD   HL,FILC3
  1783.          EX   (SP),HL
  1784.          LD   (254:54),SP RUN-timestack
  1785.          PUSH HL
  1786.          LD   HL,FILC2
  1787.          LD   (IY+30),L ONERRORGOTO
  1788.          LD   (IY+31),H
  1789.          LD   (IY+14),0 RUN-mode
  1790.          LD   (IY+15),0 NOTRACE
  1791.          LD   HL,FILC1
  1792.          EX   (SP),HL
  1793.          PUSH DE
  1794.          RET
  1795.  
  1796. FILC1    INC  SP
  1797.          INC  SP
  1798.          RET
  1799.  
  1800. FILC2    DB   4,0,1,145 BASIC-return
  1801.  
  1802. FILC3    LD   A,(IY+34) Errcode
  1803.          AND  127
  1804.          SCF
  1805.          RET
  1806.  
  1807. PREPARE  LD   A,1
  1808.          JR   OPEN1
  1809.  
  1810. PREPBAC  LD   A,4
  1811.          JR   OPEN1
  1812.  
  1813. OPEN     XOR  A
  1814. OPEN1    LD   IX,FIL
  1815.          LD   DE,0:62
  1816.          CALL FILCONTR
  1817.          RET
  1818.  
  1819. ERROR    AND  127
  1820.          LD   L,A
  1821.          LD   H,0
  1822.          PUSH HL
  1823.          LD   HL,ERROR1
  1824.          LD   BC,ERROR2-ERROR1
  1825.          CALL 0:11
  1826.          POP  HL
  1827.          CALL SKRIVTAL
  1828.          CALL 7:66
  1829.          RET
  1830.  
  1831. ERROR1   DM 13,10,7,"ERR "
  1832. ERROR2
  1833.  
  1834. ;Omvandla str{ng i buffert till tal DE
  1835. G\RTAL   LD   A,(24:30)
  1836.          CP   126
  1837.          JPZ  24:30
  1838.          JP   24:28
  1839.  
  1840. ;Omvandla tal till str{ng i buffert
  1841. SKRIVTA1 LD   DE,253:213 Tempbuffer
  1842.          PUSH DE
  1843.          LD   A,(24:96) Kolla checksumma
  1844.          CP   175
  1845.          PUSH AF
  1846.          CALLZ 24:96    \vers{tt till
  1847.          POP  AF        ASCII
  1848.          CALLNZ 24:98
  1849.          EX   DE,HL
  1850.          POP  DE
  1851.          AND  A         Ber{kna l{ngd
  1852.          SBC  HL,DE     p} str{ngen
  1853.          LD   C,L
  1854.          LD   B,H
  1855.          EX   DE,HL
  1856.          RET
  1857.  
  1858. ;Skriv ut talet HL
  1859. SKRIVTAL CALL SKRIVTA1
  1860.          CALL 0:11      Skriv ut str{ng
  1861.          RET
  1862.  
  1863. ;Skriver talet HL som max kan best}
  1864. ;av x tecken. X lagras i A innan anrop
  1865. ;varefter talet skrivs ut h|gerst{llt.
  1866. SKRTAL   PUSH DE        Spara utfyllnad
  1867.          PUSH AF
  1868.          CALL SKRIVTA1
  1869.          POP  AF
  1870.          EX   (SP),HL
  1871.          PUSH BC
  1872.          SUB  C
  1873.          LD   C,A
  1874.          CALLNZ 0:11    Skriv utfyllnad
  1875.          POP  BC
  1876.          POP  HL
  1877.          CALL 0:11
  1878.          RET
  1879.  
  1880. ;Kollar om wildcard finns. Fixar
  1881. ;i ordning filnamn.
  1882. DRIVEFIX RST  32
  1883.          LD   (WILDSTR),HL
  1884.          LD   BC,7:0
  1885.          LD   (WILDANT),BC
  1886.          PUSH HL
  1887.          LD   BC,0:255
  1888.          DEC  HL
  1889. DF1      LD   E,A       Spara f|reg tkn
  1890.          RST  24
  1891.          INC  C         R{kna antal tkn
  1892.          CP   "*"
  1893.          JRZ  DF2
  1894.          CP   "?"
  1895.          JRNZ DF3
  1896. DF2      INC  B         R{kna wildcards
  1897. DF3      CP   ","
  1898.          JRNZ DF4
  1899.          LD   A,13
  1900.          LD   (HL),A    Byt "," till CR
  1901.          INC  HL        Filnamn-2
  1902. DF4      CP   13
  1903.          JRNZ DF1
  1904.          RST  32
  1905.          LD   (FILPEK),HL Spara fil-2
  1906.          POP  HL
  1907.          LD   A,E       Sista tecknet
  1908.          CP   ":"
  1909.          JRZ  DF5       Endast enhet!
  1910.          LD   A,B
  1911.          LD   (WILDFLG),A
  1912.          AND  A
  1913.          JRZ  DF6       Inga wildcards!
  1914. DF5      LD   A,(HL)
  1915.          AND  95
  1916.          XOR  "D"
  1917.          RETNZ
  1918.          RST  24
  1919.          AND  95
  1920.          XOR  "R"
  1921.          RETNZ
  1922.          RST  24
  1923.          SUB  48
  1924.          CCF
  1925.          RETNC
  1926.          CP   8
  1927.          RETNC
  1928.          LD   C,A       Spara drive-nr
  1929.          RST  24
  1930.          XOR  ":"
  1931.          RETNZ
  1932.          RST  24
  1933.          LD   (WILDSTR),HL Skippa enhet
  1934.          LD   B,1          En drive
  1935.          LD   (WILDANT),BC
  1936.          AND  A
  1937.          RET
  1938.  
  1939. DF6      LD   DE,255:150 BC=l{ngd
  1940.          CALL 0:65      Fixa filnamn
  1941.          RETC           Fel!
  1942.          LD   HL,255:150+11
  1943.          LD   DE,255:128
  1944.          LD   BC,3
  1945.          LD   A,(HL)
  1946.          LDIR
  1947.          CP   32
  1948.          JRZ  DF7       Enhet saknas
  1949.          LD   A,":"
  1950. DF7      LD   (DE),A
  1951.          INC  DE
  1952.          LD   HL,255:150
  1953.          LD   C,8
  1954.          LDIR
  1955.          LD   A,"."
  1956.          LD   (DE),A
  1957.          INC  DE
  1958.          LD   C,3
  1959.          LDIR
  1960.          LD   A,13
  1961.          LD   (DE),A
  1962.          AND  A
  1963.          RET
  1964.  
  1965.  
  1966. ;J{mf|r str{ng med wildcard, om str{ng
  1967. ;passar s{tts carry. Rekursiv rutin.
  1968. ;DE! str{ng
  1969. WILDCARD LD   HL,(WILDSTR)
  1970. WC1      RST  32
  1971.          EX   DE,HL
  1972.          RST  32
  1973.          EX   DE,HL
  1974.          CP   13
  1975.          JRNZ WC2
  1976.          LD   A,(HL)
  1977.          CP   13
  1978.          SCF
  1979.          RETZ
  1980.          XOR  "*"
  1981.          RETNZ
  1982.          PUSH HL
  1983.          RST  24
  1984.          POP  HL
  1985.          XOR  13
  1986.          RETNZ
  1987.          SCF
  1988.          RET
  1989.  
  1990. WC2      LD   A,(HL)
  1991.          CP   13
  1992.          RETZ
  1993.          LD   A,(DE)
  1994.          CP   96
  1995.          JRC  WC3
  1996.          AND  95
  1997. WC3      CP   (HL)
  1998.          JRNZ WC5
  1999. WC4      PUSH HL
  2000.          PUSH DE
  2001.          INC  HL
  2002.          INC  DE
  2003.          CALL WC1
  2004.          POP  DE
  2005.          POP  HL
  2006.          RET
  2007.  
  2008. WC5      LD   A,(HL)
  2009.          CP   "?"
  2010.          JRZ  WC4
  2011.          XOR  "*"
  2012.          RETNZ
  2013.          PUSH HL
  2014.          PUSH DE
  2015.          INC  HL
  2016.          CALL WC1
  2017.          POP  DE
  2018.          POP  HL
  2019.          RETC
  2020.          PUSH HL
  2021.          PUSH DE
  2022.          INC  DE
  2023.          CALL WC1
  2024.          POP  DE
  2025.          POP  HL
  2026.          RET
  2027.  
  2028. WILDSTR  DW 0   Pekar p} wildcard
  2029. WILDANT  DW 0   C=n{sta drive B=antal
  2030. WILDFLG  DB 0   Finns wildcards?
  2031. FILPEK   DW 0   Peka p} ev filnamn-2
  2032.  
  2033. ;Leta efter ord i tabell
  2034. STRSCAN  LD   C,0
  2035.          PUSH DE
  2036.          CALL STR
  2037.          POP  DE
  2038.          RETZ           Hittat
  2039.          RETM           Finns ej
  2040.          PUSH HL
  2041.          PUSH DE
  2042.          LD   HL,STRSC1
  2043.          LD   BC,STRSC2-STRSC1
  2044.          CALL 0:11
  2045.          POP  DE
  2046.          POP  HL
  2047.          LD   C,128
  2048.          CALL STR
  2049.          CALL 7:66
  2050.          SCF
  2051.          RET
  2052.  
  2053. STRSC1   DM 13,10,7,"Be more specific"
  2054. STRSC2
  2055.  
  2056. ;Leta i tabell
  2057. ;IN HL! text
  2058. ;   DE! tabell
  2059. ;    C  0=leta 128=skriv alla ounika
  2060. ;UT  Z  funnen
  2061. ;    M  ej hittad
  2062. ;    P  ej unikt
  2063. ;    A  ev kod
  2064. ;   HL  ev n{sta ord
  2065. STR      RST  32
  2066.          XOR  13
  2067.          DEC  A
  2068.          RETM           Tom textrad
  2069.          EXX
  2070.          LD   B,1       CRLF f|re f|rsta
  2071.          EXX
  2072.          EX   DE,HL     HL! tabell
  2073. STR1     LD   B,(HL)    Spara tabellkod
  2074.          LD   (STR8),HL Spara tabellord
  2075.          PUSH DE        Spara text
  2076. STR2     LD   A,(DE)    Tecken i text
  2077.          INC  DE
  2078.          CP   96
  2079.          JRC  STR3
  2080.          AND  95        G|r versal
  2081. STR3     INC  HL
  2082.          CP   (HL)      J{mf|r tkn
  2083.          JRZ  STR2      Lika
  2084.          CP   32
  2085.          JRZ  STR4
  2086.          CP   ","
  2087.          JRZ  STR4
  2088.          CP   13
  2089.          JRNZ STR6      Textord ej slut
  2090. STR4     DEC  DE        Peka p} tkn
  2091.          LD   (STR9),DE Spara n{sta ord
  2092.          LD   A,B
  2093.          EX   AF        Spara kod & NC!
  2094.          INC  C         R{kna tr{ffar
  2095.          BIT  7,C
  2096.          JRZ  STR6      Skriv ej ounika
  2097.          EXX
  2098.          DJNZ STR5
  2099.          CALL 7:66
  2100.          LD   B,3       Tre ord/rad
  2101.          LD   A,(1:216)
  2102.          CP   40
  2103.          JRZ  STR5
  2104.          LD   B,5
  2105. STR5     LD   HL,(STR8)
  2106.          LD   A,-10     Rak v{nsterkant
  2107.          LD   DE,SPACE  Avskiljare
  2108.          CALL SKRIVTAB  Skriv tabellord
  2109.          EXX
  2110. STR6     LD   A,(HL)
  2111.          INC  HL
  2112.          BIT  7,A
  2113.          JRZ  STR6      Leta tabordslut
  2114.          DEC  HL
  2115.          INC  A
  2116.          JRZ  STR7      Slut p} tabell
  2117.          POP  DE        Peka p} text
  2118.          JR   STR1
  2119.  
  2120. STR7     POP  DE        Text
  2121.          LD   HL,(STR9) N{sta ord
  2122.          RST  32
  2123.          EX   AF        ]terst{ll kod
  2124.          AND  A         Clear carry
  2125.          RES  7,C
  2126.          DEC  C
  2127.          RETZ           Hittad (NC)
  2128.          EX   DE,HL     HL! text
  2129.          RET
  2130.  
  2131. STR8     DW 0
  2132. STR9     DW 0
  2133.  
  2134.  
  2135. ;Spara tecken i TED
  2136. TEDSPAR  LD   A,(TEDFLG)
  2137.          AND  A
  2138.          RETZ           TED ej i minnet
  2139.          LD   IX,TEDKOL
  2140.          LD   A,(SLASK)
  2141.          CP   32
  2142.          JRNC TS2
  2143.          CP   9
  2144.          JRZ  TS3
  2145.          CP   10
  2146.          JRZ  TS5
  2147.          CP   12
  2148.          JRZ  TS4
  2149.          CP   13
  2150.          JRZ  TS1
  2151.          CP   8
  2152.          RETNZ
  2153.          DEC  (IX+0)
  2154.          RETP
  2155. TS1      LD   (IX+0),0
  2156.          RET
  2157.  
  2158. TS2      LD   HL,FLAGG
  2159.          SET  5,(HL)    Data i buffer
  2160.          LD   HL,BUFFTED
  2161.          LD   E,(IX+0)
  2162.          LD   D,0
  2163.          ADD  HL,DE
  2164.          LD   (HL),A    Spara tecken
  2165. TS3      INC  (IX+0)    \ka kolumn
  2166.          LD   A,(IX+0)
  2167.          CP   160
  2168.          RETNZ          Rad ej full
  2169. TS4      LD   (IX+0),0
  2170. TS5      LD   DE,(TEDINRAD)
  2171.          PUSH DE
  2172.          LD   HL,(253:243)
  2173.          PUSH HL        Spara mark|r
  2174.          CALL SPARRAD
  2175.          POP  HL
  2176.          POP  DE
  2177.          JRC  TS6
  2178.          INC  DE
  2179.          LD   (TEDINRAD),DE
  2180.          CALL TILLBUFF
  2181.          LD   HL,FLAGG
  2182.          RES  5,(HL)    Buffer t|md
  2183.          RET
  2184.  
  2185. TS6      LD   (253:243),HL
  2186.          XOR  A
  2187.          LD   (TEDSAVE),A
  2188.          LD   DE,(3:162)
  2189.          CALL 2:103     Blanka rad 23
  2190.          LD   HL,FLAGG
  2191.          SET  0,(HL)    L{mna terminal
  2192.          SET  6,(HL)    TED full
  2193.          LD   A,3
  2194.          LD   (FELKOD),A
  2195.          RET
  2196.  
  2197. TEDSEND  LD   A,(TEDSAVE)
  2198.          XOR  2
  2199.          RETNZ
  2200.          LD   A,(TEDFLG)
  2201.          AND  A
  2202.          RETZ           TED ej i minnet
  2203.          LD   A,(TEDKOL)
  2204.          AND  A
  2205.          JRNZ TSE4      TED-buff ej tom
  2206.          LD   HL,(TEDANRAD)
  2207.          LD   A,H
  2208.          OR   L
  2209.          JRNZ TSE1      Fler rader kvar
  2210.          XOR  A
  2211.          LD   (TEDSAVE),A
  2212.          RET
  2213.  
  2214. TSE1     DEC  HL
  2215.          LD   (TEDANRAD),HL
  2216.          LD   HL,BUFFTED
  2217.          LD   (TEDUTPOS),HL
  2218.          LD   DE,(TEDUTRAD)
  2219.          INC  DE
  2220.          LD   (TEDUTRAD),DE
  2221.          CALL TILLBUFF
  2222.          LD   HL,BUFFTED+159
  2223.          LD   B,160
  2224.          LD   A,32
  2225. TSE2     CP   (HL)
  2226.          DEC  HL
  2227.          JRNZ TSE3
  2228.          DJNZ TSE2
  2229.          DEC  HL
  2230. TSE3     INC  HL
  2231.          INC  HL
  2232.          LD   (HL),13
  2233.          LD   A,B
  2234.          INC  A         R{kna med CR
  2235. TSE4     DEC  A
  2236.          LD   (TEDKOL),A
  2237.          LD   HL,(TEDUTPOS)
  2238.          LD   A,(HL)
  2239.          INC  HL
  2240.          LD   (TEDUTPOS),HL
  2241.          SCF            Flagga
  2242.          RET
  2243.  
  2244. TEDINRAD DW 0
  2245. TEDUTRAD DW 0
  2246. TEDANRAD DW 0
  2247. TEDUTPOS DW 0
  2248. TEDKOL   DB 0
  2249. <<< kerm2.asm >>>
  2250. ; KERM2.ASM
  2251. ; Anders Franz`n <5258>
  2252. ; Stockholm 1987-09-13
  2253.  
  2254.  
  2255. BAUD75   EQU  2:117
  2256. BAUD300  EQU  9:213
  2257. BAUD1200 EQU  39:82
  2258. BAUD2400 EQU  78:165
  2259. BAUD4800 EQU  157:74
  2260.  
  2261. ; Flaggor
  2262. ; 0  L{mna terminal
  2263. ; 1  Hoppa till TED
  2264. ; 2  XOFF mottaget
  2265. ; 3  XOFF s{nt
  2266. ; 4  Inbuff full
  2267. ; 5  Data i TED-buff
  2268. ; 6  TED full
  2269. ; 7  Fel p} DUMP/LOG-fil
  2270.  
  2271. INIT     LD   HL,BUFF1
  2272.          LD   (INBUFF),HL
  2273.          LD   A,L       Rensa mottagar-
  2274.          LD   (INPOS),A buffert
  2275. INIT1    LD   HL,BUFF2
  2276.          INP  56        Undvik
  2277.          LD   (HL),A    dubbeltryck!
  2278.          LD   (UTBUFF),HL
  2279.          LD   A,L       Rensa tangent-
  2280.          LD   (UTPOS),A buffert
  2281.          LD   H,36
  2282.          LD   (TIMER),HL
  2283.          LD   A,(FLAGG)
  2284.          AND  00011100B
  2285.          LD   (FLAGG),A
  2286.          CALL FIXBAUD
  2287.          CALL FIXTED
  2288.          RET
  2289.  
  2290. TERMINAL LD   (RETUR),SP
  2291.          LD   HL,TERMBILD
  2292.          CALL VISABILD
  2293.          CALL 2:147
  2294.          EX   DE,HL
  2295.          SET  7,(HL)    T{nd mark|r
  2296.          CALL INIT1     T|m tangentbuff
  2297.          CALL INTON     Sl} p} interrupt
  2298.          CALL XON       Ev s{nd XON
  2299. TERM1    CALL TAN       Polla tangenter
  2300.          LD   HL,FLAGG
  2301.          BIT  0,(HL)
  2302.          JPNZ EXIT      Avsluta!
  2303.          BIT  2,(HL)
  2304.          JRNZ TERM2     XOFF mottaget
  2305.          CALL CHECKTAN  Kolla om tangent
  2306.          CALLC TKNUT    Behandla tangent
  2307.          INP  58
  2308.          AND  2         B{rv}g?
  2309.          JRNZ TERM2     Nej, hoppa
  2310.          CALL TEDSEND   S{nda fr}n TED?
  2311.          CALLC TKNUT    Behandla tkn
  2312.          LD   A,(DMP)
  2313.          AND  A
  2314.          CALLNZ DISK    Ev tkn fr}n fil
  2315.          CALLC TKNUT    Behandla tkn
  2316. TERM2    CALL MOTTAG    L{s inputbuffer
  2317.          CALLC TKNIN    Behandla tkn
  2318.          INP  58
  2319.          AND  2         B{rv}g?
  2320.          JRZ  TERM1     Ja, hoppa
  2321.          LD   HL,FLAGG
  2322.          RES  2,(HL)    Inget XOFF
  2323.          JR   TERM1
  2324.  
  2325. ; L{mna terminalrutinen
  2326. EXIT     CALL XOFF      S{nd XOFF
  2327.          LD   HL,FLAGG
  2328.          BIT  5,(HL)
  2329.          CALLNZ TS5     Spar i TED
  2330.          CALL 2:147
  2331.          EX   DE,HL
  2332.          RES  7,(HL)    Sl{ck mark|r
  2333.          LD   DE,TERMBILD
  2334.          CALL SPARBILD
  2335.          CALL INTOFF    Sl} av interrupt
  2336.          LD   SP,(RETUR)
  2337.          RET
  2338.  
  2339. ;Sl} p} interrupt
  2340. INTON    DI             St{ng interrupt
  2341.          LD   A,I
  2342.          LD   (IREG),A  Spara register
  2343.          LD   HL,VEKTOR Interruptvektor
  2344.          LD   A,H       H|g byte till
  2345.          LD   I,A       CPU:ns I-reg
  2346.          LD   A,L       L}g byte till
  2347.          OUT  57        PIO:ns port A
  2348.          LD   A,4FH     Programmera PIO
  2349.          OUT  57        f|r inputmode
  2350.          EXX
  2351.          LD   HL,S1
  2352.          LD   DE,R1
  2353.          EXX
  2354.          EI             Sl} p} interrupt
  2355.          RET
  2356.  
  2357. ;Sl} av interrupt
  2358. INTOFF   LD   A,(BITAR) H}ller byte p}
  2359.          AND  A         att s{ndas?
  2360.          JRNZ INTOFF    Ja, v{nta
  2361.          DI
  2362.          LD   A,255
  2363.          OUT  57        PIO i bitmode
  2364.          OUT  57        Alla bitar in
  2365.          LD   A,(IREG)
  2366.          LD   I,A       ]terst{ll I-reg
  2367.          LD   A,52      L}g byte till
  2368.          OUT  57        PIO:ns port A
  2369.          EI             Sl} p} interrupt
  2370.          LD   A,200     L}ng tid timer
  2371.          LD   (253:247),A tangentbordet
  2372.          XOR  A
  2373.          LD   (253:245),A Ingen tangent
  2374.          RET
  2375.  
  2376. ;Behandla intkn
  2377. TKNIN    CP   10
  2378.          JRNZ TKNIN2
  2379.          LD   A,(NEWLINE)
  2380.          DEC  A
  2381.          JRNZ TKNIN1
  2382.          LD   A,13
  2383.          CALL SKRIV
  2384. TKNIN1   LD   A,10
  2385. TKNIN2   CALL SKRIV
  2386.          RET
  2387.  
  2388. ;Kolla om tkn mottaget
  2389. MOTTAG   LD   DE,(INBUFF)
  2390.          LD   HL,FLAGG
  2391.          BIT  4,(HL)
  2392.          JRZ  MOT2      Buffer ej full
  2393.          LD   A,(INPOS)
  2394.          SUB  E
  2395.          JPP  MOT1
  2396.          NEG
  2397. MOT1     CP   32
  2398.          JRNC MOT2      Buffer ej t|md
  2399.          CALL XON
  2400.          RES  4,(HL)    Ingen panik!
  2401. MOT2     LD   A,(INPOS)
  2402.          CP   E         Mottaget tkn?
  2403.          RETZ           Nej, retur
  2404.          LD   E,A
  2405.          INC  A         Detta tkn
  2406.          LD   (INPOS),A behandlat
  2407.          LD   A,(DE)    Tag mottaget tkn
  2408.          SCF
  2409.          RET
  2410.  
  2411. ;Polla tangentbordet
  2412. CHECKTAN LD   HL,(UTBUFF)
  2413.          LD   A,(UTPOS)
  2414.          CP   L         Tangent i buff?
  2415.          RETZ           Nej, retur
  2416.          LD   L,A
  2417.          INC  A
  2418.          LD   (UTPOS),A
  2419.          LD   A,(HL)
  2420.          AND  127
  2421.          SCF
  2422.          RET
  2423.  
  2424. ;Polla tangentbordet
  2425. TAN      LD   HL,(UTBUFF)
  2426.          INP  56        L{s tangentbord
  2427.          BIT  7,A       Tangent nere?
  2428.          JRZ  TAN4      Nej, hoppa
  2429.          LD   B,18      L}ng tid
  2430.          CP   (HL)      Repetering?
  2431.          JRNZ TAN1      Nej, hoppa
  2432.          LD   BC,(TIMER)
  2433.          INC  B
  2434.          DJNZ TAN4
  2435.          LD   B,3
  2436. TAN1     LD   (TIMER),BC
  2437.          LD   C,A
  2438.          XOR  A
  2439.          OUT  6
  2440.          LD   A,57
  2441.          OUT  6         Klick
  2442.          LD   A,(ESCAPE)
  2443.          OR   128
  2444.          CP   C
  2445.          JRZ  TAN2      ESCAPE
  2446.          LD   A,(TEDFLG)
  2447.          AND  A
  2448.          JRZ  TAN3      TED ej i minnet
  2449.          LD   A,(TEDESC)
  2450.          OR   128
  2451.          CP   C
  2452.          JRNZ TAN3      Ej TED-escape
  2453.          SCF
  2454. TAN2     LD   (HL),C
  2455.          LD   HL,KERMAREA
  2456.          SET  3,(HL)
  2457.          LD   HL,FLAGG
  2458.          SET  0,(HL)
  2459.          RETNC
  2460.          SET  1,(HL)
  2461.          RET
  2462.  
  2463. TAN3     LD   A,C
  2464.          LD   (HL),A
  2465.          INC  L
  2466.          LD   (UTBUFF),HL
  2467. TAN4     LD   (HL),A    Spara nul{get
  2468.          RET
  2469.  
  2470. ;Behandla uttkn
  2471. TKNUT    CP   13
  2472.          JRNZ TKNUT1    Ej CR
  2473.          LD   C,A
  2474.          LD   A,(NEWLINE)
  2475.          DEC  A
  2476.          LD   A,C
  2477.          JRNZ TKNUT1
  2478.          CALL TKNUT1    Tolka <RETURN>
  2479.          LD   A,10      som CRLF
  2480. TKNUT1   LD   C,A
  2481.          LD   A,(DUPLEX)
  2482.          AND  A         Halv duplex?
  2483.          LD   A,C
  2484.          CALLZ SKRIV    Ja, till sk{rm
  2485.          CALL S[ND      S{nd tangenten
  2486.          RET
  2487.  
  2488. ;Skriver tkn p} sk{rm
  2489. SKRIV    AND  127
  2490.          LD   (SLASK),A Spara tkn
  2491.          CALL 2:147
  2492.          EX   DE,HL
  2493.          RES  7,(HL)    Sl{ck mark|r
  2494.          LD   A,(SLASK)
  2495.          CP   32
  2496.          JRNC SKR5
  2497.          CP   7
  2498.          JRZ  SKR1
  2499.          CP   8
  2500.          JRZ  SKR2
  2501.          CP   9
  2502.          JRZ  SKR6
  2503.          CP   10
  2504.          JRZ  SKR7
  2505.          CP   12
  2506.          JRZ  SKR3
  2507.          CP   13
  2508.          JRNZ SKR9
  2509.          LD   (IX+1),0
  2510.          JR   SKR8
  2511.  
  2512. SKR1     XOR  A
  2513.          OUT  6
  2514.          LD   A,131
  2515.          OUT  6         Pling!
  2516.          JR   SKR9
  2517.  
  2518. SKR2     DEC  HL
  2519.          DEC  (IX+1)    Minska kolumn
  2520.          JPP  SKR9
  2521.          LD   A,(2:111) 39 eller 79
  2522.          LD   (IX+1),A
  2523.          DEC  (IX+0)    F|reg}ende rad
  2524.          JPP  SKR8
  2525.          JR   SKR7
  2526.  
  2527. SKR3     CALL 2:118
  2528.          JR   SKR8
  2529.  
  2530. SKR5     LD   (HL),A    Skriv p} sk{rm
  2531. SKR6     INC  HL
  2532.          INC  (IX+1)    \ka kolumn
  2533.          LD   A,(2:111) 39 eller 79
  2534.          CP   (IX+1)
  2535.          JRNC SKR9      Raden ej slut
  2536.          LD   (IX+1),0
  2537. SKR7     CALL 2:56      Ny rad ev scroll
  2538. SKR8     CALL 2:147
  2539.          EX   DE,HL
  2540. SKR9     SET  7,(HL)    T{nd mark|r
  2541.          LD   A,(TEDSAVE)
  2542.          DEC  A
  2543.          CALLZ TEDSPAR  Spara text i TED
  2544.          LD   A,(LOG)
  2545.          AND  A
  2546.          LD   A,(SLASK)
  2547.          RETZ           Ingen loggning
  2548.          CP   10
  2549.          JRZ  SKR10     Rad ska loggas
  2550.          CP   32
  2551.          RETC
  2552.          LD   HL,(LOGBUFF)
  2553.          LD   (HL),A
  2554.          INC  L
  2555.          LD   (LOGBUFF),HL
  2556.          RET
  2557.  
  2558. SKR10    LD   HL,(LOGBUFF)
  2559.          LD   (HL),13
  2560.          INC  L
  2561.          LD   (HL),10
  2562.          INC  L
  2563.          LD   DE,BUFF3
  2564.          AND  A
  2565.          SBC  HL,DE
  2566.          LD   C,L
  2567.          LD   B,H
  2568.          EX   DE,HL
  2569.          LD   IX,FIL
  2570.          LD   DE,8:150
  2571.          CALL FILCONTR  Skriv rad
  2572.          JRC  SKR12
  2573.          LD   HL,BUFF3
  2574.          LD   (LOGBUFF),HL
  2575.          LD   A,(SLASK) ]terst{ll
  2576.          RET
  2577.  
  2578. SKR12    LD   (FELKOD),A
  2579.          LD   HL,FLAGG
  2580.          SET  0,(HL)    L{mna terminal
  2581.          SET  7,(HL)    Fel p} LOG-fil
  2582.          LD   A,(SLASK) ]terst{ll
  2583.          RET
  2584.  
  2585. ;S{nder tkn fr}n fil
  2586. DISK     LD   IX,KERMAREA
  2587.          CALL GETFIL    H{mta ett tkn
  2588.          CCF
  2589.          RETC           Retur om OK
  2590.          AND  A
  2591.          JRNZ DISK1     Annat fel {n EOF
  2592.          LD   IX,FIL
  2593.          LD   DE,8:144
  2594.          CALL FILCONTR  Close
  2595.          JRC  DISK1
  2596.          XOR  A
  2597.          LD   (DMP),A
  2598.          RET
  2599.  
  2600. DISK1    LD   (FELKOD),A
  2601.          LD   HL,FLAGG
  2602.          SET  0,(HL)    L{mna terminal
  2603.          SET  7,(HL)    Fel p} DUMP-fil
  2604.          RET
  2605.  
  2606. ;S{nd XOFF om XON {r s{nt
  2607. XOFF     LD   A,(FLOW)
  2608.          DEC  A
  2609.          RETNZ          XOFF anv{nds ej
  2610.          PUSH HL
  2611.          LD   HL,FLAGG
  2612.          BIT  3,(HL)    XOFF s{nt?
  2613.          LD   A,19
  2614.          CALLZ S[ND     Nej, s{nd XOFF
  2615.          LD   HL,FLAGG
  2616.          SET  3,(HL)
  2617.          POP  HL
  2618.          RET
  2619.  
  2620. ;S{nd XON om XOFF {r s{nt
  2621. XON      LD   A,(FLOW)
  2622.          DEC  A
  2623.          RETNZ          XON anv{nds ej
  2624.          PUSH HL
  2625.          LD   HL,FLAGG
  2626.          BIT  3,(HL)    XOFF s{nt?
  2627.          LD   A,17
  2628.          CALLNZ S[ND    Ja, s{nd XON
  2629.          LD   HL,FLAGG
  2630.          RES  3,(HL)
  2631.          POP  HL
  2632.          RET
  2633.  
  2634. ;S{nd iv{g tecknet A
  2635. S[ND     PUSH HL        Spara register
  2636.          PUSH DE
  2637.          PUSH BC
  2638.          LD   C,A       Byte att s{nda
  2639.          INP  58
  2640.          AND  2         Finns b{rv}g?
  2641.          JRZ  S[ND1     Ja, hoppa
  2642.          XOR  A
  2643.          OUT  6
  2644.          LD   A,131     Pling i
  2645.          OUT  6         h|gtalaren
  2646.          SCF
  2647.          JR   S[ND7     S{nd inget!
  2648.  
  2649. S[ND1    LD   B,10      Tio bitar
  2650.          LD   A,(PARITET)
  2651.          AND  A
  2652.          JRZ  S[ND5     S{nd byte "r}"
  2653.          RES  7,C
  2654.          DEC  A
  2655.          JRZ  S[ND5     Alltid noll
  2656.          DEC  A
  2657.          JRZ  S[ND4     Alltid ett
  2658.          DEC  A
  2659.          LD   A,C
  2660.          JRZ  S[ND3     J{mn paritet
  2661.          AND  A
  2662.          JPPO S[ND5     Hoppa om udda
  2663.          JR   S[ND4
  2664.  
  2665. S[ND3    AND  A
  2666.          JPPE S[ND5     Hoppa om j{mn
  2667. S[ND4    SET  7,C
  2668. S[ND5    PUSH BC
  2669.          CALL TAN       Polla tangenter
  2670.          POP  BC
  2671.          LD   A,(BITAR) P}g}r s{ndning?
  2672.          AND  A
  2673.          JRNZ S[ND5     Ja, v{nta
  2674.          LD   (BYTE),BC Spara B och C
  2675. S[ND7    POP  BC        ]terst{ll
  2676.          POP  DE        register
  2677.          POP  HL
  2678.          RET            Klart !
  2679.  
  2680. ;S{nd och ta emot data
  2681. TERMINT  EX   AF
  2682.          EXX
  2683.          JP   (HL)      Hoppa
  2684.  
  2685. S1       CALL REC
  2686.          INP  58
  2687.          OR   16+8      RTS + ettbit
  2688.          OUT  58
  2689.          LD   A,(BITAR)
  2690.          AND  A         Startbit (NC)
  2691.          JRZ  S1        Inget att s{nda
  2692.          LD   B,A
  2693.          LD   HL,0
  2694.          LD   (S5+7),HL
  2695.          LD   A,(BYTE)
  2696.          LD   C,A       Byte att s{nda
  2697. S3       LD   (S5+16),BC
  2698.          LD   C,58
  2699.          IN   B,(C)
  2700.          SET  3,B       TxD=1
  2701.          JRC  S4        Hoppa om ettbit
  2702.          RES  3,B       TxD=0
  2703. S4       OUT  (C),B     Skicka iv{g bit
  2704. S5       CALL REC
  2705.          LD   HL,(BAUDSEND)
  2706.          LD   BC,0
  2707.          ADD  HL,BC
  2708.          LD   (S5+7),HL
  2709.          JRNC S5
  2710.          LD   BC,0
  2711.          RR   C
  2712.          DJNZ S3
  2713.          XOR  A
  2714.          LD   (BITAR),A
  2715.          JR   S1
  2716.  
  2717. REC      EX   DE,HL
  2718.          JP   (HL)
  2719.  
  2720. R1       CALL END       V{nta 128 us
  2721.          INP  58        L{s V24-porten
  2722.          RRC  A         Linjen l}g?
  2723.          JRNC R1        Ja, b|rja om
  2724. R2       CALL END       V{nta 128 us
  2725.          INP  58        L{s V24-porten
  2726.          RRC  A         Startbit?
  2727.          JRC  R2        Nej, inte {nnu
  2728.          LD   HL,206:164 19% av bittid
  2729.          LD   (R5+7),HL
  2730. R3       CALL END
  2731.          INP  58        L{s V24-porten
  2732.          RRC  A         St|rning?
  2733.          JRC  R2        Ja, b|rja om
  2734.          LD   HL,(BAUDREC)
  2735.          LD   DE,(R5+7)
  2736.          ADD  HL,DE     Har halva bit-
  2737.          LD   (R5+7),HL tiden g}tt?
  2738.          JRNC R3        Nej, v{nta...
  2739.          LD   B,9
  2740. R4       RR   C         Spara bit i C
  2741.          LD   (R5+16),BC
  2742. R5       CALL END       V{nta 128 us
  2743.          LD   HL,(BAUDREC)
  2744.          LD   DE,0
  2745.          ADD  HL,DE     Har n{sta bit
  2746.          LD   (R5+7),HL kommit in nu?
  2747.          JRNC R5        Nej, v{nta
  2748.          LD   BC,0
  2749.          INP  58        L{s V24-porten
  2750.          RRC  A         Biten till carry
  2751.          DJNZ R4        Upprepa om fler
  2752.          JRNC R1        Ej stoppbit
  2753.          CALL END
  2754.          LD   A,(R5+16)
  2755.          LD   HL,(INBUFF)
  2756.          LD   (HL),A    Spara tkn
  2757.          INC  L
  2758.          LD   (INBUFF),HL
  2759.          LD   C,A
  2760.          LD   A,(INPOS)
  2761.          SUB  L
  2762.          LD   HL,FLAGG
  2763.          JPP  R6
  2764.          NEG
  2765. R6       CP   64
  2766.          JRC  R7        Buffer ej full
  2767.          BIT  4,(HL)
  2768.          JRNZ R7        Redan noterat
  2769.          LD   A,(BITAR)
  2770.          AND  A
  2771.          JRNZ R7        Tkn s{nds tyv{rr
  2772.          CALL XOFF      S{nd XOFF
  2773.          SET  4,(HL)    Notera buff full
  2774. R7       LD   A,(PARITET)
  2775.          AND  A
  2776.          LD   A,C
  2777.          JRZ  R8        Paritet NONE
  2778.          AND  127       Ev paritet bort
  2779. R8       CP   17
  2780.          JRZ  R9        XON
  2781.          CP   19
  2782.          JPNZ R2        Ej XOFF
  2783.          SET  2,(HL)    Flagga XOFF
  2784.          JP   R2
  2785.  
  2786. R9       RES  2,(HL)    Sl{ck flagga
  2787.          JP   R2        f|r XOFF
  2788.  
  2789. END      LD   HL,(TIMER)
  2790.          DEC  HL
  2791.          LD   (TIMER),HL
  2792.          POP  DE        Adress i "s{nd"
  2793.          POP  HL        Adress i "rec"
  2794.          EXX            ]terst{ll
  2795.          EX   AF        registren
  2796.          EI             Sl} p} interrupt
  2797.          RETI           Interrupt klart
  2798.  
  2799.          ORG  $/2*2+2   J{mn adress!
  2800.  
  2801. VEKTOR   DW TERMINT     Interruptvektor
  2802. BAUDREC  DW BAUD1200    Mottagningsfart
  2803. BAUDSEND DW BAUD75      S{ndningsfart
  2804. BYTE     DB 0           Byte att s{nda
  2805. BITAR    DB 0           Antal bitar
  2806. INBUFF   DW 0           Mottaget data
  2807. INPOS    DW 0           Sista position
  2808. UTBUFF   DW 0           Tangentdata
  2809. UTPOS    DW 0           Sista position
  2810. TIMER    DW 0           Repetition
  2811. IREG     DB 0           V{rde p} I-reg
  2812. FLAGG    DB 0
  2813. SLASK    DB 0
  2814. FELKOD   DB 0           Felkod LOG/DUMP
  2815. LOGBUFF  DW 0
  2816. RETUR    DW 0
  2817. <<< kerm3.asm >>>
  2818. ; KERM3.ASM
  2819. ; Anders Franz`n <5258>
  2820. ; Stockholm 1987-09-20
  2821.  
  2822.  
  2823. KERMIT   CALL KERMV
  2824. KERM1    LD   HL,KERM4
  2825.          LD   BC,KERM5-KERM4
  2826.          CALL 0:11      Skriv promt
  2827. KERM2    CALL 7:66
  2828.          LD   HL,BUFF6
  2829.          LD   BC,39
  2830.          PUSH HL
  2831.          CALL GETLINE
  2832.          POP  HL
  2833.          RST  32
  2834.          CP   13
  2835.          JRZ  KERM2     Tom rad
  2836.          LD   BC,KERM1
  2837.          PUSH BC        Returadress
  2838.          LD   DE,CMDTAB
  2839.          PUSH DE
  2840.          CALL STRSCAN
  2841.          POP  DE
  2842.          RETC           Ambigious
  2843.          JRNZ KERM3
  2844.          LD   DE,CMDJTB
  2845.          JP   1:58      Utnyttja ROM!
  2846.  
  2847. KERM3    PUSH DE
  2848.          LD   HL,KERM5
  2849.          LD   BC,KERM6-KERM5
  2850.          CALL 0:11
  2851.          POP  HL
  2852.          JP   HELP1
  2853.  
  2854. KERM4    DM 13,10,"KERMIT"
  2855. KERM5    DM 13,10,7,"Command must be"
  2856. KERM6
  2857.  
  2858. GETLINE  LD   DE,3:78
  2859.          LD   (253:251),DE
  2860.          PUSH IX
  2861.          LD   B,C
  2862. GETL2    CALL 3:91
  2863.          JRNZ GETL2
  2864. GETL3    CALL 3:91
  2865. GETL4    CALL 0:2
  2866.          CP   9
  2867.          CALLZ 3:72
  2868.          CP   13
  2869.          JPZ  2:229
  2870.          CP   24
  2871.          JRZ  GETL2
  2872.          CP   8
  2873.          JRZ  GETL3
  2874.          PUSH HL
  2875.          PUSH DE
  2876.          PUSH BC
  2877.          PUSH IX
  2878.          PUSH AF
  2879.          LD   HL,(ESCAPE)
  2880.          CP   L
  2881.          JRNZ GETL5
  2882.          CALL CONNECT
  2883.          JR   GETL6
  2884.  
  2885. GETL5    LD   HL,(TEDESC)
  2886.          CP   L
  2887.          CALLZ TED
  2888. GETL6    POP  AF
  2889.          POP  IX
  2890.          POP  BC
  2891.          POP  DE
  2892.          POP  HL
  2893.          CP   32
  2894.          JRC  GETL4
  2895.          LD   (DE),A
  2896.          CP   96
  2897.          JRC  GETL7
  2898.          AND  95
  2899. GETL7    LD   (HL),A
  2900.          INC  HL
  2901.          INC  (IX+1)
  2902.          LD   A,(2:111)
  2903.          CP   (IX+1)
  2904.          CALLC 2:52
  2905.          DJNZ GETL4
  2906.          JP   2:228
  2907.  
  2908. CMDTAB   DM 128,"CLOSE"
  2909.          DM 129,"CONNECT"
  2910.          DM 130,"DELETE"
  2911.          DM 131,"DIR"
  2912.          DM 132,"DUMP"
  2913.          DM 130,"ERASE"
  2914.          DM 133,"EXIT"
  2915.          DM 134,"HELP"
  2916.          DM 130,"KILL"
  2917.          DM 135,"LOG"
  2918.          DM 136,"QUIT"
  2919.          DM 137,"RECEIVE"
  2920.          DM 138,"SAVE"
  2921.          DM 139,"SEND"
  2922.          DM 140,"SET"
  2923.          DM 141,"SHOW"
  2924.          DM 142,"TED"   Rensa tabell om
  2925.          DM 143,"TYPE"
  2926.          DM 255         TED saknas
  2927.  
  2928. CMDJTB   DW CLOSE       128
  2929.          DW CONNECT     129
  2930.          DW DELETE      130
  2931.          DW DIRH        131
  2932.          DW DUMP        132
  2933.          DW BASIC       133
  2934.          DW HELP        134
  2935.          DW LOGG        135
  2936.          DW QUIT        136
  2937.          DW KERMREC     137
  2938.          DW SAVE        138
  2939.          DW KERMSEND    139
  2940.          DW SET         140
  2941.          DW SHOW        141
  2942.          DW TED         142
  2943.          DW TYPE        143
  2944.  
  2945. CONNECT  CALL KERMS
  2946. CON1     CALL TERMINAL
  2947.          LD   A,(FLAGG)
  2948.          BIT  1,A
  2949.          JPNZ TED1      TED-escape
  2950.          CALL KERMV
  2951.          LD   A,(FLAGG)
  2952.          BIT  6,A
  2953.          JRNZ CON2      TED full
  2954.          BIT  7,A
  2955.          RETZ           LOG/DUMP-FIL ok
  2956.          LD   A,(FELKOD)
  2957.          CALL ERROR
  2958.          CALL CLOSE
  2959.          LD   SP,STACK
  2960.          JP   KERM1
  2961.  
  2962. CON2     LD   HL,CON3
  2963.          LD   BC,CON4-CON3
  2964.          CALL 0:11
  2965.          LD   SP,STACK
  2966.          JP   KERM1
  2967.  
  2968. CON3     DB 13,10,7
  2969.          DM "TED filled",13,10
  2970. CON4
  2971.  
  2972. TED      LD   A,(TEDFLG)
  2973.          AND  A
  2974.          RETZ           TED ej i minnet!
  2975.          CALL KERMS
  2976. TED1     LD   A,(DMP)
  2977.          LD   C,A
  2978.          LD   A,(LOG)
  2979.          OR   C
  2980.          JRZ  TED2      Ingen fil |ppen
  2981.          CALL KERMV
  2982.          CALL CLOSE     St{ng fil
  2983.          LD   SP,STACK
  2984.          JP   KERM1     Stanna i KERM
  2985.  
  2986. TED2     CALL TED3      Anropa TED
  2987.          LD   A,(FLAGG)
  2988.          BIT  1,A
  2989.          JPNZ CON1      TED-escape
  2990.          JP   KERMV
  2991.  
  2992. TED3     LD   (KERMSP),SP
  2993.          LD   SP,(TEDSP)
  2994.          RET            Till TED
  2995.  
  2996. TEDFLG   DB 0
  2997.  
  2998. KERMSEND CALL DRIVEFIX  Fixa filnamn
  2999.          LD   A,21
  3000.          JPC  ERROR
  3001.          CALL CLOSE
  3002.          CALL INIT      Rensa buffertar
  3003.          CALL INTON     Sl} p} interrupt
  3004.          CALL XON
  3005.          CALL SEND
  3006.          CALL XOFF
  3007.          CALL INTOFF    Sl} av interrupt
  3008.          CALL 7:66
  3009.          RET
  3010.  
  3011. KERMREC  LD   (FILPEK),HL Ev filnamn
  3012.          CALL CLOSE
  3013.          CALL INIT      Rensa buffertar
  3014.          CALL INTON     Sl} p} interrupt
  3015.          CALL XON
  3016.          CALL RECEIVE
  3017.          CALL XOFF
  3018.          CALL INTOFF    Sl} av interrupt
  3019.          CALL 7:66
  3020.          RET
  3021.  
  3022. QUIT     PUSH HL        Spara ev pgm
  3023.          CALL CLOSE
  3024.          CALL KERMS
  3025.          LD   HL,254:64 Inga parametrar
  3026.          LD   (HL),L    om QUIT KERM
  3027.          POP  HL
  3028.          CALL BASIC1    Anropa BASIC
  3029. KERMV    LD   HL,KERMBILD
  3030.          CALL VISABILD
  3031.          RET
  3032.  
  3033. KERMS    LD   DE,KERMBILD
  3034.          CALL SPARBILD
  3035.          RET
  3036.  
  3037. BASIC    CALL CLOSE
  3038.          JP   0:0
  3039.  
  3040. BASIC1   LD   (KERMSP),SP
  3041.          LD   SP,(254:39)
  3042.          LD   A,(13:76)
  3043.          CP   231
  3044.          JPZ  13:76     RUN i BASIC
  3045.          JP   13:74
  3046.  
  3047. ;Visar vilka kommandon som finns
  3048. HELP     LD   HL,CMDTAB
  3049. HELP1    LD   B,1
  3050. HELP2    DJNZ HELP3
  3051.          CALL 7:66
  3052.          LD   B,3
  3053.          LD   A,(1:216)
  3054.          CP   40
  3055.          JRZ  HELP3
  3056.          LD   B,5
  3057. HELP3    LD   A,-10
  3058.          LD   DE,SPACE
  3059.          CALL SKRIVTAB
  3060.          LD   A,(HL)
  3061.          INC  A
  3062.          JRNZ HELP2
  3063.          CALL 7:66
  3064.          RET
  3065.  
  3066. ;Visa parametrar
  3067. SHOW     CALL 7:66
  3068.          LD   IX,PARMAREA
  3069.          LD   HL,SHOWTAB
  3070.          PUSH HL
  3071.          LD   HL,SETTAB
  3072. SHOW1    LD   B,2       Antal/rad
  3073.          LD   A,(1:216)
  3074.          CP   40
  3075.          JRZ  SHOW2
  3076.          LD   B,3
  3077. SHOW2    LD   A,-7      Rak v{nsterkant
  3078.          LD   DE,PUNKTER
  3079.          CALL SKRIVTAB
  3080.          EX   (SP),HL
  3081.          PUSH BC
  3082.          LD   E,(HL)
  3083.          INC  HL
  3084.          LD   D,(HL)
  3085.          INC  HL
  3086.          LD   C,(HL)
  3087.          INC  HL
  3088.          LD   B,(HL)
  3089.          INC  HL
  3090.          PUSH HL
  3091.          EX   DE,HL
  3092.          LD   A,(IX)
  3093.          INC  IX
  3094.          OR   128
  3095.          CP   254
  3096.          JRZ  SHOW3
  3097.          CP   255
  3098.          JRZ  SHOW3
  3099.          CPIR
  3100.          JRZ  SHOW4
  3101. SHOW3    AND  127
  3102.          LD   L,A
  3103.          LD   H,0
  3104.          LD   A,9
  3105.          LD   DE,PUNKTER
  3106.          CALL SKRTAL
  3107.          JR   SHOW5
  3108.  
  3109. SHOW4    DEC  HL
  3110.          LD   A,9
  3111.          LD   DE,PUNKTER
  3112.          CALL SKRIVTAB
  3113. SHOW5    POP  HL
  3114.          POP  BC
  3115.          EX   (SP),HL
  3116.          LD   A,(HL)
  3117.          INC  A
  3118.          JRZ  SHOW6
  3119.          PUSH HL
  3120.          PUSH BC
  3121.          LD   HL,SPACE
  3122.          LD   BC,2
  3123.          CALL 0:11
  3124.          POP  BC
  3125.          POP  HL
  3126.          DJNZ SHOW2
  3127.          CALL 7:66
  3128.          JR   SHOW1
  3129.  
  3130. SHOW6    POP  HL
  3131.          CALL 7:66
  3132.          RET
  3133.  
  3134. ;IN  DE Typ av delare
  3135. ;     A L{ngd f{lt >0 rak h|gerkant
  3136. ;                  <0 rak v{nsterkant
  3137. SKRIVTAB PUSH BC
  3138.          LD   BC,-1
  3139.          INC  HL        Skippa highbyte
  3140.          PUSH HL
  3141. SKRIVT1  BIT  7,(HL)
  3142.          INC  HL
  3143.          INC  BC        R{kna l{ngd ord
  3144.          JRZ  SKRIVT1
  3145.          DEC  HL
  3146.          EX   (SP),HL   Spara n{sta ord
  3147.          PUSH DE        Spara avskiljare
  3148.          AND  A
  3149.          JPM  SKRIVT2   Rak v{nsterkant
  3150.          PUSH HL
  3151.          PUSH BC
  3152.          EX   DE,HL
  3153.          SUB  C
  3154.          LD   C,A
  3155.          CALLNZ 0:11    Skriv avskiljare
  3156.          XOR  A
  3157.          POP  BC        L{ngd p} ord
  3158.          POP  HL        Pekar p} ord
  3159. SKRIVT2  PUSH AF
  3160.          PUSH BC
  3161.          CALL 0:11      Skriv ord
  3162.          POP  BC
  3163.          POP  AF
  3164.          POP  HL        Avskiljare
  3165.          NEG
  3166.          SUB  C
  3167.          LD   C,A
  3168.          CALLP 0:11     Skriv avskiljare
  3169.          POP  HL        N{sta ord
  3170.          POP  BC
  3171.          RET
  3172.  
  3173. PUNKTER  DM ".........."
  3174.  
  3175. ;[ndra parametrar
  3176. SET      LD   DE,SETTAB
  3177.          PUSH DE
  3178.          CALL STRSCAN
  3179.          POP  DE
  3180.          RETC           Ambigious
  3181.          JRNZ SET1
  3182.          LD   DE,SETJTB
  3183.          JP   1:58      Utnyttja ROM!
  3184.  
  3185. SET1     PUSH DE
  3186.          LD   HL,SETF1
  3187.          LD   BC,SETF2-SETF1
  3188.          CALL 0:11      Felmeddelande
  3189.          POP  HL
  3190.          JP   HELP1
  3191.  
  3192. SET2     PUSH DE
  3193.          LD   HL,SETF2
  3194.          LD   BC,SETF3-SETF2
  3195.          CALL 0:11      Felmeddelande
  3196.          POP  HL
  3197.          JP   HELP1
  3198.  
  3199. SETF1    DM 13,10,7,"Parameter must be"
  3200. SETF2    DM 13,10,7,"Value must be"
  3201. SETF3
  3202.  
  3203. SETTAB   DM 128,"ACCESS"
  3204.          DM 129,"BAUD"
  3205.          DM 130,"CHECK"
  3206.          DM 131,"DEBUG"
  3207.          DM 132,"DUPLEX"
  3208.          DM 133,"EOL"
  3209.          DM 134,"ESCAPE"
  3210.          DM 135,"FILE"
  3211.          DM 136,"FLOW"
  3212.          DM 137,"LENGTH"
  3213.          DM 138,"MARKER"
  3214.          DM 139,"NEWLINE"
  3215.          DM 140,"NUMPAD"
  3216.          DM 141,"PADCHAR"
  3217.          DM 142,"PARITY"
  3218.          DM 143,"PAUSE"
  3219.          DM 144,"QBIN"
  3220.          DM 145,"QCTL"
  3221.          DM 146,"REPT"
  3222.          DM 147,"RETRY"
  3223.          DM 148,"TEDESC"
  3224.          DM 149,"TEDMODE"
  3225.          DM 150,"TIMEOUT"
  3226.          DM 255
  3227.  
  3228. SETJTB   DW [ACC        128
  3229.          DW [BAUD       129
  3230.          DW [CHECK      130
  3231.          DW [DEBUG      131
  3232.          DW [DUPL       132
  3233.          DW [EOL        133
  3234.          DW [ESCAPE     134
  3235.          DW [FILE       135
  3236.          DW [FLOW       136
  3237.          DW [LENGTH     137
  3238.          DW [MARKER     138
  3239.          DW [NEWL       139
  3240.          DW [NUMPAD     140
  3241.          DW [PADCHAR    141
  3242.          DW [PAR        142
  3243.          DW [PAUSE      143
  3244.          DW [QBIN       144
  3245.          DW [QCTL       145
  3246.          DW [REPT       146
  3247.          DW [RETRY      147
  3248.          DW [TEDESC     148
  3249.          DW [TED        149
  3250.          DW [TIME       150
  3251.  
  3252.  
  3253. [BAUD    LD   DE,PBAUD
  3254.          LD   BC,BAUD
  3255.          CALL [TAB
  3256.          JP   FIXBAUD
  3257.  
  3258. PBAUD    DM 128,"300/300"
  3259.          DM 129,"1200/75"
  3260.          DM 130,"75/1200"
  3261.          DM 131,"1200/1200"
  3262.          DM 132,"2400/2400"
  3263.          DM 133,"4800/4800"
  3264.          DM 255
  3265. PBAUDS
  3266.  
  3267. [DUPL    LD   DE,PDUPL
  3268.          LD   BC,DUPLEX
  3269.          JP   [TAB
  3270.  
  3271. PDUPL    DM 128,"HALF"
  3272.          DM 129,"FULL"
  3273.          DM 255
  3274. PDUPLS
  3275.  
  3276. [PAR     LD   DE,PPAR
  3277.          LD   BC,PARITET
  3278.          JP   [TAB
  3279.  
  3280. PPAR     DM 128,"NONE"
  3281.          DM 129,"SPACE",129,"0"
  3282.          DM 130,"MARK",130,"1"
  3283.          DM 131,"EVEN"
  3284.          DM 132,"ODD"
  3285.          DM 255
  3286. PPARS
  3287.  
  3288. [FLOW    LD   DE,PFLOW
  3289.          LD   BC,FLOW
  3290.          JP   [TAB
  3291.  
  3292. PFLOW    DM 128,"OFF"
  3293.          DM 129,"XON/XOFF"
  3294.          DM 255
  3295. PFLOWS
  3296.  
  3297. [TIME    LD   DE,TIME
  3298.          JR   [TAL
  3299.  
  3300. [RETRY   LD   DE,RETRY
  3301. [TAL     PUSH DE
  3302.          CALL G\RTAL
  3303.          POP  BC
  3304.          EX   DE,HL
  3305.          LD   DE,PTAL
  3306.          JPC  SET2
  3307.          LD   A,H
  3308.          AND  A
  3309.          JPNZ SET2
  3310.          LD   A,L
  3311.          CP   1
  3312.          JPC  SET2
  3313.          CP   31
  3314.          JPNC SET2
  3315.          LD   (BC),A
  3316.          CALL 7:66
  3317.          AND  A
  3318.          RET
  3319.  
  3320. PTAL     DM 254,"1-30"
  3321.          DM 255
  3322. PTALS
  3323.  
  3324. [FILE    LD   DE,PFILE
  3325.          LD   BC,FILE
  3326.          JP   [TAB
  3327.  
  3328. PFILE    DM 128,"TEXT"
  3329.          DM 129,"BIN"
  3330.          DM 130,"AUTO"
  3331.          DM 255
  3332. PFILES
  3333.  
  3334. [LENGTH  CALL G\RTAL
  3335.          EX   DE,HL
  3336.          LD   DE,PLENGTH
  3337.          JPC  SET2
  3338.          LD   A,H
  3339.          AND  A
  3340.          JPNZ SET2
  3341.          LD   A,L
  3342.          CP   20
  3343.          JPC  SET2
  3344.          CP   95
  3345.          JPNC SET2
  3346.          LD   (LENGTH),A
  3347.          CALL 7:66
  3348.          RET
  3349.  
  3350. PLENGTH  DM 254,"20-94"
  3351.          DM 255
  3352. PLENGTHS
  3353.  
  3354. [MARKER  LD   DE,MARKER
  3355.          JP   [TKN
  3356.  
  3357. [CHECK   LD   DE,PCHECK
  3358.          LD   BC,CHECK
  3359. [TAB     PUSH DE
  3360.          PUSH BC
  3361.          CALL STRSCAN
  3362.          POP  BC
  3363.          POP  DE
  3364.          RETC           Ambigious
  3365.          JPNZ SET2
  3366.          AND  127
  3367.          LD   (BC),A
  3368.          CALL 7:66
  3369.          RET
  3370.  
  3371. PCHECK   DM 129,"1"
  3372.          DM 130,"2"
  3373.          DM 255
  3374. PCHECKS
  3375.  
  3376. [EOL     LD   DE,EOL
  3377.          JR   [TKN
  3378.  
  3379. [NUMPAD  LD   DE,NUMPAD
  3380.          JR   [TKN
  3381.  
  3382. [PADCHAR LD   DE,PADCHAR
  3383.          JR   [TKN
  3384.  
  3385. [QCTL    LD   DE,QCTL
  3386.          JR   [TKN
  3387.  
  3388. [QBIN    LD   DE,QBIN
  3389.          JR   [TKN
  3390.  
  3391. [ESCAPE  LD   DE,ESCAPE
  3392.          JR   [TKN
  3393.  
  3394. [TEDESC  LD   DE,TEDESC
  3395.          JR   [TKN
  3396.  
  3397. [REPT    LD   DE,REPT
  3398. [TKN     PUSH DE        Spara variabel
  3399.          CALL G\RTAL
  3400.          POP  BC
  3401.          EX   DE,HL
  3402.          LD   DE,PTKN
  3403.          JPC  SET2
  3404.          LD   A,H
  3405.          AND  A
  3406.          JPNZ SET2
  3407.          LD   A,L
  3408.          BIT  7,A
  3409.          JPNZ SET2
  3410.          LD   (BC),A
  3411.          CALL 7:66
  3412.          AND  A
  3413.          RET
  3414.  
  3415. PTKN     DM 254,"0-127"
  3416.          DM 255
  3417. PTKNS
  3418.  
  3419. [ACC     LD   DE,PACC
  3420.          LD   BC,ACCESS
  3421.          JP   [TAB
  3422.  
  3423. PACC     DM 128,"PREPARE"
  3424.          DM 129,"KILL"
  3425.          DM 130,"STOP"
  3426.          DM 255
  3427. PACCS
  3428.  
  3429. [DEBUG   LD   DE,PDEBUG
  3430.          LD   BC,DEBUG
  3431.          JP   [TAB
  3432.  
  3433. PDEBUG   DM 128,"OFF"
  3434.          DM 129,"PACKET"
  3435.          DM 130,"DUMP"
  3436.          DM 255
  3437. PDEBUGS
  3438.  
  3439. [TED     LD   DE,PTED
  3440.          LD   BC,TEDSAVE
  3441.          CALL [TAB
  3442.          RET
  3443.  
  3444. PTED     DM 128,"OFF"
  3445.          DM 129,"SAVE"
  3446.          DM 130,"SEND"
  3447.          DM 255
  3448. PTEDS
  3449.  
  3450. [NEWL    LD   DE,PNEWL
  3451.          LD   BC,NEWLINE
  3452.          JP   [TAB
  3453.  
  3454. PNEWL    DM 128,"OFF"
  3455.          DM 129,"ON"
  3456.          DM 255
  3457. PNEWLS
  3458.  
  3459. [PAUSE   LD   DE,PAUSE
  3460.          JP   [TKN
  3461.  
  3462. SHOWTAB  DW PACC,PACCS-PACC         128
  3463.          DW PBAUD,PBAUDS-PBAUD      129
  3464.          DW PCHECK,PCHECKS-PCHECK   130
  3465.          DW PDEBUG,PDEBUGS-PDEBUG   131
  3466.          DW PDUPL,PDUPLS-PDUPL      132
  3467.          DW PTKN,PTKNS-PTKN eol     133
  3468.          DW PTKN,PTKNS-PTKN escape  134
  3469.          DW PFILE,PFILES-PFILE      135
  3470.          DW PFLOW,PFLOWS-PFLOW      136
  3471.          DW PLENGTH,PLENGTHS-PLENGTH 137
  3472.          DW PTKN,PTKNS-PTKN marker  138
  3473.          DW PNEWL,PNEWLS-PNEWL      139
  3474.          DW PTKN,PTKNS-PTKN numpad  140
  3475.          DW PTKN,PTKNS-PTKN padchar 141
  3476.          DW PPAR,PPARS-PPAR         142
  3477.          DW PTKN,PTKNS-PTKN pause   143
  3478.          DW PTKN,PTKNS-PTKN qbin    144
  3479.          DW PTKN,PTKNS-PTKN qctl    145
  3480.          DW PTKN,PTKNS-PTKN rept    146
  3481.          DW PTAL,PTALS-PTAL retry   147
  3482.          DW PTKN,PTKNS-PTKN TEDesc  148
  3483.          DW PTED,PTEDS-PTED         149
  3484.          DW PTAL,PTALS-PTAL time    150
  3485.  
  3486. FIXBAUD  LD   A,(BAUD)
  3487.          INC  A
  3488.          LD   HL,FIXBAUD2-5
  3489.          LD   BC,5
  3490. FIXBAUD1 ADD  HL,BC
  3491.          DEC  A
  3492.          JRNZ FIXBAUD1
  3493.          LD   A,(HL)    Kort tid f|r
  3494.          INC  HL        tangentrepeet
  3495.          LD   (TAN1-1),A
  3496.          LD   E,(HL)
  3497.          INC  HL
  3498.          LD   D,(HL)
  3499.          INC  HL
  3500.          LD   (BAUDSEND),DE
  3501.          LD   E,(HL)
  3502.          INC  HL
  3503.          LD   D,(HL)
  3504.          INC  HL
  3505.          LD   (BAUDREC),DE
  3506.          RET
  3507.  
  3508. FIXBAUD2 DB 3
  3509.          DW BAUD300,BAUD300
  3510.          DB 5
  3511.          DW BAUD75,BAUD1200
  3512.          DB 2
  3513.          DW BAUD1200,BAUD75
  3514.          DB 2
  3515.          DW BAUD1200,BAUD1200
  3516.          DB 2
  3517.          DW BAUD2400,BAUD2400
  3518.          DB 2
  3519.          DW BAUD4800,BAUD4800
  3520.  
  3521. FIXTED   LD   A,(TEDFLG)
  3522.          AND  A
  3523.          RETZ           TED ej i minnet
  3524.          CALL R[KNA     Ant rader i TED
  3525.          LD   (TEDANRAD),DE
  3526.          INC  DE
  3527.          LD   (TEDINRAD),DE
  3528.          CALL TILLBUFF
  3529.          XOR  A
  3530.          LD   (TEDKOL),A
  3531.          LD   L,A
  3532.          LD   H,A
  3533.          LD   (TEDUTRAD),HL
  3534.          RET
  3535.  
  3536. PARMAREA
  3537.  
  3538. ACCESS   DB 0    Kolla om fil finns
  3539. BAUD     DB 1    Baud
  3540. CHECK    DB 2    Checksummetyp
  3541. DEBUG    DB 0    Debug-mode
  3542. DUPLEX   DB 1    Duplex
  3543. EOL      DB 13   End of packet
  3544. ESCAPE   DB 27   Esccape-tkn terminal
  3545. FILE     DB 2    Filtyp
  3546. FLOW     DB 1    Flow controll
  3547. LENGTH   DB 94   Packetl{ngd
  3548. MARKER   DB 1    Start of packet
  3549. NEWLINE  DB 0    Tolka <RETURN> som CRLF
  3550. NUMPAD   DB 0    Antal PAD-tkn
  3551. PADCHAR  DB 0    PAD-tecken
  3552. PARITET  DB 0    Paritet
  3553. PAUSE    DB 0    Paus innan packet s{nds
  3554. QBIN     DB "&"
  3555. QCTL     DB "#"
  3556. REPT     DB "~"
  3557. RETRY    DB 5    Antal omf|rs|k
  3558. TEDESC   DB 0    Hopp-till-TED-tangent
  3559. TEDSAVE  DB 0    Spara/s{nda text i TED
  3560. TIME     DB 10   Timeout
  3561.  
  3562. PARMLEN  EQU $-PARMAREA
  3563.  
  3564. LOG      DB 0    Logga p} disk
  3565. DMP      DB 0    S{nd iv{g fil
  3566. <<< kerm4.asm >>>
  3567. ; KERM4.ASM
  3568. ; Anders Franz`n <5258>
  3569. ; Stockholm 1987-09-13
  3570.  
  3571.  
  3572. ;Ny LIB-rutin f|r TED
  3573. TEDLIB   LD   HL,TL4
  3574.          LD   BC,TL5-TL4
  3575.          CALL 0:11
  3576. TL1      CALL 0:2
  3577.          LD   HL,TL6
  3578.          LD   BC,8
  3579.          CPIR
  3580.          JRZ  TL2       Siffra 0-7
  3581.          LD   C,8
  3582.          CPIR
  3583.          RETNZ          Ej shift+siffra
  3584.          XOR  A         Visa filstorlek
  3585. TL2      LD   (255:212),A
  3586.          LD   HL,TL7
  3587.          LD   (WILDSTR),HL
  3588.          LD   A,C       \nskad drive
  3589.          OR   128       Flagga TED-lib
  3590.          CALL DIR
  3591.          JRNC TEDLIB
  3592.          LD   HL,TL5
  3593.          LD   BC,TL6-TL5
  3594.          CALL 0:11
  3595.          JR   TL1
  3596.  
  3597. TL4      DB 27,61,32+23,32+0,7
  3598.          DM "*  \NSKAD DRIVE ?"
  3599. TL5      DB 27,61,32+23,32+0,7
  3600.          DM "*  SKIVAN EJ KLAR."
  3601. TL6      DM "76543210"
  3602.          DM '/&%$#"!='
  3603. TL7      DB "*",13
  3604.  
  3605. ;Huvudrutin f|r LIB
  3606. DIRH     RST  32
  3607.          CP   ","
  3608.          JRNZ DIRH1
  3609.          INC  HL
  3610.          RST  32
  3611.          AND  95
  3612.          CP   "S"
  3613.          JRNZ DIRH1
  3614.          RST  24
  3615.          XOR  A         Filstorlek visas
  3616. DIRH1    LD   (255:212),A Spara flagga
  3617.          CALL DRIVEFIX
  3618.          LD   HL,(WILDSTR)
  3619.          LD   A,(HL)
  3620.          CP   13
  3621.          JRNZ DIRH2     Argument finns
  3622.          LD   (HL),"*"  Default alla
  3623.          INC  HL
  3624.          LD   (HL),A
  3625. DIRH2    CALL 7:66
  3626.          LD   BC,(WILDANT)
  3627. DIRH3    LD   A,C
  3628.          PUSH BC
  3629.          CALL DIR
  3630.          POP  BC
  3631.          INC  C
  3632.          DJNZ DIRH3
  3633.          RET
  3634.  
  3635. DIR      LD   C,A
  3636.          AND  127
  3637.          PUSH BC
  3638.          CALL LIBINIT
  3639.          POP  BC
  3640.          RETC
  3641.          BIT  7,C
  3642.          LD   HL,DIR19
  3643.          LD   BC,DIR20-DIR19
  3644.          CALLNZ 0:11    Skriv om TED-lib
  3645.          LD   DE,0:32*7 Sp}r 0 sektor 7
  3646.          CALL LIBL[S    L{s sektor
  3647.          RETC           Felkod >0
  3648.          LD   HL,245:0  Inl{st sektor
  3649.          LD   E,L
  3650.          LD   D,L       DE <-- noll
  3651.          LD   B,160     Antal bytes
  3652.          XOR  A
  3653. DIR1     CP   (HL)      Unders|k byte
  3654.          INC  HL
  3655.          JRNZ DIR5      Ej noll
  3656.          PUSH HL
  3657.          LD   HL,8
  3658.          ADD  HL,DE     \ka antalet
  3659.          EX   DE,HL     sektorer med 8
  3660.          POP  HL
  3661. DIR5     DJNZ DIR1      Upprepa
  3662.          LD   (255:200),DE Ant sektorer
  3663.          LD   DE,0:32*0 Sp}r 0 sektor 0
  3664.          CALL LIBL[S    L{s sektor
  3665.          RETC           Felkod > 0
  3666.          LD   HL,DIR15
  3667.          LD   BC,DIR17-DIR15
  3668.          CALL 0:11      Skriv "DRx:"
  3669.          LD   HL,245:135
  3670.          LD   BC,120:0  Max 120 tecken
  3671. DIR6     LD   A,(HL)
  3672.          INC  HL
  3673.          CP   10        Volymnamn slut ?
  3674.          JRZ  DIR7      Ja, hoppa
  3675.          CP   13
  3676.          JRZ  DIR7      Ja, hoppa
  3677.          CP   32        Finns volymnamn?
  3678.          JRC  DIR8      Nej, hoppa
  3679.          CP   128
  3680.          JRNC DIR8      Nej, hoppa
  3681.          INC  C         \ka r{knare
  3682.          DJNZ DIR6      Upprepa om fler
  3683. DIR7     LD   A,C
  3684.          AND  A         Fanns volymnamn?
  3685.          JRZ  DIR8      Nej, hoppa
  3686.          LD   B,0       BC=l{ngd p} text
  3687.          LD   HL,245:135
  3688.          CALL 0:11      Skriv volymnamn
  3689. DIR8     CALL 7:66
  3690.          CALL FIRSTFIL
  3691.          RETC
  3692.          JRZ  DIR14
  3693.          LD   B,1
  3694. DIR9     DJNZ DIR11
  3695.          CALL 7:66
  3696.          LD   A,(1:216)
  3697.          CP   40
  3698.          LD   B,2
  3699.          JRZ  DIR10
  3700.          LD   B,4
  3701. DIR10    LD   A,(255:212)
  3702.          AND  A
  3703.          JRZ  DIR11     Storlek visas
  3704.          INC  B
  3705. DIR11    PUSH BC
  3706.          LD   HL,255:132
  3707.          LD   BC,12
  3708.          CALL 0:11      Skriv filnamn
  3709.          LD   BC,1
  3710.          LD   A,(255:212) Ska filstorlek
  3711.          AND  A           visas ?
  3712.          JRNZ DIR12     Nej
  3713.          LD   HL,(255:146)
  3714.          LD   A,4
  3715.          LD   DE,SPACE
  3716.          CALL SKRTAL
  3717.          LD   BC,3
  3718. DIR12    LD   HL,SPACE
  3719.          CALL 0:11      Skriv space
  3720.          POP  BC
  3721.          CALL PAUS
  3722.          RETC           CTRL-C
  3723.          PUSH BC
  3724.          CALL NEXTFIL
  3725.          POP  BC
  3726.          RETC
  3727.          JRNZ DIR9
  3728. DIR14    CALL 7:66
  3729.          CALL 7:66
  3730.          LD   HL,(255:202) Lediga sekt
  3731.          CALL SKRIVTAL
  3732.          LD   HL,DIR17
  3733.          LD   BC,DIR18-DIR17
  3734.          CALL 0:11
  3735.          LD   HL,(255:200) Ant sektorer
  3736.          CALL SKRIVTAL
  3737.          LD   HL,DIR18
  3738.          LD   BC,DIR19-DIR18
  3739.          CALL 0:11
  3740.          RET
  3741.  
  3742. DIR15    DM 13,10,"DR"
  3743. DIR16    DM "x:  "
  3744. DIR17    DM " of "
  3745. DIR18    DM " sectors free."
  3746.          DM 13,10
  3747. DIR19    DB 12,27,61,32+3,32+0
  3748.          DM "LIB",13,10
  3749.          DM "====="
  3750.          DB 27,61,32+6,32+0
  3751. DIR20
  3752.  
  3753. LIBINIT  LD   (253:1),A Selektera drive
  3754.          ADD  48
  3755.          LD   (DIR16),A
  3756.          LD   DE,0:32*6 Sp}r 0 sektor 6
  3757.          CALL LIBL[S    L{s sektor
  3758.          RETC           Felkod > 0
  3759.          LD   HL,245:0  Inl{st sektor
  3760.          LD   E,L
  3761.          LD   D,L       DE <-- noll
  3762.          LD   C,160     Antal byte
  3763. LIB1     LD   B,8       ]tta bitar
  3764. LIB2     RR   (HL)      Testa bit
  3765.          JRC  LIB3      Upptagen
  3766.          INC  DE        \ka r{knare
  3767. LIB3     DJNZ LIB2      Repetera
  3768.          INC  HL        N{sta byte
  3769.          DEC  C         Slut ?
  3770.          JRNZ LIB1      Nej, upprepa
  3771.          LD   (255:202),DE Lediga sekt
  3772.          LD   HL,245:239 Kopiera vilka
  3773.          LD   DE,255:204 sektorer i
  3774.          LD   C,8        biblioteket
  3775.          LDIR            som {r anv{nda
  3776.          AND  A
  3777.          RET
  3778.  
  3779. FIRSTFIL LD   DE,2:0    Sp}r 2 sektor 0
  3780.          JR   NX2
  3781.  
  3782. NEXTFIL  LD   HL,(DRFIL)
  3783.          LD   DE,(DRSEKT)
  3784.          LD   A,L
  3785.          ADD  16        N{sta fil i
  3786.          LD   L,A       biblioteket
  3787.          LD   (DRFIL),HL
  3788.          AND  A         Sektor slut ?
  3789.          JRNZ NX3       Nej, kolla fil
  3790. NX1      LD   A,E
  3791.          ADD  32        N{sta sektor
  3792.          LD   E,A       p} sp}r tv}
  3793.          AND  A         Sektorer slut ?
  3794.          RETZ           Ja, retur!
  3795. NX2      LD   (DRSEKT),DE
  3796.          PUSH DE        Spara sektor-nr
  3797.          LD   HL,255:204
  3798.          SRL  E         Dela E med 32
  3799.          SRL  E
  3800.          SRL  E
  3801.          SRL  E
  3802.          SRL  E
  3803.          LD   D,0
  3804.          ADD  HL,DE     Sl} i tabell
  3805.          LD   A,(HL)    [r sektorn
  3806.          CP   2         anv{nd ?
  3807.          POP  DE
  3808.          JRC  NX1       Nej, tag n{sta
  3809.          CALL LIBL[S    L{s sektor
  3810.          RETC           Felkod > 0
  3811.          LD   HL,245:16 Biblioteket
  3812.          LD   DE,252:16 Kassettbuffer 2
  3813.          LD   BC,240
  3814.          PUSH DE
  3815.          LDIR
  3816.          POP  HL        Filbeskrivning
  3817.          LD   (DRFIL),HL
  3818. NX3      LD   A,(HL)
  3819.          AND  A         Finns fil ?
  3820.          JRZ  NEXTFIL   Nej, hoppa
  3821.          INC  A
  3822.          JRZ  NEXTFIL
  3823.          PUSH HL
  3824.          LD   DE,4
  3825.          ADD  HL,DE     Peka p} filnamn
  3826.          EX   DE,HL
  3827.          LD   HL,255:128
  3828.          LD   (HL),"D"
  3829.          INC  HL
  3830.          LD   (HL),"R"
  3831.          INC  HL
  3832.          LD   A,(DIR16)
  3833.          LD   (HL),A
  3834.          INC  HL
  3835.          LD   (HL),":"
  3836.          INC  HL
  3837.          EX   DE,HL
  3838.          PUSH DE
  3839.          LD   BC,8
  3840.          LDIR           Spara filnamn
  3841.          LD   A,"."
  3842.          LD   (DE),A
  3843.          INC  DE
  3844.          LD   BC,3
  3845.          LDIR           Spara extension
  3846.          LD   A,13
  3847.          LD   (DE),A
  3848.          POP  DE
  3849.          CALL WILDCARD  Kolla filnamn
  3850.          POP  HL
  3851.          JPNC NEXTFIL   Passar ej
  3852.          LD   A,(255:212) Ska filstorlek
  3853.          AND  A           visas ?
  3854.          RETNZ          Nej, retur
  3855.          LD   D,(HL)    Sp}r segmrecord
  3856.          INC  HL
  3857.          LD   A,(HL)
  3858.          AND  224       Ta bort status
  3859.          LD   E,A       Sektor*32
  3860.          CALL LIBL[S    L{s segmrecord
  3861.          RETC           Felkod > 0
  3862.          LD   DE,245:4  Segmbeskrivning
  3863.          LD   HL,0      R{knare f|r
  3864.          LD   B,L       filstorleken
  3865. NX4      LD   A,(DE)
  3866.          INC  A         Fler segment ?
  3867.          JRZ  NX5       Nej, hoppa
  3868.          INC  DE        Skippa sp}radr
  3869.          LD   A,(DE)
  3870.          INC  DE
  3871.          AND  31        Maska fram antal
  3872.          INC  A         sektorer i segm
  3873.          LD   C,A
  3874.          ADD  HL,BC     \ka r{knare
  3875.          JR   NX4       N{sta segment
  3876.  
  3877. NX5      LD   (255:146),HL
  3878.          OR   1
  3879.          RET
  3880.  
  3881. DRSEKT   DW 0
  3882. DRFIL    DW 0
  3883.  
  3884. ; LIBL[S l{ser en sektor p} skivan.
  3885. LIBL[S   PUSH DE
  3886.          PUSH BC
  3887.          PUSH HL
  3888.          CALL 96:102    L{s sektor
  3889.          POP  HL
  3890.          POP  BC
  3891.          POP  DE
  3892.          LD   A,(253:21)
  3893.          AND  A         Felkod > 0 ?
  3894.          RETZ
  3895.          SCF
  3896.          RET
  3897.  
  3898. TYPE     PUSH HL
  3899.          CALL CLOSE
  3900.          POP  HL
  3901.          CALL OPEN
  3902.          JPC  ERROR
  3903.          CALL 7:66
  3904. TYP1     LD   HL,BUFF6
  3905.          LD   BC,255
  3906.          LD   DE,8:147
  3907.          PUSH HL
  3908.          CALL FILCONTR  L{s in en rad
  3909.          POP  HL
  3910.          JRC  TYP3      EOF, BAC el ERR
  3911.          EX   DE,HL
  3912.          LD   (HL),10
  3913.          INC  HL
  3914.          SBC  HL,DE
  3915.          LD   C,L
  3916.          LD   B,H
  3917.          EX   DE,HL
  3918.          CALL 0:11
  3919.          CALL PAUS
  3920.          JRNC TYP1      Ej CTRL-C
  3921. TYP3     CP   186
  3922.          JRZ  TYP4      Kanske BAC-fil
  3923.          AND  A
  3924.          JPNZ ERROR     Ej EOF
  3925.          LD   DE,8:144
  3926.          CALL FILCONTR  Close
  3927.          JPC  ERROR
  3928.          CALL 7:66
  3929.          RET
  3930.  
  3931. TYP4     LD   L,(IX+8)
  3932.          LD   H,(IX+9)
  3933.          LD   A,(HL)
  3934.          INC  HL
  3935.          CP   130
  3936.          JRZ  TYP5
  3937.          CP   131
  3938.          JRNZ TYP3      Ej BAC-fil
  3939. TYP5     LD   A,(HL)
  3940.          AND  A
  3941.          JRZ  TYP6      Forts n{sta blk
  3942.          DEC  A
  3943.          JRZ  TYP3      Slut p} pgm
  3944.          LD   DE,BUFF6
  3945.          PUSH DE
  3946.          PUSH IX
  3947.          CALL 17:149    \vers{tt BAC-rad
  3948.          POP  IX
  3949.          EX   (SP),HL
  3950.          EX   DE,HL
  3951.          LD   (HL),10   LF sist i rad
  3952.          INC  HL
  3953.          AND  A
  3954.          SBC  HL,DE
  3955.          LD   C,L
  3956.          LD   B,H
  3957.          EX   DE,HL
  3958.          CALL 0:11
  3959.          CALL PAUS
  3960.          POP  HL        N{sta rad
  3961.          JRNC TYP5
  3962.          JR   TYP3
  3963.  
  3964. TYP6     LD   DE,8:153
  3965.          CALL FILCONTR  L{s n{sta block
  3966.          JRNC TYP5
  3967.          JR   TYP3
  3968.  
  3969. DELETE   PUSH HL
  3970.          CALL CLOSE
  3971.          POP  HL
  3972.          CALL DRIVEFIX
  3973.          LD   A,21
  3974.          JPC  ERROR
  3975. DEL1     LD   A,(WILDFLG)
  3976.          AND  A
  3977.          JRZ  DEL4      Ej wildcard
  3978.          BIT  7,A
  3979.          JRNZ DEL3      Drive initierad
  3980.          SET  7,A
  3981.          LD   (WILDFLG),A
  3982. DEL2     LD   BC,(WILDANT)
  3983.          DEC  B
  3984.          RETM           Slut p} drivear
  3985.          LD   A,C       Drivenummer
  3986.          INC  C
  3987.          LD   (WILDANT),BC
  3988.          CALL LIBINIT
  3989.          JRC  DEL2
  3990.          CALL FIRSTFIL
  3991.          JRC  DEL2
  3992.          JRZ  DEL2      Drive tom
  3993.          JR   DEL4
  3994.  
  3995. DEL3     CALL NEXTFIL
  3996.          JRC  DEL2
  3997.          JRZ  DEL2      N{sta drive
  3998. DEL4     LD   HL,DEL6
  3999.          LD   BC,DEL7-DEL6
  4000.          CALL 0:11
  4001.          LD   HL,255:128 Filnamn
  4002.          LD   BC,16
  4003.          PUSH HL
  4004.          CALL 0:11
  4005.          POP  HL
  4006.          RST  32
  4007.          CALL OPEN
  4008.          JRC  DEL5
  4009.          LD   DE,8:159
  4010.          CALL FILCONTR  Delete fil
  4011. DEL5     CALLC ERROR
  4012.          CALL PAUS
  4013.          RETC           CTRL-C
  4014.          LD   A,(WILDFLG)
  4015.          AND  A
  4016.          JRNZ DEL1
  4017.          RET
  4018.  
  4019. DEL6     DM   13,10,"delete "
  4020. DEL7
  4021.  
  4022. CLOSE    LD   A,(LOG)
  4023.          AND  A
  4024.          JRNZ CL1
  4025.          LD   A,(DMP)
  4026.          AND  A
  4027.          RETZ
  4028. CL1      LD   HL,CL2
  4029.          LD   BC,CL3-CL2
  4030.          CALL 0:11
  4031.          XOR  A
  4032.          LD   (LOG),A
  4033.          LD   (DMP),A
  4034.          LD   IX,FIL
  4035.          LD   DE,8:127
  4036.          CALL FILCONTR  Close
  4037.          JPC  ERROR
  4038.          CALL 7:66
  4039.          RET
  4040.  
  4041. CL2      DB 13,10
  4042.          DM "Closing DUMP/LOG file"
  4043. CL3
  4044.  
  4045. LOGG     PUSH HL
  4046.          CALL CLOSE
  4047.          POP  HL
  4048.          CALL PREPARE
  4049.          JPC  ERROR
  4050.          LD   HL,BUFF3
  4051.          LD   (LOGBUFF),HL
  4052.          LD   IX,KERMAREA
  4053.          LD   (IX+29),1 Textfil
  4054.          LD   A,255
  4055.          LD   (LOG),A
  4056.          RET
  4057.  
  4058. DUMP     PUSH HL
  4059.          CALL CLOSE
  4060.          POP  HL
  4061.          CALL OPEN
  4062.          JPC  ERROR
  4063.          LD   IX,KERMAREA
  4064.          XOR  A
  4065.          LD   (IX+20),A Kommando DUMP
  4066.          LD   (IX+27),A Inget data l{st
  4067.          LD   (IX+29),1 Textfil
  4068.          DEC  A
  4069.          LD   (DMP),A
  4070.          RET
  4071.  
  4072. SAVE     PUSH HL
  4073.          CALL CLOSE
  4074.          POP  HL
  4075.          CALL PREPBAC
  4076.          JPC  ERROR
  4077.          LD   E,(IX+8)
  4078.          LD   D,(IX+9)
  4079.          LD   A,D
  4080.          AND  A
  4081.          LD   A,52
  4082.          JPZ  ERROR     Buffer saknas
  4083.          LD   HL,SAV2
  4084.          LD   BC,SAV3-SAV2
  4085.          LDIR
  4086.          EX   DE,HL
  4087.          LD   DE,PARMAREA
  4088.          LD   B,PARMLEN
  4089. SAV1     LD   (HL),","
  4090.          INC  HL
  4091.          LD   (HL),199
  4092.          INC  HL
  4093.          LD   A,(DE)
  4094.          INC  DE
  4095.          LD   (HL),A
  4096.          INC  HL
  4097.          LD   (HL),0
  4098.          INC  HL
  4099.          LD   (HL),186
  4100.          INC  HL
  4101.          DJNZ SAV1
  4102.          EX   DE,HL
  4103.          LD   HL,SAV3
  4104.          LD   BC,SAV8-SAV3
  4105.          LDIR
  4106.          CALL 8:156     Skriv block
  4107.          CALL 8:127     St{ng filen
  4108.          RET
  4109.  
  4110. SAV2     DB 130         BASIC-pgm
  4111.  
  4112.          DB 5*1+10
  4113.          DB 10,0,134,129
  4114.          DB 199,64,254,186
  4115.          DB ",",199,0,0,186
  4116.          DB 13
  4117.  
  4118.          DB 5*PARMLEN+10
  4119.          DB 20,0,134,129
  4120.          DB 199,128,255,186
  4121.  
  4122. SAV3     DB 13
  4123.  
  4124. SAV4     DB SAV7-SAV4
  4125.          DB 30,0,134,145        CHAIN
  4126.          DB 203,34,SAV6-SAV5    str{ng
  4127. SAV5     DB "KERM.BAC"
  4128. SAV6     DB 187,13
  4129. SAV7     DB 1           Slut p} pgm
  4130. SAV8
  4131.  
  4132. PAUS     CALL 3:62
  4133.          SCF
  4134.          RETNZ          CTRL-C
  4135.          PUSH IX
  4136.          INP  56
  4137.          AND  127
  4138.          CP   32
  4139.          JRZ  PAUS1     Tangentbroms
  4140.          LD   A,(253:245)
  4141.          AND  128
  4142.          JRZ  PAUS2     Tangent ej nere
  4143.          CALL 0:2
  4144. PAUS1    CALL 0:2
  4145. PAUS2    POP  IX
  4146.          AND  A
  4147.          RET
  4148. <<< kerm5.asm >>>
  4149. ; KERM5.ASM
  4150. ; Anders Franz`n <5258>
  4151. ; Stockholm 1987-09-24
  4152.  
  4153. PACKNR   DW 0
  4154. ANTBYTES DW 0
  4155. ANTBUF   DW 0
  4156. NAKNR    DW 0
  4157. KERMAREA DS 40
  4158. FIL      DS 15
  4159.          DB 0
  4160.  
  4161. ;Ta emot en fil som s{nds med Kermit
  4162. RECEIVE  INP  58
  4163.          AND  2
  4164.          JPNZ TIMEOUT   Ingen b{rv}g
  4165.          LD   HL,KTXT1
  4166.          LD   BC,KTXT2-KTXT1
  4167.          CALL WRITE
  4168.          LD   IX,KERMAREA
  4169.          LD   (IX+0),0  Inga flaggor
  4170.          CALL RDEFAULT
  4171.          LD   A,(TIME)
  4172.          LD   (IX+12),A Default maxtid
  4173.          LD   (IX+8),1  Start CH-typ
  4174.          LD   (IX+23),0 Packetr{knare
  4175.          LD   (IX+26),"S"
  4176. RE1      LD   A,(RETRY)
  4177.          LD   (IX+20),A Max ant f|rs|k
  4178.          JR   RE3
  4179.  
  4180. RE2      DEC  (IX+20)
  4181.          JPZ  TIMEOUT   F|r m}nga f|rs|k
  4182.          LD   A,(IX+26)
  4183.          CP   "D"
  4184.          JRNZ RE3       V{ntar ej data
  4185.          LD   HL,(NAKNR) R{kna antalet
  4186.          INC  HL         felaktiga paket
  4187.          LD   (NAKNR),HL
  4188.          CALL SKRIVFIL
  4189. RE3      BIT  3,(IX+0)
  4190.          JPNZ TIMEOUT   ESCAPE
  4191.          LD   A,(IX+12)
  4192.          LD   (IX+21),A S{tt tid kvar
  4193.          LD   A,(IX+26)
  4194.          CP   "S"
  4195.          JPZ  RINIT     Kermitparametrar
  4196.          CP   "F"
  4197.          JPZ  RFIL      Filhuvud
  4198.          CP   "D"
  4199.          JPZ  RDATA     Data i fil
  4200.          RET            Klart
  4201.  
  4202. ;V{nta p} Kermitparametrar
  4203. RINIT    CALL GPACK     Ta emot packet
  4204.          JPC  RE2       Fel, f|rs|k igen
  4205.          LD   A,(IX+25)
  4206.          CP   "E"
  4207.          JPZ  RERROR    Avbryt!
  4208.          CP   "S"
  4209.          JPNZ RE2       Fel packettyp
  4210.          LD   HL,KTXT2
  4211.          LD   BC,KTXT3-KTXT2
  4212.          CALL WRITE
  4213.          CALL RFIX
  4214.          LD   C,(IX+8)
  4215.          PUSH BC
  4216.          LD   (IX+8),1  CH-typ 1
  4217.          LD   (IX+24),9
  4218.          LD   (IX+25),"Y"
  4219.          CALL SPACK     Positivt svar
  4220.          POP  BC
  4221.          LD   (IX+8),C
  4222.          JPC  TIMEOUT   Time out
  4223.          LD   HL,KTXT4
  4224.          LD   BC,KTXT5-KTXT4
  4225.          CALL WRITE     Filrubrik
  4226.          LD   A,(IX+23)
  4227.          INC  A
  4228.          AND  63
  4229.          LD   (IX+23),A
  4230.          LD   (IX+26),"F"
  4231.          JP   RE1
  4232.  
  4233. ;V{nta p} filhuvud
  4234. RFIL     CALL GPACK     Ta emot packet
  4235.          JPC  RE2       Fel, f|rs|k igen
  4236.          LD   A,(IX+25)
  4237.          CP   "S"
  4238.          JPZ  RFIL1     Oms{ndning
  4239.          CP   "Z"
  4240.          JPZ  RFIL5     Oms{ndning
  4241.          CP   "F"
  4242.          JPZ  RFIL6     Filnamn
  4243.          CP   "B"
  4244.          JPZ  RBREAK    Break
  4245.          CP   "E"
  4246.          JPZ  RERROR
  4247.          JP   FELPACK
  4248.  
  4249. ;Behandla oms{ndning parametrar
  4250. RFIL1    LD   A,(IX+23)
  4251.          DEC  A
  4252.          CP   (IX+22)
  4253.          JPNZ RE2       Ej oms{ndning
  4254.          CALL RFIX
  4255.          LD   C,(IX+8)
  4256.          PUSH BC
  4257.          LD   (IX+8),1  CH-typ 1
  4258.          LD   (IX+24),9
  4259.          LD   (IX+25),"Y"
  4260.          CALL SPACK     Positivt svar
  4261.          POP  BC
  4262.          LD   (IX+8),C
  4263.          JPNC RE1
  4264.          JP   TIMEOUT
  4265.  
  4266. ;Fixa parametrar att s{nda
  4267. RFIX     CALL RPARM
  4268.          LD   A,(LENGTH)
  4269.          LD   (IX+1),A
  4270.          LD   A,(TIME)
  4271.          LD   (IX+2),A
  4272.          LD   A,(NUMPAD)
  4273.          LD   (IX+3),A
  4274.          LD   A,(PADCHAR)
  4275.          LD   (IX+4),A
  4276.          LD   A,(EOL)
  4277.          LD   (IX+5),A
  4278.          LD   A,(QCTL)
  4279.          LD   (IX+6),A
  4280.          LD   (IX+7),"Y" Vi klarar av
  4281.          LD   A,(PARITET) ev QBIN
  4282.          AND  A
  4283.          JRZ  RFIX1     Paritet NONE
  4284.          LD   A,(IX+17)
  4285.          AND  A         S{ndare klarar
  4286.          JRZ  RFIX2     ej av QBIN
  4287.          LD   (IX+7),A
  4288.          CP   "Y"       S{ndare beg{r
  4289.          JRNZ RFIX2     QBIN
  4290.          LD   A,(QBIN)
  4291.          LD   (IX+7),A
  4292.          LD   (IX+17),A
  4293.          JR   RFIX2     Vi beg{r QBIN
  4294.  
  4295. RFIX1    LD   A,(IX+17)
  4296.          AND  A         S{ndare klarar
  4297.          JRZ  RFIX2     ej av QBIN
  4298.          LD   (IX+7),A
  4299.          CP   "Y"       S{ndare beg{r
  4300.          JRNZ RFIX2     QBIN
  4301.          LD   (IX+17),0 Ingen vill ha
  4302. RFIX2    LD   A,(CHECK)
  4303.          LD   (IX+8),A
  4304.          CP   (IX+18)
  4305.          JRZ  RFIX3     B}da har samma
  4306.          LD   (IX+8),1
  4307.          LD   (IX+18),1
  4308. RFIX3    LD   A,(IX+19)
  4309.          LD   (IX+9),A
  4310.          CALL SPARM
  4311.          RET
  4312.  
  4313. ;Behandla oms{ndning EOF
  4314. RFIL5    LD   A,(IX+23)
  4315.          DEC  A
  4316.          CP   (IX+22)
  4317.          JPNZ RE2       Ej oms{ndning
  4318.          LD   (IX+24),0 Inget data
  4319.          LD   (IX+25),"Y"
  4320.          CALL SPACK     Positivt svar
  4321.          JPNC RE1
  4322.          JP   TIMEOUT
  4323.  
  4324. ;Filnamn
  4325. RFIL6    LD   A,(IX+23)
  4326.          CP   (IX+22)
  4327.          JPNZ RE2       Fel packetnr
  4328.          LD   HL,0
  4329.          LD   (PACKNR),HL
  4330.          LD   (ANTBYTES),HL
  4331.          LD   (ANTBUF),HL
  4332.          LD   (NAKNR),HL
  4333.          CALL CRLF      Ny rad
  4334.          LD   HL,BUFF3  Peka p} data
  4335.          LD   DE,255:128
  4336.          LD   C,(IX+24) L{ngd filnamn
  4337.          LD   B,0
  4338.          PUSH HL
  4339.          PUSH DE
  4340.          CALL 0:65      Fixa filnamn
  4341.          POP  HL
  4342.          LD   BC,8
  4343.          CALL WRITE
  4344.          PUSH HL
  4345.          LD   HL,KTXT6
  4346.          LD   BC,1
  4347.          CALL WRITE     "."
  4348.          POP  HL
  4349.          LD   BC,3
  4350.          CALL WRITE     Extension
  4351.          CALL SKRIVFIL
  4352.          POP  HL
  4353.          LD   (IX+37),0 Ej CTRL-XZ {nnu
  4354.          SET  5,(IX+0)  Till}t CTRL-XZ
  4355.          PUSH HL
  4356.          LD   E,(IX+24) L{ngd data
  4357.          LD   D,0
  4358.          ADD  HL,DE
  4359.          LD   (HL),13   Slut p} filnamn
  4360.          POP  HL        Pekar p} filnamn
  4361.          LD   DE,(FILPEK)
  4362.          LD   A,(DE)
  4363.          CP   13
  4364.          JRZ  RFIL7
  4365.          EX   DE,HL     Lokalt filnamn
  4366. RFIL7    LD   A,(ACCESS)
  4367.          AND  A         Strunta i om
  4368.          JRZ  RFIL8     filen finns
  4369.          PUSH HL
  4370.          PUSH IX
  4371.          CALL OPEN
  4372.          POP  IX
  4373.          POP  HL        Pekar p} filnamn
  4374.          JRNC RFIL9     Filen finns!
  4375.          AND  127
  4376.          CP   21
  4377.          JPNZ FELFIL    Annat fel
  4378. RFIL8    PUSH IX
  4379.          CALL PREPARE
  4380.          POP  IX
  4381.          JPNC RFIL13    Det gick bra
  4382.          JP   FELFIL
  4383.  
  4384. RFIL9    LD   A,(ACCESS)
  4385.          CP   1
  4386.          JRZ  RFIL12    Kill
  4387.          LD   HL,RFIL10
  4388.          LD   BC,RFIL12-RFIL10
  4389.          CALL WRITE
  4390.          LD   HL,RFIL11
  4391.          LD   BC,RFIL12-RFIL11
  4392.          LD   (IX+24),C
  4393.          LD   DE,BUFF4
  4394.          LDIR
  4395.          LD   (IX+25),"E"
  4396.          CALL SPACK     Error!
  4397.          JP   AVBRYT
  4398.  
  4399. RFIL10   DM 13,10,7
  4400. RFIL11   DM "File already "
  4401.          DM "exists on disk"
  4402.  
  4403. RFIL12   PUSH HL
  4404.          PUSH IX
  4405.          LD   IX,FIL
  4406.          LD   DE,8:159
  4407.          CALL FILCONTR  Kill
  4408.          POP  IX
  4409.          POP  HL        Pekar p} filnamn
  4410.          JPNC RFIL8     Forts{tt...
  4411.          JP   FELFIL
  4412.  
  4413. RFIL13   LD   HL,(ANTBUF)
  4414.          INC  HL
  4415.          LD   (ANTBUF),HL
  4416.          CALL SKRIVFIL
  4417.          LD   (IX+29),0 Filtyp ok{nd
  4418.          LD   (IX+24),0
  4419.          LD   (IX+25),"Y"
  4420.          LD   A,(IX+37)
  4421.          AND  A
  4422.          JRZ  RFIL14    Ej CTRL-XZ
  4423.          LD   (BUFF4),A S{nd tkn i ACK!
  4424.          INC  (IX+24)   L{ngd ett
  4425.          SET  4,(IX+0)  V{nta p} Z-pack
  4426.          RES  5,(IX+0)  F|rbjud CTRL-XZ
  4427. RFIL14   CALL SPACK     Positivt svar
  4428.          JPC  TIMEOUT
  4429.          LD   HL,(PACKNR)
  4430.          INC  HL
  4431.          LD   (PACKNR),HL
  4432.          CALL SKRIVFIL
  4433.          LD   A,(IX+23)
  4434.          INC  A
  4435.          AND  63
  4436.          LD   (IX+23),A
  4437.          LD   (IX+26),"D"
  4438.          JP   RE1
  4439.  
  4440. ;Break
  4441. RBREAK   LD   A,(IX+23)
  4442.          CP   (IX+22)
  4443.          JPNZ RE2       Fel packetnr
  4444.          LD   (IX+24),0
  4445.          LD   (IX+25),"Y"
  4446.          CALL SPACK     Positivt svar
  4447.          JPC  TIMEOUT
  4448.          LD   (IX+26),"C"
  4449.          JP   RE1
  4450.  
  4451. RDATA    CALL GPACK     Ta emot packet
  4452.          JPC  RE2       Fel, f|rs|k igen
  4453.          LD   A,(IX+25)
  4454.          CP   "Z"
  4455.          JPZ  REOF      EOF
  4456.          CP   "E"
  4457.          JPZ  RERROR
  4458.          BIT  4,(IX+0)  S{ndaren klarar
  4459.          JPNZ REOF1     inte av CTRL-XZ
  4460.          CP   "D"
  4461.          JPZ  RDATA1    Data
  4462.          CP   "F"
  4463.          JPZ  RDATA3    Oms{ndning
  4464.          JP   FELPACK
  4465.  
  4466. ;Data i fil
  4467. RDATA1   LD   A,(IX+23)
  4468.          CP   (IX+22)
  4469.          JRNZ RDATA3    Fel packetnr
  4470.          CALL UNPACK    Packa upp data
  4471.          JPC  FELFIL    Fel vid skrivn
  4472.          LD   HL,(PACKNR)
  4473.          INC  HL
  4474.          LD   (PACKNR),HL
  4475.          CALL SKRIVFIL
  4476.          LD   (IX+24),0
  4477.          LD   (IX+25),"Y"
  4478.          LD   A,(IX+37)
  4479.          AND  A
  4480.          JRZ  RDATA2    Ej CTRL-XZ
  4481.          LD   (BUFF4),A S{nd tkn i ACK!
  4482.          INC  (IX+24)   L{ngd ett
  4483.          SET  4,(IX+0)  V{nta p} Z-pack
  4484.          RES  5,(IX+0)  F|rbjud CTRL-XZ
  4485. RDATA2   CALL SPACK     Positivt svar
  4486.          JPC  TIMEOUT
  4487.          LD   A,(IX+23)
  4488.          INC  A
  4489.          AND  63
  4490.          LD   (IX+23),A
  4491.          JP   RE1
  4492.  
  4493. ;Behandla oms{ndning filnamn el data
  4494. RDATA3   LD   A,(IX+23)
  4495.          DEC  A
  4496.          CP   (IX+22)
  4497.          JPNZ RE2       Ej oms{ndning
  4498.          LD   (IX+24),0
  4499.          LD   (IX+25),"Y"
  4500.          CALL SPACK     Positivt svar
  4501.          JPNC RE1
  4502.          JP   TIMEOUT
  4503.  
  4504. ;End Of File
  4505. REOF     LD   A,(IX+23)
  4506.          CP   (IX+22)
  4507.          JPNZ RE2       Fel packetnr
  4508.          RES  5,(IX+0)  F|rbjud CTRL-XZ
  4509.          BIT  4,(IX+0)
  4510.          JRZ  REOF2     Ej CTRL-XZ
  4511.          LD   A,(IX+24) L{ngd packet
  4512.          AND  A
  4513.          JRZ  REOF1     Tom
  4514.          DEC  A
  4515.          JRNZ REOF1     Mer {n ett tkn
  4516.          LD   A,(BUFF3) Data i packet
  4517.          CP   "D"
  4518.          JRNZ REOF1     Ej "avbryt"
  4519.          RES  4,(IX+0)  CTRL-XZ funkade
  4520. REOF1    PUSH IX
  4521.          LD   IX,FIL
  4522.          LD   DE,8:159
  4523.          CALL FILCONTR  Kill
  4524.          POP  IX
  4525.          JPC  FELFIL
  4526.          LD   A,32
  4527.          LD   (253:244),A
  4528.          LD   HL,KTXT7
  4529.          LD   BC,KTXT8-KTXT7
  4530.          CALL WRITE
  4531.          BIT  4,(IX+0)
  4532.          JRZ  REOF6     CTRL-XZ funkade
  4533.          LD   HL,REOF7
  4534.          LD   BC,REOF8-REOF7
  4535.          LD   DE,BUFF4
  4536.          LD   (IX+24),C
  4537.          LDIR
  4538.          LD   (IX+25),"E"
  4539.          CALL SPACK     Error!
  4540.          JP   AVBRYT
  4541.  
  4542. REOF2    LD   A,(IX+29) Typ av fil
  4543.          PUSH IX
  4544.          LD   IX,FIL
  4545.          CP   1
  4546.          JRZ  REOF3     Textfil
  4547.          BIT  7,(IX+14)
  4548.          JRZ  REOF4     Buffert tom
  4549.          CALL 8:156     Skriv buffert
  4550.          RES  7,(IX+14) Buffert tom
  4551. REOF3    LD   HL,(ANTBUF)
  4552.          INC  HL
  4553.          LD   (ANTBUF),HL
  4554. REOF4    LD   DE,8:127
  4555.          CALL FILCONTR  Close
  4556.          POP  IX
  4557.          JRNC REOF5
  4558.          CALL SKRIVERR
  4559.          JR   REOF6
  4560.  
  4561. REOF5    LD   A,32
  4562.          LD   (253:244),A
  4563.          LD   HL,KTXT5
  4564.          LD   BC,KTXT6-KTXT5
  4565. REOF6    CALL WRITE
  4566.          LD   (IX+24),0
  4567.          LD   (IX+25),"Y"
  4568.          CALL SPACK     Positivt svar
  4569.          JPC  TIMEOUT
  4570.          LD   A,(IX+23)
  4571.          INC  A
  4572.          AND  63
  4573.          LD   (IX+23),A
  4574.          LD   (IX+26),"F"
  4575.          JP   RE1
  4576.  
  4577. REOF7    DM "User interrupt"
  4578. REOF8
  4579.  
  4580. ;Skriv data p} fil
  4581. PUTFIL   LD   A,(IX+29) Typ av fil
  4582.          CP   1
  4583.          JRZ  PF2       Textfil
  4584.          CP   2
  4585.          JRZ  PF5       Bin{rfil
  4586.          LD   A,(FILE)
  4587.          AND  A
  4588.          JRZ  PF1       Textfil
  4589.          CP   1
  4590.          JRZ  PF4       Bin{rfil
  4591.          LD   A,(HL)    Annars unders|k
  4592.          AND  A         byte i filen!
  4593.          JRZ  PF4       ABS-fil
  4594.          CP   128
  4595.          JRNC PF4       Annan bin{rfil
  4596. PF1      LD   (IX+29),1 Typ textfil
  4597. PF2      PUSH IX
  4598.          LD   IX,FIL
  4599.          LD   E,(IX+13)
  4600.          PUSH DE
  4601.          LD   DE,8:150
  4602.          CALL FILCONTR  Skriv rad
  4603.          POP  DE
  4604.          POP  IX
  4605.          RETC
  4606.          LD   A,(FIL+13)
  4607.          CP   E
  4608.          CCF
  4609.          RETNC
  4610.          LD   HL,(ANTBUF)
  4611.          INC  HL
  4612.          LD   (ANTBUF),HL
  4613.          AND  A
  4614.          RET
  4615.  
  4616. PF4      LD   (IX+29),2 Typ bin{rfil
  4617.          PUSH IX
  4618.          LD   IX,FIL
  4619.          INC  (IX+13)
  4620.          LD   A,(IX+9)
  4621.          POP  IX
  4622.          AND  A
  4623.          LD   A,52      ERR 52
  4624.          SCF
  4625.          RETZ           Buffert saknas
  4626. PF5      PUSH IX
  4627.          LD   IX,FIL
  4628.          LD   E,(IX+10) Position i buff
  4629.          LD   D,(IX+11)
  4630. PF6      LD   A,B
  4631.          OR   C
  4632.          JRZ  PF7
  4633.          LDI            L{gg tkn i buff
  4634.          SET  7,(IX+14) Data i buffert
  4635.          DEC  (IX+13)   Kvar i buffert
  4636.          JRNZ PF6       Buffert ej full
  4637.          PUSH HL
  4638.          PUSH BC
  4639.          CALL 8:156     Skriv buffert
  4640.          LD   HL,(ANTBUF)
  4641.          INC  HL
  4642.          LD   (ANTBUF),HL
  4643.          POP  BC
  4644.          POP  HL
  4645.          RES  7,(IX+14) Buffert tom
  4646.          INC  (IX+13)
  4647.          JR   PF6
  4648.  
  4649. PF7      LD   (IX+10),E
  4650.          LD   (IX+11),D
  4651.          POP  IX
  4652.          RET
  4653.  
  4654. KTXT1    DB 13,10
  4655.          DM "Waiting for init packet",13
  4656. KTXT2    DM "Init packet received   ",13
  4657. KTXT3    DB 13,10
  4658.          DM "Sending init packet",13
  4659. KTXT4    DM "filename      bad "
  4660.          DM "pkt bytes blk status"
  4661. KTXT5    DM "OK    "
  4662. KTXT6    DM "."
  4663. KTXT7    DM "FLUSH "
  4664. KTXT8    DM "ERR "
  4665. KTXT9    DM "("
  4666. KTXT10   DM ")"
  4667.  
  4668.  
  4669. ;Visa text i errorpacket p} sk{rm
  4670. RERROR   LD   HL,RERR1
  4671.          LD   BC,RERR2-RERR1
  4672.          CALL WRITE
  4673.          LD   HL,BUFF3  Peka p} data
  4674.          LD   C,(IX+24) L{ngd data
  4675.          LD   B,0
  4676.          CALL WRITE     Skriv text
  4677.          JP   AVBRYT
  4678.  
  4679. RERR1    DM 13,10
  4680.          DM "Received message:"
  4681.          DM 13,10
  4682. RERR2    EQU  $
  4683.  
  4684. ;Fel vid filhantering, s{nd error
  4685. FELFIL   PUSH AF
  4686.          CALL SKRIVERR  Skriv p} sk{rm
  4687.          POP  AF
  4688.          LD   (IX+24),0
  4689.          OR   128
  4690.          LD   HL,FELF4
  4691.          LD   BC,FELF5-FELF4
  4692.          CPIR
  4693.          JRNZ FELF3
  4694.          DEC  HL        Peka p} kod
  4695. FELF1    INC  HL
  4696.          BIT  7,(HL)
  4697.          JRNZ FELF1     Skippa highbyte
  4698.          PUSH HL
  4699.          LD   BC,0
  4700. FELF2    INC  HL
  4701.          INC  BC
  4702.          BIT  7,(HL)
  4703.          JRZ  FELF2
  4704.          POP  HL
  4705.          LD   (IX+24),C
  4706.          LD   DE,BUFF4
  4707.          LDIR
  4708. FELF3    LD   (IX+25),"E"
  4709.          CALL SPACK     Error!
  4710.          JP   AVBRYT
  4711.  
  4712. FELF4    DM 128+21
  4713.          DM "Can't find file"
  4714.          DM 128+35
  4715.          DM 128+36
  4716.          DM 128+37
  4717.          DM 128+38
  4718.          DM 128+44
  4719.          DM 128+45
  4720.          DM 128+46
  4721.          DM 128+47
  4722.          DM 128+48
  4723.          DM 128+49
  4724.          DM "I/O-error"
  4725.          DM 128+39
  4726.          DM 128+43
  4727.          DM "Writeprotection"
  4728.          DM 128+41
  4729.          DM "Disk full"
  4730.          DM 128+42
  4731.          DM "Disk not ready"
  4732.          DM 255
  4733. FELF5    EQU  $
  4734.  
  4735. FELPACK  LD   HL,FPK1
  4736.          LD   BC,FPK3-FPK1
  4737.          CALL WRITE
  4738.          LD   HL,FPK2
  4739.          LD   BC,FPK3-FPK1
  4740.          LD   (IX+24),C
  4741.          LD   DE,BUFF4
  4742.          LDIR
  4743.          LD   (IX+25),"E"
  4744.          CALL SPACK     S{nd error
  4745.          JR   AVBRYT
  4746.  
  4747. FPK1     DM 10,13
  4748. FPK2     DM "Wrong packet received"
  4749. FPK3     EQU  $
  4750.  
  4751. TIMEOUT  INP  58
  4752.          AND  2
  4753.          LD   HL,TIM2
  4754.          LD   BC,TIM3-TIM2
  4755.          JRNZ TIM1      Ingen b{rv}g
  4756.          BIT  3,(IX+0)
  4757.          LD   HL,TIM3
  4758.          LD   BC,TIM4-TIM3
  4759.          JRNZ TIM1      ESCAPE nedtryckt
  4760.          LD   HL,TIM4
  4761.          LD   BC,TIM5-TIM4
  4762. TIM1     CALL 0:11
  4763. AVBRYT   PUSH IX
  4764.          LD   IX,FIL
  4765.          LD   DE,8:127
  4766.          CALL FILCONTR  Close
  4767.          POP  IX
  4768.          CALLC SKRIVERR
  4769.          LD   (IX+26),"A"
  4770.          SCF
  4771.          RET
  4772.  
  4773. TIM2     DM 13,10,7,"No connection"
  4774. TIM3     DM 13,10,7,"Abort"
  4775. TIM4     DM 13,10,7,"Timeout"
  4776. TIM5     EQU $
  4777. <<< kerm6.asm >>>
  4778. ; KERM6.ASM
  4779. ; Anders Franz`n <5258>
  4780. ; Stockholm 1987-09-13
  4781.  
  4782.  
  4783. ;S{nd en eller flera fil med Kermit
  4784. SEND     INP  58
  4785.          AND  2
  4786.          JPNZ TIMEOUT   B{rv}g saknas
  4787.          LD   HL,KTXT3
  4788.          LD   BC,KTXT4-KTXT3
  4789.          CALL WRITE
  4790.          LD   IX,KERMAREA
  4791.          LD   (IX+0),0
  4792.          LD   (IX+23),0 Packetr{knare
  4793.          LD   A,(LENGTH)
  4794.          LD   (IX+1),A
  4795.          LD   A,(TIME)
  4796.          LD   (IX+2),A
  4797.          LD   A,(NUMPAD)
  4798.          LD   (IX+3),A
  4799.          LD   A,(PADCHAR)
  4800.          LD   (IX+4),A
  4801.          LD   A,(EOL)
  4802.          LD   (IX+5),A
  4803.          LD   A,(QCTL)
  4804.          LD   (IX+6),A
  4805.          LD   (IX+7),"Y"
  4806.          LD   A,(PARITET)
  4807.          AND  A
  4808.          JRZ  SE1       Paritet NONE
  4809.          LD   A,(QBIN)
  4810.          LD   (IX+7),A  Vi beg{r QBIN
  4811. SE1      LD   A,(CHECK)
  4812.          LD   (IX+8),A
  4813.          LD   A,(REPT)
  4814.          LD   (IX+9),A
  4815.          CALL RDEFAULT
  4816.          CALL SPARM
  4817.          LD   C,(IX+8)
  4818.          PUSH BC
  4819.          LD   (IX+8),1  CH-typ 1
  4820.          LD   (IX+24),9
  4821.          LD   (IX+25),"S"
  4822.          CALL PPACK     S{nd parametrar
  4823.          POP  BC
  4824.          LD   (IX+8),C
  4825.          JPC  TIMEOUT   Time out
  4826.          CALL RPARM
  4827.          LD   A,(PARITET)
  4828.          AND  A
  4829.          JRZ  SE2       Paritet NONE
  4830.          LD   A,(IX+17)
  4831.          CP   (IX+7)
  4832.          JRZ  SE3       B}da vill QBIN
  4833.          CP   "Y"
  4834.          JRZ  SE3
  4835.          LD   (IX+7),0  Mottagaren
  4836.          JR   SE3       klarar ej QBIN
  4837.  
  4838. SE2      LD   (IX+7),0
  4839.          LD   A,(IX+17)
  4840.          AND  A         S{ndare klarar
  4841.          JRZ  SE3       ej QBIN
  4842.          CP   "Y"
  4843.          JRZ  SE3       Ingen vill QBIN
  4844.          LD   (IX+7),A  S{ndare vill
  4845. SE3      LD   A,(IX+8)
  4846.          CP   (IX+18)
  4847.          JRZ  SE4
  4848.          LD   (IX+8),1
  4849.          LD   (IX+18),1
  4850. SE4      LD   A,(IX+9)
  4851.          CP   (IX+19)
  4852.          JRZ  SE5
  4853.          LD   (IX+9),0
  4854.          LD   (IX+19),0
  4855. SE5      LD   HL,KTXT4
  4856.          LD   BC,KTXT5-KTXT4
  4857.          CALL WRITE     Skriv filrubrik
  4858. SE6      CALL CRLF      Ny rad
  4859.          LD   HL,0
  4860.          LD   (PACKNR),HL
  4861.          LD   (ANTBYTES),HL
  4862.          LD   (ANTBUF),HL
  4863.          LD   (NAKNR),HL
  4864.          LD   A,(WILDFLG)
  4865.          AND  A
  4866.          JRZ  SE9       Ej wildcard
  4867.          BIT  7,(IX+0)
  4868.          JRNZ SE8       Drive initierad
  4869.          SET  7,(IX+0)
  4870.          XOR  A
  4871.          LD   (255:212),A Filstorlek
  4872. SE7      LD   BC,(WILDANT)
  4873.          DEC  B
  4874.          JPM  SE20      Slut p} drivear
  4875.          LD   A,C       Drivenummer
  4876.          INC  C
  4877.          LD   (WILDANT),BC
  4878.          CALL LIBINIT
  4879.          JRC  SE7
  4880.          CALL FIRSTFIL
  4881.          JRC  SE7
  4882.          JRZ  SE7       Drive tom
  4883.          JR   SE9
  4884.  
  4885. SE8      CALL NEXTFIL
  4886.          JRC  SE7
  4887.          JRZ  SE7       N{sta drive
  4888. SE9      LD   HL,255:132 Fil utan enhet
  4889.          LD   DE,BUFF4
  4890.          LD   (IX+24),-1 L{ngd data
  4891.          LD   BC,(FILPEK)
  4892.          LD   A,(BC)
  4893.          CP   13
  4894.          JRZ  SE10      Samma fil remote
  4895.          LD   L,C
  4896.          LD   H,B
  4897. SE10     RST  32
  4898.          INC  HL
  4899.          LD   (DE),A    Kopiera filnamn
  4900.          INC  DE
  4901.          INC  (IX+24)   R{kna antal tkn
  4902.          CP   13
  4903.          JRNZ SE10
  4904.          LD   HL,255:132 Fil utan enhet
  4905.          LD   BC,12     L{ngd filnamn
  4906.          CALL WRITE     Skriv filnamn
  4907.          CALL SKRIVFIL
  4908.          LD   A,(WILDFLG)
  4909.          AND  A
  4910.          JRZ  SE11      Ej wildcard
  4911.          LD   A,32+1
  4912.          LD   (253:244),A
  4913.          LD   HL,KTXT9
  4914.          LD   BC,1
  4915.          CALL WRITE     "("
  4916.          LD   A,(DEBUG)
  4917.          DEC  A
  4918.          LD   HL,(255:146)
  4919.          CALLNZ SKRIVTAL Filstorlek
  4920.          LD   HL,KTXT10
  4921.          LD   BC,1
  4922.          CALL WRITE     ")"
  4923. SE11     LD   HL,255:128 Filnamn
  4924.          RST  32
  4925.          PUSH IX
  4926.          CALL OPEN
  4927.          POP  IX
  4928.          JRNC SE12      Det gick bra
  4929.          CALL SKRIVERR
  4930.          LD   A,(WILDFLG)
  4931.          AND  A         Wildcard?
  4932.          JPNZ SE6       Ja, n{sta fil
  4933.          JP   SE20      S{nd BREAK
  4934.  
  4935. SE12     LD   (IX+37),0 Ej CTRL-XZ {nnu
  4936.          SET  5,(IX+0)  Till}t CTRL-XZ
  4937.          LD   (IX+27),0 Inget data l{st
  4938.          LD   (IX+29),0 Ok{nd filtyp
  4939.          LD   (IX+25),"F"
  4940.          CALL PPACK     S{nd filhuvud
  4941.          JPC  TIMEOUT   Time out
  4942.          LD   HL,1
  4943.          LD   (ANTBUF),HL
  4944.          CALL SKRIVFIL
  4945. SE13     LD   A,(IX+37)
  4946.          AND  A
  4947.          JPNZ SE18      Hoppa om CTRL-XZ
  4948.          CALL PACK      Packa data
  4949.          JRC  SE15      EOF eller ERROR
  4950.          LD   (IX+25),"D"
  4951.          CALL PPACK     S{nd data
  4952.          JPC  TIMEOUT   Time out
  4953.          CALL SKRIVFIL
  4954.          LD   A,(IX+24)
  4955.          AND  A
  4956.          JRZ  SE13      Inget data i ACK
  4957.          DEC  A
  4958.          JRNZ SE13      Mer {n ett tkn
  4959.          LD   A,(BUFF3)
  4960.          CP   "X"
  4961.          JRZ  SE14      X i ACK
  4962.          CP   "Z"
  4963.          JRNZ SE13      Ej Z i ACK
  4964. SE14     RES  5,(IX+0)  F|rbjud CTRL-XZ
  4965.          LD   (IX+37),A
  4966.          JP   SE18
  4967.  
  4968. SE15     AND  A
  4969.          JRZ  SE16      EOF
  4970.          CALL SKRIVERR  Annat fel
  4971.          JR   SE18
  4972.  
  4973. SE16     LD   A,(IX+24)
  4974.          AND  A
  4975.          JRZ  SE17      Inget mer data
  4976.          LD   (IX+25),"D"
  4977.          CALL PPACK     S{nd sista data
  4978.          JPC  TIMEOUT   Time out
  4979.          CALL SKRIVFIL
  4980. SE17     LD   A,32
  4981.          LD   (253:244),A
  4982.          LD   HL,KTXT5
  4983.          LD   BC,KTXT6-KTXT5
  4984.          CALL WRITE     Skriv sluttext
  4985. SE18     PUSH IX
  4986.          LD   IX,FIL
  4987.          LD   DE,8:127
  4988.          CALL FILCONTR  Close
  4989.          POP  IX
  4990.          CALLC SKRIVERR
  4991.          RES  5,(IX+0)  F|rbjud CTRL-XZ
  4992.          LD   (IX+24),0
  4993.          LD   (IX+25),"Z"
  4994.          LD   A,(IX+37)
  4995.          AND  A
  4996.          JRZ  SE19      Ej CTRL-XZ
  4997.          LD   A,32
  4998.          LD   (253:244),A
  4999.          LD   HL,KTXT7
  5000.          LD   BC,KTXT8-KTXT7
  5001.          CALL WRITE     Skriv avbryttext
  5002.          LD   A,"D"
  5003.          LD   (BUFF4),A
  5004.          INC  (IX+24)
  5005. SE19     CALL PPACK     S{nd EOF
  5006.          JPC  TIMEOUT
  5007.          LD   A,(IX+37)
  5008.          CP   "Z"
  5009.          JRZ  SE20      Skippa batch
  5010.          LD   A,(WILDFLG)
  5011.          AND  A         Wildcard?
  5012.          JPNZ SE6       Ja, n{sta fil
  5013. SE20     LD   (IX+24),0
  5014.          LD   (IX+25),"B"
  5015.          CALL PPACK     S{nd BRAKE
  5016.          JPC  TIMEOUT
  5017.          RET            Klart!
  5018.  
  5019. ;H{mta ett tecken fr}n fil
  5020. ;Carry s{tts om EOF eller ERROR
  5021. GETFIL   LD   A,(IX+27)
  5022.          AND  A
  5023.          JPNZ GF9       Data i buffert
  5024.          LD   A,(IX+29) Typ av fil
  5025.          CP   1
  5026.          JRZ  GF1       Textfil
  5027.          CP   2
  5028.          JPZ  GF7       Bin{rfil
  5029.          LD   A,(FILE)
  5030.          AND  A
  5031.          JRZ  GF1       Textfil
  5032.          CP   1
  5033.          JRZ  GF7       Bin{rfil
  5034.          PUSH IX        Annars unders|k
  5035.          LD   IX,FIL    filen...
  5036.          LD   L,(IX+10)
  5037.          PUSH HL
  5038.          LD   HL,BUFF7
  5039.          LD   BC,255
  5040.          LD   DE,8:147
  5041.          CALL FILCONTR  L{s rad
  5042.          POP  HL
  5043.          JRC  GF5       Kanske bin{rfil
  5044.          JR   GF2       Annars textfil!
  5045.  
  5046. GF1      PUSH IX
  5047.          LD   IX,FIL
  5048.          LD   L,(IX+10)
  5049.          PUSH HL
  5050.          LD   HL,BUFF7
  5051.          LD   BC,255
  5052.          LD   DE,8:147
  5053.          CALL FILCONTR  L{s rad
  5054.          POP  HL
  5055.          JRC  GF6       End of file
  5056. GF2      LD   A,L
  5057.          CP   (IX+10)
  5058.          JRC  GF3
  5059.          LD   HL,(ANTBUF)
  5060.          INC  HL
  5061.          LD   (ANTBUF),HL
  5062. GF3      POP  IX
  5063.          EX   DE,HL
  5064.          LD   A,(IX+20)
  5065.          AND  A
  5066.          JRZ  GF4       Hoppa om DUMP
  5067.          LD   (HL),10   Avsluta med LF
  5068.          INC  HL        om Kermit
  5069. GF4      LD   DE,BUFF7
  5070.          SBC  HL,DE
  5071.          EX   DE,HL
  5072.          LD   (IX+27),E L{ngd p} rad
  5073.          LD   (IX+29),1 Textfil
  5074.          LD   (IX+32),L
  5075.          LD   (IX+33),H
  5076.          JR   GF9
  5077.  
  5078. GF5      CP   186
  5079.          JRZ  GF8       Ogiltigt tecken
  5080.          AND  A
  5081.          JRZ  GF8       EOF dvs ABS-fil
  5082. GF6      POP  IX
  5083.          SCF
  5084.          RET            EOF eller ERROR
  5085.  
  5086. GF7      PUSH IX
  5087.          LD   IX,FIL
  5088.          LD   DE,8:153
  5089.          CALL FILCONTR  L{s buffert
  5090.          LD   HL,(ANTBUF)
  5091.          INC  HL
  5092.          LD   (ANTBUF),HL
  5093.          JRNC GF8       Inget fel
  5094.          POP  IX
  5095.          CP   38
  5096.          SCF
  5097.          RETNZ
  5098.          LD   A,0
  5099.          RET            Slut p} fil
  5100.  
  5101. GF8      LD   L,(IX+8)  Adress till
  5102.          LD   H,(IX+9)  buffert
  5103.          POP  IX
  5104.          LD   (IX+27),253 L{ngd p} rad
  5105.          LD   (IX+29),2 Bin{rfil
  5106.          LD   (IX+32),L
  5107.          LD   (IX+33),H
  5108. GF9      LD   L,(IX+32)
  5109.          LD   H,(IX+33)
  5110.          LD   A,(HL)
  5111.          INC  HL
  5112.          LD   (IX+32),L
  5113.          LD   (IX+33),H
  5114.          DEC  (IX+27)
  5115.          LD   HL,(ANTBYTES)
  5116.          INC  HL
  5117.          LD   (ANTBYTES),HL
  5118.          AND  A
  5119.          RET
  5120.  
  5121. ;S{nd packet, om negativt svar sker
  5122. ;oms{ndning. Om f|r m}nga f|rs|k eller
  5123. ;timeout sker retur med carry.
  5124. PPACK    LD   A,(INBUFF)
  5125.          LD   (INPOS),A T|m inputbuffer
  5126.          LD   A,(RETRY)
  5127.          INC  A
  5128.          LD   (IX+20),A Max ant f|rs|k
  5129.          LD   A,(IX+24)
  5130.          LD   (IX+30),A L{ngd data
  5131.          LD   A,(IX+25)
  5132.          LD   (IX+31),A Typ att s{nda
  5133. PPK1     BIT  3,(IX+0)
  5134.          RETNZ          ESCAPE
  5135.          DEC  (IX+20)
  5136.          SCF
  5137.          RETZ           F|r m}nga f|rs|k
  5138.          LD   A,(IX+12)
  5139.          LD   (IX+21),A S{tt tid kvar
  5140.          LD   A,(IX+23)
  5141.          LD   (IX+22),A Packetnr
  5142.          LD   A,(IX+30)
  5143.          LD   (IX+24),A L{ngd data
  5144.          LD   A,(IX+31)
  5145.          LD   (IX+25),A Typ att s{nda
  5146.          CALL SPACK     S{nd packet
  5147.          JRC  PPK1      Fel, f|rs|k igen
  5148.          CALL RPACK     Ta emot svar
  5149.          JRC  PPK5      Fel, r{kna fel
  5150.          LD   A,(IX+25)
  5151.          CP   "Y"
  5152.          JRZ  PPK2
  5153.          CP   "N"
  5154.          JRZ  PPK4
  5155.          CP   "E"
  5156.          JPZ  RERROR
  5157.          JP   FELPACK
  5158.  
  5159. PPK2     LD   A,(IX+22)
  5160.          CP   (IX+23)
  5161.          JRNZ PPK5      Fel packetnr
  5162. PPK3     LD   A,(IX+23)
  5163.          INC  A
  5164.          AND  63        Clear carry!
  5165.          LD   (IX+23),A
  5166.          LD   HL,(PACKNR)
  5167.          INC  HL
  5168.          LD   (PACKNR),HL
  5169.          RET
  5170.  
  5171. PPK4     LD   A,(IX+22)
  5172.          DEC  A         NAK n+1 tolkas
  5173.          CP   (IX+23)   som ACK n!
  5174.          JRZ  PPK3
  5175.          INC  A
  5176.          CP   (IX+23)
  5177.          JPNZ FELPACK   Fel packetnr
  5178. PPK5     LD   A,(IX+31) Typ att s{nda
  5179.          CP   "F"
  5180.          JRZ  PPK6
  5181.          CP   "D"
  5182.          JRZ  PPK6
  5183.          CP   "Z"
  5184.          JPNZ PPK1
  5185. PPK6     LD   HL,(NAKNR)
  5186.          INC  HL
  5187.          LD   (NAKNR),HL
  5188.          CALL SKRIVFIL
  5189.          JP   PPK1      Oms{ndning
  5190.  
  5191. SKRIVFIL LD   A,(DEBUG)
  5192.          DEC  A
  5193.          RETZ
  5194.          LD   A,13
  5195.          LD   (253:244),A
  5196.          LD   HL,(NAKNR)
  5197.          LD   A,4
  5198.          LD   DE,SPACE
  5199.          CALL SKRTAL
  5200.          LD   HL,(PACKNR)
  5201.          LD   A,4
  5202.          LD   DE,SPACE
  5203.          CALL SKRTAL
  5204.          LD   HL,(ANTBYTES)
  5205.          LD   A,6
  5206.          LD   DE,SPACE
  5207.          CALL SKRTAL
  5208.          LD   HL,(ANTBUF)
  5209.          LD   A,4
  5210.          LD   DE,SPACE
  5211.          CALL SKRTAL
  5212.          RET
  5213.  
  5214. SKRIVERR AND  127
  5215.          LD   L,A
  5216.          LD   H,0
  5217.          LD   A,(DEBUG)
  5218.          DEC  A
  5219.          RETZ
  5220.          PUSH HL
  5221.          CALL SKRIVFIL
  5222.          LD   A,32
  5223.          LD   (253:244),A
  5224.          LD   HL,KTXT8
  5225.          LD   BC,KTXT9-KTXT8
  5226.          CALL 0:11      Skriv ERR
  5227.          POP  HL
  5228.          CALL SKRIVTAL  Skriv felkod
  5229.          RET
  5230.  
  5231. WRITE    LD   A,(DEBUG)
  5232.          DEC  A
  5233.          CALLNZ 0:11
  5234.          RET
  5235.  
  5236. CRLF     LD   A,(DEBUG)
  5237.          DEC  A
  5238.          CALLNZ 7:66
  5239.          RET
  5240.  
  5241. ;filename      bad pkt bytes blk status
  5242. ;L]NGRAD .BAC    0  12  1234  12 (15)
  5243. ;L]NGRAD .BAC    0  13  1235  12 ERR 48
  5244. ;L]NGRAD .TXT    0   5   234   4 OK
  5245. <<< kerm7.asm >>>
  5246. ; KERM7.ASM
  5247. ; Anders Franz`n <5258>
  5248. ; Stockholm 1987-09-24
  5249. ; Uppdaterad 1990-01-07 J. Westman <5074>
  5250. ; Skicka SP i respons paketet om ingen REPT
  5251. ; Uppdaterad 1990-01-08 J. Westman <5074>
  5252. ; Ingen REPT om ej valt, i s{ndning
  5253.  
  5254. ;Spara mottagna parametrar
  5255. RPARM    CALL RDEFAULT
  5256.          LD   A,(IX+24) L{ngd packet
  5257.          AND  A
  5258.          RETZ           L{ngd = 0
  5259.          LD   HL,BUFF3  Mottaget data
  5260.          LD   A,(HL)
  5261.          INC  HL
  5262.          CP   33
  5263.          JRC  RPM1
  5264.          SUB  32
  5265.          LD   (IX+11),A MAXL
  5266. RPM1     LD   A,(IX+24)
  5267.          CP   2
  5268.          RETC           L{ngd < 2
  5269.          LD   A,(HL)
  5270.          INC  HL
  5271.          CP   33
  5272.          JRC  RPM2
  5273.          SUB  32
  5274.          LD   (IX+12),A TIME
  5275. RPM2     LD   A,(IX+24)
  5276.          CP   3
  5277.          RETC           L{ngd < 3
  5278.          LD   A,(HL)
  5279.          INC  HL
  5280.          CP   33
  5281.          JRC  RPM3
  5282.          SUB  32
  5283.          LD   (IX+13),A NPAD
  5284. RPM3     LD   A,(IX+24)
  5285.          CP   4
  5286.          RETC           L{ngd < 4
  5287.          LD   A,(HL)
  5288.          INC  HL
  5289.          CP   33
  5290.          JRC  RPM4
  5291.          XOR  64
  5292.          LD   (IX+14),A PADC
  5293. RPM4     LD   A,(IX+24)
  5294.          CP   5
  5295.          RETC           L{ngd < 5
  5296.          LD   A,(HL)
  5297.          INC  HL
  5298.          CP   33
  5299.          JRC  RPM5
  5300.          SUB  32
  5301.          LD   (IX+15),A EOL
  5302. RPM5     LD   A,(IX+24)
  5303.          CP   6
  5304.          RETC           L{ngd < 6
  5305.          LD   A,(HL)
  5306.          INC  HL
  5307.          CP   33
  5308.          JRC  RPM6
  5309.          LD   (IX+16),A QCTL
  5310. RPM6     LD   A,(IX+24)
  5311.          CP   7
  5312.          RETC           L{ngd < 7
  5313.          LD   A,(HL)
  5314.          INC  HL
  5315.          CP   33
  5316.          JRC  RPM8
  5317.          CP   "Y"
  5318.          JRZ  RPM7
  5319.          CP   127
  5320.          JRNC RPM8
  5321.          CP   96
  5322.          JRNC RPM7
  5323.          CP   63
  5324.          JRNC RPM8
  5325. RPM7     LD   (IX+17),A QBIN
  5326. RPM8     LD   A,(IX+24)
  5327.          CP   8
  5328.          RETC           L{ngd < 8
  5329.          LD   A,(HL)
  5330.          INC  HL
  5331.          SUB  48
  5332.          CP   1
  5333.          JRC  RPM9
  5334.          CP   3
  5335.          JRNC RPM9
  5336.          LD   (IX+18),A CHKT
  5337. RPM9     LD   A,(IX+24)
  5338.          CP   9
  5339.          RETC           L{ngd < 9
  5340.          LD   A,(HL)
  5341.          CP   33
  5342.          RETC
  5343.          CP   127
  5344.          RETNC
  5345.          CP   96
  5346.          JRNC RPM10
  5347.          CP   63
  5348.          RETNC
  5349. RPM10    LD   (IX+19),A REPT
  5350.          RET
  5351.  
  5352. ;Defaultparametrar "andra sidan"
  5353. RDEFAULT LD   (IX+11),80 Default MAXL
  5354.          LD   (IX+12),5          TIME
  5355.          LD   (IX+13),0          NPAD
  5356.          LD   (IX+14),0          PADC
  5357.          LD   (IX+15),13         EOL
  5358.          LD   (IX+16),"#"        QCTL
  5359.          LD   (IX+17),0          QBIN
  5360.          LD   (IX+18),1          CHKT
  5361.          LD   (IX+19),0          REPT
  5362.          RET
  5363.  
  5364. ;S{tt egna parametrar
  5365. SPARM    LD   HL,BUFF4
  5366.          LD   A,(IX+1)  Maxl{ngd packet
  5367.          ADD  32
  5368.          LD   (HL),A
  5369.          INC  HL
  5370.          LD   A,(IX+2)  Timeout
  5371.          ADD  32
  5372.          LD   (HL),A
  5373.          INC  HL
  5374.          LD   A,(IX+3)  Antal PAD-tkn
  5375.          ADD  32
  5376.          LD   (HL),A
  5377.          INC  HL
  5378.          LD   A,(IX+4)  PAD-tkn
  5379.          XOR  64
  5380.          LD   (HL),A
  5381.          INC  HL
  5382.          LD   A,(IX+5)  EOL-tkn
  5383.          ADD  32
  5384.          LD   (HL),A
  5385.          INC  HL
  5386.          LD   A,(IX+6)  QCTL-tkn
  5387.          LD   (HL),A
  5388.          INC  HL
  5389.          LD   A,(IX+7)  QBIN-tkn
  5390.          LD   (HL),A
  5391.          INC  HL
  5392.          LD   A,(IX+8)  Checksummetyp
  5393.          ADD  48
  5394.          LD   (HL),A
  5395.          INC  HL
  5396.          LD   A,(IX+9)  REPEAT-tkn
  5397.          OR   A
  5398.          JR   NZ,SPA1
  5399.          LD   A,32
  5400. SPA1     LD   (HL),A
  5401.          RET
  5402.  
  5403. ;Ta emot en packet. Om checksumman {r
  5404. ;fel s{nds negativt svar. Carry vid
  5405. ;retur betyder att nytt f|rs|k ska
  5406. ;g|ras.
  5407. GPACK    CALL RPACK     Ta emot packet
  5408.          RETNC          Inget fel
  5409.          BIT  3,(IX+0)
  5410.          RETNZ          ESCAPE
  5411.          LD   A,(IX+20)
  5412.          DEC  A
  5413.          SCF
  5414.          RETZ           Sista f|rs|ket
  5415.          LD   A,(IX+23)
  5416.          LD   (IX+22),A Packetnr
  5417.          LD   (IX+24),0 L{ngd data
  5418.          LD   (IX+25),"N"
  5419.          CALL SPACK     Negativt svar
  5420.          SCF
  5421.          RET
  5422.  
  5423. ;Ta emot en packet
  5424. RPACK    CALL RCHAR
  5425.          RETC           Time out!
  5426.          LD   BC,(MARKER)
  5427.          CP   C
  5428.          JRNZ RPACK     V{nta p} SOH...
  5429.          LD   HL,0      Checksumma
  5430.          CALL RCHAR
  5431.          RETC           Time out!
  5432.          SUB  34
  5433.          SUB  (IX+8)
  5434.          LD   (IX+24),A L{ngd p} data
  5435.          CALL RCHAR
  5436.          RETC           Time out!
  5437.          SUB  32
  5438.          LD   (IX+22),A Packetnr
  5439.          CALL RCHAR
  5440.          RETC           Time out
  5441.          LD   (IX+25),A Typ av packet
  5442.          CP   "S"
  5443.          JRNZ RPK1
  5444.          LD   A,(IX+8)
  5445.          CP   1
  5446.          JRZ  RPK1
  5447.          INC  (IX+24)
  5448. RPK1     LD   A,(DEBUG)
  5449.          DEC  A
  5450.          LD   A,"R"
  5451.          CALLZ DEBRUB
  5452.          LD   A,(IX+24) L{ngd data
  5453.          AND  A
  5454.          JRZ  RPK3      Inget data
  5455.          LD   B,A
  5456.          LD   DE,BUFF3
  5457. RPK2     PUSH DE
  5458.          PUSH BC
  5459.          CALL RCHARD    H{mta datatkn
  5460.          POP  BC
  5461.          POP  DE
  5462.          RETC           Time out!
  5463.          LD   (DE),A    Spara tecken
  5464.          INC  DE
  5465.          DJNZ RPK2
  5466. RPK3     PUSH HL
  5467.          CALL RCHAR     H{mta checksumma
  5468.          POP  HL
  5469.          RETC           Time out!
  5470.          LD   E,A
  5471.          LD   A,(IX+25)
  5472.          CP   "S"
  5473.          JRZ  RPK4      Packettyp S
  5474.          LD   A,(IX+8)
  5475.          CP   1
  5476.          JRZ  RPK4      CH-typ 1
  5477.          PUSH HL        Annars CH-typ 2
  5478.          PUSH DE
  5479.          CALL RCHAR
  5480.          POP  DE
  5481.          POP  HL
  5482.          RETC           Time out!
  5483.          LD   D,A
  5484.          LD   A,L
  5485.          AND  63
  5486.          ADD  32
  5487.          CP   D
  5488.          SCF
  5489.          RETNZ          Fel checksumma
  5490.          LD   A,H
  5491.          RLC  L
  5492.          RLA
  5493.          RLC  L
  5494.          RLA            A = HL/64
  5495.          AND  63
  5496.          ADD  32
  5497.          CP   E
  5498.          JRZ  RPK5
  5499.          SCF
  5500.          RET            Fel checksumma
  5501.  
  5502. RPK4     LD   A,L
  5503.          AND  192
  5504.          RLCA
  5505.          RLCA           A = A/64
  5506.          AND  3         A = A/64
  5507.          ADD  L
  5508.          AND  63
  5509.          ADD  32
  5510.          CP   E
  5511.          SCF
  5512.          RETNZ          Fel checksumma
  5513. RPK5     CALL RCHAR     EOL
  5514.          RET
  5515.  
  5516. RCHARD   CALL RCHAR
  5517.          RETC
  5518.          LD   A,(DEBUG)
  5519.          DEC  A
  5520.          LD   A,E
  5521.          RETNZ
  5522.          LD   (SLASK),A
  5523.          CALL DEBCHAR
  5524.          LD   A,(SLASK)
  5525.          AND  A
  5526.          RET
  5527.  
  5528. ;V{nta p} tecken fr}n V24
  5529. RCHAR    LD   B,50
  5530.          LD   A,(253:240)
  5531.          LD   C,A
  5532. RCH1     LD   A,(253:240)
  5533.          CP   C
  5534.          JRZ  RCH2      Klocka ej r|rd
  5535.          LD   C,A
  5536.          DJNZ RCH2      Klocka p} 50Hz
  5537.          LD   B,50
  5538.          XOR  A
  5539.          DEC  (IX+21)   Minska tid kvar
  5540.          SCF
  5541.          RETZ           Maxtid
  5542. RCH2     INP  58
  5543.          AND  2
  5544.          SCF
  5545.          RETNZ          B{rv}g saknas!
  5546.          CALL EVBRYT    Kolla CTRL-X/Z
  5547.          BIT  3,(IX+0)
  5548.          SCF
  5549.          RETNZ          ESCAPE nedtryckt
  5550.          PUSH HL
  5551.          CALL MOTTAG    Mottaget tkn?
  5552.          POP  HL
  5553.          JRNC RCH1      Nej, v{nta...
  5554.          LD   E,A
  5555.          LD   D,0
  5556.          LD   A,(PARITET)
  5557.          AND  A
  5558.          JRZ  RCH3      Paritet NONE
  5559.          RES  7,E       Sl{ck paritet
  5560. RCH3     ADD  HL,DE     \ka checksumma
  5561.          LD   A,(DEBUG)
  5562.          CP   2
  5563.          LD   A,E
  5564.          CALLZ DITTO
  5565.          AND  A         Clear carry
  5566.          RET
  5567.  
  5568. ;S{nd iv{g en packet
  5569. SPACK    LD   A,(PAUSE)
  5570.          AND  A
  5571.          JRZ  SPK4      Ingen paus
  5572.          LD   HL,253:240
  5573.          LD   C,A       Antal tiondelar
  5574. SPK1     LD   B,5
  5575. SPK2     LD   A,(HL)
  5576. SPK3     CP   (HL)
  5577.          JRZ  SPK3    V{nta 1/50 sek
  5578.          DJNZ SPK2    V{nta 1/10 sek
  5579.          DEC  C
  5580.          JRNZ SPK1    Fler tiondelar
  5581. SPK4     LD   A,(DEBUG)
  5582.          DEC  A
  5583.          LD   A,"S"
  5584.          CALLZ DEBRUB
  5585.          LD   A,(IX+13) Antal PAD-tkn
  5586.          AND  A
  5587.          JRZ  SPK6      Inga PAD-tkn
  5588.          LD   B,A
  5589. SPK5     LD   A,(IX+14) PAD-tkn
  5590.          CALL SCHAR
  5591.          RETC           B{rv}g saknas
  5592.          DJNZ SPK5
  5593. SPK6     LD   A,(MARKER)
  5594.          CALL SCHAR     SOH
  5595.          RETC
  5596.          LD   A,(IX+24)
  5597.          ADD  (IX+8)
  5598.          ADD  34
  5599.          LD   L,A
  5600.          LD   H,0
  5601.          CALL SCHAR     L{ngd data
  5602.          RETC
  5603.          LD   A,(IX+22) Nummer p} packet
  5604.          ADD  32
  5605.          LD   E,A
  5606.          LD   D,0
  5607.          ADD  HL,DE
  5608.          CALL SCHAR
  5609.          RETC
  5610.          LD   A,(IX+25) Typ av packet
  5611.          LD   E,A
  5612.          LD   D,0
  5613.          ADD  HL,DE
  5614.          CALL SCHAR
  5615.          RETC
  5616.          LD   A,(IX+24) L{ngd data
  5617.          AND  A
  5618.          JRZ  SPK8      Inget data
  5619.          LD   B,A
  5620.          LD   DE,BUFF4  Pekar p} data
  5621. SPK7     LD   A,(DE)
  5622.          INC  DE
  5623.          PUSH DE
  5624.          LD   E,A
  5625.          LD   D,0
  5626.          ADD  HL,DE     R{kna checksumma
  5627.          POP  DE
  5628.          CALL SCHARD    S{nd datatkn
  5629.          RETC
  5630.          DJNZ SPK7
  5631. SPK8     LD   A,(IX+25)
  5632.          CP   "S"
  5633.          JRZ  SPK9      Packettyp S
  5634.          LD   A,(IX+8)
  5635.          CP   1
  5636.          JRZ  SPK9      CH-typ 1
  5637.          LD   A,H
  5638.          LD   H,L
  5639.          RLC  L
  5640.          RLA
  5641.          RLC  L
  5642.          RLA            A = HL/64
  5643.          AND  63
  5644.          ADD  32
  5645.          CALL SCHAR
  5646.          RETC
  5647.          LD   A,H
  5648.          AND  63
  5649.          ADD  32
  5650.          CALL SCHAR
  5651.          JRNC SPK10
  5652.          RET
  5653.  
  5654. SPK9     LD   A,L
  5655.          AND  192
  5656.          RLCA
  5657.          RLCA
  5658.          AND  3         A = A/64
  5659.          ADD  L
  5660.          AND  63
  5661.          ADD  32
  5662.          CALL SCHAR
  5663.          RETC
  5664. SPK10    LD   A,(IX+15) EOL-tkn
  5665.          CALL SCHAR
  5666.          RET
  5667.  
  5668. DEBRUB   LD   (DEB2),A
  5669.          PUSH HL
  5670.          LD   HL,DEB1
  5671.          LD   BC,DEB3-DEB1
  5672.          CALL 0:11      Debug-rubrik
  5673.          LD   A,12
  5674.          LD   (253:244),A
  5675.          LD   A,(IX+25) Typ av packet
  5676.          LD   (SLASK),A
  5677.          LD   HL,SLASK
  5678.          LD   BC,1
  5679.          CALL 0:11
  5680.          LD   A,19
  5681.          LD   (253:244),A
  5682.          LD   L,(IX+22) Nummer p} packet
  5683.          LD   H,0
  5684.          CALL SKRIVTAL
  5685.          LD   A,30
  5686.          LD   (253:244),A
  5687.          LD   L,(IX+24) L{ngd data
  5688.          LD   H,0
  5689.          CALL SKRIVTAL
  5690.          CALL 7:66
  5691.          POP  HL
  5692.          RET
  5693.  
  5694. DEB1     DB 13,10
  5695. DEB2     DM "Spack  type=   "
  5696.          DM "seq=    length="
  5697. DEB3
  5698.  
  5699. DEBCHAR  PUSH HL
  5700.          PUSH DE
  5701.          PUSH BC
  5702.          LD   HL,SLASK
  5703.          LD   BC,1
  5704.          CALL 0:11
  5705.          POP  BC
  5706.          POP  DE
  5707.          POP  HL
  5708.          RET
  5709.  
  5710. SCHARD   LD   (SLASK),A
  5711.          LD   A,(DEBUG)
  5712.          DEC  A
  5713.          CALLZ DEBCHAR
  5714.          LD   A,(SLASK)
  5715.          CALL SCHAR
  5716.          RET
  5717.  
  5718. SCHAR    LD   C,A
  5719.          LD   A,(DEBUG)
  5720.          CP   2
  5721.          LD   A,C
  5722.          CALLZ DITTO
  5723.          CALL S[ND
  5724.          RETC
  5725.          CALL EVBRYT
  5726.          AND  A
  5727.          RET
  5728.  
  5729. DITTO    PUSH HL
  5730.          LD   HL,(DITTO1)
  5731.          LD   (HL),A
  5732.          INC  HL
  5733.          LD   (DITTO1),HL
  5734.          POP  HL
  5735.          RET
  5736.  
  5737. DITTO1   DW 135:0
  5738.  
  5739. EVBRYT   PUSH HL
  5740.          PUSH BC
  5741.          CALL TAN       Polla tangenter
  5742.          CALL CHECKTAN  H{mta ev tangent
  5743.          POP  BC
  5744.          POP  HL
  5745.          RETNC          Ingen tangent
  5746.          BIT  5,(IX+0)
  5747.          RETZ           Ignorera!
  5748.          CP   24
  5749.          JRZ  EVB1      CTRL-X
  5750.          CP   26
  5751.          RETNZ          Ej CTRL-Z
  5752. EVB1     ADD  64
  5753.          LD   (IX+37),A
  5754.          LD   (EVB3),A
  5755.          LD   A,32
  5756.          LD   (253:244),A
  5757.          PUSH HL
  5758.          PUSH DE
  5759.          PUSH BC
  5760.          LD   HL,EVB2
  5761.          LD   BC,EVB4-EVB2
  5762.          CALL WRITE
  5763.          POP  BC
  5764.          POP  DE
  5765.          POP  HL
  5766.          RET
  5767.  
  5768. EVB2     DM "CTRL-"
  5769. EVB3     DM "x"
  5770. EVB4
  5771.  
  5772. ;Packa upp data
  5773. UNPACK   LD   HL,BUFF3  Pekar p} data
  5774.          LD   A,(IX+24)
  5775.          INC  A
  5776.          LD   (IX+28),A
  5777.          CALL UPK1
  5778.          RETC
  5779.          CALL TOFIL
  5780.          RET
  5781.  
  5782. UPK1     LD   DE,BUFF5
  5783.          LD   (IX+27),0
  5784. UPK2     AND  A         Clear carry
  5785.          DEC  (IX+28)
  5786.          RETZ           Inget mer data
  5787.          LD   A,(HL)
  5788.          INC  HL
  5789.          LD   BC,1:0
  5790.          CP   (IX+19)
  5791.          JRNZ UPK3      Ej REPT
  5792.          AND  A
  5793.          JRZ  UPK3
  5794.          DEC  (IX+28)
  5795.          RETZ
  5796.          DEC  (IX+28)
  5797.          RETZ
  5798.          LD   A,(HL)
  5799.          SUB  32
  5800.          LD   B,A
  5801.          INC  HL
  5802.          LD   A,(HL)
  5803.          INC  HL
  5804. UPK3     CP   (IX+17)
  5805.          JRNZ UPK4      Ej QBIN
  5806.          AND  A
  5807.          JRZ  UPK4
  5808.          DEC  (IX+28)
  5809.          RETZ
  5810.          LD   C,128
  5811.          LD   A,(HL)
  5812.          INC  HL
  5813. UPK4     CP   (IX+16)
  5814.          JRNZ UPK6      Ej QCTL
  5815.          AND  A
  5816.          JRZ  UPK6
  5817.          DEC  (IX+28)
  5818.          RETZ
  5819.          LD   A,(HL)
  5820.          INC  HL
  5821.          BIT  7,A
  5822.          JRZ  UPK5
  5823.          LD   C,128
  5824. UPK5     AND  127
  5825.          CP   (IX+16)
  5826.          JRZ  UPK6      QCTL
  5827.          CP   (IX+17)
  5828.          JRZ  UPK6      QBIN
  5829.          CP   (IX+19)
  5830.          JRZ  UPK6      REPT
  5831.          XOR  64
  5832. UPK6     OR   C
  5833. UPK7     LD   (DE),A
  5834.          INC  DE
  5835.          INC  (IX+27)
  5836.          DJNZ UPK7
  5837.          JPP  UPK2
  5838.          CALL TOFIL
  5839.          JRNC UPK1
  5840.          RET
  5841.  
  5842. TOFIL    LD   A,(IX+27)
  5843.          AND  A
  5844.          RETZ
  5845.          PUSH HL
  5846.          LD   HL,BUFF5
  5847.          LD   C,A
  5848.          LD   B,0
  5849.          PUSH BC
  5850.          CALL PUTFIL
  5851.          POP  BC
  5852.          LD   HL,(ANTBYTES)
  5853.          ADD  HL,BC
  5854.          LD   (ANTBYTES),HL
  5855.          POP  HL
  5856.          RET
  5857.  
  5858. ;Packa data att s{nda
  5859. PACK     LD   HL,BUFF4
  5860.          LD   (IX+24),0 L{ngd data
  5861.          LD   C,(IX+9)
  5862. PK1      LD   A,(IX+11)
  5863.          SUB  8
  5864.          SUB  (IX+24)
  5865.          CCF
  5866.          RETNC          Packet full
  5867.          PUSH HL
  5868.          PUSH BC
  5869.          CALL GETFIL    H{mta ett tecken
  5870.          POP  BC
  5871.          POP  HL
  5872.          RETC           EOF eller ERROR
  5873.          LD   E,A       Spara tecken
  5874.          LD   A,(IX+9)  Kolla om ej REPT
  5875.          AND  A
  5876.          JR   Z,PK11
  5877.          CP   E
  5878.          JRZ  PK4       REPT-tkn
  5879.          LD   A,E       Tillbaks med tecknet i A
  5880.          CP   C
  5881.          JRZ  PK2       Samma som f|rut!
  5882.  
  5883. PK11     LD   C,A       Kom ih}g tecknet
  5884.          LD   B,1       Repeatr{knare
  5885.          LD   (IX+34),L
  5886.          LD   (IX+35),H Spara pekare
  5887.          LD   A,(IX+24)
  5888.          LD   (IX+36),A Spara l{ngd
  5889.          JR   PK4
  5890.  
  5891. PK2      INC  B         \ka repeatantal
  5892.          LD   A,B
  5893.          CP   4
  5894.          JRC  PK4       Mindre {n 4 lika
  5895.          CP   94
  5896.          JRC  PK3       Max 94 repeat!
  5897.          LD   C,(IX+9)
  5898. PK3      LD   L,(IX+34)
  5899.          LD   H,(IX+35) ]terst{ll pekare
  5900.          LD   A,(IX+36)
  5901.          LD   (IX+24),A ]terst{ll l{ngd
  5902.          LD   A,(IX+9)
  5903.          LD   (HL),A    REPT-tecken
  5904.          INC  HL
  5905.          INC  (IX+24)
  5906.          LD   A,B       Antal repeat
  5907.          ADD  32
  5908.          LD   (HL),A
  5909.          INC  HL
  5910.          INC  (IX+24)
  5911. PK4      BIT  7,E
  5912.          JRZ  PK5       Ej }ttabitsdata
  5913.          LD   A,(IX+7)
  5914.          AND  A
  5915.          JRZ  PK5       Ej QBIN
  5916.          LD   (HL),A
  5917.          INC  HL
  5918.          INC  (IX+24)
  5919.          RES  7,E
  5920. PK5      LD   A,E
  5921.          CP   32
  5922.          JRC  PK6       Tecken < 32
  5923.          CP   127
  5924.          JRZ  PK6
  5925.          AND  127
  5926.          CP   (IX+6)
  5927.          JRZ  PK6       QCTL
  5928.          CP   (IX+9)
  5929.          JRZ  PK6       REPT
  5930.          CP   (IX+7)
  5931.          JRNZ PK8       Ej QBIN
  5932.          AND  A
  5933.          JRZ  PK8       QBIN anv{nds ej
  5934. PK6      LD   A,(IX+6)
  5935.          LD   (HL),A
  5936.          INC  HL
  5937.          INC  (IX+24)
  5938.          LD   A,E
  5939.          CP   32
  5940.          JRC  PK7
  5941.          CP   127
  5942.          JRNZ PK8
  5943. PK7      XOR  64
  5944.          LD   E,A
  5945. PK8      LD   (HL),E
  5946.          INC  HL
  5947.          INC  (IX+24)
  5948.          JP   PK1
  5949. <<< kermasm.inf >>>
  5950. Information om k{llkoden till KERM
  5951. Anders Franz`n Stockholm 1988-01-01
  5952.  
  5953. K{llkoden till KERM best}r av totalt
  5954. }tta filer varav en huvudfil. Dessa
  5955. {r assemblerade med ASS.BAC (det kr{vs
  5956. 32K f|r assembleringen). Dessa filer
  5957. finns:
  5958.  KERM.ASM   Huvudfil, g|r include p} |vriga
  5959.  KERM1.ASM-KERM7.ASM
  5960. <<< kermdump.bas >>>
  5961. 100 REM +++++++++++++++++++++++++++++++
  5962. 101 REM ! Program ....   KERMDUMP
  5963. 102 REM ! Utg}va  1.0    87-11-08
  5964. 103 REM ! av Anders Franz`n <5258>
  5965. 104 REM +++++++++++++++++++++++++++++++
  5966. 105 REM
  5967. 106 REM F%=0% : PREPARE 'trace.txt' ASFILE F%
  5968. 107 A%=135%*256% : B%=A%+1%
  5969. 108 I%=PEEK(A%) : A%=A%+1%
  5970. 109 IF I%<>1% GOTO 119
  5971. 110 FOR K%=B%-1% TO A%-2%
  5972. 111 L%=PEEK(K%) AND 127%
  5973. 112 IF L%>32% AND L%<128% ; #F%,'   'CHR$(L%); ELSE ; #F%,'    ';
  5974. 113 N%=N%+1% : IF N%=15% LET N%=0% : ; #F%
  5975. 114 NEXT K% : N%=0%
  5976. 115 ; #F% : GET T$ : ; #F%
  5977. 116 IF T$='S' CLOSE F% : END
  5978. 117 ; #F%,'typ='CHR$(PEEK(A%+2%))'  seq='RIGHT$(NUM$(PEEK(A%+1%)-32%),2%)'  len='RIGHT$(NUM$(PEEK(A%)-32%),2%)
  5979. 118 B%=A%
  5980. 119 ; #F%,SPACE$(4%-LEN(NUM$(I% AND 127%)))I% AND 127%;
  5981. 120 N%=N%+1% : IF N%=15% LET N%=0% : ; #F%
  5982. 121 GOTO 108
  5983. <<< kermdump.inf >>>
  5984. KERMDUMP.INF
  5985. Anders Franz`n <5258> Sthlm 1987-11-08
  5986.  
  5987. KERMDUMP {r ett program som dumpar mottaget
  5988. och s{nt data med KERM. S{tt parametern
  5989. DEBUG DUMP i KERM och |verf|r fil med Kermit.
  5990. Tryck RESET p} datorn och k|r sedan KERMDUMP.
  5991. Man kan dumpa datat till fil om s} |nskas
  5992. genom att {ndra filnummer i b|rjan av
  5993. programmet till annat v{rde {n noll.
  5994.  
  5995. Programmet ins{nt f|r att kunna h{rleda
  5996. fel.
  5997. <<< kermquit.bas >>>
  5998. 100 REM +++++++++++++++++++++++++++++++
  5999. 110 REM ! Program ....   KERMQUIT
  6000. 120 REM ! Utg}va  1.0    87-09-20
  6001. 130 REM ! av Anders Franz`n <5258>
  6002. 140 REM +++++++++++++++++++++++++++++++
  6003. 150 REM 
  6004. 160 REM Medf|r }terhopp till KERM.
  6005. 170 REM 
  6006. 180 ; 'Tryck CTRL-C f|r BASIC,'
  6007. 190 ; 'annars }ter till KERM.'
  6008. 200 GET A$
  6009. 210 Z%=CALL(PEEK(65063%)+256%*PEEK(65064%)+16%)
  6010.