>'UTIL2
>N1
>f
 
 
                         pmod - utility
                              - # -
>X
pmod
====
 
 
tHE pmod uTILITY IS A COMPREHENSIVE dISK/fILE/mEMORY mODIFICATION uTILITY.  iT ALLOWS EASY USER INTERACTION BETWEEN MEMORY AND DISK STORAGE SYSTEMS.  aLL ldos SUPPORTED DISK DEVICES MAY BE OPERATED ON, INCLUDING sINGLE/dOUBLE dENSITY, sINGLE/dOUBLE sIDED, 5" AND 8" FLOPPIES AND FIXED/REMOVABLE RIGID DISK SYSTEMS.  iT HAS A FULL SCREEN DISPLAY OF 256 BYTES AT A TIME WITH BOTH hex AND ascii FORMATS, AND MAKES USE OF DUAL CURSORS FOR EASY MODIFICATION.  tHE USER CAN GO TO THE HEART OF A DISK AND MODIFY IN hex, ascii, decimal, binary, OR octal INPUT.  tHE SYNTAX OF THE pmod COMMAND IS:
>JN
 
          =====================================================
          !  pmod,AAAA                                        !
          !  pmod,FILESPEC,BBBB                               !
          !  pmod,:C,D,E                                      !
          !                                                   !
          !       AAAA = MEMORY ADDRESS TO MODIFY             !
          !       FILESPEC = ANY VALID ldos FILESPEC          !
          !       BBBB = RELATIVE FILE SECTOR (OPTIONAL)      !
          !       :C = DRIVE TO MODIFY (0-7, COLON MANDATORY) !
          !       D  = CYLINDER NUMBER (DEFAULTS 0)           !
          !       E  - SECTOR NUMBER (DEFAULTS 0)             !
          !                                                   !
          !  ABBR: none                                       !
          =====================================================
>JY
 
note: iT IS RECOMMENDED TO set,*ki,ki/dvr (JKL) BEFORE USING ENTERING pmod SO THE CONTROL KEYS AND SCREENPRINTER WILL BE ACTIVE.
 
tHERE ARE 3 MODES OF OPERATION OF THE PROGRAM AS INDICATED BY THE COMMAND LINE:
 
- mEMORY mODIFY -
 
     eNTER THE MEMORY ADDRESS WHERE MODIFICATION IS TO BEGIN.  yOU MAY ENTER THE NUMBER IN hEX, dECIMAL, oCTAL, OR bINARY BY preceding THE NUMBER WITH h, d, o, OR b RESPECTIVELY.  dECIMAL IS THE DEFAULT VALUE IF NONE OF THE ABOVE ARE SPECIFIED.
 
     aFTER ENTERING THE ADDRESS AND PRESSING <enter>, YOU WILL VIEW THE CONTENTS OF 1 PAGE OF MEMORY (256 BYTES) STARTING AT THE SPECIFIED ADDRESS.  pLEASE REFER TO THE FOLLOWING SCREEN DUMP:
>F
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     tHE FAR LEFT COLUMN OF THE SCREEN INDICATES THE CURRENT MODIFY base (hex, decIMAL, ascII, octAL, binARY), AND THE mem INDICATES THAT YOU ARE IN THE memory modify MODE.  tHE NEXT COLUMN IS THE 4 CHARACTER hex ADDRESS WHERE THE DATA IS THAT YOU ARE VIEWING.  tHE CENTER COLUMNS OF THE DISPLAY IS THE hex REPRESENTATION OF THE 16 BYTES STARTING AT THE ADDRESS INDICATED AT THE ROW BEGINNING.  tHERE IS A SPACE BETWEEN EACH QUAD (2 BYTES, 4 hex ascii CHARACTERS) FOR EASIER VIEWING.  oN THE FAR RIGHT IS THE REPRESENTATIVE ascii CHARACTER OF THE 16 BYTES ON THAT ROW.  aLL BYTES LESS THAN 20h (32 DECIMAL) ARE DISPLAYED AS A PERIOD (.) TO INDICATE A NON-PRINTING CHARACTER.  yOU ARE NOW IN THE memory paging mode.  sEVERAL KEYS ARE ACTIVE AT THIS POINT:
 
