Home » Archimedes archive » Archimedes World » AW-1994-06-Disc2.adf » Disk2Jun94 » !AWJune94/Goodies/Zap/!Zap/Docs/E-Library

!AWJune94/Goodies/Zap/!Zap/Docs/E-Library

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1994-06-Disc2.adf » Disk2Jun94
Filename: !AWJune94/Goodies/Zap/!Zap/Docs/E-Library
Read OK:
File size: 4FA3 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >E-Library
   20REM
   30REM Defines the variables needed for writing zap extension modes.
   40REM Call the procedure define_zap_variables to set variables up.
   50REM The procedure defines:
   60REM   f_*           The file block variables (see E-File)
   70REM   w_*           The window block variables (see E-Windows)
   80REM   c_*           The cursor block variables (see E-Cursors)
   90REM   e_*           The entry point variables (see E-Entry)
  100REM   r_*           The redraw block variables (see Redraw)
  110REM   Zap_*         The zap routines (see E-ZapCalls)
  120REM   f_shift       Log base 2 of file block size (vsn dependent)
  130REM   w_shift       Log base 2 of window block size
  140REM   file_blk      File block size    (these are version
  150REM   wind_blk      Window block size   dependent and for
  160REM   cusr_blk      Cursor block size   internal use only)
  170REM
  180REM Procedure names local to this library are:
  190REM  set_up_file_blk_vars
  200REM  set_up_wind_blk_vars
  210REM  set_up_cusr_blk_vars
  220REM  set_up_entry_vars
  230REM And the function FNlog
  240
  250DEF PROCdefine_zap_variables
  260LOCAL pass,P%,O%,L%,code%
  270DIM code% 2048
  280L%=code%+2048
  290PROCset_up_file_blk_vars
  300PROCset_up_wind_blk_vars
  310PROCset_up_cusr_blk_vars
  320PROCset_up_entry_vars
  330ENDPROC
  340
  350DEF PROCset_up_file_blk_vars
  360FOR pass=%1100 TO %1110 STEP 2:P%=0:O%=code%:[OPTpass
  370
  380\L File block variables
  390
  400.f_ptr              EQUD 0    \ pointer to file buffer / -1
  410.f_bufl             EQUD 0    \ length of file buffer
  420.f_len              EQUD 0    \ length of file
  430.f_name             EQUD 0    \ pointer to filename
  440.f_load             EQUD 0    \ load address of file
  450.f_exec             EQUD 0    \ exec address of file
  460.f_flags            EQUD 0    \ file flags
  470.f_uptr             EQUD 0    \ pointer to undo buffer
  480.f_ubufl            EQUD 0    \ length of undo buffer
  490.f_ulen             EQUD 0    \ length of data in undo buffer
  500.f_undo             EQUD 0    \ offset of main undo pointer
  510.f_undop            EQUD 0    \ offset of undo block sub-pointer
  520.f_res3             EQUD 0    \ reserved
  530.f_splito           EQUD 0    \ offset in file of start of split
  540.f_splite           EQUD 0    \ offset in buf of end of split
  550.f_splits           EQUD 0    \ size  of split=splite-splito
  560.f_mptr             EQUD 0    \ pointer to marker buffer
  570.f_mbufl            EQUD 0    \ length of marker buffer
  580.f_mlen             EQUD 0    \ length of data in marker buffer
  590.f_mark             EQUD 0    \ current offset in marker buffer
  600.f_docom            EQUD 0    \ current command being 'done'.
  610.f_source           EQUD 0    \ word for use of f_cmode mode
  620.f_dolen            EQUD 0    \ length of insertion/deletion
  630.f_dodata           EQUD 0    \ data to be inserted/replace with.
  640.f_altered          EQUD 0    \ first altered offset in file /-1
  650.f_shiftable        EQUD 0    \ first shiftable offset in file /-1
  660.f_change           EQUD 0    \ signed change of shiftable offset
  670.f_depth            EQUD 0    \ multiple operation depth / 0
  680.f_links            EQUD 0    \ v links to other files
  690.f_cmode            EQUD 0    \ mode which 'owns' file / -1
  700
  710\L
  720
  730]:NEXT
  740f_shift=FNlog(P%):file_blk=1<<f_shift
  750ENDPROC
  760
  770DEF PROCset_up_wind_blk_vars
  780FOR pass=%1100 TO %1110 STEP 2:P%=0:O%=code%:[OPTpass
  790
  800\L Window block variables
  810
  820.w_handle           EQUD 0    \ window handle / -1 if deleted
  830.w_minx             EQUD 0    \ min scn x
  840.w_miny             EQUD 0    \ min scn y
  850.w_maxx             EQUD 0    \ max scn x
  860.w_maxy             EQUD 0    \ max scn y
  870.w_scrollx          EQUD 0    \ x scroll
  880.w_scrolly          EQUD 0    \ y scroll
  890.w_infront          EQUD 0    \ window handle of window in front
  900.w_windowflags      EQUD 0    \ wimp window flags
  910.w_file             EQUD 0    \ offset of file showing
  920.w_format           EQUD 0    \ display format
  930.w_width            EQUD 0    \ width of work area in chars
  940.w_height           EQUD 0    \ height of work area in chars
  950.w_txt              EQUD 0    \ pointer to cached text buffer
  960.w_txth             EQUD 0    \ height of cached txt buf in lines
  970.w_txtw             EQUD 0    \ char width of cached line (mult 8)
  980.w_txtn             EQUD 0    \ number of lines cached
  990.w_coff             EQUD 0    \ off in text of first cached line
 1000.w_cline            EQUD 0    \ line number of first cached line
 1010.w_clogl            EQUD 0    \ log line num of first cached line
 1020.w_tab              EQUD 0    \ coltab width
 1030.w_tabc             EQUD 0    \ actual tab character code (x4)
 1040.w_cr               EQUD 0    \ code of return/line feed
 1050.w_flags            EQUD 0    \ (my) window flags
 1060.w_title            EQUD 0    \ pointer to window title buffer
 1070.w_bpl              EQUD 0    \ bytes per line / width of text
 1080.w_margin           EQUD 0    \ width of margin (inc line nos)
 1090.w_rl               EQUD 0    \ height in lines of each character
 1100.w_rw               EQUD 0    \ width in pixels of each character
 1110.w_rh               EQUD 0    \ text height in pixels (no spacing)
 1120.w_addr             EQUD 0    \ address of first byte in display
 1130.w_stline           EQUD 0    \ line number of first line in disp
 1140.w_titlelen         EQUD 0    \ title length (excluding 0)
 1150.w_titbuf           EQUD 0    \ address of title showing buffer
 1160.w_titlen           EQUD 0    \ length of title showing string
 1170.w_mwidth           EQUD 0    \ user required margin width
 1180.w_tabchar          EQUD 0    \ user required tab char code (x4)
 1190.w_linesp           EQUD 0    \ user required line spacing
 1200.w_savedo           EQUD 0    \ fixed off / fixed line off before
 1210.w_savedl           EQUD 0    \ pixs from top / phy line of off
 1220.w_savedc           EQUD 0    \ change in phy line for shiftable
 1230.w_savedh           EQUD 0    \ w_height at multiop start
 1240.w_savedlc          EQUD 0    \ phy line of fixed for one op
 1250.w_wrapwidth        EQUD 0    \ wordwrap width
 1260.w_togminx          EQUD 0    \ toggle size min x
 1270.w_togminy          EQUD 0    \ toggle size min y
 1280.w_togmaxx          EQUD 0    \ toggle size max x
 1290.w_togmaxy          EQUD 0    \ toggle size max y
 1300.w_txtlen           EQUD 0    \ size of cache line inc col masks
 1310.w_palette          EQUD 0    \ current palette data
 1311.w_pwind            EQUD 0    \ point (=this!) window offset
 1320.w_pline            EQUD 0    \ point row (y coord)
 1330.w_pcol             EQUD 0    \ point column (x coord)
 1340.w_poff             EQUD 0    \ point offset
 1350.w_ploff            EQUD 0    \ point line offset
 1360.w_pwidth           EQUD 0    \ point width
 1380.w_saveds           EQUD 0    \ start of area to redraw offset
 1390.w_modedata         EQUD 0    \ zap handled mode data block
 1400.w_res10            EQUD 0    \ reserved word 10
 1410.w_res11            EQUD 0    \ reserved word 11
 1420.w_res12            EQUD 0    \ reserved word 12
 1430.w_res13            EQUD 0    \ reserved word 13
 1440.w_res14            EQUD 0    \ reserved word 14
 1450.w_res15            EQUD 0    \ reserved word 15
 1460.w_res16            EQUD 0    \ reserved word 16
 1470.w_mode0            EQUD 0    \ user required text line width
 1480.w_mode1            EQUD 0    \ user required byte line width
 1490.w_mode2            EQUD 0    \ user required word line width
 1500.w_mode3            EQUD 0    \ user required ascii line width
 1510.w_mode4            EQUD 0    \ user required code line width
 1520.w_mode5            EQUD 0
 1530.w_mode6            EQUD 0
 1540.w_mode7            EQUD 0
 1550.w_mode8            EQUD 0
 1560.w_mode9            EQUD 0
 1570.w_mode10           EQUD 0
 1580.w_mode11           EQUD 0
 1590.w_mode12           EQUD 0
 1600.w_mode13           EQUD 0
 1610.w_mode14           EQUD 0
 1620.w_mode15           EQUD 0    \ user required status mode 15
 1631.w_end_mark
 1640
 1650\L
 1660
 1670]:NEXT
 1680w_shift=FNlog(P%):wind_blk=1<<w_shift
 1690ENDPROC
 1700
 1710DEF PROCset_up_cusr_blk_vars
 1720FOR pass=%1100 TO %1110 STEP 2:P%=0:O%=code%:[OPTpass
 1730
 1740\L Cursor block variables
 1750
 1760.c_wind             EQUD 0    \ offset of window with this caret
 1770.c_line             EQUD 0    \ line of caret in work area
 1780.c_col              EQUD 0    \ column of caret in work area
 1790.c_off              EQUD 0    \ offset of caret in text
 1800.c_loff             EQUD 0    \ start of line offset
 1810.c_width            EQUD 0    \ width of cursor in chars
 1820.c_owind            EQUD 0    \ old window / -1 if none
 1830.c_oline            EQUD 0    \ old plotted line
 1840.c_ocol             EQUD 0    \ old plotted col
 1850.c_owidth           EQUD 0    \ old width / offset for selected regions
 1860
 1870\L
 1880
 1890]:NEXT
 1900cusr_blk=P%
 1910ENDPROC
 1920
 1930DEF PROCset_up_entry_vars
 1940FOR pass=%1100 TO %1110 STEP 2:P%=0:O%=code%:[OPTpass
 1950
 1960\L Entry block vars
 1970
 1980.e_module           EQUD 0    \ table offset from module start
 1990.e_title            EQUD 0    \ title offset (max 10)
 2000.e_author           EQUD 0    \ author offset
 2010.e_basemode         EQUD 0    \ mode to call for 0 offsets
 2020.e_mode             EQUD 0    \ mode you would like to be
 2030.e_init             EQUD 0    \ startup code
 2040.e_menu             EQUD 0    \ extension menu
 2050.e_len              EQUD 0    \ length of this table
 2060.e_postload         EQUD 0    \ called after being loaded/created
 2070.e_presave          EQUD 0    \ called before being saved
 2080.e_loading          EQUD 0    \ file being loaded/created
 2090.e_start            EQUD 0    \ window entering this mode
 2100.e_end              EQUD 0    \ window leaving this mode
 2110.e_width            EQUD 0    \ find work area width
 2120.e_linecol          EQUD 0    \ column offset to file offset
 2130.e_lineoff          EQUD 0    \ file offset to column offset
 2140.e_clnlog           EQUD 0    \ log to file off
 2150.e_clnphy           EQUD 0    \ phy to file off
 2160.e_clnoff           EQUD 0    \ file off to phy/log
 2170.e_nextline         EQUD 0    \ find next line which can be shifted down
 2180.e_minus            EQUD 0    \ perform cursor left
 2190.e_plus             EQUD 0    \ perform cursor right
 2200.e_sminus           EQUD 0    \ perform shift left
 2210.e_splus            EQUD 0    \ perform shift right
 2220.e_cminus           EQUD 0    \ perform ctrl minus
 2230.e_cplus            EQUD 0    \ perform ctrl plus
 2240.e_redrawline       EQUD 0    \ redraw a line of the display
 2250.e_redrawlnum       EQUD 0    \ find logical line number
 2260.e_char             EQUD 0    \ insert characters as if typed
 2270.e_delete           EQUD 0    \ delete characters from text
 2280.e_tab              EQUD 0    \ tab key pressed
 2290.e_return           EQUD 0    \ return key pressed
 2300.e_renumber         EQUD 0    \ please renumber
 2310.e_saveandrun       EQUD 0    \ save file and run/compile
 2320.e_linestart        EQUD 0    \ find start of line
 2330.e_lineend          EQUD 0    \ find end of line
 2340.e_linenext         EQUD 0    \ find actual end of line
 2350.e_lineprev         EQUD 0    \ find actual start of line
 2360.e_copy             EQUD 0    \ copy key data
 2370.e_joinline         EQUD 0    \ join this line with the next
 2380.e_splitline        EQUD 0    \ split this line at the cursor
 2390.e_aligncaret       EQUD 0    \ put caret in sensible posn before command
 2400.e_command          EQUD 0    \ someone wants to alter the text
 2410.e_compile          EQUD 0    \ compile / run and don't exit
 2420.e_formattext       EQUD 0    \ format the text from this point
 2430.e_run              EQUD 0    \ run the program being edited
 2440.e_runandquit       EQUD 0    \ as above but then quits
 2450.e_basic            EQUD 0    \ drops into basic (or language)
 2460.e_search           EQUD 0    \ called before a search
 2470.e_replace          EQUD 0    \ replace a string
 2480.e_selection        EQUD 0    \ start/end a selection
 2490.e_click            EQUD 0    \ double/treble click etc
 2500.e_message          EQUD 0    \ unrecognised wimp messages
 2510.e_setwidth         EQUD 0    \ changing window width
 2520.e_listfns          EQUD 0    \ provide list of functions
 2521.e_prevline         EQUD 0    \ find start of update region
 2530
 2540\L
 2550
 2560]:NEXT
 2570FOR pass=%1100 TO %1110 STEP 2:P%=0:O%=code%:[OPTpass
 2580
 2590\L zap entry point offsets
 2600
 2610.Zap_AddMode        EQUD 0    \ add new mode to zap
 2620.Zap_Claim          EQUD 0    \ claim heap block
 2630.Zap_Ensure         EQUD 0    \ ensure heap block
 2640.Zap_Free           EQUD 0    \ free heap block
 2650.Zap_MoveBytes      EQUD 0    \ move data
 2660.Zap_SplitBuffer    EQUD 0    \ split text buffer at given point
 2670.Zap_NewTxtStatus   EQUD 0    \ refresh screen after file changed
 2680.Zap_SaveTxtStatus  EQUD 0    \ save info before file changed
 2690.Zap_Command        EQUD 0    \ execute insert/delete command
 2700.Zap_NewWinStatus   EQUD 0    \ recreate window after change
 2710.Zap_SaveWinStatus  EQUD 0    \ save window status before change
 2720.Zap_ReplaceArea    EQUD 0    \ replace one string by another
 2730.Zap_PlotCaret      EQUD 0    \ plot caret at given position
 2740.Zap_ReflectCaret   EQUD 0    \ plot caret at posn only using c_off
 2750.Zap_SetCaret       EQUD 0    \ draw caret
 2760.Zap_ClearCaret     EQUD 0    \ draw old caret position (remove caret)
 2770.Zap_DoCommand      EQUD 0    \ perform the command
 2780.Zap_ShowCursor     EQUD 0    \ make sure given cursor is visible
 2790.Zap_ReadVar        EQUD 0    \ read a zap variable
 2800.Zap_WriteVar       EQUD 0    \ write a zap variable
 2810.Zap_SaveFile       EQUD 0    \ save a file to disc
 2820.Zap_FillWords      EQUD 0    \ fill a given area of memory
 2830.Zap_UpdateLns      EQUD 0    \ update line numbers column
 2840.Zap_EachWindow     EQUD 0    \ call sub for each window on file
 2850.Zap_UpdateCaret    EQUD 0    \ updates caret posn from offset
 2860.Zap_GetWindState   EQUD 0    \ update R8 block with wind posn
 2870.Zap_StartOp        EQUD 0    \ start multiop
 2880.Zap_StopOp         EQUD 0    \ stop multiop
 2890.Zap_CallMode       EQUD 0    \ call a mode entry point using R8
 2900.Zap_CallGivenMode  EQUD 0    \ call mode in R10
 2910.Zap_ReadMode       EQUD 0    \ read info on a mode
 2920.Zap_FindFile       EQUD 0    \ find window on a given file name
 2930.Zap_FindWindow     EQUD 0    \ find window on a loaded file
 2940.Zap_ConvWindOff    EQUD 0    \ convert window off to blk ptr
 2950.Zap_ConvFileOff    EQUD 0    \ convert file off to blk ptr
 2960.Zap_GetWindOff     EQUD 0    \ convert window blk ptr to off
 2970.Zap_GetFileOff     EQUD 0    \ convert file blk ptr to off
 2980.Zap_GotoOffset     EQUD 0    \ move cursor to given posn + mark
 2990.Zap_JumptoOffset   EQUD 0    \ move cursor to given posn nomark
 3000.Zap_FindOffset     EQUD 0    \ find file offset from x,y coord
 3010.Zap_NewFileTitle   EQUD 0    \ update titlebars on a file
 3020.Zap_InsertString   EQUD 0    \ insert string into file
 3030.Zap_CreateFile     EQUD 0    \ create an empty file
 3040.Zap_NewLinkEntry   EQUD 0    \ add an entry to the links table
 3050.Zap_DefaultClick   EQUD 0    \ default mouse click handling
 3060.Zap_PutCaret       EQUD 0    \ put new caret in file
 3070.Zap_DiscardFile    EQUD 0    \ kill file
 3080.Zap_DeleteFile     EQUD 0    \ propmt then kill
 3090.Zap_DiscardWindow  EQUD 0    \ kill window
 3100.Zap_DeleteWindow   EQUD 0    \ prompt then kill window
 3110.Zap_BuildMenu      EQUD 0    \ create a variable length menu
 3120.Zap_ClearSel       EQUD 0    \ clear selected area
 3130.Zap_CreateFileBlk  EQUD 0    \ create a new file block in R9
 3140.Zap_CreateWindBlk  EQUD 0    \ create a new window block in R8
 3150.Zap_GetSel         EQUD 0    \ get info on selected region
 3160.Zap_InsertMark     EQUD 0    \ insert marker at given offset
 3170.Zap_InstallFile    EQUD 0    \ load a file into Zap
 3180.Zap_NewMode        EQUD 0    \ change mode of a file
 3190.Zap_NewTitle       EQUD 0    \ update the title of a window
 3200.Zap_CallBaseMode   EQUD 0    \ call base mode entry point
 3210.Zap_NewView        EQUD 0    \ open a new window on a file
 3220.Zap_ReadSel        EQUD 0    \ read the selected region
 3230.Zap_Replace        EQUD 0    \ perform a search and replace
 3240.Zap_Search         EQUD 0    \ perform a file search
 3250.Zap_Select         EQUD 0    \ select a region
 3260.Zap_AlterSel       EQUD 0    \ alter selected region
 3270.Zap_OffLineCol     EQUD 0    \ convert file offset to X,Y
 3280.Zap_AddCommands    EQUD 0    \ add a command table
 3290.Zap_MiniWrite      EQUD 0    \ insert chars in minibuffer
 3300.Zap_MiniPrompt     EQUD 0    \ set/change the minibuffer prompt
 3310.Zap_MiniUpdate     EQUD 0    \ update minibuffer on screen
 3320.Zap_AddYankRegion  EQUD 0    \ add a region to kill ring
 3330.Zap_FindCommand    EQUD 0    \ convert command name to address
 3340.Zap_ProcessCommand EQUD 0    \ call a Zap command
 3350.Zap_FindKeyEntry   EQUD 0    \ read a keymap entry
 3360.Zap_FindLeafName   EQUD 0    \ find leaf part of a filename
 3370.Zap_NewFileName    EQUD 0    \ change the name of a file
 3380.Zap_CheckFileName  EQUD 0    \ see if file contains a path
 3390.Zap_GetCurrDir     EQUD 0    \ find the current directory name
 3400.Zap_MiniWriteC     EQUD 0    \ write a character to minibuffer
 3410.Zap_MiniClear      EQUD 0    \ clear minibuffer
 3420.Zap_MiniStart      EQUD 0    \ start up a new minibuffer
 3430.Zap_MiniEval       EQUD 0    \ turn string into number
 3440.Zap_CommandString  EQUD 0    \ execute a string command
 3450.Zap_ProcessKeys    EQUD 0    \ process a list of keys
 3460.Zap_ProcessAKey    EQUD 0    \ process a single key as if typed
 3470.Zap_OpenWindow     EQUD 0    \ open a Zap window
 3480.Zap_RestoreModeWord EQUD 0   \ restore mode options on e_start
 3490.Zap_SaveModeWord   EQUD 0    \ save mode options on e_end
 3500.Zap_GetModeWord    EQUD 0    \ read the mode word
 3510.Zap_PutModeWord    EQUD 0    \ write the mode word
 3520.Zap_BaseMode       EQUD 0    \ call the base mode
 3530.Zap_ReadWord       EQUD 0    \ read a word from the file buffer
 3540.Zap_ReplaceWord    EQUD 0    \ replace a word in the file buffer
 3541.Zap_ModeColour     EQUD 0    \ Read colour definitions
 3542.Zap_FindInput      EQUD 0    \ Find input position
 3543.Zap_ClipCache      EQUD 0    \ Move the cache reference point.
 3544.Zap_ModeData       EQUD 0    \ Read/write Zap data mode words.
 3545.Zap_WhichMode      EQUD 0    \ Which mode to load a file into.
 3546.Zap_ModeNumber     EQUD 0    \ Convert mode name to number.
 3547.Zap_SendDataSave   EQUD 0    \ Initiate data transfer protocol.
 3548.Zap_Warning        EQUD 0    \ Show warning message.
 3549.Zap_AllWindow      EQUD 0    \ Examine each window in turn.
 3550
 3560\L
 3570
 3580]:NEXT
 3590FOR pass=%1100 TO %1110 STEP 2:P%=0:O%=code%:[OPTpass
 3600
 3610\L zap redraw offsets
 3620
 3630.r_flags            EQUD 0    \ Redraw flags
 3640.r_minx             EQUD 0    \ min x in pixs inc
 3650.r_miny             EQUD 0    \ min y in pixs inc (from top)
 3660.r_maxx             EQUD 0    \ max x in pixs exc
 3670.r_maxy             EQUD 0    \ max y in pixs exc (from top)
 3680.r_screen           EQUD 0    \ address of the screen
 3690.r_bpl              EQUD 0    \ bytes per raster line
 3700.r_bpp              EQUD 0    \ log base 2 of bpp
 3710.r_charw            EQUD 0    \ width of a character in pixs
 3720.r_charh            EQUD 0    \ height of a character in pixs
 3730.r_caddr            EQUD 0    \ cache address / font name
 3740.r_cbpl             EQUD 0    \ bytes per cached line
 3750.r_cbpc             EQUD 0    \ bytes per cached character
 3760.r_linesp           EQUD 0    \ line spacing in pixels
 3770.r_data             EQUD 0    \ address of data to print
 3780.r_scrollx          EQUD 0    \ x scroll offset in pixs
 3790.r_scrolly          EQUD 0    \ y scroll offset in pixs
 3800.r_palette          EQUD 0    \ address of palette data
 3810.r_for              EQUD 0    \ start forground colour
 3820.r_bac              EQUD 0    \ start background colour
 3830.r_workarea         EQUD 0    \ address of work area
 3831.r_magx             EQUD 0    \ log 2 of num of x os per pixel
 3832.r_magy             EQUD 0    \ log 2 of num of y os per pixel
 3833.r_xsize            EQUD 0    \ screen width in pixels
 3834.r_ysize            EQUD 0    \ screen height in pixels
 3835.r_mode             EQUD 0    \ screen mode
 3840
 3850\L
 3860
 3870]:NEXT
 3880ENDPROC
 3890
 3900DEF FNlog(f%)
 3910LOCAL s%,x%
 3920s%=-1:x%=f%
 3930REPEAT:x%=x%>>1:s%+=1:UNTIL x%=0
 3940IF (1<<s%)<f% THEN s%+=1
 3950=s%
 3960
 3970DEF FNreserve_bytes(x%):w%=O%-code%:P%=P%+x%:O%=O%+x%
 3971[OPTpass:ALIGN:]:=w%

