MediaWiki:Sitenotice:
2024-03-02: The wiki ran out of disk space, so things were not working. This has been resolved by adding another 5GB of quota ;-) Thanks to Tim Lindner for reporting the issues. 2020-05-17: If a page gives you an error about some revision not being found, just EDIT the page and the old page should appear in the editor. If it does, just SAVE that and the page should be restored. OS-9 Al (talk) 12:22, 17 May 2020 (CDT)

Patch EDTASM+ To Disk: Difference between revisions

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Jump to navigation Jump to search
(Created page with "'''Patch EDTASM+ To Disk - To End Those Cassette Blues - By Roger''' Radio Shack's EDTASM+ package is a powerful, wellwritten programming tool. But for people with disk drive...")
 
mNo edit summary
Line 1: Line 1:
'''Patch EDTASM+ To Disk - To End Those Cassette Blues - By Roger'''
'''Patch EDTASM+ To Disk - To End Those Cassette Blues - By Roger Schrag '''


Radio Shack's EDTASM+ package is a powerful, wellwritten programming tool. But for people with disk drives, it is very agonizing to have to go back to using cassettes to store source code files. There are editor assemblers on the market that do support disk drives, but they are usually much more expensive, and sometimes require the Flex Operating System, or something else that not everyone owns.
From: The Raimbow Magazine DIC 1982, Pag 29.
 
Radio Shack's EDTASM+ package is a powerful, well-written programming tool. But for people with disk drives, it is very agonizing to have to go back to using cassettes to store source code files. There are editor assemblers on the market that do support disk drives, but they are usually much more expensive, and sometimes require the Flex Operating System, or something else that not everyone owns.


What I have put together here is a series of patches that make EDT ASM+ use the disk drive instead of the tape recorder for mass storage. The finished product requires only 16K Extended Basic and one drive.
What I have put together here is a series of patches that make EDT ASM+ use the disk drive instead of the tape recorder for mass storage. The finished product requires only 16K Extended Basic and one drive.


Patching EDTASM+ to use disks is relatively easy to do. The first thing is to move it into RAM so that we can alter bytes of code and thus alter its operation. The move can be accomplished by typing in U COOO 1 000 27FF from Zbug. To save a copy of it on tape, enter PEDTASM 1000 37FE 1000. Since it was written entirely in position independent code, it can reside anywhere in memory, and function without modification.
Patching EDTASM+ to use disks is relatively easy to do. The first thing is to move it into RAM so that we can alter bytes of code and thus alter its operation. The move can be accomplished by typing in '''U''' COOO 1000 27FF from Zbug. To save a copy of it on tape, enter P EDTASM 1000 37FE 1000. Since it was written entirely in position independent code, it can reside anywhere in memory, and function without modification.


The next step is to enter the source code shown in the listing. Assemble it onto tape directly after the copy of EDTASM+ you made from Zbug. You'll probably also want to save the source code for future use.
The next step is to enter the source code shown in the listing. Assemble it onto tape directly after the copy of EDTASM+ you made from Zbug. You'll probably also want to save the source code for future use.
Line 12: Line 14:
by typing CLOADM again. Parts of EDTASM+ will now be overwritten with new code, and a block of additional subroutines will be added on.
by typing CLOADM again. Parts of EDTASM+ will now be overwritten with new code, and a block of additional subroutines will be added on.