break - TERMINATE THE PROGRAM
shift clear - PROMPT FOR A NEW ADDRESS
m - ENTER modify MODE
a - SET ascii MODIFY
b - SET binary MODIFY
d - SET decimal MODIFY
h - SET hexidecimal MODIFY
o - SET octal MODIFY
x - PROMPT FOR NEW SOURCE DATA
right arrow - INCREMENT DISPLAYED ADDRESS BY 1 BYTE
left arrow - DECREMENT DISPLAYED ADDRESS BY 1 BYTE
up arrow - INCREMENT DISPLAYED ADDRESS BY 1 PAGE (256 BYTES)
down arrow - DECREMENT DISPLAYED ADDRESS BY 1 PAGE
 
 
- dISK mODIFY -
 
     eNTER A dRIVE, cYLINDER, AND sECTOR WHERE MODIFICATION IS TO BEGIN.  yOU must PRECEDE THE DRIVE NUMBER WITH A COLON (:) TO DISTINGUISH BETWEEN A MEMORY ADDRESS.  tHE cYLINDER AND sECTOR NUMBERS DEFAULT TO 0 IF NOT ISSUED.  tHE cYLINDER MAY BE ANSWERED WITH THE at SYMBOL (@) TO PAGE DIRECTLY TO THE DIRECTORY TRACK.
     aFTER ANSWERING THE PROMPT AND PRESSING <enter> THE SPECIFIED SECTOR WILL BE READ FROM DISK AND DISPLAYED TO THE VIDEO.  pLEASE REFER TO THE FOLLOWING SCREEN DUMP:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     tHE SCREEN FORMAT IS SIMILAR TO mEMORY mODIFY EXCEPT FOR THE FAR LEFT COLUMN OF DATA, WHICH INDICATES THE SOURCE OF THE INFORMATION.  yOU ARE GIVEN THE dRIVE, cYLINDER, AND sECTOR BEING VIEWED.  yOU ARE SUPPLIED WITH THE SIZE OF THE DRIVE (5 OR 8"), AND IF IT IS A fLOPPY OR rIGID DRIVE.  iF A FLOPPY, YOU ARE GIVEN THE DENSITY (SINGLE OR DOUBLE), AND THE NUMBER OF SIDES (SINGLE OR DOUBLE).  iF A rIGID DRIVE, YOU ARE TOLD IF IT IS fIXED OR rEMOVABLE.  yOU ARE NOW IN THE sector paging mode.  tHE FOLLOWING KEYS ARE ACTIVE:
 
break - TERMINATE PROGRAM
shift clear - PROMPT FOR NEW dRIVE, cYLINDER, AND sECTOR
m - ENTER modify MODE
a - SET ascii MODIFY
b - SET binary MODIFY
d - SET decimal MODIFY
h - SET hex MODIFY
o - SET octal MODIFY
x - PROMPT FOR NEW SOURCE DATA
0-9 - PAGE TO CORRESPONDING SECTOR
@ - PAGE TO CURRENT SECTOR ON DIRECTORY TRACK
r - RESTORE DRIVE TO CYLINDER 0, SECTOR 0
right arrow - INCREMENT SECTOR
left arrow - DECREMENT SECTOR
up arrow - INCREMENT TRACK
down arrow - DECREMENT TRACK
shift right arrow - PAGE TO HIGHEST SECTOR ON CURRENT TRACK
shift down arrow - PAGE TO LOWEST SECTOR ON CURRENT TRACK
shift up arrow - PAGE TO HIGHEST CYLINDER ON DISK, CURRENT SECTOR
>F
- fILE mODIFY -
 
     eNTER A FILESPEC THAT YOU WISH TO VIEW.  yOU MAY OPTIONALLY FOLLOW THE FILENAME WITH THE RELATIVE SECTOR THAT YOU WISH TO START WITH.  aFTER LOCATING THE FILE, THE SPECIFIED RELATIVE SECTOR (DEFAULT ZERO) WILL BE READ FROM THE DISK AND DISPLAYED TO THE VIDEO.  pLEASE REFER TO THE FOLLOWING SCREEN DUMP:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     tHE SCREEN LAYOUT IS SIMILAR TO THE mEMORY mODIFY, EXCEPT FOR THE FAR LEFT COLUMN.  yOU ARE GIVEN THE DRIVE NUMBER THAT YOU ARE WORKING ON.  tHE FILENAME THAT YOU ARE VIEWING IS DISPLAYED VERTICALLY STARTING JUST TO THE RIGHT OF THE CURSOR.  nEAR THE BOTTOM YOU ARE GIVEN THE relative sector YOU ARE VIEWING, AND THE end of file sector.  nORMALLY, YOU WILL ONLY BE ABLE TO VIEW UP TO 1 LESS THAT THE eofs.  yOU ARE NOW IN THE file paging mode.  sEVERAL KEYS ARE ACTIVE:
 
break - TERMINATE PROGRAM
shift clear - PROMPT FOR A NEW RELATIVE SECTOR
m - ENTER mODIFY MODE
a - SET ascii MODIFY
b - SET binary MODIFY
d - SET decimal MODIFY
h - SET hex MODIFY
o - SET octal MODIFY
x - PROMPT FOR NEW SOURCE DATA
right arrow - INCREMENT TO THE NEXT RELATIVE SECTOR
up arrow - SAME AS RIGHT ARROW
left arrow - DECREMENT TO NEXT RELATIVE SECTOR
down arrow - SAME AS LEFT ARROW
 
note:  wHEN USING THE file modify OPTION ON dir/sys, THE SECTORS WILL not BE WRITTEN AS rEAD-pROTECTED, AND WILL REQUIRE A "rEPAIR (ALIEN)" AFTER UPDATING BACK TO DISK.  uSE THE disk modify OPTION TO CORRECTLY HANDLE THE DIRECTORY TRACK.
>F
- mODIFY mODE -
 
     tHE modify mode IS COMMON TO ALL OF THE ABOVE 3 MODES OF OPERATION, AND IS ENTERED BY PRESSING m WHEN THE DESIRED DATA IS BEING VIEWED IN ONE OF THE ABOVE paging MODES.  tHE CURSOR WILL MOVE INTO THE hex AND ascii PORTIONS OF THE DISPLAY (DUAL CURSORS), AND WILL FLASH VERY RAPIDLY.  rEFER TO THE FOLLOWING SCREEN DUMP:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     aT THE TOP LEFT OF THE DISPLAY, YOU ARE GIVEN THE relative byte WITHIN THE DISPLAYED DATA WHERE THE CURSOR LIES.  tHE FOLLOWING KEYS ARE ACTIVE AT THIS POINT:
 
break - ABORT THE MODIFY MODE, RE-READ THE SOURCE DATA AS IT WAS BEFORE ANY CHANGES WERE MADE, AND RETURN BACK TO THE PAGING MODE YOU CAME FROM.  note:  iN THE memory mode, THE CHANGES ARE IMMEDIATE, AND CANNOT BE RE-READ.  iN THIS CASE, THE break KEY IS IDENTICAL TO PRESSING THE enter KEY.
enter - TERMINATE THE MODIFY MODE, AND WRITE THE MODIFIED DATA BACK TO THE SOURCE WITH ALL CHANGES, AND RETURN TO THE PAGING MODE YOU CAME FROM.  note:  cHANGES ARE IMMEDIATE IN THE memory mode, AND CONTROL IS MERELY PASSED BACK TO THE PAGING MODE.
shift clear - HOMES THE CURSOR TO THE FIRST RELATIVE BYTE BEING DISPLAYED.
clear enter - ALLOWS YOU TO CHANGE THE CURRENT base YOU ARE MODIFYING IN WITHOUT LEAVING THE MODIFY MODE.  yOU WILL HAVE A NEW FLASHING PROMPT IN THE LEFT COLUMN OF THE DISPLAY.  eNTER a, b, d, h, OR o TO SET ascii, binary, decimal, hex, OR octal BASES RESPECTIVELY.  aNY OTHER KEYS WILL BE IGNORED.  yOU WILL THEN RETURN BACK TO THE MODIFY MODE AT THE SAME LOCATION YOU CAME FROM.
arrow keys - MOVE THE CURSOR 1 BYTE IN THE CORRESPONDING DIRECTION WITHOUT AFFECTING ANY OF THE BYTES.
shift arrow keys - MOVE THE CURSOR TO EXTREME ROW OR COLUMN ENDS IN THE ASSOCIATED DIRECTION WITHOUT AFFECTING ANY OF THE BYTES.
 
     note: iN THE disk modify AND file modify YOU WILL NOT BE ABLE TO MOVE THE CURSOR BEYOND THE EDGES OF THE DISPLAYED DATA.  iN THE memory modify, IF YOU ATTEMPT TO MOVE THE CURSOR BEYOND THE EDGES, ADDITIONAL DATA IS BROUGHT TO THE SCREEN TO SUPPLY THE DESIRED INFORMATION.
      iF YOU ARE IN THE ascii modify mode, AND THE KEY YOU ENTER DOES NOT APPLY TO ANY OF THE ABOVE CONDITIONS, THEN THAT CHARACTER IS ENTERED AT THE CURRENT CURSOR LOCATION, AND THE CURSOR IS ADVANCED BY ONE BYTE.
 
     iF YOU ARE not IN ascii modify, SEVERAL ADDITIONAL FEATURES ARE AVAILABLE:
 
g - FOLLOWED BY A NUMBER MOVES THE CURSOR IMMEDIATELY TO THE relative byte IN THE PAGE THAT YOU ARE VIEWING.
l - FOLLOWED BY A NUMBER MOVES THE CURSOR TO THE next occurence OF THE SPECIFIED BYTE.  tHE CURSOR WILL MOVE TO THE LAST BYTE ON THE SCREEN IF THE REQUESTED BYTE IS NOT LOCATED.
p - FOLLOWED BY A NUMBER duplicates THE CURRENT BYTE LOCATED UNDER THE CURSOR TO THE FOLLOWING INDICATED NUMBER OF BYTES.
 < - WILL SHIFT ALL BYTES FROM THE CURSOR TO THE PAGE END BY ONE BYTE, AND PLACE A ZERO AT THE LAST LOCATION ON THE SCREEN.  tHIS ALLOWS YOU TO delete TEXT AT THE CURSOR.
 > - WILL SHIFT ALL BYTES FROM THE CURSOR TO THE PAGE END BY ONE BYTE, AND PLACE A ZERO AT THE CURRENT CURSOR LOCATION.  tHIS ALLOWS YOU TO insert TEXT AT THE CURSOR.
 
     note:  tHE ABOVE FIVE COMMANDS ARE DISABLED IN THE ascii modify mode, AND WILL MERELY INSERT THE CHARACTER INTO THE TEXT.
 
     iF YOU ARE not IN ascii modify, AND none OF THE ABOVE CONDITIONS ARE MET, THEN THE INPUT IS INTERPRETED AS PART OF numerical INPUT.  iF YOU ARE IN hex MODE, FOR EXAMPLE, YOU MUST ENTER two hex digits (0-9,a-f) TO CHANGE A SINGLE BYTE.  dECIMAL MODE EXPECTS 3 DIGITS (0-9), oCTAL MODE EXPECTS 3 DIGITS (0-7), AND bINARY MODE EXPECTS 8 DIGITS (0-1).  yOU MAY PRE-TERMINATE THE NUMERICAL INPUT BY PRESSING enter.  tHUS, IN hex MODE, 3 enter IS THE SAME AS ENTERING 0 3, IN bINARY MODE, 1 1 1 enter IS THE SAME AS ENTERING 0 0 0 0 0 1 1 1.  wHEN YOU ARE IN THE MIDDLE OF ENTERING A NUMBER, THE CURSOR WILL CHANGE TO INDICATE THAT MORE INPUT IS REQUIRED TO COMPLETE THE CURRENT OPERATION.  iF YOU ENTER INCORRECT DIGITS before COMPLETING THE NUMBER, ENTERING AN invalid CHARACTER WILL TERMINATE THE ENTRY.  tHUS, IN hex MODIFY, YOU TYPE A 3, BUT MEANT TO ENTER A 4, JUST HIT AN INVALID KEY (x FOR EXAMPLE) TO TERMINATE THE OPERATION AND LEAVE THE BYTE UNCHANGED.  iN THE ABOVE SPECIAL COMMANDS, g, l, AND p, THE NUMERICAL INPUT FOLLOWING THE COMMAND WILL BE IN THE CURRENT base.  iF YOU ARE IN hex MODIFY, THEN g10 IS A VALID COMMAND TO MOVE THE CURSOR TO RELATIVE BYTE 10h, BUT IN decimal MODIFY, YOU MUST ENTER g016 TO ACHIEVE THE SAME RESULTS.
 
     aNY KEY THAT DOES NOT MEET ANY OF THE ABOVE CONDITIONS WILL BE IGNORED.
 
     wHEN FIRST ENTERING THIS PROGRAM, THE data source INFORMATION MAY BE ENTERED DIRECTLY FROM THE dos ready COMMAND LINE, OR WILL BE PROMPTED FOR IF NOT SUPPLIED WITH THE COMMAND.  iF YOU WISH TO EXAMINE A FILE THAT COULD BE INTERPRETED AS AN ADDRESS, YOU MAY precede THE FILENAME WITH AN EXCLAMATION POINT (!) TO force pmod TO INTERPRET IT AS A FILESPEC.
 
pmod,hf000         WILL DISPLAY MEMORY ADDRESS f000h.
pmod,!hf000        WILL DISPLAY THE FILE hf000

