home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cpm / editors / zde16.pma / ZDKCOM13.DOC < prev   
Text File  |  1979-12-31  |  10KB  |  209 lines

  1.  
  2.  
  3.                               zdkcom
  4.  
  5.   
  6.  
  7.                     kEY fILE cOMPILER FOR zde
  8.  
  9.  
  10.  
  11.                      vERSION 1.3   01 jUN 90
  12.  
  13.  
  14.  
  15.   zdkcom AND ITS DOCUMENTATION ARE ADAPTED WITH PERMISSION FROM 
  16.  
  17.   vdkcom12.lbr, BY fRED hAINES, gLENDALE lITTERA rcpm/qbbs, 818 
  18.  
  19.   956-6164.  vdkcom VERSION 1.2 IS COPYRIGHT 1988 BY fRED hAINES, 
  20.  
  21.   AND IS RELEASED BY THE AUTHOR TO THE cp/m COMMUNITY FOR ALL 
  22.  
  23.   REASONABLE NONCOMMERCIAL PURPOSES.  fOR THE z80 SOURCE CODE TO 
  24.  
  25.   zdkcom, SEE zdkcom13.lbr.
  26.  
  27.  
  28.  
  29.  
  30.  
  31.                              contents
  32.  
  33.  
  34.  
  35.                     1.  hOW TO uSE zdkcom.
  36.  
  37.                     2.  pROGRAMMER'S nOTE.
  38.  
  39.  
  40.  
  41.  
  42.  
  43. 1.  hOW TO uSE zdkcom.
  44.  
  45.  
  46.  
  47.      zdkcom COMPILES AN ascii TEXT FILE INTO A *.zdk FILE OF KEY 
  48.  
  49. MACROS WHICH zdenstal WILL INSTALL IN zde.  iT ALSOS CONVERT AN 
  50.  
  51. EXISTING zdk FILE INTO A TEXT FILE WITH THE EXTENSION zdt.  iT 
  52.  
  53. ALLOWS YOU TO CREATE, EDIT, AND RE-EDIT COMPLICATED KEY MACROS 
  54.  
  55. WITH A FULL-FEATURED WORD PROCESSOR - zde ITSELF - INSTEAD OF THE 
  56.  
  57. BACKSPACE-ONLY LINE EDITOR IN zdenstal.  tHE SYNTAX IS:
  58.  
  59.  
  60.  
  61.  zdkcom <UFN>.zdt
  62.  
  63.    CONVERTS TEXT FILE TO zdk OVERLAY
  64.  
  65.  
  66.  
  67.  zdkcom <UFN>.zdk
  68.  
  69.    CONVERTS OVERLAY TO zdt TEXT FILE  
  70.  
  71.  
  72.  
  73.      uSE zde IN nondocument MODE TO TYPE A FILE THAT LOOKS LIKE 
  74.  
  75. WHAT YOU SEE WHEN YOU USE THE k OPTION OF zdenstal, SUBSTITUTING 
  76.  
  77. LOWER CASE "N" OR "Q" FOR THE nO rEPEAT AND qUIET OPTION 
  78.  
  79. INDICATORS <n> AND <q>:
  80.  
  81.  
  82.  
  83.   QtHIS LINE WOULD BE FOR KEY 0 IN qUIET MODE.^m
  84.  
  85.   NtHIS LINE WOULD BE FOR KEY 1 IN nO rEPEAT MODE.^m
  86.  
  87.  
  88.  
  89.   tHIS LINE WOULD BE KEY 3, WITH KEY 2 UNASSIGNED.
  90.  
  91.   N<tHIS LINE WOULD APPEAR IN ANGLE BRACKETS.>^m^m^m
  92.  
  93.   tHE LINE ABOVE, KEY 4, PRINTS WITH TWO BLANK LINES FOLLOWING IT.
  94.  
  95.   Q"tHIS IS IN QUOTES, BUT NO CARRIAGE RETURN AT THE END."
  96.  
  97.   "tHIS LINE IS ^p^bmACRO kEY 7^p^b WITH EMBEDDED BOLDFACE CODES."^m
  98.  
  99.   Q^vtHIS LINE TURNS INSERT ON BEFORE PRINTING THE LINE.^a^a^a^a_^f^d_^m
  100.  
  101.   N <kEY 9 NOT INSTALLED>^a^a^a^a
  102.  
  103.  
  104.  
  105. ...AND SO ON.  lINES CORRESPOND TO THE NUMBER KEYS IN 0 TO 9 
  106.  
  107. ORDER, WITH BLANK LINES FOR UNASSIGNED KEYS.  dO not EMBED CONTROL 
  108.  
  109. CODES.  tYPE EVERYTHING IN ascii.  fOR INSTANCE, TO UNDERLINE, 
  110.  
  111. TYPE OUT '^p^sWORDS UNDERLINED^p^s'.  iT'S A GOOD IDEA TO MAKE 
  112.  
  113. HARD CARRIAGE RETURNS VISIBLE BY TOGGLING THEM ON WITH THE ^od 
  114.  
  115. COMMAND.  zdkcom ACCEPTS TRAILING SPACES AS PART OF THE MACRO, 
  116.  
  117. EVEN THOUGH YOU CAN'T SEE THEM, SO, IF YOU DON'T WANT THEM, MAKE 
  118.  
  119. SURE EACH LINE IS TERMINATED BY A HARD CARRIAGE RETURN.
  120.  
  121.      iNDIVIDUAL KEY MACRO STRINGS MAY NOT EXCEED 127 BYTES IN THE 
  122.  
  123. zdk FILE, THOUGH THEY MAY IN THE zdt TEXT FILE, SINCE ascii 
  124.  
  125. REPRESENTATIONS OF SINGLE-BYTE CONTROL CODES REQUIRE TWO BYTES, 
  126.  
  127. AND OPTION FLAGS AND SLASHES DON'T CONTRIBUTE TO THE LENGTH OF THE 
  128.  
  129. STRING.
  130.  
  131.      tHE TOTAL OF ALL STRINGS MAY NOT EXCEED 498 OUTPUT BYTES.  
  132.  
  133. tHIS IS TWO BYTES LESS THAN ALLOWED BY zde AND zdenstal, BUT, 
  134.  
  135. UNDER THE PROGRAM'S PRESENT LOGIC, IT WOULD REQUIRE AN INORDINATE 
  136.  
  137. AMOUNT OF CODE TO MAKE THOSE LAST TWO BYTES AVAILABLE.  iF YOU 
  138.  
  139. REALLY NEED THEM, ADD THEM TO THE zdk FILE WITH zpatch OR ANY 
  140.  
  141. OTHER PATCHER, LOCATE THE LAST STRING-LENGTH BYTE, AND ADD 2 (IN 
  142.  
  143. HEX) TO IT.
  144.  
  145.      fOR A QUICK DEMO, REMOVE THE LEADING SPACES FROM THE LINES 
  146.  
  147. BELOW, MARK THEM AS A BLOCK, AND WRITE THEM OUT TO <UFN>.zdt.  rUN 
  148.  
  149. zdkcom <UFN>.zdt.  tHEN LOAD THE RESULTING zdk FILE INTO zde WITH 
  150.  
  151. THE COMMAND zdenstal zde <UFN>.zdk.
  152.  
  153.  
  154.  
  155.   Q^c^c^c^e^e^e^e^e^[^e
  156.  
  157.   Q^[B^[0^qS^x^[=^m1^[= 1^s^v ^d^[!0^[1^qB^b^kU
  158.  
  159.   ^[=^m0^v^i^v^b^g^[![^[0^x
  160.  
  161.   ^[=^m0^t^b^n^[0^x
  162.  
  163.   Q^p^[^p^i^p^k^p^[9
  164.  
  165.   Q^v^kRa0:lh.fmt^m
  166.  
  167.   Q^g^g^g^g^x
  168.  
  169.   Q<NOT INSTALLED>^a^a^s
  170.  
  171.   Q<NOT INSTALLED>^a^a^s
  172.  
  173.   Q^kRheader^m
  174.  
  175.  
  176.  
  177. kEY MACRO 0 MEASURES OFF ONE FULL PAGE IF THE TOP MARGIN IS 0 AND 
  178.  
  179. THE PAGE LENGTH IS 58 LINES.  aDJUST FOR DIFFERENT PAGE LENGTHS BY 
  180.  
  181. ADDING OR SUBTRACTING ^e'S.  i USE THIS MACRO TO MOVE FROM LINE 1 
  182.  
  183. OF A PAGE TO LINE 1 OF THE NEXT PAGE.  i THEN USE KEY MACRO 9 TO 
  184.  
  185. READ IN A PAGE HEADER FROM A SEPARATE FILE THAT CONTAINS NOTHING 
  186.  
  187. BUT THE PROPERLY SPACED HEADER TEXT WITH A # IN PLACE OF THE PAGE 
  188.  
  189. NUMBER.  i SEARCH FOR # WITH A ^qF AND REPLACE IT WITH THE 
  190.  
  191. APPROPRIATE PAGE NUMBERS.
  192.  
  193.      tHIS HAPPENS SO QUICKLY ON A 9 MHZ sb180 WITH HARD DISK THAT 
  194.  
  195. IT IS VIRTUALLY UNNOTICEABLE, BUT THERE IS A FASTER WAY TO DO IT.  
  196.  
  197. jUST MAKE UP A HEADER AT THE TOP OF THE FIRST PAGE, OR, IF YOU 
  198.  
  199. WANT TO START PAGE HEADERS ONLY ON PAGE TWO, AT THE FOOT OF THE 
  200.  
  201. FILE, AND MARK IT AS A BLOCK.  uSE KEY MACRO 0 TO MOVE FROM THE 
  202.  
  203. TOP LINE OF A PAGE TO THE TOP LINE OF THE NEXT, AND COPY THE 
  204.  
  205. HEADER INTO PLACE WITH THE ^kc COMMAND.  dON'T FORGET TO ERASE THE 
  206.  
  207. ORIGINAL OF THE HEADER AT THE FOOT OF THE FILE WHEN YOU GET THERE.
  208.  
  209.      kEY MACRO 1 SOFTENS AND REFORMS A PARAGRAPH BY REMOVING THE 
  210.  
  211. HARD CARRIAGE RETURNS FROM THE ENDS OF EACH LINE.
  212.  
  213.      kEY MACRO 2 CHANGES A DOCUMENT IN FLUSH LEFT BLOCK FORMAT 
  214.  
  215. (LIKE THIS ONE) TO INDENTED PARAGRAPH FORM, AND KEY MACRO 3 
  216.  
  217. CHANGES IT BACK AGAIN.
  218.  
  219.      kEY MACRO 4 EMBEDS MY diablo 1610-COMPATIBLE PRINTER'S CODE 
  220.  
  221. FOR SETTING A LEFT MARGIN IN COLUMN 11 (^k=0bH) IN THE DOCUMENT.  
  222.  
  223. iF i WANT ANOTHER MARGIN i ADD OR SUBTRACT FROM 0bH AND OVERWRITE 
  224.  
  225. THE ^k WITH THE APPROPRIATE CONTROL CHARACTER.  yOU MAY WELL BE 
  226.  
  227. ABLE TO SUBSTITUTE YOUR OWN PRINTER'S SET LEFT MARGIN CODE FOR 
  228.  
  229. THIS ONE.
  230.  
  231.      kEY MACRO 5 READS IN A PREVIOUSLY PREPARED LETTERHEAD STORED 
  232.  
  233. AS lh.fmt ON DRIVE/USER a0.
  234.  
  235.      kEY MACRO 6 REMOVES FOUR SPACES OR CHARACTERS FROM THE 
  236.  
  237. BEGINNING OF EACH LINE, USED TO REMOVE LINE NUMBERS FROM THE 
  238.  
  239. BEGINNINGS OF MESSAGES IN MODEM CAPTURE FILES.
  240.  
  241.  
  242.  
  243.  
  244.  
  245. 2.  pROGRAMMER'S nOTE.
  246.  
  247.  
  248.  
  249.      a zdk FILE IS A DATA STRUCTURE FOUR RECORDS LONG.  tHE FIRST 
  250.  
  251. TWO BYTES ARE AN id NUMBER WHICH zdenstal CHECKS TO ENSURE THAT IT 
  252.  
  253. IS WORKING WITH THE CORRECT VERSION.  tHE CURRENT NUMBER, 0250H, 
  254.  
  255. IS VALID FOR SEVERAL RECENT VERSIONS OF zde.
  256.  
  257.      tHESE TWO BYTES ARE FOLLOWED BY UP TO TEN STRINGS, EACH 
  258.  
  259. PRECEDED BY A STRING-LENGTH BYTE WHICH zde USES TO INDEX THE 
  260.  
  261. STRING'S LOCATION.  eACH STRING IS LIMITED BY THE SIZE OF A BUFFER 
  262.  
  263. IN zde TO 127 BYTES.
  264.  
  265.      aN EMPTY STRING IS INDICATED BY A STRING-LENGTH BYTE OF 00H.  
  266.  
  267. aFTER THE LAST BYTE OF THE LAST STRING, THE REMAINDER OF THE 512 
  268.  
  269. BYTES ARE FILLED WITH 00H.
  270.  
  271.      iT IS A PECULIARITY OF zdkcom THAT IT NEEDS TO WRITE TWO NULL 
  272.  
  273. BYTES AT THE END OF THE FILE, WHICH MEANS THAT IT WILL ACCEPT ONLY 
  274.  
  275. 498 BYTES FOR THE TOTAL LENGTH OF ALL STRINGS (512, LESS TWO id 
  276.  
  277. BYTES, LESS 10 STRING-LENGTH BYTES, LESS THESE TWO MORE) RATHER 
  278.  
  279. THAN THE 500 THAT zde AND zdenstal ALLOW.
  280.  
  281.      wHEN YOU LOOK AT THE KEY MACRO BUFFER OF zde USING THE k 
  282.  
  283. OPTION OF zdenstal, YOU SEE SOMETHING THAT LOOKS LIKE THIS:
  284.  
  285.  
  286.  
  287.   <0><q>tHIS LINE WOULD BE FOR KEY 0 IN qUIET MODE.^m
  288.  
  289.   <1><n>tHIS LINE WOULD BE FOR KEY 1 IN nO rEPEAT MODE.^m
  290.  
  291.   <2><>
  292.  
  293.   <3>tHIS LINE WOULD BE KEY 3, WITH KEY 2 UNASSIGNED.
  294.  
  295.   <4><n><tHIS LINE WOULD APPEAR IN ANGLE BRACKETS.>^m^m^m
  296.  
  297.   <5>tHE LINE ABOVE, KEY 4, PRINTS WITH TWO BLANK LINES FOLLOWING IT.
  298.  
  299.   <6><q>"tHIS IS IN QUOTES, BUT NO CARRIAGE RETURN AT THE END."
  300.  
  301.   <7>"tHIS LINE IS ^p^bmACRO kEY 7^p^b WITH EMBEDDED BOLDFACE CODES."^m
  302.  
  303.   <8><>
  304.  
  305.   <9><>
  306.  
  307.  
  308.  
  309. tHE NUMBERS DOWN THE SIDE AND THE OPTION INDICATORS <n>, <q>, AND 
  310.  
  311. <> (NO OPTION) ARE SUPPLIED BY zdenstal.  tHE zdt TEXT FILE 
  312.  
  313. VERSION OF THE SAME MACRO KEYS WOULD OMIT THE STRING NUMBERS AND 
  314.  
  315. NO OPTION INDICATORS, AND CONVERT THE <n> AND <q> TO SIMPLE LOWER 
  316.  
  317. CASE 'N' AND 'Q'.  iF YOU NEED LOWER CASE 'N' OR 'Q' AS THE FIRST 
  318.  
  319. CHARACTER OF A KEY MACRO, JUST PRECEDE IT WITH A SLASH, WHICH WILL 
  320.  
  321. BE IGNORED.
  322.  
  323.      zdkcom RECOGNIZES BLANK LINES AS UNASSIGNED KEYS.  tHESE 
  324.  
  325. PRODUCE AN "ERROR" MESSAGE WHEN INVOKED BY zde.
  326.  
  327.      zde RECOGNIZES A nO rEPEAT OPTION IF THE THE HIGH BIT IS SET 
  328.  
  329. ON THE FIRST BYTE OF THE MACRO STRING AFTER THE LENGTH BYTE, AND A 
  330.  
  331. qUIET OPTION IF THE HIGH BIT IS SET ON BOTH OF THE FIRST TWO BYTES 
  332.  
  333. OF THE STRING.
  334.  
  335.      tHE TRANSLATION PROCEDURE FROM TEXT TO OVERLAY REQUIRES:
  336.  
  337.  
  338.  
  339.   eNTER TWO-BYTE id STRING 02H 50H IN OUTPUT FILE.
  340.  
  341.  
  342.  
  343.   eNTER 00H TO SAVE A PLACE FOR A STRING LENGTH BYTE.
  344.  
  345.  
  346.  
  347.   cHECK FOR "N" OR "Q" AS FIRST THREE BYTES OF NEW STRING AND ADD 
  348.  
  349.   80H TO THE NEXT BYTE OR NEXT TWO BYTES INPUT AS REQUIRED.
  350.  
  351.  
  352.  
  353.   rEAD IN THE REST OF THE STRING BYTE BY BYTE AND OUTPUT EACH BYTE 
  354.  
  355.   TO THE OUTPUT FILE.  iF "^" APPEARS IN THE STRING, DROP IT AND 
  356.  
  357.   SUBTRACT 40H FROM NEXT BYTE TO MAKE IT INTO A REAL CONTROL 
  358.  
  359.   CHARACTER.  iF "/" APPEARS, IGNORE IT AND PRINT THE NEXT 
  360.  
  361.   CHARACTER LITERALLY.  "/^" PRINTS "^" RATHER THAN TURN THE 
  362.  
  363.   CHARACTER FOLLOWING THE CARAT INTO A CONTROL CODE, AND "//" 
  364.  
  365.   PRINTS A SINGLE SLASH.  a SINGLE INPUT SLASH IS IGNORED.
  366.  
  367.  
  368.  
  369.   wHEN THE crlf PAIR IS ENCOUNTERED IN THE INPUT TEXT FILE, 
  370.  
  371.   CONVERT IT TO A 00H PLACE MARKER FOR THE LENGTH OF THE NEXT 
  372.  
  373.   STRING.  gET THE NUMBER OF BYTES OUTPUT IN THE LAST STRING AND 
  374.  
  375.   WRITE IT TO THE POSITION OF THE STRING-LENGTH BYTE AT THE HEAD 
  376.  
  377.   OF THE PRECEDING STRING.
  378.  
  379.  
  380.  
  381.   wHEN THE TEXT FILE'S ^z eof IS ENCOUNTERED, FILL THE REMAINDER 
  382.  
  383.   OF THE TOTAL 512 BYTES WITH 00H AND CLOSE THE FILES.
  384.  
  385.  
  386.  
  387. wHEN CONVERTING zdk OVERLAYS TO zdt TEXT FILES, THE PROCEDURE IS 
  388.  
  389. MORE OR LESS REVERSED.  zdkcom CONVERTS THE STRING LENGTH BYTES TO 
  390.  
  391. crlf PAIRS, THE CONTROL CODE BYTES TO TWO-BYTE ascii STRINGS '^C', 
  392.  
  393. AND FINISHES OFF THE FILE WHEN ALL STRINGS ARE ACCOUNTED FOR BY 
  394.  
  395. INSERTING AN eof ^z.
  396.  
  397.      iN ADDITION, zdkcom HAS ERROR CHECKING FOR FILE OPENING AND 
  398.  
  399. CLOSING AND FOR INDIVIDUAL AND OVERALL STRING LENGTH, AND IT 
  400.  
  401. REPORTS ACTIVITY TO KEEP THE USER FROM THINKING THE PROGRAM HAS 
  402.  
  403. HUNG, THOUGH THE COUNTERS ON THE SCREEN ARE OTHERWISE MEANINGLESS.
  404.  
  405.      tHE STRUCTURE OF THE FOUR-SECTOR zdk FILE IN cp/m IS SO 
  406.  
  407. SIMILAR TO THE EIGHT-SECTOR ms/dos VERSION THAT YOU CAN USE 
  408.  
  409. zdkcom, ALONG WITH A PATCHER, TO CREATE A vdk FILE FOR 
  410.  
  411. INSTALLATION IN vde12, THE ms/dos VERSION OF zde.  mAKE UP THE zdt 
  412.  
  413. FILE AS YOU WOULD FOR cp/m, THEN PATCH THE SECOND id BYTE FROM 50H 
  414.  
  415. TO 60H AND ADD FOUR RECORDS OF NULLS.
  416.  
  417.