![]() |
; all versions, normal and relocatable, further with version 4 patch and the User Command Handler Example, please see below
; same as above, but with the 3000 color version instead of the 9A00 version
; normal and relocatable, further with already patched version 4 of BUG/65 and the User Command Handler Example, please see below
; size: 102 KB
; size: 283 KB
; size: 213 KB
; size: 233 KB
; size: 987 KB
; size: 2.7 MB ; this manual contains as the only one an error page: 'ERRORS IN YOUR BUG/65 MANUAL' (page 4 in the pdf file). As of this moment, it is not understood, why the there mentioned commands: N, O, R', R", W' and W" do not work with the above version 2.0 of BUG/65. Either we have version 1.1 for real, while 2.0 is shown at start or something else is wrong here. Anyway, the mentioned pages on the error page do match with pages in the rest of the manual. Maybe the 'old boys club' from the golden age can solve this? Any help in that case is very welcome at any time. We really appreciate if you can help us.
;**************************************************
; EQUATES INTO BUG/65:
;
LOADPOINT = ???? ; to be determined by user!!
LP = LOADPOINT ; just an abbreviation
MCBEND = LP+$021F ; BUG/65 END CODE MSB
DISPV = LP+$0209 ; DISPLAY CHAR
USRCMD = LP+$0220 ; USER COMMAND VECTOR
GET2HX = LP+$022C ; GET 2 HEX PARAMS
HEXL = $FC ; HEX PARAM 1 RESULT
HEX2 = $FE ; HEX PARAM 2 RESULT
ERRPAR = LP+$0235 ; REPORT PARAM ERROR
DHXBYT = LP+$0238 ; DISPLAY HEX BYTE
LSTPG0 = LP+$0240 ; LAST BUG/65 P0 BYTE USED
EOL = $9B ; END OF LINE CHAR
;
;**************************************************
*= USRCMD ; PATCH US INTO BUG/65
JMP USERC1
;
*= LP+$2000 ; RIGHT AFTER BUG/65 CODE
USERC1 CMP #'1 ; COMMAND "1" ?
BEQ CMDOK ; YES
RTS ; ELSE RTN EQUAL RESET - ERR
;
CMDOK JSR GET2HX ; GET START, END
LDA HEX1 ; MAKE SURE BOTH SPECIFIED
ORA HEX1+1
BEQ PARMER ; OR ELSE ERROR
LDA HEX2
ORA HEX2+1
BNE PARMOK
;
PARMER JMP ERRPAR ; REPORT PARAM ERROR
;
PARMOK LDX LSTPG0 ; LAST BUG/65 P0 BYTE
; (WE'LL USE THE NEXT
; FOR OUR ACCUMULATOR)
LDA #0 ; CLEAR ACCUMULATOR
STA 1,X
TAY ; INIT Y PTR INDEX
;
LOOP LDA HEX2+1 ; PAST END ADDRESS ?
CMP HEX1+1
BCC DONE ; YES
BNE NXTEOR ; NO
LDA HEX2
CMP HEX1
BCC DONE ; YES
;
NXTEOR LDA (HEX1),Y ; CALC EOR CHKSUM
EOR 1,X ; EOR WITH ACCUM
STA 1,X ; AND SAVE IN ACCUM
INC HEX1 ; BUMP PTR
BNE LOOP
INC HEX1+1
JMP LOOP
;
DONE LDA #EOL ; TO NEXT SCREEN LINE
JSR DISPV
LDX LSTPG0 ; RESTORE ACCUM ADDRESS
LDA 1,X ; DISPLAY HEX RESULT
JSR DHXBYT
LDA #0 ; RTN OK (EQUAL SET)
RTS
;
*= MCBEND ; CHANGE BUG/65 CODE
.BYTE >[*+$FF] ; END BYTE TO INCLUDE
.END ; THAT'S ALL FOLKS
The MAC/65 file of the 'User Command Handler Example': 'USRCOMHD.M65' is already on all of the atr-images above.
ORG+$068B LDX #36 LDY #E4 JMP 2777=>
ORG+$068B JMP 0600 0600 PHA LDX #10 LDA #1 STA 341,X PLA JMP FECB
a): BASIC program:
5 REM BUG/65 BUG -- VERSION 4 PATCH PROGRAM 10 XIO 36,#1,0,0,"D:BUG65.COM":REM UNPROTECT FILE 20 OPEN #1,12,0,"D:BUG65.COM" 30 FOR I=1 TO 2668:REM MOVE TO PROPER POSITION 40 GET #1,C 50 NEXT I 60 PUT #1,12 70 CLOSE #1
The above program named as "BUGV4FIX.BAS" is in form of a file already on all of the atr-images above.
To make the patch to BUG/65 do as follows: 1) Insert your BASIC cartridge or use BASIC A+ disk. 2) Place your BUG/65 disk into the disk drive. 3) Use this BASIC program above to apply the one byte patch so that BUG/65 will work with OS/A+ version 4.
b): machine language program:
name of file: BUGV4FIX.COM
BUGV4FIX.COM ; we are still searching for that file, it seems to be lost. Any help, any hint in that case is very much appreciated. :-)
At the end of the BUG/65 manual we can read:
1. Copy the files BUG65.COM and BUGV4FIX.COM to a version 4 disk using the COPY24 command (see the DOSXL manual for details on this command).
2. At the version 4 "D1:" prompt, type the command: BUGV4FIX (RETURN).
3. The file BUG65.COM on that disk is now compatible with version 4 of DOSXL.
WARNING: Do NOT perform the BUGV4FIX command on your version 2 master disk!
![]() |
![]() |