home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / dos / prg / alabv10 / alab.doc < prev    next >
Text File  |  1995-07-02  |  23KB  |  524 lines

  1.        ╓─────┐  ╓─┐  ╓─┐ ╥──┐ ╓─╥─┐ ╥─┐  ╥    ╥──┐ ╥──┐
  2.        ║     │  ╙─┐  ╙─┐ ╟─   ║ ║ │ ╟─┴┐ ║    ╟─   ╟─┬┘
  3.        ╟─────┤ ╙──┘ ╙──┘ ╨──┘ ╨ ╨ ┴ ╨──┘ ╨──┘ ╨──┘ ╨ ┴
  4.        ║     │  ╥       ╓──┐ ╥─┐  ╓──┐ ╥──┐ ╓──┐ ╓─╥─┐ ╓──┐ ╥──┐ ╥  ┬
  5.        ╨     ┴  ║       ╟──┤ ╟─┴┐ ║  │ ╟─┬┘ ╟──┤   ║   ║  │ ╟─┬┘ ╙──┤
  6.                 ║       ╨  ┴ ╨──┘ ╙──┘ ╨ ┴  ╨  ┴   ╨   ╙──┘ ╨ ┴  ╙──┘
  7.                 ║            (c) 1994,1995 Kurt Inge Groenbech
  8.                 ╨─────┘
  9. ───────────────────────────────┤ Version 1.0 ├─────────────────────────────────
  10.                   R  E  F  E  R  E  N  C  E    M  A  N  U  A  L
  11. ───────────────────────────────────────────────────────────────────────────────
  12.  
  13. Table of contents:
  14.  
  15.                 0 - Legal
  16.                     0.1 - Disclaimer
  17.                     0.2 - Registration (and what you get)
  18.                     0.3 - Distribution
  19.                     0.4 - Acknowledgements
  20.                 1 - Introduction
  21.                     1.1 - About this reference manual
  22.                     1.2 - Why starting this project
  23.                     1.3 - Release notes!!
  24.                 2 - Installation
  25.                 3 - Command line switches
  26.                 4 - Features
  27.                     4.1 - Procedure/macro Worksheet
  28.                     4.2 - Heuristic Scan
  29.                     4.3 - Block comment/uncomment
  30.                     4.4 - Label Jumps
  31.                     4.5 - Opcode help
  32.                     4.6 - Tab characters
  33.                     4.7 - Redefining shortcut keys in menus
  34.                 5 - Project Manager
  35.                     5.1 - What is it?
  36.                     5.2 - Creating a project file
  37.                     5.3 - Making a project
  38.                 6 - Known bugs
  39.                     6.1 Alab hangs when I open a window!
  40.                 7 - People involved
  41.                     7.1 - Public domain software
  42.                     7.2 - Betatesters
  43.                 8 - The author/contacting
  44.  
  45. ───────────────────────────────────────────────────────────────────────────────
  46. [ 0 - Legal ]
  47. ▀▀▀▀▀▀▀▀▀▀▀▀▀
  48.  
  49. 0.1 - Disclaimer
  50. ----------------
  51.  
  52. Assembler Laboratory is provided "as is" and without any warranty.
  53. To the extent premitted under applicable law, I disclaim all warranties,
  54. express or implied, including but not limited to, any implied warranty
  55. of merchantability or fitness for a particular purpose. Specifically, I
  56. make no representation or warranty that the software is fit for any
  57. particular purpose.
  58.  
  59. I shall not be liable for any damages resulting from the use of this
  60. software, including but not limited to, loss of profit, data or use of
  61. the software, or indirect, special, incidental or consequential damages
  62. or other similar claims, even if I has been specifically advised of the
  63. possibility of such damages.
  64.  
  65. What it means:
  66. The only thing I guarantee Alab will do, is to take up space on your
  67. harddisk. If it doesn't do that, well... then I think you have some
  68. serious problems with your harddisk ;)
  69.  
  70. 0.2 - Registration
  71. ------------------
  72.  
  73. Assembler Laboratory is provided as SHAREWARE (read SHAREWRE.TXT for
  74. information about shareware). If you continue using Alab after a 30 day
  75. trial period, you MUST PURCHASE a license for it. This is the advantage
  76. about shareware. You can use the program for a specified number of
  77. days/months to see if you like it, and then pay for it if you do and
  78. would like to use it further.
  79.  
  80. The non-commercial registration fee for Alab is set to just $15 (USD).
  81. This includes shipping costs, disk, envelope, stamp etc.
  82.  
  83. To register Alab, do the following:
  84.  
  85.   - Print out the order form (ORDER.FRM) and fill it out.
  86.   - Print out license.txt (read it ofcoz) and sign it
  87.   - Mail them both to HAAVARD ENGUM (the address is at the end of this
  88.     document, and in order.frm).
  89.   - The registration fee can be paid in cash, cheque or money-transfer
  90.     to "giro" bank or postgiro accounts:
  91.  
  92.       Bank account ("giro" bank) : 82306010944
  93.       Post account (postgiro)    : 08250698330
  94.  
  95.     Make it payable to :
  96.  
  97.     Groenbech
  98.     Sigrid Johansens v.23
  99.     7025 Trondheim
  100.     NORWAY
  101.  
  102. When Haavard then recieves order.frm and a signed license.txt (and you
  103. have paid the fee), he will send a registered version to you by snailmail.
  104.  
  105. The shareware version of Alab comes with lack of 2 features.
  106. I have not put any shitty delays or big screens wich says 'EVALUATION COPY'
  107. in there, because that SUCKS! I *hate* such delays. I do not want to push
  108. you too much to register Alab. Those who find it useful, I hope you will
  109. appreciate my many hours of work on this project and register.
  110.  
  111. What you get by registering:
  112.   - A personalised disk with a registered version of Alab.
  113.   - Max 15 windows open (4 in the shareware version)
  114.   - Possibility to Save/Restore desktop when not using Project.
  115.  
  116. I couldn't figure out something else ;)
  117.  
  118. 0.3 - Distribution
  119. ------------------
  120.  
  121. Distribution of Alab must happen under these conditions:
  122.  
  123.     - Alab should be distributed in its original archive, but if not
  124.       possible, all these files must be in the archive:
  125.         ALAB.EXE
  126.         ALAB.OVR
  127.         ALAB.DOC
  128.         ALAB.CFG
  129.         ALAB.HLP
  130.         ALAB.REV
  131.         ALAB.MAC
  132.         KEYS.MAC
  133.         FILE_ID.DIZ
  134.         ORDER.FRM
  135.         LICENSE.TXT
  136.         [UNHANG.COM]    not a must, but do include it if you have it
  137.         [SHAREWRE.TXT]  not a must, but do include it if you have it
  138.         [DESCRIPT.ION]  not a must, but do include it if you have it
  139.  
  140.     - No money can be charged for it, EXCEPT a little payment for the
  141.       disk or similar.
  142.  
  143. 0.4 - Acknowledgements
  144. ----------------------
  145.  
  146. Many hours have gone into the development of this product, and I have
  147. got many a useful idéa from various betatesters. Especially I would like
  148. to thank the following people for extensive betatesting:
  149.  
  150.   - Tor-Helge Skei              (Axon/         Xenon), Main betatester
  151.   - Helge Helgesen
  152.   - Espen Grimsgaard            (Twinny/      Gollum)
  153.   - Thomas Loevlie
  154.  
  155. A complete list of betatesters comes at the end of this document.
  156.  
  157. Also, I acknowledge these packages in the development of Alab:
  158.  
  159. Turbo Vision for Turbo Pascal 6.0 (yes 6.0!),       by Borland International
  160. Turbo Vision for Borland Pascal 7.0                 by Borland International
  161. Turbo Assembler                                     by Borland International
  162. Turbo Link                                          by Borland International
  163. Turbo Debugger                                      by Borland International
  164. Turbo Profiler                                      by Borland International
  165. Microsoft Macro Assembler                           by Microsoft Corp
  166. Microsoft Overlay Linker                            by Microsoft Corp
  167. Microsoft Codeview                                  by Microsoft Corp
  168.  
  169. [ 1 - Introduction ]
  170. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  171.  
  172. 1.1 - About this reference manual
  173. ---------------------------------
  174.  
  175. This documentation is inteded as a short overview of Alab and I will
  176. therefore not go too much into details, thus I recon most of you out
  177. there know how to handle an IDE (I believe most of you have already
  178. tried different IDE's).
  179.  
  180. 2 statements before I continue...
  181.  
  182.   - Please bear with my english (I'm from Norway!:)
  183.   - I will cut the crap about Turbo Vision, how an Assembler IDE editor
  184.     should be compared to a Pascal IDE editor, and so forth. I will
  185.     instead consentrate on talking about all the special features, and
  186.     other things I believe can be useful to know when starting using
  187.     Alab.
  188.   - This program is called Assembler Laboratory, but in this document it
  189.     will be called Alab for ease. (AsmLab in the startup ansi ...)
  190.  
  191. 1.2 - Why starting this project
  192. -------------------------------
  193.  
  194. For some years of assembly programming, I (as most of us) had this
  195. cyclus during development:
  196. ┌┌─> - Edit the source code in a regular editor
  197. ││   - Save the source code (an extra keypress)
  198. ││   - Exit the editor
  199. ││   - Assemble the source code from the command line
  200. │└─  - Go back to the editor if reported errors
  201. │       (you'd have to search for the error(s))
  202. │    - Link the .obj-file (possibly run an .bat-file or MAKE instead of
  203. │                         assemble/link)
  204. │    - Run the executable program
  205. │    - Boot machine if the program hangs
  206. └──  - Go back to the editor to make further modifications
  207.  
  208. This is an extremely unneccesery time consuming process, and the idéa
  209. popped into my mind: 'Why not make an Asm IDE (I hadn't seen anyone at
  210. that time) where you can do all of this things without exiting the
  211. IDE!' I had also seen the editors for Pascal/C which had syntax
  212. highlighting, and I thought that that would be a great idéa to have in
  213. the Asm IDE. C also had a great error highlighting and why not also
  214. include that in my Asm IDE? Ok, so the idéa was born, and now I needed a
  215. name for it. I for a long time had 'AsmIDE' as the name, but then
  216. suddenly I saw that there already was an Asm IDE out there called AsmIDE
  217. (hi Toby!). Ok, I had already come so far on the project so I didn't
  218. want to cancel it. All I had to do was to make an IDE much better than
  219. what is already out there. I ofcourse had to change the name. At first I
  220. couldn't think of anything good, but I guess suddenly 'Assembler
  221. Laboratory' must have just popped in (can't remember exactly). Since it
  222. is called 'Laboratory' I also thought I had to make a bunch of extra
  223. features (laboratory is a place where you have many different things at
  224. your disposal), and so it was!
  225.  
  226. Here is a brief list of Assembler Laboratory features:
  227.     - [Save/]Assemble as standalone choice (one keypress)
  228.     - [Save/]Assemble[/Link] as standalone choice (one keypress)
  229.     - [Save/]Assemble/Link/Run as standalone choice (one keypress)
  230.     - Syntax highlighting
  231.     - Error hightlighting
  232.     - Procedure worksheet (useful popup overview of procedures)
  233.     - Macro/data Worksheet (same as proc worksheet, but for macros/data)
  234.     - Heuristic scan (scans through source code for coding bugs)
  235.     - Project Manager
  236.     - Label jumps
  237.     - Keyboard macros
  238.     - Menu functions shortcut key reassignment
  239.     - Online opcode help. Also context sensitive. (Topic Search)
  240.     - Block comment/uncomment
  241.     - Ascii/scancodes table
  242.     - Dec/Hex/Bin calculator (inspired by Toby's AsmIDE, as many other
  243.                               things :)
  244.  
  245. ... and I have also included an 'unhang' utility ('Unhang.com') which
  246. can prevent your machine from hanging in many cases (that is, you can
  247. press the stated keycombination when your machine hangs, and Unhang will
  248. try to quit back to DOS.) Beware that this program can be very unstable
  249. I think. It will not work if you either hook int 09 or disables keyboard
  250. interrupt. It will probably not work if you run some module player in
  251. the background... What it does is to hook int 9 and saves an
  252. exit-command at the address found on the stack (the point where the
  253. interrupt was called). Just 'mov ax, 4c00h - int 21h', but it works on
  254. most smaller programmes ! :) It is actually _very_ useful when coding
  255. demos under dos for example (without sound in the background).
  256.  
  257. 1.3 - Release notes!!
  258. ---------------------
  259.  
  260. I have been assigned to the military service this year starting
  261. 19. Juli 1995. Due to this I have decided to release Alab much sooner
  262. than I had expected, or else I probably must have waited one year.
  263. Because of this, Alab will be much more unfinished than I had expected
  264. and has a lack of features I wanted to put in there. I will also not be
  265. available to fix bugs most of the time, which garanteed will occur during
  266. this year, but there will be ways to pass your messages/idéas/suggestions to
  267. Xenon members or Espen Grimsgaard (twinny / gollum) who is the coordinator
  268. of the WWW page (is at the end of this doc). Another thing about this
  269. release version is that it contains a lot of uneccessary code (the .exe-file
  270. is over 230k!). I have not had any time to code it better before I leave...
  271.  
  272. If there is overwhelming response, I will code as _hell_ when I have
  273. absens of leave (I don't know what the hell it's called, what I mean is:
  274. free from military service). I will put in features you have requested,
  275. fix bugs, change things etc., and try to release a new version now and
  276. then, in between military service.
  277.  
  278. [ 2 - Installation ]
  279. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  280.  
  281.   - Copy all the files to the directory where you wish to have Alab
  282.   - Include the directory in your path if you want (also easiest to do
  283.     in your autoexec.bat)
  284.  
  285. Now Alab is ready to go. The first thing you should do when you start
  286. Alab, is to go to the Options|Directories and set the path to where your
  287. Tasm/Masm executables are.
  288.  
  289. [ 4 - Features ]
  290. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  291.  
  292. 4.1 - Procedure/macro Worksheet
  293. -------------------------------
  294.  
  295. Procedure/macro Worksheet is a completely new feature in low level
  296. programming IDE's. It is a popup menu with complete procedure overview.
  297. Here you have a nice list of all the procedures in the current
  298. source code, and by pressing [Space], you jump directly to the item the
  299. bar is on! Well, you maybe are familar with something like this.
  300. Borland Pascal have a browser which is quite similar to this.
  301.  
  302. 4.2 - Heuristic Scan
  303. --------------------
  304.  
  305. I actually got this idéa from the famous virus-scanner F-PROT. What
  306. Heuristic Scan does, is to scan through the sourcecode and look for
  307. bugs which wasn't reported by the compiler, and is likely to cause some
  308. problems. F.ex. it scans for missing 'ret's in procedures (which is
  309. likely to hang your program). This is the only thing in Heuristic Scan
  310. so far, but I have some more idéas to it, and I will most probably get
  311. many idéas from you betatesters. (F.ex. I have planned to make Heuristic
  312. Scan scan for places where it is possible that DS doesn't point to the
  313. data-segment (or the segment where the variable is) when accessing
  314. variables (this is also in many cases a hang-cause).
  315.  
  316. 4.3 - Block comment/uncomment
  317. -----------------------------
  318.  
  319. This feature is pretty much self-explanatory. You mark a block, and
  320. choose Block comment from the menu or shortcut-keys, and ....! The block
  321. is commented. I guess uncomment is obvious at this time :)
  322.  
  323. 4.4 - Label Jumps
  324. -----------------
  325.  
  326. This is a nice one! You just position the cursor on a line that holds
  327. a CALL or Jxx (all jump opcodes), and press Ctrl+J. The cursor then
  328. jumps to the procedure or label succeding the opcode.
  329.  
  330. 4.5 - Online Opcode Help
  331. ------------------------
  332.  
  333. Also a nice one! On the Help|Opcodes you have a very extensive online
  334. help on the instruction set. Just choose one and there you have it all,
  335. just as detailed as any TSR. There also is context sensitive help on
  336. this. Position the cursor on a line which hold an opcode as the first
  337. thing (or after a label), and press the command for Topic Search
  338. (Shift+F1 as default). Help for that specific opcode is automatically
  339. brought up.
  340.  
  341. 4.6 - Tab characters
  342. --------------------
  343.  
  344. I do not use true tab characters in my source codes, and therefore I
  345. have not bothered to put in support for smart tabs when the 'Use tab
  346. characters' checkbox is checked in Options|Editor (i'm too lazy, and
  347. besides I have very little time to finish Alab now).
  348. That is; smart tabs is only available when using spaces instead of
  349. true tab characters.
  350.  
  351. Also; the tab step when using true tab characters is always 8, no
  352. matter what you type in the 'Tab size' box in Options|Editor.
  353.  
  354. 4.7 - Redefining shortcut keys in menus
  355. ---------------------------------------
  356.  
  357. Actually very easy. Just follow the instructions in KEYS.MAC. The
  358. reason why I mention it here, is because people seem to not notice
  359. that it says you have to start Alab with the '/K' switch in order to
  360. make the changes take effect! Remember that... Also, you must not
  361. reorder the function names in any way! Alab does not recognais (I
  362. know it isn't written like that!) the function names.
  363.  
  364. [ 5 - Project Manager ]
  365. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  366.  
  367. 5.1 - What is it?
  368. -----------------
  369.  
  370. Project Manager lets you create and maintain a project file (extension
  371. .APF for Alab Project File) where you specify all the .asm, .obj and
  372. .lib files which are to be included in your program. If you specify an
  373. .asm file in your project YOU DO NOT HAVE TO specify the .obj file
  374. created from that .asm file! With Project Manager it gets easy to
  375. maintain your program, and easy to link/run it.
  376.  
  377. 5.2 - Creating a project file
  378. -----------------------------
  379.  
  380. Lets say you are starting on a program with 3-4 source files, 2
  381. additional object files you have got from a friend with video routines
  382. etc., and 1 of your own library files. You then first choose Open on the
  383. Project menu and type in the name for the project file (the name of the
  384. project file will be used to create an .exe/.com file). You then get an
  385. open Project Manager window with no files in it. Press Insert or choose
  386. Add Item from the menu to insert new items. Insert the 3-4 source files,
  387. the 2 object files and the library file. Then you can go to one of the
  388. source file and press ENTER to open it (or choose Open from the File
  389. menu). You then write your source code in it and assembles it the usual
  390. way. You do this with the other .asm files also.
  391.  
  392. 5.3 - Making a project
  393. ----------------------
  394.  
  395. When you choose Make and you have an open project, the Project Manager
  396. goes through the files specified in the project file (project window),
  397. top to bottom, and do this: If the file is a source file (.asm) the
  398. Project Manager checks wether the source file is modified. If it is, the
  399. file is assembled and the .obj file created is added to the parameters
  400. which will be passed to the linker later. If the file is a .obj or a
  401. .lib file, the file is added to the parameters to pass to the linker.
  402. Then when the Project Manger has gone through all the files, the linker
  403. is invoked and an executable is created. The name of the executable will
  404. be the same as the name of the project file.
  405.  
  406. [ 6 - Known bugs ]
  407. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  408.   - Not actually a bug, but lots of useless code in there!
  409.     (and code which is never used too..)
  410.   - Syntax highlighting really is way to slow...!
  411.   - Not fully support for Masm. Not support for Microsoft Link yet.
  412.   - Also not support for Masm in project.
  413.   - Calculator don't handle negativ decimal->hex+some more bugs (don't
  414.     use too big numbers...)
  415.   - Project Manager:
  416.       You have to specify full path to include files in the source files
  417.       in most cases.
  418.   - The line is deleted if you press 'Shift+End,Right' (use Undo)
  419.   - Some bugs with highlight extensions
  420.   - Dos screen doesn't work on a monochrom screen (who has that anyway?)
  421.  
  422.   - Some other small bugs which I cannot remember right now.
  423.  
  424. 6.1 - Alab hangs when I open a window!
  425. --------------------------------------
  426.  
  427. The cause for this is most probably that you don't have a 386+, and that
  428. the syntax highlighting checkbox is checked in Options|Editor. What
  429. happens is that syntax highlighting uses 386 code, and this will hang
  430. your machine. You will have to turn off syntax highlighting and clear
  431. the 'Highlight extensions' field in Options|Editor before you open any
  432. windows.
  433.  
  434. [ 7 - People Involved ]
  435. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  436.  
  437. 7.1 - Public domain software
  438. ----------------------------
  439.  
  440.   - Exec procedure with EMS swap by Thomas Wagner
  441.  
  442. 7.2 - Betatesters
  443. -----------------
  444.  
  445. Here is a complete list of betatesters:
  446.  
  447.   - Tor-Helge Skei              (Axon/         Xenon), Main betatester
  448.   - Helge Helgesen
  449.   - Espen Grimsgaard            (Twinny/      Gollum)
  450.   - Haavard Engum               (Hobbes/       Xenon)
  451.   - Knut Petter Svendsen        (Mephisto/     Xenon)
  452.   - Staale Singstad             (Cyberman/     Xenon)
  453.   - Michal Karpinski            (Mike X/       Xenon)
  454.   - Kurt-Inge Johansen
  455.   - Thomas Loevlie
  456.   - Kristian Loeseth            (Opossum/           )
  457.  
  458. [ 8 - The author/contacting ]
  459. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  460.  
  461. I'm 19 years old and live in Trondheim, Norway.
  462. Student at Trondheim School of Engineering.
  463. A.k.a. Ghoul / Xenon Development
  464.  
  465. If you have suggestions/questions/problems about Alab I cannot be
  466. reached due to military service, as stated above :(
  467.  
  468. What you should do, is send your requests to one of the addresses below:
  469. (Most preferred method is to send it to Haavard in one way or the other,
  470.  most preferably email, and the WWW page)
  471.  
  472.   Email    : hobbes@infolink.no
  473.                This is the email address to Haavard Engum, a.k.a.
  474.                Hobbes/Xenon Development. He will make sure I get all the
  475.                requests in time.
  476.  
  477.   WWW      : http://www.nano.no/~espeng/alab/
  478.              The coordinator of this page is Espen Grimsgaard, a.k.a.
  479.              twinny/gollum, and there you can find info about Alab and
  480.              you can send your suggestions/questions/problems there, and
  481.              he'll save them for me.
  482.  
  483.   BBS      : Bogus Boutique #1 +47-73964483 (Xenon Development WHQ) [BBBS]
  484.              Bogus Boutique #2 +47-73965209
  485.              Eldritch BBS      +47-72582079 (23:00-07:00)
  486.              InfoLink BBS      +47-22571600/22571604 (10 nodes)     [MBBS]
  487.  
  488.         NB!  Bogus Boutique is likely to go down soon...
  489.  
  490. Norwegians:
  491.   Det er en konferanse på nettet NDC (Norwegian Demo Connection) som
  492.   heter NDC.Alab. Dere kan poste alt om alab der til Haavard Engum. Han
  493.   kan også svare på en del sp¢rsmål dere måtte ha. (dere kan poste
  494.   meldingene public også, så kan f.eks. forslagene til nye ting
  495.   diskuteres e.l.)
  496.  
  497. You can always mail me at my home address, but it's nok likely I'll get
  498. your letter until 1-2 months.
  499.  
  500. Snailmail:
  501.  
  502. Author:                                 'Registration coordinator'
  503.   Kurt Inge Groenbech                      Haavard Engum
  504.   Sigrid Johansens veg 23                  Stokkanhaugen 164
  505.   7025 Trondheim                           7048 Trondheim
  506.   NORWAY                                   NORWAY
  507.  
  508. NB! Please (again) register if you like it! I have been kind not to put
  509. some shitty delays, shareware reminders or whatever in there (but some
  510. restrictions like the 4 window limit), and I would very much appreciate
  511. if you show your interest, so I can continue developing this program.
  512. (hrmpf... god, what a sentence ;)
  513.  
  514. Last minute notes:
  515. I know there's a lot of bad programming in there now. Ofcourse I would
  516. have rewritten big parts of it, but I have no time because of reasons
  517. in section 1.3.
  518. Well, hope you like it (sorry for the 64Kb limit;) !
  519.  
  520.                                               Yrs,
  521.                                               φ Kurt Inge Groenbech φ
  522. 
  523.  
  524.