� >E-Library
�
C� Defines the variables needed for writing zap extension modes.
(B� Call the procedure define_zap_variables to set variables up.
2� The procedure defines:
<;�   f_*           The file block variables (see E-File)
F@�   w_*           The window block variables (see E-Windows)
P@�   c_*           The cursor block variables (see E-Cursors)
Z=�   e_*           The entry point variables (see E-Entry)
d=�   r_*           The redraw block variables (see Redraw)
n7�   Zap_*         The zap routines (see E-ZapCalls)
xC�   f_shift       Log base 2 of file block size (vsn dependent)
�5�   w_shift       Log base 2 of window block size
�;�   file_blk      File block size    (these are version
�;�   wind_blk      Window block size   dependent and for
�<�   cusr_blk      Cursor block size   internal use only)
��
�0� Procedure names local to this library are:
��  set_up_file_blk_vars
��  set_up_wind_blk_vars
��  set_up_cusr_blk_vars
��  set_up_entry_vars
�� And the function FNlog
�
�� �define_zap_variables
� pass,P%,O%,L%,code%
� code% 2048
L%=code%+2048
"�set_up_file_blk_vars
,�set_up_wind_blk_vars
6�set_up_cusr_blk_vars
@�set_up_entry_vars
J�
T
^� �set_up_file_blk_vars
h3� pass=%1100 � %1110 � 2:P%=0:O%=code%:[OPTpass
r
|\L File block variables
�
�?.f_ptr              EQUD 0    \ pointer to file buffer / -1
�9.f_bufl             EQUD 0    \ length of file buffer
�2.f_len              EQUD 0    \ length of file
�7.f_name             EQUD 0    \ pointer to filename
�8.f_load             EQUD 0    \ load address of file
�8.f_exec             EQUD 0    \ exec address of file
�..f_flags            EQUD 0    \ file flags
�:.f_uptr             EQUD 0    \ pointer to undo buffer
�9.f_ubufl            EQUD 0    \ length of undo buffer
�A.f_ulen             EQUD 0    \ length of data in undo buffer
�?.f_undo             EQUD 0    \ offset of main undo pointer
�D.f_undop            EQUD 0    \ offset of undo block sub-pointer
,.f_res3             EQUD 0    \ reserved
D.f_splito           EQUD 0    \ offset in file of start of split
A.f_splite           EQUD 0    \ offset in buf of end of split
&@.f_splits           EQUD 0    \ size  of split=splite-splito
0<.f_mptr             EQUD 0    \ pointer to marker buffer
:;.f_mbufl            EQUD 0    \ length of marker buffer
DC.f_mlen             EQUD 0    \ length of data in marker buffer
NC.f_mark             EQUD 0    \ current offset in marker buffer
XA.f_docom            EQUD 0    \ current command being 'done'.
b@.f_source           EQUD 0    \ word for use of f_cmode mode
l@.f_dolen            EQUD 0    \ length of insertion/deletion
vE.f_dodata           EQUD 0    \ data to be inserted/replace with.
�D.f_altered          EQUD 0    \ first altered offset in file /-1
�F.f_shiftable        EQUD 0    \ first shiftable offset in file /-1
�E.f_change           EQUD 0    \ signed change of shiftable offset
�@.f_depth            EQUD 0    \ multiple operation depth / 0
�:.f_links            EQUD 0    \ v links to other files
�?.f_cmode            EQUD 0    \ mode which 'owns' file / -1
�
�\L
�
�]:�
�(f_shift=�log(P%):file_blk=1<<f_shift
��
�
� �set_up_wind_blk_vars
3� pass=%1100 � %1110 � 2:P%=0:O%=code%:[OPTpass

 \L Window block variables
*
4A.w_handle           EQUD 0    \ window handle / -1 if deleted
>-.w_minx             EQUD 0    \ min scn x
H-.w_miny             EQUD 0    \ min scn y
R-.w_maxx             EQUD 0    \ max scn x
\-.w_maxy             EQUD 0    \ max scn y
f,.w_scrollx          EQUD 0    \ x scroll
p,.w_scrolly          EQUD 0    \ y scroll
zD.w_infront          EQUD 0    \ window handle of window in front
�5.w_windowflags      EQUD 0    \ wimp window flags
�:.w_file             EQUD 0    \ offset of file showing
�2.w_format           EQUD 0    \ display format
�?.w_width            EQUD 0    \ width of work area in chars
�@.w_height           EQUD 0    \ height of work area in chars
�A.w_txt              EQUD 0    \ pointer to cached text buffer
�E.w_txth             EQUD 0    \ height of cached txt buf in lines
�F.w_txtw             EQUD 0    \ char width of cached line (mult 8)
�:.w_txtn             EQUD 0    \ number of lines cached
�D.w_coff             EQUD 0    \ off in text of first cached line
�D.w_cline            EQUD 0    \ line number of first cached line
�E.w_clogl            EQUD 0    \ log line num of first cached line
�0.w_tab              EQUD 0    \ coltab width
B.w_tabc             EQUD 0    \ actual tab character code (x4)
<.w_cr               EQUD 0    \ code of return/line feed
5.w_flags            EQUD 0    \ (my) window flags
$B.w_title            EQUD 0    \ pointer to window title buffer
.B.w_bpl              EQUD 0    \ bytes per line / width of text
8B.w_margin           EQUD 0    \ width of margin (inc line nos)
BE.w_rl               EQUD 0    \ height in lines of each character
LE.w_rw               EQUD 0    \ width in pixels of each character
VF.w_rh               EQUD 0    \ text height in pixels (no spacing)
`D.w_addr             EQUD 0    \ address of first byte in display
jE.w_stline           EQUD 0    \ line number of first line in disp
t>.w_titlelen         EQUD 0    \ title length (excluding 0)
~C.w_titbuf           EQUD 0    \ address of title showing buffer
�B.w_titlen           EQUD 0    \ length of title showing string
�>.w_mwidth           EQUD 0    \ user required margin width
�D.w_tabchar          EQUD 0    \ user required tab char code (x4)
�>.w_linesp           EQUD 0    \ user required line spacing
�E.w_savedo           EQUD 0    \ fixed off / fixed line off before
�C.w_savedl           EQUD 0    \ pixs from top / phy line of off
�D.w_savedc           EQUD 0    \ change in phy line for shiftable
�=.w_savedh           EQUD 0    \ w_height at multiop start
�@.w_savedlc          EQUD 0    \ phy line of fixed for one op
�2.w_wrapwidth        EQUD 0    \ wordwrap width
�5.w_togminx          EQUD 0    \ toggle size min x
�5.w_togminy          EQUD 0    \ toggle size min y
5.w_togmaxx          EQUD 0    \ toggle size max x

5.w_togmaxy          EQUD 0    \ toggle size max y
D.w_txtlen           EQUD 0    \ size of cache line inc col masks
8.w_palette          EQUD 0    \ current palette data
@.w_pwind            EQUD 0    \ point (=this!) window offset
(7.w_pline            EQUD 0    \ point row (y coord)
2:.w_pcol             EQUD 0    \ point column (x coord)
<0.w_poff             EQUD 0    \ point offset
F5.w_ploff            EQUD 0    \ point line offset
P/.w_pwidth           EQUD 0    \ point width
dB.w_saveds           EQUD 0    \ start of area to redraw offset
n?.w_modedata         EQUD 0    \ zap handled mode data block
x4.w_res10            EQUD 0    \ reserved word 10
�4.w_res11            EQUD 0    \ reserved word 11
�4.w_res12            EQUD 0    \ reserved word 12
�4.w_res13            EQUD 0    \ reserved word 13
�4.w_res14            EQUD 0    \ reserved word 14
�4.w_res15            EQUD 0    \ reserved word 15
�4.w_res16            EQUD 0    \ reserved word 16
�A.w_mode0            EQUD 0    \ user required text line width
�A.w_mode1            EQUD 0    \ user required byte line width
�A.w_mode2            EQUD 0    \ user required word line width
�B.w_mode3            EQUD 0    \ user required ascii line width
�A.w_mode4            EQUD 0    \ user required code line width
�.w_mode5            EQUD 0
�.w_mode6            EQUD 0
.w_mode7            EQUD 0
.w_mode8            EQUD 0
.w_mode9            EQUD 0
".w_mode10           EQUD 0
,.w_mode11           EQUD 0
6.w_mode12           EQUD 0
@.w_mode13           EQUD 0
J.w_mode14           EQUD 0
T@.w_mode15           EQUD 0    \ user required status mode 15
_.w_end_mark
h
r\L
|
�]:�
�(w_shift=�log(P%):wind_blk=1<<w_shift
��
�
�� �set_up_cusr_blk_vars
�3� pass=%1100 � %1110 � 2:P%=0:O%=code%:[OPTpass
�
�\L Cursor block variables
�
�D.c_wind             EQUD 0    \ offset of window with this caret
�>.c_line             EQUD 0    \ line of caret in work area
�@.c_col              EQUD 0    \ column of caret in work area
�;.c_off              EQUD 0    \ offset of caret in text
8.c_loff             EQUD 0    \ start of line offset
<.c_width            EQUD 0    \ width of cursor in chars
;.c_owind            EQUD 0    \ old window / -1 if none
&4.c_oline            EQUD 0    \ old plotted line
03.c_ocol             EQUD 0    \ old plotted col
:K.c_owidth           EQUD 0    \ old width / offset for selected regions
D
N\L
X
b]:�
lcusr_blk=P%
v�
�
�� �set_up_entry_vars
�3� pass=%1100 � %1110 � 2:P%=0:O%=code%:[OPTpass
�
�\L Entry block vars
�
�B.e_module           EQUD 0    \ table offset from module start
�9.e_title            EQUD 0    \ title offset (max 10)
�1.e_author           EQUD 0    \ author offset
�>.e_basemode         EQUD 0    \ mode to call for 0 offsets
�=.e_mode             EQUD 0    \ mode you would like to be
�0.e_init             EQUD 0    \ startup code
�2.e_menu             EQUD 0    \ extension menu
8.e_len              EQUD 0    \ length of this table
E.e_postload         EQUD 0    \ called after being loaded/created
=.e_presave          EQUD 0    \ called before being saved
 =.e_loading          EQUD 0    \ file being loaded/created
*=.e_start            EQUD 0    \ window entering this mode
4<.e_end              EQUD 0    \ window leaving this mode
>8.e_width            EQUD 0    \ find work area width
H@.e_linecol          EQUD 0    \ column offset to file offset
R@.e_lineoff          EQUD 0    \ file offset to column offset
\3.e_clnlog           EQUD 0    \ log to file off
f3.e_clnphy           EQUD 0    \ phy to file off
p7.e_clnoff           EQUD 0    \ file off to phy/log
zL.e_nextline         EQUD 0    \ find next line which can be shifted down
�7.e_minus            EQUD 0    \ perform cursor left
�8.e_plus             EQUD 0    \ perform cursor right
�6.e_sminus           EQUD 0    \ perform shift left
�7.e_splus            EQUD 0    \ perform shift right
�6.e_cminus           EQUD 0    \ perform ctrl minus
�5.e_cplus            EQUD 0    \ perform ctrl plus
�@.e_redrawline       EQUD 0    \ redraw a line of the display
�<.e_redrawlnum       EQUD 0    \ find logical line number
�A.e_char             EQUD 0    \ insert characters as if typed
�?.e_delete           EQUD 0    \ delete characters from text
�3.e_tab              EQUD 0    \ tab key pressed
�6.e_return           EQUD 0    \ return key pressed
�3.e_renumber         EQUD 0    \ please renumber
	=.e_saveandrun       EQUD 0    \ save file and run/compile
	6.e_linestart        EQUD 0    \ find start of line
	4.e_lineend          EQUD 0    \ find end of line
	$;.e_linenext         EQUD 0    \ find actual end of line
	.=.e_lineprev         EQUD 0    \ find actual start of line
	81.e_copy             EQUD 0    \ copy key data
	B@.e_joinline         EQUD 0    \ join this line with the next
	LA.e_splitline        EQUD 0    \ split this line at the cursor
	VM.e_aligncaret       EQUD 0    \ put caret in sensible posn before command
	`C.e_command          EQUD 0    \ someone wants to alter the text
	j@.e_compile          EQUD 0    \ compile / run and don't exit
	tC.e_formattext       EQUD 0    \ format the text from this point
	~@.e_run              EQUD 0    \ run the program being edited
	�;.e_runandquit       EQUD 0    \ as above but then quits
	�B.e_basic            EQUD 0    \ drops into basic (or language)
	�:.e_search           EQUD 0    \ called before a search
	�4.e_replace          EQUD 0    \ replace a string
	�9.e_selection        EQUD 0    \ start/end a selection
	�;.e_click            EQUD 0    \ double/treble click etc
	�>.e_message          EQUD 0    \ unrecognised wimp messages
	�9.e_setwidth         EQUD 0    \ changing window width
	�=.e_listfns          EQUD 0    \ provide list of functions
	�?.e_prevline         EQUD 0    \ find start of update region
	�
	�\L
	�
]:�

3� pass=%1100 � %1110 � 2:P%=0:O%=code%:[OPTpass

\L zap entry point offsets
(
27.Zap_AddMode        EQUD 0    \ add new mode to zap
<4.Zap_Claim          EQUD 0    \ claim heap block
F5.Zap_Ensure         EQUD 0    \ ensure heap block
P3.Zap_Free           EQUD 0    \ free heap block
Z-.Zap_MoveBytes      EQUD 0    \ move data
dD.Zap_SplitBuffer    EQUD 0    \ split text buffer at given point
nE.Zap_NewTxtStatus   EQUD 0    \ refresh screen after file changed
xA.Zap_SaveTxtStatus  EQUD 0    \ save info before file changed
�A.Zap_Command        EQUD 0    \ execute insert/delete command
�@.Zap_NewWinStatus   EQUD 0    \ recreate window after change
�D.Zap_SaveWinStatus  EQUD 0    \ save window status before change
�A.Zap_ReplaceArea    EQUD 0    \ replace one string by another
�@.Zap_PlotCaret      EQUD 0    \ plot caret at given position
�G.Zap_ReflectCaret   EQUD 0    \ plot caret at posn only using c_off
�..Zap_SetCaret       EQUD 0    \ draw caret
�J.Zap_ClearCaret     EQUD 0    \ draw old caret position (remove caret)
�7.Zap_DoCommand      EQUD 0    \ perform the command
�E.Zap_ShowCursor     EQUD 0    \ make sure given cursor is visible
�7.Zap_ReadVar        EQUD 0    \ read a zap variable
�8.Zap_WriteVar       EQUD 0    \ write a zap variable
�7.Zap_SaveFile       EQUD 0    \ save a file to disc
?.Zap_FillWords      EQUD 0    \ fill a given area of memory
>.Zap_UpdateLns      EQUD 0    \ update line numbers column
D.Zap_EachWindow     EQUD 0    \ call sub for each window on file
"B.Zap_UpdateCaret    EQUD 0    \ updates caret posn from offset
,B.Zap_GetWindState   EQUD 0    \ update R8 block with wind posn
61.Zap_StartOp        EQUD 0    \ start multiop
@0.Zap_StopOp         EQUD 0    \ stop multiop
JD.Zap_CallMode       EQUD 0    \ call a mode entry point using R8
T4.Zap_CallGivenMode  EQUD 0    \ call mode in R10
^7.Zap_ReadMode       EQUD 0    \ read info on a mode
hD.Zap_FindFile       EQUD 0    \ find window on a given file name
r@.Zap_FindWindow     EQUD 0    \ find window on a loaded file
|A.Zap_ConvWindOff    EQUD 0    \ convert window off to blk ptr
�?.Zap_ConvFileOff    EQUD 0    \ convert file off to blk ptr
�A.Zap_GetWindOff     EQUD 0    \ convert window blk ptr to off
�?.Zap_GetFileOff     EQUD 0    \ convert file blk ptr to off
�D.Zap_GotoOffset     EQUD 0    \ move cursor to given posn + mark
�D.Zap_JumptoOffset   EQUD 0    \ move cursor to given posn nomark
�C.Zap_FindOffset     EQUD 0    \ find file offset from x,y coord
�>.Zap_NewFileTitle   EQUD 0    \ update titlebars on a file
�;.Zap_InsertString   EQUD 0    \ insert string into file
�8.Zap_CreateFile     EQUD 0    \ create an empty file
�C.Zap_NewLinkEntry   EQUD 0    \ add an entry to the links table
�@.Zap_DefaultClick   EQUD 0    \ default mouse click handling
�9.Zap_PutCaret       EQUD 0    \ put new caret in file
�-.Zap_DiscardFile    EQUD 0    \ kill file
4.Zap_DeleteFile     EQUD 0    \ propmt then kill
/.Zap_DiscardWindow  EQUD 0    \ kill window
;.Zap_DeleteWindow   EQUD 0    \ prompt then kill window
&A.Zap_BuildMenu      EQUD 0    \ create a variable length menu
07.Zap_ClearSel       EQUD 0    \ clear selected area
:A.Zap_CreateFileBlk  EQUD 0    \ create a new file block in R9
DC.Zap_CreateWindBlk  EQUD 0    \ create a new window block in R8
N?.Zap_GetSel         EQUD 0    \ get info on selected region
XA.Zap_InsertMark     EQUD 0    \ insert marker at given offset
b8.Zap_InstallFile    EQUD 0    \ load a file into Zap
l9.Zap_NewMode        EQUD 0    \ change mode of a file
v@.Zap_NewTitle       EQUD 0    \ update the title of a window
�>.Zap_CallBaseMode   EQUD 0    \ call base mode entry point
�?.Zap_NewView        EQUD 0    \ open a new window on a file
�<.Zap_ReadSel        EQUD 0    \ read the selected region
�@.Zap_Replace        EQUD 0    \ perform a search and replace
�9.Zap_Search         EQUD 0    \ perform a file search
�3.Zap_Select         EQUD 0    \ select a region
�9.Zap_AlterSel       EQUD 0    \ alter selected region
�>.Zap_OffLineCol     EQUD 0    \ convert file offset to X,Y
�7.Zap_AddCommands    EQUD 0    \ add a command table
�>.Zap_MiniWrite      EQUD 0    \ insert chars in minibuffer
�D.Zap_MiniPrompt     EQUD 0    \ set/change the minibuffer prompt
�?.Zap_MiniUpdate     EQUD 0    \ update minibuffer on screen
�=.Zap_AddYankRegion  EQUD 0    \ add a region to kill ring

C.Zap_FindCommand    EQUD 0    \ convert command name to address

6.Zap_ProcessCommand EQUD 0    \ call a Zap command

7.Zap_FindKeyEntry   EQUD 0    \ read a keymap entry

 @.Zap_FindLeafName   EQUD 0    \ find leaf part of a filename

*=.Zap_NewFileName    EQUD 0    \ change the name of a file

4?.Zap_CheckFileName  EQUD 0    \ see if file contains a path

>C.Zap_GetCurrDir     EQUD 0    \ find the current directory name

HC.Zap_MiniWriteC     EQUD 0    \ write a character to minibuffer

R4.Zap_MiniClear      EQUD 0    \ clear minibuffer

\=.Zap_MiniStart      EQUD 0    \ start up a new minibuffer

f;.Zap_MiniEval       EQUD 0    \ turn string into number

p<.Zap_CommandString  EQUD 0    \ execute a string command

z:.Zap_ProcessKeys    EQUD 0    \ process a list of keys

�D.Zap_ProcessAKey    EQUD 0    \ process a single key as if typed

�5.Zap_OpenWindow     EQUD 0    \ open a Zap window

�C.Zap_RestoreModeWord EQUD 0   \ restore mode options on e_start

�>.Zap_SaveModeWord   EQUD 0    \ save mode options on e_end

�6.Zap_GetModeWord    EQUD 0    \ read the mode word

�7.Zap_PutModeWord    EQUD 0    \ write the mode word

�6.Zap_BaseMode       EQUD 0    \ call the base mode

�D.Zap_ReadWord       EQUD 0    \ read a word from the file buffer

�E.Zap_ReplaceWord    EQUD 0    \ replace a word in the file buffer

�;.Zap_ModeColour     EQUD 0    \ Read colour definitions

�7.Zap_FindInput      EQUD 0    \ Find input position

�C.Zap_ClipCache      EQUD 0    \ Move the cache reference point.

�C.Zap_ModeData       EQUD 0    \ Read/write Zap data mode words.

�C.Zap_WhichMode      EQUD 0    \ Which mode to load a file into.

�@.Zap_ModeNumber     EQUD 0    \ Convert mode name to number.

�D.Zap_SendDataSave   EQUD 0    \ Initiate data transfer protocol.

�9.Zap_Warning        EQUD 0    \ Show warning message.

�@.Zap_AllWindow      EQUD 0    \ Examine each window in turn.

�

�\L

�

�]:�
3� pass=%1100 � %1110 � 2:P%=0:O%=code%:[OPTpass

\L zap redraw offsets
$
.0.r_flags            EQUD 0    \ Redraw flags
85.r_minx             EQUD 0    \ min x in pixs inc
B@.r_miny             EQUD 0    \ min y in pixs inc (from top)
L5.r_maxx             EQUD 0    \ max x in pixs exc
V@.r_maxy             EQUD 0    \ max y in pixs exc (from top)
`9.r_screen           EQUD 0    \ address of the screen
j9.r_bpl              EQUD 0    \ bytes per raster line
t5.r_bpp              EQUD 0    \ log base 2 of bpp
~@.r_charw            EQUD 0    \ width of a character in pixs
�A.r_charh            EQUD 0    \ height of a character in pixs
�=.r_caddr            EQUD 0    \ cache address / font name
�9.r_cbpl             EQUD 0    \ bytes per cached line
�>.r_cbpc             EQUD 0    \ bytes per cached character
�:.r_linesp           EQUD 0    \ line spacing in pixels
�<.r_data             EQUD 0    \ address of data to print
�;.r_scrollx          EQUD 0    \ x scroll offset in pixs
�;.r_scrolly          EQUD 0    \ y scroll offset in pixs
�;.r_palette          EQUD 0    \ address of palette data
�:.r_for              EQUD 0    \ start forground colour
�;.r_bac              EQUD 0    \ start background colour
�8.r_workarea         EQUD 0    \ address of work area
�B.r_magx             EQUD 0    \ log 2 of num of x os per pixel
�B.r_magy             EQUD 0    \ log 2 of num of y os per pixel
�:.r_xsize            EQUD 0    \ screen width in pixels
�;.r_ysize            EQUD 0    \ screen height in pixels
�/.r_mode             EQUD 0    \ screen mode


\L

]:�
(�
2
<� �log(f%)
F� s%,x%
Ps%=-1:x%=f%
Z�:x%=x%>>1:s%+=1:� x%=0
d� (1<<s%)<f% � s%+=1
n=s%
x
�6� �reserve_bytes(x%):w%=O%-code%:P%=P%+x%:O%=O%+x%
�[OPTpass:ALIGN:]:=w%
�
00000000  0d 00 0a 10 f4 20 3e 45  2d 4c 69 62 72 61 72 79  |..... >E-Library|
00000010  0d 00 14 05 f4 0d 00 1e  43 f4 20 44 65 66 69 6e  |........C. Defin|
00000020  65 73 20 74 68 65 20 76  61 72 69 61 62 6c 65 73  |es the variables|
00000030  20 6e 65 65 64 65 64 20  66 6f 72 20 77 72 69 74  | needed for writ|
00000040  69 6e 67 20 7a 61 70 20  65 78 74 65 6e 73 69 6f  |ing zap extensio|
00000050  6e 20 6d 6f 64 65 73 2e  0d 00 28 42 f4 20 43 61  |n modes...(B. Ca|
00000060  6c 6c 20 74 68 65 20 70  72 6f 63 65 64 75 72 65  |ll the procedure|
00000070  20 64 65 66 69 6e 65 5f  7a 61 70 5f 76 61 72 69  | define_zap_vari|
00000080  61 62 6c 65 73 20 74 6f  20 73 65 74 20 76 61 72  |ables to set var|
00000090  69 61 62 6c 65 73 20 75  70 2e 0d 00 32 1c f4 20  |iables up...2.. |
000000a0  54 68 65 20 70 72 6f 63  65 64 75 72 65 20 64 65  |The procedure de|
000000b0  66 69 6e 65 73 3a 0d 00  3c 3b f4 20 20 20 66 5f  |fines:..<;.   f_|
000000c0  2a 20 20 20 20 20 20 20  20 20 20 20 54 68 65 20  |*           The |
000000d0  66 69 6c 65 20 62 6c 6f  63 6b 20 76 61 72 69 61  |file block varia|
000000e0  62 6c 65 73 20 28 73 65  65 20 45 2d 46 69 6c 65  |bles (see E-File|
000000f0  29 0d 00 46 40 f4 20 20  20 77 5f 2a 20 20 20 20  |)..F@.   w_*    |
00000100  20 20 20 20 20 20 20 54  68 65 20 77 69 6e 64 6f  |       The windo|
00000110  77 20 62 6c 6f 63 6b 20  76 61 72 69 61 62 6c 65  |w block variable|
00000120  73 20 28 73 65 65 20 45  2d 57 69 6e 64 6f 77 73  |s (see E-Windows|
00000130  29 0d 00 50 40 f4 20 20  20 63 5f 2a 20 20 20 20  |)..P@.   c_*    |
00000140  20 20 20 20 20 20 20 54  68 65 20 63 75 72 73 6f  |       The curso|
00000150  72 20 62 6c 6f 63 6b 20  76 61 72 69 61 62 6c 65  |r block variable|
00000160  73 20 28 73 65 65 20 45  2d 43 75 72 73 6f 72 73  |s (see E-Cursors|
00000170  29 0d 00 5a 3d f4 20 20  20 65 5f 2a 20 20 20 20  |)..Z=.   e_*    |
00000180  20 20 20 20 20 20 20 54  68 65 20 65 6e 74 72 79  |       The entry|
00000190  20 70 6f 69 6e 74 20 76  61 72 69 61 62 6c 65 73  | point variables|
000001a0  20 28 73 65 65 20 45 2d  45 6e 74 72 79 29 0d 00  | (see E-Entry)..|
000001b0  64 3d f4 20 20 20 72 5f  2a 20 20 20 20 20 20 20  |d=.   r_*       |
000001c0  20 20 20 20 54 68 65 20  72 65 64 72 61 77 20 62  |    The redraw b|
000001d0  6c 6f 63 6b 20 76 61 72  69 61 62 6c 65 73 20 28  |lock variables (|
000001e0  73 65 65 20 52 65 64 72  61 77 29 0d 00 6e 37 f4  |see Redraw)..n7.|
000001f0  20 20 20 5a 61 70 5f 2a  20 20 20 20 20 20 20 20  |   Zap_*        |
00000200  20 54 68 65 20 7a 61 70  20 72 6f 75 74 69 6e 65  | The zap routine|
00000210  73 20 28 73 65 65 20 45  2d 5a 61 70 43 61 6c 6c  |s (see E-ZapCall|
00000220  73 29 0d 00 78 43 f4 20  20 20 66 5f 73 68 69 66  |s)..xC.   f_shif|
00000230  74 20 20 20 20 20 20 20  4c 6f 67 20 62 61 73 65  |t       Log base|
00000240  20 32 20 6f 66 20 66 69  6c 65 20 62 6c 6f 63 6b  | 2 of file block|
00000250  20 73 69 7a 65 20 28 76  73 6e 20 64 65 70 65 6e  | size (vsn depen|
00000260  64 65 6e 74 29 0d 00 82  35 f4 20 20 20 77 5f 73  |dent)...5.   w_s|
00000270  68 69 66 74 20 20 20 20  20 20 20 4c 6f 67 20 62  |hift       Log b|
00000280  61 73 65 20 32 20 6f 66  20 77 69 6e 64 6f 77 20  |ase 2 of window |
00000290  62 6c 6f 63 6b 20 73 69  7a 65 0d 00 8c 3b f4 20  |block size...;. |
000002a0  20 20 66 69 6c 65 5f 62  6c 6b 20 20 20 20 20 20  |  file_blk      |
000002b0  46 69 6c 65 20 62 6c 6f  63 6b 20 73 69 7a 65 20  |File block size |
000002c0  20 20 20 28 74 68 65 73  65 20 61 72 65 20 76 65  |   (these are ve|
000002d0  72 73 69 6f 6e 0d 00 96  3b f4 20 20 20 77 69 6e  |rsion...;.   win|
000002e0  64 5f 62 6c 6b 20 20 20  20 20 20 57 69 6e 64 6f  |d_blk      Windo|
000002f0  77 20 62 6c 6f 63 6b 20  73 69 7a 65 20 20 20 64  |w block size   d|
00000300  65 70 65 6e 64 65 6e 74  20 61 6e 64 20 66 6f 72  |ependent and for|
00000310  0d 00 a0 3c f4 20 20 20  63 75 73 72 5f 62 6c 6b  |...<.   cusr_blk|
00000320  20 20 20 20 20 20 43 75  72 73 6f 72 20 62 6c 6f  |      Cursor blo|
00000330  63 6b 20 73 69 7a 65 20  20 20 69 6e 74 65 72 6e  |ck size   intern|
00000340  61 6c 20 75 73 65 20 6f  6e 6c 79 29 0d 00 aa 05  |al use only)....|
00000350  f4 0d 00 b4 30 f4 20 50  72 6f 63 65 64 75 72 65  |....0. Procedure|
00000360  20 6e 61 6d 65 73 20 6c  6f 63 61 6c 20 74 6f 20  | names local to |
00000370  74 68 69 73 20 6c 69 62  72 61 72 79 20 61 72 65  |this library are|
00000380  3a 0d 00 be 1b f4 20 20  73 65 74 5f 75 70 5f 66  |:.....  set_up_f|
00000390  69 6c 65 5f 62 6c 6b 5f  76 61 72 73 0d 00 c8 1b  |ile_blk_vars....|
000003a0  f4 20 20 73 65 74 5f 75  70 5f 77 69 6e 64 5f 62  |.  set_up_wind_b|
000003b0  6c 6b 5f 76 61 72 73 0d  00 d2 1b f4 20 20 73 65  |lk_vars.....  se|
000003c0  74 5f 75 70 5f 63 75 73  72 5f 62 6c 6b 5f 76 61  |t_up_cusr_blk_va|
000003d0  72 73 0d 00 dc 18 f4 20  20 73 65 74 5f 75 70 5f  |rs.....  set_up_|
000003e0  65 6e 74 72 79 5f 76 61  72 73 0d 00 e6 1c f4 20  |entry_vars..... |
000003f0  41 6e 64 20 74 68 65 20  66 75 6e 63 74 69 6f 6e  |And the function|
00000400  20 46 4e 6c 6f 67 0d 00  f0 04 0d 00 fa 1b dd 20  | FNlog......... |
00000410  f2 64 65 66 69 6e 65 5f  7a 61 70 5f 76 61 72 69  |.define_zap_vari|
00000420  61 62 6c 65 73 0d 01 04  19 ea 20 70 61 73 73 2c  |ables..... pass,|
00000430  50 25 2c 4f 25 2c 4c 25  2c 63 6f 64 65 25 0d 01  |P%,O%,L%,code%..|
00000440  0e 10 de 20 63 6f 64 65  25 20 32 30 34 38 0d 01  |... code% 2048..|
00000450  18 11 4c 25 3d 63 6f 64  65 25 2b 32 30 34 38 0d  |..L%=code%+2048.|
00000460  01 22 19 f2 73 65 74 5f  75 70 5f 66 69 6c 65 5f  |."..set_up_file_|
00000470  62 6c 6b 5f 76 61 72 73  0d 01 2c 19 f2 73 65 74  |blk_vars..,..set|
00000480  5f 75 70 5f 77 69 6e 64  5f 62 6c 6b 5f 76 61 72  |_up_wind_blk_var|
00000490  73 0d 01 36 19 f2 73 65  74 5f 75 70 5f 63 75 73  |s..6..set_up_cus|
000004a0  72 5f 62 6c 6b 5f 76 61  72 73 0d 01 40 16 f2 73  |r_blk_vars..@..s|
000004b0  65 74 5f 75 70 5f 65 6e  74 72 79 5f 76 61 72 73  |et_up_entry_vars|
000004c0  0d 01 4a 05 e1 0d 01 54  04 0d 01 5e 1b dd 20 f2  |..J....T...^.. .|
000004d0  73 65 74 5f 75 70 5f 66  69 6c 65 5f 62 6c 6b 5f  |set_up_file_blk_|
000004e0  76 61 72 73 0d 01 68 33  e3 20 70 61 73 73 3d 25  |vars..h3. pass=%|
000004f0  31 31 30 30 20 b8 20 25  31 31 31 30 20 88 20 32  |1100 . %1110 . 2|
00000500  3a 50 25 3d 30 3a 4f 25  3d 63 6f 64 65 25 3a 5b  |:P%=0:O%=code%:[|
00000510  4f 50 54 70 61 73 73 0d  01 72 04 0d 01 7c 1b 5c  |OPTpass..r...|.\|
00000520  4c 20 46 69 6c 65 20 62  6c 6f 63 6b 20 76 61 72  |L File block var|
00000530  69 61 62 6c 65 73 0d 01  86 04 0d 01 90 3f 2e 66  |iables.......?.f|
00000540  5f 70 74 72 20 20 20 20  20 20 20 20 20 20 20 20  |_ptr            |
00000550  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 70 6f  |  EQUD 0    \ po|
00000560  69 6e 74 65 72 20 74 6f  20 66 69 6c 65 20 62 75  |inter to file bu|
00000570  66 66 65 72 20 2f 20 2d  31 0d 01 9a 39 2e 66 5f  |ffer / -1...9.f_|
00000580  62 75 66 6c 20 20 20 20  20 20 20 20 20 20 20 20  |bufl            |
00000590  20 45 51 55 44 20 30 20  20 20 20 5c 20 6c 65 6e  | EQUD 0    \ len|
000005a0  67 74 68 20 6f 66 20 66  69 6c 65 20 62 75 66 66  |gth of file buff|
000005b0  65 72 0d 01 a4 32 2e 66  5f 6c 65 6e 20 20 20 20  |er...2.f_len    |
000005c0  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
000005d0  20 20 20 20 5c 20 6c 65  6e 67 74 68 20 6f 66 20  |    \ length of |
000005e0  66 69 6c 65 0d 01 ae 37  2e 66 5f 6e 61 6d 65 20  |file...7.f_name |
000005f0  20 20 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |            EQUD|
00000600  20 30 20 20 20 20 5c 20  70 6f 69 6e 74 65 72 20  | 0    \ pointer |
00000610  74 6f 20 66 69 6c 65 6e  61 6d 65 0d 01 b8 38 2e  |to filename...8.|
00000620  66 5f 6c 6f 61 64 20 20  20 20 20 20 20 20 20 20  |f_load          |
00000630  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 6c  |   EQUD 0    \ l|
00000640  6f 61 64 20 61 64 64 72  65 73 73 20 6f 66 20 66  |oad address of f|
00000650  69 6c 65 0d 01 c2 38 2e  66 5f 65 78 65 63 20 20  |ile...8.f_exec  |
00000660  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00000670  30 20 20 20 20 5c 20 65  78 65 63 20 61 64 64 72  |0    \ exec addr|
00000680  65 73 73 20 6f 66 20 66  69 6c 65 0d 01 cc 2e 2e  |ess of file.....|
00000690  66 5f 66 6c 61 67 73 20  20 20 20 20 20 20 20 20  |f_flags         |
000006a0  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 66  |   EQUD 0    \ f|
000006b0  69 6c 65 20 66 6c 61 67  73 0d 01 d6 3a 2e 66 5f  |ile flags...:.f_|
000006c0  75 70 74 72 20 20 20 20  20 20 20 20 20 20 20 20  |uptr            |
000006d0  20 45 51 55 44 20 30 20  20 20 20 5c 20 70 6f 69  | EQUD 0    \ poi|
000006e0  6e 74 65 72 20 74 6f 20  75 6e 64 6f 20 62 75 66  |nter to undo buf|
000006f0  66 65 72 0d 01 e0 39 2e  66 5f 75 62 75 66 6c 20  |fer...9.f_ubufl |
00000700  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00000710  30 20 20 20 20 5c 20 6c  65 6e 67 74 68 20 6f 66  |0    \ length of|
00000720  20 75 6e 64 6f 20 62 75  66 66 65 72 0d 01 ea 41  | undo buffer...A|
00000730  2e 66 5f 75 6c 65 6e 20  20 20 20 20 20 20 20 20  |.f_ulen         |
00000740  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00000750  6c 65 6e 67 74 68 20 6f  66 20 64 61 74 61 20 69  |length of data i|
00000760  6e 20 75 6e 64 6f 20 62  75 66 66 65 72 0d 01 f4  |n undo buffer...|
00000770  3f 2e 66 5f 75 6e 64 6f  20 20 20 20 20 20 20 20  |?.f_undo        |
00000780  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00000790  20 6f 66 66 73 65 74 20  6f 66 20 6d 61 69 6e 20  | offset of main |
000007a0  75 6e 64 6f 20 70 6f 69  6e 74 65 72 0d 01 fe 44  |undo pointer...D|
000007b0  2e 66 5f 75 6e 64 6f 70  20 20 20 20 20 20 20 20  |.f_undop        |
000007c0  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
000007d0  6f 66 66 73 65 74 20 6f  66 20 75 6e 64 6f 20 62  |offset of undo b|
000007e0  6c 6f 63 6b 20 73 75 62  2d 70 6f 69 6e 74 65 72  |lock sub-pointer|
000007f0  0d 02 08 2c 2e 66 5f 72  65 73 33 20 20 20 20 20  |...,.f_res3     |
00000800  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00000810  20 20 5c 20 72 65 73 65  72 76 65 64 0d 02 12 44  |  \ reserved...D|
00000820  2e 66 5f 73 70 6c 69 74  6f 20 20 20 20 20 20 20  |.f_splito       |
00000830  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00000840  6f 66 66 73 65 74 20 69  6e 20 66 69 6c 65 20 6f  |offset in file o|
00000850  66 20 73 74 61 72 74 20  6f 66 20 73 70 6c 69 74  |f start of split|
00000860  0d 02 1c 41 2e 66 5f 73  70 6c 69 74 65 20 20 20  |...A.f_splite   |
00000870  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00000880  20 20 5c 20 6f 66 66 73  65 74 20 69 6e 20 62 75  |  \ offset in bu|
00000890  66 20 6f 66 20 65 6e 64  20 6f 66 20 73 70 6c 69  |f of end of spli|
000008a0  74 0d 02 26 40 2e 66 5f  73 70 6c 69 74 73 20 20  |t..&@.f_splits  |
000008b0  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
000008c0  20 20 20 5c 20 73 69 7a  65 20 20 6f 66 20 73 70  |   \ size  of sp|
000008d0  6c 69 74 3d 73 70 6c 69  74 65 2d 73 70 6c 69 74  |lit=splite-split|
000008e0  6f 0d 02 30 3c 2e 66 5f  6d 70 74 72 20 20 20 20  |o..0<.f_mptr    |
000008f0  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
00000900  20 20 20 5c 20 70 6f 69  6e 74 65 72 20 74 6f 20  |   \ pointer to |
00000910  6d 61 72 6b 65 72 20 62  75 66 66 65 72 0d 02 3a  |marker buffer..:|
00000920  3b 2e 66 5f 6d 62 75 66  6c 20 20 20 20 20 20 20  |;.f_mbufl       |
00000930  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00000940  20 6c 65 6e 67 74 68 20  6f 66 20 6d 61 72 6b 65  | length of marke|
00000950  72 20 62 75 66 66 65 72  0d 02 44 43 2e 66 5f 6d  |r buffer..DC.f_m|
00000960  6c 65 6e 20 20 20 20 20  20 20 20 20 20 20 20 20  |len             |
00000970  45 51 55 44 20 30 20 20  20 20 5c 20 6c 65 6e 67  |EQUD 0    \ leng|
00000980  74 68 20 6f 66 20 64 61  74 61 20 69 6e 20 6d 61  |th of data in ma|
00000990  72 6b 65 72 20 62 75 66  66 65 72 0d 02 4e 43 2e  |rker buffer..NC.|
000009a0  66 5f 6d 61 72 6b 20 20  20 20 20 20 20 20 20 20  |f_mark          |
000009b0  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 63  |   EQUD 0    \ c|
000009c0  75 72 72 65 6e 74 20 6f  66 66 73 65 74 20 69 6e  |urrent offset in|
000009d0  20 6d 61 72 6b 65 72 20  62 75 66 66 65 72 0d 02  | marker buffer..|
000009e0  58 41 2e 66 5f 64 6f 63  6f 6d 20 20 20 20 20 20  |XA.f_docom      |
000009f0  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00000a00  5c 20 63 75 72 72 65 6e  74 20 63 6f 6d 6d 61 6e  |\ current comman|
00000a10  64 20 62 65 69 6e 67 20  27 64 6f 6e 65 27 2e 0d  |d being 'done'..|
00000a20  02 62 40 2e 66 5f 73 6f  75 72 63 65 20 20 20 20  |.b@.f_source    |
00000a30  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00000a40  20 5c 20 77 6f 72 64 20  66 6f 72 20 75 73 65 20  | \ word for use |
00000a50  6f 66 20 66 5f 63 6d 6f  64 65 20 6d 6f 64 65 0d  |of f_cmode mode.|
00000a60  02 6c 40 2e 66 5f 64 6f  6c 65 6e 20 20 20 20 20  |.l@.f_dolen     |
00000a70  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00000a80  20 5c 20 6c 65 6e 67 74  68 20 6f 66 20 69 6e 73  | \ length of ins|
00000a90  65 72 74 69 6f 6e 2f 64  65 6c 65 74 69 6f 6e 0d  |ertion/deletion.|
00000aa0  02 76 45 2e 66 5f 64 6f  64 61 74 61 20 20 20 20  |.vE.f_dodata    |
00000ab0  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00000ac0  20 5c 20 64 61 74 61 20  74 6f 20 62 65 20 69 6e  | \ data to be in|
00000ad0  73 65 72 74 65 64 2f 72  65 70 6c 61 63 65 20 77  |serted/replace w|
00000ae0  69 74 68 2e 0d 02 80 44  2e 66 5f 61 6c 74 65 72  |ith....D.f_alter|
00000af0  65 64 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |ed          EQUD|
00000b00  20 30 20 20 20 20 5c 20  66 69 72 73 74 20 61 6c  | 0    \ first al|
00000b10  74 65 72 65 64 20 6f 66  66 73 65 74 20 69 6e 20  |tered offset in |
00000b20  66 69 6c 65 20 2f 2d 31  0d 02 8a 46 2e 66 5f 73  |file /-1...F.f_s|
00000b30  68 69 66 74 61 62 6c 65  20 20 20 20 20 20 20 20  |hiftable        |
00000b40  45 51 55 44 20 30 20 20  20 20 5c 20 66 69 72 73  |EQUD 0    \ firs|
00000b50  74 20 73 68 69 66 74 61  62 6c 65 20 6f 66 66 73  |t shiftable offs|
00000b60  65 74 20 69 6e 20 66 69  6c 65 20 2f 2d 31 0d 02  |et in file /-1..|
00000b70  94 45 2e 66 5f 63 68 61  6e 67 65 20 20 20 20 20  |.E.f_change     |
00000b80  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00000b90  5c 20 73 69 67 6e 65 64  20 63 68 61 6e 67 65 20  |\ signed change |
00000ba0  6f 66 20 73 68 69 66 74  61 62 6c 65 20 6f 66 66  |of shiftable off|
00000bb0  73 65 74 0d 02 9e 40 2e  66 5f 64 65 70 74 68 20  |set...@.f_depth |
00000bc0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00000bd0  30 20 20 20 20 5c 20 6d  75 6c 74 69 70 6c 65 20  |0    \ multiple |
00000be0  6f 70 65 72 61 74 69 6f  6e 20 64 65 70 74 68 20  |operation depth |
00000bf0  2f 20 30 0d 02 a8 3a 2e  66 5f 6c 69 6e 6b 73 20  |/ 0...:.f_links |
00000c00  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00000c10  30 20 20 20 20 5c 20 76  20 6c 69 6e 6b 73 20 74  |0    \ v links t|
00000c20  6f 20 6f 74 68 65 72 20  66 69 6c 65 73 0d 02 b2  |o other files...|
00000c30  3f 2e 66 5f 63 6d 6f 64  65 20 20 20 20 20 20 20  |?.f_cmode       |
00000c40  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00000c50  20 6d 6f 64 65 20 77 68  69 63 68 20 27 6f 77 6e  | mode which 'own|
00000c60  73 27 20 66 69 6c 65 20  2f 20 2d 31 0d 02 bc 04  |s' file / -1....|
00000c70  0d 02 c6 06 5c 4c 0d 02  d0 04 0d 02 da 07 5d 3a  |....\L........]:|
00000c80  ed 0d 02 e4 28 66 5f 73  68 69 66 74 3d a4 6c 6f  |....(f_shift=.lo|
00000c90  67 28 50 25 29 3a 66 69  6c 65 5f 62 6c 6b 3d 31  |g(P%):file_blk=1|
00000ca0  3c 3c 66 5f 73 68 69 66  74 0d 02 ee 05 e1 0d 02  |<<f_shift.......|
00000cb0  f8 04 0d 03 02 1b dd 20  f2 73 65 74 5f 75 70 5f  |....... .set_up_|
00000cc0  77 69 6e 64 5f 62 6c 6b  5f 76 61 72 73 0d 03 0c  |wind_blk_vars...|
00000cd0  33 e3 20 70 61 73 73 3d  25 31 31 30 30 20 b8 20  |3. pass=%1100 . |
00000ce0  25 31 31 31 30 20 88 20  32 3a 50 25 3d 30 3a 4f  |%1110 . 2:P%=0:O|
00000cf0  25 3d 63 6f 64 65 25 3a  5b 4f 50 54 70 61 73 73  |%=code%:[OPTpass|
00000d00  0d 03 16 04 0d 03 20 1d  5c 4c 20 57 69 6e 64 6f  |...... .\L Windo|
00000d10  77 20 62 6c 6f 63 6b 20  76 61 72 69 61 62 6c 65  |w block variable|
00000d20  73 0d 03 2a 04 0d 03 34  41 2e 77 5f 68 61 6e 64  |s..*...4A.w_hand|
00000d30  6c 65 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |le           EQU|
00000d40  44 20 30 20 20 20 20 5c  20 77 69 6e 64 6f 77 20  |D 0    \ window |
00000d50  68 61 6e 64 6c 65 20 2f  20 2d 31 20 69 66 20 64  |handle / -1 if d|
00000d60  65 6c 65 74 65 64 0d 03  3e 2d 2e 77 5f 6d 69 6e  |eleted..>-.w_min|
00000d70  78 20 20 20 20 20 20 20  20 20 20 20 20 20 45 51  |x             EQ|
00000d80  55 44 20 30 20 20 20 20  5c 20 6d 69 6e 20 73 63  |UD 0    \ min sc|
00000d90  6e 20 78 0d 03 48 2d 2e  77 5f 6d 69 6e 79 20 20  |n x..H-.w_miny  |
00000da0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00000db0  30 20 20 20 20 5c 20 6d  69 6e 20 73 63 6e 20 79  |0    \ min scn y|
00000dc0  0d 03 52 2d 2e 77 5f 6d  61 78 78 20 20 20 20 20  |..R-.w_maxx     |
00000dd0  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00000de0  20 20 5c 20 6d 61 78 20  73 63 6e 20 78 0d 03 5c  |  \ max scn x..\|
00000df0  2d 2e 77 5f 6d 61 78 79  20 20 20 20 20 20 20 20  |-.w_maxy        |
00000e00  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00000e10  20 6d 61 78 20 73 63 6e  20 79 0d 03 66 2c 2e 77  | max scn y..f,.w|
00000e20  5f 73 63 72 6f 6c 6c 78  20 20 20 20 20 20 20 20  |_scrollx        |
00000e30  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 78 20  |  EQUD 0    \ x |
00000e40  73 63 72 6f 6c 6c 0d 03  70 2c 2e 77 5f 73 63 72  |scroll..p,.w_scr|
00000e50  6f 6c 6c 79 20 20 20 20  20 20 20 20 20 20 45 51  |olly          EQ|
00000e60  55 44 20 30 20 20 20 20  5c 20 79 20 73 63 72 6f  |UD 0    \ y scro|
00000e70  6c 6c 0d 03 7a 44 2e 77  5f 69 6e 66 72 6f 6e 74  |ll..zD.w_infront|
00000e80  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
00000e90  20 20 20 20 5c 20 77 69  6e 64 6f 77 20 68 61 6e  |    \ window han|
00000ea0  64 6c 65 20 6f 66 20 77  69 6e 64 6f 77 20 69 6e  |dle of window in|
00000eb0  20 66 72 6f 6e 74 0d 03  84 35 2e 77 5f 77 69 6e  | front...5.w_win|
00000ec0  64 6f 77 66 6c 61 67 73  20 20 20 20 20 20 45 51  |dowflags      EQ|
00000ed0  55 44 20 30 20 20 20 20  5c 20 77 69 6d 70 20 77  |UD 0    \ wimp w|
00000ee0  69 6e 64 6f 77 20 66 6c  61 67 73 0d 03 8e 3a 2e  |indow flags...:.|
00000ef0  77 5f 66 69 6c 65 20 20  20 20 20 20 20 20 20 20  |w_file          |
00000f00  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 6f  |   EQUD 0    \ o|
00000f10  66 66 73 65 74 20 6f 66  20 66 69 6c 65 20 73 68  |ffset of file sh|
00000f20  6f 77 69 6e 67 0d 03 98  32 2e 77 5f 66 6f 72 6d  |owing...2.w_form|
00000f30  61 74 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |at           EQU|
00000f40  44 20 30 20 20 20 20 5c  20 64 69 73 70 6c 61 79  |D 0    \ display|
00000f50  20 66 6f 72 6d 61 74 0d  03 a2 3f 2e 77 5f 77 69  | format...?.w_wi|
00000f60  64 74 68 20 20 20 20 20  20 20 20 20 20 20 20 45  |dth            E|
00000f70  51 55 44 20 30 20 20 20  20 5c 20 77 69 64 74 68  |QUD 0    \ width|
00000f80  20 6f 66 20 77 6f 72 6b  20 61 72 65 61 20 69 6e  | of work area in|
00000f90  20 63 68 61 72 73 0d 03  ac 40 2e 77 5f 68 65 69  | chars...@.w_hei|
00000fa0  67 68 74 20 20 20 20 20  20 20 20 20 20 20 45 51  |ght           EQ|
00000fb0  55 44 20 30 20 20 20 20  5c 20 68 65 69 67 68 74  |UD 0    \ height|
00000fc0  20 6f 66 20 77 6f 72 6b  20 61 72 65 61 20 69 6e  | of work area in|
00000fd0  20 63 68 61 72 73 0d 03  b6 41 2e 77 5f 74 78 74  | chars...A.w_txt|
00000fe0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 45 51  |              EQ|
00000ff0  55 44 20 30 20 20 20 20  5c 20 70 6f 69 6e 74 65  |UD 0    \ pointe|
00001000  72 20 74 6f 20 63 61 63  68 65 64 20 74 65 78 74  |r to cached text|
00001010  20 62 75 66 66 65 72 0d  03 c0 45 2e 77 5f 74 78  | buffer...E.w_tx|
00001020  74 68 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |th             E|
00001030  51 55 44 20 30 20 20 20  20 5c 20 68 65 69 67 68  |QUD 0    \ heigh|
00001040  74 20 6f 66 20 63 61 63  68 65 64 20 74 78 74 20  |t of cached txt |
00001050  62 75 66 20 69 6e 20 6c  69 6e 65 73 0d 03 ca 46  |buf in lines...F|
00001060  2e 77 5f 74 78 74 77 20  20 20 20 20 20 20 20 20  |.w_txtw         |
00001070  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00001080  63 68 61 72 20 77 69 64  74 68 20 6f 66 20 63 61  |char width of ca|
00001090  63 68 65 64 20 6c 69 6e  65 20 28 6d 75 6c 74 20  |ched line (mult |
000010a0  38 29 0d 03 d4 3a 2e 77  5f 74 78 74 6e 20 20 20  |8)...:.w_txtn   |
000010b0  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
000010c0  20 20 20 20 5c 20 6e 75  6d 62 65 72 20 6f 66 20  |    \ number of |
000010d0  6c 69 6e 65 73 20 63 61  63 68 65 64 0d 03 de 44  |lines cached...D|
000010e0  2e 77 5f 63 6f 66 66 20  20 20 20 20 20 20 20 20  |.w_coff         |
000010f0  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00001100  6f 66 66 20 69 6e 20 74  65 78 74 20 6f 66 20 66  |off in text of f|
00001110  69 72 73 74 20 63 61 63  68 65 64 20 6c 69 6e 65  |irst cached line|
00001120  0d 03 e8 44 2e 77 5f 63  6c 69 6e 65 20 20 20 20  |...D.w_cline    |
00001130  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00001140  20 20 5c 20 6c 69 6e 65  20 6e 75 6d 62 65 72 20  |  \ line number |
00001150  6f 66 20 66 69 72 73 74  20 63 61 63 68 65 64 20  |of first cached |
00001160  6c 69 6e 65 0d 03 f2 45  2e 77 5f 63 6c 6f 67 6c  |line...E.w_clogl|
00001170  20 20 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |            EQUD|
00001180  20 30 20 20 20 20 5c 20  6c 6f 67 20 6c 69 6e 65  | 0    \ log line|
00001190  20 6e 75 6d 20 6f 66 20  66 69 72 73 74 20 63 61  | num of first ca|
000011a0  63 68 65 64 20 6c 69 6e  65 0d 03 fc 30 2e 77 5f  |ched line...0.w_|
000011b0  74 61 62 20 20 20 20 20  20 20 20 20 20 20 20 20  |tab             |
000011c0  20 45 51 55 44 20 30 20  20 20 20 5c 20 63 6f 6c  | EQUD 0    \ col|
000011d0  74 61 62 20 77 69 64 74  68 0d 04 06 42 2e 77 5f  |tab width...B.w_|
000011e0  74 61 62 63 20 20 20 20  20 20 20 20 20 20 20 20  |tabc            |
000011f0  20 45 51 55 44 20 30 20  20 20 20 5c 20 61 63 74  | EQUD 0    \ act|
00001200  75 61 6c 20 74 61 62 20  63 68 61 72 61 63 74 65  |ual tab characte|
00001210  72 20 63 6f 64 65 20 28  78 34 29 0d 04 10 3c 2e  |r code (x4)...<.|
00001220  77 5f 63 72 20 20 20 20  20 20 20 20 20 20 20 20  |w_cr            |
00001230  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 63  |   EQUD 0    \ c|
00001240  6f 64 65 20 6f 66 20 72  65 74 75 72 6e 2f 6c 69  |ode of return/li|
00001250  6e 65 20 66 65 65 64 0d  04 1a 35 2e 77 5f 66 6c  |ne feed...5.w_fl|
00001260  61 67 73 20 20 20 20 20  20 20 20 20 20 20 20 45  |ags            E|
00001270  51 55 44 20 30 20 20 20  20 5c 20 28 6d 79 29 20  |QUD 0    \ (my) |
00001280  77 69 6e 64 6f 77 20 66  6c 61 67 73 0d 04 24 42  |window flags..$B|
00001290  2e 77 5f 74 69 74 6c 65  20 20 20 20 20 20 20 20  |.w_title        |
000012a0  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
000012b0  70 6f 69 6e 74 65 72 20  74 6f 20 77 69 6e 64 6f  |pointer to windo|
000012c0  77 20 74 69 74 6c 65 20  62 75 66 66 65 72 0d 04  |w title buffer..|
000012d0  2e 42 2e 77 5f 62 70 6c  20 20 20 20 20 20 20 20  |.B.w_bpl        |
000012e0  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
000012f0  5c 20 62 79 74 65 73 20  70 65 72 20 6c 69 6e 65  |\ bytes per line|
00001300  20 2f 20 77 69 64 74 68  20 6f 66 20 74 65 78 74  | / width of text|
00001310  0d 04 38 42 2e 77 5f 6d  61 72 67 69 6e 20 20 20  |..8B.w_margin   |
00001320  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00001330  20 20 5c 20 77 69 64 74  68 20 6f 66 20 6d 61 72  |  \ width of mar|
00001340  67 69 6e 20 28 69 6e 63  20 6c 69 6e 65 20 6e 6f  |gin (inc line no|
00001350  73 29 0d 04 42 45 2e 77  5f 72 6c 20 20 20 20 20  |s)..BE.w_rl     |
00001360  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
00001370  20 20 20 20 5c 20 68 65  69 67 68 74 20 69 6e 20  |    \ height in |
00001380  6c 69 6e 65 73 20 6f 66  20 65 61 63 68 20 63 68  |lines of each ch|
00001390  61 72 61 63 74 65 72 0d  04 4c 45 2e 77 5f 72 77  |aracter..LE.w_rw|
000013a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |               E|
000013b0  51 55 44 20 30 20 20 20  20 5c 20 77 69 64 74 68  |QUD 0    \ width|
000013c0  20 69 6e 20 70 69 78 65  6c 73 20 6f 66 20 65 61  | in pixels of ea|
000013d0  63 68 20 63 68 61 72 61  63 74 65 72 0d 04 56 46  |ch character..VF|
000013e0  2e 77 5f 72 68 20 20 20  20 20 20 20 20 20 20 20  |.w_rh           |
000013f0  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00001400  74 65 78 74 20 68 65 69  67 68 74 20 69 6e 20 70  |text height in p|
00001410  69 78 65 6c 73 20 28 6e  6f 20 73 70 61 63 69 6e  |ixels (no spacin|
00001420  67 29 0d 04 60 44 2e 77  5f 61 64 64 72 20 20 20  |g)..`D.w_addr   |
00001430  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
00001440  20 20 20 20 5c 20 61 64  64 72 65 73 73 20 6f 66  |    \ address of|
00001450  20 66 69 72 73 74 20 62  79 74 65 20 69 6e 20 64  | first byte in d|
00001460  69 73 70 6c 61 79 0d 04  6a 45 2e 77 5f 73 74 6c  |isplay..jE.w_stl|
00001470  69 6e 65 20 20 20 20 20  20 20 20 20 20 20 45 51  |ine           EQ|
00001480  55 44 20 30 20 20 20 20  5c 20 6c 69 6e 65 20 6e  |UD 0    \ line n|
00001490  75 6d 62 65 72 20 6f 66  20 66 69 72 73 74 20 6c  |umber of first l|
000014a0  69 6e 65 20 69 6e 20 64  69 73 70 0d 04 74 3e 2e  |ine in disp..t>.|
000014b0  77 5f 74 69 74 6c 65 6c  65 6e 20 20 20 20 20 20  |w_titlelen      |
000014c0  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 74  |   EQUD 0    \ t|
000014d0  69 74 6c 65 20 6c 65 6e  67 74 68 20 28 65 78 63  |itle length (exc|
000014e0  6c 75 64 69 6e 67 20 30  29 0d 04 7e 43 2e 77 5f  |luding 0)..~C.w_|
000014f0  74 69 74 62 75 66 20 20  20 20 20 20 20 20 20 20  |titbuf          |
00001500  20 45 51 55 44 20 30 20  20 20 20 5c 20 61 64 64  | EQUD 0    \ add|
00001510  72 65 73 73 20 6f 66 20  74 69 74 6c 65 20 73 68  |ress of title sh|
00001520  6f 77 69 6e 67 20 62 75  66 66 65 72 0d 04 88 42  |owing buffer...B|
00001530  2e 77 5f 74 69 74 6c 65  6e 20 20 20 20 20 20 20  |.w_titlen       |
00001540  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00001550  6c 65 6e 67 74 68 20 6f  66 20 74 69 74 6c 65 20  |length of title |
00001560  73 68 6f 77 69 6e 67 20  73 74 72 69 6e 67 0d 04  |showing string..|
00001570  92 3e 2e 77 5f 6d 77 69  64 74 68 20 20 20 20 20  |.>.w_mwidth     |
00001580  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00001590  5c 20 75 73 65 72 20 72  65 71 75 69 72 65 64 20  |\ user required |
000015a0  6d 61 72 67 69 6e 20 77  69 64 74 68 0d 04 9c 44  |margin width...D|
000015b0  2e 77 5f 74 61 62 63 68  61 72 20 20 20 20 20 20  |.w_tabchar      |
000015c0  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
000015d0  75 73 65 72 20 72 65 71  75 69 72 65 64 20 74 61  |user required ta|
000015e0  62 20 63 68 61 72 20 63  6f 64 65 20 28 78 34 29  |b char code (x4)|
000015f0  0d 04 a6 3e 2e 77 5f 6c  69 6e 65 73 70 20 20 20  |...>.w_linesp   |
00001600  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00001610  20 20 5c 20 75 73 65 72  20 72 65 71 75 69 72 65  |  \ user require|
00001620  64 20 6c 69 6e 65 20 73  70 61 63 69 6e 67 0d 04  |d line spacing..|
00001630  b0 45 2e 77 5f 73 61 76  65 64 6f 20 20 20 20 20  |.E.w_savedo     |
00001640  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00001650  5c 20 66 69 78 65 64 20  6f 66 66 20 2f 20 66 69  |\ fixed off / fi|
00001660  78 65 64 20 6c 69 6e 65  20 6f 66 66 20 62 65 66  |xed line off bef|
00001670  6f 72 65 0d 04 ba 43 2e  77 5f 73 61 76 65 64 6c  |ore...C.w_savedl|
00001680  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00001690  30 20 20 20 20 5c 20 70  69 78 73 20 66 72 6f 6d  |0    \ pixs from|
000016a0  20 74 6f 70 20 2f 20 70  68 79 20 6c 69 6e 65 20  | top / phy line |
000016b0  6f 66 20 6f 66 66 0d 04  c4 44 2e 77 5f 73 61 76  |of off...D.w_sav|
000016c0  65 64 63 20 20 20 20 20  20 20 20 20 20 20 45 51  |edc           EQ|
000016d0  55 44 20 30 20 20 20 20  5c 20 63 68 61 6e 67 65  |UD 0    \ change|
000016e0  20 69 6e 20 70 68 79 20  6c 69 6e 65 20 66 6f 72  | in phy line for|
000016f0  20 73 68 69 66 74 61 62  6c 65 0d 04 ce 3d 2e 77  | shiftable...=.w|
00001700  5f 73 61 76 65 64 68 20  20 20 20 20 20 20 20 20  |_savedh         |
00001710  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 77 5f  |  EQUD 0    \ w_|
00001720  68 65 69 67 68 74 20 61  74 20 6d 75 6c 74 69 6f  |height at multio|
00001730  70 20 73 74 61 72 74 0d  04 d8 40 2e 77 5f 73 61  |p start...@.w_sa|
00001740  76 65 64 6c 63 20 20 20  20 20 20 20 20 20 20 45  |vedlc          E|
00001750  51 55 44 20 30 20 20 20  20 5c 20 70 68 79 20 6c  |QUD 0    \ phy l|
00001760  69 6e 65 20 6f 66 20 66  69 78 65 64 20 66 6f 72  |ine of fixed for|
00001770  20 6f 6e 65 20 6f 70 0d  04 e2 32 2e 77 5f 77 72  | one op...2.w_wr|
00001780  61 70 77 69 64 74 68 20  20 20 20 20 20 20 20 45  |apwidth        E|
00001790  51 55 44 20 30 20 20 20  20 5c 20 77 6f 72 64 77  |QUD 0    \ wordw|
000017a0  72 61 70 20 77 69 64 74  68 0d 04 ec 35 2e 77 5f  |rap width...5.w_|
000017b0  74 6f 67 6d 69 6e 78 20  20 20 20 20 20 20 20 20  |togminx         |
000017c0  20 45 51 55 44 20 30 20  20 20 20 5c 20 74 6f 67  | EQUD 0    \ tog|
000017d0  67 6c 65 20 73 69 7a 65  20 6d 69 6e 20 78 0d 04  |gle size min x..|
000017e0  f6 35 2e 77 5f 74 6f 67  6d 69 6e 79 20 20 20 20  |.5.w_togminy    |
000017f0  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00001800  5c 20 74 6f 67 67 6c 65  20 73 69 7a 65 20 6d 69  |\ toggle size mi|
00001810  6e 20 79 0d 05 00 35 2e  77 5f 74 6f 67 6d 61 78  |n y...5.w_togmax|
00001820  78 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |x          EQUD |
00001830  30 20 20 20 20 5c 20 74  6f 67 67 6c 65 20 73 69  |0    \ toggle si|
00001840  7a 65 20 6d 61 78 20 78  0d 05 0a 35 2e 77 5f 74  |ze max x...5.w_t|
00001850  6f 67 6d 61 78 79 20 20  20 20 20 20 20 20 20 20  |ogmaxy          |
00001860  45 51 55 44 20 30 20 20  20 20 5c 20 74 6f 67 67  |EQUD 0    \ togg|
00001870  6c 65 20 73 69 7a 65 20  6d 61 78 20 79 0d 05 14  |le size max y...|
00001880  44 2e 77 5f 74 78 74 6c  65 6e 20 20 20 20 20 20  |D.w_txtlen      |
00001890  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
000018a0  20 73 69 7a 65 20 6f 66  20 63 61 63 68 65 20 6c  | size of cache l|
000018b0  69 6e 65 20 69 6e 63 20  63 6f 6c 20 6d 61 73 6b  |ine inc col mask|
000018c0  73 0d 05 1e 38 2e 77 5f  70 61 6c 65 74 74 65 20  |s...8.w_palette |
000018d0  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
000018e0  20 20 20 5c 20 63 75 72  72 65 6e 74 20 70 61 6c  |   \ current pal|
000018f0  65 74 74 65 20 64 61 74  61 0d 05 1f 40 2e 77 5f  |ette data...@.w_|
00001900  70 77 69 6e 64 20 20 20  20 20 20 20 20 20 20 20  |pwind           |
00001910  20 45 51 55 44 20 30 20  20 20 20 5c 20 70 6f 69  | EQUD 0    \ poi|
00001920  6e 74 20 28 3d 74 68 69  73 21 29 20 77 69 6e 64  |nt (=this!) wind|
00001930  6f 77 20 6f 66 66 73 65  74 0d 05 28 37 2e 77 5f  |ow offset..(7.w_|
00001940  70 6c 69 6e 65 20 20 20  20 20 20 20 20 20 20 20  |pline           |
00001950  20 45 51 55 44 20 30 20  20 20 20 5c 20 70 6f 69  | EQUD 0    \ poi|
00001960  6e 74 20 72 6f 77 20 28  79 20 63 6f 6f 72 64 29  |nt row (y coord)|
00001970  0d 05 32 3a 2e 77 5f 70  63 6f 6c 20 20 20 20 20  |..2:.w_pcol     |
00001980  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00001990  20 20 5c 20 70 6f 69 6e  74 20 63 6f 6c 75 6d 6e  |  \ point column|
000019a0  20 28 78 20 63 6f 6f 72  64 29 0d 05 3c 30 2e 77  | (x coord)..<0.w|
000019b0  5f 70 6f 66 66 20 20 20  20 20 20 20 20 20 20 20  |_poff           |
000019c0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 70 6f  |  EQUD 0    \ po|
000019d0  69 6e 74 20 6f 66 66 73  65 74 0d 05 46 35 2e 77  |int offset..F5.w|
000019e0  5f 70 6c 6f 66 66 20 20  20 20 20 20 20 20 20 20  |_ploff          |
000019f0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 70 6f  |  EQUD 0    \ po|
00001a00  69 6e 74 20 6c 69 6e 65  20 6f 66 66 73 65 74 0d  |int line offset.|
00001a10  05 50 2f 2e 77 5f 70 77  69 64 74 68 20 20 20 20  |.P/.w_pwidth    |
00001a20  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00001a30  20 5c 20 70 6f 69 6e 74  20 77 69 64 74 68 0d 05  | \ point width..|
00001a40  64 42 2e 77 5f 73 61 76  65 64 73 20 20 20 20 20  |dB.w_saveds     |
00001a50  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00001a60  5c 20 73 74 61 72 74 20  6f 66 20 61 72 65 61 20  |\ start of area |
00001a70  74 6f 20 72 65 64 72 61  77 20 6f 66 66 73 65 74  |to redraw offset|
00001a80  0d 05 6e 3f 2e 77 5f 6d  6f 64 65 64 61 74 61 20  |..n?.w_modedata |
00001a90  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00001aa0  20 20 5c 20 7a 61 70 20  68 61 6e 64 6c 65 64 20  |  \ zap handled |
00001ab0  6d 6f 64 65 20 64 61 74  61 20 62 6c 6f 63 6b 0d  |mode data block.|
00001ac0  05 78 34 2e 77 5f 72 65  73 31 30 20 20 20 20 20  |.x4.w_res10     |
00001ad0  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00001ae0  20 5c 20 72 65 73 65 72  76 65 64 20 77 6f 72 64  | \ reserved word|
00001af0  20 31 30 0d 05 82 34 2e  77 5f 72 65 73 31 31 20  | 10...4.w_res11 |
00001b00  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00001b10  30 20 20 20 20 5c 20 72  65 73 65 72 76 65 64 20  |0    \ reserved |
00001b20  77 6f 72 64 20 31 31 0d  05 8c 34 2e 77 5f 72 65  |word 11...4.w_re|
00001b30  73 31 32 20 20 20 20 20  20 20 20 20 20 20 20 45  |s12            E|
00001b40  51 55 44 20 30 20 20 20  20 5c 20 72 65 73 65 72  |QUD 0    \ reser|
00001b50  76 65 64 20 77 6f 72 64  20 31 32 0d 05 96 34 2e  |ved word 12...4.|
00001b60  77 5f 72 65 73 31 33 20  20 20 20 20 20 20 20 20  |w_res13         |
00001b70  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 72  |   EQUD 0    \ r|
00001b80  65 73 65 72 76 65 64 20  77 6f 72 64 20 31 33 0d  |eserved word 13.|
00001b90  05 a0 34 2e 77 5f 72 65  73 31 34 20 20 20 20 20  |..4.w_res14     |
00001ba0  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00001bb0  20 5c 20 72 65 73 65 72  76 65 64 20 77 6f 72 64  | \ reserved word|
00001bc0  20 31 34 0d 05 aa 34 2e  77 5f 72 65 73 31 35 20  | 14...4.w_res15 |
00001bd0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00001be0  30 20 20 20 20 5c 20 72  65 73 65 72 76 65 64 20  |0    \ reserved |
00001bf0  77 6f 72 64 20 31 35 0d  05 b4 34 2e 77 5f 72 65  |word 15...4.w_re|
00001c00  73 31 36 20 20 20 20 20  20 20 20 20 20 20 20 45  |s16            E|
00001c10  51 55 44 20 30 20 20 20  20 5c 20 72 65 73 65 72  |QUD 0    \ reser|
00001c20  76 65 64 20 77 6f 72 64  20 31 36 0d 05 be 41 2e  |ved word 16...A.|
00001c30  77 5f 6d 6f 64 65 30 20  20 20 20 20 20 20 20 20  |w_mode0         |
00001c40  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 75  |   EQUD 0    \ u|
00001c50  73 65 72 20 72 65 71 75  69 72 65 64 20 74 65 78  |ser required tex|
00001c60  74 20 6c 69 6e 65 20 77  69 64 74 68 0d 05 c8 41  |t line width...A|
00001c70  2e 77 5f 6d 6f 64 65 31  20 20 20 20 20 20 20 20  |.w_mode1        |
00001c80  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00001c90  75 73 65 72 20 72 65 71  75 69 72 65 64 20 62 79  |user required by|
00001ca0  74 65 20 6c 69 6e 65 20  77 69 64 74 68 0d 05 d2  |te line width...|
00001cb0  41 2e 77 5f 6d 6f 64 65  32 20 20 20 20 20 20 20  |A.w_mode2       |
00001cc0  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00001cd0  20 75 73 65 72 20 72 65  71 75 69 72 65 64 20 77  | user required w|
00001ce0  6f 72 64 20 6c 69 6e 65  20 77 69 64 74 68 0d 05  |ord line width..|
00001cf0  dc 42 2e 77 5f 6d 6f 64  65 33 20 20 20 20 20 20  |.B.w_mode3      |
00001d00  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00001d10  5c 20 75 73 65 72 20 72  65 71 75 69 72 65 64 20  |\ user required |
00001d20  61 73 63 69 69 20 6c 69  6e 65 20 77 69 64 74 68  |ascii line width|
00001d30  0d 05 e6 41 2e 77 5f 6d  6f 64 65 34 20 20 20 20  |...A.w_mode4    |
00001d40  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00001d50  20 20 5c 20 75 73 65 72  20 72 65 71 75 69 72 65  |  \ user require|
00001d60  64 20 63 6f 64 65 20 6c  69 6e 65 20 77 69 64 74  |d code line widt|
00001d70  68 0d 05 f0 1e 2e 77 5f  6d 6f 64 65 35 20 20 20  |h.....w_mode5   |
00001d80  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 0d  |         EQUD 0.|
00001d90  05 fa 1e 2e 77 5f 6d 6f  64 65 36 20 20 20 20 20  |....w_mode6     |
00001da0  20 20 20 20 20 20 20 45  51 55 44 20 30 0d 06 04  |       EQUD 0...|
00001db0  1e 2e 77 5f 6d 6f 64 65  37 20 20 20 20 20 20 20  |..w_mode7       |
00001dc0  20 20 20 20 20 45 51 55  44 20 30 0d 06 0e 1e 2e  |     EQUD 0.....|
00001dd0  77 5f 6d 6f 64 65 38 20  20 20 20 20 20 20 20 20  |w_mode8         |
00001de0  20 20 20 45 51 55 44 20  30 0d 06 18 1e 2e 77 5f  |   EQUD 0.....w_|
00001df0  6d 6f 64 65 39 20 20 20  20 20 20 20 20 20 20 20  |mode9           |
00001e00  20 45 51 55 44 20 30 0d  06 22 1e 2e 77 5f 6d 6f  | EQUD 0.."..w_mo|
00001e10  64 65 31 30 20 20 20 20  20 20 20 20 20 20 20 45  |de10           E|
00001e20  51 55 44 20 30 0d 06 2c  1e 2e 77 5f 6d 6f 64 65  |QUD 0..,..w_mode|
00001e30  31 31 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |11           EQU|
00001e40  44 20 30 0d 06 36 1e 2e  77 5f 6d 6f 64 65 31 32  |D 0..6..w_mode12|
00001e50  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00001e60  30 0d 06 40 1e 2e 77 5f  6d 6f 64 65 31 33 20 20  |0..@..w_mode13  |
00001e70  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 0d  |         EQUD 0.|
00001e80  06 4a 1e 2e 77 5f 6d 6f  64 65 31 34 20 20 20 20  |.J..w_mode14    |
00001e90  20 20 20 20 20 20 20 45  51 55 44 20 30 0d 06 54  |       EQUD 0..T|
00001ea0  40 2e 77 5f 6d 6f 64 65  31 35 20 20 20 20 20 20  |@.w_mode15      |
00001eb0  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00001ec0  20 75 73 65 72 20 72 65  71 75 69 72 65 64 20 73  | user required s|
00001ed0  74 61 74 75 73 20 6d 6f  64 65 20 31 35 0d 06 5f  |tatus mode 15.._|
00001ee0  0f 2e 77 5f 65 6e 64 5f  6d 61 72 6b 0d 06 68 04  |..w_end_mark..h.|
00001ef0  0d 06 72 06 5c 4c 0d 06  7c 04 0d 06 86 07 5d 3a  |..r.\L..|.....]:|
00001f00  ed 0d 06 90 28 77 5f 73  68 69 66 74 3d a4 6c 6f  |....(w_shift=.lo|
00001f10  67 28 50 25 29 3a 77 69  6e 64 5f 62 6c 6b 3d 31  |g(P%):wind_blk=1|
00001f20  3c 3c 77 5f 73 68 69 66  74 0d 06 9a 05 e1 0d 06  |<<w_shift.......|
00001f30  a4 04 0d 06 ae 1b dd 20  f2 73 65 74 5f 75 70 5f  |....... .set_up_|
00001f40  63 75 73 72 5f 62 6c 6b  5f 76 61 72 73 0d 06 b8  |cusr_blk_vars...|
00001f50  33 e3 20 70 61 73 73 3d  25 31 31 30 30 20 b8 20  |3. pass=%1100 . |
00001f60  25 31 31 31 30 20 88 20  32 3a 50 25 3d 30 3a 4f  |%1110 . 2:P%=0:O|
00001f70  25 3d 63 6f 64 65 25 3a  5b 4f 50 54 70 61 73 73  |%=code%:[OPTpass|
00001f80  0d 06 c2 04 0d 06 cc 1d  5c 4c 20 43 75 72 73 6f  |........\L Curso|
00001f90  72 20 62 6c 6f 63 6b 20  76 61 72 69 61 62 6c 65  |r block variable|
00001fa0  73 0d 06 d6 04 0d 06 e0  44 2e 63 5f 77 69 6e 64  |s.......D.c_wind|
00001fb0  20 20 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |             EQU|
00001fc0  44 20 30 20 20 20 20 5c  20 6f 66 66 73 65 74 20  |D 0    \ offset |
00001fd0  6f 66 20 77 69 6e 64 6f  77 20 77 69 74 68 20 74  |of window with t|
00001fe0  68 69 73 20 63 61 72 65  74 0d 06 ea 3e 2e 63 5f  |his caret...>.c_|
00001ff0  6c 69 6e 65 20 20 20 20  20 20 20 20 20 20 20 20  |line            |
00002000  20 45 51 55 44 20 30 20  20 20 20 5c 20 6c 69 6e  | EQUD 0    \ lin|
00002010  65 20 6f 66 20 63 61 72  65 74 20 69 6e 20 77 6f  |e of caret in wo|
00002020  72 6b 20 61 72 65 61 0d  06 f4 40 2e 63 5f 63 6f  |rk area...@.c_co|
00002030  6c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |l              E|
00002040  51 55 44 20 30 20 20 20  20 5c 20 63 6f 6c 75 6d  |QUD 0    \ colum|
00002050  6e 20 6f 66 20 63 61 72  65 74 20 69 6e 20 77 6f  |n of caret in wo|
00002060  72 6b 20 61 72 65 61 0d  06 fe 3b 2e 63 5f 6f 66  |rk area...;.c_of|
00002070  66 20 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |f              E|
00002080  51 55 44 20 30 20 20 20  20 5c 20 6f 66 66 73 65  |QUD 0    \ offse|
00002090  74 20 6f 66 20 63 61 72  65 74 20 69 6e 20 74 65  |t of caret in te|
000020a0  78 74 0d 07 08 38 2e 63  5f 6c 6f 66 66 20 20 20  |xt...8.c_loff   |
000020b0  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
000020c0  20 20 20 20 5c 20 73 74  61 72 74 20 6f 66 20 6c  |    \ start of l|
000020d0  69 6e 65 20 6f 66 66 73  65 74 0d 07 12 3c 2e 63  |ine offset...<.c|
000020e0  5f 77 69 64 74 68 20 20  20 20 20 20 20 20 20 20  |_width          |
000020f0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 77 69  |  EQUD 0    \ wi|
00002100  64 74 68 20 6f 66 20 63  75 72 73 6f 72 20 69 6e  |dth of cursor in|
00002110  20 63 68 61 72 73 0d 07  1c 3b 2e 63 5f 6f 77 69  | chars...;.c_owi|
00002120  6e 64 20 20 20 20 20 20  20 20 20 20 20 20 45 51  |nd            EQ|
00002130  55 44 20 30 20 20 20 20  5c 20 6f 6c 64 20 77 69  |UD 0    \ old wi|
00002140  6e 64 6f 77 20 2f 20 2d  31 20 69 66 20 6e 6f 6e  |ndow / -1 if non|
00002150  65 0d 07 26 34 2e 63 5f  6f 6c 69 6e 65 20 20 20  |e..&4.c_oline   |
00002160  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
00002170  20 20 20 5c 20 6f 6c 64  20 70 6c 6f 74 74 65 64  |   \ old plotted|
00002180  20 6c 69 6e 65 0d 07 30  33 2e 63 5f 6f 63 6f 6c  | line..03.c_ocol|
00002190  20 20 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |             EQU|
000021a0  44 20 30 20 20 20 20 5c  20 6f 6c 64 20 70 6c 6f  |D 0    \ old plo|
000021b0  74 74 65 64 20 63 6f 6c  0d 07 3a 4b 2e 63 5f 6f  |tted col..:K.c_o|
000021c0  77 69 64 74 68 20 20 20  20 20 20 20 20 20 20 20  |width           |
000021d0  45 51 55 44 20 30 20 20  20 20 5c 20 6f 6c 64 20  |EQUD 0    \ old |
000021e0  77 69 64 74 68 20 2f 20  6f 66 66 73 65 74 20 66  |width / offset f|
000021f0  6f 72 20 73 65 6c 65 63  74 65 64 20 72 65 67 69  |or selected regi|
00002200  6f 6e 73 0d 07 44 04 0d  07 4e 06 5c 4c 0d 07 58  |ons..D...N.\L..X|
00002210  04 0d 07 62 07 5d 3a ed  0d 07 6c 0f 63 75 73 72  |...b.]:...l.cusr|
00002220  5f 62 6c 6b 3d 50 25 0d  07 76 05 e1 0d 07 80 04  |_blk=P%..v......|
00002230  0d 07 8a 18 dd 20 f2 73  65 74 5f 75 70 5f 65 6e  |..... .set_up_en|
00002240  74 72 79 5f 76 61 72 73  0d 07 94 33 e3 20 70 61  |try_vars...3. pa|
00002250  73 73 3d 25 31 31 30 30  20 b8 20 25 31 31 31 30  |ss=%1100 . %1110|
00002260  20 88 20 32 3a 50 25 3d  30 3a 4f 25 3d 63 6f 64  | . 2:P%=0:O%=cod|
00002270  65 25 3a 5b 4f 50 54 70  61 73 73 0d 07 9e 04 0d  |e%:[OPTpass.....|
00002280  07 a8 17 5c 4c 20 45 6e  74 72 79 20 62 6c 6f 63  |...\L Entry bloc|
00002290  6b 20 76 61 72 73 0d 07  b2 04 0d 07 bc 42 2e 65  |k vars.......B.e|
000022a0  5f 6d 6f 64 75 6c 65 20  20 20 20 20 20 20 20 20  |_module         |
000022b0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 74 61  |  EQUD 0    \ ta|
000022c0  62 6c 65 20 6f 66 66 73  65 74 20 66 72 6f 6d 20  |ble offset from |
000022d0  6d 6f 64 75 6c 65 20 73  74 61 72 74 0d 07 c6 39  |module start...9|
000022e0  2e 65 5f 74 69 74 6c 65  20 20 20 20 20 20 20 20  |.e_title        |
000022f0  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00002300  74 69 74 6c 65 20 6f 66  66 73 65 74 20 28 6d 61  |title offset (ma|
00002310  78 20 31 30 29 0d 07 d0  31 2e 65 5f 61 75 74 68  |x 10)...1.e_auth|
00002320  6f 72 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |or           EQU|
00002330  44 20 30 20 20 20 20 5c  20 61 75 74 68 6f 72 20  |D 0    \ author |
00002340  6f 66 66 73 65 74 0d 07  da 3e 2e 65 5f 62 61 73  |offset...>.e_bas|
00002350  65 6d 6f 64 65 20 20 20  20 20 20 20 20 20 45 51  |emode         EQ|
00002360  55 44 20 30 20 20 20 20  5c 20 6d 6f 64 65 20 74  |UD 0    \ mode t|
00002370  6f 20 63 61 6c 6c 20 66  6f 72 20 30 20 6f 66 66  |o call for 0 off|
00002380  73 65 74 73 0d 07 e4 3d  2e 65 5f 6d 6f 64 65 20  |sets...=.e_mode |
00002390  20 20 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |            EQUD|
000023a0  20 30 20 20 20 20 5c 20  6d 6f 64 65 20 79 6f 75  | 0    \ mode you|
000023b0  20 77 6f 75 6c 64 20 6c  69 6b 65 20 74 6f 20 62  | would like to b|
000023c0  65 0d 07 ee 30 2e 65 5f  69 6e 69 74 20 20 20 20  |e...0.e_init    |
000023d0  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
000023e0  20 20 20 5c 20 73 74 61  72 74 75 70 20 63 6f 64  |   \ startup cod|
000023f0  65 0d 07 f8 32 2e 65 5f  6d 65 6e 75 20 20 20 20  |e...2.e_menu    |
00002400  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
00002410  20 20 20 5c 20 65 78 74  65 6e 73 69 6f 6e 20 6d  |   \ extension m|
00002420  65 6e 75 0d 08 02 38 2e  65 5f 6c 65 6e 20 20 20  |enu...8.e_len   |
00002430  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00002440  30 20 20 20 20 5c 20 6c  65 6e 67 74 68 20 6f 66  |0    \ length of|
00002450  20 74 68 69 73 20 74 61  62 6c 65 0d 08 0c 45 2e  | this table...E.|
00002460  65 5f 70 6f 73 74 6c 6f  61 64 20 20 20 20 20 20  |e_postload      |
00002470  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 63  |   EQUD 0    \ c|
00002480  61 6c 6c 65 64 20 61 66  74 65 72 20 62 65 69 6e  |alled after bein|
00002490  67 20 6c 6f 61 64 65 64  2f 63 72 65 61 74 65 64  |g loaded/created|
000024a0  0d 08 16 3d 2e 65 5f 70  72 65 73 61 76 65 20 20  |...=.e_presave  |
000024b0  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
000024c0  20 20 5c 20 63 61 6c 6c  65 64 20 62 65 66 6f 72  |  \ called befor|
000024d0  65 20 62 65 69 6e 67 20  73 61 76 65 64 0d 08 20  |e being saved.. |
000024e0  3d 2e 65 5f 6c 6f 61 64  69 6e 67 20 20 20 20 20  |=.e_loading     |
000024f0  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00002500  20 66 69 6c 65 20 62 65  69 6e 67 20 6c 6f 61 64  | file being load|
00002510  65 64 2f 63 72 65 61 74  65 64 0d 08 2a 3d 2e 65  |ed/created..*=.e|
00002520  5f 73 74 61 72 74 20 20  20 20 20 20 20 20 20 20  |_start          |
00002530  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 77 69  |  EQUD 0    \ wi|
00002540  6e 64 6f 77 20 65 6e 74  65 72 69 6e 67 20 74 68  |ndow entering th|
00002550  69 73 20 6d 6f 64 65 0d  08 34 3c 2e 65 5f 65 6e  |is mode..4<.e_en|
00002560  64 20 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |d              E|
00002570  51 55 44 20 30 20 20 20  20 5c 20 77 69 6e 64 6f  |QUD 0    \ windo|
00002580  77 20 6c 65 61 76 69 6e  67 20 74 68 69 73 20 6d  |w leaving this m|
00002590  6f 64 65 0d 08 3e 38 2e  65 5f 77 69 64 74 68 20  |ode..>8.e_width |
000025a0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
000025b0  30 20 20 20 20 5c 20 66  69 6e 64 20 77 6f 72 6b  |0    \ find work|
000025c0  20 61 72 65 61 20 77 69  64 74 68 0d 08 48 40 2e  | area width..H@.|
000025d0  65 5f 6c 69 6e 65 63 6f  6c 20 20 20 20 20 20 20  |e_linecol       |
000025e0  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 63  |   EQUD 0    \ c|
000025f0  6f 6c 75 6d 6e 20 6f 66  66 73 65 74 20 74 6f 20  |olumn offset to |
00002600  66 69 6c 65 20 6f 66 66  73 65 74 0d 08 52 40 2e  |file offset..R@.|
00002610  65 5f 6c 69 6e 65 6f 66  66 20 20 20 20 20 20 20  |e_lineoff       |
00002620  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 66  |   EQUD 0    \ f|
00002630  69 6c 65 20 6f 66 66 73  65 74 20 74 6f 20 63 6f  |ile offset to co|
00002640  6c 75 6d 6e 20 6f 66 66  73 65 74 0d 08 5c 33 2e  |lumn offset..\3.|
00002650  65 5f 63 6c 6e 6c 6f 67  20 20 20 20 20 20 20 20  |e_clnlog        |
00002660  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 6c  |   EQUD 0    \ l|
00002670  6f 67 20 74 6f 20 66 69  6c 65 20 6f 66 66 0d 08  |og to file off..|
00002680  66 33 2e 65 5f 63 6c 6e  70 68 79 20 20 20 20 20  |f3.e_clnphy     |
00002690  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
000026a0  5c 20 70 68 79 20 74 6f  20 66 69 6c 65 20 6f 66  |\ phy to file of|
000026b0  66 0d 08 70 37 2e 65 5f  63 6c 6e 6f 66 66 20 20  |f..p7.e_clnoff  |
000026c0  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
000026d0  20 20 20 5c 20 66 69 6c  65 20 6f 66 66 20 74 6f  |   \ file off to|
000026e0  20 70 68 79 2f 6c 6f 67  0d 08 7a 4c 2e 65 5f 6e  | phy/log..zL.e_n|
000026f0  65 78 74 6c 69 6e 65 20  20 20 20 20 20 20 20 20  |extline         |
00002700  45 51 55 44 20 30 20 20  20 20 5c 20 66 69 6e 64  |EQUD 0    \ find|
00002710  20 6e 65 78 74 20 6c 69  6e 65 20 77 68 69 63 68  | next line which|
00002720  20 63 61 6e 20 62 65 20  73 68 69 66 74 65 64 20  | can be shifted |
00002730  64 6f 77 6e 0d 08 84 37  2e 65 5f 6d 69 6e 75 73  |down...7.e_minus|
00002740  20 20 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |            EQUD|
00002750  20 30 20 20 20 20 5c 20  70 65 72 66 6f 72 6d 20  | 0    \ perform |
00002760  63 75 72 73 6f 72 20 6c  65 66 74 0d 08 8e 38 2e  |cursor left...8.|
00002770  65 5f 70 6c 75 73 20 20  20 20 20 20 20 20 20 20  |e_plus          |
00002780  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 70  |   EQUD 0    \ p|
00002790  65 72 66 6f 72 6d 20 63  75 72 73 6f 72 20 72 69  |erform cursor ri|
000027a0  67 68 74 0d 08 98 36 2e  65 5f 73 6d 69 6e 75 73  |ght...6.e_sminus|
000027b0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
000027c0  30 20 20 20 20 5c 20 70  65 72 66 6f 72 6d 20 73  |0    \ perform s|
000027d0  68 69 66 74 20 6c 65 66  74 0d 08 a2 37 2e 65 5f  |hift left...7.e_|
000027e0  73 70 6c 75 73 20 20 20  20 20 20 20 20 20 20 20  |splus           |
000027f0  20 45 51 55 44 20 30 20  20 20 20 5c 20 70 65 72  | EQUD 0    \ per|
00002800  66 6f 72 6d 20 73 68 69  66 74 20 72 69 67 68 74  |form shift right|
00002810  0d 08 ac 36 2e 65 5f 63  6d 69 6e 75 73 20 20 20  |...6.e_cminus   |
00002820  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00002830  20 20 5c 20 70 65 72 66  6f 72 6d 20 63 74 72 6c  |  \ perform ctrl|
00002840  20 6d 69 6e 75 73 0d 08  b6 35 2e 65 5f 63 70 6c  | minus...5.e_cpl|
00002850  75 73 20 20 20 20 20 20  20 20 20 20 20 20 45 51  |us            EQ|
00002860  55 44 20 30 20 20 20 20  5c 20 70 65 72 66 6f 72  |UD 0    \ perfor|
00002870  6d 20 63 74 72 6c 20 70  6c 75 73 0d 08 c0 40 2e  |m ctrl plus...@.|
00002880  65 5f 72 65 64 72 61 77  6c 69 6e 65 20 20 20 20  |e_redrawline    |
00002890  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 72  |   EQUD 0    \ r|
000028a0  65 64 72 61 77 20 61 20  6c 69 6e 65 20 6f 66 20  |edraw a line of |
000028b0  74 68 65 20 64 69 73 70  6c 61 79 0d 08 ca 3c 2e  |the display...<.|
000028c0  65 5f 72 65 64 72 61 77  6c 6e 75 6d 20 20 20 20  |e_redrawlnum    |
000028d0  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 66  |   EQUD 0    \ f|
000028e0  69 6e 64 20 6c 6f 67 69  63 61 6c 20 6c 69 6e 65  |ind logical line|
000028f0  20 6e 75 6d 62 65 72 0d  08 d4 41 2e 65 5f 63 68  | number...A.e_ch|
00002900  61 72 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |ar             E|
00002910  51 55 44 20 30 20 20 20  20 5c 20 69 6e 73 65 72  |QUD 0    \ inser|
00002920  74 20 63 68 61 72 61 63  74 65 72 73 20 61 73 20  |t characters as |
00002930  69 66 20 74 79 70 65 64  0d 08 de 3f 2e 65 5f 64  |if typed...?.e_d|
00002940  65 6c 65 74 65 20 20 20  20 20 20 20 20 20 20 20  |elete           |
00002950  45 51 55 44 20 30 20 20  20 20 5c 20 64 65 6c 65  |EQUD 0    \ dele|
00002960  74 65 20 63 68 61 72 61  63 74 65 72 73 20 66 72  |te characters fr|
00002970  6f 6d 20 74 65 78 74 0d  08 e8 33 2e 65 5f 74 61  |om text...3.e_ta|
00002980  62 20 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |b              E|
00002990  51 55 44 20 30 20 20 20  20 5c 20 74 61 62 20 6b  |QUD 0    \ tab k|
000029a0  65 79 20 70 72 65 73 73  65 64 0d 08 f2 36 2e 65  |ey pressed...6.e|
000029b0  5f 72 65 74 75 72 6e 20  20 20 20 20 20 20 20 20  |_return         |
000029c0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 72 65  |  EQUD 0    \ re|
000029d0  74 75 72 6e 20 6b 65 79  20 70 72 65 73 73 65 64  |turn key pressed|
000029e0  0d 08 fc 33 2e 65 5f 72  65 6e 75 6d 62 65 72 20  |...3.e_renumber |
000029f0  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00002a00  20 20 5c 20 70 6c 65 61  73 65 20 72 65 6e 75 6d  |  \ please renum|
00002a10  62 65 72 0d 09 06 3d 2e  65 5f 73 61 76 65 61 6e  |ber...=.e_savean|
00002a20  64 72 75 6e 20 20 20 20  20 20 20 45 51 55 44 20  |drun       EQUD |
00002a30  30 20 20 20 20 5c 20 73  61 76 65 20 66 69 6c 65  |0    \ save file|
00002a40  20 61 6e 64 20 72 75 6e  2f 63 6f 6d 70 69 6c 65  | and run/compile|
00002a50  0d 09 10 36 2e 65 5f 6c  69 6e 65 73 74 61 72 74  |...6.e_linestart|
00002a60  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00002a70  20 20 5c 20 66 69 6e 64  20 73 74 61 72 74 20 6f  |  \ find start o|
00002a80  66 20 6c 69 6e 65 0d 09  1a 34 2e 65 5f 6c 69 6e  |f line...4.e_lin|
00002a90  65 65 6e 64 20 20 20 20  20 20 20 20 20 20 45 51  |eend          EQ|
00002aa0  55 44 20 30 20 20 20 20  5c 20 66 69 6e 64 20 65  |UD 0    \ find e|
00002ab0  6e 64 20 6f 66 20 6c 69  6e 65 0d 09 24 3b 2e 65  |nd of line..$;.e|
00002ac0  5f 6c 69 6e 65 6e 65 78  74 20 20 20 20 20 20 20  |_linenext       |
00002ad0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 66 69  |  EQUD 0    \ fi|
00002ae0  6e 64 20 61 63 74 75 61  6c 20 65 6e 64 20 6f 66  |nd actual end of|
00002af0  20 6c 69 6e 65 0d 09 2e  3d 2e 65 5f 6c 69 6e 65  | line...=.e_line|
00002b00  70 72 65 76 20 20 20 20  20 20 20 20 20 45 51 55  |prev         EQU|
00002b10  44 20 30 20 20 20 20 5c  20 66 69 6e 64 20 61 63  |D 0    \ find ac|
00002b20  74 75 61 6c 20 73 74 61  72 74 20 6f 66 20 6c 69  |tual start of li|
00002b30  6e 65 0d 09 38 31 2e 65  5f 63 6f 70 79 20 20 20  |ne..81.e_copy   |
00002b40  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
00002b50  20 20 20 20 5c 20 63 6f  70 79 20 6b 65 79 20 64  |    \ copy key d|
00002b60  61 74 61 0d 09 42 40 2e  65 5f 6a 6f 69 6e 6c 69  |ata..B@.e_joinli|
00002b70  6e 65 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |ne         EQUD |
00002b80  30 20 20 20 20 5c 20 6a  6f 69 6e 20 74 68 69 73  |0    \ join this|
00002b90  20 6c 69 6e 65 20 77 69  74 68 20 74 68 65 20 6e  | line with the n|
00002ba0  65 78 74 0d 09 4c 41 2e  65 5f 73 70 6c 69 74 6c  |ext..LA.e_splitl|
00002bb0  69 6e 65 20 20 20 20 20  20 20 20 45 51 55 44 20  |ine        EQUD |
00002bc0  30 20 20 20 20 5c 20 73  70 6c 69 74 20 74 68 69  |0    \ split thi|
00002bd0  73 20 6c 69 6e 65 20 61  74 20 74 68 65 20 63 75  |s line at the cu|
00002be0  72 73 6f 72 0d 09 56 4d  2e 65 5f 61 6c 69 67 6e  |rsor..VM.e_align|
00002bf0  63 61 72 65 74 20 20 20  20 20 20 20 45 51 55 44  |caret       EQUD|
00002c00  20 30 20 20 20 20 5c 20  70 75 74 20 63 61 72 65  | 0    \ put care|
00002c10  74 20 69 6e 20 73 65 6e  73 69 62 6c 65 20 70 6f  |t in sensible po|
00002c20  73 6e 20 62 65 66 6f 72  65 20 63 6f 6d 6d 61 6e  |sn before comman|
00002c30  64 0d 09 60 43 2e 65 5f  63 6f 6d 6d 61 6e 64 20  |d..`C.e_command |
00002c40  20 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |         EQUD 0 |
00002c50  20 20 20 5c 20 73 6f 6d  65 6f 6e 65 20 77 61 6e  |   \ someone wan|
00002c60  74 73 20 74 6f 20 61 6c  74 65 72 20 74 68 65 20  |ts to alter the |
00002c70  74 65 78 74 0d 09 6a 40  2e 65 5f 63 6f 6d 70 69  |text..j@.e_compi|
00002c80  6c 65 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |le          EQUD|
00002c90  20 30 20 20 20 20 5c 20  63 6f 6d 70 69 6c 65 20  | 0    \ compile |
00002ca0  2f 20 72 75 6e 20 61 6e  64 20 64 6f 6e 27 74 20  |/ run and don't |
00002cb0  65 78 69 74 0d 09 74 43  2e 65 5f 66 6f 72 6d 61  |exit..tC.e_forma|
00002cc0  74 74 65 78 74 20 20 20  20 20 20 20 45 51 55 44  |ttext       EQUD|
00002cd0  20 30 20 20 20 20 5c 20  66 6f 72 6d 61 74 20 74  | 0    \ format t|
00002ce0  68 65 20 74 65 78 74 20  66 72 6f 6d 20 74 68 69  |he text from thi|
00002cf0  73 20 70 6f 69 6e 74 0d  09 7e 40 2e 65 5f 72 75  |s point..~@.e_ru|
00002d00  6e 20 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |n              E|
00002d10  51 55 44 20 30 20 20 20  20 5c 20 72 75 6e 20 74  |QUD 0    \ run t|
00002d20  68 65 20 70 72 6f 67 72  61 6d 20 62 65 69 6e 67  |he program being|
00002d30  20 65 64 69 74 65 64 0d  09 88 3b 2e 65 5f 72 75  | edited...;.e_ru|
00002d40  6e 61 6e 64 71 75 69 74  20 20 20 20 20 20 20 45  |nandquit       E|
00002d50  51 55 44 20 30 20 20 20  20 5c 20 61 73 20 61 62  |QUD 0    \ as ab|
00002d60  6f 76 65 20 62 75 74 20  74 68 65 6e 20 71 75 69  |ove but then qui|
00002d70  74 73 0d 09 92 42 2e 65  5f 62 61 73 69 63 20 20  |ts...B.e_basic  |
00002d80  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
00002d90  20 20 20 20 5c 20 64 72  6f 70 73 20 69 6e 74 6f  |    \ drops into|
00002da0  20 62 61 73 69 63 20 28  6f 72 20 6c 61 6e 67 75  | basic (or langu|
00002db0  61 67 65 29 0d 09 9c 3a  2e 65 5f 73 65 61 72 63  |age)...:.e_searc|
00002dc0  68 20 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |h           EQUD|
00002dd0  20 30 20 20 20 20 5c 20  63 61 6c 6c 65 64 20 62  | 0    \ called b|
00002de0  65 66 6f 72 65 20 61 20  73 65 61 72 63 68 0d 09  |efore a search..|
00002df0  a6 34 2e 65 5f 72 65 70  6c 61 63 65 20 20 20 20  |.4.e_replace    |
00002e00  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00002e10  5c 20 72 65 70 6c 61 63  65 20 61 20 73 74 72 69  |\ replace a stri|
00002e20  6e 67 0d 09 b0 39 2e 65  5f 73 65 6c 65 63 74 69  |ng...9.e_selecti|
00002e30  6f 6e 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |on        EQUD 0|
00002e40  20 20 20 20 5c 20 73 74  61 72 74 2f 65 6e 64 20  |    \ start/end |
00002e50  61 20 73 65 6c 65 63 74  69 6f 6e 0d 09 ba 3b 2e  |a selection...;.|
00002e60  65 5f 63 6c 69 63 6b 20  20 20 20 20 20 20 20 20  |e_click         |
00002e70  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 64  |   EQUD 0    \ d|
00002e80  6f 75 62 6c 65 2f 74 72  65 62 6c 65 20 63 6c 69  |ouble/treble cli|
00002e90  63 6b 20 65 74 63 0d 09  c4 3e 2e 65 5f 6d 65 73  |ck etc...>.e_mes|
00002ea0  73 61 67 65 20 20 20 20  20 20 20 20 20 20 45 51  |sage          EQ|
00002eb0  55 44 20 30 20 20 20 20  5c 20 75 6e 72 65 63 6f  |UD 0    \ unreco|
00002ec0  67 6e 69 73 65 64 20 77  69 6d 70 20 6d 65 73 73  |gnised wimp mess|
00002ed0  61 67 65 73 0d 09 ce 39  2e 65 5f 73 65 74 77 69  |ages...9.e_setwi|
00002ee0  64 74 68 20 20 20 20 20  20 20 20 20 45 51 55 44  |dth         EQUD|
00002ef0  20 30 20 20 20 20 5c 20  63 68 61 6e 67 69 6e 67  | 0    \ changing|
00002f00  20 77 69 6e 64 6f 77 20  77 69 64 74 68 0d 09 d8  | window width...|
00002f10  3d 2e 65 5f 6c 69 73 74  66 6e 73 20 20 20 20 20  |=.e_listfns     |
00002f20  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00002f30  20 70 72 6f 76 69 64 65  20 6c 69 73 74 20 6f 66  | provide list of|
00002f40  20 66 75 6e 63 74 69 6f  6e 73 0d 09 d9 3f 2e 65  | functions...?.e|
00002f50  5f 70 72 65 76 6c 69 6e  65 20 20 20 20 20 20 20  |_prevline       |
00002f60  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 66 69  |  EQUD 0    \ fi|
00002f70  6e 64 20 73 74 61 72 74  20 6f 66 20 75 70 64 61  |nd start of upda|
00002f80  74 65 20 72 65 67 69 6f  6e 0d 09 e2 04 0d 09 ec  |te region.......|
00002f90  06 5c 4c 0d 09 f6 04 0d  0a 00 07 5d 3a ed 0d 0a  |.\L........]:...|
00002fa0  0a 33 e3 20 70 61 73 73  3d 25 31 31 30 30 20 b8  |.3. pass=%1100 .|
00002fb0  20 25 31 31 31 30 20 88  20 32 3a 50 25 3d 30 3a  | %1110 . 2:P%=0:|
00002fc0  4f 25 3d 63 6f 64 65 25  3a 5b 4f 50 54 70 61 73  |O%=code%:[OPTpas|
00002fd0  73 0d 0a 14 04 0d 0a 1e  1e 5c 4c 20 7a 61 70 20  |s........\L zap |
00002fe0  65 6e 74 72 79 20 70 6f  69 6e 74 20 6f 66 66 73  |entry point offs|
00002ff0  65 74 73 0d 0a 28 04 0d  0a 32 37 2e 5a 61 70 5f  |ets..(...27.Zap_|
00003000  41 64 64 4d 6f 64 65 20  20 20 20 20 20 20 20 45  |AddMode        E|
00003010  51 55 44 20 30 20 20 20  20 5c 20 61 64 64 20 6e  |QUD 0    \ add n|
00003020  65 77 20 6d 6f 64 65 20  74 6f 20 7a 61 70 0d 0a  |ew mode to zap..|
00003030  3c 34 2e 5a 61 70 5f 43  6c 61 69 6d 20 20 20 20  |<4.Zap_Claim    |
00003040  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00003050  5c 20 63 6c 61 69 6d 20  68 65 61 70 20 62 6c 6f  |\ claim heap blo|
00003060  63 6b 0d 0a 46 35 2e 5a  61 70 5f 45 6e 73 75 72  |ck..F5.Zap_Ensur|
00003070  65 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |e         EQUD 0|
00003080  20 20 20 20 5c 20 65 6e  73 75 72 65 20 68 65 61  |    \ ensure hea|
00003090  70 20 62 6c 6f 63 6b 0d  0a 50 33 2e 5a 61 70 5f  |p block..P3.Zap_|
000030a0  46 72 65 65 20 20 20 20  20 20 20 20 20 20 20 45  |Free           E|
000030b0  51 55 44 20 30 20 20 20  20 5c 20 66 72 65 65 20  |QUD 0    \ free |
000030c0  68 65 61 70 20 62 6c 6f  63 6b 0d 0a 5a 2d 2e 5a  |heap block..Z-.Z|
000030d0  61 70 5f 4d 6f 76 65 42  79 74 65 73 20 20 20 20  |ap_MoveBytes    |
000030e0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 6d 6f  |  EQUD 0    \ mo|
000030f0  76 65 20 64 61 74 61 0d  0a 64 44 2e 5a 61 70 5f  |ve data..dD.Zap_|
00003100  53 70 6c 69 74 42 75 66  66 65 72 20 20 20 20 45  |SplitBuffer    E|
00003110  51 55 44 20 30 20 20 20  20 5c 20 73 70 6c 69 74  |QUD 0    \ split|
00003120  20 74 65 78 74 20 62 75  66 66 65 72 20 61 74 20  | text buffer at |
00003130  67 69 76 65 6e 20 70 6f  69 6e 74 0d 0a 6e 45 2e  |given point..nE.|
00003140  5a 61 70 5f 4e 65 77 54  78 74 53 74 61 74 75 73  |Zap_NewTxtStatus|
00003150  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 72  |   EQUD 0    \ r|
00003160  65 66 72 65 73 68 20 73  63 72 65 65 6e 20 61 66  |efresh screen af|
00003170  74 65 72 20 66 69 6c 65  20 63 68 61 6e 67 65 64  |ter file changed|
00003180  0d 0a 78 41 2e 5a 61 70  5f 53 61 76 65 54 78 74  |..xA.Zap_SaveTxt|
00003190  53 74 61 74 75 73 20 20  45 51 55 44 20 30 20 20  |Status  EQUD 0  |
000031a0  20 20 5c 20 73 61 76 65  20 69 6e 66 6f 20 62 65  |  \ save info be|
000031b0  66 6f 72 65 20 66 69 6c  65 20 63 68 61 6e 67 65  |fore file change|
000031c0  64 0d 0a 82 41 2e 5a 61  70 5f 43 6f 6d 6d 61 6e  |d...A.Zap_Comman|
000031d0  64 20 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |d        EQUD 0 |
000031e0  20 20 20 5c 20 65 78 65  63 75 74 65 20 69 6e 73  |   \ execute ins|
000031f0  65 72 74 2f 64 65 6c 65  74 65 20 63 6f 6d 6d 61  |ert/delete comma|
00003200  6e 64 0d 0a 8c 40 2e 5a  61 70 5f 4e 65 77 57 69  |nd...@.Zap_NewWi|
00003210  6e 53 74 61 74 75 73 20  20 20 45 51 55 44 20 30  |nStatus   EQUD 0|
00003220  20 20 20 20 5c 20 72 65  63 72 65 61 74 65 20 77  |    \ recreate w|
00003230  69 6e 64 6f 77 20 61 66  74 65 72 20 63 68 61 6e  |indow after chan|
00003240  67 65 0d 0a 96 44 2e 5a  61 70 5f 53 61 76 65 57  |ge...D.Zap_SaveW|
00003250  69 6e 53 74 61 74 75 73  20 20 45 51 55 44 20 30  |inStatus  EQUD 0|
00003260  20 20 20 20 5c 20 73 61  76 65 20 77 69 6e 64 6f  |    \ save windo|
00003270  77 20 73 74 61 74 75 73  20 62 65 66 6f 72 65 20  |w status before |
00003280  63 68 61 6e 67 65 0d 0a  a0 41 2e 5a 61 70 5f 52  |change...A.Zap_R|
00003290  65 70 6c 61 63 65 41 72  65 61 20 20 20 20 45 51  |eplaceArea    EQ|
000032a0  55 44 20 30 20 20 20 20  5c 20 72 65 70 6c 61 63  |UD 0    \ replac|
000032b0  65 20 6f 6e 65 20 73 74  72 69 6e 67 20 62 79 20  |e one string by |
000032c0  61 6e 6f 74 68 65 72 0d  0a aa 40 2e 5a 61 70 5f  |another...@.Zap_|
000032d0  50 6c 6f 74 43 61 72 65  74 20 20 20 20 20 20 45  |PlotCaret      E|
000032e0  51 55 44 20 30 20 20 20  20 5c 20 70 6c 6f 74 20  |QUD 0    \ plot |
000032f0  63 61 72 65 74 20 61 74  20 67 69 76 65 6e 20 70  |caret at given p|
00003300  6f 73 69 74 69 6f 6e 0d  0a b4 47 2e 5a 61 70 5f  |osition...G.Zap_|
00003310  52 65 66 6c 65 63 74 43  61 72 65 74 20 20 20 45  |ReflectCaret   E|
00003320  51 55 44 20 30 20 20 20  20 5c 20 70 6c 6f 74 20  |QUD 0    \ plot |
00003330  63 61 72 65 74 20 61 74  20 70 6f 73 6e 20 6f 6e  |caret at posn on|
00003340  6c 79 20 75 73 69 6e 67  20 63 5f 6f 66 66 0d 0a  |ly using c_off..|
00003350  be 2e 2e 5a 61 70 5f 53  65 74 43 61 72 65 74 20  |...Zap_SetCaret |
00003360  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00003370  5c 20 64 72 61 77 20 63  61 72 65 74 0d 0a c8 4a  |\ draw caret...J|
00003380  2e 5a 61 70 5f 43 6c 65  61 72 43 61 72 65 74 20  |.Zap_ClearCaret |
00003390  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
000033a0  64 72 61 77 20 6f 6c 64  20 63 61 72 65 74 20 70  |draw old caret p|
000033b0  6f 73 69 74 69 6f 6e 20  28 72 65 6d 6f 76 65 20  |osition (remove |
000033c0  63 61 72 65 74 29 0d 0a  d2 37 2e 5a 61 70 5f 44  |caret)...7.Zap_D|
000033d0  6f 43 6f 6d 6d 61 6e 64  20 20 20 20 20 20 45 51  |oCommand      EQ|
000033e0  55 44 20 30 20 20 20 20  5c 20 70 65 72 66 6f 72  |UD 0    \ perfor|
000033f0  6d 20 74 68 65 20 63 6f  6d 6d 61 6e 64 0d 0a dc  |m the command...|
00003400  45 2e 5a 61 70 5f 53 68  6f 77 43 75 72 73 6f 72  |E.Zap_ShowCursor|
00003410  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00003420  20 6d 61 6b 65 20 73 75  72 65 20 67 69 76 65 6e  | make sure given|
00003430  20 63 75 72 73 6f 72 20  69 73 20 76 69 73 69 62  | cursor is visib|
00003440  6c 65 0d 0a e6 37 2e 5a  61 70 5f 52 65 61 64 56  |le...7.Zap_ReadV|
00003450  61 72 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |ar        EQUD 0|
00003460  20 20 20 20 5c 20 72 65  61 64 20 61 20 7a 61 70  |    \ read a zap|
00003470  20 76 61 72 69 61 62 6c  65 0d 0a f0 38 2e 5a 61  | variable...8.Za|
00003480  70 5f 57 72 69 74 65 56  61 72 20 20 20 20 20 20  |p_WriteVar      |
00003490  20 45 51 55 44 20 30 20  20 20 20 5c 20 77 72 69  | EQUD 0    \ wri|
000034a0  74 65 20 61 20 7a 61 70  20 76 61 72 69 61 62 6c  |te a zap variabl|
000034b0  65 0d 0a fa 37 2e 5a 61  70 5f 53 61 76 65 46 69  |e...7.Zap_SaveFi|
000034c0  6c 65 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |le       EQUD 0 |
000034d0  20 20 20 5c 20 73 61 76  65 20 61 20 66 69 6c 65  |   \ save a file|
000034e0  20 74 6f 20 64 69 73 63  0d 0b 04 3f 2e 5a 61 70  | to disc...?.Zap|
000034f0  5f 46 69 6c 6c 57 6f 72  64 73 20 20 20 20 20 20  |_FillWords      |
00003500  45 51 55 44 20 30 20 20  20 20 5c 20 66 69 6c 6c  |EQUD 0    \ fill|
00003510  20 61 20 67 69 76 65 6e  20 61 72 65 61 20 6f 66  | a given area of|
00003520  20 6d 65 6d 6f 72 79 0d  0b 0e 3e 2e 5a 61 70 5f  | memory...>.Zap_|
00003530  55 70 64 61 74 65 4c 6e  73 20 20 20 20 20 20 45  |UpdateLns      E|
00003540  51 55 44 20 30 20 20 20  20 5c 20 75 70 64 61 74  |QUD 0    \ updat|
00003550  65 20 6c 69 6e 65 20 6e  75 6d 62 65 72 73 20 63  |e line numbers c|
00003560  6f 6c 75 6d 6e 0d 0b 18  44 2e 5a 61 70 5f 45 61  |olumn...D.Zap_Ea|
00003570  63 68 57 69 6e 64 6f 77  20 20 20 20 20 45 51 55  |chWindow     EQU|
00003580  44 20 30 20 20 20 20 5c  20 63 61 6c 6c 20 73 75  |D 0    \ call su|
00003590  62 20 66 6f 72 20 65 61  63 68 20 77 69 6e 64 6f  |b for each windo|
000035a0  77 20 6f 6e 20 66 69 6c  65 0d 0b 22 42 2e 5a 61  |w on file.."B.Za|
000035b0  70 5f 55 70 64 61 74 65  43 61 72 65 74 20 20 20  |p_UpdateCaret   |
000035c0  20 45 51 55 44 20 30 20  20 20 20 5c 20 75 70 64  | EQUD 0    \ upd|
000035d0  61 74 65 73 20 63 61 72  65 74 20 70 6f 73 6e 20  |ates caret posn |
000035e0  66 72 6f 6d 20 6f 66 66  73 65 74 0d 0b 2c 42 2e  |from offset..,B.|
000035f0  5a 61 70 5f 47 65 74 57  69 6e 64 53 74 61 74 65  |Zap_GetWindState|
00003600  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 75  |   EQUD 0    \ u|
00003610  70 64 61 74 65 20 52 38  20 62 6c 6f 63 6b 20 77  |pdate R8 block w|
00003620  69 74 68 20 77 69 6e 64  20 70 6f 73 6e 0d 0b 36  |ith wind posn..6|
00003630  31 2e 5a 61 70 5f 53 74  61 72 74 4f 70 20 20 20  |1.Zap_StartOp   |
00003640  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00003650  20 73 74 61 72 74 20 6d  75 6c 74 69 6f 70 0d 0b  | start multiop..|
00003660  40 30 2e 5a 61 70 5f 53  74 6f 70 4f 70 20 20 20  |@0.Zap_StopOp   |
00003670  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00003680  5c 20 73 74 6f 70 20 6d  75 6c 74 69 6f 70 0d 0b  |\ stop multiop..|
00003690  4a 44 2e 5a 61 70 5f 43  61 6c 6c 4d 6f 64 65 20  |JD.Zap_CallMode |
000036a0  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
000036b0  5c 20 63 61 6c 6c 20 61  20 6d 6f 64 65 20 65 6e  |\ call a mode en|
000036c0  74 72 79 20 70 6f 69 6e  74 20 75 73 69 6e 67 20  |try point using |
000036d0  52 38 0d 0b 54 34 2e 5a  61 70 5f 43 61 6c 6c 47  |R8..T4.Zap_CallG|
000036e0  69 76 65 6e 4d 6f 64 65  20 20 45 51 55 44 20 30  |ivenMode  EQUD 0|
000036f0  20 20 20 20 5c 20 63 61  6c 6c 20 6d 6f 64 65 20  |    \ call mode |
00003700  69 6e 20 52 31 30 0d 0b  5e 37 2e 5a 61 70 5f 52  |in R10..^7.Zap_R|
00003710  65 61 64 4d 6f 64 65 20  20 20 20 20 20 20 45 51  |eadMode       EQ|
00003720  55 44 20 30 20 20 20 20  5c 20 72 65 61 64 20 69  |UD 0    \ read i|
00003730  6e 66 6f 20 6f 6e 20 61  20 6d 6f 64 65 0d 0b 68  |nfo on a mode..h|
00003740  44 2e 5a 61 70 5f 46 69  6e 64 46 69 6c 65 20 20  |D.Zap_FindFile  |
00003750  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00003760  20 66 69 6e 64 20 77 69  6e 64 6f 77 20 6f 6e 20  | find window on |
00003770  61 20 67 69 76 65 6e 20  66 69 6c 65 20 6e 61 6d  |a given file nam|
00003780  65 0d 0b 72 40 2e 5a 61  70 5f 46 69 6e 64 57 69  |e..r@.Zap_FindWi|
00003790  6e 64 6f 77 20 20 20 20  20 45 51 55 44 20 30 20  |ndow     EQUD 0 |
000037a0  20 20 20 5c 20 66 69 6e  64 20 77 69 6e 64 6f 77  |   \ find window|
000037b0  20 6f 6e 20 61 20 6c 6f  61 64 65 64 20 66 69 6c  | on a loaded fil|
000037c0  65 0d 0b 7c 41 2e 5a 61  70 5f 43 6f 6e 76 57 69  |e..|A.Zap_ConvWi|
000037d0  6e 64 4f 66 66 20 20 20  20 45 51 55 44 20 30 20  |ndOff    EQUD 0 |
000037e0  20 20 20 5c 20 63 6f 6e  76 65 72 74 20 77 69 6e  |   \ convert win|
000037f0  64 6f 77 20 6f 66 66 20  74 6f 20 62 6c 6b 20 70  |dow off to blk p|
00003800  74 72 0d 0b 86 3f 2e 5a  61 70 5f 43 6f 6e 76 46  |tr...?.Zap_ConvF|
00003810  69 6c 65 4f 66 66 20 20  20 20 45 51 55 44 20 30  |ileOff    EQUD 0|
00003820  20 20 20 20 5c 20 63 6f  6e 76 65 72 74 20 66 69  |    \ convert fi|
00003830  6c 65 20 6f 66 66 20 74  6f 20 62 6c 6b 20 70 74  |le off to blk pt|
00003840  72 0d 0b 90 41 2e 5a 61  70 5f 47 65 74 57 69 6e  |r...A.Zap_GetWin|
00003850  64 4f 66 66 20 20 20 20  20 45 51 55 44 20 30 20  |dOff     EQUD 0 |
00003860  20 20 20 5c 20 63 6f 6e  76 65 72 74 20 77 69 6e  |   \ convert win|
00003870  64 6f 77 20 62 6c 6b 20  70 74 72 20 74 6f 20 6f  |dow blk ptr to o|
00003880  66 66 0d 0b 9a 3f 2e 5a  61 70 5f 47 65 74 46 69  |ff...?.Zap_GetFi|
00003890  6c 65 4f 66 66 20 20 20  20 20 45 51 55 44 20 30  |leOff     EQUD 0|
000038a0  20 20 20 20 5c 20 63 6f  6e 76 65 72 74 20 66 69  |    \ convert fi|
000038b0  6c 65 20 62 6c 6b 20 70  74 72 20 74 6f 20 6f 66  |le blk ptr to of|
000038c0  66 0d 0b a4 44 2e 5a 61  70 5f 47 6f 74 6f 4f 66  |f...D.Zap_GotoOf|
000038d0  66 73 65 74 20 20 20 20  20 45 51 55 44 20 30 20  |fset     EQUD 0 |
000038e0  20 20 20 5c 20 6d 6f 76  65 20 63 75 72 73 6f 72  |   \ move cursor|
000038f0  20 74 6f 20 67 69 76 65  6e 20 70 6f 73 6e 20 2b  | to given posn +|
00003900  20 6d 61 72 6b 0d 0b ae  44 2e 5a 61 70 5f 4a 75  | mark...D.Zap_Ju|
00003910  6d 70 74 6f 4f 66 66 73  65 74 20 20 20 45 51 55  |mptoOffset   EQU|
00003920  44 20 30 20 20 20 20 5c  20 6d 6f 76 65 20 63 75  |D 0    \ move cu|
00003930  72 73 6f 72 20 74 6f 20  67 69 76 65 6e 20 70 6f  |rsor to given po|
00003940  73 6e 20 6e 6f 6d 61 72  6b 0d 0b b8 43 2e 5a 61  |sn nomark...C.Za|
00003950  70 5f 46 69 6e 64 4f 66  66 73 65 74 20 20 20 20  |p_FindOffset    |
00003960  20 45 51 55 44 20 30 20  20 20 20 5c 20 66 69 6e  | EQUD 0    \ fin|
00003970  64 20 66 69 6c 65 20 6f  66 66 73 65 74 20 66 72  |d file offset fr|
00003980  6f 6d 20 78 2c 79 20 63  6f 6f 72 64 0d 0b c2 3e  |om x,y coord...>|
00003990  2e 5a 61 70 5f 4e 65 77  46 69 6c 65 54 69 74 6c  |.Zap_NewFileTitl|
000039a0  65 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |e   EQUD 0    \ |
000039b0  75 70 64 61 74 65 20 74  69 74 6c 65 62 61 72 73  |update titlebars|
000039c0  20 6f 6e 20 61 20 66 69  6c 65 0d 0b cc 3b 2e 5a  | on a file...;.Z|
000039d0  61 70 5f 49 6e 73 65 72  74 53 74 72 69 6e 67 20  |ap_InsertString |
000039e0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 69 6e  |  EQUD 0    \ in|
000039f0  73 65 72 74 20 73 74 72  69 6e 67 20 69 6e 74 6f  |sert string into|
00003a00  20 66 69 6c 65 0d 0b d6  38 2e 5a 61 70 5f 43 72  | file...8.Zap_Cr|
00003a10  65 61 74 65 46 69 6c 65  20 20 20 20 20 45 51 55  |eateFile     EQU|
00003a20  44 20 30 20 20 20 20 5c  20 63 72 65 61 74 65 20  |D 0    \ create |
00003a30  61 6e 20 65 6d 70 74 79  20 66 69 6c 65 0d 0b e0  |an empty file...|
00003a40  43 2e 5a 61 70 5f 4e 65  77 4c 69 6e 6b 45 6e 74  |C.Zap_NewLinkEnt|
00003a50  72 79 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |ry   EQUD 0    \|
00003a60  20 61 64 64 20 61 6e 20  65 6e 74 72 79 20 74 6f  | add an entry to|
00003a70  20 74 68 65 20 6c 69 6e  6b 73 20 74 61 62 6c 65  | the links table|
00003a80  0d 0b ea 40 2e 5a 61 70  5f 44 65 66 61 75 6c 74  |...@.Zap_Default|
00003a90  43 6c 69 63 6b 20 20 20  45 51 55 44 20 30 20 20  |Click   EQUD 0  |
00003aa0  20 20 5c 20 64 65 66 61  75 6c 74 20 6d 6f 75 73  |  \ default mous|
00003ab0  65 20 63 6c 69 63 6b 20  68 61 6e 64 6c 69 6e 67  |e click handling|
00003ac0  0d 0b f4 39 2e 5a 61 70  5f 50 75 74 43 61 72 65  |...9.Zap_PutCare|
00003ad0  74 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |t       EQUD 0  |
00003ae0  20 20 5c 20 70 75 74 20  6e 65 77 20 63 61 72 65  |  \ put new care|
00003af0  74 20 69 6e 20 66 69 6c  65 0d 0b fe 2d 2e 5a 61  |t in file...-.Za|
00003b00  70 5f 44 69 73 63 61 72  64 46 69 6c 65 20 20 20  |p_DiscardFile   |
00003b10  20 45 51 55 44 20 30 20  20 20 20 5c 20 6b 69 6c  | EQUD 0    \ kil|
00003b20  6c 20 66 69 6c 65 0d 0c  08 34 2e 5a 61 70 5f 44  |l file...4.Zap_D|
00003b30  65 6c 65 74 65 46 69 6c  65 20 20 20 20 20 45 51  |eleteFile     EQ|
00003b40  55 44 20 30 20 20 20 20  5c 20 70 72 6f 70 6d 74  |UD 0    \ propmt|
00003b50  20 74 68 65 6e 20 6b 69  6c 6c 0d 0c 12 2f 2e 5a  | then kill.../.Z|
00003b60  61 70 5f 44 69 73 63 61  72 64 57 69 6e 64 6f 77  |ap_DiscardWindow|
00003b70  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 6b 69  |  EQUD 0    \ ki|
00003b80  6c 6c 20 77 69 6e 64 6f  77 0d 0c 1c 3b 2e 5a 61  |ll window...;.Za|
00003b90  70 5f 44 65 6c 65 74 65  57 69 6e 64 6f 77 20 20  |p_DeleteWindow  |
00003ba0  20 45 51 55 44 20 30 20  20 20 20 5c 20 70 72 6f  | EQUD 0    \ pro|
00003bb0  6d 70 74 20 74 68 65 6e  20 6b 69 6c 6c 20 77 69  |mpt then kill wi|
00003bc0  6e 64 6f 77 0d 0c 26 41  2e 5a 61 70 5f 42 75 69  |ndow..&A.Zap_Bui|
00003bd0  6c 64 4d 65 6e 75 20 20  20 20 20 20 45 51 55 44  |ldMenu      EQUD|
00003be0  20 30 20 20 20 20 5c 20  63 72 65 61 74 65 20 61  | 0    \ create a|
00003bf0  20 76 61 72 69 61 62 6c  65 20 6c 65 6e 67 74 68  | variable length|
00003c00  20 6d 65 6e 75 0d 0c 30  37 2e 5a 61 70 5f 43 6c  | menu..07.Zap_Cl|
00003c10  65 61 72 53 65 6c 20 20  20 20 20 20 20 45 51 55  |earSel       EQU|
00003c20  44 20 30 20 20 20 20 5c  20 63 6c 65 61 72 20 73  |D 0    \ clear s|
00003c30  65 6c 65 63 74 65 64 20  61 72 65 61 0d 0c 3a 41  |elected area..:A|
00003c40  2e 5a 61 70 5f 43 72 65  61 74 65 46 69 6c 65 42  |.Zap_CreateFileB|
00003c50  6c 6b 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |lk  EQUD 0    \ |
00003c60  63 72 65 61 74 65 20 61  20 6e 65 77 20 66 69 6c  |create a new fil|
00003c70  65 20 62 6c 6f 63 6b 20  69 6e 20 52 39 0d 0c 44  |e block in R9..D|
00003c80  43 2e 5a 61 70 5f 43 72  65 61 74 65 57 69 6e 64  |C.Zap_CreateWind|
00003c90  42 6c 6b 20 20 45 51 55  44 20 30 20 20 20 20 5c  |Blk  EQUD 0    \|
00003ca0  20 63 72 65 61 74 65 20  61 20 6e 65 77 20 77 69  | create a new wi|
00003cb0  6e 64 6f 77 20 62 6c 6f  63 6b 20 69 6e 20 52 38  |ndow block in R8|
00003cc0  0d 0c 4e 3f 2e 5a 61 70  5f 47 65 74 53 65 6c 20  |..N?.Zap_GetSel |
00003cd0  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00003ce0  20 20 5c 20 67 65 74 20  69 6e 66 6f 20 6f 6e 20  |  \ get info on |
00003cf0  73 65 6c 65 63 74 65 64  20 72 65 67 69 6f 6e 0d  |selected region.|
00003d00  0c 58 41 2e 5a 61 70 5f  49 6e 73 65 72 74 4d 61  |.XA.Zap_InsertMa|
00003d10  72 6b 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |rk     EQUD 0   |
00003d20  20 5c 20 69 6e 73 65 72  74 20 6d 61 72 6b 65 72  | \ insert marker|
00003d30  20 61 74 20 67 69 76 65  6e 20 6f 66 66 73 65 74  | at given offset|
00003d40  0d 0c 62 38 2e 5a 61 70  5f 49 6e 73 74 61 6c 6c  |..b8.Zap_Install|
00003d50  46 69 6c 65 20 20 20 20  45 51 55 44 20 30 20 20  |File    EQUD 0  |
00003d60  20 20 5c 20 6c 6f 61 64  20 61 20 66 69 6c 65 20  |  \ load a file |
00003d70  69 6e 74 6f 20 5a 61 70  0d 0c 6c 39 2e 5a 61 70  |into Zap..l9.Zap|
00003d80  5f 4e 65 77 4d 6f 64 65  20 20 20 20 20 20 20 20  |_NewMode        |
00003d90  45 51 55 44 20 30 20 20  20 20 5c 20 63 68 61 6e  |EQUD 0    \ chan|
00003da0  67 65 20 6d 6f 64 65 20  6f 66 20 61 20 66 69 6c  |ge mode of a fil|
00003db0  65 0d 0c 76 40 2e 5a 61  70 5f 4e 65 77 54 69 74  |e..v@.Zap_NewTit|
00003dc0  6c 65 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |le       EQUD 0 |
00003dd0  20 20 20 5c 20 75 70 64  61 74 65 20 74 68 65 20  |   \ update the |
00003de0  74 69 74 6c 65 20 6f 66  20 61 20 77 69 6e 64 6f  |title of a windo|
00003df0  77 0d 0c 80 3e 2e 5a 61  70 5f 43 61 6c 6c 42 61  |w...>.Zap_CallBa|
00003e00  73 65 4d 6f 64 65 20 20  20 45 51 55 44 20 30 20  |seMode   EQUD 0 |
00003e10  20 20 20 5c 20 63 61 6c  6c 20 62 61 73 65 20 6d  |   \ call base m|
00003e20  6f 64 65 20 65 6e 74 72  79 20 70 6f 69 6e 74 0d  |ode entry point.|
00003e30  0c 8a 3f 2e 5a 61 70 5f  4e 65 77 56 69 65 77 20  |..?.Zap_NewView |
00003e40  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00003e50  20 5c 20 6f 70 65 6e 20  61 20 6e 65 77 20 77 69  | \ open a new wi|
00003e60  6e 64 6f 77 20 6f 6e 20  61 20 66 69 6c 65 0d 0c  |ndow on a file..|
00003e70  94 3c 2e 5a 61 70 5f 52  65 61 64 53 65 6c 20 20  |.<.Zap_ReadSel  |
00003e80  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00003e90  5c 20 72 65 61 64 20 74  68 65 20 73 65 6c 65 63  |\ read the selec|
00003ea0  74 65 64 20 72 65 67 69  6f 6e 0d 0c 9e 40 2e 5a  |ted region...@.Z|
00003eb0  61 70 5f 52 65 70 6c 61  63 65 20 20 20 20 20 20  |ap_Replace      |
00003ec0  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 70 65  |  EQUD 0    \ pe|
00003ed0  72 66 6f 72 6d 20 61 20  73 65 61 72 63 68 20 61  |rform a search a|
00003ee0  6e 64 20 72 65 70 6c 61  63 65 0d 0c a8 39 2e 5a  |nd replace...9.Z|
00003ef0  61 70 5f 53 65 61 72 63  68 20 20 20 20 20 20 20  |ap_Search       |
00003f00  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 70 65  |  EQUD 0    \ pe|
00003f10  72 66 6f 72 6d 20 61 20  66 69 6c 65 20 73 65 61  |rform a file sea|
00003f20  72 63 68 0d 0c b2 33 2e  5a 61 70 5f 53 65 6c 65  |rch...3.Zap_Sele|
00003f30  63 74 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |ct         EQUD |
00003f40  30 20 20 20 20 5c 20 73  65 6c 65 63 74 20 61 20  |0    \ select a |
00003f50  72 65 67 69 6f 6e 0d 0c  bc 39 2e 5a 61 70 5f 41  |region...9.Zap_A|
00003f60  6c 74 65 72 53 65 6c 20  20 20 20 20 20 20 45 51  |lterSel       EQ|
00003f70  55 44 20 30 20 20 20 20  5c 20 61 6c 74 65 72 20  |UD 0    \ alter |
00003f80  73 65 6c 65 63 74 65 64  20 72 65 67 69 6f 6e 0d  |selected region.|
00003f90  0c c6 3e 2e 5a 61 70 5f  4f 66 66 4c 69 6e 65 43  |..>.Zap_OffLineC|
00003fa0  6f 6c 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |ol     EQUD 0   |
00003fb0  20 5c 20 63 6f 6e 76 65  72 74 20 66 69 6c 65 20  | \ convert file |
00003fc0  6f 66 66 73 65 74 20 74  6f 20 58 2c 59 0d 0c d0  |offset to X,Y...|
00003fd0  37 2e 5a 61 70 5f 41 64  64 43 6f 6d 6d 61 6e 64  |7.Zap_AddCommand|
00003fe0  73 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |s    EQUD 0    \|
00003ff0  20 61 64 64 20 61 20 63  6f 6d 6d 61 6e 64 20 74  | add a command t|
00004000  61 62 6c 65 0d 0c da 3e  2e 5a 61 70 5f 4d 69 6e  |able...>.Zap_Min|
00004010  69 57 72 69 74 65 20 20  20 20 20 20 45 51 55 44  |iWrite      EQUD|
00004020  20 30 20 20 20 20 5c 20  69 6e 73 65 72 74 20 63  | 0    \ insert c|
00004030  68 61 72 73 20 69 6e 20  6d 69 6e 69 62 75 66 66  |hars in minibuff|
00004040  65 72 0d 0c e4 44 2e 5a  61 70 5f 4d 69 6e 69 50  |er...D.Zap_MiniP|
00004050  72 6f 6d 70 74 20 20 20  20 20 45 51 55 44 20 30  |rompt     EQUD 0|
00004060  20 20 20 20 5c 20 73 65  74 2f 63 68 61 6e 67 65  |    \ set/change|
00004070  20 74 68 65 20 6d 69 6e  69 62 75 66 66 65 72 20  | the minibuffer |
00004080  70 72 6f 6d 70 74 0d 0c  ee 3f 2e 5a 61 70 5f 4d  |prompt...?.Zap_M|
00004090  69 6e 69 55 70 64 61 74  65 20 20 20 20 20 45 51  |iniUpdate     EQ|
000040a0  55 44 20 30 20 20 20 20  5c 20 75 70 64 61 74 65  |UD 0    \ update|
000040b0  20 6d 69 6e 69 62 75 66  66 65 72 20 6f 6e 20 73  | minibuffer on s|
000040c0  63 72 65 65 6e 0d 0c f8  3d 2e 5a 61 70 5f 41 64  |creen...=.Zap_Ad|
000040d0  64 59 61 6e 6b 52 65 67  69 6f 6e 20 20 45 51 55  |dYankRegion  EQU|
000040e0  44 20 30 20 20 20 20 5c  20 61 64 64 20 61 20 72  |D 0    \ add a r|
000040f0  65 67 69 6f 6e 20 74 6f  20 6b 69 6c 6c 20 72 69  |egion to kill ri|
00004100  6e 67 0d 0d 02 43 2e 5a  61 70 5f 46 69 6e 64 43  |ng...C.Zap_FindC|
00004110  6f 6d 6d 61 6e 64 20 20  20 20 45 51 55 44 20 30  |ommand    EQUD 0|
00004120  20 20 20 20 5c 20 63 6f  6e 76 65 72 74 20 63 6f  |    \ convert co|
00004130  6d 6d 61 6e 64 20 6e 61  6d 65 20 74 6f 20 61 64  |mmand name to ad|
00004140  64 72 65 73 73 0d 0d 0c  36 2e 5a 61 70 5f 50 72  |dress...6.Zap_Pr|
00004150  6f 63 65 73 73 43 6f 6d  6d 61 6e 64 20 45 51 55  |ocessCommand EQU|
00004160  44 20 30 20 20 20 20 5c  20 63 61 6c 6c 20 61 20  |D 0    \ call a |
00004170  5a 61 70 20 63 6f 6d 6d  61 6e 64 0d 0d 16 37 2e  |Zap command...7.|
00004180  5a 61 70 5f 46 69 6e 64  4b 65 79 45 6e 74 72 79  |Zap_FindKeyEntry|
00004190  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 72  |   EQUD 0    \ r|
000041a0  65 61 64 20 61 20 6b 65  79 6d 61 70 20 65 6e 74  |ead a keymap ent|
000041b0  72 79 0d 0d 20 40 2e 5a  61 70 5f 46 69 6e 64 4c  |ry.. @.Zap_FindL|
000041c0  65 61 66 4e 61 6d 65 20  20 20 45 51 55 44 20 30  |eafName   EQUD 0|
000041d0  20 20 20 20 5c 20 66 69  6e 64 20 6c 65 61 66 20  |    \ find leaf |
000041e0  70 61 72 74 20 6f 66 20  61 20 66 69 6c 65 6e 61  |part of a filena|
000041f0  6d 65 0d 0d 2a 3d 2e 5a  61 70 5f 4e 65 77 46 69  |me..*=.Zap_NewFi|
00004200  6c 65 4e 61 6d 65 20 20  20 20 45 51 55 44 20 30  |leName    EQUD 0|
00004210  20 20 20 20 5c 20 63 68  61 6e 67 65 20 74 68 65  |    \ change the|
00004220  20 6e 61 6d 65 20 6f 66  20 61 20 66 69 6c 65 0d  | name of a file.|
00004230  0d 34 3f 2e 5a 61 70 5f  43 68 65 63 6b 46 69 6c  |.4?.Zap_CheckFil|
00004240  65 4e 61 6d 65 20 20 45  51 55 44 20 30 20 20 20  |eName  EQUD 0   |
00004250  20 5c 20 73 65 65 20 69  66 20 66 69 6c 65 20 63  | \ see if file c|
00004260  6f 6e 74 61 69 6e 73 20  61 20 70 61 74 68 0d 0d  |ontains a path..|
00004270  3e 43 2e 5a 61 70 5f 47  65 74 43 75 72 72 44 69  |>C.Zap_GetCurrDi|
00004280  72 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |r     EQUD 0    |
00004290  5c 20 66 69 6e 64 20 74  68 65 20 63 75 72 72 65  |\ find the curre|
000042a0  6e 74 20 64 69 72 65 63  74 6f 72 79 20 6e 61 6d  |nt directory nam|
000042b0  65 0d 0d 48 43 2e 5a 61  70 5f 4d 69 6e 69 57 72  |e..HC.Zap_MiniWr|
000042c0  69 74 65 43 20 20 20 20  20 45 51 55 44 20 30 20  |iteC     EQUD 0 |
000042d0  20 20 20 5c 20 77 72 69  74 65 20 61 20 63 68 61  |   \ write a cha|
000042e0  72 61 63 74 65 72 20 74  6f 20 6d 69 6e 69 62 75  |racter to minibu|
000042f0  66 66 65 72 0d 0d 52 34  2e 5a 61 70 5f 4d 69 6e  |ffer..R4.Zap_Min|
00004300  69 43 6c 65 61 72 20 20  20 20 20 20 45 51 55 44  |iClear      EQUD|
00004310  20 30 20 20 20 20 5c 20  63 6c 65 61 72 20 6d 69  | 0    \ clear mi|
00004320  6e 69 62 75 66 66 65 72  0d 0d 5c 3d 2e 5a 61 70  |nibuffer..\=.Zap|
00004330  5f 4d 69 6e 69 53 74 61  72 74 20 20 20 20 20 20  |_MiniStart      |
00004340  45 51 55 44 20 30 20 20  20 20 5c 20 73 74 61 72  |EQUD 0    \ star|
00004350  74 20 75 70 20 61 20 6e  65 77 20 6d 69 6e 69 62  |t up a new minib|
00004360  75 66 66 65 72 0d 0d 66  3b 2e 5a 61 70 5f 4d 69  |uffer..f;.Zap_Mi|
00004370  6e 69 45 76 61 6c 20 20  20 20 20 20 20 45 51 55  |niEval       EQU|
00004380  44 20 30 20 20 20 20 5c  20 74 75 72 6e 20 73 74  |D 0    \ turn st|
00004390  72 69 6e 67 20 69 6e 74  6f 20 6e 75 6d 62 65 72  |ring into number|
000043a0  0d 0d 70 3c 2e 5a 61 70  5f 43 6f 6d 6d 61 6e 64  |..p<.Zap_Command|
000043b0  53 74 72 69 6e 67 20 20  45 51 55 44 20 30 20 20  |String  EQUD 0  |
000043c0  20 20 5c 20 65 78 65 63  75 74 65 20 61 20 73 74  |  \ execute a st|
000043d0  72 69 6e 67 20 63 6f 6d  6d 61 6e 64 0d 0d 7a 3a  |ring command..z:|
000043e0  2e 5a 61 70 5f 50 72 6f  63 65 73 73 4b 65 79 73  |.Zap_ProcessKeys|
000043f0  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00004400  70 72 6f 63 65 73 73 20  61 20 6c 69 73 74 20 6f  |process a list o|
00004410  66 20 6b 65 79 73 0d 0d  84 44 2e 5a 61 70 5f 50  |f keys...D.Zap_P|
00004420  72 6f 63 65 73 73 41 4b  65 79 20 20 20 20 45 51  |rocessAKey    EQ|
00004430  55 44 20 30 20 20 20 20  5c 20 70 72 6f 63 65 73  |UD 0    \ proces|
00004440  73 20 61 20 73 69 6e 67  6c 65 20 6b 65 79 20 61  |s a single key a|
00004450  73 20 69 66 20 74 79 70  65 64 0d 0d 8e 35 2e 5a  |s if typed...5.Z|
00004460  61 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 20 20 20  |ap_OpenWindow   |
00004470  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 6f 70  |  EQUD 0    \ op|
00004480  65 6e 20 61 20 5a 61 70  20 77 69 6e 64 6f 77 0d  |en a Zap window.|
00004490  0d 98 43 2e 5a 61 70 5f  52 65 73 74 6f 72 65 4d  |..C.Zap_RestoreM|
000044a0  6f 64 65 57 6f 72 64 20  45 51 55 44 20 30 20 20  |odeWord EQUD 0  |
000044b0  20 5c 20 72 65 73 74 6f  72 65 20 6d 6f 64 65 20  | \ restore mode |
000044c0  6f 70 74 69 6f 6e 73 20  6f 6e 20 65 5f 73 74 61  |options on e_sta|
000044d0  72 74 0d 0d a2 3e 2e 5a  61 70 5f 53 61 76 65 4d  |rt...>.Zap_SaveM|
000044e0  6f 64 65 57 6f 72 64 20  20 20 45 51 55 44 20 30  |odeWord   EQUD 0|
000044f0  20 20 20 20 5c 20 73 61  76 65 20 6d 6f 64 65 20  |    \ save mode |
00004500  6f 70 74 69 6f 6e 73 20  6f 6e 20 65 5f 65 6e 64  |options on e_end|
00004510  0d 0d ac 36 2e 5a 61 70  5f 47 65 74 4d 6f 64 65  |...6.Zap_GetMode|
00004520  57 6f 72 64 20 20 20 20  45 51 55 44 20 30 20 20  |Word    EQUD 0  |
00004530  20 20 5c 20 72 65 61 64  20 74 68 65 20 6d 6f 64  |  \ read the mod|
00004540  65 20 77 6f 72 64 0d 0d  b6 37 2e 5a 61 70 5f 50  |e word...7.Zap_P|
00004550  75 74 4d 6f 64 65 57 6f  72 64 20 20 20 20 45 51  |utModeWord    EQ|
00004560  55 44 20 30 20 20 20 20  5c 20 77 72 69 74 65 20  |UD 0    \ write |
00004570  74 68 65 20 6d 6f 64 65  20 77 6f 72 64 0d 0d c0  |the mode word...|
00004580  36 2e 5a 61 70 5f 42 61  73 65 4d 6f 64 65 20 20  |6.Zap_BaseMode  |
00004590  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
000045a0  20 63 61 6c 6c 20 74 68  65 20 62 61 73 65 20 6d  | call the base m|
000045b0  6f 64 65 0d 0d ca 44 2e  5a 61 70 5f 52 65 61 64  |ode...D.Zap_Read|
000045c0  57 6f 72 64 20 20 20 20  20 20 20 45 51 55 44 20  |Word       EQUD |
000045d0  30 20 20 20 20 5c 20 72  65 61 64 20 61 20 77 6f  |0    \ read a wo|
000045e0  72 64 20 66 72 6f 6d 20  74 68 65 20 66 69 6c 65  |rd from the file|
000045f0  20 62 75 66 66 65 72 0d  0d d4 45 2e 5a 61 70 5f  | buffer...E.Zap_|
00004600  52 65 70 6c 61 63 65 57  6f 72 64 20 20 20 20 45  |ReplaceWord    E|
00004610  51 55 44 20 30 20 20 20  20 5c 20 72 65 70 6c 61  |QUD 0    \ repla|
00004620  63 65 20 61 20 77 6f 72  64 20 69 6e 20 74 68 65  |ce a word in the|
00004630  20 66 69 6c 65 20 62 75  66 66 65 72 0d 0d d5 3b  | file buffer...;|
00004640  2e 5a 61 70 5f 4d 6f 64  65 43 6f 6c 6f 75 72 20  |.Zap_ModeColour |
00004650  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00004660  52 65 61 64 20 63 6f 6c  6f 75 72 20 64 65 66 69  |Read colour defi|
00004670  6e 69 74 69 6f 6e 73 0d  0d d6 37 2e 5a 61 70 5f  |nitions...7.Zap_|
00004680  46 69 6e 64 49 6e 70 75  74 20 20 20 20 20 20 45  |FindInput      E|
00004690  51 55 44 20 30 20 20 20  20 5c 20 46 69 6e 64 20  |QUD 0    \ Find |
000046a0  69 6e 70 75 74 20 70 6f  73 69 74 69 6f 6e 0d 0d  |input position..|
000046b0  d7 43 2e 5a 61 70 5f 43  6c 69 70 43 61 63 68 65  |.C.Zap_ClipCache|
000046c0  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
000046d0  5c 20 4d 6f 76 65 20 74  68 65 20 63 61 63 68 65  |\ Move the cache|
000046e0  20 72 65 66 65 72 65 6e  63 65 20 70 6f 69 6e 74  | reference point|
000046f0  2e 0d 0d d8 43 2e 5a 61  70 5f 4d 6f 64 65 44 61  |....C.Zap_ModeDa|
00004700  74 61 20 20 20 20 20 20  20 45 51 55 44 20 30 20  |ta       EQUD 0 |
00004710  20 20 20 5c 20 52 65 61  64 2f 77 72 69 74 65 20  |   \ Read/write |
00004720  5a 61 70 20 64 61 74 61  20 6d 6f 64 65 20 77 6f  |Zap data mode wo|
00004730  72 64 73 2e 0d 0d d9 43  2e 5a 61 70 5f 57 68 69  |rds....C.Zap_Whi|
00004740  63 68 4d 6f 64 65 20 20  20 20 20 20 45 51 55 44  |chMode      EQUD|
00004750  20 30 20 20 20 20 5c 20  57 68 69 63 68 20 6d 6f  | 0    \ Which mo|
00004760  64 65 20 74 6f 20 6c 6f  61 64 20 61 20 66 69 6c  |de to load a fil|
00004770  65 20 69 6e 74 6f 2e 0d  0d da 40 2e 5a 61 70 5f  |e into....@.Zap_|
00004780  4d 6f 64 65 4e 75 6d 62  65 72 20 20 20 20 20 45  |ModeNumber     E|
00004790  51 55 44 20 30 20 20 20  20 5c 20 43 6f 6e 76 65  |QUD 0    \ Conve|
000047a0  72 74 20 6d 6f 64 65 20  6e 61 6d 65 20 74 6f 20  |rt mode name to |
000047b0  6e 75 6d 62 65 72 2e 0d  0d db 44 2e 5a 61 70 5f  |number....D.Zap_|
000047c0  53 65 6e 64 44 61 74 61  53 61 76 65 20 20 20 45  |SendDataSave   E|
000047d0  51 55 44 20 30 20 20 20  20 5c 20 49 6e 69 74 69  |QUD 0    \ Initi|
000047e0  61 74 65 20 64 61 74 61  20 74 72 61 6e 73 66 65  |ate data transfe|
000047f0  72 20 70 72 6f 74 6f 63  6f 6c 2e 0d 0d dc 39 2e  |r protocol....9.|
00004800  5a 61 70 5f 57 61 72 6e  69 6e 67 20 20 20 20 20  |Zap_Warning     |
00004810  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 53  |   EQUD 0    \ S|
00004820  68 6f 77 20 77 61 72 6e  69 6e 67 20 6d 65 73 73  |how warning mess|
00004830  61 67 65 2e 0d 0d dd 40  2e 5a 61 70 5f 41 6c 6c  |age....@.Zap_All|
00004840  57 69 6e 64 6f 77 20 20  20 20 20 20 45 51 55 44  |Window      EQUD|
00004850  20 30 20 20 20 20 5c 20  45 78 61 6d 69 6e 65 20  | 0    \ Examine |
00004860  65 61 63 68 20 77 69 6e  64 6f 77 20 69 6e 20 74  |each window in t|
00004870  75 72 6e 2e 0d 0d de 04  0d 0d e8 06 5c 4c 0d 0d  |urn.........\L..|
00004880  f2 04 0d 0d fc 07 5d 3a  ed 0d 0e 06 33 e3 20 70  |......]:....3. p|
00004890  61 73 73 3d 25 31 31 30  30 20 b8 20 25 31 31 31  |ass=%1100 . %111|
000048a0  30 20 88 20 32 3a 50 25  3d 30 3a 4f 25 3d 63 6f  |0 . 2:P%=0:O%=co|
000048b0  64 65 25 3a 5b 4f 50 54  70 61 73 73 0d 0e 10 04  |de%:[OPTpass....|
000048c0  0d 0e 1a 19 5c 4c 20 7a  61 70 20 72 65 64 72 61  |....\L zap redra|
000048d0  77 20 6f 66 66 73 65 74  73 0d 0e 24 04 0d 0e 2e  |w offsets..$....|
000048e0  30 2e 72 5f 66 6c 61 67  73 20 20 20 20 20 20 20  |0.r_flags       |
000048f0  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00004900  20 52 65 64 72 61 77 20  66 6c 61 67 73 0d 0e 38  | Redraw flags..8|
00004910  35 2e 72 5f 6d 69 6e 78  20 20 20 20 20 20 20 20  |5.r_minx        |
00004920  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00004930  20 6d 69 6e 20 78 20 69  6e 20 70 69 78 73 20 69  | min x in pixs i|
00004940  6e 63 0d 0e 42 40 2e 72  5f 6d 69 6e 79 20 20 20  |nc..B@.r_miny   |
00004950  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
00004960  20 20 20 20 5c 20 6d 69  6e 20 79 20 69 6e 20 70  |    \ min y in p|
00004970  69 78 73 20 69 6e 63 20  28 66 72 6f 6d 20 74 6f  |ixs inc (from to|
00004980  70 29 0d 0e 4c 35 2e 72  5f 6d 61 78 78 20 20 20  |p)..L5.r_maxx   |
00004990  20 20 20 20 20 20 20 20  20 20 45 51 55 44 20 30  |          EQUD 0|
000049a0  20 20 20 20 5c 20 6d 61  78 20 78 20 69 6e 20 70  |    \ max x in p|
000049b0  69 78 73 20 65 78 63 0d  0e 56 40 2e 72 5f 6d 61  |ixs exc..V@.r_ma|
000049c0  78 79 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |xy             E|
000049d0  51 55 44 20 30 20 20 20  20 5c 20 6d 61 78 20 79  |QUD 0    \ max y|
000049e0  20 69 6e 20 70 69 78 73  20 65 78 63 20 28 66 72  | in pixs exc (fr|
000049f0  6f 6d 20 74 6f 70 29 0d  0e 60 39 2e 72 5f 73 63  |om top)..`9.r_sc|
00004a00  72 65 65 6e 20 20 20 20  20 20 20 20 20 20 20 45  |reen           E|
00004a10  51 55 44 20 30 20 20 20  20 5c 20 61 64 64 72 65  |QUD 0    \ addre|
00004a20  73 73 20 6f 66 20 74 68  65 20 73 63 72 65 65 6e  |ss of the screen|
00004a30  0d 0e 6a 39 2e 72 5f 62  70 6c 20 20 20 20 20 20  |..j9.r_bpl      |
00004a40  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00004a50  20 20 5c 20 62 79 74 65  73 20 70 65 72 20 72 61  |  \ bytes per ra|
00004a60  73 74 65 72 20 6c 69 6e  65 0d 0e 74 35 2e 72 5f  |ster line..t5.r_|
00004a70  62 70 70 20 20 20 20 20  20 20 20 20 20 20 20 20  |bpp             |
00004a80  20 45 51 55 44 20 30 20  20 20 20 5c 20 6c 6f 67  | EQUD 0    \ log|
00004a90  20 62 61 73 65 20 32 20  6f 66 20 62 70 70 0d 0e  | base 2 of bpp..|
00004aa0  7e 40 2e 72 5f 63 68 61  72 77 20 20 20 20 20 20  |~@.r_charw      |
00004ab0  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00004ac0  5c 20 77 69 64 74 68 20  6f 66 20 61 20 63 68 61  |\ width of a cha|
00004ad0  72 61 63 74 65 72 20 69  6e 20 70 69 78 73 0d 0e  |racter in pixs..|
00004ae0  88 41 2e 72 5f 63 68 61  72 68 20 20 20 20 20 20  |.A.r_charh      |
00004af0  20 20 20 20 20 20 45 51  55 44 20 30 20 20 20 20  |      EQUD 0    |
00004b00  5c 20 68 65 69 67 68 74  20 6f 66 20 61 20 63 68  |\ height of a ch|
00004b10  61 72 61 63 74 65 72 20  69 6e 20 70 69 78 73 0d  |aracter in pixs.|
00004b20  0e 92 3d 2e 72 5f 63 61  64 64 72 20 20 20 20 20  |..=.r_caddr     |
00004b30  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00004b40  20 5c 20 63 61 63 68 65  20 61 64 64 72 65 73 73  | \ cache address|
00004b50  20 2f 20 66 6f 6e 74 20  6e 61 6d 65 0d 0e 9c 39  | / font name...9|
00004b60  2e 72 5f 63 62 70 6c 20  20 20 20 20 20 20 20 20  |.r_cbpl         |
00004b70  20 20 20 20 45 51 55 44  20 30 20 20 20 20 5c 20  |    EQUD 0    \ |
00004b80  62 79 74 65 73 20 70 65  72 20 63 61 63 68 65 64  |bytes per cached|
00004b90  20 6c 69 6e 65 0d 0e a6  3e 2e 72 5f 63 62 70 63  | line...>.r_cbpc|
00004ba0  20 20 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |             EQU|
00004bb0  44 20 30 20 20 20 20 5c  20 62 79 74 65 73 20 70  |D 0    \ bytes p|
00004bc0  65 72 20 63 61 63 68 65  64 20 63 68 61 72 61 63  |er cached charac|
00004bd0  74 65 72 0d 0e b0 3a 2e  72 5f 6c 69 6e 65 73 70  |ter...:.r_linesp|
00004be0  20 20 20 20 20 20 20 20  20 20 20 45 51 55 44 20  |           EQUD |
00004bf0  30 20 20 20 20 5c 20 6c  69 6e 65 20 73 70 61 63  |0    \ line spac|
00004c00  69 6e 67 20 69 6e 20 70  69 78 65 6c 73 0d 0e ba  |ing in pixels...|
00004c10  3c 2e 72 5f 64 61 74 61  20 20 20 20 20 20 20 20  |<.r_data        |
00004c20  20 20 20 20 20 45 51 55  44 20 30 20 20 20 20 5c  |     EQUD 0    \|
00004c30  20 61 64 64 72 65 73 73  20 6f 66 20 64 61 74 61  | address of data|
00004c40  20 74 6f 20 70 72 69 6e  74 0d 0e c4 3b 2e 72 5f  | to print...;.r_|
00004c50  73 63 72 6f 6c 6c 78 20  20 20 20 20 20 20 20 20  |scrollx         |
00004c60  20 45 51 55 44 20 30 20  20 20 20 5c 20 78 20 73  | EQUD 0    \ x s|
00004c70  63 72 6f 6c 6c 20 6f 66  66 73 65 74 20 69 6e 20  |croll offset in |
00004c80  70 69 78 73 0d 0e ce 3b  2e 72 5f 73 63 72 6f 6c  |pixs...;.r_scrol|
00004c90  6c 79 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |ly          EQUD|
00004ca0  20 30 20 20 20 20 5c 20  79 20 73 63 72 6f 6c 6c  | 0    \ y scroll|
00004cb0  20 6f 66 66 73 65 74 20  69 6e 20 70 69 78 73 0d  | offset in pixs.|
00004cc0  0e d8 3b 2e 72 5f 70 61  6c 65 74 74 65 20 20 20  |..;.r_palette   |
00004cd0  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00004ce0  20 5c 20 61 64 64 72 65  73 73 20 6f 66 20 70 61  | \ address of pa|
00004cf0  6c 65 74 74 65 20 64 61  74 61 0d 0e e2 3a 2e 72  |lette data...:.r|
00004d00  5f 66 6f 72 20 20 20 20  20 20 20 20 20 20 20 20  |_for            |
00004d10  20 20 45 51 55 44 20 30  20 20 20 20 5c 20 73 74  |  EQUD 0    \ st|
00004d20  61 72 74 20 66 6f 72 67  72 6f 75 6e 64 20 63 6f  |art forground co|
00004d30  6c 6f 75 72 0d 0e ec 3b  2e 72 5f 62 61 63 20 20  |lour...;.r_bac  |
00004d40  20 20 20 20 20 20 20 20  20 20 20 20 45 51 55 44  |            EQUD|
00004d50  20 30 20 20 20 20 5c 20  73 74 61 72 74 20 62 61  | 0    \ start ba|
00004d60  63 6b 67 72 6f 75 6e 64  20 63 6f 6c 6f 75 72 0d  |ckground colour.|
00004d70  0e f6 38 2e 72 5f 77 6f  72 6b 61 72 65 61 20 20  |..8.r_workarea  |
00004d80  20 20 20 20 20 20 20 45  51 55 44 20 30 20 20 20  |       EQUD 0   |
00004d90  20 5c 20 61 64 64 72 65  73 73 20 6f 66 20 77 6f  | \ address of wo|
00004da0  72 6b 20 61 72 65 61 0d  0e f7 42 2e 72 5f 6d 61  |rk area...B.r_ma|
00004db0  67 78 20 20 20 20 20 20  20 20 20 20 20 20 20 45  |gx             E|
00004dc0  51 55 44 20 30 20 20 20  20 5c 20 6c 6f 67 20 32  |QUD 0    \ log 2|
00004dd0  20 6f 66 20 6e 75 6d 20  6f 66 20 78 20 6f 73 20  | of num of x os |
00004de0  70 65 72 20 70 69 78 65  6c 0d 0e f8 42 2e 72 5f  |per pixel...B.r_|
00004df0  6d 61 67 79 20 20 20 20  20 20 20 20 20 20 20 20  |magy            |
00004e00  20 45 51 55 44 20 30 20  20 20 20 5c 20 6c 6f 67  | EQUD 0    \ log|
00004e10  20 32 20 6f 66 20 6e 75  6d 20 6f 66 20 79 20 6f  | 2 of num of y o|
00004e20  73 20 70 65 72 20 70 69  78 65 6c 0d 0e f9 3a 2e  |s per pixel...:.|
00004e30  72 5f 78 73 69 7a 65 20  20 20 20 20 20 20 20 20  |r_xsize         |
00004e40  20 20 20 45 51 55 44 20  30 20 20 20 20 5c 20 73  |   EQUD 0    \ s|
00004e50  63 72 65 65 6e 20 77 69  64 74 68 20 69 6e 20 70  |creen width in p|
00004e60  69 78 65 6c 73 0d 0e fa  3b 2e 72 5f 79 73 69 7a  |ixels...;.r_ysiz|
00004e70  65 20 20 20 20 20 20 20  20 20 20 20 20 45 51 55  |e            EQU|
00004e80  44 20 30 20 20 20 20 5c  20 73 63 72 65 65 6e 20  |D 0    \ screen |
00004e90  68 65 69 67 68 74 20 69  6e 20 70 69 78 65 6c 73  |height in pixels|
00004ea0  0d 0e fb 2f 2e 72 5f 6d  6f 64 65 20 20 20 20 20  |.../.r_mode     |
00004eb0  20 20 20 20 20 20 20 20  45 51 55 44 20 30 20 20  |        EQUD 0  |
00004ec0  20 20 5c 20 73 63 72 65  65 6e 20 6d 6f 64 65 0d  |  \ screen mode.|
00004ed0  0f 00 04 0d 0f 0a 06 5c  4c 0d 0f 14 04 0d 0f 1e  |.......\L.......|
00004ee0  07 5d 3a ed 0d 0f 28 05  e1 0d 0f 32 04 0d 0f 3c  |.]:...(....2...<|
00004ef0  0e dd 20 a4 6c 6f 67 28  66 25 29 0d 0f 46 0b ea  |.. .log(f%)..F..|
00004f00  20 73 25 2c 78 25 0d 0f  50 0f 73 25 3d 2d 31 3a  | s%,x%..P.s%=-1:|
00004f10  78 25 3d 66 25 0d 0f 5a  1b f5 3a 78 25 3d 78 25  |x%=f%..Z..:x%=x%|
00004f20  3e 3e 31 3a 73 25 2b 3d  31 3a fd 20 78 25 3d 30  |>>1:s%+=1:. x%=0|
00004f30  0d 0f 64 18 e7 20 28 31  3c 3c 73 25 29 3c 66 25  |..d.. (1<<s%)<f%|
00004f40  20 8c 20 73 25 2b 3d 31  0d 0f 6e 07 3d 73 25 0d  | . s%+=1..n.=s%.|
00004f50  0f 78 04 0d 0f 82 36 dd  20 a4 72 65 73 65 72 76  |.x....6. .reserv|
00004f60  65 5f 62 79 74 65 73 28  78 25 29 3a 77 25 3d 4f  |e_bytes(x%):w%=O|
00004f70  25 2d 63 6f 64 65 25 3a  50 25 3d 50 25 2b 78 25  |%-code%:P%=P%+x%|
00004f80  3a 4f 25 3d 4f 25 2b 78  25 0d 0f 83 18 5b 4f 50  |:O%=O%+x%....[OP|
00004f90  54 70 61 73 73 3a 41 4c  49 47 4e 3a 5d 3a 3d 77  |Tpass:ALIGN:]:=w|
00004fa0  25 0d ff                                          |%..|
00004fa3