You may save the finished program onto disk by typing in SAVEM "EDTASM{lj&HE80, &H37FF, &HE80. Now whenever you want to use your editor assembler, just enter LOADM "EDTASM+": EXEC. with the disk version of EDTASM+, the L,W,A, and V commands will work differently than they used to. To load source code, simply press L and enter. The computer will ask for a filename. Type in a standard filename as you would in Basic. If you don't specify an extension, none will be assumed. The file will then be loaded. The W command works in the same way.
You may save the finished program onto disk by typing in SAVEM "EDTASM+",&HE80, &H37FF, &HE80. Now whenever you want to use your editor assembler, just enter LOADM "EDTASM+": EXEC. with the disk version of EDTASM+, the L,W,A, and V commands will work differently than they used to. To load source code, simply press '''L''' and enter. The computer will ask for a filename. Type in a standard filename as you would in Basic. If you don't specify an extension, none will be assumed. The file will then be loaded. The '''W''' command works in the same way.


To assemble a program, type in A and any assembly switches you would like to use. Unless you choose the 1M or NO options, you will be asked for the filename. As the listing scrolls across the screen, the computer will stop from time to time to write a sector to the disk. If you press Break, you may have to wait a moment for the computer to close the file.
To assemble a program, type in A and any assembly switches you would like to use. Unless you choose the 1M or NO options, you will be asked for the filename. As the listing scrolls across the screen, the computer will stop from time to time to write a sector to the disk. If you press Break, you may have to wait a moment for the computer to close the file.
Line 18: Line 20:
The V command will merely open a file and close it again. This verifies that a file is listed in the directory and that there are no problems with its structure.
The V command will merely open a file and close it again. This verifies that a file is listed in the directory and that there are no problems with its structure.


On a 16K machine, you will have 1 .5K for your text buffer. A 32K machine will offer 17.5K. For those of you who have source code files on tape, you may transfer them to diskette with the Basic program I have included. EDTASM + uses ASCII codes that Basic doesn't recognize.Therefore INPUT#-I can't be used to read the source code file from the cassette. A machine language routine is necessary.
On a 16K machine, you will have 1 .5K for your text buffer. A 32K machine will offer 17.5K. For those of you who have source code files on tape, you may transfer them to diskette with the Basic program I have included. EDTASM+ uses ASCII codes that Basic doesn't recognize.Therefore INPUT#-I can't be used to read the source code file from the cassette. A machine language routine is necessary.


'''Listing I:'''
'''Listing I:'''
Line 32: Line 34:
  00010 *SO THAT THE DISK DRIVE WILL
  00010 *SO THAT THE DISK DRIVE WILL
  00911 *SHUT OFF PROPERLY
  00911 *SHUT OFF PROPERLY
  00012        ORG $1516
  00012        ORG   $1516
  00013        LBSR INTRPT
  00013        LBSR   INTRPT
  00014 *
  00014 *
  00015 *
  00015 *
Line 39: Line 41:
  00017 *TO ALLOW THE USER TO ENTER FULL
  00017 *TO ALLOW THE USER TO ENTER FULL
  00018 *DISK FILE NAMES: FILENAME/EXT:D
  00018 *DISK FILE NAMES: FILENAME/EXT:D
  00019        ORG $15E0
  00019        ORG   $15E0
  00020        LBRA FNAME
  00020        LBRA   FNAME
  00021 *
  00021 *
  09022 *
  09022 *
  00023 *CHANGE REFERENCES TO DEVICE #-1
  00023 *CHANGE REFERENCES TO DEVICE #-1
  00024 *(TAPE) TO DEVICE #1 (DISK)
  00024 *(TAPE) TO DEVICE #1 (DISK)
  0002S        ORG $1547
  0002S        ORG   $1547
  00026        LDB #1
  00026        LDB   #1
  00027        ORG $1574
  00027        ORG   $1574
  90028        LDB #l
  90028        LDB   #1
  00029        ORG #l5AD
  00029        ORG   #15AD
  00030        LDA #1
  00030        LDA   #1
  00031        ORG #15CD
  00031        ORG   #15CD
  00032        LDA #1
  00032        LDA   #1
  00033 *
  00033 *
  00034 *
  00034 *
  00035 *HAKE SURE THE DISK FILE HAS BEEN
  00035 *HAKE SURE THE DISK FILE HAS BEEN
  00036 *CLOSED WHEN ACCESS TO IT IS COMPLETE
  00036 *CLOSED WHEN ACCESS TO IT IS COMPLETE
  00037        ORG $1B52
  00037        ORG   $1B52
  00038        LBSR CLOSE
  00038        LBSR   CLOSE
  00039 *
  00039 *
  00040 *
  00040 *
Line 64: Line 66:
  00042 *TO OPEN THE DISK FILE, INSTEAD OF
  00042 *TO OPEN THE DISK FILE, INSTEAD OF
  00043 *A ROUTINE TO OPEN THE TAPE FILE
  00043 *A ROUTINE TO OPEN THE TAPE FILE
  00044        ORG #l5BA PATCHES INTO
  00044        ORG   #15BA  PATCHES INTO
  00045        LDU #ASSEM "A" COMMAND
  00045        LDU   #ASSEM "A" COMMAND
00046        ORG    $15BF  PATCHES INTO
00047        LDU    #LOAD  "L" COMMAND
00048        ORG    $15C4  PATCHES INTO
00049        LDU    WRITE  "W" COMMAND
00050        ORG    $163A  PATCHES INTO
00051        LDU    #LOAD  "V" COMMAND
00052 *
00053 *
00054 *ALTER ERROR HANDLIN6 SYSTEM TO
00055 *ACCOUNT FOR NEW ERROR MESSAGES
00056        ORG    #1721
00057        LBSR  ERROR1
00058        CLR    <$1
00059        CLR    <$4
00060        LBSR  ERR0R2
00061        LBRA  $172F
00062 *
00063 *
00064        ORG    $E80
00065 *
00066 *
00067 *NEW ENTRY AREA TO EDTASM
00068 START  LDX    #$1E00  HE MUST FIRST
00069        LDA    l$AF    FIX THE THREE
00070        STA    ,X+      BYTES THAT
00071        LDA    #$5A    BASIC CLOBBERS
00072        STA    ,X+      WHILE LOADING
00073        LDA    #$26    EDTASN+ INTO
00074        STA    ,X      MEMORY

Revision as of 04:40, 13 October 2015

Patch EDTASM+ To Disk - To End Those Cassette Blues - By Roger Schrag

From: The Raimbow Magazine DIC 1982, Pag 29.

Radio Shack's EDTASM+ package is a powerful, well-written programming tool. But for people with disk drives, it is very agonizing to have to go back to using cassettes to store source code files. There are editor assemblers on the market that do support disk drives, but they are usually much more expensive, and sometimes require the Flex Operating System, or something else that not everyone owns.

What I have put together here is a series of patches that make EDT ASM+ use the disk drive instead of the tape recorder for mass storage. The finished product requires only 16K Extended Basic and one drive.

Patching EDTASM+ to use disks is relatively easy to do. The first thing is to move it into RAM so that we can alter bytes of code and thus alter its operation. The move can be accomplished by typing in U COOO 1000 27FF from Zbug. To save a copy of it on tape, enter P EDTASM 1000 37FE 1000. Since it was written entirely in position independent code, it can reside anywhere in memory, and function without modification.

The next step is to enter the source code shown in the listing. Assemble it onto tape directly after the copy of EDTASM+ you made from Zbug. You'll probably also want to save the source code for future use.

Now you are ready to load in the files you have saved on the tape. First, you will want to insert your disk cartridge so that the finished product can be saved on disk. Type CLOADM to load the RAM version of EDTASM+, but don't execute it yet. Next, load in the patches you keyed in by typing CLOADM again. Parts of EDTASM+ will now be overwritten with new code, and a block of additional subroutines will be added on.

You may save the finished program onto disk by typing in SAVEM "EDTASM+",&HE80, &H37FF, &HE80. Now whenever you want to use your editor assembler, just enter LOADM "EDTASM+": EXEC. with the disk version of EDTASM+, the L,W,A, and V commands will work differently than they used to. To load source code, simply press L and enter. The computer will ask for a filename. Type in a standard filename as you would in Basic. If you don't specify an extension, none will be assumed. The file will then be loaded. The W command works in the same way.

To assemble a program, type in A and any assembly switches you would like to use. Unless you choose the 1M or NO options, you will be asked for the filename. As the listing scrolls across the screen, the computer will stop from time to time to write a sector to the disk. If you press Break, you may have to wait a moment for the computer to close the file.

The V command will merely open a file and close it again. This verifies that a file is listed in the directory and that there are no problems with its structure.

On a 16K machine, you will have 1 .5K for your text buffer. A 32K machine will offer 17.5K. For those of you who have source code files on tape, you may transfer them to diskette with the Basic program I have included. EDTASM+ uses ASCII codes that Basic doesn't recognize.Therefore INPUT#-I can't be used to read the source code file from the cassette. A machine language routine is necessary.

Listing I:

09001 *************************
00002 * EDTASM+ HITS THE DISK *
00003 *************************
00004 *
00005 *BY ROGER SCHRAG
00006 * 10/15/82
00007 *
00008 *
00009 *HAKE SURE INTERRUPTS ARE ENABLED
00010 *SO THAT THE DISK DRIVE WILL
00911 *SHUT OFF PROPERLY
00012         ORG    $1516
00013         LBSR   INTRPT
00014 *
00015 *
00016 *CHANGE FILENAME HANDLING SYSTEM
00017 *TO ALLOW THE USER TO ENTER FULL
00018 *DISK FILE NAMES: FILENAME/EXT:D
00019         ORG    $15E0
00020         LBRA   FNAME
00021 *
09022 *
00023 *CHANGE REFERENCES TO DEVICE #-1
00024 *(TAPE) TO DEVICE #1 (DISK)
0002S         ORG    $1547
00026         LDB    #1
00027         ORG    $1574
90028         LDB    #1
00029         ORG    #15AD
00030         LDA    #1
00031         ORG    #15CD
00032         LDA    #1
00033 *
00034 *
00035 *HAKE SURE THE DISK FILE HAS BEEN
00036 *CLOSED WHEN ACCESS TO IT IS COMPLETE
00037         ORG    $1B52
00038         LBSR   CLOSE
00039 *
00040 *
00041 *AT THE RIGHT TIME, CALL A ROUTINE
00042 *TO OPEN THE DISK FILE, INSTEAD OF
00043 *A ROUTINE TO OPEN THE TAPE FILE
00044         ORG    #15BA   PATCHES INTO
00045         LDU    #ASSEM  "A" COMMAND
00046         ORG    $15BF   PATCHES INTO 
00047         LDU    #LOAD   "L" COMMAND 
00048         ORG    $15C4   PATCHES INTO 
00049         LDU    WRITE   "W" COMMAND 
00050         ORG    $163A   PATCHES INTO 
00051         LDU    #LOAD   "V" COMMAND 
00052 * 
00053 * 
00054 *ALTER ERROR HANDLIN6 SYSTEM TO 
00055 *ACCOUNT FOR NEW ERROR MESSAGES 
00056         ORG    #1721 
00057         LBSR   ERROR1 
00058         CLR    <$1 
00059         CLR    <$4 
00060         LBSR   ERR0R2 
00061         LBRA   $172F 
00062 *
00063 *
00064         ORG    $E80 
00065 *
00066 *
00067 *NEW ENTRY AREA TO EDTASM 
00068 START   LDX    #$1E00   HE MUST FIRST 
00069         LDA    l$AF     FIX THE THREE 
00070         STA    ,X+      BYTES THAT 
00071         LDA    #$5A     BASIC CLOBBERS 
00072         STA    ,X+      WHILE LOADING 
00073         LDA    #$26     EDTASN+ INTO 
00074         STA    ,X       MEMORY